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

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

Black Ants Rescue - physics-puzzle game for kids and parents.swf

This is the info page for
Flash #93042

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


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

<p align="center"><font face="Hobo Std" size="20" color="#ffff00" letterSpacing="0.000000" kerning="1"><b>PLAY</b></font></p>

<p align="center"><font face="Hobo Std" size="20" color="#ff0000" letterSpacing="0.000000" kerning="1"><b>PLAY</b></font></p>

<p align="center"><font face="Hobo Std" size="18" color="#ff0000" letterSpacing="0.000000" kerning="1"><b>PLAY</b></font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Score 100</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Level 15</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Menu</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#ff0000" letterSpacing="0.000000" kerning="1">Menu</font></p>

<p align="center"><font face="Snap ITC" size="13" color="#ff0000" letterSpacing="0.000000" kerning="1">Menu</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Levels</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#ff0000" letterSpacing="0.000000" kerning="1">Levels</font></p>

<p align="center"><font face="Snap ITC" size="13" color="#ff0000" letterSpacing="0.000000" kerning="1">Levels</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Reset</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#ff0000" letterSpacing="0.000000" kerning="1">Reset</font></p>

<p align="center"><font face="Snap ITC" size="13" color="#ff0000" letterSpacing="0.000000" kerning="1">Reset</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Solution</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#ff0000" letterSpacing="0.000000" kerning="1">Solution</font></p>

<p align="center"><font face="Snap ITC" size="13" color="#ff0000" letterSpacing="0.000000" kerning="1">Solution</font></p>

GO

GO

GO

Use a coconut

<p align="left"><font face="Arial" size="28" color="#fff79c" letterSpacing="0.000000" kerning="1"><b>init</b></font></p>

next level

next level

next level

more games

more games

more games

submit score

submit score

submit score

WELL DONE!

NEW LEVEL
RECORD!

<p align="center"><font face="Snap ITC" size="18" color="#000000" letterSpacing="0.000000" kerning="1">reset</font></p>

<p align="center"><font face="Snap ITC" size="18" color="#ff0000" letterSpacing="0.000000" kerning="1">reset</font></p>

<p align="center"><font face="Snap ITC" size="17" color="#ff0000" letterSpacing="0.000000" kerning="1">reset</font></p>

<p align="center"><font face="Snap ITC" size="18" color="#000000" letterSpacing="0.000000" kerning="1">solution</font></p>

<p align="center"><font face="Snap ITC" size="18" color="#ff0000" letterSpacing="0.000000" kerning="1">solution</font></p>

<p align="center"><font face="Snap ITC" size="17" color="#ff0000" letterSpacing="0.000000" kerning="1">solution</font></p>

more games

Not all your friends
reached their home,
try again!

All your friends
died!

All your houses
were captured!

Your home
was captured!

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Score 100</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Level 1</font></p>

skip hints

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Score 100</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Level 2</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Score 100</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Level 3</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Score 100</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Level 4</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Score 100</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Level 5</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Score 100</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Level 6</font></p>

It's swarm attack time!

Protect your houses!

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Score 100</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Level 7</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Score 100</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Level 8</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Score 100</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Level 9</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Score 100</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Level 10</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Score 100</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Level 11</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Score 100</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Level 12</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Score 100</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Level 13</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Score 100</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Level 14</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Score 100</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Level 16</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Score 100</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Level 17</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Score 100</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Level 18</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Score 100</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Level 19</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Score 100</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Level 20</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Score 100</font></p>

<p align="center"><font face="Snap ITC" size="14" color="#c7fc47" letterSpacing="0.000000" kerning="1">Level 21</font></p>

<p align="center"><font face="Hobo Std" size="20" color="#705045" letterSpacing="0.000000" kerning="1"><b>PLAY</b></font></p>

<p align="center"><font face="Hobo Std" size="20" color="#705045" letterSpacing="0.000000" kerning="1"><b>PLAY</b></font></p>

<p align="center"><font face="Hobo Std" size="18" color="#705045" letterSpacing="0.000000" kerning="1"><b>PLAY</b></font></p>

<p align="center"><font face="Hobo Std" size="20" color="#705045" letterSpacing="0.000000" kerning="1"><b>CREDITS</b></font></p>

<p align="center"><font face="Hobo Std" size="20" color="#705045" letterSpacing="0.000000" kerning="1"><b>CREDITS</b></font></p>

<p align="center"><font face="Hobo Std" size="18" color="#705045" letterSpacing="0.000000" kerning="1"><b>CREDITS</b></font></p>

<p align="center"><font face="Hobo Std" size="20" color="#705045" letterSpacing="0.000000" kerning="1"><b>HIGHSCORES</b></font></p>

<p align="center"><font face="Hobo Std" size="20" color="#705045" letterSpacing="0.000000" kerning="1"><b>HIGHSCORES</b></font></p>

<p align="center"><font face="Hobo Std" size="18" color="#705045" letterSpacing="0.000000" kerning="1"><b>HIGHSCORES</b></font></p>

<p align="center"><font face="Hobo Std" size="20" color="#705045" letterSpacing="0.000000" kerning="1"><b>SOLUTION</b></font></p>

<p align="center"><font face="Hobo Std" size="20" color="#705045" letterSpacing="0.000000" kerning="1"><b>SOLUTION</b></font></p>

<p align="center"><font face="Hobo Std" size="18" color="#705045" letterSpacing="0.000000" kerning="1"><b>SOLUTION</b></font></p>

<p align="center"><font face="Hobo Std" size="20" color="#705045" letterSpacing="0.000000" kerning="1"><b>MORE GAMES</b></font></p>

<p align="center"><font face="Hobo Std" size="20" color="#705045" letterSpacing="0.000000" kerning="1"><b>MORE GAMES</b></font></p>

<p align="center"><font face="Hobo Std" size="18" color="#705045" letterSpacing="0.000000" kerning="1"><b>MORE GAMES</b></font></p>

<p align="center"><font face="Hobo Std" size="20" color="#705045" letterSpacing="0.000000" kerning="1"><b>HOST THIS GAME</b></font></p>

<p align="center"><font face="Hobo Std" size="20" color="#705045" letterSpacing="0.000000" kerning="1"><b>HOST THIS GAME</b></font></p>

<p align="center"><font face="Hobo Std" size="18" color="#705045" letterSpacing="0.000000" kerning="1"><b>HOST THIS GAME</b></font></p>

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

<p align="center"><font face="Hobo Std" size="20" color="#705045" letterSpacing="0.000000" kerning="1"><b>MENU</b></font></p>

<p align="center"><font face="Hobo Std" size="20" color="#705045" letterSpacing="0.000000" kerning="1"><b>MENU</b></font></p>

<p align="center"><font face="Hobo Std" size="18" color="#705045" letterSpacing="0.000000" kerning="1"><b>MENU</b></font></p>

CONGRATULATIONS !!!

Total score:

<p align="center"><font face="Hobo Std" size="20" color="#705045" letterSpacing="0.000000" kerning="1"><b>SUBMIT SCORE</b></font></p>

<p align="center"><font face="Hobo Std" size="20" color="#705045" letterSpacing="0.000000" kerning="1"><b>SUBMIT SCORE</b></font></p>

<p align="center"><font face="Hobo Std" size="18" color="#705045" letterSpacing="0.000000" kerning="1"><b>SUBMIT SCORE</b></font></p>

Graphics by
Natalia Tarabarova

Music by Alexander Balint

Physics engine: BOX2D

Special thanks to:
Johnny-k
Anastasia Guseva
Mikhail Gusev

Developed by VladG:

<p align="center"><font face="Hobo Std" size="20" color="#705045" letterSpacing="0.000000" kerning="1"><b>vladg@vladgames.com</b></font></p>

<p align="center"><font face="Hobo Std" size="20" color="#705045" letterSpacing="0.000000" kerning="1"><b>vladg@vladgames.com</b></font></p>

<p align="center"><font face="Hobo Std" size="18" color="#705045" letterSpacing="0.000000" kerning="1"><b>vladg@vladgames.com</b></font></p>

<p align="center"><font face="Arial" size="28" color="#ff0000" letterSpacing="0.000000" kerning="1"><b>Sorry, this version is not shared!</b></font></p>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

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

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

Don’t waste time, look for the stars!

(click to continue)

Your friends, black ants,
are here.

This is their home.
Help them to get there.

Beware of red ants.

Collect the stars on each level
(+50 scores).

Press this button when you are
ready to let the ants out.

Good Luck!

Click here.

Squash them!

Now you are ready to let the ants out,
press "GO" !

Ants can move even very heavy logs.

select level

select level

select level

<p align="center"><font face="Snap ITC" size="18" color="#000000" letterSpacing="0.000000" kerning="1">reset</font></p>

<p align="center"><font face="Snap ITC" size="18" color="#33ccff" letterSpacing="0.000000" kerning="1">reset</font></p>

<p align="center"><font face="Snap ITC" size="17" color="#33ccff" letterSpacing="0.000000" kerning="1">reset</font></p>

<p align="center"><font face="Snap ITC" size="18" color="#000000" letterSpacing="0.000000" kerning="1">solution</font></p>

<p align="center"><font face="Snap ITC" size="18" color="#33ccff" letterSpacing="0.000000" kerning="1">solution</font></p>

<p align="center"><font face="Snap ITC" size="17" color="#33ccff" letterSpacing="0.000000" kerning="1">solution</font></p>

more games

more games

ActionScript [AS3]

Section 1
//poluPole1_155 (black_fla.poluPole1_155) package black_fla { import flash.display.*; public dynamic class poluPole1_155 extends MovieClip { public function poluPole1_155(){ addFrameScript(0, frame1); } function frame1(){ this.alpha = 0; } } }//package black_fla
Section 2
//b2CircleDef (Box2D.Collision.Shapes.b2CircleDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2CircleDef extends b2ShapeDef { public var radius:Number; public var localPosition:b2Vec2; public function b2CircleDef(){ localPosition = new b2Vec2(0, 0); super(); type = b2Shape.e_circleShape; radius = 1; } } }//package Box2D.Collision.Shapes
Section 3
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_radius:Number; public var m_localPosition:b2Vec2; public function b2CircleShape(_arg1:b2ShapeDef){ var _local2:b2CircleDef; m_localPosition = new b2Vec2(); super(_arg1); _local2 = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local6 = _arg1.R; _local7 = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); _local8 = (_arg1.position.x + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); _local9 = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); _local11 = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ return (false); }; _local12 = (_arg4.p2.x - _arg4.p1.x); _local13 = (_arg4.p2.y - _arg4.p1.y); _local14 = ((_local9 * _local12) + (_local10 * _local13)); _local15 = ((_local12 * _local12) + (_local13 * _local13)); _local16 = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; _local17 = -((_local14 + Math.sqrt(_local16))); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){ _local17 = (_local17 / _local15); _arg2[0] = _local17; _arg3.x = (_local9 + (_local17 * _local12)); _arg3.y = (_local10 + (_local17 * _local13)); _arg3.Normalize(); return (true); }; return (false); } override public function ComputeMass(_arg1:b2MassData):void{ _arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_localPosition); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y)))); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = _arg2.R; _local5 = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); _local6 = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; _local7 = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); _local8 = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((Math.min(_local5, _local7) - m_radius), (Math.min(_local6, _local8) - m_radius)); _arg1.upperBound.Set((Math.max(_local5, _local7) + m_radius), (Math.max(_local6, _local8) + m_radius)); } public function GetRadius():Number{ return (m_radius); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number; var _local3:Number; _local2 = (m_localPosition.x - _arg1.x); _local3 = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; _local3 = _arg2.R; _local4 = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); _local5 = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; _local3 = _arg1.R; _local4 = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); _local5 = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } } }//package Box2D.Collision.Shapes
Section 4
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ mass = 0; center = new b2Vec2(0, 0); I = 0; super(); } } }//package Box2D.Collision.Shapes
Section 5
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertexCount:int; public var vertices:Array; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ var _local1:int; vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; _local1 = 0; while (_local1 < b2Settings.b2_maxPolygonVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{ var _local5:b2Vec2; var _local6:b2Mat22; var _local7:int; vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); if (_arg3){ _local5 = _arg3; _local6 = s_mat; _local6.Set(_arg4); _local7 = 0; while (_local7 < vertexCount) { _arg3 = vertices[_local7]; _arg1 = (_local5.x + ((_local6.col1.x * _arg3.x) + (_local6.col2.x * _arg3.y))); _arg3.y = (_local5.y + ((_local6.col1.y * _arg3.x) + (_local6.col2.y * _arg3.y))); _arg3.x = _arg1; _local7++; }; }; } public function SetAsBox(_arg1:Number, _arg2:Number):void{ vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); } } }//package Box2D.Collision.Shapes
Section 6
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { public var m_vertices:Array; private var s_supportVec:b2Vec2; public var m_normals:Array; public var m_obb:b2OBB; public var m_coreVertices:Array; public var m_centroid:b2Vec2; public var m_vertexCount:int; private static var s_computeMat:b2Mat22 = new b2Mat22(); private static var s_sweptAABB1:b2AABB = new b2AABB(); private static var s_sweptAABB2:b2AABB = new b2AABB(); public function b2PolygonShape(_arg1:b2ShapeDef){ var _local2:b2PolygonDef; var _local3:int; var _local4:int; var _local5:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; s_supportVec = new b2Vec2(); m_obb = new b2OBB(); m_vertices = new Array(b2Settings.b2_maxPolygonVertices); m_normals = new Array(b2Settings.b2_maxPolygonVertices); m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices); super(_arg1); m_type = e_polygonShape; _local2 = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; _local4 = _local3; _local5 = _local3; _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3] = _local2.vertices[_local3].Copy(); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = (m_vertices[_local5].x - m_vertices[_local4].x); _local7 = (m_vertices[_local5].y - m_vertices[_local4].y); _local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8)); _local3++; }; m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount); ComputeOBB(m_obb, m_vertices, m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { _local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1); _local5 = _local3; _local9 = m_normals[_local4].x; _local10 = m_normals[_local4].y; _local11 = m_normals[_local5].x; _local12 = m_normals[_local5].y; _local13 = (m_vertices[_local3].x - m_centroid.x); _local14 = (m_vertices[_local3].y - m_centroid.y); _local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop); _local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop); _local17 = (1 / ((_local9 * _local12) - (_local10 * _local11))); m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y)); _local3++; }; } public function GetCoreVertices():Array{ return (m_coreVertices); } public function GetCentroid():b2Vec2{ return (m_centroid); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:Number; var _local21:Number; _local6 = 0; _local7 = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; _local12 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); _local13 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local8 = (_arg4.p2.x - _arg1.position.x); _local9 = (_arg4.p2.y - _arg1.position.y); _local10 = _arg1.R; _local14 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); _local15 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local16 = (_local14 - _local12); _local17 = (_local15 - _local13); _local18 = -1; _local19 = 0; while (_local19 < m_vertexCount) { _local8 = (m_vertices[_local19].x - _local12); _local9 = (m_vertices[_local19].y - _local13); _local11 = m_normals[_local19]; _local20 = ((_local11.x * _local8) + (_local11.y * _local9)); _local21 = ((_local11.x * _local16) + (_local11.y * _local17)); if ((((_local21 < 0)) && ((_local20 > (_local6 * _local21))))){ _local6 = (_local20 / _local21); _local18 = _local19; } else { if ((((_local21 > 0)) && ((_local20 < (_local7 * _local21))))){ _local7 = (_local20 / _local21); }; }; if (_local7 < _local6){ return (false); }; _local19++; }; if (_local18 >= 0){ _arg2[0] = _local6; _local10 = _arg1.R; _local11 = m_normals[_local18]; _arg3.x = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _arg3.y = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); return (true); }; return (false); } override public function ComputeMass(_arg1:b2MassData):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:int; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _local2 = 0; _local3 = 0; _local4 = 0; _local5 = 0; _local6 = 0; _local7 = 0; _local8 = (1 / 3); _local9 = 0; while (_local9 < m_vertexCount) { _local10 = m_vertices[_local9]; _local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[(_local9 + 1)] : m_vertices[0]; _local12 = (_local10.x - _local6); _local13 = (_local10.y - _local7); _local14 = (_local11.x - _local6); _local15 = (_local11.y - _local7); _local16 = ((_local12 * _local15) - (_local13 * _local14)); _local17 = (0.5 * _local16); _local4 = (_local4 + _local17); _local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x))); _local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y))); _local18 = _local6; _local19 = _local7; _local20 = _local12; _local21 = _local13; _local22 = _local14; _local23 = _local15; _local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18)); _local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local5 = (_local5 + (_local16 * (_local24 + _local25))); _local9++; }; _arg1.mass = (m_density * _local4); _local2 = (_local2 * (1 / _local4)); _local3 = (_local3 * (1 / _local4)); _arg1.center.Set(_local2, _local3); _arg1.I = (m_density * _local5); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:int; var _local8:Number; var _local9:int; var _local10:b2Vec2; var _local11:Number; _local4 = _arg1.R; _local5 = ((_arg2 * _local4.col1.x) + (_arg3 * _local4.col1.y)); _local6 = ((_arg2 * _local4.col2.x) + (_arg3 * _local4.col2.y)); _local7 = 0; _local8 = ((m_coreVertices[0].x * _local5) + (m_coreVertices[0].y * _local6)); _local9 = 1; while (_local9 < m_vertexCount) { _local11 = ((m_coreVertices[_local9].x * _local5) + (m_coreVertices[_local9].y * _local6)); if (_local11 > _local8){ _local7 = _local9; _local8 = _local11; }; _local9++; }; _local4 = _arg1.R; _local10 = m_coreVertices[_local7]; s_supportVec.x = (_arg1.position.x + ((_local4.col1.x * _local10.x) + (_local4.col2.x * _local10.y))); s_supportVec.y = (_arg1.position.y + ((_local4.col1.y * _local10.x) + (_local4.col2.y * _local10.y))); return (s_supportVec); } public function GetVertexCount():int{ return (m_vertexCount); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB; var _local5:b2AABB; _local4 = s_sweptAABB1; _local5 = s_sweptAABB2; ComputeAABB(_local4, _arg2); ComputeAABB(_local5, _arg3); _arg1.lowerBound.Set(Math.min(_local4.lowerBound.x, _local5.lowerBound.x), Math.min(_local4.lowerBound.y, _local5.lowerBound.y)); _arg1.upperBound.Set(Math.max(_local4.upperBound.x, _local5.upperBound.x), Math.max(_local4.upperBound.y, _local5.upperBound.y)); } public function GetVertices():Array{ return (m_vertices); } public function GetOBB():b2OBB{ return (m_obb); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_coreVertices[0])); } public function Centroid(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_centroid)); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:int; var _local3:Number; var _local4:Number; m_sweepRadius = 0; _local2 = 0; while (_local2 < m_vertexCount) { _local3 = (m_coreVertices[_local2].x - _arg1.x); _local4 = (m_coreVertices[_local2].y - _arg1.y); _local3 = Math.sqrt(((_local3 * _local3) + (_local4 * _local4))); m_sweepRadius = Math.max(m_sweepRadius, _local3); _local2++; }; } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22; var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local5 = s_computeMat; _local3 = _arg2.R; _local4 = m_obb.R.col1; _local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local4 = m_obb.R.col2; _local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local5.Abs(); _local6 = _local5; _local4 = m_obb.extents; _local7 = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); _local8 = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; _local9 = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); _local10 = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8)); _arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8)); } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:int; var _local9:Number; _local3 = _arg1.R; _local4 = (_arg2.x - _arg1.position.x); _local5 = (_arg2.y - _arg1.position.y); _local6 = ((_local4 * _local3.col1.x) + (_local5 * _local3.col1.y)); _local7 = ((_local4 * _local3.col2.x) + (_local5 * _local3.col2.y)); _local8 = 0; while (_local8 < m_vertexCount) { _local4 = (_local6 - m_vertices[_local8].x); _local5 = (_local7 - m_vertices[_local8].y); _local9 = ((m_normals[_local8].x * _local4) + (m_normals[_local8].y * _local5)); if (_local9 > 0){ return (false); }; _local8++; }; return (true); } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:int; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local3 = new b2Vec2(); _local4 = 0; _local5 = 0; _local6 = 0; _local7 = (1 / 3); _local8 = 0; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[(_local8 + 1)] : _arg1[0]; _local11 = (_local9.x - _local5); _local12 = (_local9.y - _local6); _local13 = (_local10.x - _local5); _local14 = (_local10.y - _local6); _local15 = ((_local11 * _local14) - (_local12 * _local13)); _local16 = (0.5 * _local15); _local4 = (_local4 + _local16); _local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x))); _local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y))); _local8++; }; _local3.x = (_local3.x * (1 / _local4)); _local3.y = (_local3.y * (1 / _local4)); return (_local3); } public static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{ var _local4:int; var _local5:Array; var _local6:Number; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:b2Mat22; _local5 = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; _local6 = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[(_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)); _local13 = Math.min(_local13, _local21); _local14 = Math.min(_local14, _local22); _local15 = Math.max(_local15, _local21); _local16 = Math.max(_local16, _local22); _local17++; }; _local18 = ((_local15 - _local13) * (_local16 - _local14)); if (_local18 < (0.95 * _local6)){ _local6 = _local18; _arg1.R.col1.x = _local8; _arg1.R.col1.y = _local9; _arg1.R.col2.x = _local11; _arg1.R.col2.y = _local12; _local23 = (0.5 * (_local13 + _local15)); _local24 = (0.5 * (_local14 + _local16)); _local25 = _arg1.R; _arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24))); _arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24))); _arg1.extents.x = (0.5 * (_local15 - _local13)); _arg1.extents.y = (0.5 * (_local16 - _local14)); }; _local4++; }; } } }//package Box2D.Collision.Shapes
Section 7
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2Shape { public var m_next:b2Shape; public var m_type:int; public var m_sweepRadius:Number; public var m_userData; public var m_density:Number; public var m_proxyId:uint; public var m_friction:Number; public var m_isSensor:Boolean; public var m_groupIndex:int; public var m_categoryBits:uint; public var m_restitution:Number; public var m_body:b2Body; public var m_maskBits:uint; public static const e_polygonShape:int = 1; public static const e_unknownShape:int = -1; public static const e_circleShape:int = 0; public static const e_shapeTypeCount:int = 2; private static var s_resetAABB:b2AABB = new b2AABB(); private static var s_syncAABB:b2AABB = new b2AABB(); private static var s_proxyAABB:b2AABB = new b2AABB(); public function b2Shape(_arg1:b2ShapeDef){ m_userData = _arg1.userData; m_friction = _arg1.friction; m_restitution = _arg1.restitution; m_density = _arg1.density; m_body = null; m_sweepRadius = 0; m_next = null; m_proxyId = b2Pair.b2_nullProxy; m_categoryBits = _arg1.categoryBits; m_maskBits = _arg1.maskBits; m_groupIndex = _arg1.groupIndex; m_isSensor = _arg1.isSensor; } public function GetSweepRadius():Number{ return (m_sweepRadius); } public function GetNext():b2Shape{ return (m_next); } public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ } public function GetType():int{ return (m_type); } public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ return (false); } public function IsSensor():Boolean{ return (m_isSensor); } public function GetUserData(){ return (m_userData); } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ var _local4:b2AABB; if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; _local4 = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxyId, _local4); return (true); }; return (false); } public function ComputeMass(_arg1:b2MassData):void{ } public function DestroyProxy(_arg1:b2BroadPhase):void{ if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); m_proxyId = b2Pair.b2_nullProxy; }; } public function UpdateSweepRadius(_arg1:b2Vec2):void{ } public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ } public function GetBody():b2Body{ return (m_body); } public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB; var _local4:Boolean; _local3 = s_proxyAABB; ComputeAABB(_local3, _arg2); _local4 = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } public function ResetProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB; var _local4:Boolean; if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); }; _local3 = s_resetAABB; ComputeAABB(_local3, _arg2); _local4 = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public static function Destroy(_arg1:b2Shape, _arg2):void{ } public static function Create(_arg1:b2ShapeDef, _arg2):b2Shape{ switch (_arg1.type){ case e_circleShape: return (new b2CircleShape(_arg1)); case e_polygonShape: return (new b2PolygonShape(_arg1)); default: return (null); }; } } }//package Box2D.Collision.Shapes
Section 8
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { public class b2ShapeDef { public var groupIndex:int; public var categoryBits:int; public var density:Number; public var type:int; public var restitution:Number; public var maskBits:int; public var userData;// = null public var friction:Number; public var isSensor:Boolean; public function b2ShapeDef(){ userData = null; super(); type = b2Shape.e_unknownShape; userData = null; friction = 0.2; restitution = 0; density = 0; categoryBits = 1; maskBits = 0xFFFF; groupIndex = 0; isSensor = false; } } }//package Box2D.Collision.Shapes
Section 9
//b2AABB (Box2D.Collision.b2AABB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2AABB { public var upperBound:b2Vec2; public var lowerBound:b2Vec2; public function b2AABB(){ lowerBound = new b2Vec2(); upperBound = new b2Vec2(); super(); } public function IsValid():Boolean{ var _local1:Number; var _local2:Number; var _local3:Boolean; _local1 = (upperBound.x - lowerBound.x); _local2 = (upperBound.y - lowerBound.y); _local3 = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } }//package Box2D.Collision
Section 10
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var proxyId:uint; public var stabbingCount:uint; public var value:uint; public function Swap(_arg1:b2Bound):void{ var _local2:uint; var _local3:uint; var _local4:uint; _local2 = value; _local3 = proxyId; _local4 = stabbingCount; value = _arg1.value; proxyId = _arg1.proxyId; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxyId = _local3; _arg1.stabbingCount = _local4; } public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } } }//package Box2D.Collision
Section 11
//b2BoundValues (Box2D.Collision.b2BoundValues) package Box2D.Collision { public class b2BoundValues { public var lowerValues:Array; public var upperValues:Array; public function b2BoundValues(){ lowerValues = [0, 0]; upperValues = [0, 0]; super(); } } }//package Box2D.Collision
Section 12
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_quantizationFactor:b2Vec2; public var m_worldAABB:b2AABB; public var m_bounds:Array; public var m_freeProxy:uint; public var m_proxyCount:int; public var m_proxyPool:Array; public var m_queryResultCount:int; public var m_pairManager:b2PairManager; public var m_timeStamp:uint; public var m_queryResults:Array; public static const b2_nullEdge:uint = b2Settings.USHRT_MAX; public static const b2_invalid:uint = b2Settings.USHRT_MAX; public static var s_validate:Boolean = false; public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){ var _local3:int; var _local4:Number; var _local5:Number; var _local6:b2Proxy; var _local7:int; m_pairManager = new b2PairManager(); m_proxyPool = new Array(b2Settings.b2_maxPairs); m_bounds = new Array((2 * b2Settings.b2_maxProxies)); m_queryResults = new Array(b2Settings.b2_maxProxies); m_quantizationFactor = new b2Vec2(); super(); m_pairManager.Initialize(this, _arg2); m_worldAABB = _arg1; m_proxyCount = 0; _local3 = 0; while (_local3 < b2Settings.b2_maxProxies) { m_queryResults[_local3] = 0; _local3++; }; m_bounds = new Array(2); _local3 = 0; while (_local3 < 2) { m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies)); _local7 = 0; while (_local7 < (2 * b2Settings.b2_maxProxies)) { m_bounds[_local3][_local7] = new b2Bound(); _local7++; }; _local3++; }; _local4 = (_arg1.upperBound.x - _arg1.lowerBound.x); _local5 = (_arg1.upperBound.y - _arg1.lowerBound.y); m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4); m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5); _local3 = 0; while (_local3 < (b2Settings.b2_maxProxies - 1)) { _local6 = new b2Proxy(); m_proxyPool[_local3] = _local6; _local6.SetNext((_local3 + 1)); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; _local3++; }; _local6 = new b2Proxy(); m_proxyPool[(b2Settings.b2_maxProxies - 1)] = _local6; _local6.SetNext(b2Pair.b2_nullProxy); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; m_freeProxy = 0; m_timeStamp = 1; m_queryResultCount = 0; } public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{ var _local4:Array; var _local5:Array; var _local6:uint; var _local7:uint; var _local8:Array; var _local9:Array; var _local10:int; var _local11:int; var _local12:b2Proxy; _local4 = new Array(); _local5 = new Array(); ComputeBounds(_local4, _local5, _arg1); _local8 = [_local6]; _local9 = [_local7]; Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0); Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1); _local10 = 0; _local11 = 0; while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) { _local12 = m_proxyPool[m_queryResults[_local11]]; _arg2[_local11] = _local12.userData; _local11++; _local10++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local10); } public function Commit():void{ m_pairManager.Commit(); } public function GetProxy(_arg1:int):b2Proxy{ if ((((_arg1 == b2Pair.b2_nullProxy)) || ((m_proxyPool[_arg1].IsValid() == false)))){ return (null); }; return (m_proxyPool[_arg1]); } private function IncrementTimeStamp():void{ var _local1:uint; if (m_timeStamp == b2Settings.USHRT_MAX){ _local1 = 0; while (_local1 < b2Settings.b2_maxProxies) { m_proxyPool[_local1].timeStamp = 0; _local1++; }; m_timeStamp = 1; } else { m_timeStamp++; }; } private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{ var _local8:uint; var _local9:uint; var _local10:uint; var _local11:int; var _local12:int; var _local13:b2Proxy; _local8 = BinarySearch(_arg5, _arg6, _arg3); _local9 = BinarySearch(_arg5, _arg6, _arg4); _local10 = _local8; while (_local10 < _local9) { if (_arg5[_local10].IsLower()){ IncrementOverlapCount(_arg5[_local10].proxyId); }; _local10++; }; if (_local8 > 0){ _local11 = (_local8 - 1); _local12 = _arg5[_local11].stabbingCount; while (_local12) { if (_arg5[_local11].IsLower()){ _local13 = m_proxyPool[_arg5[_local11].proxyId]; if (_local8 <= _local13.upperBounds[_arg7]){ IncrementOverlapCount(_arg5[_local11].proxyId); _local12--; }; }; _local11--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local3:int; var _local4:Array; _local3 = 0; while (_local3 < 2) { _local4 = m_bounds[_local3]; if (_local4[_arg1.lowerBounds[_local3]].value > _local4[_arg2.upperBounds[_local3]].value){ return (false); }; if (_local4[_arg1.upperBounds[_local3]].value < _local4[_arg2.lowerBounds[_local3]].value){ return (false); }; _local3++; }; return (true); } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local4 = _arg3.lowerBound.x; _local5 = _arg3.lowerBound.y; _local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x); _local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y); _local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x); _local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y); _local6 = _arg3.upperBound.x; _local7 = _arg3.upperBound.y; _local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x); _local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y); _local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x); _local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y); _arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1)); _arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1); _arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1)); _arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1); } public function CreateProxy(_arg1:b2AABB, _arg2):uint{ var _local3:uint; var _local4:b2Proxy; var _local5:uint; var _local6:uint; var _local7:Array; var _local8:Array; var _local9:int; var _local10:int; var _local11:Array; var _local12:uint; var _local13:uint; var _local14:Array; var _local15:Array; var _local16:Array; var _local17:int; var _local18:int; var _local19:b2Bound; var _local20:b2Bound; var _local21:int; var _local22:b2Proxy; _local5 = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; _local6 = (2 * m_proxyCount); _local7 = new Array(); _local8 = new Array(); ComputeBounds(_local7, _local8, _arg1); _local9 = 0; while (_local9 < 2) { _local11 = m_bounds[_local9]; _local14 = [_local12]; _local15 = [_local13]; Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9); _local12 = _local14[0]; _local13 = _local15[0]; _local16 = new Array(); _local18 = (_local6 - _local13); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[(_local13 + _local17)]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local21 = (_local13 + 2); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[(_local21 + _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[(_local12 + _local17)]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local21 = (_local12 + 1); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[(_local21 + _local17)]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local13++; _local11[_local12].value = _local7[_local9]; _local11[_local12].proxyId = _local5; _local11[_local13].value = _local8[_local9]; _local11[_local13].proxyId = _local5; _local11[_local12].stabbingCount = ((_local12 == 0)) ? 0 : _local11[(_local12 - 1)].stabbingCount; _local11[_local13].stabbingCount = _local11[(_local13 - 1)].stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local11[_local3].stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local6 + 2)) { _local22 = m_proxyPool[_local11[_local3].proxyId]; if (_local11[_local3].IsLower()){ _local22.lowerBounds[_local9] = _local3; } else { _local22.upperBounds[_local9] = _local3; }; _local3++; }; _local9++; }; m_proxyCount++; _local10 = 0; while (_local10 < m_queryResultCount) { m_pairManager.AddBufferedPair(_local5, m_queryResults[_local10]); _local10++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); return (_local5); } public function DestroyProxy(_arg1:uint):void{ var _local2:b2Proxy; var _local3:int; var _local4:int; var _local5:int; var _local6:Array; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:uint; var _local11:Array; var _local12:int; var _local13:int; var _local14:b2Bound; var _local15:b2Bound; var _local16:int; var _local17:uint; var _local18:int; var _local19:b2Proxy; _local2 = m_proxyPool[_arg1]; _local3 = (2 * m_proxyCount); _local4 = 0; while (_local4 < 2) { _local6 = m_bounds[_local4]; _local7 = _local2.lowerBounds[_local4]; _local8 = _local2.upperBounds[_local4]; _local9 = _local6[_local7].value; _local10 = _local6[_local8].value; _local11 = new Array(); _local13 = ((_local8 - _local7) - 1); _local12 = 0; while (_local12 < _local13) { _local11[_local12] = new b2Bound(); _local14 = _local11[_local12]; _local15 = _local6[((_local7 + 1) + _local12)]; _local14.value = _local15.value; _local14.proxyId = _local15.proxyId; _local14.stabbingCount = _local15.stabbingCount; _local12++; }; _local13 = _local11.length; _local16 = _local7; _local12 = 0; while (_local12 < _local13) { _local15 = _local11[_local12]; _local14 = _local6[(_local16 + _local12)]; _local14.value = _local15.value; _local14.proxyId = _local15.proxyId; _local14.stabbingCount = _local15.stabbingCount; _local12++; }; _local11 = new Array(); _local13 = ((_local3 - _local8) - 1); _local12 = 0; while (_local12 < _local13) { _local11[_local12] = new b2Bound(); _local14 = _local11[_local12]; _local15 = _local6[((_local8 + 1) + _local12)]; _local14.value = _local15.value; _local14.proxyId = _local15.proxyId; _local14.stabbingCount = _local15.stabbingCount; _local12++; }; _local13 = _local11.length; _local16 = (_local8 - 1); _local12 = 0; while (_local12 < _local13) { _local15 = _local11[_local12]; _local14 = _local6[(_local16 + _local12)]; _local14.value = _local15.value; _local14.proxyId = _local15.proxyId; _local14.stabbingCount = _local15.stabbingCount; _local12++; }; _local13 = (_local3 - 2); _local17 = _local7; while (_local17 < _local13) { _local19 = m_proxyPool[_local6[_local17].proxyId]; if (_local6[_local17].IsLower()){ _local19.lowerBounds[_local4] = _local17; } else { _local19.upperBounds[_local4] = _local17; }; _local17++; }; _local13 = (_local8 - 1); _local18 = _local7; while (_local18 < _local13) { _local6[_local18].stabbingCount--; _local18++; }; Query([0], [0], _local9, _local10, _local6, (_local3 - 2), _local4); _local4++; }; _local5 = 0; while (_local5 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local5]); _local5++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _local2.userData = null; _local2.overlapCount = b2_invalid; _local2.lowerBounds[0] = b2_invalid; _local2.lowerBounds[1] = b2_invalid; _local2.upperBounds[0] = b2_invalid; _local2.upperBounds[1] = b2_invalid; _local2.SetNext(m_freeProxy); m_freeProxy = _arg1; m_proxyCount--; } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local3:int; var _local4:Array; _local3 = 0; while (_local3 < 2) { _local4 = m_bounds[_local3]; if (_arg1.lowerValues[_local3] > _local4[_arg2.upperBounds[_local3]].value){ return (false); }; if (_arg1.upperValues[_local3] < _local4[_arg2.lowerBounds[_local3]].value){ return (false); }; _local3++; }; return (true); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local5:int; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; _local5 = 0; while (_local5 < 2) { _local6 = m_bounds[_local5]; _local7 = (2 * m_proxyCount); _local8 = 0; _local9 = 0; while (_local9 < _local7) { _local10 = _local6[_local9]; if (_local10.IsLower() == true){ _local8++; } else { _local8--; }; _local9++; }; _local5++; }; } private function IncrementOverlapCount(_arg1:uint):void{ var _local2:b2Proxy; _local2 = m_proxyPool[_arg1]; if (_local2.timeStamp < m_timeStamp){ _local2.timeStamp = m_timeStamp; _local2.overlapCount = 1; } else { _local2.overlapCount = 2; m_queryResults[m_queryResultCount] = _arg1; m_queryResultCount++; }; } public function InRange(_arg1:b2AABB):Boolean{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = _arg1.lowerBound.x; _local3 = _arg1.lowerBound.y; _local2 = (_local2 - m_worldAABB.upperBound.x); _local3 = (_local3 - m_worldAABB.upperBound.y); _local4 = m_worldAABB.lowerBound.x; _local5 = m_worldAABB.lowerBound.y; _local4 = (_local4 - _arg1.upperBound.x); _local5 = (_local5 - _arg1.upperBound.y); _local2 = b2Math.b2Max(_local2, _local4); _local3 = b2Math.b2Max(_local3, _local5); return ((b2Math.b2Max(_local2, _local3) < 0)); } public function MoveProxy(_arg1:uint, _arg2:b2AABB):void{ var _local3:uint; var _local4:uint; var _local5:b2Bound; var _local6:b2Bound; var _local7:b2Bound; var _local8:uint; var _local9:b2Proxy; var _local10:uint; var _local11:b2Proxy; var _local12:b2BoundValues; var _local13:b2BoundValues; var _local14:Array; var _local15:uint; var _local16:uint; var _local17:uint; var _local18:uint; var _local19:int; var _local20:int; var _local21:uint; var _local22:b2Proxy; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){ return; }; if (_arg2.IsValid() == false){ return; }; _local10 = (2 * m_proxyCount); _local11 = m_proxyPool[_arg1]; _local12 = new b2BoundValues(); ComputeBounds(_local12.lowerValues, _local12.upperValues, _arg2); _local13 = new b2BoundValues(); _local3 = 0; while (_local3 < 2) { _local13.lowerValues[_local3] = m_bounds[_local3][_local11.lowerBounds[_local3]].value; _local13.upperValues[_local3] = m_bounds[_local3][_local11.upperBounds[_local3]].value; _local3++; }; _local3 = 0; while (_local3 < 2) { _local14 = m_bounds[_local3]; _local15 = _local11.lowerBounds[_local3]; _local16 = _local11.upperBounds[_local3]; _local17 = _local12.lowerValues[_local3]; _local18 = _local12.upperValues[_local3]; _local19 = (_local17 - _local14[_local15].value); _local20 = (_local18 - _local14[_local16].value); _local14[_local15].value = _local17; _local14[_local16].value = _local18; if (_local19 < 0){ _local4 = _local15; while ((((_local4 > 0)) && ((_local17 < _local14[(_local4 - 1)].value)))) { _local5 = _local14[_local4]; _local6 = _local14[(_local4 - 1)]; _local21 = _local6.proxyId; _local22 = m_proxyPool[_local6.proxyId]; _local6.stabbingCount++; if (_local6.IsUpper() == true){ if (TestOverlap(_local12, _local22)){ m_pairManager.AddBufferedPair(_arg1, _local21); }; var _local23 = _local22.upperBounds; var _local24 = _local3; var _local25 = (_local23[_local24] + 1); _local23[_local24] = _local25; _local5.stabbingCount++; } else { _local23 = _local22.lowerBounds; _local24 = _local3; _local25 = (_local23[_local24] + 1); _local23[_local24] = _local25; _local5.stabbingCount--; }; _local23 = _local11.lowerBounds; _local24 = _local3; _local25 = (_local23[_local24] - 1); _local23[_local24] = _local25; _local5.Swap(_local6); _local4--; }; }; if (_local20 > 0){ _local4 = _local16; while ((((_local4 < (_local10 - 1))) && ((_local14[(_local4 + 1)].value <= _local18)))) { _local5 = _local14[_local4]; _local7 = _local14[(_local4 + 1)]; _local8 = _local7.proxyId; _local9 = m_proxyPool[_local8]; _local7.stabbingCount++; if (_local7.IsLower() == true){ if (TestOverlap(_local12, _local9)){ m_pairManager.AddBufferedPair(_arg1, _local8); }; _local23 = _local9.lowerBounds; _local24 = _local3; _local25 = (_local23[_local24] - 1); _local23[_local24] = _local25; _local5.stabbingCount++; } else { _local23 = _local9.upperBounds; _local24 = _local3; _local25 = (_local23[_local24] - 1); _local23[_local24] = _local25; _local5.stabbingCount--; }; _local23 = _local11.upperBounds; _local24 = _local3; _local25 = (_local23[_local24] + 1); _local23[_local24] = _local25; _local5.Swap(_local7); _local4++; }; }; if (_local19 > 0){ _local4 = _local15; while ((((_local4 < (_local10 - 1))) && ((_local14[(_local4 + 1)].value <= _local17)))) { _local5 = _local14[_local4]; _local7 = _local14[(_local4 + 1)]; _local8 = _local7.proxyId; _local9 = m_proxyPool[_local8]; _local7.stabbingCount--; if (_local7.IsUpper()){ if (TestOverlap(_local13, _local9)){ m_pairManager.RemoveBufferedPair(_arg1, _local8); }; _local23 = _local9.upperBounds; _local24 = _local3; _local25 = (_local23[_local24] - 1); _local23[_local24] = _local25; _local5.stabbingCount--; } else { _local23 = _local9.lowerBounds; _local24 = _local3; _local25 = (_local23[_local24] - 1); _local23[_local24] = _local25; _local5.stabbingCount++; }; _local23 = _local11.lowerBounds; _local24 = _local3; _local25 = (_local23[_local24] + 1); _local23[_local24] = _local25; _local5.Swap(_local7); _local4++; }; }; if (_local20 < 0){ _local4 = _local16; while ((((_local4 > 0)) && ((_local18 < _local14[(_local4 - 1)].value)))) { _local5 = _local14[_local4]; _local6 = _local14[(_local4 - 1)]; _local21 = _local6.proxyId; _local22 = m_proxyPool[_local21]; _local6.stabbingCount--; if (_local6.IsLower() == true){ if (TestOverlap(_local13, _local22)){ m_pairManager.RemoveBufferedPair(_arg1, _local21); }; _local23 = _local22.lowerBounds; _local24 = _local3; _local25 = (_local23[_local24] + 1); _local23[_local24] = _local25; _local5.stabbingCount--; } else { _local23 = _local22.upperBounds; _local24 = _local3; _local25 = (_local23[_local24] + 1); _local23[_local24] = _local25; _local5.stabbingCount++; }; _local23 = _local11.upperBounds; _local24 = _local3; _local25 = (_local23[_local24] - 1); _local23[_local24] = _local25; _local5.Swap(_local6); _local4--; }; }; _local3++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local4:int; var _local5:int; var _local6:int; _local4 = 0; _local5 = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); if (_arg1[_local6].value > _arg3){ _local5 = (_local6 - 1); } else { if (_arg1[_local6].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; public static const b2_oldPoint:uint = 4; public static const b2_newPoint:uint = 2; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local6:b2Mat22; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:int; var _local13:Number; var _local14:int; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local6 = _arg2.R; _local7 = _arg1.m_normals[_arg3]; _local8 = ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y)); _local9 = ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y)); _local6 = _arg5.R; _local10 = ((_local6.col1.x * _local8) + (_local6.col1.y * _local9)); _local11 = ((_local6.col2.x * _local8) + (_local6.col2.y * _local9)); _local12 = 0; _local13 = Number.MAX_VALUE; _local14 = 0; while (_local14 < _arg4.m_vertexCount) { _local7 = _arg4.m_vertices[_local14]; _local20 = ((_local7.x * _local10) + (_local7.y * _local11)); if (_local20 < _local13){ _local13 = _local20; _local12 = _local14; }; _local14++; }; _local7 = _arg1.m_vertices[_arg3]; _local6 = _arg2.R; _local15 = (_arg2.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local16 = (_arg2.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local7 = _arg4.m_vertices[_local12]; _local6 = _arg5.R; _local17 = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local18 = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local17 = (_local17 - _local15); _local18 = (_local18 - _local16); _local19 = ((_local17 * _local8) + (_local18 * _local9)); return (_local19); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local3 = _arg2.lowerBound; _local4 = _arg1.upperBound; _local5 = (_local3.x - _local4.x); _local6 = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; _local7 = (_local3.x - _local4.x); _local8 = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local7:b2Mat22; var _local8:b2Vec2; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:int; var _local13:Number; var _local14:int; var _local15:ClipVertex; var _local16:int; var _local17:int; var _local18:Number; _local7 = _arg3.R; _local8 = _arg2.m_normals[_arg4]; _local9 = ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y)); _local10 = ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y)); _local7 = _arg6.R; _local11 = ((_local7.col1.x * _local9) + (_local7.col1.y * _local10)); _local10 = ((_local7.col2.x * _local9) + (_local7.col2.y * _local10)); _local9 = _local11; _local12 = 0; _local13 = Number.MAX_VALUE; _local14 = 0; while (_local14 < _arg5.m_vertexCount) { _local8 = _arg5.m_normals[_local14]; _local18 = ((_local9 * _local8.x) + (_local10 * _local8.y)); if (_local18 < _local13){ _local13 = _local18; _local12 = _local14; }; _local14++; }; _local16 = _local12; _local17 = (((_local16 + 1) < _arg5.m_vertexCount)) ? (_local16 + 1) : 0; _local15 = _arg1[0]; _local8 = _arg5.m_vertices[_local16]; _local7 = _arg6.R; _local15.v.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local15.v.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local15.id.features.referenceFace = _arg4; _local15.id.features.incidentEdge = _local16; _local15.id.features.incidentVertex = 0; _local15 = _arg1[1]; _local8 = _arg5.m_vertices[_local17]; _local7 = _arg6.R; _local15.v.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local15.v.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local15.id.features.referenceFace = _arg4; _local15.id.features.incidentEdge = _local17; _local15.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:int; var _local7:Array; var _local8:Number; var _local9:int; var _local10:Array; var _local11:Number; var _local12:b2PolygonShape; var _local13:b2PolygonShape; var _local14:b2XForm; var _local15:b2XForm; var _local16:int; var _local17:uint; var _local18:Number; var _local19:Number; var _local20:Array; var _local21:int; var _local22:Array; var _local23:b2Vec2; var _local24:b2Vec2; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:b2Vec2; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Array; var _local32:Array; var _local33:int; var _local34:int; var _local35:int; var _local36:Number; var _local37:b2ManifoldPoint; _arg1.pointCount = 0; _local6 = 0; _local7 = [_local6]; _local8 = FindMaxSeparation(_local7, _arg2, _arg3, _arg4, _arg5); _local6 = _local7[0]; if (_local8 > 0){ return; }; _local9 = 0; _local10 = [_local9]; _local11 = FindMaxSeparation(_local10, _arg4, _arg5, _arg2, _arg3); _local9 = _local10[0]; if (_local11 > 0){ return; }; _local14 = new b2XForm(); _local15 = new b2XForm(); _local18 = 0.98; _local19 = 0.001; if (_local11 > ((_local18 * _local8) + _local19)){ _local12 = _arg4; _local13 = _arg2; _local14.Set(_arg5); _local15.Set(_arg3); _local16 = _local9; _local17 = 1; } else { _local12 = _arg2; _local13 = _arg4; _local14.Set(_arg3); _local15.Set(_arg5); _local16 = _local6; _local17 = 0; }; _local20 = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local20, _local12, _local14, _local16, _local13, _local15); _local21 = _local12.m_vertexCount; _local22 = _local12.m_vertices; _local23 = _local22[_local16].Copy(); _local24 = (((_local16 + 1) < _local21)) ? _local22[(_local16 + 1)].Copy() : _local22[0].Copy(); _local25 = b2Math.SubtractVV(_local24, _local23); _local26 = b2Math.b2MulMV(_local14.R, b2Math.SubtractVV(_local24, _local23)); _local26.Normalize(); _local27 = b2Math.b2CrossVF(_local26, 1); _local23 = b2Math.b2MulX(_local14, _local23); _local24 = b2Math.b2MulX(_local14, _local24); _local28 = b2Math.b2Dot(_local27, _local23); _local29 = -(b2Math.b2Dot(_local26, _local23)); _local30 = b2Math.b2Dot(_local26, _local24); _local31 = [new ClipVertex(), new ClipVertex()]; _local32 = [new ClipVertex(), new ClipVertex()]; _local33 = ClipSegmentToLine(_local31, _local20, _local26.Negative(), _local29); if (_local33 < 2){ return; }; _local33 = ClipSegmentToLine(_local32, _local31, _local26, _local30); if (_local33 < 2){ return; }; _arg1.normal = (_local17) ? _local27.Negative() : _local27.Copy(); _local34 = 0; _local35 = 0; while (_local35 < b2Settings.b2_maxManifoldPoints) { _local36 = (b2Math.b2Dot(_local27, _local32[_local35].v) - _local28); if (_local36 <= 0){ _local37 = _arg1.points[_local34]; _local37.separation = _local36; _local37.localPoint1 = b2Math.b2MulXT(_arg3, _local32[_local35].v); _local37.localPoint2 = b2Math.b2MulXT(_arg5, _local32[_local35].v); _local37.id.key = _local32[_local35].id.key; _local37.id.features.flip = _local17; _local34++; }; _local35++; }; _arg1.pointCount = _local34; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:int; var _local14:Number; var _local15:int; var _local16:Number; var _local17:int; var _local18:Number; var _local19:int; var _local20:Number; var _local21:int; var _local22:Number; var _local23:int; var _local24:Number; _local6 = _arg2.m_vertexCount; _local8 = _arg5.R; _local7 = _arg4.m_centroid; _local9 = (_arg5.position.x + ((_local8.col1.x * _local7.x) + (_local8.col2.x * _local7.y))); _local10 = (_arg5.position.y + ((_local8.col1.y * _local7.x) + (_local8.col2.y * _local7.y))); _local8 = _arg3.R; _local7 = _arg2.m_centroid; _local9 = (_local9 - (_arg3.position.x + ((_local8.col1.x * _local7.x) + (_local8.col2.x * _local7.y)))); _local10 = (_local10 - (_arg3.position.y + ((_local8.col1.y * _local7.x) + (_local8.col2.y * _local7.y)))); _local11 = ((_local9 * _arg3.R.col1.x) + (_local10 * _arg3.R.col1.y)); _local12 = ((_local9 * _arg3.R.col2.x) + (_local10 * _arg3.R.col2.y)); _local13 = 0; _local14 = -(Number.MAX_VALUE); _local15 = 0; while (_local15 < _local6) { _local24 = ((_arg2.m_normals[_local15].x * _local11) + (_arg2.m_normals[_local15].y * _local12)); if (_local24 > _local14){ _local14 = _local24; _local13 = _local15; }; _local15++; }; _local16 = EdgeSeparation(_arg2, _arg3, _local13, _arg4, _arg5); if (_local16 > 0){ return (_local16); }; _local17 = (((_local13 - 1) >= 0)) ? (_local13 - 1) : (_local6 - 1); _local18 = EdgeSeparation(_arg2, _arg3, _local17, _arg4, _arg5); if (_local18 > 0){ return (_local18); }; _local19 = (((_local13 + 1) < _local6)) ? (_local13 + 1) : 0; _local20 = EdgeSeparation(_arg2, _arg3, _local19, _arg4, _arg5); if (_local20 > 0){ return (_local20); }; if ((((_local18 > _local16)) && ((_local18 > _local20)))){ _local23 = -1; _local21 = _local17; _local22 = _local18; } else { if (_local20 > _local16){ _local23 = 1; _local21 = _local19; _local22 = _local20; } else { _arg1[0] = _local13; return (_local16); }; }; while (true) { if (_local23 == -1){ _local13 = (((_local21 - 1) >= 0)) ? (_local21 - 1) : (_local6 - 1); } else { _local13 = (((_local21 + 1) < _local6)) ? (_local21 + 1) : 0; }; _local16 = EdgeSeparation(_arg2, _arg3, _local13, _arg4, _arg5); if (_local16 > 0){ return (_local16); }; if (_local16 > _local22){ _local21 = _local13; _local22 = _local16; } else { break; }; }; _arg1[0] = _local21; return (_local22); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:int; var _local6:b2Vec2; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; _local5 = 0; _local6 = _arg2[0].v; _local7 = _arg2[1].v; _local8 = (b2Math.b2Dot(_arg3, _local6) - _arg4); _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); if (_local8 <= 0){ var _temp1 = _local5; _local5 = (_local5 + 1); var _local12 = _temp1; _arg1[_local12] = _arg2[0]; }; if (_local9 <= 0){ var _temp2 = _local5; _local5 = (_local5 + 1); _local12 = _temp2; _arg1[_local12] = _arg2[1]; }; if ((_local8 * _local9) < 0){ _local10 = (_local8 / (_local8 - _local9)); _local11 = _arg1[_local5].v; _local11.x = (_local6.x + (_local10 * (_local7.x - _local6.x))); _local11.y = (_local6.y + (_local10 * (_local7.y - _local6.y))); if (_local8 > 0){ _arg1[_local5].id = _arg2[0].id; } else { _arg1[_local5].id = _arg2[1].id; }; _local5++; }; return (_local5); } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2ManifoldPoint; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; _local8 = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local9 = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; _local10 = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local11 = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local12 = (_local10 - _local8); _local13 = (_local11 - _local9); _local14 = ((_local12 * _local12) + (_local13 * _local13)); _local15 = (_arg2.m_radius + _arg4.m_radius); if (_local14 > (_local15 * _local15)){ return; }; if (_local14 < Number.MIN_VALUE){ _local16 = -(_local15); _arg1.normal.Set(0, 1); } else { _local22 = Math.sqrt(_local14); _local16 = (_local22 - _local15); _local23 = (1 / _local22); _arg1.normal.x = (_local23 * _local12); _arg1.normal.y = (_local23 * _local13); }; _arg1.pointCount = 1; _local17 = _arg1.points[0]; _local17.id.key = 0; _local17.separation = _local16; _local8 = (_local8 + (_arg2.m_radius * _arg1.normal.x)); _local9 = (_local9 + (_arg2.m_radius * _arg1.normal.y)); _local10 = (_local10 - (_arg4.m_radius * _arg1.normal.x)); _local11 = (_local11 - (_arg4.m_radius * _arg1.normal.y)); _local18 = (0.5 * (_local8 + _local10)); _local19 = (0.5 * (_local9 + _local11)); _local20 = (_local18 - _arg3.position.x); _local21 = (_local19 - _arg3.position.y); _local17.localPoint1.x = ((_local20 * _arg3.R.col1.x) + (_local21 * _arg3.R.col1.y)); _local17.localPoint1.y = ((_local20 * _arg3.R.col2.x) + (_local21 * _arg3.R.col2.y)); _local20 = (_local18 - _arg5.position.x); _local21 = (_local19 - _arg5.position.y); _local17.localPoint2.x = ((_local20 * _arg5.R.col1.x) + (_local21 * _arg5.R.col1.y)); _local17.localPoint2.y = ((_local20 * _arg5.R.col2.x) + (_local21 * _arg5.R.col2.y)); } public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:Number; var _local20:Number; var _local21:int; var _local22:int; var _local23:int; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; _local13 = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); _local14 = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; _local15 = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local16 = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local18 = 0; _local19 = -(Number.MAX_VALUE); _local20 = _arg4.m_radius; _local21 = 0; while (_local21 < _arg2.m_vertexCount) { _local7 = (_local15 - _arg2.m_vertices[_local21].x); _local8 = (_local16 - _arg2.m_vertices[_local21].y); _local30 = ((_arg2.m_normals[_local21].x * _local7) + (_arg2.m_normals[_local21].y * _local8)); if (_local30 > _local20){ return; }; if (_local30 > _local19){ _local19 = _local30; _local18 = _local21; }; _local21++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _arg2.m_normals[_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.referenceFace = b2_nullFeature; _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; }; _local22 = _local18; _local23 = (((_local22 + 1) < _arg2.m_vertexCount)) ? (_local22 + 1) : 0; _local24 = (_arg2.m_vertices[_local23].x - _arg2.m_vertices[_local22].x); _local25 = (_arg2.m_vertices[_local23].y - _arg2.m_vertices[_local22].y); _local26 = Math.sqrt(((_local24 * _local24) + (_local25 * _local25))); _local24 = (_local24 / _local26); _local25 = (_local25 / _local26); if (_local26 < Number.MIN_VALUE){ _local7 = (_local15 - _arg2.m_vertices[_local22].x); _local8 = (_local16 - _arg2.m_vertices[_local22].y); _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)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local22; _local6.id.features.referenceFace = b2_nullFeature; _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 = (_local17 - _local20); return; }; _local7 = (_local15 - _arg2.m_vertices[_local22].x); _local8 = (_local16 - _arg2.m_vertices[_local22].y); _local27 = ((_local7 * _local24) + (_local8 * _local25)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceFace = b2_nullFeature; _local6.id.features.flip = 0; if (_local27 <= 0){ _local28 = _arg2.m_vertices[_local22].x; _local29 = _arg2.m_vertices[_local22].y; _local6.id.features.incidentVertex = _local22; } else { if (_local27 >= _local26){ _local28 = _arg2.m_vertices[_local23].x; _local29 = _arg2.m_vertices[_local23].y; _local6.id.features.incidentVertex = _local23; } else { _local28 = ((_local24 * _local27) + _arg2.m_vertices[_local22].x); _local29 = ((_local25 * _local27) + _arg2.m_vertices[_local22].y); _local6.id.features.incidentEdge = _local22; }; }; _local7 = (_local15 - _local28); _local8 = (_local16 - _local29); _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); } } }//package Box2D.Collision
Section 15
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { public class b2ContactID { public var _key:uint; public var features:Features; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID; _local1 = new b2ContactID(); _local1.key = key; return (_local1); } public function get key():uint{ return (_key); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceFace = (_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 normalForce:Number; public var separation:Number; public var normal:b2Vec2; public var position:b2Vec2; public var tangentForce:Number; public var shape1:b2Shape; public var shape2:b2Shape; public var id:b2ContactID; public function b2ContactPoint(){ position = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 17
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Distance { private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); public static var g_GJK_Iterations:int = 0; public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local4:Number; var _local5:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; _local4 = (100 * Number.MIN_VALUE); _local5 = 0; while (_local5 < _arg3) { _local6 = Math.abs((_arg1.x - _arg2[_local5].x)); _local7 = Math.abs((_arg1.y - _arg2[_local5].y)); _local8 = Math.max(Math.abs(_arg1.x), Math.abs(_arg2[_local5].x)); _local9 = Math.max(Math.abs(_arg1.y), Math.abs(_arg2[_local5].y)); if ((((_local6 < (_local4 * (_local8 + 1)))) && ((_local7 < (_local4 * (_local9 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:Array; var _local8:Array; var _local9:Array; var _local10:int; var _local11:Number; var _local12:int; var _local13:int; var _local14:Number; var _local15:Number; var _local16:b2Vec2; var _local17:b2Vec2; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:int; _local7 = s_p1s; _local8 = s_p2s; _local9 = s_points; _local10 = 0; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); _local11 = 0; _local12 = 20; _local13 = 0; while (_local13 < _local12) { _local14 = (_arg2.x - _arg1.x); _local15 = (_arg2.y - _arg1.y); _local16 = _arg3.Support(_arg4, _local14, _local15); _local17 = _arg5.Support(_arg6, -(_local14), -(_local15)); _local11 = ((_local14 * _local14) + (_local15 * _local15)); _local18 = (_local17.x - _local16.x); _local19 = (_local17.y - _local16.y); _local20 = ((_local14 * _local18) + (_local15 * _local19)); if ((_local11 - ((_local14 * _local18) + (_local15 * _local19))) <= (0.01 * _local11)){ if (_local10 == 0){ _arg1.SetV(_local16); _arg2.SetV(_local17); }; g_GJK_Iterations = _local13; return (Math.sqrt(_local11)); }; switch (_local10){ case 0: _local7[0].SetV(_local16); _local8[0].SetV(_local17); _local9[0].Set(_local18, _local19); _arg1.SetV(_local7[0]); _arg2.SetV(_local8[0]); _local10++; break; case 1: _local7[1].SetV(_local16); _local8[1].SetV(_local17); _local9[1].x = _local18; _local9[1].y = _local19; _local10 = ProcessTwo(_arg1, _arg2, _local7, _local8, _local9); break; case 2: _local7[2].SetV(_local16); _local8[2].SetV(_local17); _local9[2].x = _local18; _local9[2].y = _local19; _local10 = ProcessThree(_arg1, _arg2, _local7, _local8, _local9); break; }; if (_local10 == 3){ g_GJK_Iterations = _local13; return (0); }; _local21 = -(Number.MAX_VALUE); _local22 = 0; while (_local22 < _local10) { _local21 = b2Math.b2Max(_local21, ((_local9[_local22].x * _local9[_local22].x) + (_local9[_local22].y * _local9[_local22].y))); _local22++; }; if ((((_local10 == 3)) || ((_local11 <= ((100 * Number.MIN_VALUE) * _local21))))){ g_GJK_Iterations = _local13; _local14 = (_arg2.x - _arg1.x); _local15 = (_arg2.y - _arg1.y); _local11 = ((_local14 * _local14) + (_local15 * _local15)); return (Math.sqrt(_local11)); }; _local13++; }; g_GJK_Iterations = _local12; return (Math.sqrt(_local11)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; _local9 = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local10 = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; _local11 = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local12 = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = ((_local13 * _local13) + (_local14 * _local14)); _local16 = (_arg3.m_radius - b2Settings.b2_toiSlop); _local17 = (_arg5.m_radius - b2Settings.b2_toiSlop); _local18 = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _local20 = (_local19 - _local18); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = (_local11 - (_local17 * _local13)); _arg2.y = (_local12 - (_local17 * _local14)); return (_local20); }; if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; _arg1.x = _local9; _arg1.y = _local10; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; _local6 = _arg5[0].x; _local7 = _arg5[0].y; _local8 = _arg5[1].x; _local9 = _arg5[1].y; _local10 = _arg5[2].x; _local11 = _arg5[2].y; _local12 = (_local8 - _local6); _local13 = (_local9 - _local7); _local14 = (_local10 - _local6); _local15 = (_local11 - _local7); _local16 = (_local10 - _local8); _local17 = (_local11 - _local9); _local18 = -(((_local6 * _local12) + (_local7 * _local13))); _local19 = ((_local8 * _local12) + (_local9 * _local13)); _local20 = -(((_local6 * _local14) + (_local7 * _local15))); _local21 = ((_local10 * _local14) + (_local11 * _local15)); _local22 = -(((_local8 * _local16) + (_local9 * _local17))); _local23 = ((_local10 * _local16) + (_local11 * _local17)); if ((((_local21 <= 0)) && ((_local23 <= 0)))){ _arg1.SetV(_arg3[2]); _arg2.SetV(_arg4[2]); _arg3[0].SetV(_arg3[2]); _arg4[0].SetV(_arg4[2]); _arg5[0].SetV(_arg5[2]); return (1); }; _local24 = ((_local12 * _local15) - (_local13 * _local14)); _local25 = (_local24 * ((_local6 * _local9) - (_local7 * _local8))); _local27 = (_local24 * ((_local8 * _local11) - (_local9 * _local10))); if ((((((_local27 <= 0)) && ((_local22 >= 0)))) && ((_local23 >= 0)))){ _local26 = (_local22 / (_local22 + _local23)); _arg1.x = (_arg3[1].x + (_local26 * (_arg3[2].x - _arg3[1].x))); _arg1.y = (_arg3[1].y + (_local26 * (_arg3[2].y - _arg3[1].y))); _arg2.x = (_arg4[1].x + (_local26 * (_arg4[2].x - _arg4[1].x))); _arg2.y = (_arg4[1].y + (_local26 * (_arg4[2].y - _arg4[1].y))); _arg3[0].SetV(_arg3[2]); _arg4[0].SetV(_arg4[2]); _arg5[0].SetV(_arg5[2]); return (2); }; _local28 = (_local24 * ((_local10 * _local7) - (_local11 * _local6))); if ((((((_local28 <= 0)) && ((_local20 >= 0)))) && ((_local21 >= 0)))){ _local26 = (_local20 / (_local20 + _local21)); _arg1.x = (_arg3[0].x + (_local26 * (_arg3[2].x - _arg3[0].x))); _arg1.y = (_arg3[0].y + (_local26 * (_arg3[2].y - _arg3[0].y))); _arg2.x = (_arg4[0].x + (_local26 * (_arg4[2].x - _arg4[0].x))); _arg2.y = (_arg4[0].y + (_local26 * (_arg4[2].y - _arg4[0].y))); _arg3[1].SetV(_arg3[2]); _arg4[1].SetV(_arg4[2]); _arg5[1].SetV(_arg5[2]); return (2); }; _local29 = ((_local27 + _local28) + _local25); _local29 = (1 / _local29); _local30 = (_local27 * _local29); _local31 = (_local28 * _local29); _local32 = ((1 - _local30) - _local31); _arg1.x = (((_local30 * _arg3[0].x) + (_local31 * _arg3[1].x)) + (_local32 * _arg3[2].x)); _arg1.y = (((_local30 * _arg3[0].y) + (_local31 * _arg3[1].y)) + (_local32 * _arg3[2].y)); _arg2.x = (((_local30 * _arg4[0].x) + (_local31 * _arg4[1].x)) + (_local32 * _arg4[2].x)); _arg2.y = (((_local30 * _arg4[0].y) + (_local31 * _arg4[1].y)) + (_local32 * _arg4[2].y)); return (3); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local9:b2Point; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local9 = gPoint; _local8 = _arg5.m_localPosition; _local7 = _arg6.R; _local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local10 = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); _local11 = (_arg5.GetRadius() - b2Settings.b2_toiSlop); if (_local10 > _local11){ _local10 = (_local10 - _local11); _local12 = (_arg2.x - _arg1.x); _local13 = (_arg2.y - _arg1.y); _local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13))); _local12 = (_local12 / _local14); _local13 = (_local13 / _local14); _arg2.x = (_arg2.x - (_local11 * _local12)); _arg2.y = (_arg2.y - (_local11 * _local13)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ var _local7:int; var _local8:int; _local7 = _arg3.GetType(); _local8 = _arg5.GetType(); if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6)); }; return (0); } public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; _local6 = -(_arg5[1].x); _local7 = -(_arg5[1].y); _local8 = (_arg5[0].x - _arg5[1].x); _local9 = (_arg5[0].y - _arg5[1].y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = ((_local6 * _local8) + (_local7 * _local9)); if ((((_local11 <= 0)) || ((_local10 < Number.MIN_VALUE)))){ _arg1.SetV(_arg3[1]); _arg2.SetV(_arg4[1]); _arg3[0].SetV(_arg3[1]); _arg4[0].SetV(_arg4[1]); _arg5[0].SetV(_arg5[1]); return (1); }; _local11 = (_local11 / _local10); _arg1.x = (_arg3[1].x + (_local11 * (_arg3[0].x - _arg3[1].x))); _arg1.y = (_arg3[1].y + (_local11 * (_arg3[0].y - _arg3[1].y))); _arg2.x = (_arg4[1].x + (_local11 * (_arg4[0].x - _arg4[1].x))); _arg2.y = (_arg4[1].y + (_local11 * (_arg4[0].y - _arg4[1].y))); return (2); } } }//package Box2D.Collision
Section 18
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var points:Array; public var pointCount:int;// = 0 public var normal:b2Vec2; public function b2Manifold(){ var _local1:int; pointCount = 0; super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Set(_arg1:b2Manifold):void{ var _local2:int; pointCount = _arg1.pointCount; _local2 = 0; while (_local2 < b2Settings.b2_maxManifoldPoints) { (points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]); _local2++; }; normal.SetV(_arg1.normal); } public function Reset():void{ var _local1:int; _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } } }//package Box2D.Collision
Section 19
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var normalForce:Number; public var separation:Number; public var id:b2ContactID; public var localPoint2:b2Vec2; public var localPoint1:b2Vec2; public var tangentForce:Number; public function b2ManifoldPoint(){ localPoint1 = new b2Vec2(); localPoint2 = new b2Vec2(); id = new b2ContactID(); super(); } public function Set(_arg1:b2ManifoldPoint):void{ localPoint1.SetV(_arg1.localPoint1); localPoint2.SetV(_arg1.localPoint2); separation = _arg1.separation; normalForce = _arg1.normalForce; tangentForce = _arg1.tangentForce; id.key = _arg1.id.key; } public function Reset():void{ localPoint1.SetZero(); localPoint2.SetZero(); separation = 0; normalForce = 0; tangentForce = 0; id.key = 0; } } }//package Box2D.Collision
Section 20
//b2OBB (Box2D.Collision.b2OBB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2OBB { public var R:b2Mat22; public var center:b2Vec2; public var extents:b2Vec2; public function b2OBB(){ R = new b2Mat22(); center = new b2Vec2(); extents = new b2Vec2(); super(); } } }//package Box2D.Collision
Section 21
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var userData;// = null public var proxyId1:uint; public var proxyId2:uint; public var status:uint; public var next:uint; public static var e_pairFinal:uint = 4; public static var b2_tableMask:int = (b2_tableCapacity - 1); public static var e_pairRemoved:uint = 2; public static var b2_nullPair:uint = b2Settings.USHRT_MAX; public static var e_pairBuffered:uint = 1; public static var b2_nullProxy:uint = b2Settings.USHRT_MAX; public static var b2_tableCapacity:int = b2Settings.b2_maxPairs; public function b2Pair(){ userData = null; super(); } public function SetBuffered():void{ status = (status | e_pairBuffered); } public function IsBuffered():Boolean{ return (((status & e_pairBuffered) == e_pairBuffered)); } public function IsFinal():Boolean{ return (((status & e_pairFinal) == e_pairFinal)); } public function ClearRemoved():void{ status = (status & ~(e_pairRemoved)); } public function SetFinal():void{ status = (status | e_pairFinal); } public function IsRemoved():Boolean{ return (((status & e_pairRemoved) == e_pairRemoved)); } public function ClearBuffered():void{ status = (status & ~(e_pairBuffered)); } public function SetRemoved():void{ status = (status | e_pairRemoved); } } }//package Box2D.Collision
Section 22
//b2PairCallback (Box2D.Collision.b2PairCallback) package Box2D.Collision { public class b2PairCallback { public function PairRemoved(_arg1, _arg2, _arg3):void{ } public function PairAdded(_arg1, _arg2){ return (null); } } }//package Box2D.Collision
Section 23
//b2PairManager (Box2D.Collision.b2PairManager) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PairManager { public var m_pairCount:int; public var m_pairBuffer:Array; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_pairBufferCount:int; public var m_hashTable:Array; public var m_broadPhase:b2BroadPhase; public var m_freePair:uint; public function b2PairManager(){ var _local1:uint; super(); m_hashTable = new Array(b2Pair.b2_tableCapacity); _local1 = 0; while (_local1 < b2Pair.b2_tableCapacity) { m_hashTable[_local1] = b2Pair.b2_nullPair; _local1++; }; m_pairs = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1] = new b2Pair(); _local1++; }; m_pairBuffer = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairBuffer[_local1] = new b2BufferedPair(); _local1++; }; _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1].proxyId1 = b2Pair.b2_nullProxy; m_pairs[_local1].proxyId2 = b2Pair.b2_nullProxy; m_pairs[_local1].userData = null; m_pairs[_local1].status = 0; m_pairs[_local1].next = (_local1 + 1); _local1++; }; m_pairs[(b2Settings.b2_maxPairs - 1)].next = b2Pair.b2_nullPair; m_pairCount = 0; m_pairBufferCount = 0; } private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{ var _local4:uint; _local4 = m_hashTable[_arg3]; while (((!((_local4 == b2Pair.b2_nullPair))) && ((Equals(m_pairs[_local4], _arg1, _arg2) == false)))) { _local4 = m_pairs[_local4].next; }; if (_local4 == b2Pair.b2_nullPair){ return (null); }; return (m_pairs[_local4]); } private function Find(_arg1:uint, _arg2:uint):b2Pair{ var _local3:uint; var _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function ValidateBuffer():void{ } public function Commit():void{ var _local1:int; var _local2:int; var _local3:Array; var _local4:b2Pair; var _local5:b2Proxy; var _local6:b2Proxy; _local2 = 0; _local3 = m_broadPhase.m_proxyPool; _local1 = 0; while (_local1 < m_pairBufferCount) { _local4 = Find(m_pairBuffer[_local1].proxyId1, m_pairBuffer[_local1].proxyId2); _local4.ClearBuffered(); _local5 = _local3[_local4.proxyId1]; _local6 = _local3[_local4.proxyId2]; if (_local4.IsRemoved()){ if (_local4.IsFinal() == true){ m_callback.PairRemoved(_local5.userData, _local6.userData, _local4.userData); }; m_pairBuffer[_local2].proxyId1 = _local4.proxyId1; m_pairBuffer[_local2].proxyId2 = _local4.proxyId2; _local2++; } else { if (_local4.IsFinal() == false){ _local4.userData = m_callback.PairAdded(_local5.userData, _local6.userData); _local4.SetFinal(); }; }; _local1++; }; _local1 = 0; while (_local1 < _local2) { RemovePair(m_pairBuffer[_local1].proxyId1, m_pairBuffer[_local1].proxyId2); _local1++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2Pair; _local3 = Find(_arg1, _arg2); if (_local3 == null){ return; }; if (_local3.IsBuffered() == false){ _local3.SetBuffered(); m_pairBuffer[m_pairBufferCount].proxyId1 = _local3.proxyId1; m_pairBuffer[m_pairBufferCount].proxyId2 = _local3.proxyId2; m_pairBufferCount++; }; _local3.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:uint; var _local4:uint; var _local5:b2Pair; var _local6:uint; var _local7:uint; var _local8:b2Pair; var _local9:*; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); _local4 = m_hashTable[_local3]; _local5 = null; while (_local4 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local4], _arg1, _arg2)){ _local7 = _local4; if (_local5){ _local5.next = m_pairs[_local4].next; } else { m_hashTable[_local3] = m_pairs[_local4].next; }; _local8 = m_pairs[_local7]; _local9 = _local8.userData; _local8.next = m_freePair; _local8.proxyId1 = b2Pair.b2_nullProxy; _local8.proxyId2 = b2Pair.b2_nullProxy; _local8.userData = null; _local8.status = 0; m_freePair = _local7; m_pairCount--; return (_local9); } else { _local5 = m_pairs[_local4]; _local4 = _local5.next; }; }; return (null); } public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{ m_broadPhase = _arg1; m_callback = _arg2; } public function AddBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2Pair; _local3 = AddPair(_arg1, _arg2); if (_local3.IsBuffered() == false){ _local3.SetBuffered(); m_pairBuffer[m_pairBufferCount].proxyId1 = _local3.proxyId1; m_pairBuffer[m_pairBufferCount].proxyId2 = _local3.proxyId2; m_pairBufferCount++; }; _local3.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local3:uint; var _local4:b2Pair; var _local5:uint; var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; _local5 = m_freePair; _local4 = m_pairs[_local5]; m_freePair = _local4.next; _local4.proxyId1 = _arg1; _local4.proxyId2 = _arg2; _local4.status = 0; _local4.userData = null; _local4.next = m_hashTable[_local3]; m_hashTable[_local3] = _local5; m_pairCount++; return (_local4); } private function ValidateTable():void{ } public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{ return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2)))); } public static function Hash(_arg1:uint, _arg2:uint):uint{ var _local3:uint; _local3 = (((_arg2 << 16) & 4294901760) | _arg1); _local3 = (~(_local3) + ((_local3 << 15) & 4294934528)); _local3 = (_local3 ^ ((_local3 >> 12) & 1048575)); _local3 = (_local3 + ((_local3 << 2) & 4294967292)); _local3 = (_local3 ^ ((_local3 >> 4) & 268435455)); _local3 = (_local3 * 2057); _local3 = (_local3 ^ ((_local3 >> 16) & 0xFFFF)); return (_local3); } public static function Equals(_arg1:b2Pair, _arg2:uint, _arg3:uint):Boolean{ return ((((_arg1.proxyId1 == _arg2)) && ((_arg1.proxyId2 == _arg3)))); } } }//package Box2D.Collision
Section 24
//b2Point (Box2D.Collision.b2Point) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Point { public var p:b2Vec2; public function b2Point(){ p = new b2Vec2(); super(); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (p); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ return (p); } } }//package Box2D.Collision
Section 25
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var overlapCount:uint; public var lowerBounds:Array; public var upperBounds:Array; public var userData;// = null public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; userData = null; super(); } public function GetNext():uint{ return (lowerBounds[0]); } public function IsValid():Boolean{ return (!((overlapCount == b2BroadPhase.b2_invalid))); } public function SetNext(_arg1:uint):void{ lowerBounds[0] = (_arg1 & 0xFFFF); } } }//package Box2D.Collision
Section 26
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; _local5 = _arg3.p1; _local6 = (_arg3.p2.x - _local5.x); _local7 = (_arg3.p2.y - _local5.y); _local8 = (p2.x - p1.x); _local9 = (p2.y - p1.y); _local10 = _local9; _local11 = -(_local8); _local12 = (100 * Number.MIN_VALUE); _local13 = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local7) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } } }//package Box2D.Collision
Section 27
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:b2Vec2; var _local16:b2Vec2; var _local17:int; var _local18:int; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:b2XForm; var _local25:b2XForm; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; _local5 = _arg1.GetSweepRadius(); _local6 = _arg3.GetSweepRadius(); _local7 = _arg2.t0; _local8 = (_arg2.c.x - _arg2.c0.x); _local9 = (_arg2.c.y - _arg2.c0.y); _local10 = (_arg4.c.x - _arg4.c0.x); _local11 = (_arg4.c.y - _arg4.c0.y); _local12 = (_arg2.a - _arg2.a0); _local13 = (_arg4.a - _arg4.a0); _local14 = 0; _local15 = s_p1; _local16 = s_p2; _local17 = 20; _local18 = 0; _local19 = 0; _local20 = 0; _local21 = 0; _local22 = 0; while (true) { _local23 = (((1 - _local14) * _local7) + _local14); _local24 = s_xf1; _local25 = s_xf2; _arg2.GetXForm(_local24, _local23); _arg4.GetXForm(_local25, _local23); _local21 = b2Distance.Distance(_local15, _local16, _arg1, _local24, _arg3, _local25); if (_local18 == 0){ if (_local21 > (2 * b2Settings.b2_toiSlop)){ _local22 = (1.5 * b2Settings.b2_toiSlop); } else { _local22 = Math.max((0.05 * b2Settings.b2_toiSlop), (_local21 - (0.5 * b2Settings.b2_toiSlop))); }; }; if (((((_local21 - _local22) < (0.05 * b2Settings.b2_toiSlop))) || ((_local18 == _local17)))){ break; }; _local19 = (_local16.x - _local15.x); _local20 = (_local16.y - _local15.y); _local26 = Math.sqrt(((_local19 * _local19) + (_local20 * _local20))); _local19 = (_local19 / _local26); _local20 = (_local20 / _local26); _local27 = ((((_local19 * (_local8 - _local10)) + (_local20 * (_local9 - _local11))) + (Math.abs(_local12) * _local5)) + (Math.abs(_local13) * _local6)); if (Math.abs(_local27) < Number.MIN_VALUE){ _local14 = 1; break; }; _local28 = ((_local21 - _local22) / _local27); _local29 = (_local14 + _local28); if ((((_local29 < 0)) || ((1 < _local29)))){ _local14 = 1; break; }; if (_local29 < ((1 + (100 * Number.MIN_VALUE)) * _local14)){ break; }; _local14 = _local29; _local18++; }; return (_local14); } } }//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 _referenceFace:int; public var _incidentEdge:int; public var _flip:int; public var _incidentVertex:int; public var _m_id:b2ContactID; public function get referenceFace():int{ return (_referenceFace); } public function set incidentVertex(_arg1:int):void{ _incidentVertex = _arg1; _m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000)); } public function get flip():int{ return (_flip); } public function get incidentEdge():int{ return (_incidentEdge); } public function set referenceFace(_arg1:int):void{ _referenceFace = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceFace & 0xFF)); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } }//package Box2D.Collision
Section 30
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(_arg1:Number=0, _arg2:b2Vec2=null, _arg3:b2Vec2=null){ var _local4:Number; var _local5:Number; col1 = new b2Vec2(); col2 = new b2Vec2(); super(); if (((!((_arg2 == null))) && (!((_arg3 == null))))){ col1.SetV(_arg2); col2.SetV(_arg3); } else { _local4 = Math.cos(_arg1); _local5 = Math.sin(_arg1); col1.x = _local4; col2.x = -(_local5); col1.y = _local5; col2.y = _local4; }; } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function Set(_arg1:Number):void{ var _local2:Number; var _local3:Number; _local2 = Math.cos(_arg1); _local3 = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function Abs():void{ col1.Abs(); col2.Abs(); } public function Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } public function Invert(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; _local2 = col1.x; _local3 = col2.x; _local4 = col1.y; _local5 = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = col1.x; _local5 = col2.x; _local6 = col1.y; _local7 = col2.y; _local8 = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } }//package Box2D.Common.Math
Section 31
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Mat22_identity:b2Mat22 = new b2Mat22(0, new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2XForm_identity:b2XForm = new b2XForm(b2Vec2_zero, b2Mat22_identity); public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function b2MulX(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = b2MulMV(_arg1.R, _arg2); _local3.x = (_local3.x + _arg1.position.x); _local3.y = (_local3.y + _arg1.position.y); return (_local3); } public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:*; _local3 = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22; _local2 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function b2MulXT(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; var _local4:Number; _local3 = SubtractVV(_arg2, _arg1.position); _local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y)); _local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y)); _local3.x = _local4; return (_local3); } public static function b2Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (b2Max(_arg2, b2Min(_arg1, _arg3))); } public static function b2AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2; _local2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22; _local3 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2Mat22; _local3 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); _local4 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); _local5 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean; _local2 = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (b2MaxV(_arg2, b2MinV(_arg1, _arg3))); } public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number; _local3 = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); return (_local3); } public static function b2Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function b2Random():Number{ return (((Math.random() * 2) - 1)); } public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22; _local3 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2)); return (_local3); } public static function b2NextPowerOfTwo(_arg1:uint):uint{ _arg1 = (_arg1 | ((_arg1 >> 1) & 2147483647)); _arg1 = (_arg1 | ((_arg1 >> 2) & 1073741823)); _arg1 = (_arg1 | ((_arg1 >> 4) & 268435455)); _arg1 = (_arg1 | ((_arg1 >> 8) & 0xFFFFFF)); _arg1 = (_arg1 | ((_arg1 >> 16) & 0xFFFF)); return ((_arg1 + 1)); } public static function b2Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } } }//package Box2D.Common.Math
Section 32
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var c:b2Vec2; public var a:Number; public var c0:b2Vec2; public var a0:Number; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } public function Advance(_arg1:Number):void{ var _local2:Number; if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){ _local2 = ((_arg1 - t0) / (1 - t0)); c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x)); c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y)); a0 = (((1 - _local2) * a0) + (_local2 * a)); t0 = _arg1; }; } public function GetXForm(_arg1:b2XForm, _arg2:Number):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; if ((1 - t0) > Number.MIN_VALUE){ _local4 = ((_arg2 - t0) / (1 - t0)); _arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x)); _arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y)); _local5 = (((1 - _local4) * a0) + (_local4 * a)); _arg1.R.Set(_local5); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; _local3 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } } }//package Box2D.Common.Math
Section 33
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { public class b2Vec2 { public var x:Number; public var y:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function SetZero():void{ x = 0; y = 0; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function MaxV(_arg1:b2Vec2):void{ x = ((x > _arg1.x)) ? x : _arg1.x; y = ((y > _arg1.y)) ? y : _arg1.y; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function Negative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function CrossVF(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function Abs():void{ x = Math.abs(x); y = Math.abs(y); } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function MulM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function Normalize():Number{ var _local1:Number; var _local2:Number; _local1 = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; _local2 = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function CrossFV(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 34
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { public class b2XForm { public var R:b2Mat22; public var position:b2Vec2; public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } } }//package Box2D.Common.Math
Section 35
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _g:uint;// = 0 private var _b:uint;// = 0 private var _r:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = 0; _g = 0; _b = 0; super(); _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function get color():uint{ return (((_r | (_g << 8)) | (_b << 16))); } public function set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set g(_arg1:Number):void{ _g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } } }//package Box2D.Common
Section 36
//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { import Box2D.Common.Math.*; public class b2Settings { public static const b2_angularSleepTolerance:Number = 0.0111111111111111; public static const b2_linearSleepTolerance:Number = 0.01; public static const b2_angularSlop:Number = 0.0349065850398866; public static const b2_linearSlop:Number = 0.005; public static const b2_pi:Number = 3.14159265358979; public static const b2_maxProxies:int = 0x0200; public static const b2_maxAngularVelocitySquared:Number = 62500; public static const b2_maxPolygonVertices:int = 8; public static const b2_velocityThreshold:Number = 1; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_maxPairs:int = 4096; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_timeToSleep:Number = 0.5; public static const b2_maxManifoldPoints:int = 2; public static const b2_maxAngularVelocity:Number = 250; public static const b2_maxAngularCorrection:Number = 0.139626340159546; public static const USHRT_MAX:int = 0xFFFF; public static const b2_maxLinearVelocity:Number = 200; public static const b2_maxLinearCorrection:Number = 0.2; public static const b2_toiSlop:Number = 0.04; public static const b2_maxLinearVelocitySquared:Number = 40000; public static function b2Assert(_arg1:Boolean):void{ var _local2:b2Vec2; if (!_arg1){ _local2.x++; }; } } }//package Box2D.Common
Section 37
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static var 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; m_manifold.points[0].normalForce = 0; m_manifold.points[0].tangentForce = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2ContactPoint; var _local5:b2Mat22; var _local6:b2Vec2; _local2 = m_shape1.m_body; _local3 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local2.m_xf, (m_shape2 as b2CircleShape), _local3.m_xf); if (m_manifold.pointCount > 0){ m_manifoldCount = 1; if (m0.pointCount == 0){ m_manifold.points[0].id.features.flip = (m_manifold.points[0].id.features.flip | b2Collision.b2_newPoint); } else { m_manifold.points[0].id.features.flip = (m_manifold.points[0].id.features.flip & ~(b2Collision.b2_newPoint)); }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = s_evalCP; _local4.shape1 = m_shape1; _local4.shape2 = m_shape2; _local4.normal.SetV(m0.normal); _local5 = _local2.m_xf.R; _local6 = m0.points[0].localPoint1; _local4.position.x = (_local2.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y))); _local4.position.y = (_local2.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y))); _local4.separation = m0.points[0].separation; _local4.normalForce = m0.points[0].normalForce; _local4.tangentForce = m0.points[0].tangentForce; _local4.id.key = m0.points[0].id.key; _arg1.Remove(_local4); }; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2CircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 38
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Contact { public var m_shape1:b2Shape; public var m_shape2:b2Shape; public var m_prev:b2Contact; public var m_toi:Number; public var m_next:b2Contact; public var m_friction:Number; public var m_manifoldCount:int; public var m_node1:b2ContactEdge; public var m_node2:b2ContactEdge; public var m_restitution:Number; public var m_flags:uint; public static var e_toiFlag:uint = 8; public static var e_nonSolidFlag:uint = 1; public static var e_slowFlag:uint = 2; public static var e_islandFlag:uint = 4; public static var s_registers:Array; public static var s_initialized:Boolean = false; public function b2Contact(_arg1:b2Shape=null, _arg2:b2Shape=null){ m_node1 = new b2ContactEdge(); m_node2 = new b2ContactEdge(); super(); m_flags = 0; if (((!(_arg1)) || (!(_arg2)))){ m_shape1 = null; m_shape2 = null; return; }; if (((_arg1.IsSensor()) || (_arg2.IsSensor()))){ m_flags = (m_flags | e_nonSolidFlag); }; m_shape1 = _arg1; m_shape2 = _arg2; m_manifoldCount = 0; m_friction = Math.sqrt((m_shape1.m_friction * m_shape2.m_friction)); m_restitution = b2Math.b2Max(m_shape1.m_restitution, m_shape2.m_restitution); m_prev = null; m_next = null; m_node1.contact = null; m_node1.prev = null; m_node1.next = null; m_node1.other = null; m_node2.contact = null; m_node2.prev = null; m_node2.next = null; m_node2.other = null; } public function GetShape1():b2Shape{ return (m_shape1); } public function IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetNext():b2Contact{ return (m_next); } public function GetManifolds():Array{ return (null); } public function GetShape2():b2Shape{ return (m_shape2); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function Update(_arg1:b2ContactListener):void{ var _local2:b2Body; var _local3:b2Body; Evaluate(_arg1); _local2 = m_shape1.GetBody(); _local3 = m_shape2.GetBody(); if (((((((_local2.IsStatic()) || (_local2.IsBullet()))) || (_local3.IsStatic()))) || (_local3.IsBullet()))){ m_flags = (m_flags & ~(e_slowFlag)); } else { m_flags = (m_flags | e_slowFlag); }; } public function Evaluate(_arg1:b2ContactListener):void{ } public static function InitializeRegisters():void{ var _local1:int; var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); _local1 = 0; while (_local1 < b2Shape.e_shapeTypeCount) { s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { s_registers[_local1][_local2] = new b2ContactRegister(); _local2++; }; _local1++; }; AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape); AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape); AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape); } public static function Destroy(_arg1:b2Contact, _arg2):void{ var _local3:int; var _local4:int; var _local5:*; if (_arg1.GetManifoldCount() > 0){ _arg1.GetShape1().GetBody().WakeUp(); _arg1.GetShape2().GetBody().WakeUp(); }; _local3 = _arg1.GetShape1().GetType(); _local4 = _arg1.GetShape2().GetType(); _local5 = s_registers[_local3][_local4].destroyFcn; _local5(_arg1, _arg2); } public static function AddType(_arg1, _arg2, _arg3:int, _arg4:int):void{ s_registers[_arg3][_arg4].createFcn = _arg1; s_registers[_arg3][_arg4].destroyFcn = _arg2; s_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ s_registers[_arg4][_arg3].createFcn = _arg1; s_registers[_arg4][_arg3].destroyFcn = _arg2; s_registers[_arg4][_arg3].primary = false; }; } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ var _local4:int; var _local5:int; var _local6:*; var _local7:b2Contact; var _local8:int; var _local9:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; _local4 = _arg1.m_type; _local5 = _arg2.m_type; _local6 = s_registers[_local4][_local5].createFcn; if (_local6){ if (s_registers[_local4][_local5].primary){ return (_local6(_arg1, _arg2, _arg3)); }; _local7 = _local6(_arg2, _arg1, _arg3); _local8 = 0; while (_local8 < _local7.GetManifoldCount()) { _local9 = _local7.GetManifolds()[_local8]; _local7.GetManifolds()[_local8].normal = _local9.normal.Negative(); _local8++; }; return (_local7); //unresolved jump }; return (null); } } }//package Box2D.Dynamics.Contacts
Section 39
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var restitution:Number; public var body1:b2Body; public var manifold:b2Manifold; public var normal:b2Vec2; public var body2:b2Body; public var friction:Number; public var pointCount:int; public function b2ContactConstraint(){ var _local1:int; normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 40
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var tangentForce:Number; public var normalForce:Number; public var positionImpulse:Number; public var separation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var tangentMass:Number; public var normalMass:Number; public var velocityBias:Number; public var equalizedMass:Number; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 41
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var next:b2ContactEdge; public var other:b2Body; public var contact:b2Contact; public var prev:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 42
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var primary:Boolean; public var createFcn; public var destroyFcn; } }//package Box2D.Dynamics.Contacts
Section 43
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactSolver { public var m_constraintCount:int; public var m_constraints:Array; public var m_allocator; public var m_step:b2TimeStep; public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){ var _local5:int; var _local6:b2Vec2; var _local7:b2Mat22; var _local8:int; var _local9:b2Contact; 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; _local5 = 0; while (_local5 < _arg3) { m_constraintCount = (m_constraintCount + _arg2[_local5].GetManifoldCount()); _local5++; }; _local5 = 0; while (_local5 < m_constraintCount) { m_constraints[_local5] = new b2ContactConstraint(); _local5++; }; _local8 = 0; _local5 = 0; while (_local5 < _arg3) { _local9 = _arg2[_local5]; _local10 = _local9.m_shape1.m_body; _local11 = _local9.m_shape2.m_body; _local12 = _local9.GetManifoldCount(); _local13 = _local9.GetManifolds(); _local14 = _local9.m_friction; _local15 = _local9.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[_local8]; _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.normalForce = _local28.normalForce; _local29.tangentForce = _local28.tangentForce; _local29.separation = _local28.separation; _local29.positionImpulse = 0; _local29.localAnchor1.SetV(_local28.localPoint1); _local29.localAnchor2.SetV(_local28.localPoint2); _local7 = _local10.m_xf.R; _local32 = (_local29.localAnchor1.x - _local10.GetLocalCenter().x); _local33 = (_local29.localAnchor1.y - _local10.GetLocalCenter().y); _local30 = ((_local7.col1.x * _local32) + (_local7.col2.x * _local33)); _local33 = ((_local7.col1.y * _local32) + (_local7.col2.y * _local33)); _local32 = _local30; _local7 = _local11.m_xf.R; _local34 = (_local29.localAnchor2.x - _local11.GetLocalCenter().x); _local35 = (_local29.localAnchor2.y - _local11.GetLocalCenter().y); _local30 = ((_local7.col1.x * _local34) + (_local7.col2.x * _local35)); _local35 = ((_local7.col1.y * _local34) + (_local7.col2.y * _local35)); _local34 = _local30; _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++; }; _local8++; _local22++; }; _local5++; }; } public function InitVelocityConstraints():void{ var _local1:b2Vec2; var _local2:b2Vec2; var _local3:b2Mat22; var _local4:int; var _local5:b2ContactConstraint; var _local6:b2Body; var _local7:b2Body; 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:int; var _local19:b2ContactConstraintPoint; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:b2ContactConstraintPoint; _local4 = 0; while (_local4 < m_constraintCount) { _local5 = m_constraints[_local4]; _local6 = _local5.body1; _local7 = _local5.body2; _local8 = _local6.m_invMass; _local9 = _local6.m_invI; _local10 = _local7.m_invMass; _local11 = _local7.m_invI; _local12 = _local5.normal.x; _local13 = _local5.normal.y; _local14 = _local13; _local15 = -(_local12); if (b2World.s_enableWarmStarting){ _local18 = _local5.pointCount; _local17 = 0; while (_local17 < _local18) { _local19 = _local5.points[_local17]; _local20 = (m_step.dt * ((_local19.normalForce * _local12) + (_local19.tangentForce * _local14))); _local21 = (m_step.dt * ((_local19.normalForce * _local13) + (_local19.tangentForce * _local15))); _local3 = _local6.m_xf.R; _local1 = _local6.GetLocalCenter(); _local22 = (_local19.localAnchor1.x - _local1.x); _local23 = (_local19.localAnchor1.y - _local1.y); _local16 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local16; _local3 = _local7.m_xf.R; _local1 = _local7.GetLocalCenter(); _local24 = (_local19.localAnchor2.x - _local1.x); _local25 = (_local19.localAnchor2.y - _local1.y); _local16 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local16; _local6.m_angularVelocity = (_local6.m_angularVelocity - (_local9 * ((_local22 * _local21) - (_local23 * _local20)))); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x - (_local8 * _local20)); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y - (_local8 * _local21)); _local7.m_angularVelocity = (_local7.m_angularVelocity + (_local11 * ((_local24 * _local21) - (_local25 * _local20)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x + (_local10 * _local20)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y + (_local10 * _local21)); _local17++; }; } else { _local18 = _local5.pointCount; _local17 = 0; while (_local17 < _local18) { _local26 = _local5.points[_local17]; _local26.normalForce = 0; _local26.tangentForce = 0; _local17++; }; }; _local4++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:Number; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:int; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:b2Vec2; var _local10:Number; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:int; var _local21:b2ContactConstraintPoint; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; _local2 = 0; _local5 = 0; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_sweep.c; _local10 = _local7.m_sweep.a; _local11 = _local8.m_sweep.c; _local12 = _local8.m_sweep.a; _local13 = (_local7.m_mass * _local7.m_invMass); _local14 = (_local7.m_mass * _local7.m_invI); _local15 = (_local8.m_mass * _local8.m_invMass); _local16 = (_local8.m_mass * _local8.m_invI); _local17 = _local6.normal.x; _local18 = _local6.normal.y; _local19 = _local6.pointCount; _local20 = 0; while (_local20 < _local19) { _local21 = _local6.points[_local20]; _local3 = _local7.m_xf.R; _local4 = _local7.GetLocalCenter(); _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.GetLocalCenter(); _local24 = (_local21.localAnchor2.x - _local4.x); _local25 = (_local21.localAnchor2.y - _local4.y); _local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local26; _local27 = (_local9.x + _local22); _local28 = (_local9.y + _local23); _local29 = (_local11.x + _local24); _local30 = (_local11.y + _local25); _local31 = (_local29 - _local27); _local32 = (_local30 - _local28); _local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation); _local2 = b2Math.b2Min(_local2, _local33); _local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0)); _local35 = (-(_local21.equalizedMass) * _local34); _local36 = _local21.positionImpulse; _local21.positionImpulse = b2Math.b2Max((_local36 + _local35), 0); _local35 = (_local21.positionImpulse - _local36); _local37 = (_local35 * _local17); _local38 = (_local35 * _local18); _local9.x = (_local9.x - (_local13 * _local37)); _local9.y = (_local9.y - (_local13 * _local38)); _local10 = (_local10 - (_local14 * ((_local22 * _local38) - (_local23 * _local37)))); _local7.m_sweep.a = _local10; _local7.SynchronizeTransform(); _local11.x = (_local11.x + (_local15 * _local37)); _local11.y = (_local11.y + (_local15 * _local38)); _local12 = (_local12 + (_local16 * ((_local24 * _local38) - (_local25 * _local37)))); _local8.m_sweep.a = _local12; _local8.SynchronizeTransform(); _local20++; }; _local5++; }; return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop))); } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:b2Mat22; var _local14:b2Vec2; var _local15:int; var _local16:b2ContactConstraint; var _local17:b2Body; var _local18:b2Body; var _local19:Number; var _local20:b2Vec2; var _local21:Number; var _local22:b2Vec2; 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:int; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; _local15 = 0; while (_local15 < m_constraintCount) { _local16 = m_constraints[_local15]; _local17 = _local16.body1; _local18 = _local16.body2; _local19 = _local17.m_angularVelocity; _local20 = _local17.m_linearVelocity; _local21 = _local18.m_angularVelocity; _local22 = _local18.m_linearVelocity; _local23 = _local17.m_invMass; _local24 = _local17.m_invI; _local25 = _local18.m_invMass; _local26 = _local18.m_invI; _local27 = _local16.normal.x; _local28 = _local16.normal.y; _local29 = _local28; _local30 = -(_local27); _local32 = _local16.pointCount; _local1 = 0; while (_local1 < _local32) { _local2 = _local16.points[_local1]; _local13 = _local17.m_xf.R; _local14 = _local17.GetLocalCenter(); _local3 = (_local2.localAnchor1.x - _local14.x); _local4 = (_local2.localAnchor1.y - _local14.y); _local31 = ((_local13.col1.x * _local3) + (_local13.col2.x * _local4)); _local4 = ((_local13.col1.y * _local3) + (_local13.col2.y * _local4)); _local3 = _local31; _local13 = _local18.m_xf.R; _local14 = _local18.GetLocalCenter(); _local5 = (_local2.localAnchor2.x - _local14.x); _local6 = (_local2.localAnchor2.y - _local14.y); _local31 = ((_local13.col1.x * _local5) + (_local13.col2.x * _local6)); _local6 = ((_local13.col1.y * _local5) + (_local13.col2.y * _local6)); _local5 = _local31; _local7 = (((_local22.x + (-(_local21) * _local6)) - _local20.x) - (-(_local19) * _local4)); _local8 = (((_local22.y + (_local21 * _local5)) - _local20.y) - (_local19 * _local3)); _local33 = ((_local7 * _local27) + (_local8 * _local28)); _local9 = ((-(m_step.inv_dt) * _local2.normalMass) * (_local33 - _local2.velocityBias)); _local34 = b2Math.b2Max((_local2.normalForce + _local9), 0); _local9 = (_local34 - _local2.normalForce); _local11 = ((m_step.dt * _local9) * _local27); _local12 = ((m_step.dt * _local9) * _local28); _local20.x = (_local20.x - (_local23 * _local11)); _local20.y = (_local20.y - (_local23 * _local12)); _local19 = (_local19 - (_local24 * ((_local3 * _local12) - (_local4 * _local11)))); _local22.x = (_local22.x + (_local25 * _local11)); _local22.y = (_local22.y + (_local25 * _local12)); _local21 = (_local21 + (_local26 * ((_local5 * _local12) - (_local6 * _local11)))); _local2.normalForce = _local34; _local7 = (((_local22.x + (-(_local21) * _local6)) - _local20.x) - (-(_local19) * _local4)); _local8 = (((_local22.y + (_local21 * _local5)) - _local20.y) - (_local19 * _local3)); _local35 = ((_local7 * _local29) + (_local8 * _local30)); _local9 = ((m_step.inv_dt * _local2.tangentMass) * -(_local35)); _local36 = (_local16.friction * _local2.normalForce); _local34 = b2Math.b2Clamp((_local2.tangentForce + _local9), -(_local36), _local36); _local9 = (_local34 - _local2.tangentForce); _local11 = ((m_step.dt * _local9) * _local29); _local12 = ((m_step.dt * _local9) * _local30); _local20.x = (_local20.x - (_local23 * _local11)); _local20.y = (_local20.y - (_local23 * _local12)); _local19 = (_local19 - (_local24 * ((_local3 * _local12) - (_local4 * _local11)))); _local22.x = (_local22.x + (_local25 * _local11)); _local22.y = (_local22.y + (_local25 * _local12)); _local21 = (_local21 + (_local26 * ((_local5 * _local12) - (_local6 * _local11)))); _local2.tangentForce = _local34; _local1++; }; _local17.m_angularVelocity = _local19; _local18.m_angularVelocity = _local21; _local15++; }; } public function FinalizeVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; _local1 = 0; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local3.points[_local4].normalForce = _local2.points[_local4].normalForce; _local3.points[_local4].tangentForce = _local2.points[_local4].tangentForce; _local4++; }; _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 44
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function GetManifolds():Array{ return (null); } override public function Evaluate(_arg1:b2ContactListener):void{ } } }//package Box2D.Dynamics.Contacts
Section 45
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static var 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; m_manifold.points[0].normalForce = 0; m_manifold.points[0].tangentForce = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2ContactPoint; var _local5:b2Mat22; var _local6:b2Vec2; _local2 = m_shape1.GetBody(); _local3 = m_shape2.GetBody(); m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local2.m_xf, (m_shape2 as b2CircleShape), _local3.m_xf); if (m_manifold.pointCount > 0){ m_manifoldCount = 1; if (m0.pointCount == 0){ m_manifold.points[0].id.features.flip = (m_manifold.points[0].id.features.flip | b2Collision.b2_newPoint); } else { m_manifold.points[0].id.features.flip = (m_manifold.points[0].id.features.flip & ~(b2Collision.b2_newPoint)); }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = s_evalCP; _local4.shape1 = m_shape1; _local4.shape2 = m_shape2; _local4.normal.SetV(m0.normal); _local5 = _local2.m_xf.R; _local6 = m0.points[0].localPoint1; _local4.position.x = (_local2.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y))); _local4.position.y = (_local2.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y))); _local4.separation = m0.points[0].separation; _local4.normalForce = m0.points[0].normalForce; _local4.tangentForce = m0.points[0].tangentForce; _local4.id = m0.points[0].id; _arg1.Remove(_local4); }; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 46
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2PolygonContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static var s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{ m0 = new b2Manifold(); m_manifolds = [new b2Manifold()]; super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2ContactPoint; var _local5:int; var _local6:Array; var _local7:b2ManifoldPoint; var _local8:Boolean; var _local9:uint; var _local10:int; var _local11:b2ManifoldPoint; var _local12:b2ContactID; var _local13:b2ManifoldPoint; var _local14:b2Mat22; var _local15:b2Vec2; _local2 = m_shape1.GetBody(); _local3 = m_shape2.GetBody(); m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local2.m_xf, (m_shape2 as b2PolygonShape), _local3.m_xf); _local6 = [false, false]; if (m_manifold.pointCount > 0){ _local5 = 0; while (_local5 < m_manifold.pointCount) { _local7 = m_manifold.points[_local5]; _local7.normalForce = 0; _local7.tangentForce = 0; _local8 = false; _local9 = _local7.id.key; _local10 = 0; while (_local10 < m0.pointCount) { if (_local6[_local10] == true){ } else { _local11 = m0.points[_local10]; _local12 = _local11.id; _local12.features.flip = (_local12.features.flip & ~(b2Collision.b2_newPoint)); if (_local12.key == _local9){ _local6[_local10] = true; _local7.normalForce = _local11.normalForce; _local7.tangentForce = _local11.tangentForce; _local8 = true; break; }; }; _local10++; }; if (_local8 == false){ _local7.id.features.flip = (_local7.id.features.flip | b2Collision.b2_newPoint); }; _local5++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (((_arg1) && ((m0.pointCount > 0)))){ _local4 = s_evalCP; _local4.shape1 = m_shape1; _local4.shape2 = m_shape2; _local4.normal.SetV(m0.normal); _local5 = 0; while (_local5 < m0.pointCount) { if (_local6[_local5]){ } else { _local13 = m0.points[_local5]; _local14 = _local2.m_xf.R; _local15 = _local13.localPoint1; _local4.position.x = (_local2.m_xf.position.x + ((_local14.col1.x * _local15.x) + (_local14.col2.x * _local15.y))); _local4.position.y = (_local2.m_xf.position.y + ((_local14.col1.y * _local15.x) + (_local14.col2.y * _local15.y))); _local4.separation = _local13.separation; _local4.normalForce = _local13.normalForce; _local4.tangentForce = _local13.tangentForce; _local4.id.key = _local13.id.key; _arg1.Remove(_local4); }; _local5++; }; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolygonContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 47
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { public var m_localAnchor2:b2Vec2; public var m_force:Number; public var m_localAnchor1:b2Vec2; public var m_u:b2Vec2; public var m_length:Number; public var m_mass: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_force = 0; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local3 = m_body1; _local4 = m_body2; _local2 = _local3.m_xf.R; _local5 = (m_localAnchor1.x - _local3.GetLocalCenter().x); _local6 = (m_localAnchor1.y - _local3.GetLocalCenter().y); _local7 = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; _local8 = (m_localAnchor2.x - _local4.GetLocalCenter().x); _local9 = (m_localAnchor2.y - _local4.GetLocalCenter().y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; _local10 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); _local11 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); _local12 = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); _local13 = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); _local14 = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); _local15 = ((-(_arg1.inv_dt) * m_mass) * _local14); m_force = (m_force + _local15); _local16 = ((_arg1.dt * _local15) * m_u.x); _local17 = ((_arg1.dt * _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 GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.GetLocalCenter().x); _local7 = (m_localAnchor1.y - _local4.GetLocalCenter().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.GetLocalCenter().x); _local9 = (m_localAnchor2.y - _local5.GetLocalCenter().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); m_u.y = ((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y); _local10 = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local10 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local10)); } else { m_u.SetZero(); }; _local11 = ((_local6 * m_u.y) - (_local7 * m_u.x)); _local12 = ((_local8 * m_u.y) - (_local9 * m_u.x)); m_mass = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / m_mass); if (b2World.s_enableWarmStarting){ _local13 = ((_arg1.dt * m_force) * m_u.x); _local14 = ((_arg1.dt * m_force) * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local13)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local14)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local14) - (_local7 * _local13)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local13)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local14)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local14) - (_local9 * _local13)))); } else { m_force = 0; }; } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; _local2 = m_body1; _local3 = m_body2; _local1 = _local2.m_xf.R; _local4 = (m_localAnchor1.x - _local2.GetLocalCenter().x); _local5 = (m_localAnchor1.y - _local2.GetLocalCenter().y); _local6 = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; _local7 = (m_localAnchor2.x - _local3.GetLocalCenter().x); _local8 = (m_localAnchor2.y - _local3.GetLocalCenter().y); _local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8)); _local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8)); _local7 = _local6; _local9 = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); _local10 = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); _local11 = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); _local12 = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local13 = (-(m_mass) * _local12); m_u.Set(_local9, _local10); _local14 = (_local13 * m_u.x); _local15 = (_local13 * m_u.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop)); } } }//package Box2D.Dynamics.Joints
Section 48
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2DistanceJointDef extends b2JointDef { public var length:Number; public var localAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ var _local5:Number; var _local6:Number; body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); _local5 = (_arg4.x - _arg3.x); _local6 = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); } } }//package Box2D.Dynamics.Joints
Section 49
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { public var m_force:Number; public var m_mass:Number; public var m_prismatic1:b2PrismaticJoint; public var m_prismatic2:b2PrismaticJoint; public var m_ground1:b2Body; public var m_ground2:b2Body; public var m_constant:Number; public var m_revolute1:b2RevoluteJoint; public var m_revolute2:b2RevoluteJoint; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_ratio:Number; public var m_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local2:Number; var _local3:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); 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 (_arg1.joint1.m_type == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local2 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local2 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_arg1.joint2.m_type == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local3 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local3 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local2 + (m_ratio * _local3)); m_force = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local1 = 0; _local2 = m_body1; _local3 = m_body2; if (m_revolute1){ _local4 = m_revolute1.GetJointAngle(); } else { _local4 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local5 = m_revolute2.GetJointAngle(); } else { _local5 = m_prismatic2.GetJointTranslation(); }; _local6 = (m_constant - (_local4 + (m_ratio * _local5))); _local7 = (-(m_mass) * _local6); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * m_J.linear1.x)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y)); _local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1)); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2)); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((_local1 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; _local2 = m_ground1; _local3 = m_ground2; _local4 = m_body1; _local5 = m_body2; _local14 = 0; m_J.SetZero(); if (m_revolute1){ m_J.angular1 = -1; _local14 = (_local14 + _local4.m_invI); } else { _local10 = _local2.m_xf.R; _local11 = m_prismatic1.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local4.m_xf.R; _local8 = (m_localAnchor1.x - _local4.GetLocalCenter().x); _local9 = (m_localAnchor1.y - _local4.GetLocalCenter().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.GetLocalCenter().x); _local9 = (m_localAnchor2.y - _local5.GetLocalCenter().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 (b2World.s_enableWarmStarting){ _local15 = (_arg1.dt * m_force); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2)); } else { m_force = 0; }; } override public function GetReactionTorque():Number{ var _local1:b2Mat22; var _local2:Number; var _local3:Number; var _local4:Number; _local1 = m_body2.m_xf.R; _local2 = (m_localAnchor1.x - m_body2.GetLocalCenter().x); _local3 = (m_localAnchor1.y - m_body2.GetLocalCenter().y); _local4 = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3)); _local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3)); _local2 = _local4; _local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x)))); return (_local4); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; _local2 = m_body1; _local3 = m_body2; _local4 = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local5 = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); _local6 = (_arg1.dt * _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * m_J.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2)); } } }//package Box2D.Dynamics.Joints
Section 50
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { public class b2GearJointDef extends b2JointDef { public var joint2:b2Joint; public var joint1:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 51
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linear1:b2Vec2; public var linear2:b2Vec2; public var angular2:Number; public var angular1:Number; public function b2Jacobian(){ linear1 = new b2Vec2(); linear2 = new b2Vec2(); super(); } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linear1.SetV(_arg1); angular1 = _arg2; linear2.SetV(_arg3); angular2 = _arg4; } public function SetZero():void{ linear1.SetZero(); angular1 = 0; linear2.SetZero(); angular2 = 0; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linear1.x * _arg1.x) + (linear1.y * _arg1.y)) + (angular1 * _arg2)) + ((linear2.x * _arg3.x) + (linear2.y * _arg3.y))) + (angular2 * _arg4))); } } }//package Box2D.Dynamics.Joints
Section 52
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2Joint { public var m_islandFlag:Boolean; public var m_body1:b2Body; public var m_prev:b2Joint; public var m_next:b2Joint; public var m_type:int; public var m_collideConnected:Boolean; public var m_node1:b2JointEdge; public var m_node2:b2JointEdge; public var m_userData; public var m_body2:b2Body; public static const e_unknownJoint:int = 0; public static const e_inactiveLimit:int = 0; public static const e_atUpperLimit:int = 2; public static const e_atLowerLimit:int = 1; public static const e_gearJoint:int = 6; public static const e_revoluteJoint:int = 1; public static const e_equalLimits:int = 3; public static const e_distanceJoint:int = 3; public static const e_pulleyJoint:int = 4; public static const e_prismaticJoint:int = 2; public static const e_mouseJoint:int = 5; public function b2Joint(_arg1:b2JointDef){ m_node1 = new b2JointEdge(); m_node2 = new b2JointEdge(); super(); m_type = _arg1.type; m_prev = null; m_next = null; m_body1 = _arg1.body1; m_body2 = _arg1.body2; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function GetType():int{ return (m_type); } public function GetBody2():b2Body{ return (m_body2); } public function GetNext():b2Joint{ return (m_next); } public function GetReactionTorque():Number{ return (0); } public function GetUserData(){ return (m_userData); } public function GetReactionForce():b2Vec2{ return (null); } public function SolvePositionConstraints():Boolean{ return (false); } public function GetBody1():b2Body{ return (m_body1); } public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } public function InitPositionConstraints():void{ } public static function Destroy(_arg1:b2Joint, _arg2):void{ } public static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; _local3 = null; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; default: break; }; return (_local3); } } }//package Box2D.Dynamics.Joints
Section 53
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var collideConnected:Boolean; public var body1:b2Body; public var body2:b2Body; public var userData; public var type:int; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 54
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var joint:b2Joint; public var other:b2Body; public var next:b2JointEdge; public var prev:b2JointEdge; } }//package Box2D.Dynamics.Joints
Section 55
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { public var m_beta:Number; public var m_mass:b2Mat22; public var m_force:b2Vec2; public var m_target:b2Vec2; public var m_localAnchor:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K:b2Mat22; public var m_gamma:Number; public var m_C:b2Vec2; public var m_maxForce:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local2:Number; var _local3:Number; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_force = new b2Vec2(); m_mass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); _local2 = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); _local4 = m_body2.m_xf.R; m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y)); m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y)); m_maxForce = _arg1.maxForce; m_force.SetZero(); _local5 = m_body2.m_mass; _local6 = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); _local7 = (((2 * _local5) * _arg1.dampingRatio) * _local6); _local8 = ((_local5 * _local6) * _local6); m_gamma = (1 / (_local7 + (_arg1.timeStep * _local8))); m_beta = ((_arg1.timeStep * _local8) / (_local7 + (_arg1.timeStep * _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_force); } override public function SolvePositionConstraints():Boolean{ return (true); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local4 = (m_localAnchor.x - _local2.GetLocalCenter().x); _local5 = (m_localAnchor.y - _local2.GetLocalCenter().y); _local6 = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local7 = _local2.m_invMass; _local8 = _local2.m_invI; K1.col1.x = _local7; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local7; K2.col1.x = ((_local8 * _local5) * _local5); K2.col2.x = ((-(_local8) * _local4) * _local5); K2.col1.y = ((-(_local8) * _local4) * _local5); K2.col2.y = ((_local8 * _local4) * _local4); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.Invert(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); _local9 = (_arg1.dt * m_force.x); _local10 = (_arg1.dt * m_force.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local7 * _local9)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local7 * _local10)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local8 * ((_local4 * _local10) - (_local5 * _local9)))); } override public function GetReactionTorque():Number{ return (0); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local6 = (m_localAnchor.x - _local2.GetLocalCenter().x); _local7 = (m_localAnchor.y - _local2.GetLocalCenter().y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; _local8 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); _local9 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_force.x)); _local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_force.y)); _local10 = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); _local11 = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); _local12 = m_force.x; _local13 = m_force.y; m_force.x = (m_force.x + _local10); m_force.y = (m_force.y + _local11); _local14 = m_force.Length(); if (_local14 > m_maxForce){ m_force.Multiply((m_maxForce / _local14)); }; _local10 = (m_force.x - _local12); _local11 = (m_force.y - _local13); _local15 = (_arg1.dt * _local10); _local16 = (_arg1.dt * _local11); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); } } }//package Box2D.Dynamics.Joints
Section 56
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var frequencyHz:Number; public var dampingRatio:Number; public var maxForce:Number; public var target:b2Vec2; public var timeStep:Number; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; timeStep = (1 / 60); } } }//package Box2D.Dynamics.Joints
Section 57
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PrismaticJoint extends b2Joint { public var m_limitForce:Number; public var m_refAngle:Number; public var m_lowerTranslation:Number; public var m_localXAxis1:b2Vec2; public var m_torque:Number; public var m_enableLimit:Boolean; public var m_motorForce:Number; public var m_localYAxis1:b2Vec2; public var m_force:Number; public var m_motorMass:Number; public var m_maxMotorForce:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_angularMass:Number; public var m_limitState:int; public var m_linearMass:Number; public var m_upperTranslation:Number; public var m_motorJacobian:b2Jacobian; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_enableMotor:Boolean; public var m_linearJacobian:b2Jacobian; public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_localXAxis1 = new b2Vec2(); m_localYAxis1 = new b2Vec2(); m_linearJacobian = new b2Jacobian(); m_motorJacobian = new b2Jacobian(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_localXAxis1.SetV(_arg1.localAxis1); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_refAngle = _arg1.referenceAngle; m_linearJacobian.SetZero(); m_linearMass = 0; m_force = 0; m_angularMass = 0; m_torque = 0; m_motorJacobian.SetZero(); m_motorMass = 0; m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerTranslation = _arg1.lowerTranslation; m_upperTranslation = _arg1.upperTranslation; m_maxMotorForce = _arg1.maxMotorForce; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function GetJointTranslation():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:b2Vec2; var _local9:Number; _local1 = m_body1; _local2 = m_body2; _local4 = _local1.GetWorldPoint(m_localAnchor1); _local5 = _local2.GetWorldPoint(m_localAnchor2); _local6 = (_local5.x - _local4.x); _local7 = (_local5.y - _local4.y); _local8 = _local1.GetWorldVector(m_localXAxis1); _local9 = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body1.m_xf.R; _local2 = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); _local3 = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); _local4 = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); _local5 = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y))); return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5)))); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; _local3 = m_body1; _local4 = m_body2; _local5 = _local3.m_invMass; _local6 = _local4.m_invMass; _local7 = _local3.m_invI; _local8 = _local4.m_invI; _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.GetLocalCenter().x); _local12 = (m_localAnchor1.y - _local3.GetLocalCenter().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.GetLocalCenter().x); _local14 = (m_localAnchor2.y - _local4.GetLocalCenter().y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local21 = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); _local22 = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); _local23 = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local24 = (-(m_linearMass) * _local23); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2)); _local25 = b2Math.b2Abs(_local23); _local26 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local27 = (-(m_angularMass) * _local26); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); _local28 = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.GetLocalCenter().x); _local12 = (m_localAnchor1.y - _local3.GetLocalCenter().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.GetLocalCenter().x); _local14 = (m_localAnchor2.y - _local4.GetLocalCenter().y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y)); _local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y)); _local31 = ((_local29 * _local19) + (_local30 * _local20)); _local32 = 0; if (m_limitState == e_equalLimits){ _local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26)); } else { if (m_limitState == e_atLowerLimit){ _local1 = (_local31 - m_lowerTranslation); _local25 = b2Math.b2Max(_local25, -(_local1)); _local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); } else { if (m_limitState == e_atUpperLimit){ _local1 = (_local31 - m_upperTranslation); _local25 = b2Math.b2Max(_local25, _local1); _local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); }; }; }; _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop)))); } public function GetJointSpeed():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:b2Vec2; var _local16:b2Vec2; var _local17:b2Vec2; var _local18:Number; var _local19:Number; var _local20:Number; _local1 = m_body1; _local2 = m_body2; _local3 = _local1.m_xf.R; _local4 = (m_localAnchor1.x - _local1.GetLocalCenter().x); _local5 = (m_localAnchor1.y - _local1.GetLocalCenter().y); _local6 = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; _local7 = (m_localAnchor2.x - _local2.GetLocalCenter().x); _local8 = (m_localAnchor2.y - _local2.GetLocalCenter().y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; _local9 = (_local1.m_sweep.c.x + _local4); _local10 = (_local1.m_sweep.c.y + _local5); _local11 = (_local2.m_sweep.c.x + _local7); _local12 = (_local2.m_sweep.c.y + _local8); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = _local1.GetWorldVector(m_localXAxis1); _local16 = _local1.m_linearVelocity; _local17 = _local2.m_linearVelocity; _local18 = _local1.m_angularVelocity; _local19 = _local2.m_angularVelocity; _local20 = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.GetLocalCenter().x); _local7 = (m_localAnchor1.y - _local2.GetLocalCenter().y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.GetLocalCenter().x); _local9 = (m_localAnchor2.y - _local3.GetLocalCenter().y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local10 = _local2.m_invMass; _local11 = _local3.m_invMass; _local12 = _local2.m_invI; _local13 = _local3.m_invI; _local4 = _local2.m_xf.R; _local14 = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); _local15 = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); _local16 = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); _local17 = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y); m_linearJacobian.linear1.x = -(_local14); m_linearJacobian.linear1.y = -(_local15); m_linearJacobian.linear2.x = _local14; m_linearJacobian.linear2.y = _local15; m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14))); m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14)); m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2)); m_linearMass = (1 / m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > Number.MIN_VALUE){ m_angularMass = (1 / m_angularMass); }; if (((m_enableLimit) || (m_enableMotor))){ _local4 = _local2.m_xf.R; _local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y)); _local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y)); m_motorJacobian.linear1.x = -(_local18); m_motorJacobian.linear1.y = -(_local19); m_motorJacobian.linear2.x = _local18; m_motorJacobian.linear2.y = _local19; m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18))); m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18)); m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2)); m_motorMass = (1 / m_motorMass); if (m_enableLimit){ _local20 = (_local16 - _local6); _local21 = (_local17 - _local7); _local22 = ((_local18 * _local20) + (_local19 * _local21)); if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local22 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local22 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; }; }; if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit == false){ m_limitForce = 0; }; if (b2World.s_enableWarmStarting){ _local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x))); _local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y))); _local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x))); _local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y))); _local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1))); _local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28)); } else { m_force = 0; m_torque = 0; m_limitForce = 0; m_motorForce = 0; }; m_limitPositionImpulse = 0; } public function GetMotorForce():Number{ return (m_motorForce); } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } override public function GetReactionTorque():Number{ return (m_torque); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_invMass; _local5 = _local3.m_invMass; _local6 = _local2.m_invI; _local7 = _local3.m_invI; _local9 = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local10 = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); _local11 = (_arg1.dt * _local10); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2)); _local12 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local13 = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); _local14 = (_arg1.dt * _local13); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15); _local17 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce); _local16 = (m_motorForce - _local17); _local11 = (_arg1.dt * _local16); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local19); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); }; }; }; _local11 = (_arg1.dt * _local19); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; } } }//package Box2D.Dynamics.Joints
Section 58
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PrismaticJointDef extends b2JointDef { public var localAxis1:b2Vec2; public var referenceAngle:Number; public var maxMotorForce:Number; public var motorSpeed:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public var lowerTranslation:Number; public function b2PrismaticJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); localAxis1 = new b2Vec2(); super(); type = b2Joint.e_prismaticJoint; localAxis1.Set(1, 0); referenceAngle = 0; enableLimit = false; lowerTranslation = 0; upperTranslation = 0; enableMotor = false; maxMotorForce = 0; motorSpeed = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); localAxis1 = body1.GetLocalVector(_arg4); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 59
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { public var m_ground:b2Body; public var m_maxLength2:Number; public var m_limitForce1:Number; public var m_maxLength1:Number; public var m_limitState1:int; public var m_limitState2:int; public var m_limitPositionImpulse2:Number; public var m_force:Number; public var m_limitPositionImpulse1:Number; public var m_constant:Number; public var m_state:int; public var m_ratio:Number; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_positionImpulse:Number; public var m_limitMass2:Number; public var m_limitMass1:Number; public var m_pulleyMass:Number; public var m_u1:b2Vec2; public var m_u2:b2Vec2; public var m_limitForce2:Number; public static const b2_minPulleyLength:Number = 2; public function b2PulleyJoint(_arg1:b2PulleyJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u1 = new b2Vec2(); m_u2 = new b2Vec2(); super(_arg1); m_ground = m_body1.m_world.m_groundBody; m_groundAnchor1.x = (_arg1.groundAnchor1.x - m_ground.m_xf.position.x); m_groundAnchor1.y = (_arg1.groundAnchor1.y - m_ground.m_xf.position.y); m_groundAnchor2.x = (_arg1.groundAnchor2.x - m_ground.m_xf.position.x); m_groundAnchor2.y = (_arg1.groundAnchor2.y - m_ground.m_xf.position.y); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_ratio = _arg1.ratio; m_constant = (_arg1.length1 + (m_ratio * _arg1.length2)); m_maxLength1 = b2Math.b2Min(_arg1.maxLength1, (m_constant - (m_ratio * b2_minPulleyLength))); m_maxLength2 = b2Math.b2Min(_arg1.maxLength2, ((m_constant - b2_minPulleyLength) / m_ratio)); m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; } public function GetGroundAnchor2():b2Vec2{ var _local1:b2Vec2; _local1 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; _local1 = m_body1; _local2 = m_body2; _local4 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local5 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local6 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local7 = (m_ground.m_xf.position.y + m_groundAnchor2.y); _local23 = 0; if (m_state == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.GetLocalCenter().x); _local9 = (m_localAnchor1.y - _local1.GetLocalCenter().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.GetLocalCenter().x); _local11 = (m_localAnchor2.y - _local2.GetLocalCenter().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.GetLocalCenter().x); _local9 = (m_localAnchor1.y - _local1.GetLocalCenter().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.GetLocalCenter().x); _local11 = (m_localAnchor2.y - _local2.GetLocalCenter().y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local17 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local17)); m_u2.y = (m_u2.y * (1 / _local17)); } else { m_u2.SetZero(); }; _local18 = (m_maxLength2 - _local17); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass2) * _local18); _local21 = m_limitPositionImpulse2; m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19)); _local19 = (m_limitPositionImpulse2 - _local21); _local14 = (-(_local19) * m_u2.x); _local15 = (-(_local19) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local2.SynchronizeTransform(); }; return ((_local23 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local5 = (m_localAnchor1.x - _local2.GetLocalCenter().x); _local6 = (m_localAnchor1.y - _local2.GetLocalCenter().y); _local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.GetLocalCenter().x); _local9 = (m_localAnchor2.y - _local3.GetLocalCenter().y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; _local10 = (_local2.m_sweep.c.x + _local5); _local11 = (_local2.m_sweep.c.y + _local6); _local12 = (_local3.m_sweep.c.x + _local8); _local13 = (_local3.m_sweep.c.y + _local9); _local14 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local15 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local16 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local17 = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); _local18 = m_u1.Length(); _local19 = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; _local20 = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_force = 0; } else { m_state = e_atUpperLimit; m_positionImpulse = 0; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitForce1 = 0; } else { m_limitState1 = e_atUpperLimit; m_limitPositionImpulse1 = 0; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitForce2 = 0; } else { m_limitState2 = e_atUpperLimit; m_limitPositionImpulse2 = 0; }; _local21 = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); _local22 = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (b2World.s_enableWarmStarting){ _local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x); _local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y); _local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x); _local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25)))); } else { m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; }; } override public function GetReactionTorque():Number{ return (0); } public function GetRatio():Number{ return (m_ratio); } public function GetLength2():Number{ var _local1:b2Vec2; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body2.GetWorldPoint(m_localAnchor2); _local2 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local3 = (m_ground.m_xf.position.y + m_groundAnchor2.y); _local4 = (_local1.x - _local2); _local5 = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local5 = (m_localAnchor1.x - _local2.GetLocalCenter().x); _local6 = (m_localAnchor1.y - _local2.GetLocalCenter().y); _local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.GetLocalCenter().x); _local9 = (m_localAnchor2.y - _local3.GetLocalCenter().y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18); _local20 = m_force; m_force = b2Math.b2Max(0, (m_force + _local19)); _local19 = (m_force - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x); _local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; if (m_limitState1 == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11))); _local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18); _local20 = m_limitForce1; m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19)); _local19 = (m_limitForce1 - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); }; if (m_limitState2 == e_atUpperLimit){ _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13))); _local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18); _local20 = m_limitForce2; m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19)); _local19 = (m_limitForce2 - _local20); _local16 = ((-(_arg1.dt) * _local19) * m_u2.x); _local17 = ((-(_arg1.dt) * _local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } public function GetLength1():Number{ var _local1:b2Vec2; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body1.GetWorldPoint(m_localAnchor1); _local2 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local3 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local4 = (_local1.x - _local2); _local5 = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2; _local1 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } } }//package Box2D.Dynamics.Joints
Section 60
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PulleyJointDef extends b2JointDef { public var maxLength2:Number; public var length1:Number; public var length2:Number; public var maxLength1:Number; public var ratio:Number; public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public function b2PulleyJointDef(){ groundAnchor1 = new b2Vec2(); groundAnchor2 = new b2Vec2(); localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchor1.Set(-1, 1); groundAnchor2.Set(1, 1); localAnchor1.Set(-1, 0); localAnchor2.Set(1, 0); length1 = 0; maxLength1 = 0; length2 = 0; maxLength2 = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); _local8 = (_arg5.x - _arg3.x); _local9 = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local10 = (_arg6.x - _arg4.x); _local11 = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; _local12 = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 61
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { public var m_limitForce:Number; public var m_motorForce:Number; public var m_pivotMass:b2Mat22; public var m_enableLimit:Boolean; public var m_limitState:int; public var m_motorMass:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; private var K:b2Mat22; public var m_pivotForce:b2Vec2; public var m_enableMotor:Boolean; public var m_referenceAngle:Number; public var m_motorSpeed:Number; public var m_limitPositionImpulse:Number; public var m_maxMotorTorque:Number; public var m_upperAngle:Number; public var m_lowerAngle:Number; public static var tImpulse:b2Vec2 = new b2Vec2(); public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){ K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); K3 = new b2Mat22(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_pivotForce = new b2Vec2(); m_pivotMass = new b2Mat22(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_referenceAngle = _arg1.referenceAngle; m_pivotForce.Set(0, 0); m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerAngle = _arg1.lowerAngle; m_upperAngle = _arg1.upperAngle; m_maxMotorTorque = _arg1.maxMotorTorque; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ return (m_pivotForce); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local3 = m_body1; _local4 = m_body2; _local5 = 0; _local6 = _local3.m_xf.R; _local7 = (m_localAnchor1.x - _local3.GetLocalCenter().x); _local8 = (m_localAnchor1.y - _local3.GetLocalCenter().y); _local9 = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; _local10 = (m_localAnchor2.x - _local4.GetLocalCenter().x); _local11 = (m_localAnchor2.y - _local4.GetLocalCenter().y); _local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11)); _local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11)); _local10 = _local9; _local12 = (_local3.m_sweep.c.x + _local7); _local13 = (_local3.m_sweep.c.y + _local8); _local14 = (_local4.m_sweep.c.x + _local10); _local15 = (_local4.m_sweep.c.y + _local11); _local16 = (_local14 - _local12); _local17 = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); _local18 = _local3.m_invMass; _local19 = _local4.m_invMass; _local20 = _local3.m_invI; _local21 = _local4.m_invI; K1.col1.x = (_local18 + _local19); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local18 + _local19); K2.col1.x = ((_local20 * _local8) * _local8); K2.col2.x = ((-(_local20) * _local7) * _local8); K2.col1.y = ((-(_local20) * _local7) * _local8); K2.col2.y = ((_local20 * _local7) * _local7); K3.col1.x = ((_local21 * _local11) * _local11); K3.col2.x = ((-(_local21) * _local10) * _local11); K3.col1.y = ((-(_local21) * _local10) * _local11); K3.col2.y = ((_local21 * _local10) * _local10); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); _local22 = tImpulse.x; _local23 = tImpulse.y; _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); _local24 = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local24 = b2Math.b2Abs(_local2); } else { if (m_limitState == e_atLowerLimit){ _local2 = (_local25 - m_lowerAngle); _local24 = b2Math.b2Max(0, -(_local2)); _local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); } else { if (m_limitState == e_atUpperLimit){ _local2 = (_local25 - m_upperAngle); _local24 = b2Math.b2Max(0, _local2); _local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); }; }; }; _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop)))); } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetJointAngle():Number{ return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.GetLocalCenter().x); _local7 = (m_localAnchor1.y - _local2.GetLocalCenter().y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.GetLocalCenter().x); _local9 = (m_localAnchor2.y - _local3.GetLocalCenter().y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local10 = _local2.m_invMass; _local11 = _local3.m_invMass; _local12 = _local2.m_invI; _local13 = _local3.m_invI; K1.col1.x = (_local10 + _local11); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local10 + _local11); K2.col1.x = ((_local12 * _local7) * _local7); K2.col2.x = ((-(_local12) * _local6) * _local7); K2.col1.y = ((-(_local12) * _local6) * _local7); K2.col2.y = ((_local12 * _local6) * _local6); K3.col1.x = ((_local13 * _local9) * _local9); K3.col2.x = ((-(_local13) * _local8) * _local9); K3.col1.y = ((-(_local13) * _local8) * _local9); K3.col2.y = ((_local13 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Invert(m_pivotMass); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; } else { m_limitForce = 0; }; if (b2World.s_enableWarmStarting){ _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); } else { m_pivotForce.SetZero(); m_motorForce = 0; m_limitForce = 0; }; m_limitPositionImpulse = 0; } public function GetMotorTorque():Number{ return (m_motorForce); } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } override public function GetReactionTorque():Number{ return (m_limitForce); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.GetLocalCenter().x); _local7 = (m_localAnchor1.y - _local2.GetLocalCenter().y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.GetLocalCenter().x); _local9 = (m_localAnchor2.y - _local3.GetLocalCenter().y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local11 = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); _local12 = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); _local13 = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); _local14 = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12))); m_pivotForce.x = (m_pivotForce.x + _local13); m_pivotForce.y = (m_pivotForce.y + _local14); _local15 = (_arg1.dt * _local13); _local16 = (_arg1.dt * _local14); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed); _local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17); _local19 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque); _local18 = (m_motorForce - _local19); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local21); } else { if (m_limitState == e_atLowerLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); } else { if (m_limitState == e_atUpperLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); }; }; }; _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21)); }; } } }//package Box2D.Dynamics.Joints
Section 62
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2RevoluteJointDef extends b2JointDef { public var referenceAngle:Number; public var upperAngle:Number; public var lowerAngle:Number; public var motorSpeed:Number; public var maxMotorTorque:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public function b2RevoluteJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchor1.Set(0, 0); localAnchor2.Set(0, 0); referenceAngle = 0; lowerAngle = 0; upperAngle = 0; maxMotorTorque = 0; motorSpeed = 0; enableLimit = false; enableMotor = false; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 63
//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_xf:b2XForm; public var m_next:b2Body; public var m_contactList:b2ContactEdge; public var m_angularVelocity:Number; public var m_shapeList:b2Shape; public var m_force:b2Vec2; public var m_sweep:b2Sweep; public var m_mass:Number; public var m_torque:Number; public var NameID:String; public var m_userData; public var m_flags:uint; public var m_world:b2World; public var m_linearVelocity:b2Vec2; public var m_prev:b2Body; public var m_invMass:Number; public var m_type:uint; public var m_linearDamping:Number; public var m_shapeCount:int; public var m_angularDamping:Number; public var moveF; public var m_invI:Number; public var m_sleepTime:Number; public var m_jointList:b2JointEdge; public var m_I:Number; public var scor; public var NameB:String; public static var e_fixedRotationFlag:uint = 64; public static var e_frozenFlag:uint = 2; public static var e_maxTypes:uint = 3; public static var e_sleepFlag:uint = 8; private static var s_massData:b2MassData = new b2MassData(); public static var e_bulletFlag:uint = 32; public static var e_staticType:uint = 1; public static var e_islandFlag:uint = 4; public static var e_allowSleepFlag:uint = 16; private static var s_xf1:b2XForm = new b2XForm(); public static var e_dynamicType:uint = 2; public function b2Body(_arg1:b2BodyDef, _arg2:uint, _arg3:b2World){ var _local4:b2Mat22; var _local5:b2Vec2; m_xf = new b2XForm(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.isBullet){ m_flags = (m_flags | e_bulletFlag); }; if (_arg1.fixedRotation){ m_flags = (m_flags | e_fixedRotationFlag); }; if (_arg1.allowSleep){ m_flags = (m_flags | e_allowSleepFlag); }; if (_arg1.isSleeping){ m_flags = (m_flags | e_sleepFlag); }; m_type = _arg2; m_world = _arg3; 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); _local4 = m_xf.R; _local5 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_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_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; if (m_type == e_dynamicType){ m_mass = _arg1.massData.mass; }; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if (((((m_flags & b2Body.e_fixedRotationFlag) == 0)) && ((m_type == e_dynamicType)))){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } public function SetLinearVelocity(_arg1:b2Vec2):void{ m_linearVelocity.SetV(_arg1); } public function WakeUp():void{ m_flags = (m_flags & ~(e_sleepFlag)); m_sleepTime = 0; } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function ApplyTorque(_arg1:Number):void{ if (IsSleeping()){ WakeUp(); }; m_torque = (m_torque + _arg1); } public function IsFrozen():Boolean{ return (((m_flags & e_frozenFlag) == e_frozenFlag)); } public function IsDynamic():Boolean{ return ((m_type == e_dynamicType)); } public function SynchronizeTransform():void{ var _local1:b2Mat22; var _local2:b2Vec2; m_xf.R.Set(m_sweep.a); _local1 = m_xf.R; _local2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function GetInertia():Number{ return (m_I); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function SetMassFromShapes():void{ var _local1:b2Shape; var _local2:Number; var _local3:Number; var _local4:b2MassData; var _local5:b2Mat22; var _local6:b2Vec2; if (m_world.m_lock == true){ return; }; if (m_type == e_staticType){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; _local2 = 0; _local3 = 0; _local4 = s_massData; _local1 = m_shapeList; while (_local1) { _local1.ComputeMass(_local4); m_mass = (m_mass + _local4.mass); _local2 = (_local2 + (_local4.mass * _local4.center.x)); _local3 = (_local3 + (_local4.mass * _local4.center.y)); m_I = (m_I + _local4.I); _local1 = _local1.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local2 = (_local2 * m_invMass); _local3 = (_local3 * m_invMass); } else { m_invMass = 0; m_invI = 0; }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3)))); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_sweep.localCenter.Set(_local2, _local3); _local5 = m_xf.R; _local6 = m_sweep.localCenter; m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local1 = m_shapeList; while (_local1) { _local1.UpdateSweepRadius(m_sweep.localCenter); _local1 = _local1.m_next; }; } public function GetJointList():b2JointEdge{ return (m_jointList); } public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; var _local4:b2Mat22; var _local5:b2Vec2; var _local6:Boolean; var _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); _local4 = m_xf.R; _local5 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); _local6 = false; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulXT(m_xf, _arg1)); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_force.x = (m_force.x + _arg1.x); m_force.y = (m_force.y + _arg1.y); m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))); } public function SynchronizeShapes():Boolean{ var _local1:b2XForm; var _local2:b2Mat22; var _local3:b2Vec2; var _local4:b2Shape; var _local5:Boolean; _local1 = s_xf1; _local1.R.Set(m_sweep.a0); _local2 = _local1.R; _local3 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); _local5 = true; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; return (true); } public function GetAngle():Number{ return (m_sweep.a); } public function GetXForm():b2XForm{ return (m_xf); } public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_linearVelocity.x = (m_linearVelocity.x + (m_invMass * _arg1.x)); m_linearVelocity.y = (m_linearVelocity.y + (m_invMass * _arg1.y)); m_angularVelocity = (m_angularVelocity + (m_invI * (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x)))); } public function GetContactList():b2ContactEdge{ return (m_contactList); } public function GetNext():b2Body{ return (m_next); } public function GetMass():Number{ return (m_mass); } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Mat22; var _local3:b2Vec2; var _local4:b2Shape; if (m_world.m_lock == true){ return; }; if (m_type == e_staticType){ return; }; m_mass = 0; 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); _local2 = m_xf.R; _local3 = m_sweep.localCenter; m_sweep.c.x = ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y)); m_sweep.c.y = ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.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); _local4 = m_shapeList; while (_local4) { _local4.UpdateSweepRadius(m_sweep.localCenter); _local4 = _local4.m_next; }; } public function IsStatic():Boolean{ return ((m_type == e_staticType)); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_xf.R, _arg1)); } public function GetShapeList():b2Shape{ return (m_shapeList); } public function Advance(_arg1:Number):void{ m_sweep.Advance(_arg1); m_sweep.c.SetV(m_sweep.c0); m_sweep.a = m_sweep.a0; SynchronizeTransform(); } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } public function CreateShape(_arg1:b2ShapeDef):b2Shape{ var _local2:b2Shape; if (m_world.m_lock == true){ return (null); }; _local2 = b2Shape.Create(_arg1, m_world.m_blockAllocator); _local2.m_next = m_shapeList; m_shapeList = _local2; m_shapeCount++; _local2.m_body = this; _local2.CreateProxy(m_world.m_broadPhase, m_xf); _local2.UpdateSweepRadius(m_sweep.localCenter); return (_local2); } public function IsConnected(_arg1:b2Body):Boolean{ var _local2:b2JointEdge; _local2 = m_jointList; while (_local2) { if (_local2.other == _arg1){ return ((_local2.joint.m_collideConnected == false)); }; _local2 = _local2.next; }; return (false); } public function DestroyShape(_arg1:b2Shape):void{ var _local2:b2Shape; var _local3:Boolean; if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); _local2 = m_shapeList; _local3 = false; while (_local2 != null) { if (_local2 == _arg1){ _local2 = _arg1.m_next; _local3 = true; break; }; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function GetUserData(){ return (m_userData); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_xf.R, _arg1)); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulX(m_xf, _arg1)); } public function GetPosition():b2Vec2{ return (m_xf.position); } } }//package Box2D.Dynamics
Section 64
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2BodyDef { public var isSleeping:Boolean; public var position:b2Vec2; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var angularDamping:Number; public var fixedRotation:Boolean; public var angle:Number; public var linearDamping:Number; public var massData:b2MassData; public function b2BodyDef(){ massData = new b2MassData(); position = new b2Vec2(); super(); massData.center.SetZero(); massData.mass = 0; massData.I = 0; userData = null; position.Set(0, 0); angle = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; isSleeping = false; fixedRotation = false; isBullet = false; } } }//package Box2D.Dynamics
Section 65
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 66
//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:Boolean; if ((((_arg1.m_groupIndex == _arg2.m_groupIndex)) && (!((_arg1.m_groupIndex == 0))))){ return ((_arg1.m_groupIndex > 0)); }; _local3 = ((!(((_arg1.m_maskBits & _arg2.m_categoryBits) == 0))) && (!(((_arg1.m_categoryBits & _arg2.m_maskBits) == 0)))); return (_local3); } } }//package Box2D.Dynamics
Section 67
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.*; public class b2ContactListener { public function Add(_arg1:b2ContactPoint):void{ } public function Remove(_arg1:b2ContactPoint):void{ } public function Persist(_arg1:b2ContactPoint):void{ } } }//package Box2D.Dynamics
Section 68
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.*; public class b2ContactManager extends b2PairCallback { public var m_world:b2World; public var m_destroyImmediate:Boolean; public var m_nullContact:b2NullContact; public function b2ContactManager(){ m_nullContact = new b2NullContact(); super(); m_world = null; m_destroyImmediate = false; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2Contact; _local3 = (_arg1 as b2Shape); _local4 = (_arg2 as b2Shape); _local5 = _local3.GetBody(); _local6 = _local4.GetBody(); if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; _local7 = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.GetShape1(); _local4 = _local7.GetShape2(); _local5 = _local3.GetBody(); _local6 = _local4.GetBody(); _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } override public function PairRemoved(_arg1, _arg2, _arg3):void{ var _local4:b2Contact; if (_arg3 == null){ return; }; _local4 = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local2:b2Shape; var _local3:b2Shape; var _local4:int; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactPoint; var _local8:b2Body; var _local9:Array; var _local10:int; var _local11:b2Manifold; var _local12:int; var _local13:b2ManifoldPoint; var _local14:b2Mat22; var _local15:b2Vec2; var _local16:b2Vec2; _local2 = _arg1.GetShape1(); _local3 = _arg1.GetShape2(); _local4 = _arg1.GetManifoldCount(); if ((((_local4 > 0)) && (m_world.m_contactListener))){ _local7 = new b2ContactPoint(); _local7.shape1 = _arg1.GetShape1(); _local7.shape2 = _arg1.GetShape2(); _local8 = _local7.shape1.GetBody(); _local9 = _arg1.GetManifolds(); _local10 = 0; while (_local10 < _local4) { _local11 = _local9[_local10]; _local7.normal.SetV(_local11.normal); _local12 = 0; while (_local12 < _local11.pointCount) { _local13 = _local11.points[_local12]; _local14 = _local8.GetXForm().R; _local15 = _local8.GetXForm().position; _local16 = _local13.localPoint1; _local7.position.x = (_local15.x + ((_local14.col1.x * _local16.x) + (_local14.col2.x * _local16.y))); _local7.position.y = (_local15.y + ((_local14.col1.y * _local16.x) + (_local14.col2.y * _local16.y))); _local7.separation = _local13.separation; _local7.normalForce = _local13.normalForce; _local7.tangentForce = _local13.tangentForce; _local7.id = _local13.id; m_world.m_contactListener.Remove(_local7); _local12++; }; _local10++; }; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; _local5 = _local2.GetBody(); _local6 = _local3.GetBody(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local6.m_contactList){ _local6.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } public function Collide():void{ var _local1:b2Contact; var _local2:b2Body; var _local3:b2Body; var _local4:b2ContactPoint; var _local5:b2Body; var _local6:int; var _local7:Array; var _local8:int; var _local9:b2Manifold; var _local10:int; var _local11:b2ManifoldPoint; var _local12:b2Mat22; var _local13:b2Vec2; var _local14:b2Vec2; _local1 = m_world.m_contactList; while (_local1) { _local2 = _local1.GetShape1().GetBody(); _local3 = _local1.GetShape2().GetBody(); if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); if ((((_local1.IsSolid() == false)) && (m_world.m_contactListener))){ _local4 = new b2ContactPoint(); _local4.shape1 = _local1.GetShape1(); _local4.shape2 = _local1.GetShape2(); _local4.normalForce = 0; _local4.tangentForce = 0; _local5 = _local4.shape1.GetBody(); _local6 = _local1.GetManifoldCount(); _local7 = _local1.GetManifolds(); _local8 = 0; while (_local8 < _local6) { _local9 = _local7[_local8]; _local4.normal.SetV(_local9.normal); _local10 = 0; while (_local10 < _local9.pointCount) { _local11 = _local9.points[_local10]; _local12 = _local5.GetXForm().R; _local13 = _local5.GetXForm().position; _local14 = _local11.localPoint1; _local4.position.x = (_local13.x + ((_local12.col1.x * _local14.x) + (_local12.col2.x * _local14.y))); _local4.position.y = (_local13.y + ((_local12.col1.y * _local14.x) + (_local12.col2.y * _local14.y))); _local4.separation = _local11.separation; if ((_local11.id.features.flip & b2Collision.b2_newPoint)){ _local11.id.features.flip = (_local11.id.features.flip & ~(b2Collision.b2_newPoint)); _local4.id = _local11.id; m_world.m_contactListener.Add(_local4); } else { _local4.id = _local11.id; m_world.m_contactListener.Persist(_local4); }; _local10++; }; _local8++; }; }; }; _local1 = _local1.GetNext(); }; } } }//package Box2D.Dynamics
Section 69
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.display.*; public class b2DebugDraw { public var m_xformScale:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_alpha:Number;// = 1 public var m_lineThickness:Number;// = 1 public var m_drawFlags:uint; public var m_sprite:Sprite; public var m_drawScale:Number;// = 1 public static var e_coreShapeBit:uint = 4; public static var e_shapeBit:uint = 1; public static var e_centerOfMassBit:uint = 64; public static var e_aabbBit:uint = 8; public static var e_obbBit:uint = 16; public static var e_pairBit:uint = 32; public static var e_jointBit:uint = 2; public function b2DebugDraw(){ m_drawScale = 1; m_lineThickness = 1; m_alpha = 1; m_fillAlpha = 1; m_xformScale = 1; super(); m_drawFlags = 0; } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ var _local4:int; m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo(0, 0); m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); m_sprite.graphics.endFill(); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale)); } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale)); } public function GetFlags():uint{ return (m_drawFlags); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ var _local4:int; m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } } }//package Box2D.Dynamics
Section 70
//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 71
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Island { public var m_joints:Array; public var m_listener:b2ContactListener; public var m_positionIterationCount:int; public var m_bodyCapacity:int; public var m_bodies:Array; public var m_jointCapacity:int; public var m_contactCount:int; public var m_contacts:Array; public var m_contactCapacity:int; public var m_jointCount:int; public var m_allocator; public var m_bodyCount:int; private static var s_reportCP:b2ContactPoint = new b2ContactPoint(); public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener){ var _local6:int; super(); m_bodyCapacity = _arg1; m_contactCapacity = _arg2; m_jointCapacity = _arg3; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_allocator = _arg4; m_listener = _arg5; m_bodies = new Array(_arg1); _local6 = 0; while (_local6 < _arg1) { m_bodies[_local6] = null; _local6++; }; m_contacts = new Array(_arg2); _local6 = 0; while (_local6 < _arg2) { m_contacts[_local6] = null; _local6++; }; m_joints = new Array(_arg3); _local6 = 0; while (_local6 < _arg3) { m_joints[_local6] = null; _local6++; }; m_positionIterationCount = 0; } public function AddBody(_arg1:b2Body):void{ var _local2 = m_bodyCount++; m_bodies[_local2] = _arg1; } public function AddJoint(_arg1:b2Joint):void{ var _local2 = m_jointCount++; m_joints[_local2] = _arg1; } public function Report(_arg1:Array):void{ var _local2:b2Mat22; var _local3:b2Vec2; var _local4:int; var _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactPoint; var _local8:b2Body; var _local9:int; var _local10:Array; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2ContactConstraintPoint; if (m_listener == null){ return; }; _local4 = 0; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCP; _local7.shape1 = _local5.GetShape1(); _local7.shape2 = _local5.GetShape2(); _local8 = _local7.shape1.GetBody(); _local9 = _local5.GetManifoldCount(); _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]; _local2 = _local8.GetXForm().R; _local3 = _local14.localPoint1; _local7.position.x = (_local8.GetXForm().position.x + ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local7.position.y = (_local8.GetXForm().position.y + ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); _local7.separation = _local14.separation; _local7.normalForce = _local15.normalForce; _local7.tangentForce = _local15.tangentForce; if ((_local14.id.features.flip & b2Collision.b2_newPoint)){ _local14.id.features.flip = (_local14.id.features.flip & ~(b2Collision.b2_newPoint)); _local7.id.key = _local14.id.key; m_listener.Add(_local7); } else { _local7.id.key = _local14.id.key; m_listener.Persist(_local7); }; _local13++; }; _local11++; }; _local4++; }; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2ContactSolver; var _local8:int; var _local9:Boolean; var _local10:Boolean; var _local11:Boolean; var _local12:Number; var _local13:Number; var _local14: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++; }; _local7 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local7.InitVelocityConstraints(); _local5 = 0; while (_local5 < m_jointCount) { m_joints[_local5].InitVelocityConstraints(_arg1); _local5++; }; _local5 = 0; while (_local5 < _arg1.maxIterations) { _local7.SolveVelocityConstraints(); _local8 = 0; while (_local8 < m_jointCount) { m_joints[_local8].SolveVelocityConstraints(_arg1); _local8++; }; _local5++; }; _local7.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) { m_joints[_local5].InitPositionConstraints(); _local5++; }; m_positionIterationCount = 0; while (m_positionIterationCount < _arg1.maxIterations) { _local9 = _local7.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local10 = true; _local5 = 0; while (_local5 < m_jointCount) { _local11 = m_joints[_local5].SolvePositionConstraints(); _local10 = ((_local10) && (_local11)); _local5++; }; if (((_local9) && (_local10))){ break; }; m_positionIterationCount++; }; }; Report(_local7.m_constraints); if (_arg4){ _local12 = Number.MAX_VALUE; _local13 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local14 = (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; _local12 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local14)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local13)))){ _local6.m_sleepTime = 0; _local12 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local12 = b2Math.b2Min(_local12, _local6.m_sleepTime); }; }; _local5++; }; if (_local12 >= b2Settings.b2_timeToSleep){ _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; m_bodies[_local5].m_flags = (_local6.m_flags | b2Body.e_sleepFlag); _local6.m_linearVelocity.SetZero(); _local6.m_angularVelocity = 0; _local5++; }; }; }; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local3:b2ContactSolver; var _local4:Number; var _local5:b2Body; var _local6:Boolean; _local3 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local2 = 0; while (_local2 < _arg1.maxIterations) { _local3.SolveVelocityConstraints(); _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local5 = m_bodies[_local2]; if (_local5.IsStatic()){ } else { _local5.m_sweep.c0.SetV(_local5.m_sweep.c); _local5.m_sweep.a0 = _local5.m_sweep.a; _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity)); _local5.SynchronizeTransform(); }; _local2++; }; _local4 = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } } }//package Box2D.Dynamics
Section 72
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var dt:Number; public var maxIterations:int; public var inv_dt:Number; } }//package Box2D.Dynamics
Section 73
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2World { public var m_contactList:b2Contact; public var m_blockAllocator; public var m_boundaryListener:b2BoundaryListener; public var m_allowSleep:Boolean; public var m_contactListener:b2ContactListener; public var m_broadPhase:b2BroadPhase; public var m_destructionListener:b2DestructionListener; public var m_jointCount:int; public var m_bodyCount:int; public var m_lock:Boolean; public var m_positionIterationCount:int; public var m_groundBody:b2Body; public var m_contactCount:int; public var m_debugDraw:b2DebugDraw; public var m_contactFilter:b2ContactFilter; public var m_bodyList:b2Body; public var m_stackAllocator; public var m_jointList:b2Joint; public var m_gravity:b2Vec2; public var m_contactManager:b2ContactManager; private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); public static var s_enablePositionCorrection:int = 1; 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 s_enableWarmStarting:int = 1; public static var s_enableTOI:int = 1; public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ var _local4:b2BodyDef; m_contactManager = new b2ContactManager(); super(); m_destructionListener = null; m_boundaryListener = null; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_allowSleep = _arg3; m_gravity = _arg2; m_lock = false; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); _local4 = new b2BodyDef(); m_groundBody = CreateStaticBody(_local4); } public function DrawJoint(_arg1:b2Joint):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2XForm; var _local5:b2XForm; var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Color; var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; _local2 = _arg1.GetBody1(); _local3 = _arg1.GetBody2(); _local4 = _local2.GetXForm(); _local5 = _local3.GetXForm(); _local6 = _local4.position; _local7 = _local5.position; _local8 = _arg1.GetAnchor1(); _local9 = _arg1.GetAnchor2(); _local10 = s_jointColor; switch (_arg1.GetType()){ 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 SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function DrawDebugData():void{ var _local1:uint; var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Color; var _local11:b2XForm; var _local12:b2AABB; var _local13:b2AABB; var _local14:Array; var _local15:Boolean; var _local16:uint; var _local17:b2Pair; var _local18:b2Proxy; var _local19:b2Proxy; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Proxy; var _local23:b2PolygonShape; var _local24:b2OBB; var _local25:b2Vec2; var _local26:b2Mat22; var _local27:b2Vec2; var _local28:Number; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); _local1 = m_debugDraw.GetFlags(); _local7 = new b2Vec2(); _local8 = new b2Vec2(); _local9 = new b2Vec2(); _local10 = new b2Color(0, 0, 0); _local12 = new b2AABB(); _local13 = new b2AABB(); _local14 = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; if ((_local1 & b2DebugDraw.e_shapeBit)){ _local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit); _local3 = m_bodyList; while (_local3) { _local11 = _local3.GetXForm(); _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.GetNext(); }; _local3 = _local3.GetNext(); }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.GetNext(); }; }; 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.GetXForm(); _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.GetType() != 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.GetNext(); }; _local3 = _local3.GetNext(); }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.GetXForm().R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.GetNext(); }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local2:b2JointEdge; var _local3:b2Shape; var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; _local2 = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; _local3 = _arg1.m_shapeList; while (_local3) { _local5 = _local3; _local3 = _local3.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeShape(_local5); }; _local5.DestroyProxy(m_broadPhase); b2Shape.Destroy(_local5, m_blockAllocator); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{ var _local5:b2Color; var _local6:b2CircleShape; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:int; var _local11:b2PolygonShape; var _local12:int; var _local13:Array; var _local14:Array; var _local15:Array; _local5 = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.GetLocalPosition()); _local8 = _local6.GetRadius(); _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 Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Island; var _local4:b2Contact; var _local5:b2Joint; var _local6:int; var _local7:Array; var _local8:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; _local3 = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; _local4 = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; _local5 = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; _local6 = m_bodyCount; _local7 = new Array(_local6); _local8 = m_bodyList; while (_local8) { if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){ } else { if (_local8.IsStatic()){ } else { _local3.Clear(); _local9 = 0; var _temp1 = _local9; _local9 = (_local9 + 1); var _local15 = _temp1; _local7[_local15] = _local8; _local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag); while (_local9 > 0) { --_local9; _local2 = _local7[_local9]; _local3.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local12 = _local2.m_contactList; while (_local12) { if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){ } else { if (_local12.contact.GetManifoldCount() == 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, (s_enablePositionCorrection > 0), m_allowSleep); m_positionIterationCount = Math.max(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.GetNext(); }; m_broadPhase.Commit(); } public function GetGroundBody():b2Body{ return (m_groundBody); } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array; var _local5:int; var _local6:int; _local4 = new Array(_arg3); _local5 = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); _local6 = 0; while (_local6 < _local5) { _arg2[_local6] = (_local4[_local6] as b2Shape); _local6++; }; return (_local5); } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; var _local8:b2Island; var _local9:int; var _local10:Array; var _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:b2TimeStep; var _local17:int; var _local18:Number; var _local19:Number; var _local20:b2Body; var _local21:Boolean; _local8 = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); _local9 = m_bodyCount; _local10 = new Array(_local9); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2.m_sweep.t0 = 0; _local2 = _local2.m_next; }; _local11 = m_contactList; while (_local11) { _local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local11 = _local11.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){ } else { _local18 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local18 = _local11.m_toi; } else { _local3 = _local11.GetShape1(); _local4 = _local11.GetShape2(); _local5 = _local3.GetBody(); _local6 = _local4.GetBody(); 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 = Math.min((((1 - _local18) * _local19) + _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.GetShape1(); _local4 = _local12.GetShape2(); _local5 = _local3.GetBody(); _local6 = _local4.GetBody(); _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if (_local12.GetManifoldCount() == 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.GetManifoldCount() == 0){ } else { _local8.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local20 = _local7.other; if ((_local20.m_flags & b2Body.e_islandFlag)){ } else { if (_local20.IsStatic() == false){ _local20.Advance(_local13); _local20.WakeUp(); }; var _temp2 = _local15; _local15 = (_local15 + 1); var _local23 = _temp2; _local10[_local23] = _local20; _local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag); }; }; }; }; _local7 = _local7.next; }; }; }; _local16 = new b2TimeStep(); _local16.dt = ((1 - _local13) * _arg1.dt); _local16.inv_dt = (1 / _local16.dt); _local16.maxIterations = _arg1.maxIterations; _local8.SolveTOI(_local16); _local17 = 0; while (_local17 < _local8.m_bodyCount) { _local2 = _local8.m_bodies[_local17]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local21 = _local2.SynchronizeShapes(); if ((((_local21 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local17++; }; _local17 = 0; while (_local17 < _local8.m_contactCount) { _local11 = _local8.m_contacts[_local17]; _local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local17++; }; m_broadPhase.Commit(); }; }; } public function GetJointList():b2Joint{ return (m_jointList); } public function GetBodyList():b2Body{ return (m_bodyList); } public function CreateDynamicBody(_arg1:b2BodyDef):b2Body{ var _local2:b2Body; if (m_lock == true){ return (null); }; _local2 = new b2Body(_arg1, b2Body.e_dynamicType, 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 CreateJoint(_arg1:b2JointDef):b2Joint{ var _local2:b2Joint; var _local3:b2Body; var _local4:b2Shape; _local2 = b2Joint.Create(_arg1, m_blockAllocator); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_node1.joint = _local2; _local2.m_node1.other = _local2.m_body2; _local2.m_node1.prev = null; _local2.m_node1.next = _local2.m_body1.m_jointList; if (_local2.m_body1.m_jointList){ _local2.m_body1.m_jointList.prev = _local2.m_node1; }; _local2.m_body1.m_jointList = _local2.m_node1; _local2.m_node2.joint = _local2; _local2.m_node2.other = _local2.m_body1; _local2.m_node2.prev = null; _local2.m_node2.next = _local2.m_body2.m_jointList; if (_local2.m_body2.m_jointList){ _local2.m_body2.m_jointList.prev = _local2.m_node2; }; _local2.m_body2.m_jointList = _local2.m_node2; if (_arg1.collideConnected == false){ _local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2; _local4 = _local3.m_shapeList; while (_local4) { _local4.ResetProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local2:Boolean; var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; var _local6:b2Shape; _local2 = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; _local3 = _arg1.m_body1; _local4 = _arg1.m_body2; _local3.WakeUp(); _local4.WakeUp(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local3.m_jointList){ _local3.m_jointList = _arg1.m_node1.next; }; _arg1.m_node1.prev = null; _arg1.m_node1.next = null; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local4.m_jointList){ _local4.m_jointList = _arg1.m_node2.next; }; _arg1.m_node2.prev = null; _arg1.m_node2.next = null; b2Joint.Destroy(_arg1, m_blockAllocator); m_jointCount--; if (_local2 == false){ _local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4; _local6 = _local5.m_shapeList; while (_local6) { _local6.ResetProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function SetFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function CreateStaticBody(_arg1:b2BodyDef):b2Body{ var _local2:b2Body; if (m_lock == true){ return (null); }; _local2 = new b2Body(_arg1, b2Body.e_staticType, 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 Step(_arg1:Number, _arg2:int):void{ var _local3:b2TimeStep; m_lock = true; _local3 = new b2TimeStep(); _local3.dt = _arg1; _local3.maxIterations = _arg2; if (_arg1 > 0){ _local3.inv_dt = (1 / _arg1); } else { _local3.inv_dt = 0; }; m_contactManager.Collide(); if (_local3.dt > 0){ Solve(_local3); }; if (((s_enableTOI) && ((_local3.dt > 0)))){ SolveTOI(_local3); }; DrawDebugData(); m_lock = false; } } }//package Box2D.Dynamics
Section 74
//DrawSine (com.midasplayer.extras.DrawSine) package com.midasplayer.extras { import flash.display.*; public class DrawSine extends MovieClip { private var target_mc:MovieClip; private var my_height:Number; private var steps:Number; private var stroke_weight:Number;// = 1 private var fill_height:Number; private var my_width:Number; private var fill_color:Number;// = 0xFF0000 private var fill_alpha:Number; private var draw_array; private var stroke_color:Number;// = 0 private var step_x:Number; private var draw_fill:Boolean;// = false public function DrawSine(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:Number){ var _local5:*; draw_array = new Array(); stroke_color = 0; stroke_weight = 1; draw_fill = false; fill_color = 0xFF0000; super(); target_mc = _arg1; my_width = _arg2; my_height = _arg3; steps = _arg4; step_x = (_arg2 / steps); _local5 = 0; while (_local5 < steps) { draw_array.push({x:(step_x * _local5), y:0}); _local5++; }; } public function set_fill(_arg1:Boolean, _arg2:Number, _arg3:Number):void{ draw_fill = _arg1; fill_color = (stroke_color = _arg2); fill_alpha = _arg3; } public function set_stroke(_arg1:Number, _arg2:Number):void{ stroke_weight = _arg1; stroke_color = _arg2; } public function draw_waves(_arg1:Array):void{ var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; _local2 = draw_array.length; _local3 = _arg1.length; _local4 = 0; while (_local4 < _local3) { _local6 = (((_arg1[_local4].cycles * Math.PI) * 2) / steps); _local7 = 0; while (_local7 < _local2) { if (_local4 == 0){ draw_array[_local7].y = (Math.sin((_arg1[_local4].phase + (_local6 * _local7))) * _arg1[_local4].radius); } else { draw_array[_local7].y = (draw_array[_local7].y + (Math.sin((_arg1[_local4].phase + (_local6 * _local7))) * _arg1[_local4].radius)); }; _local7++; }; _local4++; }; target_mc.graphics.clear(); if (stroke_weight > 0){ target_mc.graphics.lineStyle(stroke_weight, stroke_color); }; if (draw_fill){ target_mc.graphics.beginFill(fill_color, fill_alpha); }; target_mc.graphics.moveTo(draw_array[0].x, draw_array[0].y); _local5 = 1; while (_local5 < _local2) { _local8 = draw_array[_local5].x; _local9 = draw_array[_local5].y; target_mc.graphics.lineTo(_local8, _local9); _local5++; }; if (draw_fill){ target_mc.graphics.lineTo(_local8, (my_height / 2)); target_mc.graphics.lineTo(0, (my_height / 2)); target_mc.graphics.lineTo(0, draw_array[0].y); target_mc.graphics.endFill(); }; } } }//package com.midasplayer.extras
Section 75
//md5 (com.midasplayer.extras.md5) package com.midasplayer.extras { public class md5 { public static const HEX_FORMAT_LOWERCASE:uint = 0; public static const HEX_FORMAT_UPPERCASE:uint = 1; public static const BASE64_PAD_CHARACTER_DEFAULT_COMPLIANCE:String = ""; public static const BASE64_PAD_CHARACTER_RFC_COMPLIANCE:String = "="; public static var hexcase:uint = 0; public static var b64pad:String = ""; public static function md5_gg(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn(((_arg2 & _arg4) | (_arg3 & ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function md5_cmn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Number{ return (safe_add(bit_rol(safe_add(safe_add(_arg2, _arg1), safe_add(_arg4, _arg6)), _arg5), _arg3)); } public static function binl_md5(_arg1:Array, _arg2:Number):Array{ 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; _arg1[(_arg2 >> 5)] = (_arg1[(_arg2 >> 5)] | (128 << (_arg2 % 32))); _arg1[((((_arg2 + 64) >>> 9) << 4) + 14)] = _arg2; _local3 = 1732584193; _local4 = -271733879; _local5 = -1732584194; _local6 = 271733878; _local7 = 0; while (_local7 < _arg1.length) { _local8 = _local3; _local9 = _local4; _local10 = _local5; _local11 = _local6; _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 7, -680876936); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 1)], 12, -389564586); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 17, 606105819); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 3)], 22, -1044525330); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 7, -176418897); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 5)], 12, 1200080426); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 17, -1473231341); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 7)], 22, -45705983); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 7, 1770035416); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 9)], 12, -1958414417); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 17, -42063); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 11)], 22, -1990404162); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 7, 1804603682); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 13)], 12, -40341101); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 17, -1502002290); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 15)], 22, 1236535329); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 5, -165796510); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 6)], 9, -1069501632); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 14, 643717713); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 0)], 20, -373897302); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 5, -701558691); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 10)], 9, 38016083); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 14, -660478335); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 4)], 20, -405537848); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 5, 568446438); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 14)], 9, -1019803690); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 14, -187363961); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 8)], 20, 1163531501); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 5, -1444681467); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 2)], 9, -51403784); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 14, 1735328473); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 12)], 20, -1926607734); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 4, -378558); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 8)], 11, -2022574463); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 16, 1839030562); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 14)], 23, -35309556); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 4, -1530992060); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 4)], 11, 1272893353); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 16, -155497632); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 10)], 23, -1094730640); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 4, 681279174); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 0)], 11, -358537222); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 16, -722521979); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 6)], 23, 76029189); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 4, -640364487); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 12)], 11, -421815835); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 16, 530742520); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 2)], 23, -995338651); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 6, -198630844); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 7)], 10, 1126891415); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 15, -1416354905); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 5)], 21, -57434055); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 6, 1700485571); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 3)], 10, -1894986606); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 15, -1051523); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 1)], 21, -2054922799); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 6, 1873313359); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 15)], 10, -30611744); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 15, -1560198380); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 13)], 21, 1309151649); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 6, -145523070); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 11)], 10, -1120210379); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 15, 718787259); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 9)], 21, -343485551); _local3 = safe_add(_local3, _local8); _local4 = safe_add(_local4, _local9); _local5 = safe_add(_local5, _local10); _local6 = safe_add(_local6, _local11); _local7 = (_local7 + 16); }; return ([_local3, _local4, _local5, _local6]); } public static function str2rstr_utf16le(_arg1:String):String{ var _local2:String; var _local3:Number; _local2 = ""; _local3 = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode((_arg1.charCodeAt(_local3) & 0xFF), ((_arg1.charCodeAt(_local3) >>> 8) & 0xFF))); _local3++; }; return (_local2); } public static function hex_hmac_md5(_arg1:String, _arg2:String):String{ return (rstr2hex(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)))); } public static function binl2rstr(_arg1:Array):String{ var _local2:String; var _local3:Number; _local2 = ""; _local3 = 0; while (_local3 < (_arg1.length * 32)) { _local2 = (_local2 + String.fromCharCode(((_arg1[(_local3 >> 5)] >>> (_local3 % 32)) & 0xFF))); _local3 = (_local3 + 8); }; return (_local2); } public static function md5_ff(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn(((_arg2 & _arg3) | (~(_arg2) & _arg4)), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function md5_ii(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn((_arg3 ^ (_arg2 | ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function rstr2binl(_arg1:String):Array{ var _local2:Number; var _local3:Array; _local2 = 0; _local3 = new Array((_arg1.length >> 2)); _local2 = 0; while (_local2 < _local3.length) { _local3[_local2] = 0; _local2++; }; _local2 = 0; while (_local2 < (_arg1.length * 8)) { _local3[(_local2 >> 5)] = (_local3[(_local2 >> 5)] | ((_arg1.charCodeAt((_local2 / 8)) & 0xFF) << (_local2 % 32))); _local2 = (_local2 + 8); }; return (_local3); } public static function md5_vm_test():Boolean{ return ((hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72")); } public static function b64_md5(_arg1:String):String{ return (rstr2b64(rstr_md5(str2rstr_utf8(_arg1)))); } public static function any_hmac_md5(_arg1:String, _arg2:String, _arg3:String):String{ return (rstr2any(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)), _arg3)); } public static function hex_md5(_arg1:String):String{ return (rstr2hex(rstr_md5(str2rstr_utf8(_arg1)))); } public static function bit_rol(_arg1:Number, _arg2:Number):Number{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } public static function encrypt(_arg1:String):String{ return (hex_md5(_arg1)); } public static function md5_hh(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn(((_arg2 ^ _arg3) ^ _arg4), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function rstr2hex(_arg1:String):String{ var _local2:String; var _local3:String; var _local4:Number; var _local5:Number; _local2 = (hexcase) ? "0123456789ABCDEF" : "0123456789abcdef"; _local3 = ""; _local5 = 0; while (_local5 < _arg1.length) { _local4 = _arg1.charCodeAt(_local5); _local3 = (_local3 + (_local2.charAt(((_local4 >>> 4) & 15)) + _local2.charAt((_local4 & 15)))); _local5++; }; return (_local3); } public static function any_md5(_arg1:String, _arg2:String):String{ return (rstr2any(rstr_md5(str2rstr_utf8(_arg1)), _arg2)); } public static function b64_hmac_md5(_arg1:String, _arg2:String):String{ return (rstr2b64(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)))); } public static function rstr2b64(_arg1:String):String{ var _local2:String; var _local3:String; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; _local3 = ""; _local4 = _arg1.length; _local5 = 0; while (_local5 < _local4) { _local6 = (((_arg1.charCodeAt(_local5) << 16) | (((_local5 + 1) < _local4)) ? (_arg1.charCodeAt((_local5 + 1)) << 8) : 0) | (((_local5 + 2) < _local4)) ? _arg1.charCodeAt((_local5 + 2)) : 0); _local7 = 0; while (_local7 < 4) { if (((_local5 * 8) + (_local7 * 6)) > (_arg1.length * 8)){ _local3 = (_local3 + b64pad); } else { _local3 = (_local3 + _local2.charAt(((_local6 >>> (6 * (3 - _local7))) & 63))); }; _local7++; }; _local5 = (_local5 + 3); }; return (_local3); } public static function safe_add(_arg1:Number, _arg2:Number):Number{ var _local3:Number; var _local4:Number; _local3 = ((_arg1 & 0xFFFF) + (_arg2 & 0xFFFF)); _local4 = (((_arg1 >> 16) + (_arg2 >> 16)) + (_local3 >> 16)); return (((_local4 << 16) | (_local3 & 0xFFFF))); } public static function str2rstr_utf8(_arg1:String):String{ var _local2:String; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = ""; _local3 = -1; while (++_local3 < _arg1.length) { _local4 = _arg1.charCodeAt(_local3); _local5 = (((_local3 + 1) < _arg1.length)) ? _arg1.charCodeAt((_local3 + 1)) : 0; if ((((((((0xD800 <= _local4)) && ((_local4 <= 56319)))) && ((0xDC00 <= _local5)))) && ((_local5 <= 57343)))){ _local4 = ((65536 + ((_local4 & 1023) << 10)) + (_local5 & 1023)); _local3++; }; if (_local4 <= 127){ _local2 = (_local2 + String.fromCharCode(_local4)); } else { if (_local4 <= 2047){ _local2 = (_local2 + String.fromCharCode((192 | ((_local4 >>> 6) & 31)), (128 | (_local4 & 63)))); } else { if (_local4 <= 0xFFFF){ _local2 = (_local2 + String.fromCharCode((224 | ((_local4 >>> 12) & 15)), (128 | ((_local4 >>> 6) & 63)), (128 | (_local4 & 63)))); } else { if (_local4 <= 2097151){ _local2 = (_local2 + String.fromCharCode((240 | ((_local4 >>> 18) & 7)), (128 | ((_local4 >>> 12) & 63)), (128 | ((_local4 >>> 6) & 63)), (128 | (_local4 & 63)))); }; }; }; }; }; return (_local2); } public static function rstr_hmac_md5(_arg1:String, _arg2:String):String{ var _local3:Array; var _local4:Array; var _local5:Array; var _local6:Number; var _local7:Array; _local3 = rstr2binl(_arg1); if (_local3.length > 16){ _local3 = binl_md5(_local3, (_arg1.length * 8)); }; _local4 = new Array(16); _local5 = new Array(16); _local6 = 0; while (_local6 < 16) { _local4[_local6] = (_local3[_local6] ^ 909522486); _local5[_local6] = (_local3[_local6] ^ 1549556828); _local6++; }; _local7 = binl_md5(_local4.concat(rstr2binl(_arg2)), (0x0200 + (_arg2.length * 8))); return (binl2rstr(binl_md5(_local5.concat(_local7), (0x0200 + 128)))); } public static function str2rstr_utf16be(_arg1:String):String{ var _local2:String; var _local3:Number; _local2 = ""; _local3 = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode(((_arg1.charCodeAt(_local3) >>> 8) & 0xFF), (_arg1.charCodeAt(_local3) & 0xFF))); _local3++; }; return (_local2); } public static function rstr2any(_arg1:String, _arg2:String):String{ var _local3:Number; var _local4:Array; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Array; var _local9:Array; var _local10:String; _local3 = _arg2.length; _local4 = []; _local9 = ((_arg1.length / 2) as Array); _local5 = 0; while (_local5 < _local9.length) { _local9[_local5] = ((_arg1.charCodeAt((_local5 * 2)) << 8) | _arg1.charCodeAt(((_local5 * 2) + 1))); _local5++; }; while (_local9.length > 0) { _local8 = []; _local7 = 0; _local5 = 0; while (_local5 < _local9.length) { _local7 = ((_local7 << 16) + _local9[_local5]); _local6 = Math.floor((_local7 / _local3)); _local7 = (_local7 - (_local6 * _local3)); if ((((_local8.length > 0)) || ((_local6 > 0)))){ _local8[_local8.length] = _local6; }; _local5++; }; _local4[_local4.length] = _local7; _local9 = _local8; }; _local10 = ""; _local5 = (_local4.length - 1); while (_local5 >= 0) { _local10 = (_local10 + _arg2.charAt(_local4[_local5])); _local5--; }; return (_local10); } public static function rstr_md5(_arg1:String):String{ return (binl2rstr(binl_md5(rstr2binl(_arg1), (_arg1.length * 8)))); } } }//package com.midasplayer.extras
Section 76
//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 _type:String;// = "rect" private var _size:Number;// = 1 public static var RECT:String = "rect"; public static var CIRCLE:String = "circle"; public function SimpleParticle(){ _color = 0; _size = 1; _type = "rect"; super(); } public function set size(_arg1:Number){ _size = _arg1; draw(); } public function get size():Number{ return (_size); } public function set type(_arg1:String){ _type = _arg1; draw(); } public function get type():String{ return (_type); } 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 get color():Number{ return (_color); } public function clear(){ graphics.clear(); } public function set color(_arg1:Number){ _color = _arg1; draw(); } } }//package com.midasplayer.extras
Section 77
//SineWave (com.midasplayer.extras.SineWave) package com.midasplayer.extras { public class SineWave { private var my_radius:Number; private var my_cycles:Number; private var my_phase:Number; private var my_inc:Number; public function SineWave(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){ my_phase = _arg1; my_cycles = _arg2; my_radius = _arg3; my_inc = _arg4; } public function set radius(_arg1:Number):void{ my_radius = _arg1; } public function get cycles():Number{ return (my_cycles); } public function get radius():Number{ return (my_radius); } public function set cycles(_arg1:Number):void{ my_cycles = _arg1; } public function get phase():Number{ return (my_phase); } public function set inc(_arg1:Number):void{ my_inc = _arg1; } public function set phase(_arg1:Number):void{ my_phase = _arg1; } public function get inc():Number{ return (my_inc); } } }//package com.midasplayer.extras
Section 78
//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 _local4:uint; var _local5:int; var _local6:*; _local4 = 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; }; _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 79
//WaterLine (com.midasplayer.extras.WaterLine) package com.midasplayer.extras { import flash.events.*; import flash.display.*; public class WaterLine extends MovieClip { private var _particles:Array; private var _color:uint; private var _lineSize:Number; private var _bubbles:Array; private var _height:Number;// = 400 private var _step:Number; private var _line:Shape; private var _particlesQuantity:Number;// = 20 public function WaterLine(){ _height = 400; _particlesQuantity = 20; super(); trace("WaterLine()"); } public function get randomDirection():Number{ return (((Math.round((Math.random() * 1)) * 2) - 1)); } 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:*; _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 incrThickness():Boolean{ _lineSize = (_lineSize + 0.5); if (_lineSize >= 5){ return (true); }; return (false); } public function addParams(_arg1:uint, _arg2:Number, _arg3:Number):void{ _color = _arg1; _height = _arg2; _lineSize = _arg3; init(); } public function decrThickness():Boolean{ _lineSize--; if (_lineSize <= 0){ return (true); }; return (false); } private function createBubbles():void{ var _local1:Array; var _local2:SimpleParticle; var _local3:*; var _local4:Number; var _local5:Number; var _local6:*; _local1 = [_color, _color]; _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 animate(_arg1:Event):void{ var _local2:SimpleParticle; var _local3:SimpleParticle; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:*; _local8 = 10; _local10 = 3; _line.graphics.clear(); _line.graphics.moveTo(_particles[0].x, _particles[0].y); _line.graphics.lineStyle(_lineSize, _color, 1); _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 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); } } }//package com.midasplayer.extras
Section 80
//WaveEngine (com.midasplayer.extras.WaveEngine) package com.midasplayer.extras { import flash.events.*; import flash.display.*; public class WaveEngine extends MovieClip { private var m_waveHolder:MovieClip; private var m_fillColor:uint; private var m_num_waves:int;// = 3 private var m_sinArr:Array; private var m_rootRef:MovieClip; private var m_wave:DrawSine; public function WaveEngine(_arg1:MovieClip, _arg2:int, _arg3:int, _arg4:uint, _arg5:uint, _arg6:MovieClip){ var _local7:*; m_waveHolder = new MovieClip(); m_sinArr = new Array(); m_num_waves = 3; super(); m_rootRef = _arg1; m_waveHolder = _arg6; m_wave = new DrawSine(m_waveHolder, _arg2, _arg3, 100); _local7 = 0; while (_local7 < m_num_waves) { m_sinArr.push(new SineWave(((Math.random() * Math.PI) * 1.5), (Math.random() * 1.5), ((Math.random() * 1.5) + 1), (Math.random() - 0.5))); _local7++; }; m_wave.set_stroke(3, _arg5); m_wave.set_fill(true, _arg4, 100); m_fillColor = _arg4; } public function colorUpdate(_arg1:uint):void{ var _local2:String; _local2 = ("0x" + _arg1.toString(16)); m_fillColor = uint(_local2); } public function stopWave():void{ m_rootRef.removeEventListener(Event.ENTER_FRAME, update); } public function getWave():MovieClip{ return (m_waveHolder); } public function startWave():void{ m_rootRef.addEventListener(Event.ENTER_FRAME, update); } private function update(_arg1:Event):void{ var _local2:*; for (_local2 in m_sinArr) { m_sinArr[_local2].phase = (m_sinArr[_local2].phase + m_sinArr[_local2].inc); }; m_wave.set_fill(true, m_fillColor, 1); m_wave.draw_waves(m_sinArr); } } }//package com.midasplayer.extras
Section 81
//FunflowAPI (com.midasplayer.FunflowAPI) package com.midasplayer { import flash.events.*; import flash.net.*; import com.midasplayer.extras.*; import flash.external.*; public class FunflowAPI { private static const LINK_TYPE_RIGHT_CLICK:String = "rightclick"; private static const shareURL:String = "http://facebook.king.com/facebook/kinggames/games/share.jsp"; private static const LINK_TYPE_SOLUTIONS:String = "solutions"; private static const LINK_TYPE_HIGHSCORES:String = "highscores"; private static const LINK_TYPE_SIGN:String = "sign"; private static const inviteURL:String = "http://apps.facebook.com/funflow/invite.jsp"; private static const LINK_TYPE_OTHER_GAMES:String = "other_games"; public static const INITIALIZED_EVENT:String = "initialized"; private static const SAK:String = "ggfd7sday923mdsfd8csfds34"; private static const LINK_TYPE_LOADER_MOVIE:String = "loader_movie"; private static const bounceURL:String = "http://www.mygame.com/king/bounce.jsp"; private static const LINK_TYPE_PROTECT:String = "protect"; private static const LINK_TYPE_ADD_GAME:String = "add_game"; public static const HOST_BANNED_EVENT:String = "hostBanned"; private static const loadCountURL:String = "http://www.mygame.com/king/loadcount.jsp"; private static const LINK_TYPE_LOADER_PROGRESS:String = "loader_progress"; private static const sharerURL:String = "http://www.facebook.com/sharer.php"; public static var gameName:String; public static var banned:Boolean = false; public static var isHome:Boolean = false; protected static var dispatcher:EventDispatcher = new EventDispatcher(); private static var sessionID:String; public static var openSame:Boolean = false; public static var fromURL:String; private static var SSK:String = "ng43ui54hy35tdsnd6f54rews"; private static function loadUrlErrorHandler(_arg1:Event):void{ trace(("Unable to load url: " + _arg1)); } public static function openLoaderProgressLink():void{ if (!isHome){ openFunflowPage(LINK_TYPE_LOADER_PROGRESS); }; } private static function openShareScorePage(_arg1:int):void{ var _local2:URLVariables; _local2 = new URLVariables(); _local2.score = _arg1; _local2.game = gameName; navigateToURL(new URLRequest(((sharerURL + "?u=") + escape(((shareURL + "?") + _local2.toString())))), "_blank"); } public static function openSolutionsLink():void{ if (isHome){ ExternalInterface.call("loadSolutionsSwf"); } else { openFunflowPage(LINK_TYPE_SOLUTIONS); }; } public static function openAddToWebsiteLink():void{ openFunflowPage(LINK_TYPE_ADD_GAME, "website_content.jsp"); } public static function openOfflineProtectionLink():void{ openFunflowPage(LINK_TYPE_PROTECT); } public static function openOtherGamesLink():void{ openFunflowPage(LINK_TYPE_OTHER_GAMES); } public static function init(_arg1:String, _arg2:String):void{ var loadCounter:URLLoader; var reqvars:URLVariables; var request:URLRequest; var so:SharedObject; var rnd1:Number; var rnd2:Number; var name = _arg1; var from = _arg2; gameName = name; fromURL = from; loadCounter = new URLLoader(); reqvars = new URLVariables(); reqvars.game = gameName; reqvars.from = fromURL; try { so = SharedObject.getLocal("sessionId"); if (so.data.sessionID == null){ rnd1 = Math.abs(Math.floor((Math.random() * 4294967295))); rnd2 = Math.abs(Math.floor((Math.random() * 4294967295))); so.data.sessionID = (rnd1.toString(16) + rnd2.toString(16)); so.flush(); }; sessionID = so.data.sessionID; } catch(e:Error) { sessionID = "error"; }; reqvars.session = sessionID; request = new URLRequest(((loadCountURL + "?") + reqvars.toString())); loadCounter.addEventListener(Event.COMPLETE, loadCountHandler); loadCounter.addEventListener(IOErrorEvent.IO_ERROR, loadUrlErrorHandler); loadCounter.addEventListener(SecurityErrorEvent.SECURITY_ERROR, loadUrlErrorHandler); try { loadCounter.load(request); } catch(error:Error) { trace(("Unable to load loadcount url: " + loadCountURL)); trace(error.message); }; } public static function openInviteDialog(_arg1:Object=null, _arg2:String=null):void{ var parameters:URLVariables; var flashVars = _arg1; var customMessage = _arg2; try { parameters = objectToFlashURLVariables(flashVars); if (customMessage != null){ parameters.customMessage = customMessage; }; if (isHome){ ExternalInterface.call("openInviteDialog", unescape(parameters.toString())); } else { parameters.game = gameName; navigateToURL(new URLRequest(((inviteURL + "?") + parameters.toString())), "_blank"); }; } catch(e:Error) { trace(e); }; } public static function facebookStreamPost(_arg1:String, _arg2:String, _arg3:Object=null):void{ var parameters:URLVariables; var description = _arg1; var type = _arg2; var flashVars = _arg3; try { parameters = objectToFlashURLVariables(flashVars); if (isHome){ ExternalInterface.call("customGameStreamPost", description, type, parameters.toString()); } else { openSharePage(description, flashVars, type); }; } catch(e:Error) { trace(e); }; } public static function openFunflowPage(_arg1:String, _arg2:String=null):void{ var _local3:URLVariables; var _local4:String; _local3 = new URLVariables(); _local3.game = gameName; _local3.from = fromURL; _local3.type = _arg1; _local3.session = sessionID; if (_arg2 != null){ _local3.redirect = _arg2; }; _local4 = "_blank"; if (((isHome) && (openSame))){ _local4 = "_top"; }; navigateToURL(new URLRequest(((bounceURL + "?") + _local3.toString())), _local4); } public static function funflowEventPost(_arg1:String, _arg2:int=1):void{ var eventText = _arg1; var priority = _arg2; try { if (isHome){ ExternalInterface.call("customGameEventPost", eventText, priority); }; } catch(e:Error) { trace(e); }; } private static function loadCountHandler(_arg1:Event):void{ var loadCounter:URLLoader; var vars:URLVariables; var event = _arg1; loadCounter = URLLoader(event.target); trace(("loadCounter.data :" + loadCounter.data)); try { vars = new URLVariables(loadCounter.data); if (vars.h == "true"){ isHome = true; }; if (vars.o == "true"){ openSame = true; }; if (vars.b == "true"){ banned = true; dispatcher.dispatchEvent(new Event(HOST_BANNED_EVENT)); } else { dispatcher.dispatchEvent(new Event(INITIALIZED_EVENT)); }; } catch(e:Error) { trace(("Error reading data from loadcount url: " + e)); dispatcher.dispatchEvent(new Event(INITIALIZED_EVENT)); }; } public static function addEventListener(_arg1:String, _arg2:Function):void{ if (dispatcher == null){ dispatcher = new EventDispatcher(); }; dispatcher.addEventListener(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ if (dispatcher == null){ return; }; dispatcher.removeEventListener(_arg1, _arg2); } public static function openLoaderMovieLink():void{ if (!isHome){ openFunflowPage(LINK_TYPE_LOADER_MOVIE); }; } public static function openSignLink():void{ if (!isHome){ openFunflowPage(LINK_TYPE_SIGN); }; } public static function submitScore(_arg1:int):void{ var hash:String; var score = _arg1; hash = md5.encrypt(((((score + ":") + gameName) + ":") + SSK)); try { if (isHome){ ExternalInterface.call("submitScore", score, hash); } else { openShareScorePage(score); }; } catch(e:Error) { trace(e); }; } public static function submitLevel(_arg1:int):void{ var hash:String; var level = _arg1; hash = md5.encrypt(((((level + ":") + gameName) + ":") + SSK)); try { if (isHome){ ExternalInterface.call("submitLevel", level, hash); }; } catch(e:Error) { trace(e); }; } public static function openRightClickLink():void{ openFunflowPage(LINK_TYPE_RIGHT_CLICK); } public static function openHighscoresLink():void{ if (!isHome){ openFunflowPage(LINK_TYPE_HIGHSCORES, (("game/" + gameName) + "/highscores")); }; } private static function objectToFlashURLVariables(_arg1:Object):URLVariables{ var _local2:URLVariables; var _local3:String; _local2 = new URLVariables(); if (_arg1 != null){ for (_local3 in _arg1) { if (_local3 != null){ if ((_arg1[_local3] is Array)){ _local2[("fv_" + _local3)] = _arg1[_local3]; } else { _local2[("fv_" + _local3)] = _arg1[_local3].toString(); }; }; }; }; return (_local2); } public static function openSharePage(_arg1:String, _arg2:Object=null, _arg3:String=null):void{ var _local4:URLVariables; _local4 = objectToFlashURLVariables(_arg2); _local4.description = _arg1; _local4.game = gameName; _local4.description = _arg1; if (_arg3 != null){ _local4.type = _arg3; }; navigateToURL(new URLRequest(((sharerURL + "?u=") + escape(((shareURL + "?") + _local4.toString())))), "_blank"); } public static function submitAchievement(_arg1:String):void{ var hash:String; var achievement = _arg1; hash = md5.encrypt(((((achievement + ":") + gameName) + ":") + SAK)); try { if (isHome){ ExternalInterface.call("submitAchievement", achievement, hash); }; } catch(e:Error) { trace(e); }; } } }//package com.midasplayer
Section 82
//KingAPI (com.midasplayer.KingAPI) package com.midasplayer { import flash.events.*; import flash.net.*; import com.midasplayer.extras.*; import flash.external.*; public class KingAPI { public static const LINK_TYPE_RIGHT_CLICK:String = "rightclick"; public static const USER_TYPE_SUBSCRIPTION:int = 3; public static const LINK_TYPE_HIGHSCORES:String = "highscores"; public static const LINK_TYPE_SIGN:String = "sign"; public static const INITIALIZED_EVENT:String = "initialized"; public static const LINK_TYPE_OTHER_GAMES:String = "other_games"; public static const USER_TYPE_REGISTERED:int = 1; private static const SAK:String = "ggfd7sday923mdsfd8csfds34"; private static const loadHomeParametersURL:String = "http://www.king.com/servlet/FreeGameServlet?action=load"; public static const LINK_TYPE_LOADER_MOVIE:String = "loader_movie"; private static const bounceURL:String = "http://www.mygame.com/king/bounce.jsp"; public static const LINK_TYPE_PROTECT:String = "protect"; public static const LINK_TYPE_ADD_GAME:String = "add_game"; public static const USER_TYPE_GOLD:int = 2; public static const USER_TYPE_UNREGISTERED:int = 0; public static const HOST_BANNED_EVENT:String = "hostBanned"; private static const SK:String = "vf78hxcsjak77cxzhjkwad87s"; private static const loadCountURL:String = "http://www.mygame.com/king/loadcount.jsp"; public static const LINK_TYPE_LOADER_PROGRESS:String = "loader_progress"; private static var check:String = null; public static var gameName:String; public static var banned:Boolean = false; protected static var dispatcher:EventDispatcher; public static var isHome:Boolean = false; private static var sessionID:String; private static var iscore:int = 123; public static var fromURL:String; private static var SSK:String = "ng43ui54hy35tdsnd6f54rews"; private static function loadUrlErrorHandler(_arg1:Event):void{ trace(("Unable to load url: " + _arg1)); } public static function resetScore():void{ iscore = 123; check = null; } public static function openOfflineProtectionLink():void{ openKingPage(LINK_TYPE_PROTECT); } public static function init(_arg1:String, _arg2:String):void{ var loadCounter:URLLoader; var reqvars:URLVariables; var request:URLRequest; var so:SharedObject; var rnd1:Number; var rnd2:Number; var name = _arg1; var from = _arg2; gameName = name; fromURL = from; loadCounter = new URLLoader(); reqvars = new URLVariables(); reqvars.game = gameName; reqvars.from = fromURL; try { so = SharedObject.getLocal("sessionId"); if (so.data.sessionID == null){ rnd1 = Math.abs(Math.floor((Math.random() * 4294967295))); rnd2 = Math.abs(Math.floor((Math.random() * 4294967295))); so.data.sessionID = (rnd1.toString(16) + rnd2.toString(16)); so.flush(); }; sessionID = so.data.sessionID; } catch(e:Error) { sessionID = "error"; }; reqvars.session = sessionID; request = new URLRequest(((loadCountURL + "?") + reqvars.toString())); loadCounter.addEventListener(Event.COMPLETE, loadCountHandler); loadCounter.addEventListener(IOErrorEvent.IO_ERROR, loadUrlErrorHandler); loadCounter.addEventListener(SecurityErrorEvent.SECURITY_ERROR, loadUrlErrorHandler); try { loadCounter.load(request); } catch(error:Error) { trace(("Unable to load loadcount url: " + loadCountURL)); trace(error.message); }; } private static function loadHomeParametersHandler(_arg1:Event):void{ var _local2:URLLoader; _local2 = URLLoader(_arg1.target); trace(("loadCounter.data" + _local2.data)); } public static function submitInternalScore():void{ var _local1:int; checkScore(); _local1 = ((iscore - 123) / 2); submitScore(_local1); } public static function openOtherGamesLink():void{ openKingPage(LINK_TYPE_OTHER_GAMES); } public static function openKingPage(_arg1:String, _arg2:String=null):void{ var _local3:URLVariables; var _local4:String; _local3 = new URLVariables(); _local3.game = gameName; _local3.from = fromURL; _local3.type = _arg1; _local3.session = sessionID; if (_arg2 != null){ _local3.redirect = _arg2; }; _local4 = "_blank"; if (isHome){ _local4 = "_top"; }; navigateToURL(new URLRequest(((bounceURL + "?") + _local3.toString())), _local4); } private static function loadCountHandler(_arg1:Event):void{ var loadCounter:URLLoader; var vars:URLVariables; var event = _arg1; loadCounter = URLLoader(event.target); trace(("loadCounter.data :" + loadCounter.data)); try { vars = new URLVariables(loadCounter.data); if (vars.h == "true"){ isHome = true; }; if (vars.b == "true"){ banned = true; dispatcher.dispatchEvent(new Event(HOST_BANNED_EVENT)); } else { dispatcher.dispatchEvent(new Event(INITIALIZED_EVENT)); }; trace((("::" + vars.h) + "::")); trace((("::" + vars.b) + "::")); } catch(e:Error) { trace(("Error reading data from loadcount url: " + e)); dispatcher.dispatchEvent(new Event(INITIALIZED_EVENT)); }; } public static function addEventListener(_arg1:String, _arg2:Function):void{ if (dispatcher == null){ dispatcher = new EventDispatcher(); }; dispatcher.addEventListener(_arg1, _arg2); } public static function openLoaderMovieLink():void{ openKingPage(LINK_TYPE_LOADER_MOVIE); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ if (dispatcher == null){ return; }; dispatcher.removeEventListener(_arg1, _arg2); } public static function submitScore(_arg1:int):void{ var hash:String; var score = _arg1; hash = md5.encrypt(((((score + ":") + gameName) + ":") + SSK)); try { if (isHome){ ExternalInterface.call("submitScore", score, hash); } else { openKingPage(LINK_TYPE_HIGHSCORES, ((((("game/" + gameName) + "/submit/") + score) + ":") + hash)); }; } catch(e:Error) { trace(e); }; } public static function submitLevel(_arg1:int):void{ var hash:String; var level = _arg1; trace((gameName + "King")); hash = md5.encrypt(((((level + ":") + gameName) + ":") + SSK)); try { if (isHome){ ExternalInterface.call("submitLevel", level, hash); }; } catch(e:Error) { trace(e); }; } public static function openHighscoresLink():void{ openKingPage(LINK_TYPE_HIGHSCORES, (("game/" + gameName) + "/highscores")); } public static function openSignLink():void{ if (!isHome){ openKingPage(LINK_TYPE_SIGN); }; } public static function openRightClickLink():void{ openKingPage(LINK_TYPE_RIGHT_CLICK); } private static function checkScore():void{ if (check != null){ if (check != md5.encrypt(((((iscore + ":") + gameName) + ":") + SK))){ SSK = "ng41ui54hy35tdsnd6f54rews"; }; }; } public static function addScore(_arg1:int):int{ var _local2:int; checkScore(); _local2 = ((iscore - 123) / 2); _local2 = (_local2 + _arg1); iscore = ((_local2 * 2) + 123); check = md5.encrypt(((((iscore + ":") + gameName) + ":") + SK)); return (_local2); } public static function openLoaderProgressLink():void{ openKingPage(LINK_TYPE_LOADER_PROGRESS); } public static function openAddToWebsiteLink():void{ openKingPage(LINK_TYPE_ADD_GAME, "website_content.jsp"); } public static function submitAchievement(_arg1:String):void{ var hash:String; var achievement = _arg1; hash = md5.encrypt(((((achievement + ":") + gameName) + ":") + SAK)); try { if (isHome){ ExternalInterface.call("submitAchievement", achievement, hash); }; } catch(e:Error) { trace(e); }; } } }//package com.midasplayer
Section 83
//MainLoader (com.midasplayer.MainLoader) package com.midasplayer { import flash.events.*; import flash.display.*; import fl.transitions.*; import flash.geom.*; import com.midasplayer.extras.*; import fl.transitions.easing.*; import flash.media.*; public class MainLoader extends MovieClip { private var m_tween:Tween; private var m_dist:Number; private var m_yellowDest:Number; private var m_logoHolder:Sprite; private var m_rootRef:MovieClip; private var m_maskRown:MovieClip; private var m_GREEN:MovieClip; private var m_loaderContent:Array; private var m_bounce:Boolean;// = false private var m_otherGames:Sprite; private var m_colorOff:Boolean;// = false private var m_ferryRed:MovieClip; private var m_pressBtn:Boolean;// = false private var m_streamGreen:Boolean;// = true private var GAME_NAME:String;// = "black-ants-rescue" private var m_count;// = 0 private var m_sampleLoadPerc:Number;// = -1 private var m_clsBlue:Water; private var m_endColor:ColorTransform; private var m_BLUE:MovieClip; private var m_greenDest:Number; private var m_waveEngineLogo:WaveEngine; private var STAGE_WIDTH:Number;// = 550 private var m_waveEngineCrown:WaveEngine; private var m_ferryGreen:MovieClip; private var m_clsRed:Water; private var m_overBtn:Boolean;// = false private var m_startColor:ColorTransform; private var m_streamBlue:Boolean;// = false private var m_ferryBlue:MovieClip; private var m_tweenBounceLogo:Tween; private var m_prevPerc:Number;// = -1 private var m_bg:Sprite; private var m_waveHolderLogo:MovieClip; private var m_step:Number; private var m_logoFill:Boolean;// = true private var m_isLoaded:Boolean;// = false private var m_streamHeight:Number; private var m_sun:Sprite; private var m_mask:MovieClip; private var m_crownFill:Boolean;// = false private var m_clsGreen:Water; private var m_safari:Boolean;// = false private var m_RED:MovieClip; private var MOCHI:String;// = "00895dcc" private var m_streamRed:Boolean;// = false private var STAGE_HEIGHT:Number;// = 400 private var m_gameFrameRate:int; private var m_play:Sprite; private var m_waveHolderCrown:MovieClip; public static const DOCUMENT_CLASS:String = "Program"; public function MainLoader(){ m_loaderContent = new Array(); m_waveHolderLogo = new MovieClip(); m_waveHolderCrown = new MovieClip(); m_play = new Sprite(); m_otherGames = new Sprite(); m_mask = new MovieClip(); m_maskRown = new MovieClip(); m_RED = new WaterHolderR(); m_GREEN = new WaterHolderG(); m_BLUE = new WaterHolderB(); m_ferryGreen = new ferryGreen(); m_ferryRed = new ferryRed(); m_ferryBlue = new ferryBlue(); m_safari = false; m_count = 0; m_prevPerc = -1; m_sampleLoadPerc = -1; m_isLoaded = false; m_overBtn = false; m_pressBtn = false; m_logoFill = true; m_crownFill = false; m_colorOff = false; m_streamGreen = true; m_streamBlue = false; m_streamRed = false; m_bounce = false; GAME_NAME = "black-ants-rescue"; MOCHI = "00895dcc"; STAGE_WIDTH = 550; STAGE_HEIGHT = 400; super(); addFrameScript(1, frame2); stop(); m_rootRef = this; m_bg = new Sprite(); m_bg.graphics.beginFill(0x333333, 1); m_bg.graphics.drawRect(0, 0, STAGE_WIDTH, STAGE_HEIGHT); m_bg.addEventListener(MouseEvent.CLICK, openKingPage); m_rootRef.addChild(m_bg); m_loaderContent.push(m_bg); stage.scaleMode = StageScaleMode.NO_SCALE; KingAPI.addEventListener(KingAPI.INITIALIZED_EVENT, onKingApiInit); KingAPI.addEventListener(KingAPI.HOST_BANNED_EVENT, onKingApiInit); KingAPI.init("black-ants-rescue", root.loaderInfo.url); FunflowAPI.addEventListener(FunflowAPI.INITIALIZED_EVENT, initialized); FunflowAPI.addEventListener(FunflowAPI.HOST_BANNED_EVENT, banned); FunflowAPI.init("black-ants-rescue", loaderInfo.url); } private function onLoaderMovieFinished():void{ m_tween.removeEventListener(TweenEvent.MOTION_CHANGE, tweenTransformCrown); m_rootRef.removeEventListener(Event.ENTER_FRAME, update); } private function onPlayReleased(_arg1:MouseEvent):void{ cleanUp(); gotoGame(); } private function onBtnOut(_arg1:MouseEvent):void{ _arg1.target.removeEventListener(MouseEvent.MOUSE_DOWN, onBtnPress); if (m_pressBtn){ _arg1.target.x = (_arg1.target.x - 1); _arg1.target.y = (_arg1.target.y - 2); m_pressBtn = false; }; } private function onBtnPress(_arg1:MouseEvent):void{ m_pressBtn = true; _arg1.target.x = (_arg1.target.x + 1); _arg1.target.y = (_arg1.target.y + 2); } function frame2(){ } private function onBtnOver(_arg1:MouseEvent):void{ _arg1.target.addEventListener(MouseEvent.MOUSE_DOWN, onBtnPress); } private function tweenTransformLogo(_arg1:TweenEvent):void{ m_waveEngineLogo.colorUpdate(interpolateColor(m_startColor, m_endColor, m_tween.position).color); } private function update(_arg1:Event):void{ var _local2:int; var _local3:int; var _local4:MovieClip; var _local5:Sound; var _local6:Sound; if (m_safari){ if (m_rootRef.framesLoaded == m_rootRef.totalFrames){ m_isLoaded = true; }; } else { if ((((stage.loaderInfo.bytesLoaded == stage.loaderInfo.bytesTotal)) && (!(m_isLoaded)))){ m_isLoaded = true; }; }; m_count++; if (m_streamGreen){ if (m_count == 1){ m_GREEN.height = (m_GREEN.height - m_GREEN.height); m_GREEN.alpha = 1; m_ferryGreen.gotoAndStop("on"); }; m_GREEN.height = (m_GREEN.height + 20); if (m_GREEN.height >= m_streamHeight){ m_GREEN.height = m_streamHeight; if (m_clsGreen.decrThickness(false)){ m_streamGreen = false; m_streamBlue = true; m_count = 0; }; }; }; if (m_streamBlue){ if (m_count >= 40){ if (m_count == 40){ m_BLUE.height = (m_BLUE.height - m_BLUE.height); m_BLUE.alpha = 1; m_ferryBlue.gotoAndStop("on"); m_tween = new Tween(m_waveHolderLogo, "", None.easeNone, 0, 1, 2, true); m_tween.addEventListener(TweenEvent.MOTION_CHANGE, tweenTransformLogo); }; m_BLUE.height = (m_BLUE.height + 20); if (m_BLUE.height >= m_streamHeight){ m_BLUE.height = m_streamHeight; if (m_clsBlue.decrThickness(false)){ m_streamBlue = false; }; }; }; }; if (m_logoFill){ if (m_waveHolderLogo.y > m_greenDest){ m_waveHolderLogo.y = (m_waveHolderLogo.y - 0.3); } else { m_waveHolderLogo.y = m_greenDest; if (!m_streamBlue){ m_colorOff = true; m_waveEngineLogo.stopWave(); }; }; }; if (m_colorOff){ if (m_logoFill){ if (m_clsBlue.decrThickness(true)){ if (m_BLUE.rotation != 180){ m_BLUE.rotation = 180; m_BLUE.y = (STAGE_HEIGHT / 2); m_ferryBlue.gotoAndStop("off"); }; m_BLUE.scaleY = (m_BLUE.scaleY - 0.1); if (m_BLUE.scaleY < 0){ m_BLUE.alpha = 0; m_colorOff = false; m_logoFill = false; m_count = 0; m_crownFill = true; m_streamRed = true; m_startColor = new ColorTransform(); m_startColor.color = 0xFF00; m_endColor = new ColorTransform(); m_endColor.color = 0xFFAA00; m_tween.removeEventListener(TweenEvent.MOTION_CHANGE, tweenTransformLogo); m_tween = new Tween(m_waveHolderCrown, "", None.easeNone, 0, 1, 2, true); m_tween.addEventListener(TweenEvent.MOTION_CHANGE, tweenTransformCrown); }; }; }; if (m_crownFill){ if (((m_clsRed.decrThickness(true)) && (m_clsGreen.decrThickness(true)))){ if (m_GREEN.rotation != 180){ m_GREEN.rotation = 180; m_RED.rotation = 180; m_GREEN.y = (STAGE_HEIGHT / 2); m_RED.y = (STAGE_HEIGHT / 2); m_ferryGreen.gotoAndStop("off"); m_ferryRed.gotoAndStop("off"); }; m_GREEN.scaleY = (m_GREEN.scaleY - 0.1); m_RED.scaleY = (m_RED.scaleY - 0.1); if ((((m_GREEN.scaleY < 0)) && ((m_RED.scaleY < 0)))){ m_GREEN.alpha = 0; m_RED.alpha = 0; m_colorOff = false; m_crownFill = false; m_bounce = true; m_count = 0; }; }; }; }; if (m_crownFill){ if (m_sampleLoadPerc == -1){ m_sampleLoadPerc = (100 - (100 * (stage.loaderInfo.bytesLoaded / stage.loaderInfo.bytesTotal))); m_step = (m_dist / 100); }; _local2 = (100 - (100 * (stage.loaderInfo.bytesLoaded / stage.loaderInfo.bytesTotal))); _local2 = ((100 * (m_sampleLoadPerc - _local2)) / m_sampleLoadPerc); if (m_waveHolderCrown.y > m_yellowDest){ if ((m_waveHolderCrown.y - m_step) < m_yellowDest){ m_waveHolderCrown.y = m_yellowDest; } else { if (m_isLoaded){ m_waveHolderCrown.y = (m_waveHolderCrown.y - 0.5); } else { if (m_prevPerc != _local2){ _local3 = (_local2 - m_prevPerc); m_waveHolderCrown.y = (m_waveHolderCrown.y - m_step); m_prevPerc = _local2; }; }; }; } else { m_colorOff = true; m_waveEngineCrown.stopWave(); }; }; if (m_streamRed){ if (m_count >= 20){ if (m_count == 20){ m_RED.height = (m_RED.height - m_RED.height); m_RED.alpha = 1; m_ferryRed.gotoAndStop("on"); }; m_RED.height = (m_RED.height + 20); if (m_RED.height >= m_streamHeight){ m_RED.height = m_streamHeight; if (m_clsRed.decrThickness(false)){ m_streamRed = false; }; }; }; }; if (m_bounce){ if (m_count == 1){ _local4 = new mcWaterRing(); _local4.x = (STAGE_WIDTH / 2); _local4.y = ((STAGE_HEIGHT / 2) + 30); m_rootRef.addChild(_local4); m_loaderContent.push(_local4); }; if (m_count == 2){ _local5 = new sfxBounce(); _local5.play(); }; if (m_count < 3){ m_logoHolder.y = (m_logoHolder.y + 1); m_waveHolderCrown.y = (m_waveHolderCrown.y + 1); m_waveHolderLogo.y = (m_waveHolderLogo.y + 1); m_maskRown.y = (m_maskRown.y + 1); m_mask.y = (m_mask.y + 1); }; if ((((m_count > 2)) && ((m_count < 4)))){ m_logoHolder.y = (m_logoHolder.y - 1); m_waveHolderCrown.y = (m_waveHolderCrown.y - 1); m_waveHolderLogo.y = (m_waveHolderLogo.y - 1); m_maskRown.y = (m_maskRown.y - 1); m_mask.y = (m_mask.y - 1); }; if (m_count == 4){ _local6 = new sfxBell(); _local6.play(); }; if (m_count == 30){ m_play.visible = true; m_otherGames.visible = true; }; if (m_count > 30){ m_play.alpha = (m_play.alpha + 0.05); if (m_count > 40){ m_otherGames.alpha = (m_otherGames.alpha + 0.05); }; if ((((m_play.alpha >= 1)) && ((m_otherGames.alpha >= 1)))){ m_bounce = false; onLoaderMovieFinished(); }; }; }; } private function cleanUp():void{ var _local1:int; m_otherGames.removeEventListener(MouseEvent.MOUSE_UP, onOtherReleased); m_otherGames.removeEventListener(MouseEvent.MOUSE_OVER, onBtnOver); m_otherGames.removeEventListener(MouseEvent.MOUSE_OUT, onBtnOut); m_play.removeEventListener(MouseEvent.MOUSE_UP, onPlayReleased); m_play.removeEventListener(MouseEvent.MOUSE_OVER, onBtnOver); m_play.removeEventListener(MouseEvent.MOUSE_OUT, onBtnOut); _local1 = 0; while (_local1 < m_loaderContent.length) { m_rootRef.removeChild(m_loaderContent[_local1]); m_loaderContent[_local1] = null; _local1++; }; } private function showBannedScreen():void{ var _local1:Sprite; _local1 = new mcBannedSign(); _local1.buttonMode = true; _local1.addEventListener(MouseEvent.CLICK, openKingPage); m_rootRef.addChild(_local1); } public function initialized(_arg1:Event):void{ trace("onFunflowApiInit() :"); } private function onOtherReleased(_arg1:MouseEvent):void{ KingAPI.openOtherGamesLink(); } private function interpolateColor(_arg1:ColorTransform, _arg2:ColorTransform, _arg3:Number):ColorTransform{ var _local4:ColorTransform; _local4 = new ColorTransform(); _local4.redMultiplier = (_arg1.redMultiplier + ((_arg2.redMultiplier - _arg1.redMultiplier) * _arg3)); _local4.greenMultiplier = (_arg1.greenMultiplier + ((_arg2.greenMultiplier - _arg1.greenMultiplier) * _arg3)); _local4.blueMultiplier = (_arg1.blueMultiplier + ((_arg2.blueMultiplier - _arg1.blueMultiplier) * _arg3)); _local4.alphaMultiplier = (_arg1.alphaMultiplier + ((_arg2.alphaMultiplier - _arg1.alphaMultiplier) * _arg3)); _local4.redOffset = (_arg1.redOffset + ((_arg2.redOffset - _arg1.redOffset) * _arg3)); _local4.greenOffset = (_arg1.greenOffset + ((_arg2.greenOffset - _arg1.greenOffset) * _arg3)); _local4.blueOffset = (_arg1.blueOffset + ((_arg2.blueOffset - _arg1.blueOffset) * _arg3)); _local4.alphaOffset = (_arg1.alphaOffset + ((_arg2.alphaOffset - _arg1.alphaOffset) * _arg3)); return (_local4); } private function playLoaderMovie():void{ var _local1:MovieClip; _local1 = new mcFerryLine(); m_rootRef.addChild(m_ferryGreen); m_rootRef.addChild(m_ferryRed); m_rootRef.addChild(m_ferryBlue); m_ferryGreen.x = ((STAGE_WIDTH / 2) - 2); m_ferryRed.x = ((m_ferryGreen.x - (m_ferryGreen.width / 2)) + 15); m_ferryBlue.x = ((m_ferryGreen.x + (m_ferryGreen.width / 2)) - 17); m_ferryBlue.y = (m_ferryGreen.y = (m_ferryRed.y = (m_bg.y + 15))); m_loaderContent.push(m_ferryGreen); m_loaderContent.push(m_ferryRed); m_loaderContent.push(m_ferryBlue); _local1.x = (STAGE_WIDTH / 2); _local1.y = ((m_ferryGreen.y + m_ferryGreen.height) - 9); m_streamHeight = ((STAGE_HEIGHT / 2) - 40); m_clsRed = m_RED.RED; m_clsRed.init(m_streamHeight, 1); m_clsGreen = m_GREEN.GREEN; m_clsGreen.init(m_streamHeight, 1); m_clsBlue = m_BLUE.BLUE; m_clsBlue.init(m_streamHeight, 1); m_RED.alpha = (m_GREEN.alpha = (m_BLUE.alpha = 0)); m_rootRef.addChild(m_RED); m_rootRef.addChild(m_GREEN); m_rootRef.addChild(m_BLUE); m_loaderContent.push(m_RED); m_loaderContent.push(m_GREEN); m_loaderContent.push(m_BLUE); m_RED.x = ((STAGE_WIDTH / 2) - 22); m_GREEN.x = ((STAGE_WIDTH / 2) - 4); m_BLUE.x = ((STAGE_WIDTH / 2) + 16); m_RED.y = (m_GREEN.y = (m_BLUE.y = _local1.y)); m_waveEngineLogo = new WaveEngine(m_rootRef, 205.8, 120, 0xFF00, 0xFF00, m_waveHolderLogo); m_waveHolderLogo = m_waveEngineLogo.getWave(); m_rootRef.addChild(m_waveHolderLogo); m_loaderContent.push(m_waveHolderLogo); m_waveEngineCrown = new WaveEngine(m_rootRef, 67.5, 100, 0xFFAA00, 0xFFAA00, m_waveHolderCrown); m_waveHolderCrown = m_waveEngineCrown.getWave(); m_rootRef.addChild(m_waveHolderCrown); m_loaderContent.push(m_waveHolderCrown); m_logoHolder = new mcLogoHolder(); m_logoHolder.x = (STAGE_WIDTH / 2); m_logoHolder.y = ((STAGE_HEIGHT / 2) - 2); m_logoHolder.mouseEnabled = false; m_rootRef.addChild(m_logoHolder); m_loaderContent.push(m_logoHolder); m_mask = new mcLogoMask(); m_mask.x = m_logoHolder.x; m_mask.y = m_logoHolder.y; m_rootRef.addChild(m_mask); m_loaderContent.push(m_mask); m_maskRown = new mcCrownMask(); m_maskRown.x = m_logoHolder.x; m_maskRown.y = m_logoHolder.y; m_rootRef.addChild(m_maskRown); m_loaderContent.push(m_maskRown); m_waveHolderLogo.mask = m_mask; m_waveHolderLogo.x = ((STAGE_WIDTH / 2) - (m_mask.width / 2)); m_waveHolderLogo.y = (((STAGE_HEIGHT / 2) + (m_mask.height / 2)) + 15); m_waveHolderCrown.mask = m_maskRown; m_waveHolderCrown.x = (m_logoHolder.x - (m_maskRown.width / 2)); m_waveHolderCrown.y = (m_logoHolder.y + 4); m_waveEngineLogo.startWave(); m_waveEngineCrown.startWave(); m_greenDest = ((m_waveHolderLogo.y - (120 / 2)) - 10); m_yellowDest = (m_waveHolderCrown.y - (100 / 2)); m_dist = (m_waveHolderCrown.y - m_yellowDest); m_startColor = new ColorTransform(); m_startColor.color = 0xFF00; m_endColor = new ColorTransform(); m_endColor.color = 35886; m_play = new mcPlay(); m_play.x = (STAGE_WIDTH / 2); m_play.y = ((m_logoHolder.y + m_logoHolder.height) - 5); m_play.buttonMode = true; m_play.alpha = 0; m_play.visible = false; m_play.addEventListener(MouseEvent.MOUSE_UP, onPlayReleased); m_play.addEventListener(MouseEvent.MOUSE_OVER, onBtnOver); m_play.addEventListener(MouseEvent.MOUSE_OUT, onBtnOut); m_rootRef.addChild(m_play); m_loaderContent.push(m_play); m_otherGames = new mcOtherGames(); m_otherGames.x = (STAGE_WIDTH / 2); m_otherGames.y = ((m_play.y + m_play.height) + 15); m_otherGames.buttonMode = true; m_otherGames.alpha = 0; m_otherGames.visible = false; m_otherGames.addEventListener(MouseEvent.MOUSE_UP, onOtherReleased); m_otherGames.addEventListener(MouseEvent.MOUSE_OVER, onBtnOver); m_otherGames.addEventListener(MouseEvent.MOUSE_OUT, onBtnOut); m_rootRef.addChild(m_otherGames); m_loaderContent.push(m_otherGames); m_rootRef.addEventListener(Event.ENTER_FRAME, update); m_safari = ((stage.loaderInfo.bytesTotal == 0)) ? true : false; } public function banned(_arg1:Event):void{ } private function openKingPage(_arg1:Event):void{ KingAPI.openLoaderMovieLink(); } private function onKingApiInit(_arg1:Event):void{ trace(("onKingApiInit() :" + _arg1.type)); if (MOCHI != ""){ MochiBot.track(this, MOCHI); }; m_gameFrameRate = root.stage.frameRate; root.stage.frameRate = 30; if (KingAPI.banned){ showBannedScreen(); return; }; playLoaderMovie(); } private function gotoGame():void{ var _local1:Class; var _local2:Sprite; root.stage.frameRate = m_gameFrameRate; m_rootRef.gotoAndStop(2); _local1 = (loaderInfo.applicationDomain.getDefinition(_slot1.DOCUMENT_CLASS) as Class); _local2 = (new (_local1) as Sprite); addChild(_local2); } private function tweenTransformCrown(_arg1:TweenEvent):void{ m_waveEngineCrown.colorUpdate(interpolateColor(m_startColor, m_endColor, m_tween.position).color); } } }//package com.midasplayer
Section 84
//None (fl.transitions.easing.None) package fl.transitions.easing { public class None { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } } }//package fl.transitions.easing
Section 85
//Tween (fl.transitions.Tween) package fl.transitions { import flash.events.*; import flash.display.*; import flash.utils.*; public class Tween extends EventDispatcher { private var _position:Number;// = NAN public var prevTime:Number;// = NAN public var prevPos:Number;// = NAN public var isPlaying:Boolean;// = false public var begin:Number;// = NAN private var _fps:Number;// = NAN private var _time:Number;// = NAN public var change:Number;// = NAN private var _finish:Number;// = NAN public var looping:Boolean;// = false private var _intervalID:uint;// = 0 public var func:Function; private var _timer:Timer;// = null private var _startTime:Number;// = NAN public var prop:String;// = "" private var _duration:Number;// = NAN public var obj:Object;// = null public var useSeconds:Boolean;// = false protected static var _mc:MovieClip = new MovieClip(); public function Tween(_arg1:Object, _arg2:String, _arg3:Function, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean=false){ isPlaying = false; obj = null; prop = ""; func = function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); }; begin = NaN; change = NaN; useSeconds = false; prevTime = NaN; prevPos = NaN; looping = false; _duration = NaN; _time = NaN; _fps = NaN; _position = NaN; _startTime = NaN; _intervalID = 0; _finish = NaN; _timer = null; super(); if (!arguments.length){ return; }; this.obj = _arg1; this.prop = _arg2; this.begin = _arg4; this.position = _arg4; this.duration = _arg6; this.useSeconds = _arg7; if ((_arg3 is Function)){ this.func = _arg3; }; this.finish = _arg5; this._timer = new Timer(100); this.start(); } public function continueTo(_arg1:Number, _arg2:Number):void{ this.begin = this.position; this.finish = _arg1; if (!isNaN(_arg2)){ this.duration = _arg2; }; this.start(); } public function stop():void{ this.stopEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_STOP, this._time, this._position)); } private function fixTime():void{ if (this.useSeconds){ this._startTime = (getTimer() - (this._time * 1000)); }; } public function set FPS(_arg1:Number):void{ var _local2:Boolean; _local2 = this.isPlaying; this.stopEnterFrame(); this._fps = _arg1; if (_local2){ this.startEnterFrame(); }; } public function get finish():Number{ return ((this.begin + this.change)); } public function get duration():Number{ return (this._duration); } protected function startEnterFrame():void{ var _local1:Number; if (isNaN(this._fps)){ _mc.addEventListener(Event.ENTER_FRAME, this.onEnterFrame, false, 0, true); } else { _local1 = (1000 / this._fps); this._timer.delay = _local1; this._timer.addEventListener(TimerEvent.TIMER, this.timerHandler, false, 0, true); this._timer.start(); }; this.isPlaying = true; } public function set time(_arg1:Number):void{ this.prevTime = this._time; if (_arg1 > this.duration){ if (this.looping){ this.rewind((_arg1 - this._duration)); this.update(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_LOOP, this._time, this._position)); } else { if (this.useSeconds){ this._time = this._duration; this.update(); }; this.stop(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_FINISH, this._time, this._position)); }; } else { if (_arg1 < 0){ this.rewind(); this.update(); } else { this._time = _arg1; this.update(); }; }; } protected function stopEnterFrame():void{ if (isNaN(this._fps)){ _mc.removeEventListener(Event.ENTER_FRAME, this.onEnterFrame); } else { this._timer.stop(); }; this.isPlaying = false; } public function getPosition(_arg1:Number=NaN):Number{ if (isNaN(_arg1)){ _arg1 = this._time; }; return (this.func(_arg1, this.begin, this.change, this._duration)); } public function set finish(_arg1:Number):void{ this.change = (_arg1 - this.begin); } public function set duration(_arg1:Number):void{ this._duration = ((_arg1)<=0) ? Infinity : _arg1; } public function setPosition(_arg1:Number):void{ this.prevPos = this._position; if (this.prop.length){ this.obj[this.prop] = (this._position = _arg1); }; this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_CHANGE, this._time, this._position)); } public function resume():void{ this.fixTime(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_RESUME, this._time, this._position)); } public function fforward():void{ this.time = this._duration; this.fixTime(); } protected function onEnterFrame(_arg1:Event):void{ this.nextFrame(); } public function get position():Number{ return (this.getPosition(this._time)); } public function yoyo():void{ this.continueTo(this.begin, this.time); } public function nextFrame():void{ if (this.useSeconds){ this.time = ((getTimer() - this._startTime) / 1000); } else { this.time = (this._time + 1); }; } protected function timerHandler(_arg1:TimerEvent):void{ this.nextFrame(); _arg1.updateAfterEvent(); } public function get FPS():Number{ return (this._fps); } public function rewind(_arg1:Number=0):void{ this._time = _arg1; this.fixTime(); this.update(); } public function set position(_arg1:Number):void{ this.setPosition(_arg1); } public function get time():Number{ return (this._time); } private function update():void{ this.setPosition(this.getPosition(this._time)); } public function start():void{ this.rewind(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_START, this._time, this._position)); } public function prevFrame():void{ if (!this.useSeconds){ this.time = (this._time - 1); }; } } }//package fl.transitions
Section 86
//TweenEvent (fl.transitions.TweenEvent) package fl.transitions { import flash.events.*; public class TweenEvent extends Event { public var time:Number;// = NAN public var position:Number;// = NAN public static const MOTION_START:String = "motionStart"; public static const MOTION_STOP:String = "motionStop"; public static const MOTION_LOOP:String = "motionLoop"; public static const MOTION_CHANGE:String = "motionChange"; public static const MOTION_FINISH:String = "motionFinish"; public static const MOTION_RESUME:String = "motionResume"; public function TweenEvent(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Boolean=false){ time = NaN; position = NaN; super(_arg1, _arg4, _arg5); this.time = _arg2; this.position = _arg3; } override public function clone():Event{ return (new TweenEvent(this.type, this.time, this.position, this.bubbles, this.cancelable)); } } }//package fl.transitions
Section 87
//level1 (levelsp.level1) package levelsp { public class level1 extends levels1 { public var nOut1:noraOut; public var rstmus1:resMus; public var nIn1:noraIn; public var rstsnd1:resSnd; public var forStar1:vid_star; public var rstm1:resMenu; public var rstgo1:resGo; public var rsts1:resSolution; public var nIn1R:noraInR; public var tck1:tochka; public var rstl1:restLev; public var lvls1:resSelect; public static var param2 = 3; public static var param3 = 3; } }//package levelsp
Section 88
//level10 (levelsp.level10) package levelsp { public class level10 extends levels1 { public var nOut1:noraOut; public var rstmus1:resMus; public var nIn1:noraIn; public var rstsnd1:resSnd; public var forStar1:vydvig; public var rstm1:resMenu; public var rstgo1:resGo; public var rsts1:resSolution; public var nIn1R:noraInR; public var tck1:tochka; public var rstl1:restLev; public var lvls1:resSelect; public static var param2 = 2; public static var param3 = 3; } }//package levelsp
Section 89
//level11 (levelsp.level11) package levelsp { public class level11 extends levels1 { public var nOut1:noraOut; public var otodvig1:plankReturn; public var rstmus1:resMus; public var rstsnd1:resSnd; public var forStar1:izDrov; public var rstm1:resMenu; public var rstgo1:resGo; public var nIn1:noraIn; public var fv1:факел; public var link1:links; public var rsts1:resSolution; public var nIn1R:noraInR; public var tck1:tochka; public var rstl1:restLev; public var lvls1:resSelect; public static var param2 = 2; public static var param3 = 2; } }//package levelsp
Section 90
//level12 (levelsp.level12) package levelsp { public class level12 extends levels1 { public var nOut1:noraOut; public var rstmus1:resMus; public var nIn1:noraIn; public var rstsnd1:resSnd; public var forStar1:vid_star; public var rstm1:resMenu; public var rstgo1:resGo; public var rsts1:resSolution; public var nIn1R:noraInR; public var tck1:tochka; public var rstl1:restLev; public var lvls1:resSelect; public static var param2 = 1; public static var param3 = 5; } }//package levelsp
Section 91
//level13 (levelsp.level13) package levelsp { public class level13 extends levels1 { public var nOut1:noraOut; public var rstmus1:resMus; public var rstsnd1:resSnd; public var forStar1:vid_star; public var rstm1:resMenu; public var rstgo1:resGo; public var nIn1:noraIn; public var fv1:факел; public var rsts1:resSolution; public var nIn1R:noraInR; public var tck1:tochka; public var rstl1:restLev; public var lvls1:resSelect; public static var param2 = 1; public static var param3 = 1; } }//package levelsp
Section 92
//level14 (levelsp.level14) package levelsp { public class level14 extends levels1 { public var rstmus1:resMus; public var nIn1:noraOut; public var rstsnd1:resSnd; public var rstm1:resMenu; public var pus1:puska; public var rstgo1:resGo; public var rsts1:resSolution; public var nIn1R:noraInR; public var rstl1:restLev; public var lvls1:resSelect; public var tck1:tochka; public static var param2 = 3; public static var param3 = 40; } }//package levelsp
Section 93
//level15 (levelsp.level15) package levelsp { public class level15 extends levels1 { public var nOut1:noraOut; public var rstmus1:resMus; public var nIn1:noraIn; public var rstsnd1:resSnd; public var forStar1:vystrel; public var rstm1:resMenu; public var rstgo1:resGo; public var rsts1:resSolution; public var nIn1R:noraInR; public var tck1:tochka; public var rstl1:restLev; public var lvls1:resSelect; public static var param2 = 1; public static var param3 = 3; } }//package levelsp
Section 94
//level16 (levelsp.level16) package levelsp { public class level16 extends levels1 { public var nOut1:noraOut; public var rstmus1:resMus; public var nIn1:noraIn; public var rstsnd1:resSnd; public var forStar1:vid_star; public var rstm1:resMenu; public var rstgo1:resGo; public var rsts1:resSolution; public var nIn1R:noraInR; public var tck1:tochka; public var rstl1:restLev; public var lvls1:resSelect; public static var param2 = 3; public static var param3 = 1; } }//package levelsp
Section 95
//level17 (levelsp.level17) package levelsp { public class level17 extends levels1 { public var nOut1:noraOut; public var rstmus1:resMus; public var nIn1:noraIn; public var rstsnd1:resSnd; public var forStar1:vyvis1; public var rstm1:resMenu; public var rstgo1:resGo; public var rsts1:resSolution; public var nIn1R:noraInR; public var tck1:tochka; public var rstl1:restLev; public var lvls1:resSelect; public static var param2 = 2; public static var param3 = 5; } }//package levelsp
Section 96
//level18 (levelsp.level18) package levelsp { public class level18 extends levels1 { public var nOut1:noraOut; public var rstmus1:resMus; public var nIn1:noraIn; public var rstsnd1:resSnd; public var forStar1:zvezda2; public var rstm1:resMenu; public var rstgo1:resGo; public var rsts1:resSolution; public var nIn1R:noraInR; public var tck1:tochka; public var rstl1:restLev; public var lvls1:resSelect; public static var param2 = 2; public static var param3 = 3; } }//package levelsp
Section 97
//level19 (levelsp.level19) package levelsp { public class level19 extends levels1 { public var nOut1:noraOut; public var rstmus1:resMus; public var nIn1:noraIn; public var rstsnd1:resSnd; public var forStar1:poyav; public var rstm1:resMenu; public var rstgo1:resGo; public var rsts1:resSolution; public var nIn1R:noraInR; public var tck1:tochka; public var rstl1:restLev; public var lvls1:resSelect; public static var param2 = 1; public static var param3 = 2; } }//package levelsp
Section 98
//level2 (levelsp.level2) package levelsp { public class level2 extends levels1 { public var nOut1:noraOut; public var rstmus1:resMus; public var nIn1:noraIn; public var rstsnd1:resSnd; public var forStar1:vid_star; public var rstm1:resMenu; public var rstgo1:resGo; public var rsts1:resSolution; public var nIn1R:noraInR; public var tck1:tochka; public var rstl1:restLev; public var lvls1:resSelect; public static var param2 = 3; public static var param3 = 3; } }//package levelsp
Section 99
//level20 (levelsp.level20) package levelsp { public class level20 extends levels1 { public var nOut1:noraOut; public var rstmus1:resMus; public var nIn1:noraIn; public var rstsnd1:resSnd; public var forStar1:vid_star; public var rstm1:resMenu; public var rstgo1:resGo; public var rsts1:resSolution; public var nIn1R:noraInR; public var tck1:tochka; public var rstl1:restLev; public var lvls1:resSelect; public static var param2 = 3; public static var param3 = 4; } }//package levelsp
Section 100
//level21 (levelsp.level21) package levelsp { public class level21 extends levels1 { public var nOut1:noraOut; public var rstmus1:resMus; public var nIn1:noraOut; public var rstsnd1:resSnd; public var rstm1:resMenu; public var pus1:puska; public var rstgo1:resGo; public var rsts1:resSolution; public var nIn1R:noraInR; public var rstl1:restLev; public var lvls1:resSelect; public var tck1:tochka; public static var param2 = 3; public static var param3 = 50; } }//package levelsp
Section 101
//level3 (levelsp.level3) package levelsp { public class level3 extends levels1 { public var nOut1:noraOut; public var rstmus1:resMus; public var nIn1:noraIn; public var rstsnd1:resSnd; public var forStar1:vid_star; public var rstm1:resMenu; public var rstgo1:resGo; public var rsts1:resSolution; public var nIn1R:noraInR; public var tck1:tochka; public var rstl1:restLev; public var lvls1:resSelect; public static var param2 = 3; public static var param3 = 2; } }//package levelsp
Section 102
//level4 (levelsp.level4) package levelsp { public class level4 extends levels1 { public var a2:links; public var nOut1:noraOut; public var rstmus1:resMus; public var nIn1:noraIn; public var rstsnd1:resSnd; public var forStar1:vyvis; public var rstm1:resMenu; public var rstgo1:resGo; public var rsts1:resSolution; public var nIn1R:noraInR; public var tck1:tochka; public var rstl1:restLev; public var lvls1:resSelect; public var a1:links; public static var param2 = 3; public static var param3 = 1; } }//package levelsp
Section 103
//level5 (levelsp.level5) package levelsp { public class level5 extends levels1 { public var nOut1:noraOut; public var rstmus1:resMus; public var rstsnd1:resSnd; public var forStar1:fonoblako1; public var rstm1:resMenu; public var rstgo1:resGo; public var nIn1:noraIn; public var fv1:факел; public var rsts1:resSolution; public var nIn1R:noraInR; public var tck1:tochka; public var rstl1:restLev; public var lvls1:resSelect; public static var param2 = 1; public static var param3 = 4; } }//package levelsp
Section 104
//level6 (levelsp.level6) package levelsp { public class level6 extends levels1 { public var nOut1:noraOut; public var rstmus1:resMus; public var nIn1:noraIn; public var rstsnd1:resSnd; public var forStar1:vydvig; public var rstm1:resMenu; public var rstgo1:resGo; public var rsts1:resSolution; public var nIn1R:noraInR; public var tck1:tochka; public var rstl1:restLev; public var lvls1:resSelect; public static var param2 = 1; public static var param3 = 2; } }//package levelsp
Section 105
//level7 (levelsp.level7) package levelsp { public class level7 extends levels1 { public var rstmus1:resMus; public var nIn1:noraOut; public var rstsnd1:resSnd; public var rstm1:resMenu; public var pus1:puska; public var rstgo1:resGo; public var rsts1:resSolution; public var nIn1R:noraInR; public var rstl1:restLev; public var lvls1:resSelect; public var tck1:tochka; public static var param2 = 2; public static var param3 = 30; } }//package levelsp
Section 106
//level8 (levelsp.level8) package levelsp { public class level8 extends levels1 { public var nOut1:noraOut; public var rstmus1:resMus; public var nIn1:noraIn; public var rstsnd1:resSnd; public var forStar1:vypad; public var rstm1:resMenu; public var rstgo1:resGo; public var rsts1:resSolution; public var nIn1R:noraInR; public var tck1:tochka; public var rstl1:restLev; public var lvls1:resSelect; public static var param2 = 1; public static var param3 = 3; } }//package levelsp
Section 107
//level9 (levelsp.level9) package levelsp { public class level9 extends levels1 { public var nOut1:noraOut; public var rstmus1:resMus; public var rstsnd1:resSnd; public var forStar1:vid_star; public var rstm1:resMenu; public var rstgo1:resGo; public var nIn1:noraIn; public var fv1:факел; public var rsts1:resSolution; public var nIn1R:noraInR; public var tck1:tochka; public var rstl1:restLev; public var lvls1:resSelect; public static var param2 = 1; public static var param3 = 2; } }//package levelsp
Section 108
//AnotherClass (AnotherClass) package { public class AnotherClass { } }//package
Section 109
//aplodis (aplodis) package { import flash.media.*; public dynamic class aplodis extends Sound { } }//package
Section 110
//arrow1 (arrow1) package { import flash.display.*; public dynamic class arrow1 extends MovieClip { } }//package
Section 111
//ball_1 (ball_1) package { import flash.display.*; public dynamic class ball_1 extends MovieClip { } }//package
Section 112
//ball_2 (ball_2) package { import flash.display.*; public dynamic class ball_2 extends MovieClip { } }//package
Section 113
//bCred (bCred) package { import flash.display.*; public dynamic class bCred extends SimpleButton { } }//package
Section 114
//bHisc (bHisc) package { import flash.display.*; public dynamic class bHisc extends SimpleButton { } }//package
Section 115
//bInstr (bInstr) package { import flash.display.*; public dynamic class bInstr extends SimpleButton { } }//package
Section 116
//bLogo (bLogo) package { import flash.display.*; public dynamic class bLogo extends SimpleButton { } }//package
Section 117
//bMenu (bMenu) package { import flash.display.*; public dynamic class bMenu extends SimpleButton { } }//package
Section 118
//bMore (bMore) package { import flash.display.*; public dynamic class bMore extends SimpleButton { } }//package
Section 119
//boom (boom) package { import flash.display.*; public dynamic class boom extends MovieClip { } }//package
Section 120
//borderPlank (borderPlank) package { import flash.display.*; public dynamic class borderPlank extends MovieClip { public function borderPlank(){ addFrameScript(0, frame1); } function frame1(){ this.visible = false; } } }//package
Section 121
//bPlay (bPlay) package { import flash.display.*; public dynamic class bPlay extends SimpleButton { } }//package
Section 122
//bPlay1 (bPlay1) package { import flash.display.*; public dynamic class bPlay1 extends SimpleButton { } }//package
Section 123
//bSpon (bSpon) package { import flash.display.*; public dynamic class bSpon extends SimpleButton { } }//package
Section 124
//bSubmit (bSubmit) package { import flash.display.*; public dynamic class bSubmit extends SimpleButton { } }//package
Section 125
//btnSelect (btnSelect) package { import flash.display.*; public dynamic class btnSelect extends MovieClip { public function btnSelect(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5); } function frame3(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame2(){ stop(); } } }//package
Section 126
//bVid (bVid) package { import flash.display.*; public dynamic class bVid extends SimpleButton { } }//package
Section 127
//bvlad (bvlad) package { import flash.display.*; public dynamic class bvlad extends SimpleButton { } }//package
Section 128
//bz (bz) package { import flash.media.*; public dynamic class bz extends Sound { } }//package
Section 129
//congratulat (congratulat) package { import flash.display.*; public dynamic class congratulat extends MovieClip { public function congratulat(){ addFrameScript(20, frame21); } function frame21(){ stop(); } } }//package
Section 130
//congratulat1 (congratulat1) package { import flash.display.*; public dynamic class congratulat1 extends MovieClip { } }//package
Section 131
//congratulat2 (congratulat2) package { import flash.display.*; public dynamic class congratulat2 extends MovieClip { public function congratulat2(){ addFrameScript(69, frame70); } function frame70(){ stop(); } } }//package
Section 132
//cred1 (cred1) package { import flash.display.*; public dynamic class cred1 extends MovieClip { } }//package
Section 133
//cred2 (cred2) package { import flash.display.*; public dynamic class cred2 extends MovieClip { } }//package
Section 134
//cred3 (cred3) package { import flash.display.*; public dynamic class cred3 extends MovieClip { } }//package
Section 135
//cred4 (cred4) package { import flash.display.*; public dynamic class cred4 extends MovieClip { } }//package
Section 136
//cred5 (cred5) package { import flash.display.*; public dynamic class cred5 extends MovieClip { } }//package
Section 137
//credits1 (credits1) package { import flash.events.*; import flash.net.*; import flash.display.*; import com.midasplayer.*; import flash.media.*; import flash.text.*; import caurina.transitions.*; public dynamic class credits1 extends MovieClip { var credPic:MovieClip; var arr:MovieClip; public var Parent; var bbmm; public function credits1():void{ credPic = new menuCredits(); arr = new gameArrow(); super(); credPic.x = 275; credPic.y = 200; addChild(credPic); arr.x = mouseX; arr.y = mouseY; addChild(arr); addEventListener(Event.ENTER_FRAME, ini); } function ini(_arg1:Event){ if (this.parent != null){ removeEventListener(Event.ENTER_FRAME, ini); go(); }; } function cr_Play(_arg1:Event){ delListeners(); gocMenu(); } function delListeners(){ Parent.pravo.removeEventListener(MouseEvent.CLICK, thanks); Parent.cMenu.removeEventListener(MouseEvent.CLICK, cr_Play); Parent.btnVlad.removeEventListener(MouseEvent.CLICK, c_Vlad); arr.removeEventListener(Event.ENTER_FRAME, arrMove); if (bbmm != null){ bbmm.removeEventListener(MouseEvent.CLICK, crbbmm); }; } function gocMenu(){ delListeners(); removeChild(credPic); removeChild(arr); Main1(parent).toMenu(); } function thanks(_arg1:Event){ if (Parent.maker.currentFrame == 1){ Parent.maker.gotoAndStop(2); Parent.pravo.rotation = (Parent.pravo.rotation + 180); } else { Parent.maker.gotoAndStop(1); Parent.pravo.rotation = (Parent.pravo.rotation + 180); }; } function arrMove(_arg1:Event){ arr.x = mouseX; arr.y = mouseY; } function c_Vlad(_arg1:Event){ var _local2:*; var _local3:URLRequest; _local2 = "mailto:vladg@vladgames.com"; _local3 = new URLRequest(_local2); navigateToURL(_local3, "_blank"); } function crbbmm(_arg1:Event){ FunflowAPI.openOtherGamesLink(); } function go(){ Parent = credPic; Parent.maker.gotoAndStop(1); Parent.pravo.addEventListener(MouseEvent.CLICK, thanks); Parent.cMenu.addEventListener(MouseEvent.CLICK, cr_Play); Parent.btnVlad.addEventListener(MouseEvent.CLICK, c_Vlad); arr.addEventListener(Event.ENTER_FRAME, arrMove); arr.mouseEnabled = false; arr.mouseChildren = false; bbmm = Parent.getChildByName("bbmm"); if (bbmm != null){ bbmm.addEventListener(MouseEvent.CLICK, crbbmm); }; } } }//package
Section 138
//crunchybite (crunchybite) package { import flash.media.*; public dynamic class crunchybite extends Sound { } }//package
Section 139
//ddd1 (ddd1) package { import flash.display.*; public dynamic class ddd1 extends MovieClip { public function ddd1(){ addFrameScript(0, frame1, 4, frame5, 8, frame9); } function frame1(){ stop(); } function frame5(){ levels1.estStar = true; } function frame9(){ stop(); } } }//package
Section 140
//Drop (Drop) package { import flash.media.*; public dynamic class Drop extends Sound { } }//package
Section 141
//drum (drum) package { import flash.media.*; public dynamic class drum extends Sound { } }//package
Section 142
//dzn (dzn) package { import flash.media.*; public dynamic class dzn extends Sound { } }//package
Section 143
//EmbedClip (EmbedClip) package { import flash.display.*; public class EmbedClip extends MovieClip { public function EmbedClip(){ addFrameScript(0, frame1, 28, frame29); super(); stop(); } function frame1(){ stop(); } function frame29(){ stop(); } } }//package
Section 144
//ferryBlue (ferryBlue) package { import flash.display.*; public dynamic class ferryBlue extends MovieClip { public function ferryBlue(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 145
//ferryGreen (ferryGreen) package { import flash.display.*; public dynamic class ferryGreen extends MovieClip { public function ferryGreen(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 146
//ferryRed (ferryRed) package { import flash.display.*; public dynamic class ferryRed extends MovieClip { public function ferryRed(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 147
//foi2 (foi2) package { import flash.media.*; public dynamic class foi2 extends Sound { } }//package
Section 148
//fonoblako1 (fonoblako1) package { import flash.display.*; public dynamic class fonoblako1 extends MovieClip { public function fonoblako1(){ addFrameScript(0, frame1, 19, frame20, 20, frame21); } function frame1(){ stop(); } function frame21(){ stop(); } function frame20(){ stop(); levels1.estStar = true; } } }//package
Section 149
//gameArrow (gameArrow) package { import flash.display.*; public dynamic class gameArrow extends MovieClip { public function gameArrow(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 150
//gun1 (gun1) package { import flash.media.*; public dynamic class gun1 extends Sound { } }//package
Section 151
//hihi1 (hihi1) package { import flash.media.*; public dynamic class hihi1 extends Sound { } }//package
Section 152
//hlup (hlup) package { import flash.media.*; public dynamic class hlup extends Sound { } }//package
Section 153
//ihu (ihu) package { import flash.media.*; public dynamic class ihu extends Sound { } }//package
Section 154
//init1 (init1) package { import flash.events.*; import flash.net.*; import flash.display.*; import flash.media.*; public dynamic class init1 extends MovieClip { var slSites:Array; var initPic:MovieClip; var sl;// = false public var Parent; public static var tru = false; public function init1():void{ initPic = new menuInits(); sl = false; slSites = ["king.com", "s.facebook.com"]; super(); initPic.x = 275; initPic.y = 200; addChild(initPic); addEventListener(Event.ENTER_FRAME, ini); } private function checkDomain(_arg1:String):Boolean{ var _local2:String; var _local3:Number; var _local4:Number; var _local5:String; var _local6:Number; var _local7:Number; _local2 = stage.loaderInfo.url; _local3 = (_local2.indexOf("://") + 3); _local4 = _local2.indexOf("/", _local3); _local5 = _local2.substring(_local3, _local4); _local6 = (_local5.lastIndexOf(".") - 1); _local7 = (_local5.lastIndexOf(".", _local6) + 1); _local5 = _local5.substring(_local7, _local5.length); if (_local5 == _arg1){ return (true); }; return (false); } function ini(_arg1:Event){ if (this.parent != null){ removeEventListener(Event.ENTER_FRAME, ini); go(); }; } function search(_arg1:String):Boolean{ var _local2:*; var _local3:*; _local2 = false; _local3 = 0; while (_local3 < slSites.length) { if (checkDomain(slSites[_local3])){ _local2 = true; break; }; _local3++; }; return (_local2); } function go(){ var _local1:String; var _local2:*; var _local3:*; Parent = initPic; Parent.no.visible = false; if (sl){ _local1 = stage.loaderInfo.url; if (((search(_local1)) || ((_local1.indexOf("Эксперименты") > -1)))){ removeChild(initPic); _local2 = new Main1(); addChild(_local2); } else { Parent.no.y = -100; Parent.no.visible = true; stage.frameRate = 0; gotoAndStop(0); }; } else { removeChild(initPic); _local3 = new Main1(); addChild(_local3); }; } } }//package
Section 155
//insrtuct (insrtuct) package { import flash.display.*; public dynamic class insrtuct extends MovieClip { public function insrtuct(){ addFrameScript(0, frame1, 39, frame40); } function frame1(){ stop(); } function frame40(){ stop(); } } }//package
Section 156
//instructions (instructions) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.events.*; import flash.net.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.filters.*; import flash.ui.*; import caurina.transitions.*; public dynamic class instructions extends MovieClip { var tckX:Number;// = 0 public var m_physScale:Number;// = 30 var muravSpeed:int;// = 9 var rA:Boolean;// = false var rotatSpeed;// = 57.2957795130823 var SpeedRot:int;// = 1 var bsc:SoundChannel; var bst:SoundTransform; public var m_iterations:int;// = 10 var sc:SoundChannel; var arr:MovieClip; var znak:int;// = 1 var st:SoundTransform; var padun:Array; var linkArray:Array; var tt; var sndStart:int;// = 0 var iiRot:int;// = 1 var s_beep:Sound; var sdvigRot:Boolean;// = false var interval:int;// = 35 public var m_timeStep:Number;// = 0.0333333333333333 public var m_sprite:Sprite; var instrPic:MovieClip; var scMurav:int;// = 0 var zvgrom:Number;// = 0.5 public var m_world:b2World; var iii:int;// = 0 var fhead:b2Body;// = null var ugolRot:int;// = 50 var zvgorit:int;// = 0 var glow:GlowFilter; var tck:MovieClip; var head:b2Body;// = null var tckY:Number;// = 0 public static var nazal:Boolean = false; public static var naRestart:Boolean = false; public function instructions(){ instrPic = new menuInstructions(); arr = new gameArrow(); tck = new tochka(); m_physScale = 30; m_iterations = 10; m_timeStep = (1 / 30); st = new SoundTransform(); bst = new SoundTransform(); zvgorit = 0; zvgrom = 0.5; iii = 0; rotatSpeed = (180 / Math.PI); head = null; fhead = null; glow = new GlowFilter(); muravSpeed = 9; znak = 1; scMurav = 0; interval = 35; linkArray = []; sdvigRot = false; SpeedRot = 1; ugolRot = 50; iiRot = 1; tckX = 0; tckY = 0; rA = false; padun = []; sndStart = 0; super(); instrPic.x = 275; instrPic.y = 200; addChild(instrPic); arr.x = mouseX; arr.y = mouseY; addChild(arr); tck.x = mouseX; tck.y = mouseY; addChild(tck); addEventListener(Event.ENTER_FRAME, ini); } function objToPhys(){ var _local1:b2Body; var _local2:b2BodyDef; var _local3:b2PolygonDef; var _local4:b2CircleDef; var _local5:Array; var _local6:*; var _local7:int; var _local8:*; var _local9:*; var _local10:*; var _local11:*; tt = instrPic.numChildren; _local5 = []; _local6 = 0; while (_local6 < tt) { _local8 = instrPic.getChildAt(_local6); if ((((((_local8 is plank)) || ((_local8 is plankPad)))) || ((_local8 is plankRotat)))){ _local8.gotoAndStop(1); _local5.push(_local8); }; if ((_local8 is links)){ _local8.gotoAndStop(1); linkArray.push(_local8); }; if ((((_local8 is plankPad)) || ((_local8 is plankRotat)))){ _local8.gotoAndStop(1); padun.push(_local8); }; _local6++; }; _local7 = 0; while (_local7 < _local5.length) { _local9 = _local5[_local7]; _local2 = new b2BodyDef(); _local2.position.x = (_local9.x / m_physScale); _local2.position.y = (_local9.y / m_physScale); if ((_local9 is plank)){ _local3 = new b2PolygonDef(); _local10 = _local9.rotation; _local9.rotation = 0; _local2.userData = _local9; _local2.position.Set((_local9.x / m_physScale), (_local9.y / m_physScale)); _local3.SetAsBox(((_local9.width / m_physScale) / 2), ((_local9.height / m_physScale) / 2)); _local2.angle = (_local10 / (180 / Math.PI)); _local3.density = 0.1; _local3.friction = 0.3; _local3.restitution = 0.4; _local1 = m_world.CreateStaticBody(_local2); _local1.moveF = true; _local1.NameB = "prosto"; _local1.CreateShape(_local3); _local1.SetMassFromShapes(); _local9.rotation = _local10; instrPic.addChild(_local2.userData); }; if ((_local9 is plankRotat)){ _local3 = new b2PolygonDef(); _local11 = _local9.rotation; _local9.rotation = 0; _local2.userData = _local9; _local2.position.Set((_local9.x / m_physScale), (_local9.y / m_physScale)); _local3.SetAsBox(((_local9.width / m_physScale) / 2), ((_local9.height / m_physScale) / 2)); _local2.angle = (_local11 / (180 / Math.PI)); _local3.density = 0.1; _local3.friction = 0.3; _local3.restitution = 0.4; _local1 = m_world.CreateStaticBody(_local2); _local1.moveF = true; _local1.NameB = "nespecRot"; _local1.CreateShape(_local3); _local1.SetMassFromShapes(); _local9.rotation = _local11; instrPic.addChildAt(_local2.userData, (tt - 6)); }; if ((_local9 is plankPad)){ _local3 = new b2PolygonDef(); _local3.SetAsBox((_local9.width / (m_physScale * 2)), (_local9.height / (m_physScale * 2))); _local3.density = 1; _local3.friction = 0.2; _local3.restitution = 0.4; _local2.userData = _local9; _local1 = m_world.CreateStaticBody(_local2); _local1.moveF = true; _local1.NameB = "specpad"; _local1.CreateShape(_local3); _local1.SetMassFromShapes(); instrPic.addChildAt(_local2.userData, (tt - 15)); }; _local7++; }; } function addNewMur(){ var _local1:b2BodyDef; var _local2:b2CircleDef; _local2 = new b2CircleDef(); _local1 = new b2BodyDef(); _local1.userData = new muravei(); _local1.userData.x = -300; _local1.userData.y = -20; _local1.position.Set((-300 / m_physScale), (-20 / m_physScale)); _local2.radius = (12 / (m_physScale * 2)); _local2.density = 1; _local2.friction = 0.1; _local2.restitution = 0.2; head = m_world.CreateDynamicBody(_local1); head.moveF = true; head.NameB = "murav"; head.CreateShape(_local2); head.SetMassFromShapes(); instrPic.addChild(_local1.userData); } function pdso0(_arg1:MouseEvent){ arr.rotation = 0; arr.filters = []; } function go(){ var _local1:b2AABB; var _local2:b2Vec2; var _local3:Boolean; Mouse.hide(); m_sprite = Main1.m_sprite; _local1 = new b2AABB(); _local1.lowerBound.Set(-1000, -1000); _local1.upperBound.Set(1000, 1000); _local2 = new b2Vec2(0, 7); _local3 = true; m_world = new b2World(_local1, _local2, _local3); objToPhys(); addNewMur(); arr.mouseEnabled = false; arr.mouseChildren = false; arr.gotoAndStop(1); tck.mouseEnabled = false; tck.mouseChildren = false; glow.color = 0xFF0000; glow.alpha = 1; glow.blurX = 6; glow.blurY = 6; glow.strength = 4; glow.quality = BitmapFilterQuality.LOW; addEventListener(Event.ENTER_FRAME, Update); stage.addEventListener(MouseEvent.MOUSE_DOWN, kd); stage.addEventListener(MouseEvent.MOUSE_UP, ku); instrPic.rstm1.addEventListener(MouseEvent.CLICK, menuAl); if (padun[0] != null){ padun[0].addEventListener(MouseEvent.ROLL_OVER, pdsv0); padun[0].addEventListener(MouseEvent.ROLL_OUT, pdso0); }; if (padun[1] != null){ padun[1].addEventListener(MouseEvent.ROLL_OVER, pdsv0); padun[1].addEventListener(MouseEvent.ROLL_OUT, pdso0); }; } function Update(_arg1:Event){ var _local2:uint; var _local3:b2Body; var _local4:b2ContactEdge; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; var _local12:*; var _local13:*; var _local14:*; var _local15:*; var _local16:b2BodyDef; var _local17:b2PolygonDef; var _local18:*; scMurav++; iii++; _local2 = getTimer(); if (iii < 10){ m_world.Step(m_timeStep, m_iterations); } else { m_world.Step(0.03, 10); }; _local3 = m_world.m_bodyList; while (_local3) { tck.x = mouseX; tck.y = mouseY; arr.x = mouseX; arr.y = mouseY; if ((_local3.m_userData is Sprite)){ _local3.m_userData.x = (_local3.GetPosition().x * m_physScale); _local3.m_userData.y = (_local3.GetPosition().y * m_physScale); if ((((_local3.m_userData is muravei)) || ((_local3.m_userData is muraveiR)))){ } else { _local3.m_userData.rotation = (_local3.GetAngle() * rotatSpeed); }; }; if (scMurav > interval){ addNewMur(); scMurav = 0; }; if (((!((_local3.NameB == null))) && ((_local3.NameB == "murav")))){ znak = 1; _local3.ApplyForce(new b2Vec2((znak * muravSpeed), 0), _local3.GetWorldCenter()); _local3.GetLinearVelocity().x = 0; _local4 = _local3.GetContactList(); while (_local4) { _local3.m_userData.rotation = _local4.other.m_userData.rotation; _local4 = _local4.next; }; }; if (((((((!((_local3.NameB == null))) && ((_local3.NameB == "nespecRot")))) && ((Math.ceil((scMurav / 2)) == (scMurav / 2))))) && ((Math.abs(_local3.m_userData.rotation) < 10)))){ _local5 = new merzanie(); _local5.x = ((_local3.m_userData.x - (_local3.m_userData.width / 2)) + (Math.random() * _local3.m_userData.width)); _local5.y = ((_local3.m_userData.y - (_local3.m_userData.height / 1.2)) + (Math.random() * _local3.m_userData.height)); instrPic.addChild(_local5); _local5.mouseEnabled = false; _local5.mouseChildren = false; }; if (((((((!((_local3.NameB == null))) && ((_local3.NameB == "nespecRot")))) && ((nazal == true)))) && (_local3.m_userData.hitTestObject(tck)))){ if (((Main1.snd) && ((sdvigRot == false)))){ s_beep = new kr(); zvgrom = 0.4; sndStart = 20; oiZvuk(); }; sdvigRot = true; arr.gotoAndPlay(2); _local3.NameB = "nespecRotAct"; }; if ((((_local3.NameB == "nespecRotAct")) && ((sdvigRot == true)))){ if (iiRot < ugolRot){ _local6 = _local3.m_userData.x; _local7 = _local3.m_userData.y; _local8 = _local3.m_userData.rotation; _local9 = new b2Vec2((_local6 / m_physScale), (_local7 / m_physScale)); _local3.SetXForm(_local9, ((_local8 - SpeedRot) / rotatSpeed)); nazal = false; iiRot++; } else { _local3.NameB = "nespecRot"; SpeedRot = -(SpeedRot); sdvigRot = false; iiRot = 1; }; }; if (((((!((_local3.NameB == null))) && ((_local3.NameB == "specpad")))) && ((Math.ceil((scMurav / 2)) == (scMurav / 2))))){ _local10 = new merzanie(); _local10.x = ((_local3.m_userData.x - (_local3.m_userData.width / 2)) + (Math.random() * _local3.m_userData.width)); _local10.y = ((_local3.m_userData.y - (_local3.m_userData.height / 1.2)) + (Math.random() * _local3.m_userData.height)); instrPic.addChild(_local10); _local10.mouseEnabled = false; _local10.mouseChildren = false; }; if (((((((!((_local3.NameB == null))) && ((_local3.NameB == "specpad")))) && (_local3.m_userData.hitTestObject(tck)))) && ((nazal == true)))){ arr.gotoAndPlay(2); if (Main1.snd){ s_beep = new otr(); zvgrom = 4; sndStart = 0; oiZvuk(); }; _local11 = 0; while (_local11 < linkArray.length) { _local18 = linkArray[_local11]; if (((_local3.m_userData.hitTestObject(_local18)) && ((_local18.currentFrame == 1)))){ _local18.gotoAndPlay("linkStart"); }; _local11++; }; _local12 = _local3.m_userData.x; _local13 = _local3.m_userData.y; _local14 = _local3.m_userData.width; _local15 = _local3.m_userData.height; instrPic.removeChild((_local3.m_userData as Sprite)); m_world.DestroyBody(_local3); _local17 = new b2PolygonDef(); _local16 = new b2BodyDef(); _local16.userData = new plankPad(); _local16.userData.x = _local12; _local16.userData.y = _local13; _local16.userData.width = _local14; _local16.userData.height = _local15; _local16.position.Set((_local12 / m_physScale), (_local13 / m_physScale)); _local17.SetAsBox((_local14 / (m_physScale * 2)), (_local15 / (m_physScale * 2))); _local17.density = 0.4; _local17.friction = 0.1; _local17.restitution = 0.2; head = m_world.CreateDynamicBody(_local16); head.moveF = true; head.NameB = "pizdecpad"; head.CreateShape(_local17); head.SetMassFromShapes(); _local16.userData.gotoAndStop((Main1.specUroven + 1)); instrPic.addChildAt(_local16.userData, 5); nazal = false; }; if (((((((!((_local3.NameB == null))) && ((_local3.GetPosition().y > 6.5)))) && ((_local3.m_userData is Sprite)))) && (contains(_local3.m_userData)))){ instrPic.removeChild((_local3.m_userData as Sprite)); m_world.DestroyBody(_local3); }; _local3 = _local3.m_next; }; } function ku(_arg1:MouseEvent):void{ nazal = false; } function kd(_arg1:MouseEvent):void{ if (nazal == false){ nazal = true; tckX = tck.x; tckY = tck.y; }; } function pdsv0(_arg1:MouseEvent){ arr.filters = [glow]; } function oiZvuk(){ if (Main1.snd == true){ sc = new SoundChannel(); st = new SoundTransform(zvgrom, 0); sc = s_beep.play(sndStart, 0); sc.soundTransform = st; }; } function delListener(){ removeEventListener(Event.ENTER_FRAME, Update); stage.removeEventListener(MouseEvent.MOUSE_DOWN, kd); stage.removeEventListener(MouseEvent.MOUSE_UP, ku); instrPic.rstm1.removeEventListener(MouseEvent.CLICK, menuAl); if (padun[0] != null){ padun[0].removeEventListener(MouseEvent.ROLL_OVER, pdsv0); padun[0].removeEventListener(MouseEvent.ROLL_OUT, pdso0); }; if (padun[1] != null){ padun[1].removeEventListener(MouseEvent.ROLL_OVER, pdsv0); padun[1].removeEventListener(MouseEvent.ROLL_OUT, pdso0); }; } function ini(_arg1:Event){ if (this.parent != null){ removeEventListener(Event.ENTER_FRAME, ini); go(); }; } function menuAl(_arg1:Event){ delListener(); nazal = false; Main1(parent).toMenu(); } } }//package
Section 157
//izDrov (izDrov) package { import flash.display.*; public dynamic class izDrov extends MovieClip { public function izDrov(){ addFrameScript(0, frame1, 31, frame32, 34, frame35, 35, frame36); } function frame1(){ stop(); } function frame36(){ stop(); } function frame35(){ stop(); } function frame32(){ levels1.estStar = true; } } }//package
Section 158
//kr (kr) package { import flash.media.*; public dynamic class kr extends Sound { } }//package
Section 159
//kvadrat (kvadrat) package { import flash.display.*; public dynamic class kvadrat extends MovieClip { public function kvadrat(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package
Section 160
//les (les) package { import flash.media.*; public dynamic class les extends Sound { } }//package
Section 161
//levels1 (levels1) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.events.*; import flash.net.*; import flash.display.*; import com.midasplayer.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.filters.*; import flash.ui.*; import caurina.transitions.*; public dynamic class levels1 extends MovieClip { public var m_physScale:Number;// = 30 var nOut:MovieClip; var muravSpeed:int;// = 9 var polozSpeedR:int;// = 5 var tckX:Number;// = 0 var clickForStar:Boolean;// = false var rA:Boolean;// = false var oneTam1:Boolean;// = false var oneTam2:Boolean;// = false var ball2:MovieClip; var scd:TextField; var rotatSpeed;// = 57.2957795130823 var scc:TextField; var sdvig:Boolean;// = false var logos:SimpleButton; var textDie:MovieClip;// = null var intervalR:int;// = 17 var SpeedRot:int;// = 1 var bsc:SoundChannel; var nIn:MovieClip; var polozSpeed:int;// = 5 var domArray:Array; var bst:SoundTransform; var startMurav:int;// = 0 public var m_iterations:int;// = 10 var sc:SoundChannel; var stat:SharedObject; var st:SoundTransform; var znak:int;// = 1 var arr:MovieClip; var padun:Array; var polozR:String;// = "right" var linkArray:Array; var tt; var sdvigR:Boolean;// = false var ubitoMuravR;// = 0 var nInR:MovieClip; var sndStart:int;// = 0 var btnSel; var iiRot:int;// = 1 var s_beep:Sound; var estBall:Boolean;// = false var coconut:MovieClip; var chitay:Boolean;// = false var interval:int;// = 15 var ubitoMurav;// = 0 var forStar:MovieClip; public var m_timeStep:Number;// = 0.0333333333333333 var dosli:Boolean;// = false var pausePosition1:int;// = 0 var zagor:MovieClip; public var m_sprite:Sprite; var endDobavR:int;// = 0 var gg:int;// = 1 var fv:MovieClip; var sdvigRot:Boolean;// = false var booms; var deistvie:Boolean;// = false var poloz:String;// = "right" var ryz:int;// = 0 var inctr:MovieClip; var scMurav:int;// = 0 var scMuravR:int;// = 0 var summa:int;// = 0 var zvezduVzyal:Boolean;// = false var arukaz:MovieClip; var iiR:int;// = 1 var dobavMurav:int;// = 0 var gorit:Boolean;// = false var ii:int;// = 1 var mestoPoloz:Number;// = 20 var pausePosition:int;// = 0 var zvgrom:Number;// = 0.5 public var m_world:b2World; var oneTada:Boolean;// = false var iii:int;// = 0 var fhead:b2Body;// = null var ukaz:MovieClip; var zmiGo:MovieClip; var razbrosY:int;// = 0 var kvadr:MovieClip; var toStar:MovieClip; var levelScore:int;// = 100 var zahvat:int;// = 0 var zvgorit:int;// = 0 var prosloMuravR:int;// = 0 var dobavMuravR:int;// = 0 var palms:MovieClip; var ramkaUpala:Boolean;// = false var endDobav:int;// = 0 var ugolRot:int;// = 50 var prosloMurav:int;// = 0 var mestoPolozR:Number;// = 20 var glow:GlowFilter; var polup:MovieClip; var btnSelY:Number; var startMuravR:int;// = 0 var head:b2Body;// = null var tck:MovieClip; var povorot:int;// = 0 var oneStar:MovieClip; var tckY:Number;// = 0 var specY:Number; public static var rsts:SimpleButton; public static var pus:MovieClip; public static var lvls:SimpleButton; public static var nazal:Boolean = false; public static var estToStar:Boolean = false; public static var rstmus:SimpleButton; public static var targ:Boolean = false; public static var goGo:Boolean = false; public static var estStar:Boolean = false; public static var rstl:SimpleButton; public static var rstm:SimpleButton; public static var rstgo:SimpleButton; public static var rstsnd:SimpleButton; public function levels1(){ st = new SoundTransform(); bst = new SoundTransform(); zvgorit = 0; zvgrom = 0.5; pausePosition = 0; pausePosition1 = 0; m_physScale = 30; m_iterations = 10; m_timeStep = (1 / 30); levelScore = 100; iii = 0; gorit = false; summa = 0; rotatSpeed = (180 / Math.PI); head = null; fhead = null; glow = new GlowFilter(); muravSpeed = 9; znak = 1; stat = SharedObject.getLocal("ants"); dobavMurav = 0; scMurav = 0; interval = 15; ubitoMurav = 0; prosloMurav = 0; startMurav = 0; endDobav = 0; deistvie = false; ryz = 0; dobavMuravR = 0; scMuravR = 0; intervalR = 17; ubitoMuravR = 0; prosloMuravR = 0; startMuravR = 0; endDobavR = 0; dosli = false; razbrosY = 0; zahvat = 0; clickForStar = false; estBall = false; linkArray = []; domArray = []; kvadr = new kvadrat(); textDie = null; gg = 1; booms = new boom(); zvezduVzyal = false; sdvig = false; poloz = "right"; mestoPoloz = 20; ii = 1; polozSpeed = 5; povorot = 0; sdvigR = false; polozR = "right"; mestoPolozR = 20; iiR = 1; polozSpeedR = 5; sdvigRot = false; SpeedRot = 1; ugolRot = 50; iiRot = 1; chitay = false; tckX = 0; tckY = 0; rA = false; padun = []; sndStart = 0; ramkaUpala = false; oneTada = false; oneTam1 = false; oneTam2 = false; polup = new poluPole(); super(); addEventListener(Event.ENTER_FRAME, ini); } function objToPhys(){ var _local1:b2Body; var _local2:b2BodyDef; var _local3:b2PolygonDef; var _local4:b2CircleDef; var _local5:Array; var _local6:*; var _local7:int; var _local8:*; var _local9:*; var _local10:*; var _local11:*; var _local12:*; var _local13:*; tt = numChildren; _local5 = []; _local6 = 0; while (_local6 < tt) { _local8 = getChildAt(_local6); if ((((((((((((((((((((((((((_local8 is ball_1)) || ((_local8 is plankStat)))) || ((_local8 is borderPlank)))) || ((_local8 is plankStatR)))) || ((_local8 is plankDynam)))) || ((_local8 is plankStatF)))) || ((_local8 is muraveiR)))) || ((_local8 is plank_2)))) || ((_local8 is plankPad)))) || ((_local8 is plank)))) || ((_local8 is plankReturn)))) || ((_local8 is plankReturnD)))) || ((_local8 is plankRotat)))){ _local8.gotoAndStop(1); _local5.push(_local8); }; if ((_local8 is gameArrow)){ arr = _local8; }; if ((_local8 is bLogo)){ logos = _local8; }; if ((_local8 is tablo1)){ coconut = _local8; }; if ((_local8 is kvadrat)){ kvadr = _local8; }; if ((_local8 is links)){ _local8.gotoAndStop(1); linkArray.push(_local8); }; if ((_local8 is palma)){ _local8.gotoAndStop(1); palms = _local8; }; if ((_local8 is ball_2)){ ball2 = _local8; }; if ((_local8 is the_star)){ oneStar = _local8; }; if ((_local8 is specInsrtuct)){ inctr = _local8; }; if ((((((((((((((_local8 is plankStat)) || ((_local8 is plankStatR)))) || ((_local8 is plankPad)))) || ((_local8 is plank_2)))) || ((_local8 is plankRotat)))) || ((_local8 is ball_2)))) || ((_local8 is tablo1)))){ _local8.gotoAndStop(1); padun.push(_local8); }; if ((_local8 is totDom)){ _local8.gotoAndStop(1); domArray.push(_local8); if (Main1.specUroven == Main1.specSpec){ _local8.gotoAndPlay(4); }; }; _local6++; }; _local7 = 0; while (_local7 < _local5.length) { _local9 = _local5[_local7]; _local2 = new b2BodyDef(); _local2.position.x = (_local9.x / m_physScale); _local2.position.y = (_local9.y / m_physScale); if ((_local9 is ball_1)){ _local4 = new b2CircleDef(); _local4.radius = ((20 / m_physScale) / 2); _local4.density = 1; _local4.friction = 0.3; _local4.restitution = 0.4; _local2.userData = _local9; _local2.userData.width = ((_local4.radius * 2) * 30); _local2.userData.height = ((_local4.radius * 2) * 30); _local1 = m_world.CreateDynamicBody(_local2); _local1.CreateShape(_local4); _local1.moveF = true; _local1.NameB = "ball"; _local1.SetMassFromShapes(); addChild(_local2.userData); }; if ((_local9 is plankDynam)){ _local3 = new b2PolygonDef(); _local3.SetAsBox((_local9.width / (m_physScale * 2)), (_local9.height / (m_physScale * 2))); _local3.density = 1; _local3.friction = 0.2; _local3.restitution = 0.4; _local2.userData = _local9; _local1 = m_world.CreateDynamicBody(_local2); _local1.moveF = true; _local1.NameB = "dynoPlank"; _local1.CreateShape(_local3); _local1.SetMassFromShapes(); addChildAt(_local2.userData, 8); }; if ((_local9 is plank_2)){ _local3 = new b2PolygonDef(); _local10 = _local9.rotation; _local9.rotation = 0; _local2.position.Set((_local9.x / m_physScale), (_local9.y / m_physScale)); _local3.vertexCount = 3; _local3.vertices[2] = new b2Vec2(0, ((-(_local9.height) * 0.95) / m_physScale)); _local3.vertices[0] = new b2Vec2((((_local9.width * 0.95) / m_physScale) / 2), 0); _local3.vertices[1] = new b2Vec2((((-(_local9.width) * 0.95) / m_physScale) / 2), 0); _local2.angle = (_local10 / (180 / Math.PI)); _local3.density = 20; _local3.friction = 0.3; _local3.restitution = 0.4; _local2.userData = _local9; _local1 = m_world.CreateDynamicBody(_local2); _local1.moveF = true; _local1.NameB = "chel"; _local1.CreateShape(_local3); _local1.SetMassFromShapes(); _local9.rotation = _local10; addChildAt(_local2.userData, (tt - 18)); }; if ((_local9 is borderPlank)){ _local3 = new b2PolygonDef(); _local3.SetAsBox((_local9.width / (m_physScale * 2)), (_local9.height / (m_physScale * 2))); _local3.density = 0.1; _local3.friction = 0.3; _local3.restitution = 0.4; _local2.userData = _local9; _local1 = m_world.CreateStaticBody(_local2); _local1.moveF = true; _local1.NameB = "border"; _local1.CreateShape(_local3); _local1.SetMassFromShapes(); addChild(_local2.userData); }; if ((_local9 is plankReturn)){ _local3 = new b2PolygonDef(); _local3.SetAsBox((_local9.width / (m_physScale * 2)), (_local9.height / (m_physScale * 2))); _local3.density = 0.1; _local3.friction = 0.3; _local3.restitution = 0.4; _local2.userData = _local9; _local1 = m_world.CreateStaticBody(_local2); _local1.moveF = true; _local1.NameB = "return"; _local1.CreateShape(_local3); _local1.SetMassFromShapes(); addChild(_local2.userData); }; if ((_local9 is plankReturnD)){ _local3 = new b2PolygonDef(); _local11 = _local9.rotation; _local9.rotation = 0; _local2.userData = _local9; _local2.position.Set((_local9.x / m_physScale), (_local9.y / m_physScale)); _local3.SetAsBox(((_local9.width / m_physScale) / 2), ((_local9.height / m_physScale) / 2)); _local2.angle = (_local11 / (180 / Math.PI)); _local3.density = 1; _local3.friction = 0.3; _local3.restitution = 0.4; _local1 = m_world.CreateDynamicBody(_local2); _local1.moveF = true; _local1.NameB = "return"; _local1.CreateShape(_local3); _local1.SetMassFromShapes(); _local9.rotation = _local11; addChildAt(_local2.userData, 8); }; if ((_local9 is plankStat)){ _local3 = new b2PolygonDef(); _local3.SetAsBox((_local9.width / (m_physScale * 2)), (_local9.height / (m_physScale * 2))); _local3.density = 0.1; _local3.friction = 0.3; _local3.restitution = 0.4; _local2.userData = _local9; _local1 = m_world.CreateStaticBody(_local2); _local1.moveF = true; _local1.NameB = "nespec"; _local1.CreateShape(_local3); _local1.SetMassFromShapes(); addChildAt(_local2.userData, 8); }; if ((_local9 is plankStatR)){ _local3 = new b2PolygonDef(); _local3.SetAsBox((_local9.width / (m_physScale * 2)), (_local9.height / (m_physScale * 2))); _local3.density = 0.1; _local3.friction = 0.3; _local3.restitution = 0.4; _local2.userData = _local9; _local1 = m_world.CreateStaticBody(_local2); _local1.moveF = true; _local1.NameB = "nespecR"; _local1.CreateShape(_local3); _local1.SetMassFromShapes(); addChildAt(_local2.userData, 8); }; if ((_local9 is plank)){ _local3 = new b2PolygonDef(); _local12 = _local9.rotation; _local9.rotation = 0; _local2.userData = _local9; _local2.position.Set((_local9.x / m_physScale), (_local9.y / m_physScale)); _local3.SetAsBox(((_local9.width / m_physScale) / 2), ((_local9.height / m_physScale) / 2)); _local2.angle = (_local12 / (180 / Math.PI)); _local3.density = 0.1; _local3.friction = 0.3; _local3.restitution = 0.4; _local1 = m_world.CreateStaticBody(_local2); _local1.moveF = true; _local1.NameB = "prosto"; _local1.CreateShape(_local3); _local1.SetMassFromShapes(); _local9.rotation = _local12; addChild(_local2.userData); }; if ((_local9 is plankRotat)){ _local3 = new b2PolygonDef(); _local13 = _local9.rotation; _local9.rotation = 0; _local2.userData = _local9; _local2.position.Set((_local9.x / m_physScale), (_local9.y / m_physScale)); _local3.SetAsBox(((_local9.width / m_physScale) / 2), ((_local9.height / m_physScale) / 2)); _local2.angle = (_local13 / (180 / Math.PI)); _local3.density = 0.1; _local3.friction = 0.3; _local3.restitution = 0.4; _local1 = m_world.CreateStaticBody(_local2); _local1.moveF = true; _local1.NameB = "nespecRot"; _local1.CreateShape(_local3); _local1.SetMassFromShapes(); _local9.rotation = _local13; addChildAt(_local2.userData, 8); }; if ((_local9 is plankStatF)){ _local3 = new b2PolygonDef(); _local3.SetAsBox((16 / (m_physScale * 2)), (_local9.height / (m_physScale * 2))); _local3.density = 0.1; _local3.friction = 0.3; _local3.restitution = 0.4; _local2.userData = _local9; _local1 = m_world.CreateStaticBody(_local2); _local1.moveF = true; _local1.NameB = "spec"; _local1.CreateShape(_local3); _local1.SetMassFromShapes(); addChildAt(_local2.userData, 8); }; if ((_local9 is plankPad)){ _local3 = new b2PolygonDef(); _local3.SetAsBox((_local9.width / (m_physScale * 2)), (_local9.height / (m_physScale * 2))); _local3.density = 1; _local3.friction = 0.2; _local3.restitution = 0.4; _local2.userData = _local9; _local1 = m_world.CreateStaticBody(_local2); _local1.moveF = true; _local1.NameB = "specpad"; _local1.CreateShape(_local3); _local1.SetMassFromShapes(); addChildAt(_local2.userData, (tt - 20)); }; _local7++; }; } function inctrAl(_arg1:Event){ if (inctr.currentFrame < 5){ gg++; inctr.gotoAndStop(gg); } else { inctr.gotoAndPlay(gg); gg = 1; inctr.removeEventListener(MouseEvent.CLICK, inctrAl); chitay = false; }; } function defScoresField(){ var _local1:*; var _local2:*; var _local3:*; _local1 = numChildren; _local2 = 0; while (_local2 < _local1) { _local3 = getChildAt(_local2); if ((_local3 is TextField)){ if (_local3.text.indexOf("Score 100") > -1){ _local3.htmlText = ""; scc = _local3; }; }; _local2++; }; } function addNewMur(){ var _local1:b2BodyDef; var _local2:b2CircleDef; if (((((((((!((Main1.specUroven == Main1.specSpec))) && ((prosloMurav == 0)))) && ((endDobav < Main1.kolvoMurav)))) && ((dosli == false)))) && ((goGo == true)))){ _local2 = new b2CircleDef(); _local1 = new b2BodyDef(); _local1.userData = new muravei(); _local1.userData.x = (nIn.x + 24); _local1.userData.y = (nIn.y + 3); _local1.position.Set(((nIn.x + 24) / m_physScale), ((nIn.y + 3) / m_physScale)); _local2.radius = (12 / (m_physScale * 2)); _local2.density = 1; _local2.friction = 0.1; _local2.restitution = 0.2; head = m_world.CreateDynamicBody(_local1); head.moveF = true; head.NameB = "murav"; head.CreateShape(_local2); head.SetMassFromShapes(); addChildAt(_local1.userData, (getChildIndex(arr) - 1)); nIn.gotoAndPlay(2); dobavMurav = (dobavMurav + 1); endDobav++; }; } function btnSSKlik(_arg1:MouseEvent){ var _local2:*; var _local3:int; _local2 = 0; while (_local2 < stat.data.array.length) { _local3 = stat.data.array[_local2]; summa = (summa + _local3); _local2++; }; FunflowAPI.submitScore(summa); stat.data.sub = summa; } function addBall(){ var _local1:b2BodyDef; var _local2:b2CircleDef; if (estBall == false){ estBall = true; _local2 = new b2CircleDef(); _local1 = new b2BodyDef(); _local1.userData = new ball_1(); _local1.userData.x = (palms.x - (0.3 * palms.width)); _local1.userData.y = (palms.y - (0.82 * palms.height)); _local1.position.Set(((palms.x - (0.3 * palms.width)) / m_physScale), ((palms.y - (0.82 * palms.height)) / m_physScale)); _local2.radius = (_local1.userData.width / (m_physScale * 2)); _local2.density = 1; _local2.friction = 0.3; _local2.restitution = 0.4; head = m_world.CreateDynamicBody(_local1); head.moveF = true; head.NameB = "ball"; head.CreateShape(_local2); head.SetMassFromShapes(); addChildAt(_local1.userData, 10); }; } function btnNLKlik(_arg1:MouseEvent){ textDie.btnNL.removeEventListener(MouseEvent.CLICK, btnNLKlik); if (FunflowAPI.isHome){ } else { textDie.btnSS.removeEventListener(MouseEvent.CLICK, btnSSKlik); }; textDie.btnMG.removeEventListener(MouseEvent.CLICK, gotoFun); delListener2(); Main1(parent).newLevel(); } function delListener1(){ if (((((!((textDie == null))) && ((((textDie is pozdrIce)) || ((textDie is pozdr)))))) && ((textDie.currentFrame == 30)))){ } else { rstgo.removeEventListener(MouseEvent.CLICK, goAl); stage.removeEventListener(MouseEvent.MOUSE_DOWN, kd); stage.removeEventListener(MouseEvent.MOUSE_UP, ku); if (padun[0] != null){ padun[0].removeEventListener(MouseEvent.ROLL_OVER, pdsv0); padun[0].removeEventListener(MouseEvent.ROLL_OUT, pdso0); }; if (padun[1] != null){ padun[1].removeEventListener(MouseEvent.ROLL_OVER, pdsv0); padun[1].removeEventListener(MouseEvent.ROLL_OUT, pdso0); }; if (padun[2] != null){ padun[2].removeEventListener(MouseEvent.ROLL_OVER, pdsv0); padun[2].removeEventListener(MouseEvent.ROLL_OUT, pdso0); }; if (padun[3] != null){ padun[3].removeEventListener(MouseEvent.ROLL_OVER, pdsv0); padun[3].removeEventListener(MouseEvent.ROLL_OUT, pdso0); }; if (forStar != null){ forStar.removeEventListener(MouseEvent.ROLL_OVER, pdsv1); forStar.removeEventListener(MouseEvent.ROLL_OUT, pdso1); }; }; } function delListener2(){ rsts.removeEventListener(MouseEvent.CLICK, solAl); rstl.removeEventListener(MouseEvent.CLICK, resetAl); rstm.removeEventListener(MouseEvent.CLICK, menuAl); rstsnd.removeEventListener(MouseEvent.CLICK, sndAl); rstmus.removeEventListener(MouseEvent.CLICK, musAl); lvls.removeEventListener(MouseEvent.CLICK, levAl); removeEventListener(Event.ENTER_FRAME, Update); if (logos != null){ logos.removeEventListener(MouseEvent.CLICK, gotoFun); }; if (kvadr != null){ kvadr.removeEventListener(MouseEvent.CLICK, kvadrKlik); }; } function fireZvuk(){ if ((((Main1.snd == true)) && (!((fv == null))))){ Main1.fsc = Main1.f_beep.play(pausePosition, 1000); }; } function Likeds(_arg1:MouseEvent){ FunflowAPI.facebookStreamPost("I like the puzzles in Black Ants Rescue on Funflow", ""); } function Update(_arg1:Event){ var _local2:uint; var _local3:b2Body; var _local4:int; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; var _local12:*; var _local13:int; var _local14:*; var _local15:*; var _local16:*; var _local17:b2ContactEdge; var _local18:*; var _local19:b2ContactEdge; var _local20:*; var _local21:*; var _local22:b2ContactEdge; var _local23:*; var _local24:b2ContactEdge; var _local25:*; var _local26:*; var _local27:*; var _local28:*; var _local29:*; var _local30:*; var _local31:*; var _local32:*; var _local33:*; var _local34:*; var _local35:*; var _local36:*; var _local37:*; var _local38:*; var _local39:*; var _local40:*; var _local41:*; var _local42:*; var _local43:*; var _local44:*; var _local45:*; var _local46:*; var _local47:b2BodyDef; var _local48:b2PolygonDef; var _local49:*; scMurav++; scMuravR++; iii++; _local2 = getTimer(); if (iii < 10){ m_world.Step(m_timeStep, m_iterations); } else { m_world.Step(0.03, 10); }; if (((!((pus == null))) && ((inctr.currentFrame == 86)))){ targ = true; pus.gotoAndPlay(2); s_beep = new Tamtam1(); zvgrom = 2; sndStart = 30; oiZvuk(); }; if ((((((textDie == null)) && (!((Main1.specUroven == Main1.specSpec))))) && ((chitay == false)))){ _local4 = (iii / 30); _local5 = (iii / 30); if (_local4 == _local5){ levelScore = (levelScore - 1); scor(); }; }; if (((!((pus == null))) && ((targ == true)))){ arr.visible = false; pus.visible = true; pus.x = mouseX; pus.y = mouseY; }; if ((((((((((Main1.lvl == 1)) && ((stat.data.kvadro == 1)))) && ((deistvie == false)))) && ((ukaz == null)))) && (((((!((inctr == null))) && ((inctr.currentFrame == 39)))) || ((inctr == null)))))){ ukaz = new text11(); arukaz = new arrow1(); arukaz.scaleX = 0.6; arukaz.scaleY = 0.6; arukaz.x = 90; arukaz.y = 10; ukaz.x = 0; ukaz.y = -120; addChildAt(ukaz, (getChildIndex(arr) - 1)); addChildAt(arukaz, (getChildIndex(arr) - 1)); }; if ((((((((Main1.lvl == 2)) && ((stat.data.kvadro == 1)))) && ((deistvie == false)))) && ((ukaz == null)))){ ukaz = new text11(); arukaz = new arrow1(); arukaz.scaleX = 0.6; arukaz.scaleY = 0.6; arukaz.x = 2; arukaz.y = 20; ukaz.x = 0; ukaz.y = -120; addChildAt(ukaz, (getChildIndex(arr) - 1)); addChildAt(arukaz, (getChildIndex(arr) - 1)); }; if ((((((((Main1.lvl == 3)) && ((stat.data.kvadro == 1)))) && ((textDie == null)))) && ((ukaz == null)))){ ukaz = new text13(); ukaz.x = 0; ukaz.y = -120; addChildAt(ukaz, (getChildIndex(arr) - 1)); }; if ((((((((Main1.lvl == 4)) && ((stat.data.kvadro == 1)))) && ((textDie == null)))) && ((ukaz == null)))){ ukaz = new text16(); ukaz.x = 0; ukaz.y = -140; addChildAt(ukaz, (getChildIndex(arr) - 1)); }; if ((((((((((((Main1.lvl < 3)) && ((stat.data.kvadro == 1)))) && ((zmiGo == null)))) && ((textDie == null)))) && ((deistvie == true)))) && ((goGo == false)))){ zmiGo = new text14(); zmiGo.x = 0; zmiGo.y = -120; addChildAt(zmiGo, (getChildIndex(arr) - 1)); }; if (((!((pus == null))) && ((((targ == false)) || ((pus.y > 160)))))){ arr.visible = true; pus.visible = false; }; if ((((((((((Main1.lvl == 4)) && ((clickForStar == false)))) && ((scMurav == 160)))) && ((stat.data.arrayZ[3] == 0)))) && ((goGo == true)))){ _local6 = new text10(); _local6.x = 0; _local6.y = -150; addChildAt(_local6, (getChildIndex(arr) - 1)); }; if ((((((((((Main1.lvl == 6)) || ((Main1.lvl == 10)))) || ((Main1.lvl == 19)))) && ((scMurav == 260)))) && ((goGo == true)))){ forStar.gotoAndPlay(2); }; if (((((!((coconut == null))) && (tck.hitTestObject(coconut)))) && ((coconut.currentFrame == 1)))){ coconut.gotoAndPlay(2); }; _local3 = m_world.m_bodyList; while (_local3) { tck.x = mouseX; tck.y = mouseY; arr.x = mouseX; arr.y = mouseY; if ((_local3.m_userData is Sprite)){ _local3.m_userData.x = (_local3.GetPosition().x * m_physScale); _local3.m_userData.y = (_local3.GetPosition().y * m_physScale); if ((((_local3.m_userData is muravei)) || ((_local3.m_userData is muraveiR)))){ } else { _local3.m_userData.rotation = (_local3.GetAngle() * rotatSpeed); }; }; if (((((((!((_local3.NameB == null))) && (!((Main1.specUroven == Main1.specSpec))))) && ((((_local3.NameB == "muravR")) || ((_local3.NameB == "muravRObr")))))) && (_local3.m_userData.hitTestObject(nOut)))){ if (Main1.snd){ s_beep = new hihi1(); zvgrom = 0.4; sndStart = 0; oiZvuk(); }; removeChild((_local3.m_userData as Sprite)); m_world.DestroyBody(_local3); dobavMuravR = (dobavMuravR - 1); domArray[0].gotoAndPlay(5); levelScore = 0; scor(); dosli = true; addChildAt(polup, (getChildIndex(logos) - 1)); }; if (Main1.specUroven == Main1.specSpec){ _local7 = 1; _local8 = 0; while (_local8 < domArray.length) { _local9 = domArray[_local8]; if (((((((!((_local3.NameB == null))) && ((_local3.m_userData is muraveiR)))) && (_local9.hitTestObject(_local3.m_userData)))) && (((_local3.m_userData.x - _local9.x) < 25)))){ if (_local9.currentFrame < 5){ _local9.gotoAndStop(5); zahvat++; _local7 = 5; }; if (Main1.snd){ s_beep = new hihi1(); zvgrom = 0.4; sndStart = 0; oiZvuk(); }; removeChild((_local3.m_userData as Sprite)); m_world.DestroyBody(_local3); levelScore = (levelScore - (10 * _local7)); scor(); dobavMuravR = (dobavMuravR - 1); }; _local8++; }; }; if ((((((Main1.specUroven == Main1.specSpec)) && ((domArray.length == zahvat)))) && ((textDie == null)))){ pus.visible = false; endDobavR = Main1.kolvoMuravR; targ = false; textDie = new ubiza(); if (Main1.lvl > 14){ textDie = new ubizaIce(); }; textDie.weldan.gotoAndStop(3); _local10 = getChildIndex(arr); addChildAt(textDie, _local10); addChildAt(polup, (getChildIndex(logos) - 1)); }; if (rA == true){ rA = false; resetAll(); return; }; if ((((((((dobavMurav == 0)) && ((prosloMurav > 0)))) && ((textDie == null)))) && ((ubitoMurav > 0)))){ textDie = new ubiza(); if (Main1.lvl > 14){ textDie = new ubizaIce(); }; _local11 = getChildIndex(arr); addChildAt(textDie, _local11); addChildAt(polup, (getChildIndex(logos) - 1)); }; if ((((((((dobavMurav == 0)) && ((prosloMurav == Main1.kolvoMurav)))) && ((textDie == null)))) || ((((((((Main1.specUroven == Main1.specSpec)) && ((endDobavR == Main1.kolvoMuravR)))) && ((dobavMuravR < 1)))) && ((zahvat < domArray.length)))))){ textDie = new pozdr(); if (Main1.lvl > 14){ textDie = new pozdrIce(); }; textDie.btnSS.visible = false; nazal = false; targ = false; goGo = false; clickForStar = false; estStar = false; if (((!((stat.data.array[(Main1.lvl - 1)] == 0))) && ((stat.data.array[(Main1.lvl - 1)] < levelScore)))){ stat.data.array[(Main1.lvl - 1)] = levelScore; textDie.weldan.gotoAndStop(2); if ((((stat.data.arrayZ[(Main1.lvl - 1)] == 1)) && ((zvezduVzyal == false)))){ stat.data.arrayZ[(Main1.lvl - 1)] = 0; }; if (FunflowAPI.isHome){ if (stat.data.wonn == true){ _local12 = 0; while (_local12 < stat.data.array.length) { _local13 = stat.data.array[_local12]; summa = (summa + _local13); _local12++; }; FunflowAPI.submitScore(summa); }; } else { textDie.btnSS.visible = true; }; }; if (stat.data.array[(Main1.lvl - 1)] == 0){ stat.data.array[(Main1.lvl - 1)] = levelScore; if (FunflowAPI.isHome){ } else { textDie.btnSS.visible = true; }; }; if ((((stat.data.arrayZ[(Main1.lvl - 1)] == 0)) && ((zvezduVzyal == true)))){ stat.data.arrayZ[(Main1.lvl - 1)] = 1; }; prosloMurav = 0; if (Main1.lvl == menu1.numLevels){ menu1.numLevels++; stat.data.lvl = menu1.numLevels; }; if ((((Main1.lvl < 22)) && ((stat.data.wonn == false)))){ FunflowAPI.submitLevel(Main1.lvl); }; Main1.lvl++; endDobavR = 0; if (Main1.fsc != null){ pausePosition = Main1.fsc.position; Main1.fsc.stop(); }; if (bsc != null){ pausePosition1 = bsc.position; bsc.stop(); }; if (stat.data.wonn == true){ btnSel = new selNL1(); btnSel.filters = textDie.btnNL.filters; textDie.btnNL.visible = false; textDie.addChild(btnSel); }; if ((((stat.data.wonn == false)) && ((Main1.lvl == 22)))){ delListener1(); delListener2(); Main1(parent).newLevel(); } else { _local14 = getChildIndex(arr); addChildAt(textDie, _local14); addChildAt(polup, (getChildIndex(logos) - 1)); }; }; if (((((((((!((textDie == null))) && ((((textDie is pozdrIce)) || ((textDie is pozdr)))))) && ((textDie.currentFrame == 5)))) && (Main1.snd))) && ((oneTada == false)))){ oneTada = true; s_beep = new Tada(); zvgrom = 0.3; sndStart = 10; oiZvuk(); }; if (((((((((!((textDie == null))) && ((((textDie is ubiza)) || ((textDie is ubizaIce)))))) && ((textDie.currentFrame == 11)))) && (Main1.snd))) && ((oneTada == false)))){ oneTada = true; s_beep = new loser(); zvgrom = 0.5; sndStart = 0; oiZvuk(); }; if (((((((!((inctr == null))) && ((inctr is specInsrtuct)))) && ((inctr.currentFrame == 16)))) && ((oneTam1 == false)))){ oneTam1 = true; s_beep = new Tamtam1(); zvgrom = 1.8; sndStart = 30; oiZvuk(); }; if (((((((!((inctr == null))) && ((inctr is specInsrtuct)))) && ((inctr.currentFrame == 51)))) && ((oneTam2 == false)))){ oneTam2 = true; s_beep = new Tamtam1(); zvgrom = 1.8; sndStart = 30; oiZvuk(); }; if (((((!((textDie == null))) && ((((textDie is ubiza)) || ((textDie is ubizaIce)))))) && ((textDie.currentFrame == 30)))){ rstgo.removeEventListener(MouseEvent.CLICK, goAl); stage.removeEventListener(MouseEvent.MOUSE_DOWN, kd); stage.removeEventListener(MouseEvent.MOUSE_UP, ku); if (padun[0] != null){ padun[0].removeEventListener(MouseEvent.ROLL_OVER, pdsv0); padun[0].removeEventListener(MouseEvent.ROLL_OUT, pdso0); }; if (padun[1] != null){ padun[1].removeEventListener(MouseEvent.ROLL_OVER, pdsv0); padun[1].removeEventListener(MouseEvent.ROLL_OUT, pdso0); }; if (padun[2] != null){ padun[2].removeEventListener(MouseEvent.ROLL_OVER, pdsv0); padun[2].removeEventListener(MouseEvent.ROLL_OUT, pdso0); }; if (padun[3] != null){ padun[3].removeEventListener(MouseEvent.ROLL_OVER, pdsv0); padun[3].removeEventListener(MouseEvent.ROLL_OUT, pdso0); }; if (forStar != null){ forStar.removeEventListener(MouseEvent.ROLL_OVER, pdsv1); forStar.removeEventListener(MouseEvent.ROLL_OUT, pdso1); }; if (ramkaUpala == false){ ramkaUpala = true; textDie.btnMG1.addEventListener(MouseEvent.CLICK, gotoFun); textDie.btnSol1.addEventListener(MouseEvent.CLICK, solAl); textDie.btnRes1.addEventListener(MouseEvent.CLICK, resDie); }; }; if (((((!((textDie == null))) && ((((textDie is pozdrIce)) || ((textDie is pozdr)))))) && ((textDie.currentFrame == 30)))){ rstgo.removeEventListener(MouseEvent.CLICK, goAl); stage.removeEventListener(MouseEvent.MOUSE_DOWN, kd); stage.removeEventListener(MouseEvent.MOUSE_UP, ku); if (padun[0] != null){ padun[0].removeEventListener(MouseEvent.ROLL_OVER, pdsv0); padun[0].removeEventListener(MouseEvent.ROLL_OUT, pdso0); }; if (padun[1] != null){ padun[1].removeEventListener(MouseEvent.ROLL_OVER, pdsv0); padun[1].removeEventListener(MouseEvent.ROLL_OUT, pdso0); }; if (padun[2] != null){ padun[2].removeEventListener(MouseEvent.ROLL_OVER, pdsv0); padun[2].removeEventListener(MouseEvent.ROLL_OUT, pdso0); }; if (padun[3] != null){ padun[3].removeEventListener(MouseEvent.ROLL_OVER, pdsv0); padun[3].removeEventListener(MouseEvent.ROLL_OUT, pdso0); }; if (forStar != null){ forStar.removeEventListener(MouseEvent.ROLL_OVER, pdsv1); forStar.removeEventListener(MouseEvent.ROLL_OUT, pdso1); }; if (ramkaUpala == false){ ramkaUpala = true; textDie.btnMG.addEventListener(MouseEvent.CLICK, gotoFun); textDie.liked.addEventListener(MouseEvent.CLICK, Likeds); if (stat.data.wonn == false){ textDie.btnNL.addEventListener(MouseEvent.CLICK, btnNLKlik); } else { btnSel.addEventListener(MouseEvent.CLICK, btnSelKlik); }; if (FunflowAPI.isHome){ } else { textDie.btnSS.addEventListener(MouseEvent.CLICK, btnSSKlik); }; }; return; }; if (((((!((ball2 == null))) && ((Math.ceil((scMurav / 8)) == (scMurav / 8))))) && ((_local15 == null)))){ _local15 = new merzanie(); _local15.x = ((ball2.x - (ball2.width / 2)) + (Math.random() * ball2.width)); _local15.y = (((ball2.y - (ball2.height / 1.2)) + (Math.random() * ball2.height)) + 5); addChildAt(_local15, (getChildIndex(arr) - 1)); }; if (((((!((ball2 == null))) && (ball2.hitTestObject(tck)))) && ((nazal == true)))){ nazal = false; if (Main1.snd){ s_beep = new otr(); zvgrom = 3; sndStart = 0; oiZvuk(); }; palms.gotoAndPlay(2); arr.gotoAndPlay(2); removeChild((ball2 as Sprite)); ball2 = null; addBall(); }; if (((((((((((!((forStar == null))) && (forStar.hitTestObject(tck)))) && ((nazal == true)))) && ((estStar == false)))) && ((clickForStar == false)))) && ((textDie == null)))){ clickForStar = true; nazal = false; forStar.gotoAndPlay(2); arr.gotoAndPlay(2); }; if (((((((((!((_local3.NameB == null))) && ((_local3.m_userData is muravei)))) && (!((oneStar == null))))) && (_local3.m_userData.hitTestObject(oneStar)))) && ((estStar == true)))){ estStar = false; levelScore = (levelScore + 50); scor(); zvezduVzyal = true; removeChild((oneStar as Sprite)); if (Main1.snd){ s_beep = new dzn(); zvgrom = 1.2; sndStart = 30; oiZvuk(); }; if (forStar != null){ forStar.gotoAndStop("vz"); }; }; if (((!((_local3.NameB == null))) && ((_local3.m_userData is ball_1)))){ booms.x = _local3.m_userData.x; booms.y = _local3.m_userData.y; }; if (((((((!((_local3.NameB == null))) && ((_local3.m_userData is ball_1)))) && (!((fv == null))))) && (_local3.m_userData.hitTestObject(fv)))){ addChild(booms); gorit = true; removeChild(fv); fv = null; if (Main1.snd){ pausePosition = Main1.fsc.position; Main1.fsc.stop(); s_beep = new torch1(); bsc = new SoundChannel(); bst = new SoundTransform(0.4, 0); bsc = s_beep.play(pausePosition1, 1000); bsc.soundTransform = bst; }; }; if (((((((((((!((_local3.NameB == null))) && ((_local3.m_userData is muraveiR)))) && (!((pus == null))))) && ((targ == true)))) && ((nazal == true)))) && (_local3.m_userData.hitTestObject(tck)))){ _local3.m_userData.gotoAndPlay("mDavka"); _local3.m_userData.scaleX = (_local3.m_userData.scaleX + 1); _local3.m_userData.scaleY = (_local3.m_userData.scaleY + 1); m_world.DestroyBody(_local3); dobavMuravR = (dobavMuravR - 1); levelScore = (levelScore + 10); scor(); nazal = false; }; if ((((((scMurav > interval)) && ((dobavMurav < Main1.kolvoMurav)))) && ((goGo == true)))){ addNewMur(); scMurav = 0; }; if ((((scMuravR > intervalR)) && ((dobavMuravR < Main1.kolvoMuravR)))){ addNewMurR(); scMuravR = 0; }; if (((((!((_local3.NameB == null))) && ((_local3.m_userData is muravei)))) && (_local3.m_userData.hitTestObject(nOut)))){ if (Main1.snd){ zvgrom = 0.1; sndStart = 0; s_beep = new Sound(); s_beep = new ihu(); oiZvuk(); }; removeChild((_local3.m_userData as Sprite)); m_world.DestroyBody(_local3); prosloMurav = (prosloMurav + 1); dobavMurav = (dobavMurav - 1); if (dobavMurav == 0){ domArray[0].gotoAndPlay(2); }; }; if (((((((!((_local3.NameB == null))) && ((((_local3.m_userData is muravei)) || ((_local3.m_userData is muraveiR)))))) && (!((fv == null))))) && (_local3.m_userData.hitTestObject(fv)))){ _local3.m_userData.rotation = 0; _local3.m_userData.gotoAndPlay("mFire"); if ((_local3.m_userData is muravei)){ dobavMurav = (dobavMurav - 1); ubitoMurav = (ubitoMurav + 1); levelScore = (levelScore - 10); } else { dobavMuravR = (dobavMuravR - 1); levelScore = (levelScore + 10); }; if (Main1.snd){ sndStart = 100; s_beep = new foi2(); zvgrom = 0.8; oiZvuk(); }; scor(); m_world.DestroyBody(_local3); }; if ((((ryz > 2)) && ((estToStar == false)))){ ryz = 0; estToStar = true; toStar = new to_star(); _local16 = Math.ceil((Math.random() * 400)); toStar.x = (-200 + _local16); toStar.y = ((nInR.y + (Math.ceil((_local16 / 100)) * 69)) - 2); addChildAt(toStar, 15); }; if (((((((((!((toStar == null))) && (!((pus == null))))) && ((targ == true)))) && ((nazal == true)))) && (toStar.hitTestObject(tck)))){ toStar.gotoAndPlay(152); if (Main1.snd){ s_beep = new dzn(); zvgrom = 1.2; sndStart = 0; oiZvuk(); }; levelScore = (levelScore + 50); scor(); nazal = false; }; if (((!((_local3.NameB == null))) && ((_local3.NameB == "ball")))){ _local17 = _local3.GetContactList(); while (_local17) { if (((((!((_local17.other.NameB == null))) && ((_local17.other.NameB == "spec")))) && ((gorit == true)))){ removeChild((_local3.m_userData as Sprite)); m_world.DestroyBody(_local3); if (Main1.snd){ pausePosition1 = bsc.position; bsc.stop(); s_beep = new torch2(); sc = new SoundChannel(); st = new SoundTransform(0.7, 0); sc = s_beep.play(0, 0); sc.soundTransform = st; }; zagor = _local17.other.m_userData; _local17.other.m_userData.gotoAndPlay(2); m_world.DestroyBody(_local17.other); _local18 = new zola(); _local18.x = _local17.other.m_userData.x; _local18.y = (_local17.other.m_userData.y + (_local17.other.m_userData.height / 3.3)); addChild(_local18); removeChild(booms); gorit = false; }; _local17 = _local17.next; }; }; if (((!((_local3.m_userData == null))) && ((_local3.m_userData is muraveiR)))){ _local19 = _local3.GetContactList(); while (_local19) { if (((!((_local19.other.m_userData == null))) && ((_local19.other.m_userData is muravei)))){ if (Main1.snd){ s_beep = new crunchybite(); zvgrom = 0.8; sndStart = 20; oiZvuk(); }; if (_local3.NameB == "muravR"){ _local3.m_userData.gotoAndPlay("lPoed"); } else { _local3.m_userData.gotoAndPlay("rPoed"); }; removeChild((_local19.other.m_userData as Sprite)); m_world.DestroyBody(_local19.other); dobavMurav = (dobavMurav - 1); ubitoMurav = (ubitoMurav + 1); levelScore = (levelScore - 10); scor(); }; _local19 = _local19.next; }; }; if ((((Main1.kolvoMurav == ubitoMurav)) && ((textDie == null)))){ textDie = new ubiza(); if (Main1.lvl > 14){ textDie = new ubizaIce(); }; _local20 = getChildIndex(arr); textDie.weldan.gotoAndStop(2); addChildAt(textDie, _local20); addChildAt(polup, (getChildIndex(logos) - 1)); if (((!((ukaz == null))) && (!((arukaz == null))))){ removeChild(ukaz); removeChild(arukaz); ukaz = null; arukaz = null; }; }; if (((((!((Main1.specUroven == Main1.specSpec))) && ((domArray[0].currentFrame == 5)))) && ((textDie == null)))){ textDie = new ubiza(); if (Main1.lvl > 14){ textDie = new ubizaIce(); }; _local21 = getChildIndex(arr); textDie.weldan.gotoAndStop(4); addChildAt(textDie, _local21); addChildAt(polup, (getChildIndex(logos) - 1)); }; if (((!((_local3.NameB == null))) && ((((((((((_local3.NameB == "ball")) || ((_local3.NameB == "dynoPlank")))) || ((_local3.NameB == "chel")))) || ((_local3.NameB == "return")))) || ((_local3.NameB == "pizdecpad")))))){ _local3.WakeUp(); }; if (((!((_local3.NameB == null))) && ((((((((_local3.NameB == "murav")) || ((_local3.NameB == "muravR")))) || ((_local3.NameB == "muravObr")))) || ((_local3.NameB == "muravRObr")))))){ if ((((_local3.NameB == "murav")) || ((_local3.NameB == "muravRObr")))){ znak = 1; }; if ((((_local3.NameB == "muravR")) || ((_local3.NameB == "muravObr")))){ znak = -1; }; if (((!((textDie == null))) && ((((_local3.m_userData.currentFrame < 13)) || ((((_local3.m_userData.currentFrame > 29)) && ((_local3.m_userData.currentFrame < 57)))))))){ znak = 0; _local3.m_userData.gotoAndStop("mAnfas"); }; _local3.ApplyForce(new b2Vec2((znak * muravSpeed), 0), _local3.GetWorldCenter()); _local3.GetLinearVelocity().x = 0; _local22 = _local3.GetContactList(); while (_local22) { if ((((((((_local3.NameB == "murav")) && ((((((_local22.other.NameB == "return")) || ((_local22.other.NameB == "spec")))) || ((((_local22.other.NameB == "nespecRot")) && ((_local22.other.m_userData.rotation > 88)))))))) && ((znak == 1)))) && ((_local3.m_userData.x < _local22.other.m_userData.x)))){ _local3.NameB = "muravObr"; _local3.m_userData.gotoAndPlay("povLeft"); }; if ((((((((_local3.NameB == "murav")) && ((_local22.other.NameB == "muravObr")))) && ((_local3.m_userData.x < _local22.other.m_userData.x)))) && ((znak == 1)))){ _local3.NameB = "muravObr"; _local3.m_userData.gotoAndPlay("povLeft"); }; if ((((((((_local3.NameB == "muravR")) && ((((((_local22.other.NameB == "return")) || ((_local22.other.NameB == "spec")))) || ((((_local22.other.NameB == "nespecRot")) && ((_local22.other.m_userData.rotation > 88)))))))) && ((znak == -1)))) && ((_local3.m_userData.x > _local22.other.m_userData.x)))){ _local3.NameB = "muravRObr"; _local3.m_userData.gotoAndPlay("povLeft"); }; if ((((((((_local3.NameB == "muravR")) && ((_local22.other.NameB == "muravRObr")))) && ((_local3.m_userData.x > _local22.other.m_userData.x)))) && ((znak == -1)))){ _local3.NameB = "muravRObr"; _local3.m_userData.gotoAndPlay("povLeft"); }; if ((((((((_local3.NameB == "muravObr")) && ((((((_local22.other.NameB == "return")) || ((_local22.other.NameB == "spec")))) || ((((_local22.other.NameB == "nespecRot")) && ((_local22.other.m_userData.rotation > 88)))))))) && ((znak == -1)))) && ((_local3.m_userData.x > _local22.other.m_userData.x)))){ _local3.NameB = "murav"; _local3.m_userData.gotoAndPlay("povRicht"); }; if ((((((((_local3.NameB == "muravObr")) && ((_local22.other.NameB == "murav")))) && ((_local3.m_userData.x > _local22.other.m_userData.x)))) && ((znak == -1)))){ _local3.NameB = "murav"; _local3.m_userData.gotoAndPlay("povRicht"); }; if ((((((((_local3.NameB == "muravRObr")) && ((((((_local22.other.NameB == "return")) || ((_local22.other.NameB == "spec")))) || ((((_local22.other.NameB == "nespecRot")) && ((_local22.other.m_userData.rotation > 88)))))))) && ((znak == 1)))) && ((_local3.m_userData.x < _local22.other.m_userData.x)))){ _local3.NameB = "muravR"; _local3.m_userData.gotoAndPlay("povRicht"); }; if ((((((((_local3.NameB == "muravRObr")) && ((_local22.other.NameB == "muravR")))) && ((_local3.m_userData.x < _local22.other.m_userData.x)))) && ((znak == 1)))){ _local3.NameB = "muravR"; _local3.m_userData.gotoAndPlay("povRicht"); }; if ((((((((_local3.NameB == "muravRObr")) && ((_local22.other.NameB == "chel")))) && ((_local22.other.m_userData.rotation < -120)))) && (((_local22.other.m_userData.x - _local3.m_userData.x) < 34)))){ _local3.NameB = "muravR"; _local3.m_userData.gotoAndPlay("povRicht"); }; if ((((((((_local3.NameB == "murav")) && ((_local22.other.NameB == "chel")))) && ((_local22.other.m_userData.rotation < -120)))) && (((_local22.other.m_userData.x - _local3.m_userData.x) < 34)))){ _local3.NameB = "muravObr"; _local3.m_userData.gotoAndPlay("povLeft"); }; if ((((((((_local3.NameB == "muravR")) && ((_local22.other.NameB == "chel")))) && ((_local22.other.m_userData.rotation > 120)))) && (((_local22.other.m_userData.x - _local3.m_userData.x) > -34)))){ _local3.NameB = "muravRObr"; _local3.m_userData.gotoAndPlay("povLeft"); }; if ((((((((_local3.NameB == "muravObr")) && ((_local22.other.NameB == "chel")))) && ((_local22.other.m_userData.rotation > 120)))) && (((_local22.other.m_userData.x - _local3.m_userData.x) > -34)))){ _local3.NameB = "murav"; _local3.m_userData.gotoAndPlay("povRicht"); }; if (((!((_local22.other.NameB == null))) && ((((((((((_local22.other.NameB == "prosto")) || ((_local22.other.NameB == "nespec")))) || ((((_local22.other.NameB == "nespecRot")) && ((_local22.other.m_userData.rotation < 80)))))) || ((_local22.other.NameB == "nespecRotAct")))) || ((_local22.other.NameB == "nespecR")))))){ _local3.m_userData.rotation = _local22.other.m_userData.rotation; }; if (((((!((_local22.other.NameB == null))) && ((((_local22.other.NameB == "pizdectr")) || ((_local22.other.NameB == "chel")))))) && (_local3.m_userData.x))){ _local3.m_userData.rotation = (-(znak) * 35); }; if (((((((((!((_local22.other.NameB == null))) && ((_local22.other.NameB == "ball")))) && ((gorit == false)))) && ((_local22.other.GetLinearVelocity().y > 4)))) && (((_local3.m_userData.y - _local22.other.m_userData.y) > 2)))){ _local3.m_userData.gotoAndPlay("mDavka"); _local3.m_userData.scaleX = (_local3.m_userData.scaleX + 0.6); _local3.m_userData.scaleY = (_local3.m_userData.scaleY + 0.6); if ((_local3.m_userData is muravei)){ dobavMurav = (dobavMurav - 1); ubitoMurav = (ubitoMurav + 1); levelScore = (levelScore - 10); } else { dobavMuravR = (dobavMuravR - 1); levelScore = (levelScore + 10); }; if (Main1.snd){ s_beep = new hlup(); zvgrom = 1; sndStart = 0; oiZvuk(); }; scor(); m_world.DestroyBody(_local3); }; if (((((!((_local22.other.NameB == null))) && ((_local22.other.NameB == "ball")))) && ((gorit == true)))){ _local3.m_userData.rotation = 0; _local3.m_userData.gotoAndPlay("mFire"); if ((_local3.m_userData is muravei)){ dobavMurav = (dobavMurav - 1); ubitoMurav = (ubitoMurav + 1); levelScore = (levelScore - 10); }; if ((_local3.m_userData is muraveiR)){ levelScore = (levelScore + 10); dobavMuravR = (dobavMuravR - 1); }; if (Main1.snd){ s_beep = new foi2(); zvgrom = 0.8; sndStart = 10; oiZvuk(); }; scor(); m_world.DestroyBody(_local3); }; if (((((((!((_local22.other.NameB == null))) && (((_local3.m_userData.y - _local22.other.m_userData.y) > 1)))) && ((_local22.other.NameB == "chel")))) && ((_local22.other.GetLinearVelocity().y > 1)))){ _local3.m_userData.gotoAndPlay("mDavka"); _local3.m_userData.scaleX = (_local3.m_userData.scaleX + 0.6); _local3.m_userData.scaleY = (_local3.m_userData.scaleY + 0.6); if ((_local3.m_userData is muravei)){ dobavMurav = (dobavMurav - 1); ubitoMurav = (ubitoMurav + 1); levelScore = (levelScore - 10); } else { dobavMuravR = (dobavMuravR - 1); levelScore = (levelScore + 10); }; if (Main1.snd){ s_beep = new hlup(); zvgrom = 0.6; sndStart = 0; oiZvuk(); }; scor(); m_world.DestroyBody(_local3); }; if (((((((!((_local22.other.NameB == null))) && (((_local3.m_userData.y - _local22.other.m_userData.y) > 1)))) && ((((_local22.other.NameB == "return")) || ((_local22.other.NameB == "pizdecpad")))))) && ((_local22.other.GetLinearVelocity().y > 2)))){ _local3.m_userData.gotoAndPlay("mDavka"); _local3.m_userData.scaleX = (_local3.m_userData.scaleX + 0.6); _local3.m_userData.scaleY = (_local3.m_userData.scaleY + 0.6); if ((_local3.m_userData is muravei)){ dobavMurav = (dobavMurav - 1); ubitoMurav = (ubitoMurav + 1); levelScore = (levelScore - 10); } else { dobavMuravR = (dobavMuravR - 1); levelScore = (levelScore + 10); }; if (Main1.snd){ s_beep = new hlup(); zvgrom = 0.6; sndStart = 0; oiZvuk(); }; scor(); m_world.DestroyBody(_local3); }; if (((!((zagor == null))) && (_local3.m_userData.hitTestObject(zagor)))){ _local3.m_userData.gotoAndPlay("mFire"); if ((_local3.m_userData is muravei)){ dobavMurav = (dobavMurav - 1); ubitoMurav = (ubitoMurav + 1); } else { dobavMuravR = (dobavMuravR - 1); levelScore = (levelScore + 10); }; if (Main1.snd){ s_beep = new foi2(); zvgrom = 0.8; sndStart = 10; oiZvuk(); }; m_world.DestroyBody(_local3); }; _local22 = _local22.next; }; }; if (((((!((_local3.NameB == null))) && ((_local3.NameB == "chel")))) && ((Math.ceil((scMurav / 2)) == (scMurav / 2))))){ _local23 = new merzanie(); _local23.x = (((_local3.m_userData.x - (_local3.m_userData.width / 2)) + ((Math.random() * _local3.m_userData.width) / 1.4)) + 10); _local23.y = ((_local3.m_userData.y - (_local3.m_userData.height / 1.2)) + ((Math.random() * _local3.m_userData.height) / 1.2)); addChildAt(_local23, (getChildIndex(arr) - 1)); _local23.mouseEnabled = false; _local23.mouseChildren = false; }; if (((((((((!((_local3.NameB == null))) && ((_local3.NameB == "chel")))) && (_local3.m_userData.hitTestObject(tck)))) && ((nazal == true)))) && ((textDie == null)))){ arr.gotoAndPlay(2); _local24 = _local3.GetContactList(); while (_local24) { if (((!((_local24.other.NameB == null))) && ((_local24.other.NameB == "prosto")))){ if (((((((_local3.m_userData.x - (_local3.m_userData.width / 2)) < mouseX)) && (((_local3.m_userData.x + (_local3.m_userData.width / 2)) > mouseX)))) && ((Math.abs(_local3.m_userData.rotation) < 50)))){ if (((Main1.snd) && ((sdvig == false)))){ s_beep = new mpeu(); zvgrom = 1.2; sndStart = 20; oiZvuk(); }; _local3.m_userData.gotoAndPlay(2); _local3.ApplyImpulse(new b2Vec2(0, -200), _local3.GetWorldCenter()); nazal = false; }; }; _local24 = _local24.next; }; }; if (((((!((_local3.NameB == null))) && ((_local3.NameB == "nespec")))) && ((Math.ceil((scMurav / 2)) == (scMurav / 2))))){ _local25 = new merzanie(); _local25.x = ((_local3.m_userData.x - (_local3.m_userData.width / 2)) + (Math.random() * _local3.m_userData.width)); _local25.y = ((_local3.m_userData.y - (_local3.m_userData.height / 1.2)) + (Math.random() * _local3.m_userData.height)); addChildAt(_local25, (getChildIndex(arr) - 1)); _local25.mouseEnabled = false; _local25.mouseChildren = false; }; if (((((((((!((_local3.NameB == null))) && ((_local3.NameB == "nespec")))) && (_local3.m_userData.hitTestObject(tck)))) && ((nazal == true)))) && ((textDie == null)))){ arr.gotoAndPlay(2); if (((Main1.snd) && ((sdvig == false)))){ s_beep = new bz(); zvgrom = 1.2; sndStart = 20; oiZvuk(); _local3.m_userData.gotoAndPlay(poloz); }; sdvig = true; }; if (((((!((_local3.NameB == null))) && ((_local3.NameB == "nespec")))) && ((sdvig == true)))){ _local26 = _local3.m_userData.x; _local27 = _local3.m_userData.y; if (poloz == "right"){ if (ii < mestoPoloz){ _local28 = new b2Vec2(((_local26 - polozSpeed) / m_physScale), (_local27 / m_physScale)); _local3.SetXForm(_local28, 0); ii++; }; if (ii == mestoPoloz){ poloz = "left"; ii = 1; sdvig = false; nazal = false; }; } else { if (ii < mestoPoloz){ _local29 = new b2Vec2(((_local26 + polozSpeed) / m_physScale), (_local27 / m_physScale)); _local3.SetXForm(_local29, 0); ii++; }; if (ii == mestoPoloz){ poloz = "right"; ii = 1; sdvig = false; nazal = false; }; }; }; if (((((!((_local3.NameB == null))) && ((_local3.NameB == "nespecR")))) && ((Math.ceil((scMurav / 2)) == (scMurav / 2))))){ _local30 = new merzanie(); _local30.x = ((_local3.m_userData.x - (_local3.m_userData.width / 2)) + (Math.random() * _local3.m_userData.width)); _local30.y = ((_local3.m_userData.y - (_local3.m_userData.height / 1.2)) + (Math.random() * _local3.m_userData.height)); addChildAt(_local30, (getChildIndex(arr) - 1)); _local30.mouseEnabled = false; _local30.mouseChildren = false; }; if (((((((((!((_local3.NameB == null))) && ((_local3.NameB == "nespecR")))) && (_local3.m_userData.hitTestObject(tck)))) && ((nazal == true)))) && ((textDie == null)))){ arr.gotoAndPlay(2); if (((Main1.snd) && ((sdvigR == false)))){ s_beep = new bz(); zvgrom = 1.2; sndStart = 20; oiZvuk(); _local3.m_userData.gotoAndPlay(polozR); }; sdvigR = true; }; if (((((!((_local3.NameB == null))) && ((_local3.NameB == "nespecR")))) && ((sdvigR == true)))){ _local31 = _local3.m_userData.x; _local32 = _local3.m_userData.y; if (polozR == "right"){ if (iiR < mestoPolozR){ _local33 = new b2Vec2(((_local31 + polozSpeedR) / m_physScale), (_local32 / m_physScale)); _local3.SetXForm(_local33, 0); iiR++; }; if (iiR == mestoPolozR){ polozR = "left"; iiR = 1; sdvigR = false; nazal = false; }; } else { if (iiR < mestoPolozR){ _local34 = new b2Vec2(((_local31 - polozSpeedR) / m_physScale), (_local32 / m_physScale)); _local3.SetXForm(_local34, 0); iiR++; }; if (iiR == mestoPolozR){ polozR = "right"; iiR = 1; sdvigR = false; nazal = false; }; }; }; if (((((((((!((_local3.NameB == null))) && ((_local3.NameB == "nespecRot")))) && ((Math.ceil((scMurav / 2)) == (scMurav / 2))))) && ((Main1.lvl == 18)))) && ((_local3.m_userData.rotation > 60)))){ _local35 = new merzanie(); _local35.x = ((_local3.m_userData.x - 7) + (Math.random() * 14)); _local35.y = ((_local3.m_userData.y - 49) + (Math.random() * 98)); addChildAt(_local35, (getChildIndex(arr) - 1)); _local35.mouseEnabled = false; _local35.mouseChildren = false; }; if (((((((((!((_local3.NameB == null))) && ((_local3.NameB == "nespecRot")))) && ((Math.ceil((scMurav / 2)) == (scMurav / 2))))) && ((Math.abs(_local3.m_userData.rotation) < 10)))) && (!((Main1.lvl == 18))))){ _local36 = new merzanie(); _local36.x = ((_local3.m_userData.x - (_local3.m_userData.width / 2)) + (Math.random() * _local3.m_userData.width)); _local36.y = ((_local3.m_userData.y - (_local3.m_userData.height / 1.2)) + (Math.random() * _local3.m_userData.height)); addChildAt(_local36, (getChildIndex(arr) - 1)); _local36.mouseEnabled = false; _local36.mouseChildren = false; }; if (((((((((!((_local3.NameB == null))) && ((_local3.NameB == "nespecRot")))) && ((nazal == true)))) && (_local3.m_userData.hitTestObject(tck)))) && ((textDie == null)))){ if (((Main1.snd) && ((sdvigRot == false)))){ s_beep = new kr(); zvgrom = 0.4; sndStart = 20; oiZvuk(); }; deistvie = true; if (((!((ukaz == null))) && (!((arukaz == null))))){ removeChild(ukaz); removeChild(arukaz); ukaz = null; arukaz = null; }; if ((((Main1.lvl == 2)) && ((goGo == false)))){ rstgo.alpha = 1; rstgo.mouseEnabled = true; }; sdvigRot = true; arr.gotoAndPlay(2); _local3.NameB = "nespecRotAct"; }; if ((((_local3.NameB == "nespecRotAct")) && ((sdvigRot == true)))){ if (iiRot < ugolRot){ _local37 = _local3.m_userData.x; _local38 = _local3.m_userData.y; _local39 = _local3.m_userData.rotation; _local40 = new b2Vec2((_local37 / m_physScale), (_local38 / m_physScale)); _local3.SetXForm(_local40, ((_local39 - SpeedRot) / rotatSpeed)); nazal = false; iiRot++; } else { _local3.NameB = "nespecRot"; SpeedRot = -(SpeedRot); sdvigRot = false; iiRot = 1; }; }; if (((((!((_local3.NameB == null))) && ((_local3.NameB == "specpad")))) && ((Math.ceil((scMurav / 2)) == (scMurav / 2))))){ _local41 = new merzanie(); _local41.x = ((_local3.m_userData.x - (_local3.m_userData.width / 2)) + (Math.random() * _local3.m_userData.width)); _local41.y = ((_local3.m_userData.y - (_local3.m_userData.height / 1.2)) + (Math.random() * _local3.m_userData.height)); addChildAt(_local41, (getChildIndex(arr) - 1)); _local41.mouseEnabled = false; _local41.mouseChildren = false; }; if (((((((((!((_local3.NameB == null))) && ((_local3.NameB == "specpad")))) && (_local3.m_userData.hitTestObject(tck)))) && ((nazal == true)))) && ((textDie == null)))){ arr.gotoAndPlay(2); if (Main1.snd){ s_beep = new otr(); zvgrom = 4; sndStart = 0; oiZvuk(); }; deistvie = true; if (((!((ukaz == null))) && (!((arukaz == null))))){ removeChild(ukaz); removeChild(arukaz); ukaz = null; arukaz = null; }; if ((((Main1.lvl == 1)) && ((goGo == false)))){ rstgo.alpha = 1; rstgo.mouseEnabled = true; }; _local42 = 0; while (_local42 < linkArray.length) { _local49 = linkArray[_local42]; if (((_local3.m_userData.hitTestObject(_local49)) && ((_local49.currentFrame == 1)))){ _local49.gotoAndPlay("linkStart"); }; _local42++; }; _local43 = _local3.m_userData.x; _local44 = _local3.m_userData.y; _local45 = _local3.m_userData.width; _local46 = _local3.m_userData.height; removeChild((_local3.m_userData as Sprite)); m_world.DestroyBody(_local3); _local48 = new b2PolygonDef(); _local47 = new b2BodyDef(); _local47.userData = new plankPad(); _local47.userData.x = _local43; _local47.userData.y = _local44; _local47.userData.width = _local45; _local47.userData.height = _local46; _local47.position.Set((_local43 / m_physScale), (_local44 / m_physScale)); _local48.SetAsBox((_local45 / (m_physScale * 2)), (_local46 / (m_physScale * 2))); _local48.density = 0.4; _local48.friction = 0.1; _local48.restitution = 0.2; head = m_world.CreateDynamicBody(_local47); head.moveF = true; head.NameB = "pizdecpad"; head.CreateShape(_local48); head.SetMassFromShapes(); _local47.userData.gotoAndStop((Main1.specUroven + 1)); addChildAt(_local47.userData, 5); nazal = false; }; _local3 = _local3.m_next; }; } function resetR(_arg1:KeyboardEvent){ if (_arg1.keyCode == 82){ if ((((textDie == null)) || (((!((textDie == null))) && ((((textDie is ubizaIce)) || ((textDie is ubiza)))))))){ rA = true; }; }; } function go(){ var _local1:b2AABB; var _local2:b2Vec2; var _local3:Boolean; Mouse.hide(); m_sprite = Main1.m_sprite; _local1 = new b2AABB(); _local1.lowerBound.Set(-1000, -1000); _local1.upperBound.Set(1000, 1000); _local2 = new b2Vec2(0, 7); _local3 = true; m_world = new b2World(_local1, _local2, _local3); defScoresField(); nIn = (this.getChildByName("nIn1") as MovieClip); if (nIn != null){ nIn.gotoAndStop(1); }; nInR = (this.getChildByName("nIn1R") as MovieClip); tck = (this.getChildByName("tck1") as MovieClip); fv = (this.getChildByName("fv1") as MovieClip); nOut = (this.getChildByName("nOut1") as MovieClip); rstgo = (this.getChildByName("rstgo1") as SimpleButton); rsts = (this.getChildByName("rsts1") as SimpleButton); rstl = (this.getChildByName("rstl1") as SimpleButton); rstm = (this.getChildByName("rstm1") as SimpleButton); rstsnd = (this.getChildByName("rstsnd1") as SimpleButton); rstmus = (this.getChildByName("rstmus1") as SimpleButton); lvls = (this.getChildByName("lvls1") as SimpleButton); pus = (this.getChildByName("pus1") as MovieClip); forStar = (this.getChildByName("forStar1") as MovieClip); if (forStar != null){ forStar.gotoAndStop(1); }; rstsnd.alpha = Main1.sndAlpha; rstmus.alpha = Main1.musAlpha; scor(); objToPhys(); fireZvuk(); prirodaZvuk(); arr.mouseEnabled = false; arr.mouseChildren = false; arr.gotoAndStop(1); if (Main1.lvl == 1){ kvadr.x = -200; kvadr.y = -182; if ((((stat.data.kvadro == undefined)) || ((stat.data.kvadro == 1)))){ rstgo.alpha = 0.5; rstgo.mouseEnabled = false; inctr = new insrtuct(); inctr.x = 0; inctr.y = -3.5; addChildAt(inctr, (getChildIndex(arr) - 1)); kvadr.gotoAndStop(1); stat.data.kvadro = 1; chitay = true; } else { kvadr.gotoAndStop(2); chitay = false; }; addChildAt(kvadr, (getChildIndex(arr) - 1)); }; if ((((Main1.lvl == 2)) && ((stat.data.kvadro == 1)))){ rstgo.alpha = 0.5; rstgo.mouseEnabled = false; }; if (Main1.specUroven == Main1.specSpec){ rstgo.alpha = 0.5; rstgo.mouseEnabled = false; levelScore = 0; scor(); }; tck.mouseEnabled = false; tck.mouseChildren = false; glow.color = 0xFF0000; glow.alpha = 1; glow.blurX = 6; glow.blurY = 6; glow.strength = 4; glow.quality = BitmapFilterQuality.LOW; addEventListener(Event.ENTER_FRAME, Update); stage.addEventListener(KeyboardEvent.KEY_DOWN, resetR); stage.addEventListener(MouseEvent.MOUSE_DOWN, kd); stage.addEventListener(MouseEvent.MOUSE_UP, ku); rstgo.addEventListener(MouseEvent.CLICK, goAl); rsts.addEventListener(MouseEvent.CLICK, solAl); rstl.addEventListener(MouseEvent.CLICK, resetAl); rstm.addEventListener(MouseEvent.CLICK, menuAl); rstsnd.addEventListener(MouseEvent.CLICK, sndAl); rstmus.addEventListener(MouseEvent.CLICK, musAl); lvls.addEventListener(MouseEvent.CLICK, levAl); if (logos != null){ logos.addEventListener(MouseEvent.CLICK, gotoFun); }; if ((((inctr is insrtuct)) && ((stat.data.kvadro == 1)))){ inctr.addEventListener(MouseEvent.CLICK, inctrAl); }; if (kvadr != null){ kvadr.addEventListener(MouseEvent.CLICK, kvadrKlik); }; if (padun[0] != null){ padun[0].addEventListener(MouseEvent.ROLL_OVER, pdsv0); padun[0].addEventListener(MouseEvent.ROLL_OUT, pdso0); }; if (padun[1] != null){ padun[1].addEventListener(MouseEvent.ROLL_OVER, pdsv0); padun[1].addEventListener(MouseEvent.ROLL_OUT, pdso0); }; if (padun[2] != null){ padun[2].addEventListener(MouseEvent.ROLL_OVER, pdsv0); padun[2].addEventListener(MouseEvent.ROLL_OUT, pdso0); }; if (padun[3] != null){ padun[3].addEventListener(MouseEvent.ROLL_OVER, pdsv0); padun[3].addEventListener(MouseEvent.ROLL_OUT, pdso0); }; if (((!((forStar == null))) && ((((((((((((((forStar is fonoblako1)) || ((forStar is izDrov)))) || ((forStar is zvezda2)))) || ((forStar is vyvis)))) || ((forStar is vystrel)))) || ((forStar is vyvis1)))) || ((forStar is vypad)))))){ forStar.addEventListener(MouseEvent.ROLL_OVER, pdsv1); forStar.addEventListener(MouseEvent.ROLL_OUT, pdso1); }; } function pdso0(_arg1:MouseEvent){ arr.rotation = 0; povorot = 0; arr.filters = []; } function scor(){ var _local1:*; _local1 = levelScore; if (_local1 < 0){ _local1 = 0; levelScore = 0; }; scc.text = ("Score: " + _local1); } function gotoFun(_arg1:MouseEvent){ FunflowAPI.openOtherGamesLink(); } function goAl(_arg1:MouseEvent){ goGo = true; rstgo.alpha = 0.5; rstgo.mouseEnabled = false; if (inctr != null){ inctr.removeEventListener(MouseEvent.CLICK, inctrAl); removeChild(inctr); inctr = null; }; if (zmiGo != null){ removeChild(zmiGo); zmiGo = null; }; } function pdso1(_arg1:MouseEvent){ arr.filters = []; } function prirodaZvuk(){ if ((((((Main1.specSpec < 1.1)) && ((menu1.lestT1.volume == 0)))) && ((Main1.sndAlpha == 1)))){ if (menu1.pusttT1.volume != 0){ menu1.pusttT1.volume = 0; menu1.pustcT1.stop(); }; if (menu1.zimatT1.volume != 0){ menu1.zimatT1.volume = 0; menu1.zimacT1.stop(); }; menu1.lestT1.volume = 0.6; menu1.lescT1 = menu1.les_theme.play(0, 1000, menu1.lestT1); }; if ((((((((Main1.specSpec < 2.1)) && ((Main1.specSpec > 1.1)))) && ((menu1.pusttT1.volume == 0)))) && ((Main1.sndAlpha == 1)))){ if (menu1.lestT1.volume != 0){ menu1.lestT1.volume = 0; menu1.lescT1.stop(); }; if (menu1.zimatT1.volume != 0){ menu1.zimatT1.volume = 0; menu1.zimacT1.stop(); }; menu1.pusttT1.volume = 0.6; menu1.pustcT1 = menu1.pust_theme.play(0, 1000, menu1.pusttT1); }; if ((((((Main1.specSpec > 2.1)) && ((menu1.zimatT1.volume == 0)))) && ((Main1.sndAlpha == 1)))){ if (menu1.pusttT1.volume != 0){ menu1.pusttT1.volume = 0; menu1.pustcT1.stop(); }; if (menu1.lestT1.volume != 0){ menu1.lestT1.volume = 0; menu1.lescT1.stop(); }; menu1.zimatT1.volume = 0.6; menu1.zimacT1 = menu1.zima_theme.play(0, 1000, menu1.zimatT1); }; } function levAl(_arg1:Event){ removeDieButton(); nazal = false; targ = false; goGo = false; levelScore = 0; estBall = false; clickForStar = false; estStar = false; prosloMurav = 0; endDobavR = 0; if (Main1.fsc != null){ pausePosition = Main1.fsc.position; Main1.fsc.stop(); }; if (bsc != null){ pausePosition1 = bsc.position; bsc.stop(); }; delListener1(); delListener2(); Main1(parent).toSelect(); } function musAl(_arg1:MouseEvent){ if (menu1.stT.volume == 0){ menu1.stT.volume = 0.3; rstmus.alpha = 1; Main1.musAlpha = 1; stat.data.stt = 0.3; stat.data.musA = 1; } else { menu1.stT.volume = 0; rstmus.alpha = 0.4; Main1.musAlpha = 0.4; stat.data.stt = 0; stat.data.musA = 0.4; }; menu1.scT.stop(); menu1.scT = menu1.s_theme.play(0, 10000, menu1.stT); } function sndAl(_arg1:MouseEvent){ Main1.snd = !(Main1.snd); fireZvuk(); if (Main1.snd){ rstsnd.alpha = 1; Main1.sndAlpha = 1; stat.data.sndA = 1; stat.data.snd = 1; prirodaZvuk(); if (Main1.fsc != null){ Main1.fst.volume = 0.2; }; } else { if (Main1.fsc != null){ Main1.fst.volume = 0; Main1.fsc.stop(); }; rstsnd.alpha = 0.4; Main1.sndAlpha = 0.4; stat.data.sndA = 0.4; stat.data.snd = 0; if (((!((menu1.lestT1.volume == 0))) && (!((menu1.lescT1 == null))))){ menu1.lestT1.volume = 0; menu1.lescT1.stop(); }; if (((!((menu1.zimatT1.volume == 0))) && (!((menu1.zimacT1 == null))))){ menu1.zimatT1.volume = 0; menu1.zimacT1.stop(); }; if (((!((menu1.pusttT1.volume == 0))) && (!((menu1.pustcT1 == null))))){ menu1.pusttT1.volume = 0; menu1.pustcT1.stop(); }; }; } function ku(_arg1:MouseEvent):void{ nazal = false; } function kd(_arg1:MouseEvent):void{ if (nazal == false){ nazal = true; tckX = tck.x; tckY = tck.y; if ((((Main1.specUroven == Main1.specSpec)) && ((pus.visible == true)))){ pus.gotoAndPlay(10); if (Main1.snd){ s_beep = new gun1(); zvgrom = 0.5; sndStart = 0; oiZvuk(); }; }; }; if ((((((Main1.lvl == 1)) && (!((inctr == null))))) && ((inctr.currentFrame < 40)))){ nazal = false; }; } function addNewMurR(){ var _local1:*; var _local2:b2BodyDef; var _local3:b2CircleDef; if ((((Main1.specUroven == Main1.specSpec)) && ((textDie == null)))){ goGo = true; intervalR = (22 - Main1.specUroven); _local1 = (Math.ceil((Math.random() * 5)) - 1); ryz = (Math.ceil((Math.random() * 6)) - 1); razbrosY = (_local1 * 70); } else { razbrosY = 0; }; if ((((((endDobavR < Main1.kolvoMuravR)) && ((goGo == true)))) && ((textDie == null)))){ _local3 = new b2CircleDef(); _local2 = new b2BodyDef(); _local2.userData = new muraveiR(); _local2.userData.x = nInR.x; _local2.userData.y = (((nInR.y + razbrosY) + (nInR.height / 2)) - (_local2.userData.width / 2)); _local2.position.Set((nInR.x / m_physScale), ((((nInR.y + razbrosY) + (nInR.height / 2)) - (_local2.userData.width / 2)) / m_physScale)); _local3.radius = (14 / (m_physScale * 2)); _local3.density = 1; _local3.friction = 0.1; _local3.restitution = 0.2; head = m_world.CreateDynamicBody(_local2); head.moveF = true; head.NameB = "muravR"; head.CreateShape(_local3); head.SetMassFromShapes(); addChildAt(_local2.userData, (getChildIndex(arr) - 1)); dobavMuravR = (dobavMuravR + 1); endDobavR++; }; } function pdsv0(_arg1:MouseEvent){ arr.filters = [glow]; } function pdsv1(_arg1:MouseEvent){ if ((((estStar == false)) && ((clickForStar == false)))){ arr.filters = [glow]; }; } function removeDieButton(){ if (((!((textDie == null))) && ((textDie.currentFrame == 30)))){ if ((((textDie is pozdr)) || ((textDie is pozdrIce)))){ textDie.btnNL.removeEventListener(MouseEvent.CLICK, btnNLKlik); if (FunflowAPI.isHome){ } else { textDie.btnSS.removeEventListener(MouseEvent.CLICK, btnSSKlik); }; textDie.btnMG.removeEventListener(MouseEvent.CLICK, gotoFun); }; if ((((textDie is ubiza)) || ((textDie is ubizaIce)))){ textDie.btnMG1.removeEventListener(MouseEvent.CLICK, gotoFun); textDie.btnSol1.removeEventListener(MouseEvent.CLICK, solAl); textDie.btnRes1.removeEventListener(MouseEvent.CLICK, resDie); }; }; } function btnSelKlik(_arg1:MouseEvent){ btnSel.removeEventListener(MouseEvent.CLICK, btnSelKlik); if (FunflowAPI.isHome){ } else { textDie.btnSS.removeEventListener(MouseEvent.CLICK, btnSSKlik); }; textDie.btnMG.removeEventListener(MouseEvent.CLICK, gotoFun); delListener2(); Main1(parent).toSelect(); } function oiZvuk(){ if (Main1.snd == true){ sc = new SoundChannel(); st = new SoundTransform(zvgrom, 0); sc = s_beep.play(sndStart, 0); sc.soundTransform = st; }; } function kvadrKlik(_arg1:MouseEvent){ if (stat.data.kvadro == 1){ stat.data.kvadro = 2; if (inctr != null){ inctr.gotoAndStop(40); chitay = false; }; if (zmiGo != null){ removeChild(zmiGo); zmiGo = null; }; if (((!((ukaz == null))) && (!((arukaz == null))))){ removeChild(ukaz); removeChild(arukaz); ukaz = null; arukaz = null; }; rstgo.alpha = 1; rstgo.mouseEnabled = true; } else { stat.data.kvadro = 1; if (deistvie == false){ rstgo.alpha = 0.5; rstgo.mouseEnabled = false; ukaz = new text11(); arukaz = new arrow1(); arukaz.scaleX = 0.6; arukaz.scaleY = 0.6; arukaz.x = 90; arukaz.y = 10; ukaz.x = 0; ukaz.y = -120; addChildAt(ukaz, (getChildIndex(arr) - 1)); addChildAt(arukaz, (getChildIndex(arr) - 1)); }; }; kvadr.gotoAndStop(stat.data.kvadro); } function resetAll(){ removeDieButton(); delListener1(); delListener2(); deistvie = false; nazal = false; targ = false; goGo = false; chitay = false; levelScore = 0; estBall = false; clickForStar = false; estStar = false; zvezduVzyal = false; prosloMurav = 0; endDobavR = 0; if (Main1.fsc != null){ pausePosition = Main1.fsc.position; Main1.fsc.stop(); }; if (bsc != null){ pausePosition1 = bsc.position; bsc.stop(); }; Main1(parent).newLevel(); } function solAl(_arg1:Event){ if (FunflowAPI.isHome){ FunflowAPI.openSolutionsLink(); } else { KingAPI.openKingPage("solutions", "/game/[GAME_NAME]"); }; } function resetAl(_arg1:Event){ rA = true; if (((!((textDie == null))) && ((((textDie is pozdrIce)) || ((textDie is pozdr)))))){ Main1.lvl = (Main1.lvl - 1); }; } function resDie(_arg1:Event){ textDie.btnMG1.removeEventListener(MouseEvent.CLICK, gotoFun); textDie.btnSol1.removeEventListener(MouseEvent.CLICK, solAl); textDie.btnRes1.removeEventListener(MouseEvent.CLICK, resDie); delListener2(); deistvie = false; nazal = false; targ = false; goGo = false; chitay = false; levelScore = 0; estBall = false; clickForStar = false; estStar = false; zvezduVzyal = false; prosloMurav = 0; endDobavR = 0; if (Main1.fsc != null){ pausePosition = Main1.fsc.position; Main1.fsc.stop(); }; if (bsc != null){ pausePosition1 = bsc.position; bsc.stop(); }; Main1(parent).newLevel(); } function ini(_arg1:Event){ if (this.parent != null){ removeEventListener(Event.ENTER_FRAME, ini); go(); }; } function menuAl(_arg1:Event){ removeDieButton(); delListener1(); delListener2(); nazal = false; targ = false; goGo = false; levelScore = 0; estBall = false; clickForStar = false; estStar = false; prosloMurav = 0; endDobavR = 0; if (Main1.fsc != null){ pausePosition = Main1.fsc.position; Main1.fsc.stop(); }; if (bsc != null){ pausePosition1 = bsc.position; bsc.stop(); }; Main1(parent).toMenu(); } } }//package
Section 162
//levelsStar (levelsStar) package { import flash.display.*; public dynamic class levelsStar extends MovieClip { } }//package
Section 163
//levelsTarget (levelsTarget) package { import flash.display.*; public dynamic class levelsTarget extends MovieClip { } }//package
Section 164
//links (links) package { import flash.display.*; public dynamic class links extends MovieClip { public function links(){ addFrameScript(0, frame1, 58, frame59); } function frame1(){ stop(); } function frame59(){ stop(); } } }//package
Section 165
//loser (loser) package { import flash.media.*; public dynamic class loser extends Sound { } }//package
Section 166
//Main1 (Main1) package { import flash.events.*; import flash.net.*; import flash.display.*; import flash.utils.*; import flash.media.*; import levelsp.*; import flash.ui.*; public dynamic class Main1 extends MovieClip { var lev; var stat:SharedObject; var st:SoundTransform; public static var sndmus:Boolean; public static var fst:SoundTransform = new SoundTransform(); public static var specUroven:int; public static var musAlpha:Number; public static var kolvoMuravR:int; public static var specSpec:Number; public static var m_sprite:Sprite; public static var sndChannel:SoundChannel; public static var f_beep:Sound; public static var snd:Boolean; public static var lvl:int; public static var sndAlpha:Number; public static var fsc:SoundChannel; public static var totalScore:Number; public static var kolvoMurav:int; public function Main1():void{ st = new SoundTransform(); stat = SharedObject.getLocal("ants"); super(); addEventListener(Event.ADDED_TO_STAGE, ini); } function ini(_arg1:Event){ if (this.parent != null){ removeEventListener(Event.ENTER_FRAME, ini); go(); }; } public function toSelect(){ var _local1:select1; if (lev != null){ lev.m_world = null; removeChild(lev); lev = null; }; _local1 = new select1(); addChild(_local1); } public function toCredits(){ var _local1:credits1; if (lev != null){ lev.m_world = null; removeChild(lev); lev = null; }; _local1 = new credits1(); addChild(_local1); } public function toMenu(){ var _local1:menu1; if (lev != null){ lev.m_world = null; removeChild(lev); lev = null; }; _local1 = new menu1(); addChild(_local1); } function nl(){ var _local1:Class; if (m_sprite == null){ m_sprite = new Sprite(); }; specUroven = (Main1.lvl / 7); specSpec = (Main1.lvl / 7); _local1 = (getDefinitionByName(("levelsp.level" + lvl)) as Class); kolvoMurav = _local1.param2; kolvoMuravR = _local1.param3; lev = new (_local1); lev.x = 275; lev.y = 200; m_sprite.x = 275; m_sprite.y = 200; addChild(lev); addChild(m_sprite); } public function newLevel(){ var _local1:win1; if (lev != null){ lev.m_world = null; (removeChild(lev) as Sprite); lev = null; }; if ((((lvl == 22)) && ((stat.data.wonn == false)))){ stat.data.wonn = true; _local1 = new win1(); addChild(_local1); } else { nl(); }; } public function toInstruct(){ var _local1:instructions; if (lev != null){ lev.m_world = null; removeChild(lev); lev = null; }; _local1 = new instructions(); addChild(_local1); } function go(){ Mouse.hide(); f_beep = new torch(); fst = new SoundTransform(0.2, 0); toMenu(); } } }//package
Section 167
//makers (makers) package { import flash.display.*; public dynamic class makers extends MovieClip { public function makers(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package
Section 168
//mcBannedSign (mcBannedSign) package { import flash.display.*; public dynamic class mcBannedSign extends MovieClip { public var bg:MovieClip; } }//package
Section 169
//mcCrownMask (mcCrownMask) package { import flash.display.*; public dynamic class mcCrownMask extends MovieClip { } }//package
Section 170
//mcFerryLine (mcFerryLine) package { import flash.display.*; public dynamic class mcFerryLine extends MovieClip { } }//package
Section 171
//mcLogoHolder (mcLogoHolder) package { import flash.display.*; public dynamic class mcLogoHolder extends MovieClip { } }//package
Section 172
//mcLogoMask (mcLogoMask) package { import flash.display.*; public dynamic class mcLogoMask extends MovieClip { } }//package
Section 173
//mcOtherGames (mcOtherGames) package { import flash.display.*; public dynamic class mcOtherGames extends MovieClip { } }//package
Section 174
//mcPlay (mcPlay) package { import flash.display.*; public dynamic class mcPlay extends MovieClip { } }//package
Section 175
//mcWaterRing (mcWaterRing) package { import flash.display.*; public dynamic class mcWaterRing extends MovieClip { public function mcWaterRing(){ addFrameScript(39, frame40); } function frame40(){ stop(); } } }//package
Section 176
//menu1 (menu1) package { import flash.events.*; import flash.net.*; import flash.display.*; import com.midasplayer.*; import flash.media.*; import flash.text.*; import caurina.transitions.*; public dynamic class menu1 extends MovieClip { var stat:SharedObject; var arr:MovieClip; var menuPic:MovieClip; public var Parent; var bbmm; public static var scT:SoundChannel; public static var zima_theme:Sound; public static var stT:SoundTransform = new SoundTransform(); public static var numLevels:int; public static var pustcT1:SoundChannel; public static var zimacT1:SoundChannel; public static var les_theme:Sound; public static var lescT1:SoundChannel; public static var pusttT1:SoundTransform = new SoundTransform(); public static var pust_theme:Sound; public static var zimatT1:SoundTransform = new SoundTransform(); public static var lestT1:SoundTransform = new SoundTransform(); public static var s_theme:Sound; public function menu1():void{ menuPic = new menuBig(); arr = new gameArrow(); stat = SharedObject.getLocal("ants"); super(); menuPic.x = 275; menuPic.y = 200; addChild(menuPic); arr.x = mouseX; arr.y = mouseY; addChild(arr); addEventListener(Event.ENTER_FRAME, ini); } function goGame(){ delListeners(); removeChild(menuPic); removeChild(arr); Main1(parent).toSelect(); } function ini(_arg1:Event){ if (this.parent != null){ removeEventListener(Event.ENTER_FRAME, ini); go(); }; } function menMus(_arg1:MouseEvent){ if (stT.volume == 0){ stT.volume = 0.3; Parent.mMus.alpha = 1; Main1.musAlpha = 1; stat.data.musA = 1; stat.data.stt = 0.3; } else { stT.volume = 0; Parent.mMus.alpha = 0.4; Main1.musAlpha = 0.4; stat.data.musA = 0.4; stat.data.stt = 0; }; scT.stop(); scT = s_theme.play(0, 10000, stT); } function c_Vid(_arg1:Event){ var _local2:URLRequest; var _local3:*; _local3 = "http://www.youtube.com/watch?v=cn9Ofy1chdc"; _local2 = new URLRequest(_local3); navigateToURL(_local2, "_blank"); } function delShared(_arg1:Event){ stat.clear(); go(); } function chik(_arg1:MouseEvent){ var _local2:SoundTransform; var _local3:Sound; var _local4:SoundChannel; _local2 = new SoundTransform(); _local3 = new Drop(); _local2 = new SoundTransform(0.8, 0); _local4 = _local3.play(15, 0); _local4.soundTransform = _local2; } function delListeners(){ Parent.btnPlay.removeEventListener(MouseEvent.CLICK, c_Play); Parent.sbros.removeEventListener(MouseEvent.CLICK, delShared); Parent.btnHiSc.removeEventListener(MouseEvent.CLICK, c_HiSc); Parent.btnInstr.removeEventListener(MouseEvent.CLICK, c_Instr); Parent.btnCredits.removeEventListener(MouseEvent.CLICK, c_Credits); Parent.btnMore.removeEventListener(MouseEvent.CLICK, c_More); Parent.btnVid.removeEventListener(MouseEvent.CLICK, c_Vid); Parent.mMus.removeEventListener(MouseEvent.CLICK, menMus); Parent.mSnd.removeEventListener(MouseEvent.CLICK, menSnd); arr.removeEventListener(Event.ENTER_FRAME, arrMove); bbmm.removeEventListener(MouseEvent.CLICK, c_More); } function c_HiSc(_arg1:Event){ FunflowAPI.openHighscoresLink(); } function c_Play(_arg1:Event){ delListeners(); goGame(); } function menSnd(_arg1:MouseEvent){ Main1.snd = !(Main1.snd); if (Main1.snd){ Parent.mSnd.alpha = 1; Main1.sndAlpha = 1; stat.data.sndA = 1; stat.data.snd = 1; } else { Parent.mSnd.alpha = 0.4; Main1.sndAlpha = 0.4; stat.data.sndA = 0.4; stat.data.snd = 0; }; } function c_More(_arg1:Event){ FunflowAPI.openOtherGamesLink(); } function arrMove(_arg1:Event){ arr.x = mouseX; arr.y = mouseY; } function crbbmm(_arg1:Event){ var _local2:*; var _local3:*; var _local4:URLRequest; _local2 = ""; _local3 = "http://www.google.com"; _local4 = new URLRequest(_local3); navigateToURL(_local4, "_blank"); } function c_Credits(_arg1:Event){ delListeners(); removeChild(menuPic); removeChild(arr); Main1(parent).toCredits(); } function go(){ Parent = menuPic; Parent.sbros.addEventListener(MouseEvent.CLICK, delShared); Parent.btnPlay.addEventListener(MouseEvent.CLICK, c_Play); Parent.btnHiSc.addEventListener(MouseEvent.CLICK, c_HiSc); Parent.btnInstr.addEventListener(MouseEvent.CLICK, c_Instr); Parent.btnCredits.addEventListener(MouseEvent.CLICK, c_Credits); Parent.mMus.addEventListener(MouseEvent.CLICK, menMus); Parent.mSnd.addEventListener(MouseEvent.CLICK, menSnd); Parent.btnMore.addEventListener(MouseEvent.CLICK, c_More); Parent.btnVid.addEventListener(MouseEvent.CLICK, c_Vid); arr.addEventListener(Event.ENTER_FRAME, arrMove); arr.mouseEnabled = false; arr.mouseChildren = false; if (((!((lestT1.volume == 0))) && (!((lescT1 == null))))){ lestT1.volume = 0; lescT1.stop(); }; if (((!((zimatT1.volume == 0))) && (!((zimacT1 == null))))){ zimatT1.volume = 0; zimacT1.stop(); }; if (((!((pusttT1.volume == 0))) && (!((pustcT1 == null))))){ pusttT1.volume = 0; pustcT1.stop(); }; if (stat.data.array == undefined){ stat.data.array = new Array([0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0]); }; if (stat.data.arrayZ == undefined){ stat.data.arrayZ = new Array([0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0]); }; if ((((stat.data.wonn == undefined)) || ((stat.data.wonn == false)))){ stat.data.wonn = false; }; if ((((stat.data.lvl == undefined)) || ((stat.data.lvl == 1)))){ stat.data.lvl = 1; numLevels = 1; } else { numLevels = stat.data.lvl; }; if (FunflowAPI.isHome){ if (((!((root.loaderInfo.parameters.user_level == null))) && ((root.loaderInfo.parameters.user_level > numLevels)))){ numLevels = root.loaderInfo.parameters.user_level; }; }; if ((((stat.data.stt == undefined)) || ((stat.data.stt == 0.3)))){ stat.data.stt = 0.3; stT.volume = 0.3; } else { stT.volume = 0; }; if ((((stat.data.snd == undefined)) || ((stat.data.snd == 1)))){ stat.data.snd = 1; Main1.snd = true; } else { Main1.snd = false; }; if ((((stat.data.sndA == undefined)) || ((stat.data.sndA == 1)))){ stat.data.sndA = 1; Main1.sndAlpha = 1; } else { Main1.sndAlpha = 0.4; }; if ((((stat.data.musA == undefined)) || ((stat.data.musA == 1)))){ stat.data.musA = 1; Main1.musAlpha = 1; } else { Main1.musAlpha = 0.4; }; Parent.mSnd.alpha = Main1.sndAlpha; Parent.mMus.alpha = Main1.musAlpha; s_theme = new drum(); les_theme = new les(); lestT1.volume = 0; pust_theme = new pust(); pusttT1.volume = 0; zima_theme = new zima(); zimatT1.volume = 0; if (scT == null){ scT = s_theme.play(0, 10000, stT); }; bbmm = Parent.getChildByName("bbmm"); if (bbmm != null){ bbmm.addEventListener(MouseEvent.CLICK, c_More); }; } function c_Instr(_arg1:Event){ FunflowAPI.openAddToWebsiteLink(); } } }//package
Section 177
//menuBig (menuBig) package { import flash.display.*; public dynamic class menuBig extends MovieClip { public var openAll:MovieClip; public var btnVid:bVid; public var mMus:resMus; public var sbros:MovieClip; public var btnHiSc:bHisc; public var btnPlay:bPlay; public var mSnd:resSnd; public var btnMore:bMore; public var btnCredits:bCred; public var bbmm:bSpon; public var btnInstr:bInstr; } }//package
Section 178
//menuCongrat (menuCongrat) package { import flash.display.*; import flash.text.*; public dynamic class menuCongrat extends MovieClip { public var ccc:congratulat2; public var scores:TextField; public var sbmt:bSubmit; public var arr:gameArrow; public var wrstm:bMenu; } }//package
Section 179
//menuCredits (menuCredits) package { import flash.display.*; public dynamic class menuCredits extends MovieClip { public var maker:makers; public var cMenu:bMenu; public var arr:gameArrow; public var pravo:treug; public var btnVlad:bvlad; public var bbmm:bSpon; } }//package
Section 180
//menuInits (menuInits) package { import flash.display.*; import flash.text.*; public dynamic class menuInits extends MovieClip { public var no:TextField; } }//package
Section 181
//menuInstructions (menuInstructions) package { import flash.display.*; public dynamic class menuInstructions extends MovieClip { public var rstm1:resMenu; } }//package
Section 182
//menuSelects (menuSelects) package { import flash.display.*; import flash.text.*; public dynamic class menuSelects extends MovieClip { public var l17:btnSelect; public var mMus:resMus; public var scores1:TextField; public var sbmt:bSubmit; public var scores:TextField; public var l4:btnSelect; public var l1:btnSelect; public var l5:btnSelect; public var l3:btnSelect; public var l7:btnSelect; public var srstm:bMenu; public var arr:gameArrow; public var l6:btnSelect; public var l2:btnSelect; public var l15:btnSelect; public var l16:btnSelect; public var l13:btnSelect; public var l9:btnSelect; public var l14:btnSelect; public var l10:btnSelect; public var l12:btnSelect; public var l20:btnSelect; public var l11:btnSelect; public var l21:btnSelect; public var l19:btnSelect; public var l18:btnSelect; public var l8:btnSelect; public var mSnd:resSnd; } }//package
Section 183
//merzanie (merzanie) package { import flash.display.*; public dynamic class merzanie extends MovieClip { public function merzanie(){ addFrameScript(25, frame26); } function frame26(){ stop(); parent.removeChild(this); } } }//package
Section 184
//MochiBot (MochiBot) package { import flash.net.*; import flash.display.*; import flash.system.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ var _local3:MochiBot; var _local4:String; var _local5:URLVariables; var _local6:String; var _local7:URLRequest; var _local8:Loader; if (Security.sandboxType == "localWithFile"){ return (null); }; _local3 = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); _local4 = "http://core.mochibot.com/my/core.swf"; _local5 = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; _local6 = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; _local7 = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; _local8 = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package
Section 185
//mpeu (mpeu) package { import flash.media.*; public dynamic class mpeu extends Sound { } }//package
Section 186
//muravei (muravei) package { import flash.display.*; public dynamic class muravei extends MovieClip { public function muravei(){ addFrameScript(11, frame12, 20, frame21, 28, frame29, 47, frame48, 54, frame55, 55, frame56); } function frame12(){ gotoAndPlay("right"); } function frame21(){ stop(); parent.removeChild(this); } function frame29(){ stop(); parent.removeChild(this); } function frame48(){ gotoAndPlay("left"); } function frame55(){ gotoAndPlay("right"); } function frame56(){ stop(); } } }//package
Section 187
//muraveiR (muraveiR) package { import flash.display.*; public dynamic class muraveiR extends MovieClip { public function muraveiR(){ addFrameScript(11, frame12, 20, frame21, 28, frame29, 35, frame36, 54, frame55, 55, frame56, 67, frame68, 79, frame80); } function frame80(){ gotoAndPlay("left"); } function frame12(){ gotoAndPlay("left"); } function frame21(){ stop(); parent.removeChild(this); } function frame29(){ stop(); parent.removeChild(this); } function frame36(){ gotoAndPlay("left"); } function frame55(){ gotoAndPlay("right"); } function frame56(){ stop(); } function frame68(){ gotoAndPlay("right"); } } }//package
Section 188
//noraIn (noraIn) package { import flash.display.*; public dynamic class noraIn extends MovieClip { public function noraIn(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 189
//noraInR (noraInR) package { import flash.display.*; public dynamic class noraInR extends MovieClip { public function noraInR(){ addFrameScript(0, frame1); } function frame1(){ this.visible = false; } } }//package
Section 190
//noraOut (noraOut) package { import flash.display.*; public dynamic class noraOut extends MovieClip { public function noraOut(){ addFrameScript(0, frame1); } function frame1(){ this.visible = false; } } }//package
Section 191
//otr (otr) package { import flash.media.*; public dynamic class otr extends Sound { } }//package
Section 192
//palma (palma) package { import flash.display.*; public dynamic class palma extends MovieClip { public var Grass_1:MovieClip; public function palma(){ addFrameScript(0, frame1, 11, frame12); } function frame12(){ stop(); } function frame1(){ stop(); } } }//package
Section 193
//plank (plank) package { import flash.display.*; public dynamic class plank extends MovieClip { public function plank(){ addFrameScript(0, frame1); } function frame1(){ this.visible = false; } } }//package
Section 194
//plank_2 (plank_2) package { import flash.display.*; public dynamic class plank_2 extends MovieClip { public function plank_2(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 195
//plankDynam (plankDynam) package { import flash.display.*; public dynamic class plankDynam extends MovieClip { } }//package
Section 196
//plankPad (plankPad) package { import flash.display.*; public dynamic class plankPad extends MovieClip { public function plankPad(){ addFrameScript(0, frame1, 1, frame2, 2, frame3); } function frame3(){ stop(); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package
Section 197
//plankReturn (plankReturn) package { import flash.display.*; public dynamic class plankReturn extends MovieClip { public function plankReturn(){ addFrameScript(0, frame1); } function frame1(){ this.visible = false; } } }//package
Section 198
//plankReturnD (plankReturnD) package { import flash.display.*; public dynamic class plankReturnD extends MovieClip { } }//package
Section 199
//plankRotat (plankRotat) package { import flash.display.*; public dynamic class plankRotat extends MovieClip { public function plankRotat(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 200
//plankStat (plankStat) package { import flash.display.*; public dynamic class plankStat extends MovieClip { public function plankStat(){ addFrameScript(0, frame1, 19, frame20, 39, frame40); } function frame1(){ stop(); } function frame20(){ gotoAndStop(1); } function frame40(){ gotoAndStop(1); } } }//package
Section 201
//plankStatF (plankStatF) package { import flash.display.*; public dynamic class plankStatF extends MovieClip { public var Grass_1:MovieClip; public function plankStatF(){ addFrameScript(0, frame1, 88, frame89); } function frame89(){ stop(); parent.removeChild(this); } function frame1(){ stop(); } } }//package
Section 202
//plankStatR (plankStatR) package { import flash.display.*; public dynamic class plankStatR extends MovieClip { public function plankStatR(){ addFrameScript(0, frame1, 19, frame20, 39, frame40); } function frame1(){ stop(); } function frame20(){ gotoAndStop(1); } function frame40(){ gotoAndStop(1); } } }//package
Section 203
//poluPole (poluPole) package { import flash.display.*; public dynamic class poluPole extends MovieClip { public function poluPole(){ addFrameScript(0, frame1); } function frame1(){ this.alpha = 0.4; } } }//package
Section 204
//poyav (poyav) package { import flash.display.*; public dynamic class poyav extends MovieClip { public function poyav(){ addFrameScript(0, frame1, 26, frame27, 165, frame166, 166, frame167); } function frame167(){ stop(); } function frame166(){ levels1.estStar = false; } function frame1(){ stop(); } function frame27(){ levels1.estStar = true; } } }//package
Section 205
//pozdr (pozdr) package { import flash.display.*; public dynamic class pozdr extends MovieClip { public var btnNL:resNL; public var weldan:pozdr1; public var liked:resLike; public var btnSS:resSS; public var btnMG:resMG; public function pozdr(){ addFrameScript(29, frame30); } function frame30(){ stop(); } } }//package
Section 206
//pozdr1 (pozdr1) package { import flash.display.*; public dynamic class pozdr1 extends MovieClip { public function pozdr1(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package
Section 207
//pozdrIce (pozdrIce) package { import flash.display.*; public dynamic class pozdrIce extends MovieClip { public var btnNL:resNL; public var weldan:pozdr1; public var liked:resLike; public var btnSS:resSS; public var btnMG:resMG; public function pozdrIce(){ addFrameScript(29, frame30); } function frame30(){ stop(); } } }//package
Section 208
//Program (Program) package { import flash.display.*; public class Program extends Sprite { public function Program(){ var _local1:*; var _local2:AnotherClass; super(); _local1 = new init1(); _local2 = new AnotherClass(); _local1.y = 0; _local1.x = 0; addChild(_local1); } } }//package
Section 209
//puska (puska) package { import flash.display.*; public dynamic class puska extends MovieClip { public function puska(){ addFrameScript(0, frame1, 8, frame9, 14, frame15); } function frame15(){ gotoAndStop(9); } function frame1(){ stop(); } function frame9(){ stop(); } } }//package
Section 210
//pust (pust) package { import flash.media.*; public dynamic class pust extends Sound { } }//package
Section 211
//resGo (resGo) package { import flash.display.*; public dynamic class resGo extends SimpleButton { } }//package
Section 212
//resLike (resLike) package { import flash.display.*; public dynamic class resLike extends SimpleButton { } }//package
Section 213
//resMenu (resMenu) package { import flash.display.*; public dynamic class resMenu extends SimpleButton { } }//package
Section 214
//resMG (resMG) package { import flash.display.*; public dynamic class resMG extends SimpleButton { } }//package
Section 215
//resMG1 (resMG1) package { import flash.display.*; public dynamic class resMG1 extends SimpleButton { } }//package
Section 216
//resMG2 (resMG2) package { import flash.display.*; public dynamic class resMG2 extends SimpleButton { } }//package
Section 217
//resMus (resMus) package { import flash.display.*; public dynamic class resMus extends SimpleButton { } }//package
Section 218
//resNL (resNL) package { import flash.display.*; public dynamic class resNL extends SimpleButton { } }//package
Section 219
//resRes1 (resRes1) package { import flash.display.*; public dynamic class resRes1 extends SimpleButton { } }//package
Section 220
//resRes2 (resRes2) package { import flash.display.*; public dynamic class resRes2 extends SimpleButton { } }//package
Section 221
//resSelect (resSelect) package { import flash.display.*; public dynamic class resSelect extends SimpleButton { } }//package
Section 222
//resSnd (resSnd) package { import flash.display.*; public dynamic class resSnd extends SimpleButton { } }//package
Section 223
//resSol1 (resSol1) package { import flash.display.*; public dynamic class resSol1 extends SimpleButton { } }//package
Section 224
//resSol2 (resSol2) package { import flash.display.*; public dynamic class resSol2 extends SimpleButton { } }//package
Section 225
//resSolution (resSolution) package { import flash.display.*; public dynamic class resSolution extends SimpleButton { } }//package
Section 226
//resSS (resSS) package { import flash.display.*; public dynamic class resSS extends SimpleButton { } }//package
Section 227
//restLev (restLev) package { import flash.display.*; public dynamic class restLev extends SimpleButton { } }//package
Section 228
//select1 (select1) package { import flash.events.*; import flash.net.*; import flash.display.*; import com.midasplayer.*; import flash.media.*; import flash.text.*; import flash.filters.*; import caurina.transitions.*; public dynamic class select1 extends MovieClip { var levArray:Array; var stat:SharedObject; var arr:MovieClip; var zaza; var starr:MovieClip; var glow:GlowFilter; public var Parent; var selPic:MovieClip; var mmz:Number; public function select1():void{ selPic = new menuSelects(); arr = new gameArrow(); levArray = []; glow = new GlowFilter(); stat = SharedObject.getLocal("ants"); super(); selPic.x = 275; selPic.y = 200; addChild(selPic); arr.x = mouseX; arr.y = mouseY; addChild(arr); addEventListener(Event.ENTER_FRAME, ini); } function goGame(){ delListeners(); Main1.lvl = mmz; removeChild(selPic); removeChild(arr); Main1(parent).newLevel(); } function ini(_arg1:Event){ if (this.parent != null){ removeEventListener(Event.ENTER_FRAME, ini); go(); }; } function menMus(_arg1:MouseEvent){ if (menu1.stT.volume == 0){ menu1.stT.volume = 0.3; stat.data.stt = 0.3; stat.data.musA = 1; } else { menu1.stT.volume = 0; stat.data.stt = 0; stat.data.musA = 0.4; }; if (menu1.stT.volume == 0){ Parent.mMus.alpha = 0.6; Main1.musAlpha = 0.4; } else { Parent.mMus.alpha = 1; Main1.musAlpha = 1; }; menu1.scT.stop(); menu1.scT = menu1.s_theme.play(0, 10000, menu1.stT); } function chik(_arg1:MouseEvent){ var _local2:SoundTransform; var _local3:Sound; var _local4:SoundChannel; _local2 = new SoundTransform(); _local3 = new Drop(); _local2 = new SoundTransform(0.8, 0); _local4 = _local3.play(15, 0); _local4.soundTransform = _local2; } function submits(_arg1:Event){ stat.data.sub = Main1.totalScore; FunflowAPI.submitScore(Main1.totalScore); zaza.mouseEnabled = false; } function delListeners(){ var _local1:*; Parent.sbmt.removeEventListener(MouseEvent.CLICK, submits); Parent.mMus.removeEventListener(MouseEvent.CLICK, menMus); Parent.mSnd.removeEventListener(MouseEvent.CLICK, menSnd); arr.removeEventListener(Event.ENTER_FRAME, arrMove); _local1 = 0; while (_local1 < levArray.length) { levArray[_local1].removeEventListener(MouseEvent.ROLL_OVER, inn); levArray[_local1].removeEventListener(MouseEvent.ROLL_OUT, outt); levArray[_local1].addEventListener(MouseEvent.CLICK, klikk); _local1++; }; } function klikk(_arg1:MouseEvent){ var _local2:*; _local2 = _arg1.currentTarget.name.substr(1, 2); mmz = _local2; goGame(); } function c_Play(_arg1:Event){ delListeners(); goGame(); } function menSnd(_arg1:MouseEvent){ Main1.snd = !(Main1.snd); if (Main1.snd){ Parent.mSnd.alpha = 1; Main1.sndAlpha = 1; stat.data.sndA = 1; stat.data.snd = 1; } else { Parent.mSnd.alpha = 0.6; Main1.sndAlpha = 0.4; stat.data.sndA = 0.4; stat.data.snd = 0; }; } function arrMove(_arg1:Event){ arr.x = mouseX; arr.y = mouseY; } function crbbmm(_arg1:Event){ var _local2:*; var _local3:*; var _local4:URLRequest; _local2 = ""; _local3 = "http://www.google.com"; _local4 = new URLRequest(_local3); navigateToURL(_local4, "_blank"); } function outt(_arg1:MouseEvent){ if (_arg1.currentTarget.currentFrame == 4){ _arg1.currentTarget.gotoAndStop(2); }; if (_arg1.currentTarget.currentFrame == 5){ _arg1.currentTarget.gotoAndStop(3); }; Parent.scores1.text = ""; if (starr != null){ removeChild(starr); starr = null; }; } function go(){ var _local1:*; var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:int; var _local8:*; Parent = selPic; if (stat.data.sub == undefined){ stat.data.sub = 0; }; Main1.totalScore = 0; _local1 = 0; while (_local1 < stat.data.array.length) { _local7 = stat.data.array[_local1]; Main1.totalScore = (Main1.totalScore + _local7); _local1++; }; if (FunflowAPI.isHome){ } else { if ((((Main1.totalScore > 0)) && ((Main1.totalScore > stat.data.sub)))){ Parent.sbmt.y = 175; }; }; zaza = Parent.sbmt; Parent.sbmt.addEventListener(MouseEvent.CLICK, submits); Parent.scores.text = ("TOTAL SCORE: " + Main1.totalScore); Parent.mSnd.alpha = Main1.sndAlpha; Parent.mMus.alpha = Main1.musAlpha; Parent.srstm.addEventListener(MouseEvent.CLICK, menuAl); Parent.mMus.addEventListener(MouseEvent.CLICK, menMus); Parent.mSnd.addEventListener(MouseEvent.CLICK, menSnd); arr.addEventListener(Event.ENTER_FRAME, arrMove); arr.mouseEnabled = false; arr.mouseChildren = false; if (((!((menu1.lestT1.volume == 0))) && (!((menu1.lescT1 == null))))){ menu1.lestT1.volume = 0; menu1.lescT1.stop(); }; if (((!((menu1.zimatT1.volume == 0))) && (!((menu1.zimacT1 == null))))){ menu1.zimatT1.volume = 0; menu1.zimacT1.stop(); }; if (((!((menu1.pusttT1.volume == 0))) && (!((menu1.pustcT1 == null))))){ menu1.pusttT1.volume = 0; menu1.pustcT1.stop(); }; _local2 = Parent.numChildren; _local3 = 0; while (_local3 < _local2) { _local8 = Parent.getChildAt(_local3); if ((_local8 is btnSelect)){ _local8.gotoAndStop(1); levArray.push(_local8); }; _local3++; }; _local4 = 0; while (_local4 < 21) { if (_local4 < menu1.numLevels){ if ((((((((((((((((((_local4 == 0)) || ((_local4 == 1)))) || ((_local4 == 2)))) || ((_local4 == 7)))) || ((_local4 == 8)))) || ((_local4 == 9)))) || ((_local4 == 14)))) || ((_local4 == 15)))) || ((_local4 == 16)))){ levArray[_local4].gotoAndStop(2); } else { levArray[_local4].gotoAndStop(3); }; levArray[_local4].filters = []; }; _local4++; }; _local5 = 0; while (_local5 < levArray.length) { if (levArray[_local5].currentFrame > 1){ levArray[_local5].addEventListener(MouseEvent.ROLL_OVER, inn); levArray[_local5].addEventListener(MouseEvent.ROLL_OUT, outt); levArray[_local5].addEventListener(MouseEvent.CLICK, klikk); }; _local5++; }; _local6 = Parent.getChildByName("bbmm"); if (_local6 != null){ _local6.addEventListener(MouseEvent.CLICK, crbbmm); }; } function inn(_arg1:MouseEvent){ var _local2:*; if (_arg1.currentTarget.currentFrame == 2){ _arg1.currentTarget.gotoAndStop(4); }; if (_arg1.currentTarget.currentFrame == 3){ _arg1.currentTarget.gotoAndStop(5); }; _local2 = _arg1.currentTarget.name.substr(1, 2); Parent.scores1.text = ("Level score: " + stat.data.array[(_local2 - 1)]); if (stat.data.arrayZ[(_local2 - 1)] == 1){ starr = new levelsStar(); starr.y = ((Parent.scores1.y + 9) + 200); starr.x = ((Parent.scores1.length * 4) + 270); addChild(starr); }; if ((((((_local2 == 7)) || ((_local2 == 14)))) || ((_local2 == 21)))){ starr = new levelsTarget(); starr.y = ((Parent.scores1.y + 10) + 200); starr.x = (270 + (Parent.scores1.length * 4)); addChild(starr); }; } function menuAl(_arg1:Event){ delListeners(); removeChild(selPic); removeChild(arr); Main1(parent).toMenu(); } } }//package
Section 229
//selNL (selNL) package { import flash.display.*; public dynamic class selNL extends SimpleButton { } }//package
Section 230
//selNL1 (selNL1) package { import flash.display.*; public dynamic class selNL1 extends MovieClip { public var btnSel:selNL; public function selNL1(){ addFrameScript(29, frame30); } function frame30(){ stop(); } } }//package
Section 231
//sfxBell (sfxBell) package { import flash.media.*; public dynamic class sfxBell extends Sound { } }//package
Section 232
//sfxBounce (sfxBounce) package { import flash.media.*; public dynamic class sfxBounce extends Sound { } }//package
Section 233
//specInsrtuct (specInsrtuct) package { import flash.display.*; public dynamic class specInsrtuct extends MovieClip { public function specInsrtuct(){ addFrameScript(86, frame87); } function frame87(){ stop(); } } }//package
Section 234
//spring (spring) package { import flash.display.*; public dynamic class spring extends MovieClip { } }//package
Section 235
//tablo1 (tablo1) package { import flash.display.*; public dynamic class tablo1 extends MovieClip { public function tablo1(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 236
//Tada (Tada) package { import flash.media.*; public dynamic class Tada extends Sound { } }//package
Section 237
//Tamtam1 (Tamtam1) package { import flash.media.*; public dynamic class Tamtam1 extends Sound { } }//package
Section 238
//text10 (text10) package { import flash.display.*; public dynamic class text10 extends MovieClip { public function text10(){ addFrameScript(151, frame152); } function frame152(){ stop(); } } }//package
Section 239
//text11 (text11) package { import flash.display.*; public dynamic class text11 extends MovieClip { } }//package
Section 240
//text13 (text13) package { import flash.display.*; public dynamic class text13 extends MovieClip { public function text13(){ addFrameScript(45, frame46); } function frame46(){ stop(); } } }//package
Section 241
//text14 (text14) package { import flash.display.*; public dynamic class text14 extends MovieClip { } }//package
Section 242
//text16 (text16) package { import flash.display.*; public dynamic class text16 extends MovieClip { public function text16(){ addFrameScript(95, frame96); } function frame96(){ stop(); } } }//package
Section 243
//the_star (the_star) package { import flash.display.*; public dynamic class the_star extends MovieClip { } }//package
Section 244
//to_star (to_star) package { import flash.display.*; public dynamic class to_star extends MovieClip { public function to_star(){ addFrameScript(152, frame153); } function frame153(){ stop(); levels1.estToStar = false; parent.removeChild(this); } } }//package
Section 245
//tochka (tochka) package { import flash.display.*; public dynamic class tochka extends MovieClip { public function tochka(){ addFrameScript(0, frame1); } function frame1(){ this.visible = false; } } }//package
Section 246
//torch (torch) package { import flash.media.*; public dynamic class torch extends Sound { } }//package
Section 247
//torch1 (torch1) package { import flash.media.*; public dynamic class torch1 extends Sound { } }//package
Section 248
//torch2 (torch2) package { import flash.media.*; public dynamic class torch2 extends Sound { } }//package
Section 249
//totDom (totDom) package { import flash.display.*; public dynamic class totDom extends MovieClip { public function totDom(){ addFrameScript(0, frame1, 3, frame4, 4, frame5); } function frame1(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } } }//package
Section 250
//treug (treug) package { import flash.display.*; public dynamic class treug extends SimpleButton { } }//package
Section 251
//ubiza (ubiza) package { import flash.display.*; public dynamic class ubiza extends MovieClip { public var btnRes1:resRes1; public var btnSol1:resSol1; public var btnMG1:resMG1; public var weldan:ubiza1; public function ubiza(){ addFrameScript(29, frame30); } function frame30(){ stop(); } } }//package
Section 252
//ubiza1 (ubiza1) package { import flash.display.*; public dynamic class ubiza1 extends MovieClip { public function ubiza1(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4); } function frame3(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame2(){ stop(); } } }//package
Section 253
//ubiza2 (ubiza2) package { import flash.display.*; public dynamic class ubiza2 extends MovieClip { public function ubiza2(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4); } function frame3(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame2(){ stop(); } } }//package
Section 254
//ubizaIce (ubizaIce) package { import flash.display.*; public dynamic class ubizaIce extends MovieClip { public var btnRes1:resRes2; public var btnSol1:resSol2; public var btnMG1:resMG2; public var weldan:ubiza2; public function ubizaIce(){ addFrameScript(29, frame30); } function frame30(){ stop(); } } }//package
Section 255
//WaterHolderB (WaterHolderB) package { import flash.display.*; import com.midasplayer.extras.*; public dynamic class WaterHolderB extends MovieClip { public var BLUE:Water; } }//package
Section 256
//WaterHolderG (WaterHolderG) package { import flash.display.*; import com.midasplayer.extras.*; public dynamic class WaterHolderG extends MovieClip { public var GREEN:Water; } }//package
Section 257
//WaterHolderR (WaterHolderR) package { import flash.display.*; import com.midasplayer.extras.*; public dynamic class WaterHolderR extends MovieClip { public var RED:Water; } }//package
Section 258
//vid_star (vid_star) package { import flash.display.*; public dynamic class vid_star extends MovieClip { public function vid_star(){ addFrameScript(0, frame1, 106, frame107); } function frame1(){ levels1.estStar = true; } function frame107(){ gotoAndStop("stars1"); } } }//package
Section 259
//win1 (win1) package { import flash.events.*; import flash.net.*; import flash.display.*; import com.midasplayer.*; import flash.media.*; public dynamic class win1 extends MovieClip { var winPic:MovieClip; var stat:SharedObject; public var f;// = false var arr:MovieClip; public var Parent; public function win1():void{ winPic = new menuCongrat(); arr = new gameArrow(); f = false; stat = SharedObject.getLocal("ants"); super(); winPic.x = 275; winPic.y = 200; addChild(winPic); arr.x = mouseX; arr.y = mouseY; addChild(arr); addEventListener(Event.ENTER_FRAME, init); } function init(_arg1:Event){ if (((!((this.parent == null))) && ((stat.data.wonn == true)))){ removeEventListener(Event.ENTER_FRAME, init); go(); }; } function submits(_arg1:Event){ FunflowAPI.submitScore(Main1.totalScore); } function delListeners(){ Parent.sbmt.removeEventListener(MouseEvent.CLICK, submits); Parent.wrstm.removeEventListener(MouseEvent.CLICK, wgoMenu); arr.removeEventListener(Event.ENTER_FRAME, arrMove); } function wgoMenu(_arg1:Event){ delListeners(); if (Main1.musAlpha == 1){ menu1.stT.volume = 0.4; menu1.scT = menu1.s_theme.play(0, 10000, menu1.stT); }; removeChild(winPic); removeChild(arr); Main1(parent).toMenu(); } function poyavScore(_arg1:Event){ if (Parent.ccc.currentFrame == 60){ Parent.scores.text = ("" + Main1.totalScore); if (FunflowAPI.isHome){ FunflowAPI.submitScore(Main1.totalScore); } else { Parent.sbmt.y = 60; }; }; } function arrMove(_arg1:Event){ arr.x = mouseX; arr.y = mouseY; } function go(){ var _local1:*; var _local2:*; var _local3:*; var _local4:*; var _local5:int; if (menu1.stT.volume != 0){ menu1.stT.volume = 0; menu1.scT.stop(); }; if (Main1.snd){ if (menu1.zimatT1.volume != 0){ menu1.zimatT1.volume = 0; menu1.zimacT1.stop(); }; _local2 = new aplodis(); _local3 = new SoundChannel(); _local4 = new SoundTransform(1, 0); _local3 = _local2.play(0, 0); _local3.soundTransform = _local4; }; Parent = winPic; Main1.totalScore = 0; _local1 = 0; while (_local1 < stat.data.array.length) { _local5 = stat.data.array[_local1]; Main1.totalScore = (Main1.totalScore + _local5); _local1++; }; Parent.sbmt.addEventListener(MouseEvent.CLICK, submits); Parent.wrstm.addEventListener(MouseEvent.CLICK, wgoMenu); arr.addEventListener(Event.ENTER_FRAME, arrMove); arr.mouseEnabled = false; arr.mouseChildren = false; Parent.scores.addEventListener(Event.ENTER_FRAME, poyavScore); } } }//package
Section 260
//vydvig (vydvig) package { import flash.display.*; public dynamic class vydvig extends MovieClip { public function vydvig(){ addFrameScript(0, frame1, 26, frame27, 27, frame28); } function frame1(){ stop(); } function frame27(){ stop(); levels1.estStar = true; } function frame28(){ stop(); } } }//package
Section 261
//vydvig1 (vydvig1) package { import flash.display.*; public dynamic class vydvig1 extends MovieClip { public var qwer:int; public function vydvig1(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 28, frame29, 29, frame30); } function frame3(){ if (qwer < 360){ stop(); qwer++; gotoAndPlay(2); }; } function frame29(){ stop(); levels1.estStar = true; } function frame1(){ qwer = 0; } function frame2(){ levels1.estStar = false; } function frame30(){ stop(); } } }//package
Section 262
//vypad (vypad) package { import flash.display.*; public dynamic class vypad extends MovieClip { public function vypad(){ addFrameScript(0, frame1, 9, frame10, 21, frame22, 22, frame23); } function frame10(){ levels1.estStar = true; } function frame1(){ stop(); } function frame22(){ stop(); } function frame23(){ stop(); } } }//package
Section 263
//vystrel (vystrel) package { import flash.display.*; public dynamic class vystrel extends MovieClip { public function vystrel(){ addFrameScript(0, frame1, 3, frame4, 5, frame6, 22, frame23, 23, frame24); } function frame6(){ levels1.estStar = false; } function frame1(){ stop(); } function frame23(){ stop(); } function frame4(){ levels1.estStar = true; } function frame24(){ stop(); } } }//package
Section 264
//vyvis (vyvis) package { import flash.display.*; public dynamic class vyvis extends MovieClip { public function vyvis(){ addFrameScript(0, frame1, 7, frame8, 21, frame22, 22, frame23); } function frame1(){ stop(); } function frame22(){ stop(); } function frame23(){ stop(); } function frame8(){ levels1.estStar = true; } } }//package
Section 265
//vyvis1 (vyvis1) package { import flash.display.*; public dynamic class vyvis1 extends MovieClip { public function vyvis1(){ addFrameScript(0, frame1, 7, frame8, 18, frame19, 19, frame20); } function frame1(){ stop(); } function frame19(){ stop(); } function frame8(){ levels1.estStar = true; } function frame20(){ stop(); } } }//package
Section 266
//zemlya (zemlya) package { import flash.display.*; public dynamic class zemlya extends MovieClip { } }//package
Section 267
//zemlya1 (zemlya1) package { import flash.display.*; public dynamic class zemlya1 extends MovieClip { } }//package
Section 268
//zemlya2 (zemlya2) package { import flash.display.*; public dynamic class zemlya2 extends MovieClip { } }//package
Section 269
//zima (zima) package { import flash.media.*; public dynamic class zima extends Sound { } }//package
Section 270
//zola (zola) package { import flash.display.*; public dynamic class zola extends MovieClip { } }//package
Section 271
//zvezda2 (zvezda2) package { import flash.display.*; public dynamic class zvezda2 extends MovieClip { public function zvezda2(){ addFrameScript(0, frame1, 9, frame10, 21, frame22, 22, frame23); } function frame10(){ levels1.estStar = true; } function frame1(){ stop(); } function frame22(){ stop(); } function frame23(){ stop(); } } }//package
Section 272
//факел (факел) package { import flash.display.*; public dynamic class факел extends MovieClip { public function факел(){ addFrameScript(23, frame24); } function frame24(){ stop(); gotoAndPlay(1); } } }//package

Library Items

Symbol 1 Sound {sfxBounce}
Symbol 2 Sound {sfxBell}
Symbol 3 GraphicUsed by:4
Symbol 4 MovieClipUses:3Used by:7
Symbol 5 FontUsed by:6
Symbol 6 EditableTextUses:5Used by:7
Symbol 7 MovieClip {mcBannedSign}Uses:4 6
Symbol 8 GraphicUsed by:9
Symbol 9 MovieClipUses:8Used by:10
Symbol 10 MovieClip {mcLogoHolder}Uses:9
Symbol 11 GraphicUsed by:12
Symbol 12 MovieClip {mcWaterRing}Uses:11
Symbol 13 GraphicUsed by:14
Symbol 14 MovieClip {mcCrownMask}Uses:13
Symbol 15 GraphicUsed by:16
Symbol 16 MovieClip {mcLogoMask}Uses:15
Symbol 17 GraphicUsed by:18
Symbol 18 MovieClipUses:17Used by:23 28 33
Symbol 19 BitmapUsed by:20
Symbol 20 GraphicUses:19Used by:23
Symbol 21 BitmapUsed by:22
Symbol 22 GraphicUses:21Used by:23
Symbol 23 MovieClip {ferryBlue}Uses:18 20 22
Symbol 24 BitmapUsed by:25
Symbol 25 GraphicUses:24Used by:28
Symbol 26 BitmapUsed by:27
Symbol 27 GraphicUses:26Used by:28
Symbol 28 MovieClip {ferryGreen}Uses:18 25 27
Symbol 29 BitmapUsed by:30
Symbol 30 GraphicUses:29Used by:33
Symbol 31 BitmapUsed by:32
Symbol 32 GraphicUses:31Used by:33
Symbol 33 MovieClip {ferryRed}Uses:18 30 32
Symbol 34 GraphicUsed by:35
Symbol 35 MovieClip {mcFerryLine}Uses:34
Symbol 36 BitmapUsed by:37
Symbol 37 GraphicUses:36Used by:38
Symbol 38 MovieClip {mcOtherGames}Uses:37
Symbol 39 BitmapUsed by:40
Symbol 40 GraphicUses:39Used by:41
Symbol 41 MovieClip {mcPlay}Uses:40
Symbol 42 MovieClip {com.midasplayer.extras.WaterLine}
Symbol 43 MovieClip {com.midasplayer.extras.Water}Used by:44 45 46
Symbol 44 MovieClip {WaterHolderB}Uses:43
Symbol 45 MovieClip {WaterHolderG}Uses:43
Symbol 46 MovieClip {WaterHolderR}Uses:43
Symbol 47 FontUsed by:48 49 50 406 407 408 410 411 412 415 416 417 420 421 422 424 425 426 428 429 430 440 441 442 443 445 447 450 451 452 455 457 459 461 464 466 467 468 510 511
Symbol 48 EditableTextUses:47Used by:52
Symbol 49 EditableTextUses:47Used by:52
Symbol 50 EditableTextUses:47Used by:52
Symbol 51 GraphicUsed by:52 409 444
Symbol 52 Button {bPlay1}Uses:48 49 50 51
Symbol 53 BitmapUsed by:54
Symbol 54 GraphicUses:53Used by:150 388 394 400
Symbol 55 GraphicUsed by:150 186 385 388 391 394 397 400
Symbol 56 GraphicUsed by:57 169
Symbol 57 MovieClipUses:56Used by:58 163 265
Symbol 58 MovieClip {the_star}Uses:57Used by:102 150 156 168 173 179 182 184 185 186 281 291 296 304 307 314 317 338 356 359 365 368 372 385 388 391 394 397
Symbol 59 GraphicUsed by:60
Symbol 60 MovieClip {tochka}Uses:59Used by:150 291 296 304 307 314 317 329 338 356 359 365 368 372 375 385 388 391 394 397 400
Symbol 61 GraphicUsed by:62
Symbol 62 MovieClip {noraInR}Uses:61Used by:150 291 296 304 307 314 317 329 338 356 359 365 368 372 375 385 388 391 394 397 400
Symbol 63 GraphicUsed by:64
Symbol 64 MovieClip {plank}Uses:63Used by:150 281 291 296 304 307 314 317 329 338 356 359 365 368 372 375 385 388 391 394 397 400
Symbol 65 GraphicUsed by:66
Symbol 66 MovieClip {plankReturn}Uses:65Used by:150 291 296 304 307 314 317 338 356 359 365 368 372 385 388 391 394 397
Symbol 67 GraphicUsed by:150 338 356 359 372 385 388 391 394
Symbol 68 GraphicUsed by:69 150 385 388 391 394 397 400
Symbol 69 MovieClipUses:68Used by:150 388
Symbol 70 GraphicUsed by:71
Symbol 71 MovieClip {noraIn}Uses:70Used by:150 291 296 304 307 314 317 338 356 359 365 368 372 385 388 391 394 397
Symbol 72 GraphicUsed by:73
Symbol 73 MovieClip {zemlya2}Uses:72Used by:150 385 388 391 394 397 400 802
Symbol 74 GraphicUsed by:78 335
Symbol 75 GraphicUsed by:78 335
Symbol 76 GraphicUsed by:78
Symbol 77 GraphicUsed by:78 335
Symbol 78 MovieClip {plankStatR}Uses:74 75 76 77Used by:150 338 359 372 385 388 391 394
Symbol 79 GraphicUsed by:150
Symbol 80 GraphicUsed by:81 291 296 304 307 329
Symbol 81 MovieClipUses:80Used by:83 314 317 338 356 359 365 368 372 375
Symbol 82 GraphicUsed by:83
Symbol 83 MovieClipUses:81 82Used by:150 385 388 391 394 397 400
Symbol 84 GraphicUsed by:85
Symbol 85 MovieClipUses:84Used by:150 385 388 391 394 397
Symbol 86 GraphicUsed by:87
Symbol 87 MovieClip {noraOut}Uses:86Used by:150 291 296 304 307 314 317 329 338 356 359 365 368 372 375 385 388 391 394 397 400
Symbol 88 GraphicUsed by:92
Symbol 89 GraphicUsed by:92
Symbol 90 GraphicUsed by:92
Symbol 91 GraphicUsed by:92
Symbol 92 MovieClip {totDom}Uses:88 89 90 91Used by:150 291 296 304 307 314 317 329 338 356 359 365 368 372 375 385 388 391 394 397 400 802
Symbol 93 GraphicUsed by:94
Symbol 94 MovieClipUses:93Used by:150 385 388 391 394 397 400
Symbol 95 GraphicUsed by:98 338 356 359 372
Symbol 96 GraphicUsed by:97
Symbol 97 MovieClipUses:96Used by:98 278 280 291 296 304 307 314 317 338 356 359 372 437
Symbol 98 MovieClipUses:95 97Used by:150 385 388 391 394
Symbol 99 GraphicUsed by:150 356 359 372 388
Symbol 100 GraphicUsed by:101
Symbol 101 MovieClipUses:100Used by:102 184 185 186
Symbol 102 MovieClip {vystrel}Uses:101 58Used by:150 802
Symbol 103 FontUsed by:104 105 117 118 119 122 123 124 127 128 129 131 132 133 136 137 138 223 224 225 228 229 230 232 233 234 240 241 245 246 247 250 251 252 255 257 258 259 260 284 285 294 295 302 303 305 306 312 313 315 316 322 323 336 337 349 350 357 358 363 364 366 367 370 371 373 374 383 384 386 387 389 390 392 393 395 396 398 399 757 758 759 768 769 770 772 773 774 776 777
Symbol 104 EditableTextUses:103Used by:150
Symbol 105 EditableTextUses:103Used by:150
Symbol 106 GraphicUsed by:107
Symbol 107 MovieClipUses:106Used by:109
Symbol 108 GraphicUsed by:109
Symbol 109 Button {resMus}Uses:107 108Used by:150 291 296 304 307 314 317 329 338 356 359 365 368 372 375 385 388 391 394 397 400 437 512
Symbol 110 GraphicUsed by:111
Symbol 111 MovieClipUses:110Used by:116
Symbol 112 GraphicUsed by:116
Symbol 113 GraphicUsed by:116
Symbol 114 GraphicUsed by:116
Symbol 115 GraphicUsed by:116
Symbol 116 Button {resSnd}Uses:111 112 113 114 115Used by:150 291 296 304 307 314 317 329 338 356 359 365 368 372 375 385 388 391 394 397 400 437 512
Symbol 117 EditableTextUses:103Used by:121
Symbol 118 EditableTextUses:103Used by:121
Symbol 119 EditableTextUses:103Used by:121
Symbol 120 GraphicUsed by:121
Symbol 121 Button {resMenu}Uses:117 118 119 120Used by:150 281 291 296 304 307 314 317 329 338 356 359 365 368 372 375 385 388 391 394 397 400
Symbol 122 EditableTextUses:103Used by:126
Symbol 123 EditableTextUses:103Used by:126
Symbol 124 EditableTextUses:103Used by:126
Symbol 125 GraphicUsed by:126 130
Symbol 126 Button {resSelect}Uses:122 123 124 125Used by:150 291 296 304 307 314 317 329 338 356 359 365 368 372 375 385 388 391 394 397 400
Symbol 127 EditableTextUses:103Used by:130
Symbol 128 EditableTextUses:103Used by:130
Symbol 129 EditableTextUses:103Used by:130
Symbol 130 Button {restLev}Uses:127 128 129 125Used by:150 291 296 304 307 314 317 329 338 356 359 365 368 372 375 385 388 391 394 397 400
Symbol 131 EditableTextUses:103Used by:135
Symbol 132 EditableTextUses:103Used by:135
Symbol 133 EditableTextUses:103Used by:135
Symbol 134 GraphicUsed by:135
Symbol 135 Button {resSolution}Uses:131 132 133 134Used by:150 291 296 304 307 314 317 329 338 356 359 365 368 372 375 385 388 391 394 397 400
Symbol 136 TextUses:103Used by:140
Symbol 137 TextUses:103Used by:140
Symbol 138 TextUses:103Used by:140
Symbol 139 GraphicUsed by:140
Symbol 140 Button {resGo}Uses:136 137 138 139Used by:150 291 296 304 307 314 317 329 338 356 359 365 368 372 375 385 388 391 394 397 400
Symbol 141 BitmapUsed by:142
Symbol 142 GraphicUses:141Used by:143
Symbol 143 MovieClipUses:142Used by:145
Symbol 144 GraphicUsed by:145
Symbol 145 Button {bLogo}Uses:143 144Used by:150 291 296 304 307 314 317 329 338 356 359 365 368 372 375 385 388 391 394 397 400
Symbol 146 GraphicUsed by:150 385 388 391 394 397 400
Symbol 147 GraphicUsed by:148
Symbol 148 MovieClipUses:147Used by:149
Symbol 149 MovieClip {gameArrow}Uses:148Used by:150 291 296 304 307 314 317 329 338 356 359 365 368 372 375 385 388 391 394 397 400 454 474 512
Symbol 150 MovieClip {levelsp.level15}Uses:54 55 58 60 62 64 66 67 68 69 71 73 78 79 83 85 87 92 94 98 99 102 104 105 109 116 121 126 130 135 140 145 146 149Used by:802
Symbol 151 GraphicUsed by:155
Symbol 152 FontUsed by:153
Symbol 153 TextUses:152Used by:154
Symbol 154 MovieClipUses:153Used by:155
Symbol 155 MovieClip {tablo1}Uses:151 154Used by:356
Symbol 156 MovieClip {vydvig}Uses:58Used by:317 359 802
Symbol 157 FontUsed by:158 477
Symbol 158 EditableTextUses:157Used by:802
Symbol 159 MovieClip {Program}Used by:802
Symbol 160 Sound {torch}Used by:802
Symbol 161 GraphicUsed by:163
Symbol 162 GraphicUsed by:163
Symbol 163 MovieClip {ddd1}Uses:161 57 162Used by:802
Symbol 164 BitmapUsed by:165
Symbol 165 GraphicUses:164Used by:166
Symbol 166 MovieClip {fonoblako1}Uses:165Used by:314 802
Symbol 167 GraphicUsed by:168 314 356 372
Symbol 168 MovieClip {izDrov}Uses:167 58Used by:365 802
Symbol 169 MovieClipUses:56Used by:170 178
Symbol 170 MovieClip {levelsStar}Uses:169Used by:802
Symbol 171 GraphicUsed by:172
Symbol 172 MovieClip {levelsTarget}Uses:171Used by:802
Symbol 173 MovieClip {poyav}Uses:58Used by:394 802
Symbol 174 GraphicUsed by:178 265 748
Symbol 175 GraphicUsed by:178 265
Symbol 176 GraphicUsed by:177
Symbol 177 MovieClipUses:176Used by:178
Symbol 178 MovieClip {vid_star}Uses:169 174 175 177Used by:291 296 304 356 368 372 385 397 802
Symbol 179 MovieClip {vydvig1}Uses:58Used by:802
Symbol 180 BitmapUsed by:181
Symbol 181 GraphicUses:180Used by:182
Symbol 182 MovieClip {vypad}Uses:181 58Used by:338 802
Symbol 183 GraphicUsed by:184
Symbol 184 MovieClip {vyvis}Uses:101 183 58Used by:307 802
Symbol 185 MovieClip {vyvis1}Uses:101 58Used by:388 802
Symbol 186 MovieClip {zvezda2}Uses:101 55 58Used by:391 802
Symbol 187 GraphicUsed by:188
Symbol 188 MovieClipUses:187Used by:189
Symbol 189 MovieClip {arrow1}Uses:188Used by:743 802
Symbol 190 GraphicUsed by:199
Symbol 191 GraphicUsed by:199
Symbol 192 GraphicUsed by:199
Symbol 193 GraphicUsed by:199
Symbol 194 GraphicUsed by:195
Symbol 195 MovieClipUses:194Used by:199 355
Symbol 196 GraphicUsed by:199
Symbol 197 GraphicUsed by:199
Symbol 198 GraphicUsed by:199
Symbol 199 MovieClip {palma}Uses:190 191 192 193 195 196 197 198Used by:356 365 372 802
Symbol 200 GraphicUsed by:201 291 307 314 317 329
Symbol 201 MovieClip {zemlya}Uses:200Used by:281 296 304 802
Symbol 202 GraphicUsed by:203
Symbol 203 MovieClip {zemlya1}Uses:202Used by:338 356 359 365 368 372 375 802
Symbol 204 GraphicUsed by:205
Symbol 205 MovieClip {zola}Uses:204Used by:802
Symbol 206 ShapeTweeningUsed by:218
Symbol 207 ShapeTweeningUsed by:218
Symbol 208 ShapeTweeningUsed by:218
Symbol 209 ShapeTweeningUsed by:218
Symbol 210 ShapeTweeningUsed by:218
Symbol 211 ShapeTweeningUsed by:218
Symbol 212 ShapeTweeningUsed by:218
Symbol 213 GraphicUsed by:218
Symbol 214 ShapeTweeningUsed by:218
Symbol 215 GraphicUsed by:218
Symbol 216 GraphicUsed by:218
Symbol 217 GraphicUsed by:218
Symbol 218 MovieClip {факел}Uses:206 207 208 209 210 211 212 213 214 215 216 217Used by:219 314 355 356 365 372 802
Symbol 219 MovieClip {boom}Uses:218Used by:802
Symbol 220 GraphicUsed by:221
Symbol 221 MovieClip {ball_1}Uses:220Used by:802
Symbol 222 GraphicUsed by:243
Symbol 223 TextUses:103Used by:227
Symbol 224 TextUses:103Used by:227
Symbol 225 TextUses:103Used by:227
Symbol 226 GraphicUsed by:227 231 235 256 760 778
Symbol 227 Button {resNL}Uses:223 224 225 226Used by:243 764 802
Symbol 228 TextUses:103Used by:231
Symbol 229 TextUses:103Used by:231 256
Symbol 230 TextUses:103Used by:231 256
Symbol 231 Button {resMG}Uses:228 229 230 226Used by:243 764 802
Symbol 232 TextUses:103Used by:235
Symbol 233 TextUses:103Used by:235
Symbol 234 TextUses:103Used by:235
Symbol 235 Button {resSS}Uses:232 233 234 226Used by:243 764 802
Symbol 236 BitmapUsed by:237 238
Symbol 237 GraphicUses:236Used by:239
Symbol 238 GraphicUses:236Used by:239
Symbol 239 Button {resLike}Uses:237 238Used by:243 764
Symbol 240 TextUses:103Used by:242
Symbol 241 TextUses:103Used by:242
Symbol 242 MovieClip {pozdr1}Uses:240 241Used by:243 764
Symbol 243 MovieClip {pozdr}Uses:222 227 231 235 239 242Used by:802
Symbol 244 GraphicUsed by:262
Symbol 245 EditableTextUses:103Used by:249
Symbol 246 EditableTextUses:103Used by:249
Symbol 247 EditableTextUses:103Used by:249
Symbol 248 GraphicUsed by:249 771
Symbol 249 Button {resRes1}Uses:245 246 247 248Used by:262
Symbol 250 EditableTextUses:103Used by:254
Symbol 251 EditableTextUses:103Used by:254
Symbol 252 EditableTextUses:103Used by:254
Symbol 253 GraphicUsed by:254 775
Symbol 254 Button {resSol1}Uses:250 251 252 253Used by:262
Symbol 255 TextUses:103Used by:256 778
Symbol 256 Button {resMG1}Uses:255 229 230 226Used by:262
Symbol 257 TextUses:103Used by:261 767
Symbol 258 TextUses:103Used by:261 767
Symbol 259 TextUses:103Used by:261 767
Symbol 260 TextUses:103Used by:261 767
Symbol 261 MovieClip {ubiza1}Uses:257 258 259 260Used by:262
Symbol 262 MovieClip {ubiza}Uses:244 249 254 256 261Used by:802
Symbol 263 GraphicUsed by:264
Symbol 264 MovieClipUses:263Used by:265
Symbol 265 MovieClip {to_star}Uses:57 174 175 264Used by:802
Symbol 266 BitmapUsed by:267
Symbol 267 GraphicUses:266Used by:281 304 314
Symbol 268 GraphicUsed by:279 281 291 296 304 307 314 317 329
Symbol 269 GraphicUsed by:270
Symbol 270 MovieClipUses:269Used by:271
Symbol 271 MovieClip {plankPad}Uses:270Used by:281 291 307 317 365 391
Symbol 272 GraphicUsed by:278
Symbol 273 GraphicUsed by:278
Symbol 274 GraphicUsed by:278
Symbol 275 GraphicUsed by:278
Symbol 276 GraphicUsed by:278
Symbol 277 GraphicUsed by:278
Symbol 278 MovieClip {links}Uses:272 97 273 274 275 276 277Used by:281 291 307 317 365 391
Symbol 279 MovieClipUses:268Used by:280
Symbol 280 MovieClip {plankRotat}Uses:279 97Used by:281 296 372 385 391
Symbol 281 MovieClip {menuInstructions}Uses:267 64 201 58 268 121 271 278 280Used by:802
Symbol 282 BitmapUsed by:283
Symbol 283 GraphicUses:282Used by:291 307 329
Symbol 284 EditableTextUses:103Used by:291
Symbol 285 EditableTextUses:103Used by:291
Symbol 286 GraphicUsed by:291 296 304 307 314 317 329
Symbol 287 BitmapUsed by:288
Symbol 288 GraphicUses:287Used by:291 296 304 307 314 317 329 338 356 359 365 368 372 375
Symbol 289 FontUsed by:290 318 319 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 731 735 736 737 738 739 741 742 749 751 753 755
Symbol 290 TextUses:289Used by:291
Symbol 291 MovieClip {levelsp.level1}Uses:283 87 64 60 268 66 62 200 80 97 71 284 285 92 109 116 286 121 126 130 135 140 58 178 271 278 288 145 290 149Used by:802
Symbol 292 BitmapUsed by:293
Symbol 293 GraphicUses:292Used by:296 317
Symbol 294 EditableTextUses:103Used by:296
Symbol 295 EditableTextUses:103Used by:296
Symbol 296 MovieClip {levelsp.level2}Uses:293 268 66 58 60 87 64 62 280 201 80 97 71 92 178 286 294 295 109 116 121 126 130 135 140 145 288 149Used by:802
Symbol 297 GraphicUsed by:298
Symbol 298 MovieClipUses:297Used by:301
Symbol 299 GraphicUsed by:300
Symbol 300 MovieClip {spring}Uses:299Used by:301
Symbol 301 MovieClip {plank_2}Uses:298 300Used by:304 314 368 394 397
Symbol 302 EditableTextUses:103Used by:304
Symbol 303 EditableTextUses:103Used by:304
Symbol 304 MovieClip {levelsp.level3}Uses:267 60 87 64 62 66 268 201 301 58 178 80 71 97 92 286 302 303 109 116 121 126 130 135 140 145 288 149Used by:802
Symbol 305 EditableTextUses:103Used by:307
Symbol 306 EditableTextUses:103Used by:307
Symbol 307 MovieClip {levelsp.level4}Uses:283 184 268 87 64 62 271 66 200 58 286 80 97 71 92 305 306 109 116 121 126 130 135 140 278 60 145 288 149Used by:802
Symbol 308 BitmapUsed by:309
Symbol 309 GraphicUses:308Used by:314
Symbol 310 BitmapUsed by:311
Symbol 311 GraphicUses:310Used by:314
Symbol 312 EditableTextUses:103Used by:314
Symbol 313 EditableTextUses:103Used by:314
Symbol 314 MovieClip {levelsp.level5}Uses:267 200 60 87 62 64 66 268 167 58 286 218 71 301 81 97 309 311 166 92 312 313 109 116 121 126 130 135 140 145 288 149Used by:802
Symbol 315 EditableTextUses:103Used by:317
Symbol 316 EditableTextUses:103Used by:317
Symbol 317 MovieClip {levelsp.level6}Uses:293 87 62 64 271 66 268 58 156 200 92 286 97 81 71 315 316 109 116 121 126 130 135 140 278 60 145 288 149Used by:802
Symbol 318 TextUses:289Used by:321
Symbol 319 TextUses:289Used by:320
Symbol 320 MovieClipUses:319Used by:321
Symbol 321 MovieClip {specInsrtuct}Uses:318 320Used by:329 375 400
Symbol 322 EditableTextUses:103Used by:329
Symbol 323 EditableTextUses:103Used by:329
Symbol 324 GraphicUsed by:328
Symbol 325 GraphicUsed by:328
Symbol 326 GraphicUsed by:328
Symbol 327 GraphicUsed by:328
Symbol 328 MovieClip {puska}Uses:324 325 326 327Used by:329 375 400
Symbol 329 MovieClip {levelsp.level7}Uses:283 87 64 268 200 60 62 80 92 286 321 322 323 109 116 121 126 130 135 140 145 288 149 328Used by:802
Symbol 330 BitmapUsed by:331
Symbol 331 GraphicUses:330Used by:338 359 368 375
Symbol 332 GraphicUsed by:333
Symbol 333 MovieClipUses:332Used by:338 356 359 365 368 372 375
Symbol 334 GraphicUsed by:335
Symbol 335 MovieClip {plankStat}Uses:74 75 334 77Used by:338 356 359 372 388 394
Symbol 336 EditableTextUses:103Used by:338
Symbol 337 EditableTextUses:103Used by:338
Symbol 338 MovieClip {levelsp.level8}Uses:331 182 87 62 60 64 66 67 333 203 78 335 58 71 81 92 95 97 336 337 109 116 121 126 130 135 140 145 288 149Used by:802
Symbol 339 BitmapUsed by:341
Symbol 340 BitmapUsed by:341 360
Symbol 341 GraphicUses:339 340Used by:356
Symbol 342 GraphicUsed by:343
Symbol 343 MovieClip {ball_2}Uses:342Used by:356 365 372
Symbol 344 GraphicUsed by:356
Symbol 345 GraphicUsed by:355 356
Symbol 346 GraphicUsed by:347
Symbol 347 MovieClipUses:346Used by:355 356
Symbol 348 GraphicUsed by:356
Symbol 349 EditableTextUses:103Used by:356
Symbol 350 EditableTextUses:103Used by:356
Symbol 351 GraphicUsed by:355
Symbol 352 GraphicUsed by:355
Symbol 353 ShapeTweeningUsed by:355
Symbol 354 GraphicUsed by:355
Symbol 355 MovieClip {plankStatF}Uses:345 347 351 195 352 218 353 354Used by:356 365 372
Symbol 356 MovieClip {levelsp.level9}Uses:341 64 333 67 60 87 66 335 203 343 344 167 71 199 58 92 178 345 347 348 349 350 109 116 121 126 130 135 140 218 62 81 355 95 97 99 155 145 288 149Used by:802
Symbol 357 EditableTextUses:103Used by:359
Symbol 358 EditableTextUses:103Used by:359
Symbol 359 MovieClip {levelsp.level10}Uses:331 87 64 62 60 66 156 67 99 203 333 58 95 97 71 81 92 335 78 357 358 109 116 121 126 130 135 140 145 288 149Used by:802
Symbol 360 GraphicUses:340Used by:365 372
Symbol 361 GraphicUsed by:362
Symbol 362 MovieClip {plankDynam}Uses:361Used by:365 385 391
Symbol 363 EditableTextUses:103Used by:365
Symbol 364 EditableTextUses:103Used by:365
Symbol 365 MovieClip {levelsp.level11}Uses:360 87 60 64 271 362 66 333 203 168 58 343 218 355 71 81 199 92 363 364 109 116 121 126 130 135 140 278 62 145 288 149Used by:802
Symbol 366 EditableTextUses:103Used by:368
Symbol 367 EditableTextUses:103Used by:368
Symbol 368 MovieClip {levelsp.level12}Uses:331 333 203 301 87 62 60 64 66 58 178 71 81 92 366 367 109 116 121 126 130 135 140 145 288 149Used by:802
Symbol 369 GraphicUsed by:372 385 391
Symbol 370 EditableTextUses:103Used by:372
Symbol 371 EditableTextUses:103Used by:372
Symbol 372 MovieClip {levelsp.level13}Uses:360 64 369 203 333 60 87 62 66 280 67 99 343 167 218 355 71 81 199 58 92 178 78 335 95 97 370 371 109 116 121 126 130 135 140 145 288 149Used by:802
Symbol 373 EditableTextUses:103Used by:375
Symbol 374 EditableTextUses:103Used by:375
Symbol 375 MovieClip {levelsp.level14}Uses:331 87 64 333 203 60 62 81 92 321 373 374 109 116 121 126 130 135 140 145 288 149 328Used by:802
Symbol 376 BitmapUsed by:377
Symbol 377 GraphicUses:376Used by:385 391 397
Symbol 378 GraphicUsed by:379
Symbol 379 MovieClip {borderPlank}Uses:378Used by:385 388
Symbol 380 GraphicUsed by:381
Symbol 381 MovieClip {plankReturnD}Uses:380Used by:385 388
Symbol 382 GraphicUsed by:385 388
Symbol 383 EditableTextUses:103Used by:385
Symbol 384 EditableTextUses:103Used by:385
Symbol 385 MovieClip {levelsp.level16}Uses:377 369 55 67 60 87 62 64 280 379 66 381 362 78 68 382 73 98 71 83 85 58 92 94 178 383 384 109 116 121 126 130 135 140 145 146 149Used by:802
Symbol 386 EditableTextUses:103Used by:388
Symbol 387 EditableTextUses:103Used by:388
Symbol 388 MovieClip {levelsp.level17}Uses:54 67 99 60 87 62 64 381 335 379 78 66 58 55 68 382 69 73 71 83 85 92 94 98 185 386 387 109 116 121 126 130 135 140 145 146 149Used by:802
Symbol 389 EditableTextUses:103Used by:391
Symbol 390 EditableTextUses:103Used by:391
Symbol 391 MovieClip {levelsp.level18}Uses:377 369 67 60 87 62 64 66 362 78 58 55 68 71 73 271 83 85 280 92 94 98 186 389 390 109 116 121 126 130 135 140 278 145 146 149Used by:802
Symbol 392 EditableTextUses:103Used by:394
Symbol 393 EditableTextUses:103Used by:394
Symbol 394 MovieClip {levelsp.level19}Uses:54 60 87 62 64 66 301 55 67 68 78 71 73 83 85 335 58 173 92 94 98 392 393 109 116 121 126 130 135 140 145 146 149Used by:802
Symbol 395 EditableTextUses:103Used by:397
Symbol 396 EditableTextUses:103Used by:397
Symbol 397 MovieClip {levelsp.level20}Uses:377 60 87 62 64 66 55 68 58 178 71 73 301 83 85 92 94 395 396 109 116 121 126 130 135 140 145 146 149Used by:802
Symbol 398 EditableTextUses:103Used by:400
Symbol 399 EditableTextUses:103Used by:400
Symbol 400 MovieClip {levelsp.level21}Uses:87 54 55 64 60 62 68 83 73 92 94 321 398 399 109 116 121 126 130 135 140 145 146 149 328Used by:802
Symbol 401 BitmapUsed by:402
Symbol 402 GraphicUses:401Used by:437 474
Symbol 403 BitmapUsed by:404
Symbol 404 GraphicUses:403Used by:405
Symbol 405 MovieClipUses:404Used by:437
Symbol 406 EditableTextUses:47Used by:409
Symbol 407 EditableTextUses:47Used by:409
Symbol 408 EditableTextUses:47Used by:409
Symbol 409 Button {bPlay}Uses:406 407 408 51Used by:437
Symbol 410 EditableTextUses:47Used by:414
Symbol 411 EditableTextUses:47Used by:414
Symbol 412 EditableTextUses:47Used by:414
Symbol 413 GraphicUsed by:414 423
Symbol 414 Button {bCred}Uses:410 411 412 413Used by:437
Symbol 415 EditableTextUses:47Used by:419
Symbol 416 EditableTextUses:47Used by:419
Symbol 417 EditableTextUses:47Used by:419
Symbol 418 GraphicUsed by:419 427
Symbol 419 Button {bHisc}Uses:415 416 417 418Used by:437
Symbol 420 EditableTextUses:47Used by:423
Symbol 421 EditableTextUses:47Used by:423
Symbol 422 EditableTextUses:47Used by:423
Symbol 423 Button {bVid}Uses:420 421 422 413Used by:437
Symbol 424 EditableTextUses:47Used by:427
Symbol 425 EditableTextUses:47Used by:427
Symbol 426 EditableTextUses:47Used by:427
Symbol 427 Button {bMore}Uses:424 425 426 418Used by:437
Symbol 428 EditableTextUses:47Used by:432
Symbol 429 EditableTextUses:47Used by:432
Symbol 430 EditableTextUses:47Used by:432
Symbol 431 GraphicUsed by:432 453
Symbol 432 Button {bInstr}Uses:428 429 430 431Used by:437
Symbol 433 BitmapUsed by:434
Symbol 434 GraphicUses:433Used by:436
Symbol 435 GraphicUsed by:436
Symbol 436 Button {bSpon}Uses:434 435Used by:437 474
Symbol 437 MovieClip {menuBig}Uses:402 405 409 109 116 414 419 423 427 432 436 97Used by:802
Symbol 438 BitmapUsed by:439
Symbol 439 GraphicUses:438Used by:454
Symbol 440 EditableTextUses:47Used by:454
Symbol 441 EditableTextUses:47Used by:444
Symbol 442 EditableTextUses:47Used by:444
Symbol 443 EditableTextUses:47Used by:444
Symbol 444 Button {bMenu}Uses:441 442 443 51Used by:454 474 512
Symbol 445 TextUses:47Used by:446
Symbol 446 MovieClip {congratulat}Uses:445Used by:454
Symbol 447 TextUses:47Used by:448
Symbol 448 MovieClip {congratulat1}Uses:447Used by:449
Symbol 449 MovieClip {congratulat2}Uses:448Used by:454
Symbol 450 EditableTextUses:47Used by:453
Symbol 451 EditableTextUses:47Used by:453
Symbol 452 EditableTextUses:47Used by:453
Symbol 453 Button {bSubmit}Uses:450 451 452 431Used by:454 512
Symbol 454 MovieClip {menuCongrat}Uses:439 440 444 446 449 453 149Used by:802
Symbol 455 TextUses:47Used by:456
Symbol 456 MovieClip {cred2}Uses:455Used by:463
Symbol 457 TextUses:47Used by:458
Symbol 458 MovieClip {cred3}Uses:457Used by:463
Symbol 459 TextUses:47Used by:460
Symbol 460 MovieClip {cred4}Uses:459Used by:463
Symbol 461 TextUses:47Used by:462
Symbol 462 MovieClip {cred5}Uses:461Used by:463
Symbol 463 MovieClip {makers}Uses:456 458 460 462Used by:474
Symbol 464 TextUses:47Used by:465
Symbol 465 MovieClip {cred1}Uses:464Used by:474
Symbol 466 EditableTextUses:47Used by:470
Symbol 467 EditableTextUses:47Used by:470
Symbol 468 EditableTextUses:47Used by:470
Symbol 469 GraphicUsed by:470
Symbol 470 Button {bvlad}Uses:466 467 468 469Used by:474
Symbol 471 GraphicUsed by:473
Symbol 472 GraphicUsed by:473
Symbol 473 Button {treug}Uses:471 472Used by:474
Symbol 474 MovieClip {menuCredits}Uses:402 463 465 470 436 149 444 473Used by:802
Symbol 475 BitmapUsed by:476
Symbol 476 GraphicUses:475Used by:478
Symbol 477 EditableTextUses:157Used by:478
Symbol 478 MovieClip {menuInits}Uses:476 477Used by:802
Symbol 479 BitmapUsed by:480
Symbol 480 GraphicUses:479Used by:512
Symbol 481 GraphicUsed by:488
Symbol 482 GraphicUsed by:488
Symbol 483 GraphicUsed by:488
Symbol 484 GraphicUsed by:488
Symbol 485 GraphicUsed by:486
Symbol 486 MovieClipUses:485Used by:488
Symbol 487 GraphicUsed by:488
Symbol 488 MovieClip {btnSelect}Uses:481 482 483 484 486 487Used by:512
Symbol 489 TextUses:289Used by:512
Symbol 490 TextUses:289Used by:512
Symbol 491 TextUses:289Used by:512
Symbol 492 TextUses:289Used by:512
Symbol 493 TextUses:289Used by:512
Symbol 494 TextUses:289Used by:512
Symbol 495 TextUses:289Used by:512
Symbol 496 TextUses:289Used by:512
Symbol 497 TextUses:289Used by:512
Symbol 498 TextUses:289Used by:512
Symbol 499 TextUses:289Used by:512
Symbol 500 TextUses:289Used by:512
Symbol 501 TextUses:289Used by:512
Symbol 502 TextUses:289Used by:512
Symbol 503 TextUses:289Used by:512
Symbol 504 TextUses:289Used by:512
Symbol 505 TextUses:289Used by:512
Symbol 506 TextUses:289Used by:512
Symbol 507 TextUses:289Used by:512
Symbol 508 TextUses:289Used by:512
Symbol 509 TextUses:289Used by:512
Symbol 510 EditableTextUses:47Used by:512
Symbol 511 EditableTextUses:47Used by:512
Symbol 512 MovieClip {menuSelects}Uses:480 109 116 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 444 511 453 149Used by:802
Symbol 513 GraphicUsed by:620
Symbol 514 GraphicUsed by:620
Symbol 515 GraphicUsed by:620 730
Symbol 516 GraphicUsed by:620
Symbol 517 GraphicUsed by:620 730
Symbol 518 GraphicUsed by:620
Symbol 519 GraphicUsed by:531
Symbol 520 GraphicUsed by:531
Symbol 521 GraphicUsed by:531
Symbol 522 GraphicUsed by:531
Symbol 523 GraphicUsed by:531
Symbol 524 GraphicUsed by:531
Symbol 525 GraphicUsed by:531
Symbol 526 GraphicUsed by:531
Symbol 527 GraphicUsed by:531
Symbol 528 GraphicUsed by:531
Symbol 529 GraphicUsed by:531
Symbol 530 GraphicUsed by:531
Symbol 531 MovieClipUses:519 520 521 522 523 524 525 526 527 528 529 530Used by:613 620
Symbol 532 GraphicUsed by:620 730
Symbol 533 GraphicUsed by:620
Symbol 534 GraphicUsed by:620
Symbol 535 GraphicUsed by:620
Symbol 536 GraphicUsed by:620
Symbol 537 GraphicUsed by:620
Symbol 538 GraphicUsed by:620
Symbol 539 GraphicUsed by:620
Symbol 540 GraphicUsed by:620
Symbol 541 GraphicUsed by:620
Symbol 542 GraphicUsed by:620
Symbol 543 GraphicUsed by:620
Symbol 544 GraphicUsed by:620
Symbol 545 GraphicUsed by:620
Symbol 546 GraphicUsed by:620
Symbol 547 GraphicUsed by:620
Symbol 548 GraphicUsed by:620
Symbol 549 GraphicUsed by:620
Symbol 550 GraphicUsed by:620
Symbol 551 GraphicUsed by:620
Symbol 552 GraphicUsed by:620
Symbol 553 GraphicUsed by:620
Symbol 554 GraphicUsed by:620
Symbol 555 GraphicUsed by:620
Symbol 556 GraphicUsed by:620
Symbol 557 GraphicUsed by:620
Symbol 558 GraphicUsed by:620
Symbol 559 GraphicUsed by:620
Symbol 560 GraphicUsed by:620
Symbol 561 GraphicUsed by:620
Symbol 562 GraphicUsed by:620
Symbol 563 GraphicUsed by:620
Symbol 564 GraphicUsed by:620
Symbol 565 GraphicUsed by:620
Symbol 566 GraphicUsed by:620
Symbol 567 GraphicUsed by:620
Symbol 568 GraphicUsed by:620
Symbol 569 GraphicUsed by:620
Symbol 570 GraphicUsed by:620
Symbol 571 GraphicUsed by:620
Symbol 572 GraphicUsed by:620
Symbol 573 GraphicUsed by:574 620 677 730
Symbol 574 MovieClipUses:573Used by:620
Symbol 575 GraphicUsed by:620
Symbol 576 GraphicUsed by:620
Symbol 577 GraphicUsed by:620
Symbol 578 GraphicUsed by:620
Symbol 579 GraphicUsed by:620
Symbol 580 GraphicUsed by:620
Symbol 581 GraphicUsed by:620
Symbol 582 GraphicUsed by:620
Symbol 583 GraphicUsed by:620
Symbol 584 GraphicUsed by:620
Symbol 585 GraphicUsed by:620
Symbol 586 GraphicUsed by:620
Symbol 587 GraphicUsed by:620
Symbol 588 GraphicUsed by:620
Symbol 589 GraphicUsed by:620 730
Symbol 590 GraphicUsed by:620
Symbol 591 GraphicUsed by:620 730
Symbol 592 GraphicUsed by:620
Symbol 593 GraphicUsed by:620
Symbol 594 GraphicUsed by:620 730
Symbol 595 GraphicUsed by:620
Symbol 596 GraphicUsed by:620
Symbol 597 GraphicUsed by:620
Symbol 598 GraphicUsed by:620
Symbol 599 GraphicUsed by:620
Symbol 600 GraphicUsed by:620
Symbol 601 GraphicUsed by:620
Symbol 602 GraphicUsed by:620
Symbol 603 GraphicUsed by:620
Symbol 604 GraphicUsed by:620
Symbol 605 GraphicUsed by:620
Symbol 606 GraphicUsed by:620 730
Symbol 607 GraphicUsed by:620
Symbol 608 GraphicUsed by:620
Symbol 609 GraphicUsed by:620
Symbol 610 GraphicUsed by:620 730
Symbol 611 GraphicUsed by:620
Symbol 612 GraphicUsed by:620
Symbol 613 MovieClipUses:531Used by:620
Symbol 614 GraphicUsed by:620
Symbol 615 GraphicUsed by:620
Symbol 616 GraphicUsed by:620
Symbol 617 GraphicUsed by:620
Symbol 618 GraphicUsed by:620
Symbol 619 GraphicUsed by:620
Symbol 620 MovieClip {muravei}Uses:513 514 515 516 517 518 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 573 608 609 610 611 612 613 614 615 616 617 618 619Used by:802
Symbol 621 GraphicUsed by:730
Symbol 622 GraphicUsed by:730
Symbol 623 GraphicUsed by:730
Symbol 624 GraphicUsed by:730
Symbol 625 GraphicUsed by:637
Symbol 626 GraphicUsed by:637
Symbol 627 GraphicUsed by:637
Symbol 628 GraphicUsed by:637
Symbol 629 GraphicUsed by:637
Symbol 630 GraphicUsed by:637
Symbol 631 GraphicUsed by:637
Symbol 632 GraphicUsed by:637
Symbol 633 GraphicUsed by:637
Symbol 634 GraphicUsed by:637
Symbol 635 GraphicUsed by:637
Symbol 636 GraphicUsed by:637
Symbol 637 MovieClipUses:625 626 627 628 629 630 631 632 633 634 635 636Used by:711 730
Symbol 638 GraphicUsed by:730
Symbol 639 GraphicUsed by:730
Symbol 640 GraphicUsed by:730
Symbol 641 GraphicUsed by:730
Symbol 642 GraphicUsed by:730
Symbol 643 GraphicUsed by:730
Symbol 644 GraphicUsed by:730
Symbol 645 GraphicUsed by:730
Symbol 646 GraphicUsed by:730
Symbol 647 GraphicUsed by:730
Symbol 648 GraphicUsed by:730
Symbol 649 GraphicUsed by:730
Symbol 650 GraphicUsed by:730
Symbol 651 GraphicUsed by:730
Symbol 652 GraphicUsed by:730
Symbol 653 GraphicUsed by:730
Symbol 654 GraphicUsed by:730
Symbol 655 GraphicUsed by:730
Symbol 656 GraphicUsed by:730
Symbol 657 GraphicUsed by:730
Symbol 658 GraphicUsed by:730
Symbol 659 GraphicUsed by:730
Symbol 660 GraphicUsed by:730
Symbol 661 GraphicUsed by:730
Symbol 662 GraphicUsed by:730
Symbol 663 GraphicUsed by:730
Symbol 664 GraphicUsed by:730
Symbol 665 GraphicUsed by:730
Symbol 666 GraphicUsed by:730
Symbol 667 GraphicUsed by:730
Symbol 668 GraphicUsed by:730
Symbol 669 GraphicUsed by:730
Symbol 670 GraphicUsed by:730
Symbol 671 GraphicUsed by:730
Symbol 672 GraphicUsed by:730
Symbol 673 GraphicUsed by:730
Symbol 674 GraphicUsed by:730
Symbol 675 GraphicUsed by:730
Symbol 676 GraphicUsed by:730
Symbol 677 MovieClipUses:573Used by:730
Symbol 678 GraphicUsed by:730
Symbol 679 GraphicUsed by:730
Symbol 680 GraphicUsed by:730
Symbol 681 GraphicUsed by:730
Symbol 682 GraphicUsed by:730
Symbol 683 GraphicUsed by:730
Symbol 684 GraphicUsed by:730
Symbol 685 GraphicUsed by:730
Symbol 686 GraphicUsed by:730
Symbol 687 GraphicUsed by:730
Symbol 688 GraphicUsed by:730
Symbol 689 GraphicUsed by:730
Symbol 690 GraphicUsed by:730
Symbol 691 GraphicUsed by:730
Symbol 692 GraphicUsed by:730
Symbol 693 GraphicUsed by:730
Symbol 694 GraphicUsed by:730
Symbol 695 GraphicUsed by:730
Symbol 696 GraphicUsed by:730
Symbol 697 GraphicUsed by:730
Symbol 698 GraphicUsed by:730
Symbol 699 GraphicUsed by:730
Symbol 700 GraphicUsed by:730
Symbol 701 GraphicUsed by:730
Symbol 702 GraphicUsed by:730
Symbol 703 GraphicUsed by:730
Symbol 704 GraphicUsed by:730
Symbol 705 GraphicUsed by:730
Symbol 706 GraphicUsed by:730
Symbol 707 GraphicUsed by:730
Symbol 708 GraphicUsed by:730
Symbol 709 GraphicUsed by:730
Symbol 710 GraphicUsed by:730
Symbol 711 MovieClipUses:637Used by:730
Symbol 712 GraphicUsed by:730
Symbol 713 GraphicUsed by:730
Symbol 714 GraphicUsed by:730
Symbol 715 GraphicUsed by:730
Symbol 716 GraphicUsed by:730
Symbol 717 GraphicUsed by:730
Symbol 718 GraphicUsed by:730
Symbol 719 GraphicUsed by:730
Symbol 720 GraphicUsed by:730
Symbol 721 GraphicUsed by:730
Symbol 722 GraphicUsed by:730
Symbol 723 GraphicUsed by:730
Symbol 724 GraphicUsed by:730
Symbol 725 GraphicUsed by:730
Symbol 726 GraphicUsed by:730
Symbol 727 GraphicUsed by:730
Symbol 728 GraphicUsed by:730
Symbol 729 GraphicUsed by:730
Symbol 730 MovieClip {muraveiR}Uses:621 622 515 623 517 624 637 532 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 589 692 591 693 694 594 695 696 697 698 699 700 701 702 703 704 705 706 573 707 708 610 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 606 724 725 726 727 728 729Used by:802
Symbol 731 TextUses:289Used by:732
Symbol 732 MovieClip {text10}Uses:731Used by:802
Symbol 733 GraphicUsed by:734
Symbol 734 MovieClip {black_fla.poluPole1_155}Uses:733Used by:743
Symbol 735 TextUses:289Used by:743
Symbol 736 TextUses:289Used by:743
Symbol 737 TextUses:289Used by:743
Symbol 738 TextUses:289Used by:743
Symbol 739 TextUses:289Used by:740
Symbol 740 MovieClipUses:739Used by:743
Symbol 741 TextUses:289Used by:743
Symbol 742 TextUses:289Used by:743
Symbol 743 MovieClip {insrtuct}Uses:734 735 189 736 737 738 740 741 742Used by:802
Symbol 744 GraphicUsed by:747
Symbol 745 GraphicUsed by:747
Symbol 746 GraphicUsed by:747
Symbol 747 MovieClip {kvadrat}Uses:744 745 746Used by:802
Symbol 748 MovieClip {merzanie}Uses:174Used by:802
Symbol 749 TextUses:289Used by:750
Symbol 750 MovieClip {text11}Uses:749Used by:802
Symbol 751 TextUses:289Used by:752
Symbol 752 MovieClip {text13}Uses:751Used by:802
Symbol 753 TextUses:289Used by:754
Symbol 754 MovieClip {text14}Uses:753Used by:802
Symbol 755 TextUses:289Used by:756
Symbol 756 MovieClip {text16}Uses:755Used by:802
Symbol 757 TextUses:103Used by:760
Symbol 758 TextUses:103Used by:760
Symbol 759 TextUses:103Used by:760
Symbol 760 Button {selNL}Uses:757 758 759 226Used by:765 802
Symbol 761 GraphicUsed by:762
Symbol 762 MovieClip {poluPole}Uses:761Used by:802
Symbol 763 GraphicUsed by:764
Symbol 764 MovieClip {pozdrIce}Uses:763 227 231 235 239 242Used by:802
Symbol 765 MovieClip {selNL1}Uses:760Used by:802
Symbol 766 GraphicUsed by:779
Symbol 767 MovieClip {ubiza2}Uses:257 258 259 260Used by:779
Symbol 768 EditableTextUses:103Used by:771
Symbol 769 EditableTextUses:103Used by:771
Symbol 770 EditableTextUses:103Used by:771
Symbol 771 Button {resRes2}Uses:768 769 770 248Used by:779
Symbol 772 EditableTextUses:103Used by:775
Symbol 773 EditableTextUses:103Used by:775
Symbol 774 EditableTextUses:103Used by:775
Symbol 775 Button {resSol2}Uses:772 773 774 253Used by:779
Symbol 776 TextUses:103Used by:778
Symbol 777 TextUses:103Used by:778
Symbol 778 Button {resMG2}Uses:255 776 777 226Used by:779
Symbol 779 MovieClip {ubizaIce}Uses:766 767 771 775 778Used by:802
Symbol 780 Sound {drum}Used by:802
Symbol 781 Sound {les}Used by:802
Symbol 782 Sound {pust}Used by:802
Symbol 783 Sound {zima}Used by:802
Symbol 784 Sound {aplodis}Used by:802
Symbol 785 Sound {gun1}Used by:802
Symbol 786 Sound {Tamtam1}Used by:802
Symbol 787 Sound {hihi1}Used by:802
Symbol 788 Sound {Tada}Used by:802
Symbol 789 Sound {Drop}Used by:802
Symbol 790 Sound {otr}Used by:802
Symbol 791 Sound {dzn}Used by:802
Symbol 792 Sound {torch1}Used by:802
Symbol 793 Sound {loser}Used by:802
Symbol 794 Sound {ihu}Used by:802
Symbol 795 Sound {foi2}Used by:802
Symbol 796 Sound {torch2}Used by:802
Symbol 797 Sound {crunchybite}Used by:802
Symbol 798 Sound {hlup}Used by:802
Symbol 799 Sound {mpeu}Used by:802
Symbol 800 Sound {bz}Used by:802
Symbol 801 Sound {kr}Used by:802
Symbol 802 MovieClip {EmbedClip}Uses:158 159 160 163 166 168 170 172 173 178 156 179 182 102 184 185 186 189 199 92 201 203 73 205 218 219 221 243 262 265 281 291 296 304 307 314 317 329 338 356 359 365 368 372 375 150 385 388 391 394 397 400 437 454 474 478 512 620 730 732 743 747 748 750 752 754 756 227 235 231 760 762 764 765 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801Used by:Timeline

Instance Names

"bg"Symbol 7 MovieClip {mcBannedSign} Frame 1Symbol 4 MovieClip
"BLUE"Symbol 44 MovieClip {WaterHolderB} Frame 1Symbol 43 MovieClip {com.midasplayer.extras.Water}
"GREEN"Symbol 45 MovieClip {WaterHolderG} Frame 1Symbol 43 MovieClip {com.midasplayer.extras.Water}
"RED"Symbol 46 MovieClip {WaterHolderR} Frame 1Symbol 43 MovieClip {com.midasplayer.extras.Water}
"tck1"Symbol 150 MovieClip {levelsp.level15} Frame 1Symbol 60 MovieClip {tochka}
"nIn1R"Symbol 150 MovieClip {levelsp.level15} Frame 1Symbol 62 MovieClip {noraInR}
"nIn1"Symbol 150 MovieClip {levelsp.level15} Frame 1Symbol 71 MovieClip {noraIn}
"nOut1"Symbol 150 MovieClip {levelsp.level15} Frame 1Symbol 87 MovieClip {noraOut}
"forStar1"Symbol 150 MovieClip {levelsp.level15} Frame 1Symbol 102 MovieClip {vystrel}
"rstmus1"Symbol 150 MovieClip {levelsp.level15} Frame 1Symbol 109 Button {resMus}
"rstsnd1"Symbol 150 MovieClip {levelsp.level15} Frame 1Symbol 116 Button {resSnd}
"rstm1"Symbol 150 MovieClip {levelsp.level15} Frame 1Symbol 121 Button {resMenu}
"lvls1"Symbol 150 MovieClip {levelsp.level15} Frame 1Symbol 126 Button {resSelect}
"rstl1"Symbol 150 MovieClip {levelsp.level15} Frame 1Symbol 130 Button {restLev}
"rsts1"Symbol 150 MovieClip {levelsp.level15} Frame 1Symbol 135 Button {resSolution}
"rstgo1"Symbol 150 MovieClip {levelsp.level15} Frame 1Symbol 140 Button {resGo}
"Grass_1"Symbol 199 MovieClip {palma} Frame 1Symbol 195 MovieClip
"Grass_1"Symbol 199 MovieClip {palma} Frame 1Symbol 195 MovieClip
"Grass_1"Symbol 199 MovieClip {palma} Frame 1Symbol 195 MovieClip
"Grass_1"Symbol 199 MovieClip {palma} Frame 1Symbol 195 MovieClip
"Grass_1"Symbol 199 MovieClip {palma} Frame 1Symbol 195 MovieClip
"Grass_1"Symbol 199 MovieClip {palma} Frame 1Symbol 195 MovieClip
"Grass_1"Symbol 199 MovieClip {palma} Frame 1Symbol 195 MovieClip
"Grass_1"Symbol 199 MovieClip {palma} Frame 1Symbol 195 MovieClip
"Grass_1"Symbol 199 MovieClip {palma} Frame 1Symbol 195 MovieClip
"btnNL"Symbol 243 MovieClip {pozdr} Frame 1Symbol 227 Button {resNL}
"btnMG"Symbol 243 MovieClip {pozdr} Frame 1Symbol 231 Button {resMG}
"btnSS"Symbol 243 MovieClip {pozdr} Frame 1Symbol 235 Button {resSS}
"liked"Symbol 243 MovieClip {pozdr} Frame 1Symbol 239 Button {resLike}
"weldan"Symbol 243 MovieClip {pozdr} Frame 1Symbol 242 MovieClip {pozdr1}
"btnRes1"Symbol 262 MovieClip {ubiza} Frame 1Symbol 249 Button {resRes1}
"btnSol1"Symbol 262 MovieClip {ubiza} Frame 1Symbol 254 Button {resSol1}
"btnMG1"Symbol 262 MovieClip {ubiza} Frame 1Symbol 256 Button {resMG1}
"weldan"Symbol 262 MovieClip {ubiza} Frame 1Symbol 261 MovieClip {ubiza1}
"btnRes1"Symbol 262 MovieClip {ubiza} Frame 15Symbol 249 Button {resRes1}
"btnSol1"Symbol 262 MovieClip {ubiza} Frame 15Symbol 254 Button {resSol1}
"btnMG1"Symbol 262 MovieClip {ubiza} Frame 15Symbol 256 Button {resMG1}
"rstm1"Symbol 281 MovieClip {menuInstructions} Frame 1Symbol 121 Button {resMenu}
"nOut1"Symbol 291 MovieClip {levelsp.level1} Frame 1Symbol 87 MovieClip {noraOut}
"tck1"Symbol 291 MovieClip {levelsp.level1} Frame 1Symbol 60 MovieClip {tochka}
"nIn1R"Symbol 291 MovieClip {levelsp.level1} Frame 1Symbol 62 MovieClip {noraInR}
"nIn1"Symbol 291 MovieClip {levelsp.level1} Frame 1Symbol 71 MovieClip {noraIn}
"rstmus1"Symbol 291 MovieClip {levelsp.level1} Frame 1Symbol 109 Button {resMus}
"rstsnd1"Symbol 291 MovieClip {levelsp.level1} Frame 1Symbol 116 Button {resSnd}
"rstm1"Symbol 291 MovieClip {levelsp.level1} Frame 1Symbol 121 Button {resMenu}
"lvls1"Symbol 291 MovieClip {levelsp.level1} Frame 1Symbol 126 Button {resSelect}
"rstl1"Symbol 291 MovieClip {levelsp.level1} Frame 1Symbol 130 Button {restLev}
"rsts1"Symbol 291 MovieClip {levelsp.level1} Frame 1Symbol 135 Button {resSolution}
"rstgo1"Symbol 291 MovieClip {levelsp.level1} Frame 1Symbol 140 Button {resGo}
"forStar1"Symbol 291 MovieClip {levelsp.level1} Frame 1Symbol 178 MovieClip {vid_star}
"tck1"Symbol 296 MovieClip {levelsp.level2} Frame 1Symbol 60 MovieClip {tochka}
"nOut1"Symbol 296 MovieClip {levelsp.level2} Frame 1Symbol 87 MovieClip {noraOut}
"nIn1R"Symbol 296 MovieClip {levelsp.level2} Frame 1Symbol 62 MovieClip {noraInR}
"nIn1"Symbol 296 MovieClip {levelsp.level2} Frame 1Symbol 71 MovieClip {noraIn}
"forStar1"Symbol 296 MovieClip {levelsp.level2} Frame 1Symbol 178 MovieClip {vid_star}
"rstmus1"Symbol 296 MovieClip {levelsp.level2} Frame 1Symbol 109 Button {resMus}
"rstsnd1"Symbol 296 MovieClip {levelsp.level2} Frame 1Symbol 116 Button {resSnd}
"rstm1"Symbol 296 MovieClip {levelsp.level2} Frame 1Symbol 121 Button {resMenu}
"lvls1"Symbol 296 MovieClip {levelsp.level2} Frame 1Symbol 126 Button {resSelect}
"rstl1"Symbol 296 MovieClip {levelsp.level2} Frame 1Symbol 130 Button {restLev}
"rsts1"Symbol 296 MovieClip {levelsp.level2} Frame 1Symbol 135 Button {resSolution}
"rstgo1"Symbol 296 MovieClip {levelsp.level2} Frame 1Symbol 140 Button {resGo}
"tck1"Symbol 304 MovieClip {levelsp.level3} Frame 1Symbol 60 MovieClip {tochka}
"nOut1"Symbol 304 MovieClip {levelsp.level3} Frame 1Symbol 87 MovieClip {noraOut}
"nIn1R"Symbol 304 MovieClip {levelsp.level3} Frame 1Symbol 62 MovieClip {noraInR}
"forStar1"Symbol 304 MovieClip {levelsp.level3} Frame 1Symbol 178 MovieClip {vid_star}
"nIn1"Symbol 304 MovieClip {levelsp.level3} Frame 1Symbol 71 MovieClip {noraIn}
"rstmus1"Symbol 304 MovieClip {levelsp.level3} Frame 1Symbol 109 Button {resMus}
"rstsnd1"Symbol 304 MovieClip {levelsp.level3} Frame 1Symbol 116 Button {resSnd}
"rstm1"Symbol 304 MovieClip {levelsp.level3} Frame 1Symbol 121 Button {resMenu}
"lvls1"Symbol 304 MovieClip {levelsp.level3} Frame 1Symbol 126 Button {resSelect}
"rstl1"Symbol 304 MovieClip {levelsp.level3} Frame 1Symbol 130 Button {restLev}
"rsts1"Symbol 304 MovieClip {levelsp.level3} Frame 1Symbol 135 Button {resSolution}
"rstgo1"Symbol 304 MovieClip {levelsp.level3} Frame 1Symbol 140 Button {resGo}
"forStar1"Symbol 307 MovieClip {levelsp.level4} Frame 1Symbol 184 MovieClip {vyvis}
"nOut1"Symbol 307 MovieClip {levelsp.level4} Frame 1Symbol 87 MovieClip {noraOut}
"nIn1R"Symbol 307 MovieClip {levelsp.level4} Frame 1Symbol 62 MovieClip {noraInR}
"nIn1"Symbol 307 MovieClip {levelsp.level4} Frame 1Symbol 71 MovieClip {noraIn}
"rstmus1"Symbol 307 MovieClip {levelsp.level4} Frame 1Symbol 109 Button {resMus}
"rstsnd1"Symbol 307 MovieClip {levelsp.level4} Frame 1Symbol 116 Button {resSnd}
"rstm1"Symbol 307 MovieClip {levelsp.level4} Frame 1Symbol 121 Button {resMenu}
"lvls1"Symbol 307 MovieClip {levelsp.level4} Frame 1Symbol 126 Button {resSelect}
"rstl1"Symbol 307 MovieClip {levelsp.level4} Frame 1Symbol 130 Button {restLev}
"rsts1"Symbol 307 MovieClip {levelsp.level4} Frame 1Symbol 135 Button {resSolution}
"rstgo1"Symbol 307 MovieClip {levelsp.level4} Frame 1Symbol 140 Button {resGo}
"a1"Symbol 307 MovieClip {levelsp.level4} Frame 1Symbol 278 MovieClip {links}
"a2"Symbol 307 MovieClip {levelsp.level4} Frame 1Symbol 278 MovieClip {links}
"tck1"Symbol 307 MovieClip {levelsp.level4} Frame 1Symbol 60 MovieClip {tochka}
"tck1"Symbol 314 MovieClip {levelsp.level5} Frame 1Symbol 60 MovieClip {tochka}
"nOut1"Symbol 314 MovieClip {levelsp.level5} Frame 1Symbol 87 MovieClip {noraOut}
"nIn1R"Symbol 314 MovieClip {levelsp.level5} Frame 1Symbol 62 MovieClip {noraInR}
"fv1"Symbol 314 MovieClip {levelsp.level5} Frame 1Symbol 218 MovieClip {факел}
"nIn1"Symbol 314 MovieClip {levelsp.level5} Frame 1Symbol 71 MovieClip {noraIn}
"forStar1"Symbol 314 MovieClip {levelsp.level5} Frame 1Symbol 166 MovieClip {fonoblako1}
"rstmus1"Symbol 314 MovieClip {levelsp.level5} Frame 1Symbol 109 Button {resMus}
"rstsnd1"Symbol 314 MovieClip {levelsp.level5} Frame 1Symbol 116 Button {resSnd}
"rstm1"Symbol 314 MovieClip {levelsp.level5} Frame 1Symbol 121 Button {resMenu}
"lvls1"Symbol 314 MovieClip {levelsp.level5} Frame 1Symbol 126 Button {resSelect}
"rstl1"Symbol 314 MovieClip {levelsp.level5} Frame 1Symbol 130 Button {restLev}
"rsts1"Symbol 314 MovieClip {levelsp.level5} Frame 1Symbol 135 Button {resSolution}
"rstgo1"Symbol 314 MovieClip {levelsp.level5} Frame 1Symbol 140 Button {resGo}
"nOut1"Symbol 317 MovieClip {levelsp.level6} Frame 1Symbol 87 MovieClip {noraOut}
"nIn1R"Symbol 317 MovieClip {levelsp.level6} Frame 1Symbol 62 MovieClip {noraInR}
"forStar1"Symbol 317 MovieClip {levelsp.level6} Frame 1Symbol 156 MovieClip {vydvig}
"nIn1"Symbol 317 MovieClip {levelsp.level6} Frame 1Symbol 71 MovieClip {noraIn}
"rstmus1"Symbol 317 MovieClip {levelsp.level6} Frame 1Symbol 109 Button {resMus}
"rstsnd1"Symbol 317 MovieClip {levelsp.level6} Frame 1Symbol 116 Button {resSnd}
"rstm1"Symbol 317 MovieClip {levelsp.level6} Frame 1Symbol 121 Button {resMenu}
"lvls1"Symbol 317 MovieClip {levelsp.level6} Frame 1Symbol 126 Button {resSelect}
"rstl1"Symbol 317 MovieClip {levelsp.level6} Frame 1Symbol 130 Button {restLev}
"rsts1"Symbol 317 MovieClip {levelsp.level6} Frame 1Symbol 135 Button {resSolution}
"rstgo1"Symbol 317 MovieClip {levelsp.level6} Frame 1Symbol 140 Button {resGo}
"tck1"Symbol 317 MovieClip {levelsp.level6} Frame 1Symbol 60 MovieClip {tochka}
"nIn1"Symbol 329 MovieClip {levelsp.level7} Frame 1Symbol 87 MovieClip {noraOut}
"tck1"Symbol 329 MovieClip {levelsp.level7} Frame 1Symbol 60 MovieClip {tochka}
"nIn1R"Symbol 329 MovieClip {levelsp.level7} Frame 1Symbol 62 MovieClip {noraInR}
"rstmus1"Symbol 329 MovieClip {levelsp.level7} Frame 1Symbol 109 Button {resMus}
"rstsnd1"Symbol 329 MovieClip {levelsp.level7} Frame 1Symbol 116 Button {resSnd}
"rstm1"Symbol 329 MovieClip {levelsp.level7} Frame 1Symbol 121 Button {resMenu}
"lvls1"Symbol 329 MovieClip {levelsp.level7} Frame 1Symbol 126 Button {resSelect}
"rstl1"Symbol 329 MovieClip {levelsp.level7} Frame 1Symbol 130 Button {restLev}
"rsts1"Symbol 329 MovieClip {levelsp.level7} Frame 1Symbol 135 Button {resSolution}
"rstgo1"Symbol 329 MovieClip {levelsp.level7} Frame 1Symbol 140 Button {resGo}
"pus1"Symbol 329 MovieClip {levelsp.level7} Frame 1Symbol 328 MovieClip {puska}
"forStar1"Symbol 338 MovieClip {levelsp.level8} Frame 1Symbol 182 MovieClip {vypad}
"nOut1"Symbol 338 MovieClip {levelsp.level8} Frame 1Symbol 87 MovieClip {noraOut}
"nIn1R"Symbol 338 MovieClip {levelsp.level8} Frame 1Symbol 62 MovieClip {noraInR}
"tck1"Symbol 338 MovieClip {levelsp.level8} Frame 1Symbol 60 MovieClip {tochka}
"nIn1"Symbol 338 MovieClip {levelsp.level8} Frame 1Symbol 71 MovieClip {noraIn}
"rstmus1"Symbol 338 MovieClip {levelsp.level8} Frame 1Symbol 109 Button {resMus}
"rstsnd1"Symbol 338 MovieClip {levelsp.level8} Frame 1Symbol 116 Button {resSnd}
"rstm1"Symbol 338 MovieClip {levelsp.level8} Frame 1Symbol 121 Button {resMenu}
"lvls1"Symbol 338 MovieClip {levelsp.level8} Frame 1Symbol 126 Button {resSelect}
"rstl1"Symbol 338 MovieClip {levelsp.level8} Frame 1Symbol 130 Button {restLev}
"rsts1"Symbol 338 MovieClip {levelsp.level8} Frame 1Symbol 135 Button {resSolution}
"rstgo1"Symbol 338 MovieClip {levelsp.level8} Frame 1Symbol 140 Button {resGo}
"Grass_1"Symbol 355 MovieClip {plankStatF} Frame 1Symbol 195 MovieClip
"Grass_1"Symbol 355 MovieClip {plankStatF} Frame 1Symbol 195 MovieClip
"Grass_1"Symbol 355 MovieClip {plankStatF} Frame 1Symbol 195 MovieClip
"Grass_1"Symbol 355 MovieClip {plankStatF} Frame 1Symbol 195 MovieClip
"Grass_1"Symbol 355 MovieClip {plankStatF} Frame 1Symbol 195 MovieClip
"Grass_1"Symbol 355 MovieClip {plankStatF} Frame 1Symbol 195 MovieClip
"Grass_1"Symbol 355 MovieClip {plankStatF} Frame 1Symbol 195 MovieClip
"tck1"Symbol 356 MovieClip {levelsp.level9} Frame 1Symbol 60 MovieClip {tochka}
"nOut1"Symbol 356 MovieClip {levelsp.level9} Frame 1Symbol 87 MovieClip {noraOut}
"nIn1"Symbol 356 MovieClip {levelsp.level9} Frame 1Symbol 71 MovieClip {noraIn}
"forStar1"Symbol 356 MovieClip {levelsp.level9} Frame 1Symbol 178 MovieClip {vid_star}
"rstmus1"Symbol 356 MovieClip {levelsp.level9} Frame 1Symbol 109 Button {resMus}
"rstsnd1"Symbol 356 MovieClip {levelsp.level9} Frame 1Symbol 116 Button {resSnd}
"rstm1"Symbol 356 MovieClip {levelsp.level9} Frame 1Symbol 121 Button {resMenu}
"lvls1"Symbol 356 MovieClip {levelsp.level9} Frame 1Symbol 126 Button {resSelect}
"rstl1"Symbol 356 MovieClip {levelsp.level9} Frame 1Symbol 130 Button {restLev}
"rsts1"Symbol 356 MovieClip {levelsp.level9} Frame 1Symbol 135 Button {resSolution}
"rstgo1"Symbol 356 MovieClip {levelsp.level9} Frame 1Symbol 140 Button {resGo}
"fv1"Symbol 356 MovieClip {levelsp.level9} Frame 1Symbol 218 MovieClip {факел}
"nIn1R"Symbol 356 MovieClip {levelsp.level9} Frame 1Symbol 62 MovieClip {noraInR}
"nOut1"Symbol 359 MovieClip {levelsp.level10} Frame 1Symbol 87 MovieClip {noraOut}
"nIn1R"Symbol 359 MovieClip {levelsp.level10} Frame 1Symbol 62 MovieClip {noraInR}
"tck1"Symbol 359 MovieClip {levelsp.level10} Frame 1Symbol 60 MovieClip {tochka}
"forStar1"Symbol 359 MovieClip {levelsp.level10} Frame 1Symbol 156 MovieClip {vydvig}
"nIn1"Symbol 359 MovieClip {levelsp.level10} Frame 1Symbol 71 MovieClip {noraIn}
"rstmus1"Symbol 359 MovieClip {levelsp.level10} Frame 1Symbol 109 Button {resMus}
"rstsnd1"Symbol 359 MovieClip {levelsp.level10} Frame 1Symbol 116 Button {resSnd}
"rstm1"Symbol 359 MovieClip {levelsp.level10} Frame 1Symbol 121 Button {resMenu}
"lvls1"Symbol 359 MovieClip {levelsp.level10} Frame 1Symbol 126 Button {resSelect}
"rstl1"Symbol 359 MovieClip {levelsp.level10} Frame 1Symbol 130 Button {restLev}
"rsts1"Symbol 359 MovieClip {levelsp.level10} Frame 1Symbol 135 Button {resSolution}
"rstgo1"Symbol 359 MovieClip {levelsp.level10} Frame 1Symbol 140 Button {resGo}
"nOut1"Symbol 365 MovieClip {levelsp.level11} Frame 1Symbol 87 MovieClip {noraOut}
"tck1"Symbol 365 MovieClip {levelsp.level11} Frame 1Symbol 60 MovieClip {tochka}
"otodvig1"Symbol 365 MovieClip {levelsp.level11} Frame 1Symbol 66 MovieClip {plankReturn}
"forStar1"Symbol 365 MovieClip {levelsp.level11} Frame 1Symbol 168 MovieClip {izDrov}
"fv1"Symbol 365 MovieClip {levelsp.level11} Frame 1Symbol 218 MovieClip {факел}
"nIn1"Symbol 365 MovieClip {levelsp.level11} Frame 1Symbol 71 MovieClip {noraIn}
"rstmus1"Symbol 365 MovieClip {levelsp.level11} Frame 1Symbol 109 Button {resMus}
"rstsnd1"Symbol 365 MovieClip {levelsp.level11} Frame 1Symbol 116 Button {resSnd}
"rstm1"Symbol 365 MovieClip {levelsp.level11} Frame 1Symbol 121 Button {resMenu}
"lvls1"Symbol 365 MovieClip {levelsp.level11} Frame 1Symbol 126 Button {resSelect}
"rstl1"Symbol 365 MovieClip {levelsp.level11} Frame 1Symbol 130 Button {restLev}
"rsts1"Symbol 365 MovieClip {levelsp.level11} Frame 1Symbol 135 Button {resSolution}
"rstgo1"Symbol 365 MovieClip {levelsp.level11} Frame 1Symbol 140 Button {resGo}
"link1"Symbol 365 MovieClip {levelsp.level11} Frame 1Symbol 278 MovieClip {links}
"nIn1R"Symbol 365 MovieClip {levelsp.level11} Frame 1Symbol 62 MovieClip {noraInR}
"nOut1"Symbol 368 MovieClip {levelsp.level12} Frame 1Symbol 87 MovieClip {noraOut}
"nIn1R"Symbol 368 MovieClip {levelsp.level12} Frame 1Symbol 62 MovieClip {noraInR}
"tck1"Symbol 368 MovieClip {levelsp.level12} Frame 1Symbol 60 MovieClip {tochka}
"forStar1"Symbol 368 MovieClip {levelsp.level12} Frame 1Symbol 178 MovieClip {vid_star}
"nIn1"Symbol 368 MovieClip {levelsp.level12} Frame 1Symbol 71 MovieClip {noraIn}
"rstmus1"Symbol 368 MovieClip {levelsp.level12} Frame 1Symbol 109 Button {resMus}
"rstsnd1"Symbol 368 MovieClip {levelsp.level12} Frame 1Symbol 116 Button {resSnd}
"rstm1"Symbol 368 MovieClip {levelsp.level12} Frame 1Symbol 121 Button {resMenu}
"lvls1"Symbol 368 MovieClip {levelsp.level12} Frame 1Symbol 126 Button {resSelect}
"rstl1"Symbol 368 MovieClip {levelsp.level12} Frame 1Symbol 130 Button {restLev}
"rsts1"Symbol 368 MovieClip {levelsp.level12} Frame 1Symbol 135 Button {resSolution}
"rstgo1"Symbol 368 MovieClip {levelsp.level12} Frame 1Symbol 140 Button {resGo}
"tck1"Symbol 372 MovieClip {levelsp.level13} Frame 1Symbol 60 MovieClip {tochka}
"nOut1"Symbol 372 MovieClip {levelsp.level13} Frame 1Symbol 87 MovieClip {noraOut}
"nIn1R"Symbol 372 MovieClip {levelsp.level13} Frame 1Symbol 62 MovieClip {noraInR}
"fv1"Symbol 372 MovieClip {levelsp.level13} Frame 1Symbol 218 MovieClip {факел}
"nIn1"Symbol 372 MovieClip {levelsp.level13} Frame 1Symbol 71 MovieClip {noraIn}
"forStar1"Symbol 372 MovieClip {levelsp.level13} Frame 1Symbol 178 MovieClip {vid_star}
"rstmus1"Symbol 372 MovieClip {levelsp.level13} Frame 1Symbol 109 Button {resMus}
"rstsnd1"Symbol 372 MovieClip {levelsp.level13} Frame 1Symbol 116 Button {resSnd}
"rstm1"Symbol 372 MovieClip {levelsp.level13} Frame 1Symbol 121 Button {resMenu}
"lvls1"Symbol 372 MovieClip {levelsp.level13} Frame 1Symbol 126 Button {resSelect}
"rstl1"Symbol 372 MovieClip {levelsp.level13} Frame 1Symbol 130 Button {restLev}
"rsts1"Symbol 372 MovieClip {levelsp.level13} Frame 1Symbol 135 Button {resSolution}
"rstgo1"Symbol 372 MovieClip {levelsp.level13} Frame 1Symbol 140 Button {resGo}
"nIn1"Symbol 375 MovieClip {levelsp.level14} Frame 1Symbol 87 MovieClip {noraOut}
"tck1"Symbol 375 MovieClip {levelsp.level14} Frame 1Symbol 60 MovieClip {tochka}
"nIn1R"Symbol 375 MovieClip {levelsp.level14} Frame 1Symbol 62 MovieClip {noraInR}
"rstmus1"Symbol 375 MovieClip {levelsp.level14} Frame 1Symbol 109 Button {resMus}
"rstsnd1"Symbol 375 MovieClip {levelsp.level14} Frame 1Symbol 116 Button {resSnd}
"rstm1"Symbol 375 MovieClip {levelsp.level14} Frame 1Symbol 121 Button {resMenu}
"lvls1"Symbol 375 MovieClip {levelsp.level14} Frame 1Symbol 126 Button {resSelect}
"rstl1"Symbol 375 MovieClip {levelsp.level14} Frame 1Symbol 130 Button {restLev}
"rsts1"Symbol 375 MovieClip {levelsp.level14} Frame 1Symbol 135 Button {resSolution}
"rstgo1"Symbol 375 MovieClip {levelsp.level14} Frame 1Symbol 140 Button {resGo}
"pus1"Symbol 375 MovieClip {levelsp.level14} Frame 1Symbol 328 MovieClip {puska}
"tck1"Symbol 385 MovieClip {levelsp.level16} Frame 1Symbol 60 MovieClip {tochka}
"nOut1"Symbol 385 MovieClip {levelsp.level16} Frame 1Symbol 87 MovieClip {noraOut}
"nIn1R"Symbol 385 MovieClip {levelsp.level16} Frame 1Symbol 62 MovieClip {noraInR}
"nIn1"Symbol 385 MovieClip {levelsp.level16} Frame 1Symbol 71 MovieClip {noraIn}
"forStar1"Symbol 385 MovieClip {levelsp.level16} Frame 1Symbol 178 MovieClip {vid_star}
"rstmus1"Symbol 385 MovieClip {levelsp.level16} Frame 1Symbol 109 Button {resMus}
"rstsnd1"Symbol 385 MovieClip {levelsp.level16} Frame 1Symbol 116 Button {resSnd}
"rstm1"Symbol 385 MovieClip {levelsp.level16} Frame 1Symbol 121 Button {resMenu}
"lvls1"Symbol 385 MovieClip {levelsp.level16} Frame 1Symbol 126 Button {resSelect}
"rstl1"Symbol 385 MovieClip {levelsp.level16} Frame 1Symbol 130 Button {restLev}
"rsts1"Symbol 385 MovieClip {levelsp.level16} Frame 1Symbol 135 Button {resSolution}
"rstgo1"Symbol 385 MovieClip {levelsp.level16} Frame 1Symbol 140 Button {resGo}
"tck1"Symbol 388 MovieClip {levelsp.level17} Frame 1Symbol 60 MovieClip {tochka}
"nOut1"Symbol 388 MovieClip {levelsp.level17} Frame 1Symbol 87 MovieClip {noraOut}
"nIn1R"Symbol 388 MovieClip {levelsp.level17} Frame 1Symbol 62 MovieClip {noraInR}
"nIn1"Symbol 388 MovieClip {levelsp.level17} Frame 1Symbol 71 MovieClip {noraIn}
"forStar1"Symbol 388 MovieClip {levelsp.level17} Frame 1Symbol 185 MovieClip {vyvis1}
"rstmus1"Symbol 388 MovieClip {levelsp.level17} Frame 1Symbol 109 Button {resMus}
"rstsnd1"Symbol 388 MovieClip {levelsp.level17} Frame 1Symbol 116 Button {resSnd}
"rstm1"Symbol 388 MovieClip {levelsp.level17} Frame 1Symbol 121 Button {resMenu}
"lvls1"Symbol 388 MovieClip {levelsp.level17} Frame 1Symbol 126 Button {resSelect}
"rstl1"Symbol 388 MovieClip {levelsp.level17} Frame 1Symbol 130 Button {restLev}
"rsts1"Symbol 388 MovieClip {levelsp.level17} Frame 1Symbol 135 Button {resSolution}
"rstgo1"Symbol 388 MovieClip {levelsp.level17} Frame 1Symbol 140 Button {resGo}
"tck1"Symbol 391 MovieClip {levelsp.level18} Frame 1Symbol 60 MovieClip {tochka}
"nOut1"Symbol 391 MovieClip {levelsp.level18} Frame 1Symbol 87 MovieClip {noraOut}
"nIn1R"Symbol 391 MovieClip {levelsp.level18} Frame 1Symbol 62 MovieClip {noraInR}
"nIn1"Symbol 391 MovieClip {levelsp.level18} Frame 1Symbol 71 MovieClip {noraIn}
"forStar1"Symbol 391 MovieClip {levelsp.level18} Frame 1Symbol 186 MovieClip {zvezda2}
"rstmus1"Symbol 391 MovieClip {levelsp.level18} Frame 1Symbol 109 Button {resMus}
"rstsnd1"Symbol 391 MovieClip {levelsp.level18} Frame 1Symbol 116 Button {resSnd}
"rstm1"Symbol 391 MovieClip {levelsp.level18} Frame 1Symbol 121 Button {resMenu}
"lvls1"Symbol 391 MovieClip {levelsp.level18} Frame 1Symbol 126 Button {resSelect}
"rstl1"Symbol 391 MovieClip {levelsp.level18} Frame 1Symbol 130 Button {restLev}
"rsts1"Symbol 391 MovieClip {levelsp.level18} Frame 1Symbol 135 Button {resSolution}
"rstgo1"Symbol 391 MovieClip {levelsp.level18} Frame 1Symbol 140 Button {resGo}
"tck1"Symbol 394 MovieClip {levelsp.level19} Frame 1Symbol 60 MovieClip {tochka}
"nOut1"Symbol 394 MovieClip {levelsp.level19} Frame 1Symbol 87 MovieClip {noraOut}
"nIn1R"Symbol 394 MovieClip {levelsp.level19} Frame 1Symbol 62 MovieClip {noraInR}
"nIn1"Symbol 394 MovieClip {levelsp.level19} Frame 1Symbol 71 MovieClip {noraIn}
"forStar1"Symbol 394 MovieClip {levelsp.level19} Frame 1Symbol 173 MovieClip {poyav}
"rstmus1"Symbol 394 MovieClip {levelsp.level19} Frame 1Symbol 109 Button {resMus}
"rstsnd1"Symbol 394 MovieClip {levelsp.level19} Frame 1Symbol 116 Button {resSnd}
"rstm1"Symbol 394 MovieClip {levelsp.level19} Frame 1Symbol 121 Button {resMenu}
"lvls1"Symbol 394 MovieClip {levelsp.level19} Frame 1Symbol 126 Button {resSelect}
"rstl1"Symbol 394 MovieClip {levelsp.level19} Frame 1Symbol 130 Button {restLev}
"rsts1"Symbol 394 MovieClip {levelsp.level19} Frame 1Symbol 135 Button {resSolution}
"rstgo1"Symbol 394 MovieClip {levelsp.level19} Frame 1Symbol 140 Button {resGo}
"tck1"Symbol 397 MovieClip {levelsp.level20} Frame 1Symbol 60 MovieClip {tochka}
"nOut1"Symbol 397 MovieClip {levelsp.level20} Frame 1Symbol 87 MovieClip {noraOut}
"nIn1R"Symbol 397 MovieClip {levelsp.level20} Frame 1Symbol 62 MovieClip {noraInR}
"forStar1"Symbol 397 MovieClip {levelsp.level20} Frame 1Symbol 178 MovieClip {vid_star}
"nIn1"Symbol 397 MovieClip {levelsp.level20} Frame 1Symbol 71 MovieClip {noraIn}
"rstmus1"Symbol 397 MovieClip {levelsp.level20} Frame 1Symbol 109 Button {resMus}
"rstsnd1"Symbol 397 MovieClip {levelsp.level20} Frame 1Symbol 116 Button {resSnd}
"rstm1"Symbol 397 MovieClip {levelsp.level20} Frame 1Symbol 121 Button {resMenu}
"lvls1"Symbol 397 MovieClip {levelsp.level20} Frame 1Symbol 126 Button {resSelect}
"rstl1"Symbol 397 MovieClip {levelsp.level20} Frame 1Symbol 130 Button {restLev}
"rsts1"Symbol 397 MovieClip {levelsp.level20} Frame 1Symbol 135 Button {resSolution}
"rstgo1"Symbol 397 MovieClip {levelsp.level20} Frame 1Symbol 140 Button {resGo}
"nOut1"Symbol 400 MovieClip {levelsp.level21} Frame 1Symbol 87 MovieClip {noraOut}
"tck1"Symbol 400 MovieClip {levelsp.level21} Frame 1Symbol 60 MovieClip {tochka}
"nIn1R"Symbol 400 MovieClip {levelsp.level21} Frame 1Symbol 62 MovieClip {noraInR}
"nIn1"Symbol 400 MovieClip {levelsp.level21} Frame 1Symbol 87 MovieClip {noraOut}
"rstmus1"Symbol 400 MovieClip {levelsp.level21} Frame 1Symbol 109 Button {resMus}
"rstsnd1"Symbol 400 MovieClip {levelsp.level21} Frame 1Symbol 116 Button {resSnd}
"rstm1"Symbol 400 MovieClip {levelsp.level21} Frame 1Symbol 121 Button {resMenu}
"lvls1"Symbol 400 MovieClip {levelsp.level21} Frame 1Symbol 126 Button {resSelect}
"rstl1"Symbol 400 MovieClip {levelsp.level21} Frame 1Symbol 130 Button {restLev}
"rsts1"Symbol 400 MovieClip {levelsp.level21} Frame 1Symbol 135 Button {resSolution}
"rstgo1"Symbol 400 MovieClip {levelsp.level21} Frame 1Symbol 140 Button {resGo}
"pus1"Symbol 400 MovieClip {levelsp.level21} Frame 1Symbol 328 MovieClip {puska}
"btnPlay"Symbol 437 MovieClip {menuBig} Frame 1Symbol 409 Button {bPlay}
"mMus"Symbol 437 MovieClip {menuBig} Frame 1Symbol 109 Button {resMus}
"mSnd"Symbol 437 MovieClip {menuBig} Frame 1Symbol 116 Button {resSnd}
"btnCredits"Symbol 437 MovieClip {menuBig} Frame 1Symbol 414 Button {bCred}
"btnHiSc"Symbol 437 MovieClip {menuBig} Frame 1Symbol 419 Button {bHisc}
"btnVid"Symbol 437 MovieClip {menuBig} Frame 1Symbol 423 Button {bVid}
"btnMore"Symbol 437 MovieClip {menuBig} Frame 1Symbol 427 Button {bMore}
"btnInstr"Symbol 437 MovieClip {menuBig} Frame 1Symbol 432 Button {bInstr}
"bbmm"Symbol 437 MovieClip {menuBig} Frame 1Symbol 436 Button {bSpon}
"sbros"Symbol 437 MovieClip {menuBig} Frame 1Symbol 97 MovieClip
"openAll"Symbol 437 MovieClip {menuBig} Frame 1Symbol 97 MovieClip
"scores"Symbol 454 MovieClip {menuCongrat} Frame 1Symbol 440 EditableText
"wrstm"Symbol 454 MovieClip {menuCongrat} Frame 1Symbol 444 Button {bMenu}
"ccc"Symbol 454 MovieClip {menuCongrat} Frame 1Symbol 449 MovieClip {congratulat2}
"sbmt"Symbol 454 MovieClip {menuCongrat} Frame 1Symbol 453 Button {bSubmit}
"arr"Symbol 454 MovieClip {menuCongrat} Frame 1Symbol 149 MovieClip {gameArrow}
"maker"Symbol 474 MovieClip {menuCredits} Frame 1Symbol 463 MovieClip {makers}
"btnVlad"Symbol 474 MovieClip {menuCredits} Frame 1Symbol 470 Button {bvlad}
"bbmm"Symbol 474 MovieClip {menuCredits} Frame 1Symbol 436 Button {bSpon}
"arr"Symbol 474 MovieClip {menuCredits} Frame 1Symbol 149 MovieClip {gameArrow}
"cMenu"Symbol 474 MovieClip {menuCredits} Frame 1Symbol 444 Button {bMenu}
"pravo"Symbol 474 MovieClip {menuCredits} Frame 1Symbol 473 Button {treug}
"no"Symbol 478 MovieClip {menuInits} Frame 1Symbol 477 EditableText
"mMus"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 109 Button {resMus}
"mSnd"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 116 Button {resSnd}
"l1"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 488 MovieClip {btnSelect}
"l2"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 488 MovieClip {btnSelect}
"l3"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 488 MovieClip {btnSelect}
"l4"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 488 MovieClip {btnSelect}
"l5"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 488 MovieClip {btnSelect}
"l6"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 488 MovieClip {btnSelect}
"l7"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 488 MovieClip {btnSelect}
"l8"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 488 MovieClip {btnSelect}
"l9"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 488 MovieClip {btnSelect}
"l10"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 488 MovieClip {btnSelect}
"l11"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 488 MovieClip {btnSelect}
"l12"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 488 MovieClip {btnSelect}
"l13"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 488 MovieClip {btnSelect}
"l14"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 488 MovieClip {btnSelect}
"l15"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 488 MovieClip {btnSelect}
"l16"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 488 MovieClip {btnSelect}
"l17"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 488 MovieClip {btnSelect}
"l18"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 488 MovieClip {btnSelect}
"l19"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 488 MovieClip {btnSelect}
"l20"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 488 MovieClip {btnSelect}
"l21"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 488 MovieClip {btnSelect}
"scores"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 510 EditableText
"srstm"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 444 Button {bMenu}
"scores1"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 511 EditableText
"sbmt"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 453 Button {bSubmit}
"arr"Symbol 512 MovieClip {menuSelects} Frame 1Symbol 149 MovieClip {gameArrow}
"btnNL"Symbol 764 MovieClip {pozdrIce} Frame 1Symbol 227 Button {resNL}
"btnMG"Symbol 764 MovieClip {pozdrIce} Frame 1Symbol 231 Button {resMG}
"btnSS"Symbol 764 MovieClip {pozdrIce} Frame 1Symbol 235 Button {resSS}
"liked"Symbol 764 MovieClip {pozdrIce} Frame 1Symbol 239 Button {resLike}
"weldan"Symbol 764 MovieClip {pozdrIce} Frame 1Symbol 242 MovieClip {pozdr1}
"btnSel"Symbol 765 MovieClip {selNL1} Frame 1Symbol 760 Button {selNL}
"weldan"Symbol 779 MovieClip {ubizaIce} Frame 1Symbol 767 MovieClip {ubiza2}
"btnRes1"Symbol 779 MovieClip {ubizaIce} Frame 1Symbol 771 Button {resRes2}
"btnSol1"Symbol 779 MovieClip {ubizaIce} Frame 1Symbol 775 Button {resSol2}
"btnMG1"Symbol 779 MovieClip {ubizaIce} Frame 1Symbol 778 Button {resMG2}
"btnRes1"Symbol 779 MovieClip {ubizaIce} Frame 15Symbol 771 Button {resRes2}
"btnSol1"Symbol 779 MovieClip {ubizaIce} Frame 15Symbol 775 Button {resSol2}
"btnMG1"Symbol 779 MovieClip {ubizaIce} Frame 15Symbol 778 Button {resMG2}

Special Tags

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

Labels

"off"Symbol 23 MovieClip {ferryBlue} Frame 1
"on"Symbol 23 MovieClip {ferryBlue} Frame 2
"off"Symbol 28 MovieClip {ferryGreen} Frame 1
"on"Symbol 28 MovieClip {ferryGreen} Frame 2
"off"Symbol 33 MovieClip {ferryRed} Frame 1
"on"Symbol 33 MovieClip {ferryRed} Frame 2
"right"Symbol 78 MovieClip {plankStatR} Frame 2
"left"Symbol 78 MovieClip {plankStatR} Frame 21
"vz"Symbol 102 MovieClip {vystrel} Frame 24
"vz"Symbol 156 MovieClip {vydvig} Frame 28
"vz"Symbol 163 MovieClip {ddd1} Frame 1
"vz"Symbol 166 MovieClip {fonoblako1} Frame 21
"vz"Symbol 168 MovieClip {izDrov} Frame 36
"vz"Symbol 173 MovieClip {poyav} Frame 167
"stars1"Symbol 178 MovieClip {vid_star} Frame 1
"stars2"Symbol 178 MovieClip {vid_star} Frame 2
"stars3"Symbol 178 MovieClip {vid_star} Frame 55
"vz"Symbol 178 MovieClip {vid_star} Frame 108
"vz"Symbol 179 MovieClip {vydvig1} Frame 30
"vz"Symbol 182 MovieClip {vypad} Frame 23
"vz"Symbol 184 MovieClip {vyvis} Frame 23
"vz"Symbol 185 MovieClip {vyvis1} Frame 20
"vz"Symbol 186 MovieClip {zvezda2} Frame 23
"linkStart"Symbol 278 MovieClip {links} Frame 2
"right"Symbol 335 MovieClip {plankStat} Frame 2
"left"Symbol 335 MovieClip {plankStat} Frame 21
"right"Symbol 620 MovieClip {muravei} Frame 1
"mDavka"Symbol 620 MovieClip {muravei} Frame 13
"mFire"Symbol 620 MovieClip {muravei} Frame 22
"povLeft"Symbol 620 MovieClip {muravei} Frame 30
"left"Symbol 620 MovieClip {muravei} Frame 37
"povRicht"Symbol 620 MovieClip {muravei} Frame 49
"mAnfas"Symbol 620 MovieClip {muravei} Frame 56
"left"Symbol 730 MovieClip {muraveiR} Frame 1
"mDavka"Symbol 730 MovieClip {muraveiR} Frame 13
"mFire"Symbol 730 MovieClip {muraveiR} Frame 22
"povRicht"Symbol 730 MovieClip {muraveiR} Frame 30
"povLeft"Symbol 730 MovieClip {muraveiR} Frame 37
"right"Symbol 730 MovieClip {muraveiR} Frame 44
"mAnfas"Symbol 730 MovieClip {muraveiR} Frame 56
"rPoed"Symbol 730 MovieClip {muraveiR} Frame 57
"lPoed"Symbol 730 MovieClip {muraveiR} Frame 69




http://swfchan.com/19/93042/info.shtml
Created: 27/3 -2019 03:50:06 Last modified: 27/3 -2019 03:50:06 Server time: 29/04 -2024 09:13:45