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

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

armorgames all-we-need-is-brain-7415.swf

This is the info page for
Flash #264273

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


Text
play

play

play

This game is site-locked to ArmorGames, please contact
for a version you can host on your website.
Or visit
for the distribution package.

vladg1979@gmail.com

vladg1979@gmail.com

http://www.notdoppler.com/webmasters.php

http://www.notdoppler.com/webmasters.php

loading

init

use brain to lure
zombie out

and get rid of it!

help

help

help

next

next

next

start

start

start

Physics engyne: Box2D

Alexander Balint

Music by

Graphics by мAx(((

Developer by VladG

vladg1979@gmail.com

vladg1979@gmail.com

x

x

x

Special thanks to:

Johnny-K
Anastasia Guseva
Anastasia Brazhnichenko
Mikhail Gusev
Anton Koshechkin
Tanya Oladyshkina

Play

Play

Play

highscores

highscores

highscores

credits

credits

credits

more games

more games

more games

h0st this
game

h0st this
game

h0st this
game

All we need is
brain

not

DOPPLER

menu

menu

menu

congratulations!

total score

submit score

submit score

submit score

show score

show score

show score

reset

reset

reset

menu

menu

menu

levels

levels

levels

solution

solution

solution

Score

0/

Level

100

25

25

level score

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

not

DOPPLER

50

_

Not Doppler
Highscore Submitter

Loading higscores...

ActionScript [AS3]

Section 1
//45646456456_190 (AllWeNeedIsBrains_fla.45646456456_190) package AllWeNeedIsBrains_fla { import flash.display.*; public dynamic class 45646456456_190 extends MovieClip { public var zalaz:gvozd; } }//package AllWeNeedIsBrains_fla
Section 2
//5435_71 (AllWeNeedIsBrains_fla.5435_71) package AllWeNeedIsBrains_fla { import flash.display.*; public dynamic class 5435_71 extends MovieClip { public function 5435_71(){ addFrameScript(12, frame13); } function frame13(){ stop(); } } }//package AllWeNeedIsBrains_fla
Section 3
//introFlash_295 (AllWeNeedIsBrains_fla.introFlash_295) package AllWeNeedIsBrains_fla { import flash.display.*; public dynamic class introFlash_295 extends MovieClip { public function introFlash_295(){ addFrameScript(5, frame6); } function frame6(){ stop(); } } }//package AllWeNeedIsBrains_fla
Section 4
//Symbol12_128 (AllWeNeedIsBrains_fla.Symbol12_128) package AllWeNeedIsBrains_fla { import flash.display.*; public dynamic class Symbol12_128 extends MovieClip { public var br_wall_vn:MovieClip; } }//package AllWeNeedIsBrains_fla
Section 5
//Symbol8_157 (AllWeNeedIsBrains_fla.Symbol8_157) package AllWeNeedIsBrains_fla { import flash.display.*; public dynamic class Symbol8_157 extends MovieClip { public var br_wall_vn:MovieClip; } }//package AllWeNeedIsBrains_fla
Section 6
//Symbol9copy_140 (AllWeNeedIsBrains_fla.Symbol9copy_140) package AllWeNeedIsBrains_fla { import flash.display.*; public dynamic class Symbol9copy_140 extends MovieClip { public var br_wall_vn:MovieClip; } }//package AllWeNeedIsBrains_fla
Section 7
//Timeline_150 (AllWeNeedIsBrains_fla.Timeline_150) package AllWeNeedIsBrains_fla { import flash.display.*; public dynamic class Timeline_150 extends MovieClip { public var intervalKillAnim_0:MovieClip; } }//package AllWeNeedIsBrains_fla
Section 8
//Timeline_60 (AllWeNeedIsBrains_fla.Timeline_60) package AllWeNeedIsBrains_fla { import flash.display.*; public dynamic class Timeline_60 extends MovieClip { public function Timeline_60(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package AllWeNeedIsBrains_fla
Section 9
//vonisa1_192 (AllWeNeedIsBrains_fla.vonisa1_192) package AllWeNeedIsBrains_fla { import flash.display.*; public dynamic class vonisa1_192 extends MovieClip { public function vonisa1_192(){ addFrameScript(139, frame140); } function frame140(){ gotoAndPlay(68); } } }//package AllWeNeedIsBrains_fla
Section 10
//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 11
//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 12
//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 13
//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 14
//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 15
//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 16
//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 17
//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 18
//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 19
//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 20
//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 21
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 22
//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 23
//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 24
//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 25
//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 26
//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 27
//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 28
//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 29
//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 30
//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 31
//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 32
//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 33
//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 34
//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 35
//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 36
//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 37
//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 38
//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 39
//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 40
//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 41
//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 42
//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 43
//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 44
//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 45
//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 46
//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 47
//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 48
//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 49
//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 50
//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 51
//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 52
//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 53
//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 54
//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 55
//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 56
//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 57
//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 58
//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 59
//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 60
//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 61
//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 62
//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 63
//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 64
//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 65
//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 66
//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 67
//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 68
//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 69
//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 70
//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 71
//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 72
//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 73
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 74
//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 75
//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 76
//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 77
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.*; import Box2D.Common.*; 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 78
//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 79
//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 80
//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 81
//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 82
//BaseButton (fl.controls.BaseButton) package fl.controls { import flash.display.*; import flash.events.*; import fl.core.*; import flash.utils.*; import fl.events.*; public class BaseButton extends UIComponent { protected var pressTimer:Timer; protected var _autoRepeat:Boolean;// = false protected var _selected:Boolean;// = false protected var background:DisplayObject; private var unlockedMouseState:String; protected var mouseState:String; private var _mouseStateLocked:Boolean;// = false private static var defaultStyles:Object = {upSkin:"Button_upSkin", downSkin:"Button_downSkin", overSkin:"Button_overSkin", disabledSkin:"Button_disabledSkin", selectedDisabledSkin:"Button_selectedDisabledSkin", selectedUpSkin:"Button_selectedUpSkin", selectedDownSkin:"Button_selectedDownSkin", selectedOverSkin:"Button_selectedOverSkin", focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35}; public function BaseButton(){ buttonMode = true; mouseChildren = false; useHandCursor = false; setupMouseEvents(); setMouseState("up"); pressTimer = new Timer(1, 0); pressTimer.addEventListener(TimerEvent.TIMER, buttonDown, false, 0, true); } override public function get enabled():Boolean{ return (super.enabled); } protected function startPress():void{ if (_autoRepeat){ pressTimer.delay = Number(getStyleValue("repeatDelay")); pressTimer.start(); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function drawLayout():void{ background.width = width; background.height = height; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; mouseEnabled = _arg1; } public function set autoRepeat(_arg1:Boolean):void{ _autoRepeat = _arg1; } protected function mouseEventHandler(_arg1:MouseEvent):void{ if (_arg1.type == MouseEvent.MOUSE_DOWN){ setMouseState("down"); startPress(); } else { if ((((_arg1.type == MouseEvent.ROLL_OVER)) || ((_arg1.type == MouseEvent.MOUSE_UP)))){ setMouseState("over"); endPress(); } else { if (_arg1.type == MouseEvent.ROLL_OUT){ setMouseState("up"); endPress(); }; }; }; } protected function drawBackground():void{ var _local1:String = (enabled) ? mouseState : "disabled"; if (selected){ _local1 = (("selected" + _local1.substr(0, 1).toUpperCase()) + _local1.substr(1)); }; _local1 = (_local1 + "Skin"); var _local2:DisplayObject = background; background = getDisplayObjectInstance(getStyleValue(_local1)); addChildAt(background, 0); if (((!((_local2 == null))) && (!((_local2 == background))))){ removeChild(_local2); }; } public function get selected():Boolean{ return (_selected); } protected function setupMouseEvents():void{ addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false, 0, true); } protected function endPress():void{ pressTimer.reset(); } public function set mouseStateLocked(_arg1:Boolean):void{ _mouseStateLocked = _arg1; if (_arg1 == false){ setMouseState(unlockedMouseState); } else { unlockedMouseState = mouseState; }; } public function get autoRepeat():Boolean{ return (_autoRepeat); } public function set selected(_arg1:Boolean):void{ if (_selected == _arg1){ return; }; _selected = _arg1; invalidate(InvalidationType.STATE); } protected function buttonDown(_arg1:TimerEvent):void{ if (!_autoRepeat){ endPress(); return; }; if (pressTimer.currentCount == 1){ pressTimer.delay = Number(getStyleValue("repeatInterval")); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } public function setMouseState(_arg1:String):void{ if (_mouseStateLocked){ unlockedMouseState = _arg1; return; }; if (mouseState == _arg1){ return; }; mouseState = _arg1; invalidate(InvalidationType.STATE); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 83
//Button (fl.controls.Button) package fl.controls { import flash.display.*; import fl.core.*; import fl.managers.*; public class Button extends LabelButton implements IFocusManagerComponent { protected var _emphasized:Boolean;// = false protected var emphasizedBorder:DisplayObject; private static var defaultStyles:Object = {emphasizedSkin:"Button_emphasizedSkin", emphasizedPadding:2}; public static var createAccessibilityImplementation:Function; public function set emphasized(_arg1:Boolean):void{ _emphasized = _arg1; invalidate(InvalidationType.STYLES); } override protected function initializeAccessibility():void{ if (Button.createAccessibilityImplementation != null){ Button.createAccessibilityImplementation(this); }; } protected function drawEmphasized():void{ var _local2:Number; if (emphasizedBorder != null){ removeChild(emphasizedBorder); }; emphasizedBorder = null; if (!_emphasized){ return; }; var _local1:Object = getStyleValue("emphasizedSkin"); if (_local1 != null){ emphasizedBorder = getDisplayObjectInstance(_local1); }; if (emphasizedBorder != null){ addChildAt(emphasizedBorder, 0); _local2 = Number(getStyleValue("emphasizedPadding")); emphasizedBorder.x = (emphasizedBorder.y = -(_local2)); emphasizedBorder.width = (width + (_local2 * 2)); emphasizedBorder.height = (height + (_local2 * 2)); }; } public function get emphasized():Boolean{ return (_emphasized); } override protected function draw():void{ if (((isInvalid(InvalidationType.STYLES)) || (isInvalid(InvalidationType.SIZE)))){ drawEmphasized(); }; super.draw(); if (emphasizedBorder != null){ setChildIndex(emphasizedBorder, (numChildren - 1)); }; } override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; var _local3:*; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("emphasizedPadding")); if ((((_local2 < 0)) || (!(_emphasized)))){ _local2 = 0; }; _local3 = getStyleValue("focusRectPadding"); _local3 = ((_local3)==null) ? 2 : _local3; _local3 = (_local3 + _local2); uiFocusRect.x = -(_local3); uiFocusRect.y = -(_local3); uiFocusRect.width = (width + (_local3 * 2)); uiFocusRect.height = (height + (_local3 * 2)); }; } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(LabelButton.getStyleDefinition(), defaultStyles)); } } }//package fl.controls
Section 84
//ButtonLabelPlacement (fl.controls.ButtonLabelPlacement) package fl.controls { public class ButtonLabelPlacement { public static const TOP:String = "top"; public static const LEFT:String = "left"; public static const BOTTOM:String = "bottom"; public static const RIGHT:String = "right"; } }//package fl.controls
Section 85
//LabelButton (fl.controls.LabelButton) package fl.controls { import flash.display.*; import flash.events.*; import fl.core.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.ui.*; public class LabelButton extends BaseButton implements IFocusManagerComponent { protected var _toggle:Boolean;// = false public var textField:TextField; protected var mode:String;// = "center" protected var _labelPlacement:String;// = "right" protected var oldMouseState:String; protected var _label:String;// = "Label" protected var icon:DisplayObject; private static var defaultStyles:Object = {icon:null, upIcon:null, downIcon:null, overIcon:null, disabledIcon:null, selectedDisabledIcon:null, selectedUpIcon:null, selectedDownIcon:null, selectedOverIcon:null, textFormat:null, disabledTextFormat:null, textPadding:5, embedFonts:false}; public static var createAccessibilityImplementation:Function; override protected function draw():void{ if (textField.text != _label){ label = _label; }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); drawIcon(); drawTextFormat(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } override protected function drawLayout():void{ var _local7:Number; var _local8:Number; var _local1:Number = Number(getStyleValue("textPadding")); var _local2:String = ((((icon == null)) && ((mode == "center")))) ? ButtonLabelPlacement.TOP : _labelPlacement; textField.height = (textField.textHeight + 4); var _local3:Number = (textField.textWidth + 4); var _local4:Number = (textField.textHeight + 4); var _local5:Number = ((icon)==null) ? 0 : (icon.width + _local1); var _local6:Number = ((icon)==null) ? 0 : (icon.height + _local1); textField.visible = (label.length > 0); if (icon != null){ icon.x = Math.round(((width - icon.width) / 2)); icon.y = Math.round(((height - icon.height) / 2)); }; if (textField.visible == false){ textField.width = 0; textField.height = 0; } else { if ((((_local2 == ButtonLabelPlacement.BOTTOM)) || ((_local2 == ButtonLabelPlacement.TOP)))){ _local7 = Math.max(0, Math.min(_local3, (width - (2 * _local1)))); if ((height - 2) > _local4){ _local8 = _local4; } else { _local8 = (height - 2); }; _local3 = _local7; textField.width = _local3; _local4 = _local8; textField.height = _local4; textField.x = Math.round(((width - _local3) / 2)); textField.y = Math.round(((((height - textField.height) - _local6) / 2) + ((_local2)==ButtonLabelPlacement.BOTTOM) ? _local6 : 0)); if (icon != null){ icon.y = Math.round(((_local2)==ButtonLabelPlacement.BOTTOM) ? (textField.y - _local6) : ((textField.y + textField.height) + _local1)); }; } else { _local7 = Math.max(0, Math.min(_local3, ((width - _local5) - (2 * _local1)))); _local3 = _local7; textField.width = _local3; textField.x = Math.round(((((width - _local3) - _local5) / 2) + ((_local2)!=ButtonLabelPlacement.LEFT) ? _local5 : 0)); textField.y = Math.round(((height - textField.height) / 2)); if (icon != null){ icon.x = Math.round(((_local2)!=ButtonLabelPlacement.LEFT) ? (textField.x - _local5) : ((textField.x + _local3) + _local1)); }; }; }; super.drawLayout(); } protected function toggleSelected(_arg1:MouseEvent):void{ selected = !(selected); dispatchEvent(new Event(Event.CHANGE, true)); } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ setMouseState(oldMouseState); oldMouseState = null; endPress(); dispatchEvent(new MouseEvent(MouseEvent.CLICK)); }; } public function get labelPlacement():String{ return (_labelPlacement); } public function get toggle():Boolean{ return (_toggle); } protected function setEmbedFont(){ var _local1:Object = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } override public function get selected():Boolean{ return ((_toggle) ? _selected : false); } override protected function configUI():void{ super.configUI(); textField = new TextField(); textField.type = TextFieldType.DYNAMIC; textField.selectable = false; addChild(textField); } override protected function initializeAccessibility():void{ if (LabelButton.createAccessibilityImplementation != null){ LabelButton.createAccessibilityImplementation(this); }; } public function set labelPlacement(_arg1:String):void{ _labelPlacement = _arg1; invalidate(InvalidationType.SIZE); } protected function drawIcon():void{ var _local1:DisplayObject = icon; var _local2:String = (enabled) ? mouseState : "disabled"; if (selected){ _local2 = (("selected" + _local2.substr(0, 1).toUpperCase()) + _local2.substr(1)); }; _local2 = (_local2 + "Icon"); var _local3:Object = getStyleValue(_local2); if (_local3 == null){ _local3 = getStyleValue("icon"); }; if (_local3 != null){ icon = getDisplayObjectInstance(_local3); }; if (icon != null){ addChildAt(icon, 1); }; if (((!((_local1 == null))) && (!((_local1 == icon))))){ removeChild(_local1); }; } public function set label(_arg1:String):void{ _label = _arg1; if (textField.text != _label){ textField.text = _label; dispatchEvent(new ComponentEvent(ComponentEvent.LABEL_CHANGE)); }; invalidate(InvalidationType.SIZE); invalidate(InvalidationType.STYLES); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ if (oldMouseState == null){ oldMouseState = mouseState; }; setMouseState("down"); startPress(); }; } public function set toggle(_arg1:Boolean):void{ if (((!(_arg1)) && (super.selected))){ selected = false; }; _toggle = _arg1; if (_toggle){ addEventListener(MouseEvent.CLICK, toggleSelected, false, 0, true); } else { removeEventListener(MouseEvent.CLICK, toggleSelected); }; invalidate(InvalidationType.STATE); } override public function set selected(_arg1:Boolean):void{ _selected = _arg1; if (_toggle){ invalidate(InvalidationType.STATE); }; } protected function drawTextFormat():void{ var _local1:Object = UIComponent.getStyleDefinition(); var _local2:TextFormat = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); var _local3:TextFormat = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); } public function get label():String{ return (_label); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseButton.getStyleDefinition())); } } }//package fl.controls
Section 86
//ComponentShim (fl.core.ComponentShim) package fl.core { import flash.display.*; public dynamic class ComponentShim extends MovieClip { } }//package fl.core
Section 87
//InvalidationType (fl.core.InvalidationType) package fl.core { public class InvalidationType { public static const SIZE:String = "size"; public static const ALL:String = "all"; public static const DATA:String = "data"; public static const SCROLL:String = "scroll"; public static const STATE:String = "state"; public static const STYLES:String = "styles"; public static const SELECTED:String = "selected"; public static const RENDERER_STYLES:String = "rendererStyles"; } }//package fl.core
Section 88
//UIComponent (fl.core.UIComponent) package fl.core { import flash.display.*; import flash.events.*; import fl.managers.*; import flash.utils.*; import fl.events.*; import flash.text.*; import flash.system.*; public class UIComponent extends Sprite { protected var _x:Number; protected var _enabled:Boolean;// = true protected var callLaterMethods:Dictionary; private var _mouseFocusEnabled:Boolean;// = true private var tempText:TextField; private var _focusEnabled:Boolean;// = true protected var startHeight:Number; protected var _height:Number; protected var invalidateFlag:Boolean;// = false protected var _oldIMEMode:String;// = null protected var _inspector:Boolean;// = false protected var startWidth:Number; public var focusTarget:IFocusManagerComponent; protected var errorCaught:Boolean;// = false protected var invalidHash:Object; protected var sharedStyles:Object; protected var uiFocusRect:DisplayObject; protected var isLivePreview:Boolean;// = false protected var _imeMode:String;// = null protected var _width:Number; protected var instanceStyles:Object; public var version:String;// = "3.0.0.16" protected var isFocused:Boolean;// = false protected var _y:Number; public static var inCallLaterPhase:Boolean = false; private static var defaultStyles:Object = {focusRectSkin:"focusRectSkin", focusRectPadding:2, textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), disabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultTextFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultDisabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0)}; public static var createAccessibilityImplementation:Function; private static var focusManagers:Dictionary = new Dictionary(false); public function UIComponent(){ instanceStyles = {}; sharedStyles = {}; invalidHash = {}; callLaterMethods = new Dictionary(); StyleManager.registerInstance(this); configUI(); invalidate(InvalidationType.ALL); tabEnabled = (this is IFocusManagerComponent); focusRect = false; if (tabEnabled){ addEventListener(FocusEvent.FOCUS_IN, focusInHandler); addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler); addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); }; initializeFocusManager(); addEventListener(Event.ENTER_FRAME, hookAccessibility, false, 0, true); } public function getStyle(_arg1:String):Object{ return (instanceStyles[_arg1]); } protected function checkLivePreview():Boolean{ var className:String; if (parent == null){ return (false); }; try { className = getQualifiedClassName(parent); } catch(e:Error) { }; return ((className == "fl.livepreview::LivePreviewParent")); } private function callLaterDispatcher(_arg1:Event):void{ var _local3:Object; if (_arg1.type == Event.ADDED_TO_STAGE){ removeEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher); stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); return; }; _arg1.target.removeEventListener(Event.RENDER, callLaterDispatcher); if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); return; }; inCallLaterPhase = true; var _local2:Dictionary = callLaterMethods; for (_local3 in _local2) { _local3(); delete _local2[_local3]; }; inCallLaterPhase = false; } protected function validate():void{ invalidHash = {}; } protected function focusOutHandler(_arg1:FocusEvent):void{ if (isOurFocus((_arg1.target as DisplayObject))){ drawFocus(false); isFocused = false; }; } public function set mouseFocusEnabled(_arg1:Boolean):void{ _mouseFocusEnabled = _arg1; } public function getFocus():InteractiveObject{ if (stage){ return (stage.focus); }; return (null); } override public function get height():Number{ return (_height); } private function addedHandler(_arg1:Event):void{ removeEventListener("addedToStage", addedHandler); initializeFocusManager(); } protected function getStyleValue(_arg1:String):Object{ return (((instanceStyles[_arg1])==null) ? sharedStyles[_arg1] : instanceStyles[_arg1]); } public function invalidate(_arg1:String="all", _arg2:Boolean=true):void{ invalidHash[_arg1] = true; if (_arg2){ this.callLater(draw); }; } protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((_arg1 == this)); } public function get enabled():Boolean{ return (_enabled); } protected function getScaleX():Number{ return (super.scaleX); } protected function getScaleY():Number{ return (super.scaleY); } public function get focusEnabled():Boolean{ return (_focusEnabled); } protected function afterComponentParameters():void{ } override public function get scaleY():Number{ return ((height / startHeight)); } protected function setIMEMode(_arg1:Boolean){ var enabled = _arg1; if (_imeMode != null){ if (enabled){ IME.enabled = true; _oldIMEMode = IME.conversionMode; try { if (((!(errorCaught)) && (!((IME.conversionMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _imeMode; }; errorCaught = false; } catch(e:Error) { errorCaught = true; throw (new Error(("IME mode not supported: " + _imeMode))); }; } else { if (((!((IME.conversionMode == IMEConversionMode.UNKNOWN))) && (!((_oldIMEMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _oldIMEMode; }; IME.enabled = false; }; }; } protected function draw():void{ if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } override public function set height(_arg1:Number):void{ if (_height == _arg1){ return; }; setSize(width, _arg1); } protected function configUI():void{ isLivePreview = checkLivePreview(); var _local1:Number = rotation; rotation = 0; var _local2:Number = super.width; var _local3:Number = super.height; var _local4 = 1; super.scaleY = _local4; super.scaleX = _local4; setSize(_local2, _local3); move(super.x, super.y); rotation = _local1; startWidth = _local2; startHeight = _local3; if (numChildren > 0){ removeChildAt(0); }; } protected function setScaleY(_arg1:Number):void{ super.scaleY = _arg1; } override public function get scaleX():Number{ return ((width / startWidth)); } protected function setScaleX(_arg1:Number):void{ super.scaleX = _arg1; } private function initializeFocusManager():void{ if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, addedHandler, false, 0, true); } else { createFocusManager(); }; } protected function keyDownHandler(_arg1:KeyboardEvent):void{ } public function set focusManager(_arg1:IFocusManager):void{ UIComponent.focusManagers[this] = _arg1; } public function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } protected function isInvalid(_arg1:String, ... _args):Boolean{ if (((invalidHash[_arg1]) || (invalidHash[InvalidationType.ALL]))){ return (true); }; while (_args.length > 0) { if (invalidHash[_args.pop()]){ return (true); }; }; return (false); } public function setStyle(_arg1:String, _arg2:Object):void{ if ((((instanceStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; instanceStyles[_arg1] = _arg2; invalidate(InvalidationType.STYLES); } override public function get visible():Boolean{ return (super.visible); } protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (isOurFocus((_arg1.target as DisplayObject))){ _local2 = focusManager; if (((_local2) && (_local2.showFocusIndicator))){ drawFocus(true); isFocused = true; }; }; } public function get componentInspectorSetting():Boolean{ return (_inspector); } override public function get x():Number{ return ((isNaN(_x)) ? super.x : _x); } override public function get y():Number{ return ((isNaN(_y)) ? super.y : _y); } public function set enabled(_arg1:Boolean):void{ if (_arg1 == _enabled){ return; }; _enabled = _arg1; invalidate(InvalidationType.STATE); } public function setSize(_arg1:Number, _arg2:Number):void{ _width = _arg1; _height = _arg2; invalidate(InvalidationType.SIZE); dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, false)); } protected function keyUpHandler(_arg1:KeyboardEvent):void{ } public function setSharedStyle(_arg1:String, _arg2:Object):void{ if ((((sharedStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; sharedStyles[_arg1] = _arg2; if (instanceStyles[_arg1] == null){ invalidate(InvalidationType.STYLES); }; } public function set focusEnabled(_arg1:Boolean):void{ _focusEnabled = _arg1; } override public function set width(_arg1:Number):void{ if (_width == _arg1){ return; }; setSize(_arg1, height); } public function setFocus():void{ if (stage){ stage.focus = this; }; } override public function set scaleX(_arg1:Number):void{ setSize((startWidth * _arg1), height); } public function get mouseFocusEnabled():Boolean{ return (_mouseFocusEnabled); } override public function set scaleY(_arg1:Number):void{ setSize(width, (startHeight * _arg1)); } protected function getDisplayObjectInstance(_arg1:Object):DisplayObject{ var skin = _arg1; var classDef:Object; if ((skin is Class)){ return ((new (skin) as DisplayObject)); }; if ((skin is DisplayObject)){ (skin as DisplayObject).x = 0; (skin as DisplayObject).y = 0; return ((skin as DisplayObject)); }; try { classDef = getDefinitionByName(skin.toString()); } catch(e:Error) { try { classDef = (loaderInfo.applicationDomain.getDefinition(skin.toString()) as Object); } catch(e:Error) { }; }; if (classDef == null){ return (null); }; return ((new (classDef) as DisplayObject)); } protected function copyStylesToChild(_arg1:UIComponent, _arg2:Object):void{ var _local3:String; for (_local3 in _arg2) { _arg1.setStyle(_local3, getStyleValue(_arg2[_local3])); }; } protected function initializeAccessibility():void{ if (UIComponent.createAccessibilityImplementation != null){ UIComponent.createAccessibilityImplementation(this); }; } public function get focusManager():IFocusManager{ var _local1:DisplayObject = this; while (_local1) { if (UIComponent.focusManagers[_local1] != null){ return (IFocusManager(UIComponent.focusManagers[_local1])); }; _local1 = _local1.parent; }; return (null); } override public function get width():Number{ return (_width); } protected function beforeComponentParameters():void{ } protected function callLater(_arg1:Function):void{ if (inCallLaterPhase){ return; }; callLaterMethods[_arg1] = true; if (stage != null){ stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); } else { addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); }; } public function move(_arg1:Number, _arg2:Number):void{ _x = _arg1; _y = _arg2; super.x = Math.round(_arg1); super.y = Math.round(_arg2); dispatchEvent(new ComponentEvent(ComponentEvent.MOVE)); } public function validateNow():void{ invalidate(InvalidationType.ALL, false); draw(); } override public function set visible(_arg1:Boolean):void{ if (super.visible == _arg1){ return; }; super.visible = _arg1; var _local2:String = (_arg1) ? ComponentEvent.SHOW : ComponentEvent.HIDE; dispatchEvent(new ComponentEvent(_local2, true)); } protected function createFocusManager():void{ if (focusManagers[stage] == null){ focusManagers[stage] = new FocusManager(stage); }; } protected function hookAccessibility(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, hookAccessibility); initializeAccessibility(); } public function set componentInspectorSetting(_arg1:Boolean):void{ _inspector = _arg1; if (_inspector){ beforeComponentParameters(); } else { afterComponentParameters(); }; } override public function set y(_arg1:Number):void{ move(_x, _arg1); } public function drawFocus(_arg1:Boolean):void{ var _local2:Number; isFocused = _arg1; if (((!((uiFocusRect == null))) && (contains(uiFocusRect)))){ removeChild(uiFocusRect); uiFocusRect = null; }; if (_arg1){ uiFocusRect = (getDisplayObjectInstance(getStyleValue("focusRectSkin")) as Sprite); if (uiFocusRect == null){ return; }; _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.x = -(_local2); uiFocusRect.y = -(_local2); uiFocusRect.width = (width + (_local2 * 2)); uiFocusRect.height = (height + (_local2 * 2)); addChildAt(uiFocusRect, 0); }; } override public function set x(_arg1:Number):void{ move(_arg1, _y); } public function drawNow():void{ draw(); } public static function getStyleDefinition():Object{ return (defaultStyles); } public static function mergeStyles(... _args):Object{ var _local5:Object; var _local6:String; var _local2:Object = {}; var _local3:uint = _args.length; var _local4:uint; while (_local4 < _local3) { _local5 = _args[_local4]; for (_local6 in _local5) { if (_local2[_local6] != null){ } else { _local2[_local6] = _args[_local4][_local6]; }; }; _local4++; }; return (_local2); } } }//package fl.core
Section 89
//ComponentEvent (fl.events.ComponentEvent) package fl.events { import flash.events.*; public class ComponentEvent extends Event { public static const HIDE:String = "hide"; public static const BUTTON_DOWN:String = "buttonDown"; public static const MOVE:String = "move"; public static const RESIZE:String = "resize"; public static const ENTER:String = "enter"; public static const LABEL_CHANGE:String = "labelChange"; public static const SHOW:String = "show"; public function ComponentEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("ComponentEvent", "type", "bubbles", "cancelable")); } override public function clone():Event{ return (new ComponentEvent(type, bubbles, cancelable)); } } }//package fl.events
Section 90
//FocusManager (fl.managers.FocusManager) package fl.managers { import fl.controls.*; import flash.display.*; import flash.events.*; import fl.core.*; import flash.utils.*; import flash.text.*; import flash.ui.*; public class FocusManager implements IFocusManager { private var focusableObjects:Dictionary; private var _showFocusIndicator:Boolean;// = true private var defButton:Button; private var focusableCandidates:Array; private var _form:DisplayObjectContainer; private var _defaultButtonEnabled:Boolean;// = true private var activated:Boolean;// = false private var _defaultButton:Button; private var calculateCandidates:Boolean;// = true private var lastFocus:InteractiveObject; private var lastAction:String; public function FocusManager(_arg1:DisplayObjectContainer){ focusableObjects = new Dictionary(true); if (_arg1 != null){ _form = _arg1; addFocusables(DisplayObject(_arg1)); _arg1.addEventListener(Event.ADDED, addedHandler); _arg1.addEventListener(Event.REMOVED, removedHandler); activate(); }; } public function get showFocusIndicator():Boolean{ return (_showFocusIndicator); } private function getIndexOfNextObject(_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{ var _local7:DisplayObject; var _local8:IFocusManagerGroup; var _local9:int; var _local10:DisplayObject; var _local11:IFocusManagerGroup; var _local5:int = focusableCandidates.length; var _local6:int = _arg1; while (true) { if (_arg2){ _arg1--; } else { _arg1++; }; if (_arg3){ if (((_arg2) && ((_arg1 < 0)))){ break; }; if (((!(_arg2)) && ((_arg1 == _local5)))){ break; }; } else { _arg1 = ((_arg1 + _local5) % _local5); if (_local6 == _arg1){ break; }; }; if (isValidFocusCandidate(focusableCandidates[_arg1], _arg4)){ _local7 = DisplayObject(findFocusManagerComponent(focusableCandidates[_arg1])); if ((_local7 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local7); _local9 = 0; while (_local9 < focusableCandidates.length) { _local10 = focusableCandidates[_local9]; if ((_local10 is IFocusManagerGroup)){ _local11 = IFocusManagerGroup(_local10); if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){ _arg1 = _local9; break; }; }; _local9++; }; }; return (_arg1); }; }; return (_arg1); } private function mouseFocusChangeHandler(_arg1:FocusEvent):void{ if ((_arg1.relatedObject is TextField)){ return; }; _arg1.preventDefault(); } public function set form(_arg1:DisplayObjectContainer):void{ _form = _arg1; } private function addFocusables(_arg1:DisplayObject, _arg2:Boolean=false):void{ var focusable:IFocusManagerComponent; var io:InteractiveObject; var doc:DisplayObjectContainer; var i:int; var child:DisplayObject; var o = _arg1; var skipTopLevel = _arg2; if (!skipTopLevel){ if ((o is IFocusManagerComponent)){ focusable = IFocusManagerComponent(o); if (focusable.focusEnabled){ if (((focusable.tabEnabled) && (isTabVisible(o)))){ focusableObjects[o] = true; calculateCandidates = true; }; o.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); o.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; } else { if ((o is InteractiveObject)){ io = (o as InteractiveObject); if (((((io) && (io.tabEnabled))) && ((findFocusManagerComponent(io) == io)))){ focusableObjects[io] = true; calculateCandidates = true; }; io.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); io.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; }; }; if ((o is DisplayObjectContainer)){ doc = DisplayObjectContainer(o); o.addEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){ i = 0; while (i < doc.numChildren) { try { child = doc.getChildAt(i); if (child != null){ addFocusables(doc.getChildAt(i)); }; } catch(error:SecurityError) { }; i = (i + 1); }; }; }; } private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{ return (_arg1.getChildIndex(_arg2)); } public function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject{ var _local2:InteractiveObject = _arg1; while (_arg1) { if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){ return (_arg1); }; _arg1 = _arg1.parent; }; return (_local2); } private function focusOutHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject = (_arg1.target as InteractiveObject); } private function isValidFocusCandidate(_arg1:DisplayObject, _arg2:String):Boolean{ var _local3:IFocusManagerGroup; if (!isEnabledAndVisible(_arg1)){ return (false); }; if ((_arg1 is IFocusManagerGroup)){ _local3 = IFocusManagerGroup(_arg1); if (_arg2 == _local3.groupName){ return (false); }; }; return (true); } private function setFocusToNextObject(_arg1:FocusEvent):void{ if (!hasFocusableObjects()){ return; }; var _local2:InteractiveObject = getNextFocusManagerComponent(_arg1.shiftKey); if (_local2){ setFocus(_local2); }; } private function sortFocusableObjectsTabIndex():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){ focusableCandidates.push(_local2); }; }; focusableCandidates.sort(sortByTabIndex); } private function removeFocusables(_arg1:DisplayObject):void{ var _local2:Object; var _local3:DisplayObject; if ((_arg1 is DisplayObjectContainer)){ _arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); _arg1.removeEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); for (_local2 in focusableObjects) { _local3 = DisplayObject(_local2); if (DisplayObjectContainer(_arg1).contains(_local3)){ if (_local3 == lastFocus){ lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local2]; calculateCandidates = true; }; }; }; } private function getTopLevelFocusTarget(_arg1:InteractiveObject):InteractiveObject{ while (_arg1 != InteractiveObject(form)) { if ((((((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))) && (IFocusManagerComponent(_arg1).mouseFocusEnabled))) && (UIComponent(_arg1).enabled))){ return (_arg1); }; _arg1 = _arg1.parent; if (_arg1 == null){ break; }; }; return (null); } public function sendDefaultButtonEvent():void{ defButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); } private function addedHandler(_arg1:Event):void{ var _local2:DisplayObject = DisplayObject(_arg1.target); if (_local2.stage){ addFocusables(DisplayObject(_arg1.target)); }; } private function isEnabledAndVisible(_arg1:DisplayObject):Boolean{ var _local3:TextField; var _local4:SimpleButton; var _local2:DisplayObjectContainer = DisplayObject(form).parent; while (_arg1 != _local2) { if ((_arg1 is UIComponent)){ if (!UIComponent(_arg1).enabled){ return (false); }; } else { if ((_arg1 is TextField)){ _local3 = TextField(_arg1); if ((((_local3.type == TextFieldType.DYNAMIC)) || (!(_local3.selectable)))){ return (false); }; } else { if ((_arg1 is SimpleButton)){ _local4 = SimpleButton(_arg1); if (!_local4.enabled){ return (false); }; }; }; }; if (!_arg1.visible){ return (false); }; _arg1 = _arg1.parent; }; return (true); } private function tabChildrenChangeHandler(_arg1:Event):void{ if (_arg1.target != _arg1.currentTarget){ return; }; calculateCandidates = true; var _local2:DisplayObjectContainer = DisplayObjectContainer(_arg1.target); if (_local2.tabChildren){ addFocusables(_local2, true); } else { removeFocusables(_local2); }; } private function deactivateHandler(_arg1:Event):void{ var _local2:InteractiveObject = InteractiveObject(_arg1.target); } public function setFocus(_arg1:InteractiveObject):void{ if ((_arg1 is IFocusManagerComponent)){ IFocusManagerComponent(_arg1).setFocus(); } else { form.stage.focus = _arg1; }; } public function getFocus():InteractiveObject{ var _local1:InteractiveObject = form.stage.focus; return (findFocusManagerComponent(_local1)); } private function hasFocusableObjects():Boolean{ var _local1:Object; for (_local1 in focusableObjects) { return (true); }; return (false); } private function tabIndexChangeHandler(_arg1:Event):void{ calculateCandidates = true; } public function set defaultButton(_arg1:Button):void{ var _local2:Button = (_arg1) ? Button(_arg1) : null; if (_local2 != _defaultButton){ if (_defaultButton){ _defaultButton.emphasized = false; }; if (defButton){ defButton.emphasized = false; }; _defaultButton = _local2; defButton = _local2; if (_local2){ _local2.emphasized = true; }; }; } private function sortFocusableObjects():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){ sortFocusableObjectsTabIndex(); return; }; focusableCandidates.push(_local2); }; focusableCandidates.sort(sortByDepth); } private function keyFocusChangeHandler(_arg1:FocusEvent):void{ showFocusIndicator = true; if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){ setFocusToNextObject(_arg1); _arg1.preventDefault(); }; } private function getIndexOfFocusedObject(_arg1:DisplayObject):int{ var _local2:int = focusableCandidates.length; var _local3:int; _local3 = 0; while (_local3 < _local2) { if (focusableCandidates[_local3] == _arg1){ return (_local3); }; _local3++; }; return (-1); } public function hideFocus():void{ } private function removedHandler(_arg1:Event):void{ var _local2:int; var _local4:InteractiveObject; var _local3:DisplayObject = DisplayObject(_arg1.target); if ((((_local3 is IFocusManagerComponent)) && ((focusableObjects[_local3] == true)))){ if (_local3 == lastFocus){ IFocusManagerComponent(lastFocus).drawFocus(false); lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local3]; calculateCandidates = true; } else { if ((((_local3 is InteractiveObject)) && ((focusableObjects[_local3] == true)))){ _local4 = (_local3 as InteractiveObject); if (_local4){ if (_local4 == lastFocus){ lastFocus = null; }; delete focusableObjects[_local4]; calculateCandidates = true; }; _local3.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); }; }; removeFocusables(_local3); } private function sortByDepth(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{ var _local5:int; var _local6:String; var _local7:String; var _local3 = ""; var _local4 = ""; var _local8 = "0000"; var _local9:DisplayObject = DisplayObject(_arg1); var _local10:DisplayObject = DisplayObject(_arg2); while (((!((_local9 == DisplayObject(form)))) && (_local9.parent))) { _local5 = getChildIndex(_local9.parent, _local9); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local3 = (_local7 + _local3); _local9 = _local9.parent; }; while (((!((_local10 == DisplayObject(form)))) && (_local10.parent))) { _local5 = getChildIndex(_local10.parent, _local10); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local4 = (_local7 + _local4); _local10 = _local10.parent; }; return (((_local3 > _local4)) ? 1 : ((_local3 < _local4)) ? -1 : 0); } public function get defaultButton():Button{ return (_defaultButton); } private function activateHandler(_arg1:Event):void{ var _local2:InteractiveObject = InteractiveObject(_arg1.target); if (lastFocus){ if ((lastFocus is IFocusManagerComponent)){ IFocusManagerComponent(lastFocus).setFocus(); } else { form.stage.focus = lastFocus; }; }; lastAction = "ACTIVATE"; } public function showFocus():void{ } public function set defaultButtonEnabled(_arg1:Boolean):void{ _defaultButtonEnabled = _arg1; } public function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject{ var _local8:IFocusManagerGroup; if (!hasFocusableObjects()){ return (null); }; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; var _local2:DisplayObject = form.stage.focus; _local2 = DisplayObject(findFocusManagerComponent(InteractiveObject(_local2))); var _local3 = ""; if ((_local2 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local2); _local3 = _local8.groupName; }; var _local4:int = getIndexOfFocusedObject(_local2); var _local5:Boolean; var _local6:int = _local4; if (_local4 == -1){ if (_arg1){ _local4 = focusableCandidates.length; }; _local5 = true; }; var _local7:int = getIndexOfNextObject(_local4, _arg1, _local5, _local3); return (findFocusManagerComponent(focusableCandidates[_local7])); } private function mouseDownHandler(_arg1:MouseEvent):void{ if (_arg1.isDefaultPrevented()){ return; }; var _local2:InteractiveObject = getTopLevelFocusTarget(InteractiveObject(_arg1.target)); if (!_local2){ return; }; showFocusIndicator = false; if (((((!((_local2 == lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((_local2 is TextField))))){ setFocus(_local2); }; lastAction = "MOUSEDOWN"; } private function isTabVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer = _arg1.parent; while (((((_local2) && (!((_local2 is Stage))))) && (!(((_local2.parent) && ((_local2.parent is Stage))))))) { if (!_local2.tabChildren){ return (false); }; _local2 = _local2.parent; }; return (true); } public function get nextTabIndex():int{ return (0); } private function keyDownHandler(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.TAB){ lastAction = "KEY"; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; }; if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){ sendDefaultButtonEvent(); }; } private function focusInHandler(_arg1:FocusEvent):void{ var _local3:Button; var _local2:InteractiveObject = InteractiveObject(_arg1.target); if (form.contains(_local2)){ lastFocus = findFocusManagerComponent(InteractiveObject(_local2)); if ((lastFocus is Button)){ _local3 = Button(lastFocus); if (defButton){ defButton.emphasized = false; defButton = _local3; _local3.emphasized = true; }; } else { if (((defButton) && (!((defButton == _defaultButton))))){ defButton.emphasized = false; defButton = _defaultButton; _defaultButton.emphasized = true; }; }; }; } private function tabEnabledChangeHandler(_arg1:Event):void{ calculateCandidates = true; var _local2:InteractiveObject = InteractiveObject(_arg1.target); var _local3 = (focusableObjects[_local2] == true); if (_local2.tabEnabled){ if (((!(_local3)) && (isTabVisible(_local2)))){ if (!(_local2 is IFocusManagerComponent)){ _local2.focusRect = false; }; focusableObjects[_local2] = true; }; } else { if (_local3){ delete focusableObjects[_local2]; }; }; } public function set showFocusIndicator(_arg1:Boolean):void{ _showFocusIndicator = _arg1; } public function get form():DisplayObjectContainer{ return (_form); } private function sortByTabIndex(_arg1:InteractiveObject, _arg2:InteractiveObject):int{ return (((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : ((_arg1.tabIndex < _arg2.tabIndex)) ? -1 : sortByDepth(_arg1, _arg2)); } public function get defaultButtonEnabled():Boolean{ return (_defaultButtonEnabled); } public function activate():void{ if (activated){ return; }; form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true); form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true); form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true); form.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true); form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = true; if (lastFocus){ setFocus(lastFocus); }; } public function deactivate():void{ form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler); form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler); form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.removeEventListener(Event.ACTIVATE, activateHandler); form.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler); form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = false; } } }//package fl.managers
Section 91
//IFocusManager (fl.managers.IFocusManager) package fl.managers { import fl.controls.*; import flash.display.*; public interface IFocusManager { function getFocus():InteractiveObject; function deactivate():void; function set defaultButton(_arg1:Button):void; function set showFocusIndicator(_arg1:Boolean):void; function get defaultButtonEnabled():Boolean; function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject; function get nextTabIndex():int; function get defaultButton():Button; function get showFocusIndicator():Boolean; function hideFocus():void; function activate():void; function showFocus():void; function set defaultButtonEnabled(_arg1:Boolean):void; function setFocus(_arg1:InteractiveObject):void; function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject; } }//package fl.managers
Section 92
//IFocusManagerComponent (fl.managers.IFocusManagerComponent) package fl.managers { public interface IFocusManagerComponent { function set focusEnabled(_arg1:Boolean):void; function drawFocus(_arg1:Boolean):void; function setFocus():void; function get focusEnabled():Boolean; function get tabEnabled():Boolean; function get tabIndex():int; function get mouseFocusEnabled():Boolean; } }//package fl.managers
Section 93
//IFocusManagerGroup (fl.managers.IFocusManagerGroup) package fl.managers { public interface IFocusManagerGroup { function get groupName():String; function get selected():Boolean; function set groupName(_arg1:String):void; function set selected(_arg1:Boolean):void; } }//package fl.managers
Section 94
//StyleManager (fl.managers.StyleManager) package fl.managers { import fl.core.*; import flash.utils.*; import flash.text.*; public class StyleManager { private var classToInstancesDict:Dictionary; private var globalStyles:Object; private var styleToClassesHash:Object; private var classToStylesDict:Dictionary; private var classToDefaultStylesDict:Dictionary; private static var _instance:StyleManager; public function StyleManager(){ styleToClassesHash = {}; classToInstancesDict = new Dictionary(true); classToStylesDict = new Dictionary(true); classToDefaultStylesDict = new Dictionary(true); globalStyles = UIComponent.getStyleDefinition(); } public static function clearComponentStyle(_arg1:Object, _arg2:String):void{ var _local3:Class = getClassDef(_arg1); var _local4:Object = getInstance().classToStylesDict[_local3]; if (((!((_local4 == null))) && (!((_local4[_arg2] == null))))){ delete _local4[_arg2]; invalidateComponentStyle(_local3, _arg2); }; } private static function getClassDef(_arg1:Object):Class{ var component = _arg1; if ((component is Class)){ return ((component as Class)); }; try { return ((getDefinitionByName(getQualifiedClassName(component)) as Class)); } catch(e:Error) { if ((component is UIComponent)){ try { return ((component.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(component)) as Class)); } catch(e:Error) { }; }; }; return (null); } public static function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Class = getClassDef(_arg1); var _local5:Object = getInstance().classToStylesDict[_local4]; if (_local5 == null){ _local5 = (getInstance().classToStylesDict[_local4] = {}); }; if (_local5 == _arg3){ return; }; _local5[_arg2] = _arg3; invalidateComponentStyle(_local4, _arg2); } private static function setSharedStyles(_arg1:UIComponent):void{ var _local5:String; var _local2:StyleManager = getInstance(); var _local3:Class = getClassDef(_arg1); var _local4:Object = _local2.classToDefaultStylesDict[_local3]; for (_local5 in _local4) { _arg1.setSharedStyle(_local5, getSharedStyle(_arg1, _local5)); }; } public static function getComponentStyle(_arg1:Object, _arg2:String):Object{ var _local3:Class = getClassDef(_arg1); var _local4:Object = getInstance().classToStylesDict[_local3]; return (((_local4)==null) ? null : _local4[_arg2]); } private static function getInstance(){ if (_instance == null){ _instance = new (StyleManager); }; return (_instance); } private static function invalidateComponentStyle(_arg1:Class, _arg2:String):void{ var _local4:Object; var _local5:UIComponent; var _local3:Dictionary = getInstance().classToInstancesDict[_arg1]; if (_local3 == null){ return; }; for (_local4 in _local3) { _local5 = (_local4 as UIComponent); if (_local5 == null){ } else { _local5.setSharedStyle(_arg2, getSharedStyle(_local5, _arg2)); }; }; } private static function invalidateStyle(_arg1:String):void{ var _local3:Object; var _local2:Dictionary = getInstance().styleToClassesHash[_arg1]; if (_local2 == null){ return; }; for (_local3 in _local2) { invalidateComponentStyle(Class(_local3), _arg1); }; } public static function registerInstance(_arg1:UIComponent):void{ var target:Class; var defaultStyles:Object; var styleToClasses:Object; var n:String; var instance = _arg1; var inst:StyleManager = getInstance(); var classDef:Class = getClassDef(instance); if (classDef == null){ return; }; if (inst.classToInstancesDict[classDef] == null){ inst.classToInstancesDict[classDef] = new Dictionary(true); target = classDef; while (defaultStyles == null) { if (target["getStyleDefinition"] != null){ defaultStyles = target["getStyleDefinition"](); break; }; try { target = (instance.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(target)) as Class); } catch(err:Error) { try { target = (getDefinitionByName(getQualifiedSuperclassName(target)) as Class); } catch(e:Error) { defaultStyles = UIComponent.getStyleDefinition(); break; }; }; }; styleToClasses = inst.styleToClassesHash; for (n in defaultStyles) { if (styleToClasses[n] == null){ styleToClasses[n] = new Dictionary(true); }; styleToClasses[n][classDef] = true; }; inst.classToDefaultStylesDict[classDef] = defaultStyles; if (inst.classToStylesDict[classDef] == null){ inst.classToStylesDict[classDef] = {}; }; }; inst.classToInstancesDict[classDef][instance] = true; setSharedStyles(instance); } public static function getStyle(_arg1:String):Object{ return (getInstance().globalStyles[_arg1]); } private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{ var _local3:Class = getClassDef(_arg1); var _local4:StyleManager = getInstance(); var _local5:Object = _local4.classToStylesDict[_local3][_arg2]; if (_local5 != null){ return (_local5); }; _local5 = _local4.globalStyles[_arg2]; if (_local5 != null){ return (_local5); }; return (_local4.classToDefaultStylesDict[_local3][_arg2]); } public static function setStyle(_arg1:String, _arg2:Object):void{ var _local3:Object = getInstance().globalStyles; if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; _local3[_arg1] = _arg2; invalidateStyle(_arg1); } } }//package fl.managers
Section 95
//Input (General.Input) package General { import flash.display.*; import flash.events.*; public class Input { public static var mouseOffsetX:Number = 0; private static var keyArr:Array; public static var mouseDragX:Number = 0; public static var mouseDragY:Number = 0; public static var mouseOffsetY:Number = 0; public static var ascii:Array; public static var mouseX:Number = 0; public static var mouseY:Number = 0; public static var mouseOver:Boolean = false; private static var bufferSize:int; public static var mouse:Sprite = new Sprite(); public static var mouseDown:Boolean = false; public static var mouseReleased:Boolean = false; public static var lastKey:int = 0; public static var m_stageMc:Sprite; private static var keyState:Array; public static var timeSinceLastKey = 0; public static var mousePressed:Boolean = false; private static var keyBuffer:Array; public function Input(_arg1:Sprite){ var _local2:int; var _local3:int; super(); m_stageMc = _arg1; ascii = new Array(222); fillAscii(); keyState = new Array(222); keyArr = new Array(); _local2 = 0; while (_local2 < 222) { keyState[_local2] = new int(0); if (ascii[_local2] != undefined){ keyArr.push(_local2); }; _local2++; }; bufferSize = 5; keyBuffer = new Array(bufferSize); _local3 = 0; while (_local3 < bufferSize) { keyBuffer[_local3] = new Array(0, 0); _local3++; }; _arg1.stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPress, false, 0, true); _arg1.stage.addEventListener(KeyboardEvent.KEY_UP, keyRelease, false, 0, true); _arg1.stage.addEventListener(MouseEvent.MOUSE_DOWN, mousePress, false, 0, true); _arg1.stage.addEventListener(MouseEvent.CLICK, mouseRelease, false, 0, true); _arg1.stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMove, false, 0, true); _arg1.stage.addEventListener(Event.MOUSE_LEAVE, mouseLeave, false, 0, true); mouse.graphics.lineStyle(0.1, 0, 100); mouse.graphics.moveTo(0, 0); mouse.graphics.lineTo(0, 0.1); } public function mouseRelease(_arg1:MouseEvent){ mouseDown = false; mouseReleased = true; } public function keyPress(_arg1:KeyboardEvent){ keyState[_arg1.keyCode] = Math.max(keyState[_arg1.keyCode], 1); lastKey = _arg1.keyCode; } private function fillAscii(){ ascii[65] = "A"; ascii[66] = "B"; ascii[67] = "C"; ascii[68] = "D"; ascii[69] = "E"; ascii[70] = "F"; ascii[71] = "G"; ascii[72] = "H"; ascii[73] = "I"; ascii[74] = "J"; ascii[75] = "K"; ascii[76] = "L"; ascii[77] = "M"; ascii[78] = "N"; ascii[79] = "O"; ascii[80] = "P"; ascii[81] = "Q"; ascii[82] = "R"; ascii[83] = "S"; ascii[84] = "T"; ascii[85] = "U"; ascii[86] = "V"; ascii[87] = "W"; ascii[88] = "X"; ascii[89] = "Y"; ascii[90] = "Z"; ascii[48] = "0"; ascii[49] = "1"; ascii[50] = "2"; ascii[51] = "3"; ascii[52] = "4"; ascii[53] = "5"; ascii[54] = "6"; ascii[55] = "7"; ascii[56] = "8"; ascii[57] = "9"; ascii[32] = "Spacebar"; ascii[17] = "Ctrl"; ascii[16] = "Shift"; ascii[192] = "~"; ascii[38] = "up"; ascii[40] = "down"; ascii[37] = "left"; ascii[39] = "right"; ascii[96] = "Numpad 0"; ascii[97] = "Numpad 1"; ascii[98] = "Numpad 2"; ascii[99] = "Numpad 3"; ascii[100] = "Numpad 4"; ascii[101] = "Numpad 5"; ascii[102] = "Numpad 6"; ascii[103] = "Numpad 7"; ascii[104] = "Numpad 8"; ascii[105] = "Numpad 9"; ascii[111] = "Numpad /"; ascii[106] = "Numpad *"; ascii[109] = "Numpad -"; ascii[107] = "Numpad +"; ascii[110] = "Numpad ."; ascii[45] = "Insert"; ascii[46] = "Delete"; ascii[33] = "Page Up"; ascii[34] = "Page Down"; ascii[35] = "End"; ascii[36] = "Home"; ascii[112] = "F1"; ascii[113] = "F2"; ascii[114] = "F3"; ascii[115] = "F4"; ascii[116] = "F5"; ascii[117] = "F6"; ascii[118] = "F7"; ascii[119] = "F8"; ascii[188] = ","; ascii[190] = "."; ascii[186] = ";"; ascii[222] = "'"; ascii[219] = "["; ascii[221] = "]"; ascii[189] = "-"; ascii[187] = "+"; ascii[220] = "\\"; ascii[191] = "/"; ascii[9] = "TAB"; ascii[8] = "Backspace"; } public function mouseMove(_arg1:MouseEvent){ if (mouseDown != _arg1.buttonDown){ mouseDown = _arg1.buttonDown; mouseReleased = !(_arg1.buttonDown); mousePressed = _arg1.buttonDown; mouseDragX = 0; mouseDragY = 0; }; mouseX = (_arg1.stageX - m_stageMc.x); mouseY = (_arg1.stageY - m_stageMc.y); mouseOffsetX = (mouseX - mouse.x); mouseOffsetY = (mouseY - mouse.y); if (mouseDown){ mouseDragX = (mouseDragX + mouseOffsetX); mouseDragY = (mouseDragY + mouseOffsetY); }; mouse.x = mouseX; mouse.y = mouseY; } public function keyRelease(_arg1:KeyboardEvent){ var _local2:int; keyState[_arg1.keyCode] = -1; _local2 = (bufferSize - 1); while (_local2 > 0) { keyBuffer[_local2] = keyBuffer[(_local2 - 1)]; _local2--; }; keyBuffer[0] = [_arg1.keyCode, 0]; } public function mouseLeave(_arg1:Event){ mouseReleased = mouseDown; mouseDown = false; } public function mousePress(_arg1:MouseEvent){ mousePressed = true; mouseDown = true; mouseDragX = 0; mouseDragY = 0; } public static function getKeyHold(_arg1:int):int{ return (Math.max(0, keyState[_arg1])); } public static function update(){ var _local1:int; var _local2:int; _local1 = 0; while (_local1 < keyArr.length) { if (keyState[keyArr[_local1]] != 0){ var _local3 = keyState; var _local4 = keyArr[_local1]; var _local5 = (_local3[_local4] + 1); _local3[_local4] = _local5; }; _local1++; }; _local2 = 0; while (_local2 < bufferSize) { _local3 = keyBuffer[_local2]; _local4 = 1; _local5 = (_local3[_local4] + 1); _local3[_local4] = _local5; _local2++; }; mouseReleased = false; mousePressed = false; mouseOver = false; } public static function isKeyPressed(_arg1:int):Boolean{ timeSinceLastKey = 0; return ((keyState[_arg1] == 1)); } public static function isKeyDown(_arg1:int):Boolean{ return ((keyState[_arg1] > 0)); } public static function getKeyString(_arg1:uint):String{ return (ascii[_arg1]); } public static function isKeyReleased(_arg1:int):Boolean{ return ((keyState[_arg1] == -1)); } public static function isKeyInBuffer(_arg1:int, _arg2:int, _arg3:int){ return ((((keyBuffer[_arg2][0] == _arg1)) && ((keyBuffer[_arg2][1] <= _arg3)))); } } }//package General
Section 96
//level1 (levelsp2.level1) package levelsp2 { public class level1 extends levels2 { public static var param2 = 1; } }//package levelsp2
Section 97
//level10 (levelsp2.level10) package levelsp2 { public class level10 extends levels2 { public static var param2 = 4; } }//package levelsp2
Section 98
//level11 (levelsp2.level11) package levelsp2 { public class level11 extends levels2 { public static var param2 = 8; } }//package levelsp2
Section 99
//level12 (levelsp2.level12) package levelsp2 { public class level12 extends levels2 { public static var param2 = 2; } }//package levelsp2
Section 100
//level13 (levelsp2.level13) package levelsp2 { public class level13 extends levels2 { public static var param2 = 4; } }//package levelsp2
Section 101
//level14 (levelsp2.level14) package levelsp2 { public class level14 extends levels2 { public static var param2 = 3; } }//package levelsp2
Section 102
//level15 (levelsp2.level15) package levelsp2 { public class level15 extends levels2 { public static var param2 = 3; } }//package levelsp2
Section 103
//level16 (levelsp2.level16) package levelsp2 { public class level16 extends levels2 { public static var param2 = 3; } }//package levelsp2
Section 104
//level17 (levelsp2.level17) package levelsp2 { public class level17 extends levels2 { public static var param2 = 6; } }//package levelsp2
Section 105
//level18 (levelsp2.level18) package levelsp2 { public class level18 extends levels2 { public static var param2 = 4; } }//package levelsp2
Section 106
//level19 (levelsp2.level19) package levelsp2 { public class level19 extends levels2 { public static var param2 = 6; } }//package levelsp2
Section 107
//level2 (levelsp2.level2) package levelsp2 { public class level2 extends levels2 { public static var param2 = 1; } }//package levelsp2
Section 108
//level20 (levelsp2.level20) package levelsp2 { public class level20 extends levels2 { public static var param2 = 2; } }//package levelsp2
Section 109
//level21 (levelsp2.level21) package levelsp2 { public class level21 extends levels2 { public static var param2 = 4; } }//package levelsp2
Section 110
//level22 (levelsp2.level22) package levelsp2 { public class level22 extends levels2 { public static var param2 = 5; } }//package levelsp2
Section 111
//level23 (levelsp2.level23) package levelsp2 { public class level23 extends levels2 { public static var param2 = 4; } }//package levelsp2
Section 112
//level24 (levelsp2.level24) package levelsp2 { public class level24 extends levels2 { public static var param2 = 3; } }//package levelsp2
Section 113
//level25 (levelsp2.level25) package levelsp2 { public class level25 extends levels2 { public static var param2 = 0; } }//package levelsp2
Section 114
//level3 (levelsp2.level3) package levelsp2 { public class level3 extends levels2 { public static var param2 = 1; } }//package levelsp2
Section 115
//level4 (levelsp2.level4) package levelsp2 { public class level4 extends levels2 { public static var param2 = 3; } }//package levelsp2
Section 116
//level5 (levelsp2.level5) package levelsp2 { public class level5 extends levels2 { public static var param2 = 3; } }//package levelsp2
Section 117
//level6 (levelsp2.level6) package levelsp2 { public class level6 extends levels2 { public static var param2 = 3; } }//package levelsp2
Section 118
//level7 (levelsp2.level7) package levelsp2 { public class level7 extends levels2 { public static var param2 = 2; } }//package levelsp2
Section 119
//level8 (levelsp2.level8) package levelsp2 { public class level8 extends levels2 { public static var param2 = 2; } }//package levelsp2
Section 120
//level9 (levelsp2.level9) package levelsp2 { public class level9 extends levels2 { public static var param2 = 3; } }//package levelsp2
Section 121
//adress (adress) package { import flash.display.*; public dynamic class adress extends SimpleButton { } }//package
Section 122
//adress1 (adress1) package { import flash.display.*; public dynamic class adress1 extends SimpleButton { } }//package
Section 123
//ambientgameplaywave (ambientgameplaywave) package { import flash.media.*; public dynamic class ambientgameplaywave extends Sound { } }//package
Section 124
//animCred (animCred) package { import flash.display.*; public dynamic class animCred extends MovieClip { public var menuC:menuCr; public function animCred(){ addFrameScript(0, frame1, 14, frame15); } function frame15(){ stop(); } function frame1(){ stop(); } } }//package
Section 125
//AnotherClass (AnotherClass) package { public class AnotherClass { } }//package
Section 126
//arm (arm) package { import flash.display.*; public dynamic class arm extends MovieClip { public var brarm:ball_1; public function arm(){ addFrameScript(56, frame57); } function frame57(){ stop(); } } }//package
Section 127
//armr (armr) package { import flash.display.*; public dynamic class armr extends SimpleButton { } }//package
Section 128
//ball_1 (ball_1) package { import flash.display.*; public dynamic class ball_1 extends MovieClip { public function ball_1(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 129
//blood1 (blood1) package { import flash.display.*; public dynamic class blood1 extends MovieClip { public function blood1(){ addFrameScript(5, frame6); } function frame6(){ stop(); } } }//package
Section 130
//blood2 (blood2) package { import flash.display.*; public dynamic class blood2 extends MovieClip { public function blood2(){ addFrameScript(5, frame6); } function frame6(){ stop(); } } }//package
Section 131
//blood3 (blood3) package { import flash.display.*; public dynamic class blood3 extends MovieClip { public function blood3(){ addFrameScript(5, frame6); } function frame6(){ stop(); } } }//package
Section 132
//blood4 (blood4) package { import flash.display.*; public dynamic class blood4 extends MovieClip { public function blood4(){ addFrameScript(5, frame6); } function frame6(){ stop(); } } }//package
Section 133
//brainBoom (brainBoom) package { import flash.display.*; public dynamic class brainBoom extends MovieClip { public function brainBoom(){ addFrameScript(12, frame13); } function frame13(){ stop(); } } }//package
Section 134
//brainDav (brainDav) package { import flash.display.*; public dynamic class brainDav extends MovieClip { public function brainDav(){ addFrameScript(6, frame7); } function frame7(){ stop(); } } }//package
Section 135
//btnHelps (btnHelps) package { import flash.display.*; public dynamic class btnHelps extends SimpleButton { } }//package
Section 136
//btnLevels (btnLevels) package { import flash.display.*; public dynamic class btnLevels extends SimpleButton { } }//package
Section 137
//btnmenus (btnmenus) package { import flash.display.*; public dynamic class btnmenus extends SimpleButton { } }//package
Section 138
//btnMusic (btnMusic) package { import flash.display.*; public dynamic class btnMusic extends SimpleButton { } }//package
Section 139
//btnNext (btnNext) package { import flash.display.*; public dynamic class btnNext extends SimpleButton { } }//package
Section 140
//btnReset (btnReset) package { import flash.display.*; public dynamic class btnReset extends SimpleButton { } }//package
Section 141
//btnSelect (btnSelect) package { import flash.display.*; public dynamic class btnSelect extends SimpleButton { } }//package
Section 142
//btnSolutions (btnSolutions) package { import flash.display.*; public dynamic class btnSolutions extends SimpleButton { } }//package
Section 143
//btnsound (btnsound) package { import flash.display.*; public dynamic class btnsound extends SimpleButton { } }//package
Section 144
//btnStart (btnStart) package { import flash.display.*; public dynamic class btnStart extends SimpleButton { } }//package
Section 145
//bulbul (bulbul) package { import flash.display.*; public dynamic class bulbul extends MovieClip { public function bulbul(){ addFrameScript(40, frame41); } function frame41(){ stop(); } } }//package
Section 146
//Button_disabledSkin (Button_disabledSkin) package { import flash.display.*; public dynamic class Button_disabledSkin extends MovieClip { } }//package
Section 147
//Button_downSkin (Button_downSkin) package { import flash.display.*; public dynamic class Button_downSkin extends MovieClip { } }//package
Section 148
//Button_emphasizedSkin (Button_emphasizedSkin) package { import flash.display.*; public dynamic class Button_emphasizedSkin extends MovieClip { } }//package
Section 149
//Button_overSkin (Button_overSkin) package { import flash.display.*; public dynamic class Button_overSkin extends MovieClip { } }//package
Section 150
//Button_selectedDisabledSkin (Button_selectedDisabledSkin) package { import flash.display.*; public dynamic class Button_selectedDisabledSkin extends MovieClip { } }//package
Section 151
//Button_selectedDownSkin (Button_selectedDownSkin) package { import flash.display.*; public dynamic class Button_selectedDownSkin extends MovieClip { } }//package
Section 152
//Button_selectedOverSkin (Button_selectedOverSkin) package { import flash.display.*; public dynamic class Button_selectedOverSkin extends MovieClip { } }//package
Section 153
//Button_selectedUpSkin (Button_selectedUpSkin) package { import flash.display.*; public dynamic class Button_selectedUpSkin extends MovieClip { } }//package
Section 154
//Button_upSkin (Button_upSkin) package { import flash.display.*; public dynamic class Button_upSkin extends MovieClip { } }//package
Section 155
//cepeme (cepeme) package { import flash.display.*; public dynamic class cepeme extends MovieClip { } }//package
Section 156
//derevo (derevo) package { import flash.display.*; public dynamic class derevo extends MovieClip { } }//package
Section 157
//drobs (drobs) package { import flash.display.*; public dynamic class drobs extends MovieClip { public function drobs(){ addFrameScript(7, frame8); } function frame8(){ stop(); } } }//package
Section 158
//drobs2 (drobs2) package { import flash.display.*; public dynamic class drobs2 extends MovieClip { public function drobs2(){ addFrameScript(7, frame8); } function frame8(){ stop(); } } }//package
Section 159
//dzn (dzn) package { import flash.media.*; public dynamic class dzn extends Sound { } }//package
Section 160
//earth (earth) package { import flash.display.*; public dynamic class earth extends MovieClip { public function earth(){ addFrameScript(38, frame39, 53, frame54, 69, frame70); } function frame70(){ gotoAndStop("stat"); } function frame39(){ gotoAndStop("stat"); } function frame54(){ stop(); } } }//package
Section 161
//EmbedClip (EmbedClip) package { import flash.display.*; public class EmbedClip extends MovieClip { public function EmbedClip(){ addFrameScript(0, frame1, 1, frame2); super(); stop(); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package
Section 162
//ExportSecondFrameExample (ExportSecondFrameExample) package { import flash.events.*; import flash.display.*; import flash.text.*; import flash.net.*; public class ExportSecondFrameExample extends MovieClip { public var bbb:TextField; var slSites:Array; public var zzt:TextField; private var knopa:SimpleButton; private var progressBar:MovieClip; private var adBox:MovieClip; public static const ENTRY_FRAME:Number = 3; public static const DOCUMENT_CLASS:String = "Program"; public function ExportSecondFrameExample(){ slSites = ["notdoppler.com"]; super(); stop(); progressBar = new preload(); progressBar.scaleX = 0.7; progressBar.scaleY = 0.7; progressBar.x = 100; progressBar.y = 85; addChild(progressBar); progressBar.gotoAndStop(1); loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler); loaderInfo.addEventListener(Event.COMPLETE, completeHandler); } 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); } private function enterFrameHandler(_arg1:Event):void{ if (currentFrame >= _slot1.ENTRY_FRAME){ removeEventListener(Event.ENTER_FRAME, enterFrameHandler); stop(); gogo(); }; } function gotosite(_arg1:Event){ var _local2:URLRequest; var _local3:*; _local3 = "http://www.notdoppler.com/?ref=allweneedisbrain"; _local2 = new URLRequest(_local3); navigateToURL(_local2, "_blank"); } private function progressHandler(_arg1:ProgressEvent):void{ var _local2:uint; var _local3:uint; var _local4:*; _local2 = _arg1.bytesLoaded; _local3 = _arg1.bytesTotal; progressBar.gotoAndStop(Math.round(((_local2 / _local3) * 100))); _local4 = Math.round(((_local2 / _local3) * 100)); zzt.text = (("" + _local4) + "%"); } 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); } private function main(_arg1:MouseEvent):void{ var _local2:Class; var _local3:*; _local2 = (loaderInfo.applicationDomain.getDefinition(_slot1.DOCUMENT_CLASS) as Class); _local3 = (new (_local2) as Sprite); knopa.removeEventListener(MouseEvent.CLICK, main); if (adBox != null){ removeChild(adBox); }; removeChild(knopa); addChild(_local3); } function gogo(){ zzt.visible = false; bbb.visible = false; knopa = new prPlay(); knopa.x = 310; knopa.y = (zzt.y + (zzt.height / 4)); removeChild(progressBar); addChild(knopa); knopa.addEventListener(MouseEvent.CLICK, main); } private function completeHandler(_arg1:Event):void{ play(); addEventListener(Event.ENTER_FRAME, enterFrameHandler); } } }//package
Section 163
//Eye (Eye) package { import flash.display.*; import flash.events.*; public class Eye extends MovieClip { public function Eye(){ addEventListener(Event.ENTER_FRAME, lookToMouse); } private function lookToMouse(_arg1:Event):void{ var _local2:Number; rotation = 0; _local2 = Math.atan2(mouseY, mouseX); rotation = ((_local2 * 180) / Math.PI); } } }//package
Section 164
//Eye1 (Eye1) package { public class Eye1 extends Eye { } }//package
Section 165
//Eye2 (Eye2) package { public class Eye2 extends Eye { } }//package
Section 166
//Eye3 (Eye3) package { public class Eye3 extends Eye { } }//package
Section 167
//Eye4 (Eye4) package { public class Eye4 extends Eye { } }//package
Section 168
//Eye5 (Eye5) package { public class Eye5 extends Eye { } }//package
Section 169
//f090 (f090) package { import flash.display.*; public dynamic class f090 extends MovieClip { } }//package
Section 170
//f65654646 (f65654646) package { import flash.display.*; public dynamic class f65654646 extends MovieClip { } }//package
Section 171
//focusRectSkin (focusRectSkin) package { import flash.display.*; public dynamic class focusRectSkin extends MovieClip { } }//package
Section 172
//fon1 (fon1) package { import flash.display.*; public dynamic class fon1 extends MovieClip { } }//package
Section 173
//fon2s (fon2s) package { import flash.display.*; public dynamic class fon2s extends BitmapData { public function fon2s(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 174
//fon5s (fon5s) package { import flash.display.*; public dynamic class fon5s extends BitmapData { public function fon5s(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 175
//fon6s (fon6s) package { import flash.display.*; public dynamic class fon6s extends BitmapData { public function fon6s(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 176
//forZona (forZona) package { import flash.display.*; public dynamic class forZona extends MovieClip { public function forZona(){ addFrameScript(0, frame1); } function frame1(){ this.visible = false; } } }//package
Section 177
//gamebloodaftershoot (gamebloodaftershoot) package { import flash.media.*; public dynamic class gamebloodaftershoot extends Sound { } }//package
Section 178
//gamebulkibig (gamebulkibig) package { import flash.media.*; public dynamic class gamebulkibig extends Sound { } }//package
Section 179
//gamebulkibrrrrrr (gamebulkibrrrrrr) package { import flash.media.*; public dynamic class gamebulkibrrrrrr extends Sound { } }//package
Section 180
//gamedavkamozga (gamedavkamozga) package { import flash.media.*; public dynamic class gamedavkamozga extends Sound { } }//package
Section 181
//gamedavkarazletanie (gamedavkarazletanie) package { import flash.media.*; public dynamic class gamedavkarazletanie extends Sound { } }//package
Section 182
//gamedavkasharom (gamedavkasharom) package { import flash.media.*; public dynamic class gamedavkasharom extends Sound { } }//package
Section 183
//gamedavkasharom1 (gamedavkasharom1) package { import flash.media.*; public dynamic class gamedavkasharom1 extends Sound { } }//package
Section 184
//gamefanfary (gamefanfary) package { import flash.media.*; public dynamic class gamefanfary extends Sound { } }//package
Section 185
//gamepoedanievmogile (gamepoedanievmogile) package { import flash.media.*; public dynamic class gamepoedanievmogile extends Sound { } }//package
Section 186
//gameshoot (gameshoot) package { import flash.media.*; public dynamic class gameshoot extends Sound { } }//package
Section 187
//gamevylazizmogily1 (gamevylazizmogily1) package { import flash.media.*; public dynamic class gamevylazizmogily1 extends Sound { } }//package
Section 188
//gamevylazizmogily2 (gamevylazizmogily2) package { import flash.media.*; public dynamic class gamevylazizmogily2 extends Sound { } }//package
Section 189
//gamevylazizmogily3 (gamevylazizmogily3) package { import flash.media.*; public dynamic class gamevylazizmogily3 extends Sound { } }//package
Section 190
//gamevylazizmogily4 (gamevylazizmogily4) package { import flash.media.*; public dynamic class gamevylazizmogily4 extends Sound { } }//package
Section 191
//gamevzryv (gamevzryv) package { import flash.media.*; public dynamic class gamevzryv extends Sound { } }//package
Section 192
//gamewelldone (gamewelldone) package { import flash.media.*; public dynamic class gamewelldone extends Sound { } }//package
Section 193
//gamezombieating1 (gamezombieating1) package { import flash.media.*; public dynamic class gamezombieating1 extends Sound { } }//package
Section 194
//gamezombieating2 (gamezombieating2) package { import flash.media.*; public dynamic class gamezombieating2 extends Sound { } }//package
Section 195
//gvozd (gvozd) package { import flash.display.*; public dynamic class gvozd extends MovieClip { } }//package
Section 196
//helps (helps) package { import flash.display.*; public dynamic class helps extends MovieClip { public var helping:podsk; } }//package
Section 197
//highscoreloader (highscoreloader) package { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.ui.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.geom.*; import flash.printing.*; import flash.xml.*; public dynamic class highscoreloader extends MovieClip { public var connected:Boolean; public var readytoSend:Boolean; public var loader; public var AS3_lc:LocalConnection; public var viewURL:String; public var connectionID:Number; public var score:Number; public var view:Number; public var game:String; public function highscoreloader(){ addFrameScript(0, frame1, 1, frame2); } public function as2Ready():void{ trace("AS2 Ready"); readytoSend = true; AS3_lc.send(("_AS3toAS2_" + connectionID), "communicateData", game, score, view, viewURL, ((("fl3m_uP_Ebri8zi8#" + game) + score) + "2I2RI3tH6ahl?")); } function frame1(){ stop(); this.visible = false; } function frame2(){ Security.allowInsecureDomain("*"); Security.allowDomain("*"); readytoSend = false; connected = false; connectionID = 1; loader = new Loader(); loader.load(new URLRequest("http://www.notdoppler.com/highscores/highscores.swf")); loader.x = -40; loader.y = -20; addChild(loader); AS3_lc = new LocalConnection(); AS3_lc.allowDomain("*"); AS3_lc.allowInsecureDomain("*"); while (((!(connected)) && ((connectionID < 5)))) { try { AS3_lc.connect(("_AS2toAS3_" + connectionID)); connected = true; } catch(error:ArgumentError) { trace((("AS3: Connection No:" + connectionID) + " is already in use!")); connectionID = (connectionID + 1); }; }; AS3_lc.client = this; } public function resendData():void{ if (readytoSend){ as2Ready(); }; } public function loadHighscores(_arg1, _arg2, _arg3, _arg4){ game = _arg1; score = _arg2; view = _arg3; viewURL = _arg4; this.visible = true; gotoAndStop(2); resendData(); } } }//package
Section 198
//init2 (init2) package { import flash.display.*; import flash.events.*; import flash.media.*; import flash.text.*; import flash.net.*; public dynamic class init2 extends MovieClip { var slSites:Array; var initPic:MovieClip; var sl;// = true var mcMain; var intro:MovieClip; public var Parent; public static var tru = false; public function init2():void{ initPic = new menuInits(); sl = true; slSites = ["vladgames.com", "notdoppler.com"]; super(); initPic.x = 320; initPic.y = 240; addChild(initPic); addEventListener(Event.ENTER_FRAME, ini); } function ini(_arg1:Event){ if (this.parent != null){ removeEventListener(Event.ENTER_FRAME, ini); go(); }; } function gotosite(_arg1:Event){ var _local2:URLRequest; var _local3:*; _local3 = "http://www.notdoppler.com/?ref=allweneedisbrain"; _local2 = new URLRequest(_local3); navigateToURL(_local2, "_blank"); } function gotosite1(_arg1:Event){ var _local2:*; var _local3:URLRequest; _local2 = "mailto:vladg1979@gmail.com"; _local3 = new URLRequest(_local2); navigateToURL(_local3, "_blank"); } function gotohost(_arg1:Event){ var _local2:URLRequest; var _local3:*; _local3 = "http://www.notdoppler.com/webmasters.php?ref=allweneedisbrain"; _local2 = new URLRequest(_local3); navigateToURL(_local2, "_blank"); } function gogo(_arg1:Event){ if (intro.currentFrame == 186){ intro.removeEventListener(MouseEvent.CLICK, gotosite); intro.removeEventListener(Event.ENTER_FRAME, gogo); removeChild(intro); mcMain = new Main2(); addChild(mcMain); }; } function go(){ var _local1:String; Parent = initPic; Parent.no.visible = false; Parent.webm.visible = false; if (sl){ _local1 = stage.loaderInfo.url; if ((((_local1.indexOf("vladgames.com") > -1)) || ((_local1.indexOf("armorgames.com") > -1)))){ removeChild(initPic); intro = new notDoppler_intro(); addChild(intro); intro.addEventListener(MouseEvent.CLICK, gotosite); intro.addEventListener(Event.ENTER_FRAME, gogo); } else { Parent.no.y = 0; Parent.webm.y = -18; Parent.webm1.y = 18; Parent.no.visible = true; Parent.webm.visible = true; Parent.webm1.visible = true; Parent.webm.addEventListener(MouseEvent.CLICK, gotosite1); Parent.webm1.addEventListener(MouseEvent.CLICK, gotohost); stage.frameRate = 0; gotoAndStop(0); }; } else { removeChild(initPic); intro = new notDoppler_intro(); addChild(intro); intro.addEventListener(MouseEvent.CLICK, gotosite); intro.addEventListener(Event.ENTER_FRAME, gogo); }; } } }//package
Section 199
//krest (krest) package { import flash.display.*; public dynamic class krest extends MovieClip { public function krest(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package
Section 200
//l5454535 (l5454535) package { import flash.display.*; public dynamic class l5454535 extends MovieClip { } }//package
Section 201
//l565 (l565) package { import flash.display.*; public dynamic class l565 extends MovieClip { } }//package
Section 202
//levels2 (levels2) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; import Box2D.Dynamics.*; import flash.events.*; import Box2D.Collision.*; import Box2D.Common.*; import General.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import caurina.transitions.*; public dynamic class levels2 extends MovieClip { public var m_physScale:Number;// = 30 var muravSpeed:int;// = 40 var rA:Boolean;// = false var scc:TextField; var muravArray:Array; var rotatSpeed;// = 57.2957795130823 var otstup:int;// = 0 var brainX:Number;// = 0 var brc:TextField; var numberNIn; var bsc:SoundChannel; var nIn:Array; var bst:SoundTransform; public var m_iterations:int;// = 10 var krestikM:MovieClip; var sc:SoundChannel; var zsk:int;// = 0 var krestikS:MovieClip; var stat:SharedObject; var podskaz:MovieClip;// = null var st:SoundTransform; var OtkrNIn:Array; var znak:int;// = 1 var mina:MovieClip; var tt; var nInX:Number;// = 0 var sndStart:int;// = 0 var nInY:Number;// = 0 var muravDie:int;// = 0 var s_beep:Sound; var btHelp:SimpleButton; var vony:Array; var weld:MovieClip; public var m_timeStep:Number;// = 0.0333333333333333 var pausePosition1:int;// = 0 public var m_sprite:Sprite; var hY:Number;// = 1000 var blzona:MovieClip; var hX:Number;// = 1000 var brainArray:Array; var bulk:MovieClip; var water:MovieClip; var btnHelper:SimpleButton; var earArr:Array; var dobavMurav:int;// = 0 var numberBrain; var pausePosition:int;// = 0 var zvgrom:Number;// = 0.5 public var m_world:b2World; var iii:int;// = 0 var zonna:Array; private var mousePVec:b2Vec2; var naprSokr:Number; var levelScore:int;// = 100 var minIndexZona:int;// = 2000 public var m_input:Input; var uzeEstBrain:int;// = 0 var target:MovieClip; var namenu:Boolean;// = false var brains1:MovieClip;// = null var eaKas; var ekonom:MovieClip; var kasZona1:Boolean;// = false var rastSokr:Boolean; var manBrain:Array; var vidimostX:int;// = 200 var vidimostY:int;// = 25 var kasaet:MovieClip; var zapret:MovieClip;// = null var stoit:int;// = 0 var helper:MovieClip; var tck:MovieClip; var head:b2Body;// = null var newBrainX:Number;// = 0 var blad:int;// = 1 var newBrainY:Number;// = 0 public var m_mouseJoint:b2MouseJoint; public static var mouseYWorld:Number; public static var rsts:SimpleButton; public static var mSnd:SimpleButton; public static var mMus:SimpleButton; public static var mouseYWorldPhys:Number; public static var mouseXWorldPhys:Number; public static var rstdop:SimpleButton; public static var rstm:SimpleButton; public static var lvls:SimpleButton; public static var rstl:SimpleButton; public static var mouseXWorld:Number; public function levels2(){ st = new SoundTransform(); bst = new SoundTransform(); zvgrom = 0.5; pausePosition = 0; pausePosition1 = 0; stat = SharedObject.getLocal("brainzombie"); m_physScale = 30; m_iterations = 10; m_timeStep = (1 / 30); levelScore = 100; iii = 0; rotatSpeed = (180 / Math.PI); head = null; muravSpeed = 40; znak = 1; dobavMurav = 0; brainArray = []; brains1 = null; podskaz = null; zapret = null; nIn = []; OtkrNIn = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; earArr = []; muravArray = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; manBrain = []; muravDie = 0; zsk = 0; kasZona1 = false; uzeEstBrain = 0; nInX = 0; nInY = 0; brainX = 0; newBrainX = 0; newBrainY = 0; vidimostX = 200; vidimostY = 25; zonna = []; minIndexZona = 2000; vony = []; stoit = 0; blad = 1; namenu = false; hX = 1000; hY = 1000; sndStart = 0; otstup = 0; rA = false; super(); addEventListener(Event.ENTER_FRAME, ini); } function delListener(){ if (helper != null){ btnHelper.removeEventListener(MouseEvent.MOUSE_DOWN, startH); }; mMus.removeEventListener(MouseEvent.CLICK, menMus); mSnd.removeEventListener(MouseEvent.CLICK, menSnd); rstl.removeEventListener(MouseEvent.CLICK, resetAl); rsts.removeEventListener(MouseEvent.CLICK, gotosolution); if (Main2.levMenu.rstdop1.visible == true){ rstdop.removeEventListener(MouseEvent.CLICK, gotoDopler); }; removeEventListener(Event.ENTER_FRAME, Update); stage.removeEventListener(KeyboardEvent.KEY_DOWN, resetR); stage.removeEventListener(MouseEvent.MOUSE_DOWN, gameKlik); rstm.removeEventListener(MouseEvent.CLICK, menuAl); lvls.removeEventListener(MouseEvent.CLICK, levAl); scc.text = "100"; brc.text = " "; } 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:*; var _local14:*; var _local15:*; tt = numChildren; _local5 = []; _local6 = 0; while (_local6 < tt) { _local8 = getChildAt(_local6); if ((((((((((((((((((((((_local8 is ball_1)) || ((_local8 is theBall)))) || ((_local8 is plankDynam)))) || ((_local8 is plankDynamYa)))) || ((_local8 is plankDynamH)))) || ((_local8 is plank)))) || ((_local8 is plankReturn)))) || ((_local8 is plank_2)))) || ((_local8 is plankPad)))) || ((_local8 is plank_krepl)))) || ((_local8 is fon1)))){ _local5.push(_local8); }; if ((_local8 is nIns)){ _local8.gotoAndStop(1); nIn.push(_local8); }; if ((((_local8 is zona)) || ((_local8 is zona1)))){ zonna.push(_local8); }; if ((((((((_local8 is plitka)) || ((_local8 is l5454535)))) || ((_local8 is l565)))) || ((_local8 is derevo)))){ _local8.mouseEnabled = false; _local8.mouseChildren = false; }; if ((_local8 is earth)){ earArr.push(_local8); }; if ((_local8 is voda)){ water = _local8; }; if ((_local8 is minas)){ mina = _local8; }; _local6++; }; oprIndexZona(); _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)){ _local9.gotoAndStop(1); _local3 = new b2PolygonDef(); _local2.position.Set((_local9.x / m_physScale), (_local9.y / m_physScale)); _local3.vertexCount = 16; _local3.vertices[0] = new b2Vec2((((-(_local9.width) / 2) + (0.2 * _local9.width)) / m_physScale), (((_local9.width / 2) * Math.sin(Math.acos((((-(_local9.width) / 2) + (0.2 * _local9.width)) / (_local9.width / 2))))) / m_physScale)); _local3.vertices[1] = new b2Vec2((((-(_local9.width) / 2) + (0.1 * _local9.width)) / m_physScale), (((_local9.width / 2) * Math.sin(Math.acos((((-(_local9.width) / 2) + (0.1 * _local9.width)) / (_local9.width / 2))))) / m_physScale)); _local3.vertices[2] = new b2Vec2((((-(_local9.width) / 2) + (0.05 * _local9.width)) / m_physScale), (((_local9.width / 2) * Math.sin(Math.acos((((-(_local9.width) / 2) + (0.05 * _local9.width)) / (_local9.width / 2))))) / m_physScale)); _local10 = 3; _local11 = (-(_local9.width) / 2); while (_local11 <= (_local9.width / 2)) { _local3.vertices[_local10] = new b2Vec2((_local11 / m_physScale), (-(((_local9.width / 2) * Math.sin(Math.acos((_local11 / (_local9.width / 2)))))) / m_physScale)); _local10++; _local11 = (_local11 + (0.1 * _local9.width)); }; _local3.vertices[13] = new b2Vec2((((_local9.width / 2) - (0.05 * _local9.width)) / m_physScale), (((_local9.width / 2) * Math.sin(Math.acos((((_local9.width / 2) - (0.05 * _local9.width)) / (_local9.width / 2))))) / m_physScale)); _local3.vertices[14] = new b2Vec2((((_local9.width / 2) - (0.1 * _local9.width)) / m_physScale), (((_local9.width / 2) * Math.sin(Math.acos((((_local9.width / 2) - (0.1 * _local9.width)) / (_local9.width / 2))))) / m_physScale)); _local3.vertices[15] = new b2Vec2((((_local9.width / 2) - (0.2 * _local9.width)) / m_physScale), (((_local9.width / 2) * Math.sin(Math.acos((((_local9.width / 2) - (0.2 * _local9.width)) / (_local9.width / 2))))) / m_physScale)); _local3.density = 0.3; _local3.friction = 0.3; _local3.restitution = 0; _local2.userData = _local9; _local1 = m_world.CreateDynamicBody(_local2); _local1.moveF = true; _local1.CreateShape(_local3); _local1.SetMassFromShapes(); _local1.NameB = "ball"; addChild(_local2.userData); brainArray.push(_local2.userData); _local2.userData.mouseEnabled = false; _local2.userData.mouseChildren = false; }; if ((_local9 is plank_2)){ _local3 = new b2PolygonDef(); _local12 = _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) / m_physScale)); _local3.vertices[0] = new b2Vec2(((_local9.width / m_physScale) / 2), 0); _local3.vertices[1] = new b2Vec2(((-(_local9.width) / m_physScale) / 2), 0); _local2.angle = (_local12 / (180 / Math.PI)); _local3.density = 20; _local3.friction = 0.3; _local3.restitution = 0.4; _local2.userData = _local9; _local1 = m_world.CreateStaticBody(_local2); _local1.NameB = "chel"; _local1.CreateShape(_local3); _local1.SetMassFromShapes(); _local9.rotation = _local12; addChild(_local2.userData); }; if ((_local9 is theBall)){ _local4 = new b2CircleDef(); _local4.radius = (_local9.width / (m_physScale * 2)); _local4.density = 0.5; _local4.friction = 0.3; _local4.restitution = 0; _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 = "theball"; _local1.SetMassFromShapes(); if (water != null){ addChildAt(_local2.userData, getChildIndex(water)); } else { addChildAt(_local2.userData, (minIndexZona - 1)); }; _local2.userData.mouseEnabled = false; _local2.userData.mouseChildren = false; }; if ((((_local9 is plankDynam)) || ((_local9 is plankDynamYa)))){ _local3 = new b2PolygonDef(); _local13 = _local9.rotation; _local9.rotation = 0; _local3.SetAsBox((_local9.width / (m_physScale * 2)), (_local9.height / (m_physScale * 2))); _local2.angle = (_local13 / (180 / Math.PI)); _local3.density = 0.3; _local3.friction = 0.2; _local3.restitution = 0; _local2.userData = _local9; _local1 = m_world.CreateDynamicBody(_local2); _local1.moveF = true; _local1.NameB = "dynoPlank"; _local1.CreateShape(_local3); _local1.SetMassFromShapes(); _local9.rotation = _local13; if (water != null){ addChildAt(_local2.userData, getChildIndex(water)); } else { addChildAt(_local2.userData, (minIndexZona - 1)); }; _local2.userData.mouseEnabled = false; _local2.userData.mouseChildren = false; }; if ((_local9 is plankDynamH)){ _local3 = new b2PolygonDef(); _local14 = _local9.rotation; _local9.rotation = 0; _local3.SetAsBox((_local9.width / (m_physScale * 2)), (_local9.height / (m_physScale * 2))); _local2.angle = (_local14 / (180 / Math.PI)); _local3.density = 1; _local3.friction = 0.2; _local3.restitution = 0; _local2.userData = _local9; _local1 = m_world.CreateDynamicBody(_local2); _local1.moveF = true; _local1.NameB = "dynoPlankH"; _local1.CreateShape(_local3); _local1.SetMassFromShapes(); _local9.rotation = _local14; if (water != null){ addChildAt(_local2.userData, getChildIndex(water)); } else { addChildAt(_local2.userData, (minIndexZona - 1)); }; _local2.userData.mouseEnabled = false; _local2.userData.mouseChildren = false; }; 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.NameB = "return"; _local1.CreateShape(_local3); _local1.SetMassFromShapes(); addChild(_local2.userData); }; if ((_local9 is plank)){ _local3 = new b2PolygonDef(); _local15 = _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 = (_local15 / (180 / Math.PI)); _local3.density = 0.1; _local3.friction = 0.3; _local3.restitution = 0; _local1 = m_world.CreateStaticBody(_local2); _local1.NameB = "prosto"; _local1.CreateShape(_local3); _local1.SetMassFromShapes(); _local9.rotation = _local15; addChild(_local2.userData); }; 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(); addChild(_local2.userData); }; _local7++; }; } function vhod(){ zsk = 2; if (brains1 != null){ removeChild(brains1); brains1 = null; removeChild(podskaz); podskaz = null; }; if ((((mouseY < 199)) && ((uzeEstBrain < Main2.kolvoBrain)))){ zapret.visible = true; tck.visible = false; kasZona1 = true; }; } function addNewMur(){ var _local1:b2BodyDef; var _local2:b2CircleDef; var _local3:*; var _local4:Class; var _local5:*; var _local6:Class; var _local7:*; _local2 = new b2CircleDef(); _local1 = new b2BodyDef(); if ((nInY - nInX) <= -250){ _local3 = 4; }; if (((((nInY - nInX) > -250)) && (((nInY - nInX) <= 0)))){ _local3 = 2; }; if (((((nInY - nInX) > 0)) && (((nInY - nInX) <= 250)))){ _local3 = 1; }; if ((nInY - nInX) > 250){ _local3 = 3; }; if ((((Main2.lvl == 13)) && ((nInY > 100)))){ _local3 = 2; }; if ((((Main2.lvl == 13)) && ((nInY < -50)))){ _local3 = 4; }; _local4 = (getDefinitionByName(("muravei" + _local3)) as Class); _local1.userData = new (_local4); _local1.userData.x = nInX; _local1.userData.y = (nInY - 15); _local1.position.Set((nInX / m_physScale), ((nInY - 15) / m_physScale)); _local2.radius = (35 / (m_physScale * 2)); _local2.density = 1; _local2.friction = 1; _local2.restitution = 0; head = m_world.CreateDynamicBody(_local1); head.moveF = true; head.CreateShape(_local2); head.SetMassFromShapes(); _local5 = 0; while (_local5 < earArr.length) { if ((((Math.abs((earArr[_local5].x - nInX)) < 5)) && ((Math.abs((earArr[_local5].y - nInY)) < 20)))){ earArr[_local5].gotoAndPlay("razr"); eaKas = earArr[_local5]; break; }; _local5++; }; _local6 = (getDefinitionByName(("gamevylazizmogily" + _local3)) as Class); s_beep = new (_local6); zvgrom = 0.5; sndStart = 0; oiZvuk(); addChildAt(_local1.userData, getChildIndex(eaKas)); _local1.userData.mouseEnabled = false; _local1.userData.mouseChildren = false; dobavMurav++; _local7 = 0; while (_local7 < muravArray.length) { if (muravArray[_local7] == 0){ muravArray[_local7] = _local1.userData; return; }; _local7++; }; } function kasaetZona():Boolean{ var _local1:*; var _local2:*; _local1 = 0; _local2 = 0; while (_local2 < zonna.length) { if (((zonna[_local2].hitTestPoint(stage.mouseX, stage.mouseY, true)) && ((zonna[_local2] is zona)))){ _local1++; }; _local2++; }; if (_local1 > 0){ return (true); }; return (false); } function menMus(_arg1:MouseEvent){ if (krestikM != null){ Main2.st.volume = 0.7; Main2.levMenu.removeChild(krestikM); krestikM = null; Main2.musAlpha = 1; stat.data.stt = 1; } else { krestikM = new krest(); krestikM.scaleX = 0.6; krestikM.scaleY = 0.6; krestikM.x = mMus.x; krestikM.y = mMus.y; Main2.levMenu.addChildAt(krestikM, 19); krestikM.mouseEnabled = false; krestikM.mouseChildren = false; Main2.st.volume = 0; Main2.musAlpha = 0; stat.data.stt = 0; }; if (Main2.sndChannel != null){ Main2.sndChannel.stop(); }; Main2.sndChannel = Main2.s1_theme.play(0, 10000, Main2.st); } function defScoresField(){ var _local1:*; var _local2:*; var _local3:*; _local1 = Main2.levMenu.numChildren; _local2 = 0; while (_local2 < _local1) { _local3 = Main2.levMenu.getChildAt(_local2); if ((_local3 is TextField)){ if (_local3.text.indexOf("100") > -1){ _local3.htmlText = ""; scc = _local3; }; if (_local3.text.indexOf(" ") > -1){ _local3.htmlText = ""; brc = _local3; }; }; _local2++; }; scor(); brainScor(); } function startH(_arg1:MouseEvent):void{ if ((btnHelper is btnNext)){ btnHelper.removeEventListener(MouseEvent.MOUSE_DOWN, startH); Main2.levMenu.removeChild(btnHelper); btnHelper = new btnStart(); btnHelper.x = -10; btnHelper.y = 110; Main2.levMenu.addChildAt(btnHelper, 3); btnHelper.addEventListener(MouseEvent.MOUSE_DOWN, startH); helper.helping.gotoAndStop(6); } else { btnHelper.removeEventListener(MouseEvent.MOUSE_DOWN, startH); Main2.resethelp = true; Main2.levMenu.removeChild(btnHelper); if (helper.helping.zombos1 != null){ helper.helping.zombos1.gotoAndStop(1); }; if (helper.helping.zombos2 != null){ helper.helping.zombos2.gotoAndStop(1); }; if (helper.helping.zombos3 != null){ helper.helping.zombos3.gotoAndStop(1); }; if (helper.helping.zombos4 != null){ helper.helping.zombos4.gotoAndStop(1); }; if (helper.helping.zombos5 != null){ helper.helping.zombos5.gotoAndStop(1); }; if (helper.helping.zombos6 != null){ helper.helping.zombos6.gotoAndStop(1); }; while (helper.helping.numChildren) { helper.helping.removeChildAt(0); }; while (helper.numChildren) { helper.removeChildAt(0); }; Main2.levMenu.removeChild(helper); helper = null; tck.visible = false; begPoZonam(); hX = mouseX; hY = mouseY; stage.addEventListener(MouseEvent.MOUSE_DOWN, gameKlik); }; } function addBall(){ var _local1:b2BodyDef; var _local2:*; var _local3:*; var _local4:*; hX = 1000; hY = 1100; _local2 = new b2PolygonDef(); _local1 = new b2BodyDef(); _local1.userData = new ball_1(); _local1.userData.x = mouseX; _local1.userData.y = mouseY; _local1.position.Set((mouseX / m_physScale), (mouseY / m_physScale)); _local2.vertexCount = 16; _local2.vertices[0] = new b2Vec2((((-(_local1.userData.width) / 2) + (0.2 * _local1.userData.width)) / m_physScale), (((_local1.userData.width / 2) * Math.sin(Math.acos((((-(_local1.userData.width) / 2) + (0.2 * _local1.userData.width)) / (_local1.userData.width / 2))))) / m_physScale)); _local2.vertices[1] = new b2Vec2((((-(_local1.userData.width) / 2) + (0.1 * _local1.userData.width)) / m_physScale), (((_local1.userData.width / 2) * Math.sin(Math.acos((((-(_local1.userData.width) / 2) + (0.1 * _local1.userData.width)) / (_local1.userData.width / 2))))) / m_physScale)); _local2.vertices[2] = new b2Vec2((((-(_local1.userData.width) / 2) + (0.05 * _local1.userData.width)) / m_physScale), (((_local1.userData.width / 2) * Math.sin(Math.acos((((-(_local1.userData.width) / 2) + (0.05 * _local1.userData.width)) / (_local1.userData.width / 2))))) / m_physScale)); _local3 = 3; _local4 = (-(_local1.userData.width) / 2); while (_local4 <= (_local1.userData.width / 2)) { _local2.vertices[_local3] = new b2Vec2((_local4 / m_physScale), (-(((_local1.userData.width / 2) * Math.sin(Math.acos((_local4 / (_local1.userData.width / 2)))))) / m_physScale)); _local3++; _local4 = (_local4 + (0.1 * _local1.userData.width)); }; _local2.vertices[13] = new b2Vec2((((_local1.userData.width / 2) - (0.05 * _local1.userData.width)) / m_physScale), (((_local1.userData.width / 2) * Math.sin(Math.acos((((_local1.userData.width / 2) - (0.05 * _local1.userData.width)) / (_local1.userData.width / 2))))) / m_physScale)); _local2.vertices[14] = new b2Vec2((((_local1.userData.width / 2) - (0.1 * _local1.userData.width)) / m_physScale), (((_local1.userData.width / 2) * Math.sin(Math.acos((((_local1.userData.width / 2) - (0.1 * _local1.userData.width)) / (_local1.userData.width / 2))))) / m_physScale)); _local2.vertices[15] = new b2Vec2((((_local1.userData.width / 2) - (0.2 * _local1.userData.width)) / m_physScale), (((_local1.userData.width / 2) * Math.sin(Math.acos((((_local1.userData.width / 2) - (0.2 * _local1.userData.width)) / (_local1.userData.width / 2))))) / m_physScale)); _local2.density = 0.3; _local2.friction = 0.3; _local2.restitution = 0; head = m_world.CreateDynamicBody(_local1); head.moveF = true; head.CreateShape(_local2); head.SetMassFromShapes(); head.NameB = "ball"; s_beep = new pyk1(); zvgrom = 0.5; sndStart = 0; oiZvuk(); if (water != null){ addChildAt(_local1.userData, getChildIndex(water)); } else { addChildAt(_local1.userData, minIndexZona); }; brainArray.push(_local1.userData); uzeEstBrain++; brainScor(); _local1.userData.mouseEnabled = false; _local1.userData.mouseChildren = false; } function scor(){ var _local1:*; _local1 = levelScore; if (_local1 < 0){ _local1 = 0; levelScore = 0; }; scc.text = ("" + _local1); } function vyhod(){ if (zapret.visible == true){ zapret.visible = false; tck.visible = true; kasZona1 = false; brainNew(); }; } function brainScor(){ var _local1:*; _local1 = (Main2.kolvoBrain - uzeEstBrain); if (_local1 > -1){ brc.text = ("" + _local1); }; } function helpNew(){ var _local1:*; target.visible = false; zapret.visible = false; tck.visible = true; btnHelper = new btnStart(); helper = new helps(); if (Main2.lvl == 1){ btnHelper = new btnNext(); }; btnHelper.x = -10; btnHelper.y = 110; _local1 = ("h" + Main2.lvl); Main2.levMenu.addChildAt(helper, 2); Main2.levMenu.addChildAt(btnHelper, 4); btnHelper.addEventListener(MouseEvent.MOUSE_DOWN, startH); helper.helping.gotoAndStop(_local1); } function brainNew(){ if ((((((mouseY < 199)) && ((uzeEstBrain < Main2.kolvoBrain)))) && ((helper == null)))){ brains1 = new ball_1(); brains1.x = mouseX; brains1.y = mouseY; addChildAt(brains1, getChildIndex(zapret)); podskaz = new podskazka(); podskaz.x = mouseX; podskaz.y = (mouseY - 9); addChildAt(podskaz, getChildIndex(brains1)); brains1.mouseEnabled = false; brains1.mouseChildren = false; podskaz.mouseEnabled = false; podskaz.mouseChildren = false; }; } function go(){ var _local1:b2AABB; var _local2:b2Vec2; var _local3:Boolean; var _local4:*; m_sprite = Main2.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); if (m_sprite.stage != null){ m_input = new Input(m_sprite); }; tck = (Main2.levMenu.getChildByName("tck1") as MovieClip); rstdop = (Main2.levMenu.getChildByName("rstdop1") as SimpleButton); rsts = (Main2.levMenu.getChildByName("rsts1") as SimpleButton); rstl = (Main2.levMenu.getChildByName("rstl1") as SimpleButton); rstm = (Main2.levMenu.getChildByName("rstm1") as SimpleButton); lvls = (Main2.levMenu.getChildByName("lvls1") as SimpleButton); mMus = (Main2.levMenu.getChildByName("mMus1") as SimpleButton); mSnd = (Main2.levMenu.getChildByName("mSnd1") as SimpleButton); if ((((Main2.musAlpha == 0)) && ((krestikM == null)))){ krestikM = new krest(); krestikM.scaleX = 0.6; krestikM.scaleY = 0.6; krestikM.x = mMus.x; krestikM.y = mMus.y; Main2.levMenu.addChildAt(krestikM, 19); krestikM.mouseEnabled = false; krestikM.mouseChildren = false; }; if ((((Main2.snd == false)) && ((krestikS == null)))){ krestikS = new krest(); krestikS.scaleX = 0.6; krestikS.scaleY = 0.6; krestikS.x = mSnd.x; krestikS.y = mSnd.y; Main2.levMenu.addChildAt(krestikS, 19); krestikS.mouseEnabled = false; krestikS.mouseChildren = false; }; objToPhys(); defScoresField(); target = new movieTarget(); target.visible = false; addChild(target); zapret = new zaprets(); zapret.x = 700; zapret.visible = false; addChild(zapret); if ((((((((((((Main2.lvl < 4)) || ((Main2.lvl == 6)))) || ((Main2.lvl == 8)))) && ((stat.data.wonn == false)))) && ((stat.data.array[(Main2.lvl - 1)] == 0)))) && ((Main2.resethelp == false)))){ helpNew(); }; if (Main2.levMenu.rstdop1.visible == false){ otstup = 130; }; if (helper == null){ _local4 = 0; while (_local4 < zonna.length) { if (((zonna[_local4].hitTestPoint(stage.mouseX, stage.mouseY, true)) && ((zonna[_local4] is zona)))){ zsk = 1; target.visible = true; tck.visible = false; break; }; if (((((zonna[_local4].hitTestPoint(stage.mouseX, stage.mouseY, true)) && ((zonna[_local4] is zona1)))) && ((helper == null)))){ zsk = 2; if (uzeEstBrain != Main2.kolvoBrain){ zapret.visible = true; tck.visible = false; } else { zapret.visible = false; tck.visible = true; }; break; }; _local4++; }; }; mousePVec = new b2Vec2(); target.mouseEnabled = false; target.mouseChildren = false; zapret.mouseEnabled = false; zapret.mouseChildren = false; tck.mouseEnabled = false; tck.mouseChildren = false; if (zsk == 0){ brainNew(); }; if (menu2.stT.volume != 0){ menu2.stT.volume = 0; menu2.scT.stop(); Main2.st.volume = 0.7; Main2.sndChannel = Main2.s1_theme.play(0, 1000, Main2.st); Main2.st2.volume = 0.7; Main2.sndChannel2 = Main2.s2_theme.play(0, 1000, Main2.st2); }; addEventListener(Event.ENTER_FRAME, Update); stage.addEventListener(KeyboardEvent.KEY_DOWN, resetR); if (helper == null){ stage.addEventListener(MouseEvent.MOUSE_DOWN, gameKlik); }; rstl.addEventListener(MouseEvent.CLICK, resetAl); rsts.addEventListener(MouseEvent.CLICK, gotosolution); if (Main2.levMenu.rstdop1.visible == true){ rstdop.addEventListener(MouseEvent.CLICK, gotoDopler); }; rstm.addEventListener(MouseEvent.CLICK, menuAl); lvls.addEventListener(MouseEvent.CLICK, levAl); mMus.addEventListener(MouseEvent.CLICK, menMus); mSnd.addEventListener(MouseEvent.CLICK, menSnd); } function Update(_arg1:Event){ var _local2:uint; var _local3:*; var _local4:b2Body; var _local5:int; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; var _local12:*; var _local13:*; var _local14:*; var _local15:*; var _local16:*; var _local17:*; var _local18:b2ContactEdge; var _local19:*; var _local20:*; var _local21:*; var _local22:*; var _local23:*; var _local24:*; var _local25:*; var _local26:b2ContactEdge; var _local27:*; var _local28:*; var _local29:*; var _local30:int; var _local31:Class; var _local32:*; var _local33:*; var _local34:*; var _local35:*; var _local36:*; var _local37:*; var _local38:*; var _local39:*; iii++; _local2 = getTimer(); if (iii < 10){ m_world.Step(m_timeStep, m_iterations); } else { m_world.Step(0.03, 10); }; if (brains1 != null){ brains1.x = mouseX; brains1.y = mouseY; }; if (podskaz != null){ podskaz.x = mouseX; podskaz.y = (mouseY - 9); }; if (zapret != null){ zapret.x = mouseX; zapret.y = mouseY; }; _local3 = 0; while (_local3 < nIn.length) { if (nIn[_local3].currentFrame == 20){ nIn[_local3].gotoAndPlay("zrat"); s_beep = new gamepoedanievmogile(); zvgrom = 0.5; sndStart = 0; oiZvuk(); }; _local3++; }; begPoZonam(); if ((((((((((((uzeEstBrain < Main2.kolvoBrain)) && ((brains1 == null)))) && ((target.visible == false)))) && ((helper == null)))) && ((zapret.visible == false)))) && ((mouseY < 199)))){ brainNew(); }; if ((((((mouseY > 199)) || ((((mouseY < -190)) && ((mouseX < -230)))))) || ((((mouseY < -190)) && ((mouseX > (100 + otstup))))))){ if (brains1 != null){ removeChild(brains1); brains1 = null; removeChild(podskaz); podskaz = null; }; if (target.visible == true){ target.visible = false; tck.visible = true; }; }; if ((((weld == null)) && ((helper == null)))){ _local5 = (iii / 30); _local6 = (iii / 30); if (_local5 == _local6){ levelScore = (levelScore - 1); scor(); }; }; if ((((muravDie == nIn.length)) && ((weld == null)))){ if (uzeEstBrain == Main2.kolvoBrain){ s_beep = new gamewelldone(); zvgrom = 0.4; sndStart = 0; oiZvuk(); weld = new weldon(); addChild(weld); } else { if (brains1 != null){ removeChild(brains1); brains1 = null; removeChild(podskaz); podskaz = null; }; if (ekonom == null){ s_beep = new dzn(); zvgrom = 0.5; sndStart = 0; oiZvuk(); ekonom = new plusHalf(); ekonom.x = -220; ekonom.y = -233; addChild(ekonom); uzeEstBrain++; brainScor(); levelScore = (levelScore + 50); scor(); }; if (((!((ekonom == null))) && ((ekonom.currentFrame == 23)))){ removeChild(ekonom); ekonom = null; }; }; }; if (((!((weld == null))) && ((weld.currentFrame == 80)))){ if (stat.data.array[(Main2.lvl - 1)] == 0){ stat.data.array[(Main2.lvl - 1)] = levelScore; stat.data.lvl++; }; if (stat.data.array[(Main2.lvl - 1)] < levelScore){ stat.data.array[(Main2.lvl - 1)] = levelScore; }; Main2.lvl++; delListener(); Main2.totalScore = (Main2.totalScore + levelScore); Main2.lvlflag = true; tck = null; Main2.resethelp = false; Main2(parent).newLevel(); return; }; _local4 = m_world.m_bodyList; while (_local4) { tck.x = mouseX; tck.y = mouseY; target.x = mouseX; target.y = mouseY; if (((((!((_local4.NameB == null))) && ((_local4.NameB == "ballV")))) && (!((_local4.GetLinearVelocity().y == 0))))){ _local4.NameB = "ball"; _local7 = 0; while (_local7 < vony.length) { if ((((Math.abs((_local4.m_userData.x - vony[_local7].x)) < 30)) && ((Math.abs((_local4.m_userData.y - vony[_local7].y)) < 30)))){ removeChild((vony[_local7] as Sprite)); vony.splice(_local7, 1); break; }; _local7++; }; }; if (((((((!((_local4.NameB == null))) && ((_local4.NameB == "ball")))) && ((_local4.GetLinearVelocity().x == 0)))) && ((_local4.GetLinearVelocity().y == 0)))){ _local4.NameB = "ballV"; _local8 = new vonisa3(); _local8.x = _local4.m_userData.x; _local8.y = _local4.m_userData.y; addChildAt(_local8, getChildIndex(_local4.m_userData)); _local8.mouseEnabled = false; _local8.mouseChildren = false; vony.push(_local8); }; if (((((((((!((_local4.NameB == null))) && (!((water == null))))) && (!((_local4.NameB == "prosto"))))) && (!((_local4.NameB == "return"))))) && (!((_local4.NameB == "pluh"))))){ if (Math.abs(((water.y - (water.height / 1.8)) - _local4.m_userData.y)) < 6){ if ((((((_local4.NameB == "muravPrPad")) || ((_local4.NameB == "muravLPad")))) || ((_local4.NameB == "muravStop")))){ s_beep = new gamebulkibrrrrrr(); zvgrom = 0.7; sndStart = 0; oiZvuk(); }; if ((((((((_local4.NameB == "theball")) || ((_local4.NameB == "dynoPlank")))) || ((_local4.NameB == "dynoPlankH")))) || ((_local4.NameB == "ball")))){ s_beep = new gamebulkibig(); zvgrom = 0.5; sndStart = 0; oiZvuk(); }; _local4.NameB = "pluh"; bulk = new bulbul(); bulk.x = _local4.m_userData.x; bulk.y = (water.y - (water.height / 1.8)); addChild(bulk); }; }; if (((!((_local4.NameB == null))) && ((_local4.NameB == "muravDie")))){ _local4.NameB = "zzz"; m_world.DestroyBody(_local4); muravDie++; }; if (((((!((_local4.NameB == null))) && ((_local4.NameB == "muravZalez")))) && ((_local4.m_userData.currentFrame == 691)))){ removeChild((_local4.m_userData as Sprite)); m_world.DestroyBody(_local4); }; if ((((((((((_local4.m_userData is muravei1)) || ((_local4.m_userData is muravei2)))) || ((_local4.m_userData is muravei3)))) || ((_local4.m_userData is muravei4)))) && ((_local4.m_userData.currentFrame == 16)))){ if (_local4.NameB != "muravStop"){ _local4.NameB = "muravStop"; } else { _local4.NameB = "muravZastr"; }; }; if ((_local4.m_userData is Sprite)){ _local4.m_userData.x = (_local4.GetPosition().x * m_physScale); _local4.m_userData.y = (_local4.GetPosition().y * m_physScale); if ((((((((_local4.m_userData is muravei1)) || ((_local4.m_userData is muravei2)))) || ((_local4.m_userData is muravei3)))) || ((_local4.m_userData is muravei4)))){ } else { _local4.m_userData.rotation = (_local4.GetAngle() * rotatSpeed); }; }; if (rA == true){ rA = false; resetAll(); return; }; if ((((((((((((kasaet == null)) && (!((_local4.NameB == null))))) && ((((((_local4.NameB == "dynoPlankH")) || ((_local4.NameB == "dynoPlank")))) || ((_local4.NameB == "theball")))))) && (!((brains1 == null))))) && (_local4.m_userData.hitTestPoint(stage.mouseX, stage.mouseY, true)))) && ((kasaetZona() == false)))){ kasaet = _local4.m_userData; vhod(); }; if (((((((!((kasaet == null))) && (!((_local4.NameB == null))))) && ((_local4.m_userData == kasaet)))) && ((((_local4.m_userData.hitTestPoint(stage.mouseX, stage.mouseY, true) == false)) && ((kasaetZona() == false)))))){ kasaet = null; vyhod(); }; if (((!((_local4.NameB == null))) && ((_local4.m_userData is ball_1)))){ _local9 = 0; while (_local9 < earArr.length) { if (((((((!((earArr[_local9] == null))) && ((Math.abs((_local4.m_userData.y - earArr[_local9].y)) < 25)))) && ((Math.abs((_local4.m_userData.x - earArr[_local9].x)) < 30)))) && ((earArr[_local9].currentFrame == 1)))){ _local11 = new arm(); _local11.x = earArr[_local9].x; _local11.y = earArr[_local9].y; _local11.rotation = (_local11.rotation - ((Math.atan(((_local4.m_userData.x - earArr[_local9].x) / ((_local4.m_userData.y - earArr[_local9].y) - earArr[_local9].height))) / Math.PI) * 180)); addChildAt(_local11, getChildIndex(earArr[_local9])); _local12 = 0; while (_local12 < nIn.length) { if (nIn[_local12].hitTestObject(_local11)){ nIn[_local12].gotoAndPlay(2); }; _local12++; }; _local13 = 0; while (_local13 < brainArray.length) { if (brainArray[_local13] == _local4.m_userData){ brainArray.splice(_local13, 1); }; _local13++; }; _local11.gotoAndPlay("armgo"); m_world.DestroyBody(_local4); removeChild((_local4.m_userData as Sprite)); _local4.NameB = null; }; _local9++; }; if (((((!((mina == null))) && ((Math.abs((_local4.m_userData.y - mina.y)) < 10)))) && ((Math.abs((_local4.m_userData.x - mina.x)) < 20)))){ _local14 = brainArray.indexOf(_local4.m_userData); _local15 = 0; while (_local15 < manBrain.length) { if (((!((manBrain[_local15] == null))) && ((manBrain[_local15] == _local4.m_userData)))){ manBrain[_local15] = null; }; _local15++; }; brainArray.splice(_local14, 1); rastSokr = false; s_beep = new gamevzryv(); zvgrom = 0.5; sndStart = 0; oiZvuk(); mina.gotoAndPlay("boom"); m_world.DestroyBody(_local4); mina = null; removeChild((_local4.m_userData as Sprite)); }; _local10 = 0; while (_local10 < nIn.length) { numberNIn = nIn[_local10]; if ((((((((Math.abs((numberNIn.y - _local4.m_userData.y)) < vidimostY)) && ((Math.abs((numberNIn.x - _local4.m_userData.x)) < vidimostX)))) && ((numberNIn.currentFrame == 1)))) && ((_local4.NameB == "ballV")))){ _local16 = 0; while (_local16 < vony.length) { if (((vony[_local16].hitTestObject(numberNIn)) && ((vony[_local16].currentFrame > Math.ceil((Math.abs((numberNIn.x - vony[_local16].x)) / 2)))))){ numberNIn.gotoAndPlay("razr"); nInX = numberNIn.x; nInY = numberNIn.y; brainX = _local4.m_userData.x; addNewMur(); _local17 = 0; while (_local17 < OtkrNIn.length) { if (OtkrNIn[_local17] == 0){ OtkrNIn[_local17] = numberNIn; manBrain[_local17] = _local4.m_userData; return; }; _local17++; }; }; _local16++; }; }; _local10++; }; }; if (((!((_local4.NameB == null))) && ((_local4.m_userData is ball_1)))){ _local18 = _local4.GetContactList(); while (_local18) { if (((((((!((_local18.other.NameB == null))) && ((((_local18.other.NameB == "theball")) || ((_local18.other.NameB == "dynoPlankH")))))) && ((_local4.m_userData.y > _local18.other.m_userData.y)))) && ((_local18.other.GetLinearVelocity().y > 2)))){ _local19 = brainArray.indexOf(_local4.m_userData); _local20 = 0; while (_local20 < manBrain.length) { if (((!((manBrain[_local20] == null))) && ((manBrain[_local20] == _local4.m_userData)))){ manBrain[_local20] = null; }; _local20++; }; _local21 = 0; while (_local21 < vony.length) { if ((((Math.abs((_local4.m_userData.x - vony[_local21].x)) < 30)) && ((Math.abs((_local4.m_userData.y - vony[_local21].y)) < 30)))){ removeChild((vony[_local21] as Sprite)); vony.splice(_local21, 1); break; }; _local21++; }; brainArray.splice(_local19, 1); rastSokr = false; _local22 = new brainBoom(); _local22.x = _local4.m_userData.x; _local22.y = _local4.m_userData.y; s_beep = new gamedavkamozga(); zvgrom = 0.5; sndStart = 0; oiZvuk(); addChildAt(_local22, getChildIndex(_local4.m_userData)); m_world.DestroyBody(_local4); _local4.NameB = null; removeChild((_local4.m_userData as Sprite)); }; _local18 = _local18.next; }; }; if (((((!((_local4.NameB == null))) && ((((((((_local4.m_userData is muravei1)) || ((_local4.m_userData is muravei2)))) || ((_local4.m_userData is muravei3)))) || ((_local4.m_userData is muravei4)))))) && ((_local4.m_userData.currentFrame < 396)))){ _local23 = muravArray.indexOf(_local4.m_userData); if (((((!((mina == null))) && ((Math.abs((_local4.m_userData.y - mina.y)) < 18)))) && ((Math.abs((_local4.m_userData.x - mina.x)) < 3)))){ if ((((_local4.NameB == "muravObr")) || ((_local4.NameB == "ozmuravObr")))){ _local4.m_userData.gotoAndPlay("vzrlevo"); } else { _local4.m_userData.gotoAndPlay("vzrpravo"); }; _local4.NameB = "muravDie"; s_beep = new gamevzryv(); zvgrom = 0.5; sndStart = 0; oiZvuk(); mina.gotoAndPlay("boom"); mina = null; }; _local24 = 0; while (_local24 < brainArray.length) { numberBrain = brainArray[_local24]; if ((((Math.abs((numberBrain.y - _local4.m_userData.y)) < vidimostY)) && ((Math.abs((numberBrain.x - _local4.m_userData.x)) < vidimostX)))){ _local25 = Math.abs((numberBrain.x - _local4.m_userData.x)); if ((((((_local4.NameB == "ozmurav")) || ((_local4.NameB == "ozmuravObr")))) && ((((manBrain[_local23] == null)) || ((_local25 < Math.abs((manBrain[_local23].x - _local4.m_userData.x)))))))){ manBrain[_local23] = numberBrain; rastSokr = true; naprSokr = (numberBrain.x - _local4.m_userData.x); newBrainX = numberBrain.x; newBrainY = numberBrain.y; }; if ((((_local4.NameB == "murav")) || ((_local4.NameB == "muravObr")))){ manBrain[_local23] = numberBrain; rastSokr = true; naprSokr = (numberBrain.x - _local4.m_userData.x); newBrainX = numberBrain.x; newBrainY = numberBrain.y; if ((((naprSokr > 0)) && ((_local4.NameB == "muravObr")))){ _local4.NameB = "ozmurav"; _local4.m_userData.gotoAndPlay("razvpravo"); _local24 = brainArray.length; }; if ((((naprSokr < 0)) && ((_local4.NameB == "muravObr")))){ _local4.NameB = "ozmuravObr"; _local24 = brainArray.length; }; if ((((naprSokr < 0)) && ((_local4.NameB == "murav")))){ _local4.NameB = "ozmuravObr"; _local4.m_userData.gotoAndPlay("razvlevo"); _local24 = brainArray.length; }; if ((((naprSokr > 0)) && ((_local4.NameB == "murav")))){ _local4.NameB = "ozmurav"; _local24 = brainArray.length; }; }; if (_local4.NameB == "muravStop"){ manBrain[_local23] = numberBrain; rastSokr = true; naprSokr = (numberBrain.x - _local4.m_userData.x); stoit = 0; newBrainX = numberBrain.x; newBrainY = numberBrain.y; if (naprSokr > 0){ _local4.NameB = "ozmurav"; _local4.m_userData.gotoAndPlay("vpravo"); _local24 = brainArray.length; } else { _local4.NameB = "ozmuravObr"; _local4.m_userData.gotoAndPlay("vlevo"); _local24 = brainArray.length; }; }; }; _local24++; }; if ((((((((((_local4.NameB == "murav")) || ((_local4.NameB == "ozmurav")))) && ((rastSokr == true)))) && ((naprSokr < 0)))) && ((((Math.abs((numberBrain.y - _local4.m_userData.y)) < vidimostY)) && ((Math.abs((numberBrain.x - _local4.m_userData.x)) < vidimostX)))))){ _local4.NameB = "ozmuravObr"; _local4.m_userData.gotoAndPlay("razvlevo"); }; if ((((((((((_local4.NameB == "muravObr")) || ((_local4.NameB == "ozmuravObr")))) && ((rastSokr == true)))) && ((naprSokr > 0)))) && ((((Math.abs((numberBrain.y - _local4.m_userData.y)) < vidimostY)) && ((Math.abs((numberBrain.x - _local4.m_userData.x)) < vidimostX)))))){ _local4.NameB = "ozmurav"; _local4.m_userData.gotoAndPlay("razvpravo"); }; rastSokr = false; if ((((((_local4.NameB == "ozmurav")) || ((_local4.NameB == "ozmuravObr")))) && ((manBrain[_local23] == null)))){ if ((((_local4.NameB == "ozmuravObr")) || ((_local4.NameB == "muravObr")))){ _local4.NameB = "muravObr"; } else { _local4.NameB = "murav"; }; }; if ((((((((((_local4.NameB == "ozmurav")) || ((_local4.NameB == "ozmuravObr")))) || ((_local4.NameB == "muravPrPad")))) || ((_local4.NameB == "muravLPad")))) && ((((Math.abs((manBrain[_local23].y - _local4.m_userData.y)) > vidimostY)) || ((Math.abs((manBrain[_local23].x - _local4.m_userData.x)) > vidimostX)))))){ if (_local4.NameB == "ozmuravObr"){ _local4.m_userData.gotoAndPlay("izleva"); } else { _local4.m_userData.gotoAndPlay("izprava"); }; _local4.NameB = "muravStop"; }; }; if (((!((_local4.NameB == null))) && ((((((((_local4.m_userData is muravei1)) || ((_local4.m_userData is muravei2)))) || ((_local4.m_userData is muravei3)))) || ((_local4.m_userData is muravei4)))))){ if (_local4.NameB == "muravStop"){ if ((((_local4.m_userData.currentFrame > 297)) && ((_local4.m_userData.currentFrame < 336)))){ _local4.m_userData.gotoAndPlay("izprava"); }; if ((((_local4.m_userData.currentFrame > 335)) && ((_local4.m_userData.currentFrame < 374)))){ _local4.m_userData.gotoAndPlay("izleva"); }; if (stoit == (300 * dobavMurav)){ _local27 = Math.ceil((Math.random() * 4)); _local28 = ("anim" + _local27); _local4.m_userData.gotoAndPlay(_local28); stoit = 0; } else { stoit++; }; }; if ((((((_local4.GetLinearVelocity().y < 2)) && ((_local4.NameB == "muravPrPad")))) && ((((_local4.m_userData.currentFrame > 539)) && ((_local4.m_userData.currentFrame < 549)))))){ _local4.m_userData.gotoAndPlay("pravo"); _local4.NameB = "murav"; }; if ((((((_local4.GetLinearVelocity().y < 2)) && ((_local4.NameB == "muravLPad")))) && ((((_local4.m_userData.currentFrame > 565)) && ((_local4.m_userData.currentFrame < 575)))))){ _local4.m_userData.gotoAndPlay("levo"); _local4.NameB = "muravObr"; }; if ((((_local4.GetLinearVelocity().y > 2)) && ((((_local4.NameB == "murav")) || ((_local4.NameB == "ozmurav")))))){ _local4.m_userData.gotoAndPlay("tonpravo"); _local4.NameB = "muravPrPad"; }; if ((((_local4.GetLinearVelocity().y > 2)) && ((((_local4.NameB == "muravObr")) || ((_local4.NameB == "ozmuravObr")))))){ _local4.m_userData.gotoAndPlay("tonlevo"); _local4.NameB = "muravLPad"; }; if ((((_local4.NameB == "murav")) || ((_local4.NameB == "ozmurav")))){ znak = 1; }; if ((((_local4.NameB == "muravObr")) || ((_local4.NameB == "ozmuravObr")))){ znak = -1; }; if ((((((((((_local4.NameB == "muravZalez")) || ((_local4.NameB == "muravPrPad")))) || ((_local4.NameB == "muravLPad")))) || ((_local4.NameB == "muravStop")))) || ((((_local4.m_userData.currentFrame > 396)) && ((_local4.m_userData.currentFrame < 523)))))){ znak = 0; }; _local4.ApplyForce(new b2Vec2((znak * muravSpeed), 0), _local4.GetWorldCenter()); _local4.GetLinearVelocity().x = 0; _local26 = _local4.GetContactList(); while (_local26) { if ((((((((_local4.NameB == "murav")) || ((_local4.NameB == "ozmurav")))) && ((_local26.other.NameB == "return")))) && ((_local4.m_userData.x < _local26.other.m_userData.x)))){ _local4.NameB = "muravObr"; _local4.m_userData.gotoAndPlay("razvlevo"); }; if ((((((((_local4.NameB == "muravObr")) || ((_local4.NameB == "ozmuravObr")))) && ((_local26.other.NameB == "return")))) && ((_local4.m_userData.x > _local26.other.m_userData.x)))){ _local4.NameB = "murav"; _local4.m_userData.gotoAndPlay("razvpravo"); }; if (((((!((_local26.other.NameB == null))) && ((_local26.other.m_userData is ball_1)))) && ((_local26.other.m_userData.y >= _local4.m_userData.y)))){ _local29 = brainArray.indexOf(_local26.other.m_userData); if ((((_local4.m_userData is muravei1)) || ((_local4.m_userData is muravei2)))){ _local30 = 1; } else { _local30 = 2; }; _local31 = (getDefinitionByName(("gamezombieating" + _local30)) as Class); s_beep = new (_local31); zvgrom = 0.5; sndStart = 0; oiZvuk(); _local32 = manBrain[_local23]; _local33 = 0; while (_local33 < manBrain.length) { if (((((!((manBrain[_local33] == null))) && (!((_local32 == null))))) && ((manBrain[_local33] == _local32)))){ manBrain[_local33] = null; }; _local33++; }; _local34 = 0; while (_local34 < vony.length) { if ((((Math.abs((_local26.other.m_userData.x - vony[_local34].x)) < 30)) && ((Math.abs((_local26.other.m_userData.y - vony[_local34].y)) < 30)))){ removeChild((vony[_local34] as Sprite)); vony.splice(_local34, 1); break; }; _local34++; }; brainArray.splice(_local29, 1); rastSokr = false; if ((((((_local4.NameB == "ozmurav")) || ((_local4.NameB == "murav")))) || ((_local4.NameB == "muravPrPad")))){ _local4.m_userData.gotoAndPlay("eatpravo"); } else { _local4.m_userData.gotoAndPlay("eatlevo"); }; removeChild((_local26.other.m_userData as Sprite)); m_world.DestroyBody(_local26.other); return; }; if (((((((!((_local26.other.NameB == null))) && (((_local4.m_userData.y - _local26.other.m_userData.y) > 1)))) && ((((_local26.other.NameB == "theball")) || ((_local26.other.NameB == "dynoPlankH")))))) && ((_local26.other.GetLinearVelocity().y > 2)))){ if ((((_local4.NameB == "muravObr")) || ((_local4.NameB == "ozmuravObr")))){ _local4.m_userData.gotoAndPlay("davlevo"); }; if (_local4.NameB == "muravStop"){ _local4.m_userData.gotoAndPlay("davanfas"); stoit = 0; }; if ((((_local4.NameB == "murav")) || ((_local4.NameB == "ozmurav")))){ _local4.m_userData.gotoAndPlay("davpravo"); }; s_beep = new gamedavkasharom(); zvgrom = 0.5; sndStart = 0; oiZvuk(); _local4.NameB = "muravDie"; }; _local26 = _local26.next; }; if ((((((((((_local4.m_userData is muravei1)) || ((_local4.m_userData is muravei2)))) || ((_local4.m_userData is muravei3)))) || ((_local4.m_userData is muravei4)))) && ((_local4.m_userData.currentFrame < 396)))){ _local35 = 0; while (_local35 < nIn.length) { _local36 = nIn[_local35]; _local37 = OtkrNIn.indexOf(_local36); _local38 = muravArray.indexOf(_local4.m_userData); if ((((((((_local4.NameB == "murav")) && (((_local36.x - _local4.m_userData.x) < 0)))) && ((Math.abs((_local36.y - _local4.m_userData.y)) < vidimostY)))) && ((_local37 == _local38)))){ _local4.NameB = "muravObr"; _local4.m_userData.gotoAndPlay("razvlevo"); }; if ((((((((_local4.NameB == "muravObr")) && (((_local36.x - _local4.m_userData.x) > 0)))) && ((Math.abs((_local36.y - _local4.m_userData.y)) < vidimostY)))) && ((_local37 == _local38)))){ _local4.NameB = "murav"; _local4.m_userData.gotoAndPlay("razvpravo"); }; if ((((((((_local4.NameB == "muravStop")) && (((_local36.x - _local4.m_userData.x) < 0)))) && ((Math.abs((_local36.y - _local4.m_userData.y)) < vidimostY)))) && ((_local37 == _local38)))){ _local4.NameB = "muravObr"; _local4.m_userData.gotoAndPlay("vlevo"); stoit = 0; }; if ((((((((_local4.NameB == "muravStop")) && (((_local36.x - _local4.m_userData.x) > 0)))) && ((Math.abs((_local36.y - _local4.m_userData.y)) < vidimostY)))) && ((_local37 == _local38)))){ _local4.NameB = "murav"; _local4.m_userData.gotoAndPlay("vpravo"); stoit = 0; }; if ((((((((_local4.NameB == "murav")) || ((_local4.NameB == "muravObr")))) && ((Math.abs((_local36.y - _local4.m_userData.y)) >= vidimostY)))) && ((_local37 == _local38)))){ if (_local4.NameB == "muravObr"){ _local4.m_userData.gotoAndPlay("izleva"); } else { _local4.m_userData.gotoAndPlay("izprava"); }; _local4.NameB = "muravStop"; }; if ((((((((((((_local4.NameB == "murav")) || ((_local4.NameB == "muravObr")))) || ((_local4.NameB == "muravZastr")))) && ((((Math.abs((_local4.m_userData.x - _local36.x)) < 2)) && ((Math.abs((_local4.m_userData.y - _local36.y)) < 30)))))) && ((_local36.currentFrame > 1)))) && ((_local37 == _local38)))){ muravArray[_local38] = 0; _local4.m_userData.gotoAndPlay("zalez"); _local36.gotoAndPlay("zar"); _local39 = 0; while (_local39 < earArr.length) { if ((((Math.abs((earArr[_local39].x - OtkrNIn[_local37].x)) < 5)) && ((Math.abs((earArr[_local39].y - OtkrNIn[_local37].y)) < 20)))){ earArr[_local39].gotoAndPlay("zar"); break; }; _local39++; }; OtkrNIn[_local37] = 0; _local4.NameB = "muravZalez"; dobavMurav = (dobavMurav - 1); }; _local35++; }; }; }; if (((!((_local4.NameB == null))) && ((_local4.GetPosition().y > 10)))){ if ((((((((_local4.m_userData is muravei1)) || ((_local4.m_userData is muravei2)))) || ((_local4.m_userData is muravei3)))) || ((_local4.m_userData is muravei4)))){ removeChild((_local4.m_userData as Sprite)); m_world.DestroyBody(_local4); muravDie++; } else { removeChild((_local4.m_userData as Sprite)); m_world.DestroyBody(_local4); }; }; _local4 = _local4.m_next; }; } function resetR(_arg1:KeyboardEvent){ if (_arg1.keyCode == 82){ rA = true; }; } public function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local2:b2AABB; var _local3:int; var _local4:Array; var _local5:int; var _local6:b2Body; var _local7:int; var _local8:*; var _local9:b2Shape; var _local10:Boolean; var _local11:*; mousePVec.Set(mouseXWorldPhys, mouseYWorldPhys); _local2 = new b2AABB(); _local2.lowerBound.Set((mouseXWorldPhys - 0.001), (mouseYWorldPhys - 0.001)); _local2.upperBound.Set((mouseXWorldPhys + 0.001), (mouseYWorldPhys + 0.001)); _local3 = 10; _local4 = new Array(); _local5 = m_world.Query(_local2, _local4, _local3); _local6 = null; _local7 = 0; while (_local7 < _local5) { if ((((_local4[_local7].GetBody().IsStatic() == false)) || (_arg1))){ _local9 = (_local4[_local7] as b2Shape); _local10 = (_local4[_local7] as b2Shape).TestPoint(_local9.GetBody().GetXForm(), mousePVec); if (_local10){ _local6 = _local9.GetBody(); break; }; }; _local7++; }; _local8 = 0; while (_local8 < zonna.length) { if (zonna[_local8].hitTestPoint(stage.mouseX, stage.mouseY, true)){ blzona = zonna[_local8]; break; }; _local8++; }; if (_local6 == null){ _local11 = new drobs(); _local11.x = mouseX; _local11.y = mouseY; if (((!((blzona == null))) && (((mouseX - 10) < (blzona.x - (blzona.width / 2)))))){ _local11 = new drobs2(); _local11.x = (blzona.x - (blzona.width / 2)); _local11.y = mouseY; }; if (((!((blzona == null))) && (((mouseX + 10) > (blzona.x + (blzona.width / 2)))))){ _local11 = new drobs2(); new drobs2().rotation = (_local11.rotation + 180); _local11.x = (blzona.x + (blzona.width / 2)); _local11.y = mouseY; }; if (((((((mouseY - 10) > (blzona.y - (blzona.height / 2)))) && (((mouseY + 10) < (blzona.y + (blzona.height / 2)))))) && ((Math.ceil((iii / 4)) == (iii / 4))))){ addChildAt(_local11, 3); }; }; return (_local6); } function levAl(_arg1:Event){ levelScore = 0; delListener(); Main2(parent).toSelect1(); } function gameKlik(_arg1:MouseEvent):void{ if ((((((helper == null)) && (!((mouseX == hX))))) && (!((mouseY == hY))))){ if ((((((mouseY < 199)) && (!((brains1 == null))))) && ((brains1.currentFrame == 1)))){ removeChild(brains1); brains1 = null; removeChild(podskaz); podskaz = null; addBall(); brainNew(); }; if (target.visible == true){ s_beep = new gameshoot(); zvgrom = 0.5; sndStart = 0; oiZvuk(); UpdateMouseWorld(); MouseDrag(); }; }; } public function MouseDrag():void{ var _local1:b2Body; var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:Class; var _local7:*; _local1 = null; _local1 = GetBodyAtMouse(); if (((_local1) && ((_local1.m_userData is ball_1)))){ _local2 = brainArray.indexOf(_local1.m_userData); _local3 = 0; while (_local3 < manBrain.length) { if (((!((manBrain[_local3] == null))) && ((manBrain[_local3] == _local1.m_userData)))){ manBrain[_local3] = null; }; _local3++; }; _local4 = 0; while (_local4 < vony.length) { if ((((Math.abs((_local1.m_userData.x - vony[_local4].x)) < 30)) && ((Math.abs((_local1.m_userData.y - vony[_local4].y)) < 30)))){ removeChild((vony[_local4] as Sprite)); vony.splice(_local4, 1); break; }; _local4++; }; brainArray.splice(_local2, 1); rastSokr = false; _local5 = new brainBoom(); _local5.x = _local1.m_userData.x; _local5.y = _local1.m_userData.y; s_beep = new gamedavkamozga(); zvgrom = 0.5; sndStart = 0; oiZvuk(); addChild(_local5); m_world.DestroyBody(_local1); _local1.NameB = null; removeChild(_local1.m_userData); }; if (((_local1) && ((((((((_local1.m_userData is muravei1)) || ((_local1.m_userData is muravei2)))) || ((_local1.m_userData is muravei3)))) || ((_local1.m_userData is muravei4)))))){ if ((((_local1.NameB == "muravObr")) || ((_local1.NameB == "ozmuravObr")))){ _local1.m_userData.gotoAndPlay("bahlevo"); }; if ((((_local1.NameB == "muravStop")) || ((_local1.NameB == null)))){ _local1.m_userData.gotoAndPlay("bahanfas"); stoit = 0; }; if ((((_local1.NameB == "murav")) || ((_local1.NameB == "ozmurav")))){ _local1.m_userData.gotoAndPlay("bahpravo"); }; _local1.NameB = "muravDie"; _local6 = (getDefinitionByName(("blood" + blad)) as Class); _local7 = new (_local6); _local7.x = mouseX; _local7.y = mouseY; if (((!((blzona == null))) && (((mouseX - 20) < (blzona.x - (blzona.width / 2)))))){ _local7 = new blood4(); _local7.x = (blzona.x - (blzona.width / 2)); _local7.y = mouseY; }; if (((!((blzona == null))) && (((mouseX + 20) > (blzona.x + (blzona.width / 2)))))){ _local7 = new blood4(); new blood4().rotation = (_local7.rotation + 180); _local7.x = (blzona.x + (blzona.width / 2)); _local7.y = mouseY; }; s_beep = new gamebloodaftershoot(); zvgrom = 0.5; sndStart = 0; oiZvuk(); addChildAt(_local7, getChildIndex(_local1.m_userData)); blad++; if (blad > 3){ blad = 1; }; }; } public function UpdateMouseWorld():void{ mouseXWorldPhys = (Input.mouseX / m_physScale); mouseYWorldPhys = (Input.mouseY / m_physScale); mouseXWorld = Input.mouseX; mouseYWorld = Input.mouseY; } function menSnd(_arg1:MouseEvent){ Main2.snd = !(Main2.snd); if (((Main2.snd) && (!((krestikS == null))))){ Main2.st2.volume = 0.7; Main2.sndAlpha = 1; Main2.levMenu.removeChild(krestikS); krestikS = null; stat.data.snd = 1; } else { krestikS = new krest(); krestikS.scaleX = 0.6; krestikS.scaleY = 0.6; krestikS.x = mSnd.x; krestikS.y = mSnd.y; Main2.levMenu.addChildAt(krestikS, 19); krestikS.mouseEnabled = false; krestikS.mouseChildren = false; Main2.sndAlpha = 0; Main2.st2.volume = 0; stat.data.snd = 0; }; if (Main2.sndChannel2 != null){ Main2.sndChannel2.stop(); }; Main2.sndChannel2 = Main2.s2_theme.play(0, 10000, Main2.st2); } function oiZvuk(){ if (Main2.snd == true){ sc = new SoundChannel(); st = new SoundTransform(zvgrom, 0); sc = s_beep.play(sndStart, 0); sc.soundTransform = st; }; } function resetAll(){ delListener(); levelScore = 0; Main2(parent).newLevel(); } function resetAl(_arg1:Event){ if (helper == null){ rA = true; }; } function ini(_arg1:Event){ if (this.parent != null){ removeEventListener(Event.ENTER_FRAME, ini); go(); }; } function oprIndexZona(){ var _local1:*; _local1 = 0; while (_local1 < zonna.length) { if (getChildIndex(zonna[_local1]) < minIndexZona){ minIndexZona = getChildIndex(zonna[_local1]); }; _local1++; }; } function menuAl(_arg1:Event){ delListener(); levelScore = 0; Main2(parent).toMenu1(); } function gotosolution(_arg1:Event){ var _local2:URLRequest; var _local3:*; _local3 = "http://www.notdoppler.com/allweneedisbrain-walkthrough.php?ref=allweneedisbrain"; _local2 = new URLRequest(_local3); navigateToURL(_local2, "_blank"); } function begPoZonam(){ var _local1:*; var _local2:*; if (kasaetZona() == true){ if ((((target.visible == false)) && ((helper == null)))){ target.visible = true; tck.visible = false; zapret.visible = false; if (brains1 != null){ removeChild(brains1); brains1 = null; removeChild(podskaz); podskaz = null; }; }; } else { _local1 = 0; _local2 = 0; while (_local2 < zonna.length) { if (((((zonna[_local2].hitTestPoint(stage.mouseX, stage.mouseY, true)) && ((mouseY < 199)))) && ((helper == null)))){ if ((((zonna[_local2] is zona1)) && ((zapret.visible == false)))){ target.visible = false; if (uzeEstBrain != Main2.kolvoBrain){ tck.visible = false; zapret.visible = true; } else { tck.visible = true; zapret.visible = false; }; if (brains1 != null){ removeChild(brains1); brains1 = null; removeChild(podskaz); podskaz = null; }; }; _local1++; }; _local2++; }; if ((((((((_local1 == 0)) && ((tck.visible == false)))) && ((kasaet == null)))) && ((helper == null)))){ if ((((((uzeEstBrain < Main2.kolvoBrain)) && ((brains1 == null)))) && ((mouseY < 199)))){ brainNew(); }; target.visible = false; tck.visible = true; zapret.visible = false; }; }; } function gotoDopler(_arg1:Event){ var _local2:URLRequest; var _local3:*; _local3 = "http://www.notdoppler.com/?ref=allweneedisbrain"; _local2 = new URLRequest(_local3); navigateToURL(_local2, "_blank"); } } }//package
Section 203
//light (light) package { import flash.display.*; public dynamic class light extends MovieClip { } }//package
Section 204
//Main2 (Main2) package { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import levelsp2.*; import flash.ui.*; import flash.system.*; public dynamic class Main2 extends MovieClip { var gameKey:String;// = "brain-game" var devKey:String;// = "76847b8f49ba048243725e4859fe9eb1" var loader:Loader; var lev; var lvc:TextField; var agi_url:String;// = "http://agi.armorgames.com/assets/agi/AGI.swf" var urlRequest:URLRequest; var stat:SharedObject; var f0; public static var snd:Boolean; public static var agi; public static var lvlflag:Boolean = false; public static var musAlpha:Number; public static var m_sprite:Sprite; public static var sndChannel2:SoundChannel; public static var sndChannel:SoundChannel; public static var resethelp:Boolean = false; public static var st:SoundTransform = new SoundTransform(); public static var levMenu:MovieClip; public static var s1_theme:Sound; public static var s2_theme:Sound; public static var lvl:int; public static var sndAlpha:Number; public static var st2:SoundTransform = new SoundTransform(); public static var kolvoBrain:int; public static var totalScore:Number = 0; public function Main2():void{ stat = SharedObject.getLocal("brainzombie"); agi_url = "http://agi.armorgames.com/assets/agi/AGI.swf"; devKey = "76847b8f49ba048243725e4859fe9eb1"; gameKey = "brain-game"; urlRequest = new URLRequest(agi_url); loader = new Loader(); super(); addEventListener(Event.ADDED_TO_STAGE, ini); } function ini(_arg1:Event){ if (this.parent != null){ removeEventListener(Event.ENTER_FRAME, ini); go(); }; } public function toMenu1(){ if (musAlpha == 1){ st.volume = 0; sndChannel.stop(); st2.volume = 0; sndChannel2.stop(); menu2.stT.volume = 0.5; menu2.scT = menu2.s_theme.play(0, 10000, menu2.stT); }; toMenu(); } function loadComplete(_arg1:Event):void{ agi = _arg1.currentTarget.content; addChild(agi); agi.init(devKey, gameKey); } public function toSelect(){ var _local1:select2; if (levMenu != null){ removeChild(levMenu); levMenu = null; lvc = null; removeChild(f0); f0 = null; }; if (lev != null){ lev.m_world = null; removeChild(lev); lev = null; }; _local1 = new select2(); addChild(_local1); } public function toMenu(){ var _local1:menu2; if (levMenu != null){ removeChild(levMenu); levMenu = null; lvc = null; removeChild(f0); f0 = null; }; if (lev != null){ lev.m_world = null; removeChild(lev); lev = null; }; _local1 = new menu2(); addChild(_local1); } public function toSelect1(){ if (musAlpha == 1){ st.volume = 0; sndChannel.stop(); st2.volume = 0; sndChannel2.stop(); menu2.stT.volume = 0.5; menu2.scT = menu2.s_theme.play(0, 10000, menu2.stT); }; toSelect(); } function nl(){ var _local1:Class; if (m_sprite == null){ m_sprite = new Sprite(); }; _local1 = (getDefinitionByName(("levelsp2.level" + lvl)) as Class); kolvoBrain = _local1.param2; lev = new (_local1); lev.x = 320; lev.y = 240; m_sprite.x = 320; m_sprite.y = 240; if (levMenu != null){ if (lvl > 40){ levMenu.rstdop1.visible = true; } else { levMenu.rstdop1.visible = false; }; if (lvlflag == true){ LevelsField(); lvlflag = false; }; addChildAt(lev, getChildIndex(f0)); addChildAt(m_sprite, getChildIndex(f0)); } else { addChild(lev); addChild(m_sprite); levMenu = new menuLevel(); levMenu.x = 320; levMenu.y = 240; LevelsField(); if (lvl > 40){ levMenu.rstdop1.visible = true; } else { levMenu.rstdop1.visible = false; }; addChild(levMenu); f0 = new f090(); f0.mouseEnabled = false; f0.mouseChildren = false; addChildAt(f0, getChildIndex(levMenu)); }; } function LevelsField(){ var _local1:*; var _local2:*; var _local3:*; if (lvc != null){ lvc.htmlText = ("" + lvl); } else { _local1 = levMenu.numChildren; _local2 = 0; while (_local2 < _local1) { _local3 = levMenu.getChildAt(_local2); if ((_local3 is TextField)){ if (_local3.text.indexOf("25") > -1){ _local3.htmlText = ("" + lvl); lvc = _local3; }; }; _local2++; }; }; } public function newLevel(){ var _local1:win2; if (lev != null){ lev.m_world = null; (removeChild(lev) as Sprite); lev = null; }; if ((((lvl == 26)) && ((stat.data.wonn == false)))){ if (sndChannel != null){ sndChannel.stop(); sndChannel2.stop(); }; if (lev != null){ lev.m_world = null; removeChild(lev); lev = null; }; stat.data.wonn = true; _local1 = new win2(); addChild(_local1); } else { if ((((lvl == 26)) && ((stat.data.wonn == true)))){ toSelect(); } else { nl(); }; }; } function go(){ Mouse.hide(); s1_theme = new musicgameplaywave(); s2_theme = new ambientgameplaywave(); Security.allowDomain(agi_url); Security.allowInsecureDomain(agi_url); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); loader.load(urlRequest); toMenu(); } } }//package
Section 205
//menu2 (menu2) package { import flash.display.*; import flash.events.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.ui.*; import caurina.transitions.*; public dynamic class menu2 extends MovieClip { var krestikM:MovieClip; var stat:SharedObject; var rotats;// = 0 var krestikS:MovieClip; var kadr;// = 1 var arr:MovieClip; var menuPic:MovieClip; public var Parent; public static var stT:SoundTransform = new SoundTransform(); public static var scT:SoundChannel; public static var numLevels:int; public static var wonn; public static var s_theme:Sound; public function menu2():void{ menuPic = new menuBig(); kadr = 1; rotats = 0; arr = new tochka(); stat = SharedObject.getLocal("brainzombie"); super(); menuPic.x = 320; menuPic.y = 240; addChild(menuPic); arr.x = mouseX; arr.y = mouseY; addChild(arr); addEventListener(Event.ENTER_FRAME, ini); } function goGame(){ Main2.totalScore = stat.data.total; delListeners(); removeChild(menuPic); removeChild(arr); Main2(parent).toSelect(); } function ini(_arg1:Event){ if (this.parent != null){ removeEventListener(Event.ENTER_FRAME, ini); go(); }; } function letters(_arg1:Event){ var _local2:*; var _local3:URLRequest; _local2 = "mailto:vladg1979@gmail.com"; _local3 = new URLRequest(_local2); navigateToURL(_local3, "_blank"); } function menMus(_arg1:MouseEvent){ if (krestikM != null){ stT.volume = 0.5; Parent.removeChild(krestikM); krestikM = null; Main2.musAlpha = 1; stat.data.stt = 1; } else { krestikM = new krest(); krestikM.x = Parent.mMus.x; krestikM.y = Parent.mMus.y; Parent.addChild(krestikM); krestikM.mouseEnabled = false; krestikM.mouseChildren = false; stT.volume = 0; Main2.musAlpha = 0; stat.data.stt = 0; }; scT.stop(); scT = s_theme.play(0, 10000, stT); } function gotoscore(_arg1:Event){ Mouse.show(); addChild(Main2.agi); Main2.agi.showScoreboardList(); } function gotosite(_arg1:Event){ var _local2:URLRequest; var _local3:*; _local3 = "http://www.notdoppler.com/?ref=allweneedisbrain"; _local2 = new URLRequest(_local3); navigateToURL(_local2, "_blank"); } function zakrKred(_arg1:Event){ chik1(); if (Parent.cred.currentFrame == 15){ if (Parent.cred.menuC.adrs != null){ Parent.cred.menuC.adrs.removeEventListener(MouseEvent.CLICK, letters); }; Parent.cred.menuC.tudas.removeEventListener(MouseEvent.CLICK, tudasudas); Parent.cred.menuC.zakr.removeEventListener(MouseEvent.CLICK, zakrKred); Parent.cred.gotoAndPlay("obr"); Parent.cred.menuC.gotoAndStop(1); Parent.cred.menuC.tudas.rotation = 0; kadr = 1; rotats = 0; }; } function delShared(_arg1:Event){ if (krestikM != null){ Parent.removeChild(krestikM); krestikM = null; }; if (krestikS != null){ Parent.removeChild(krestikS); krestikS = null; }; stat.clear(); go(); } function chik(_arg1:MouseEvent){ var _local2:SoundTransform; var _local3:Sound; var _local4:SoundChannel; if (Main2.snd){ _local2 = new SoundTransform(); _local3 = new menunavedenie(); _local2 = new SoundTransform(0.8, 0); _local4 = _local3.play(0, 0); _local4.soundTransform = _local2; }; } function delListeners(){ Parent.mMus.removeEventListener(MouseEvent.ROLL_OVER, chik); Parent.mSnd.removeEventListener(MouseEvent.ROLL_OVER, chik); Parent.btnPlay.removeEventListener(MouseEvent.ROLL_OVER, chik); Parent.btnHiSc.removeEventListener(MouseEvent.ROLL_OVER, chik); Parent.btnCredits.removeEventListener(MouseEvent.ROLL_OVER, chik); Parent.btnMore.removeEventListener(MouseEvent.ROLL_OVER, chik); Parent.btnHost.removeEventListener(MouseEvent.ROLL_OVER, chik); Parent.btnPlay.removeEventListener(MouseEvent.CLICK, c_Play); Parent.btnCredits.removeEventListener(MouseEvent.CLICK, c_Credits); Parent.mMus.removeEventListener(MouseEvent.CLICK, menMus); Parent.mSnd.removeEventListener(MouseEvent.CLICK, menSnd); arr.removeEventListener(Event.ENTER_FRAME, arrMove); Parent.sbros.removeEventListener(MouseEvent.CLICK, delShared); Parent.btnHiSc.removeEventListener(MouseEvent.CLICK, gotoscore); Parent.btnHost.removeEventListener(MouseEvent.CLICK, gotohost); Parent.btnMore.removeEventListener(MouseEvent.CLICK, gotosite); Parent.dops.removeEventListener(MouseEvent.CLICK, gotosite); Parent.armors.removeEventListener(MouseEvent.CLICK, gotosite11); Mouse.hide(); } function gotohost(_arg1:Event){ var _local2:URLRequest; var _local3:*; _local3 = "http://www.notdoppler.com/webmasters.php?ref=allweneedisbrain"; _local2 = new URLRequest(_local3); navigateToURL(_local2, "_blank"); } function c_Credits(_arg1:Event){ chik1(); if (Parent.cred.currentFrame == 1){ Parent.cred.gotoAndPlay(2); Parent.cred.menuC.adrs.addEventListener(MouseEvent.CLICK, letters); Parent.cred.menuC.tudas.addEventListener(MouseEvent.CLICK, tudasudas); Parent.cred.menuC.zakr.addEventListener(MouseEvent.CLICK, zakrKred); }; if (Parent.cred.currentFrame == 15){ if (Parent.cred.menuC.adrs != null){ Parent.cred.menuC.adrs.removeEventListener(MouseEvent.CLICK, letters); }; Parent.cred.menuC.tudas.removeEventListener(MouseEvent.CLICK, tudasudas); Parent.cred.menuC.zakr.removeEventListener(MouseEvent.CLICK, zakrKred); Parent.cred.gotoAndPlay("obr"); Parent.cred.menuC.gotoAndStop(1); Parent.cred.menuC.tudas.rotation = 0; kadr = 1; rotats = 0; }; } function opened(_arg1:Event){ stat.data.lvl = 25; go(); } function c_Play(_arg1:Event){ chik1(); goGame(); } function chik1(){ } function menSnd(_arg1:MouseEvent){ Main2.snd = !(Main2.snd); if (((Main2.snd) && (!((krestikS == null))))){ Main2.sndAlpha = 1; Parent.removeChild(krestikS); krestikS = null; stat.data.snd = 1; } else { krestikS = new krest(); krestikS.x = Parent.mSnd.x; krestikS.y = Parent.mSnd.y; Parent.addChild(krestikS); krestikS.mouseEnabled = false; krestikS.mouseChildren = false; Main2.sndAlpha = 0; stat.data.snd = 0; }; } function gotosite11(_arg1:Event){ var _local2:URLRequest; var _local3:*; _local3 = "http://armorgames.com/"; _local2 = new URLRequest(_local3); navigateToURL(_local2, "_blank"); } function arrMove(_arg1:Event){ arr.x = mouseX; arr.y = mouseY; } function go(){ var _local1:*; var _local2:*; var _local3:*; Parent = menuPic; _local1 = Parent.numChildren; _local2 = 0; while (_local2 < _local1) { _local3 = Parent.getChildAt(_local2); if ((((((((_local3 is light)) || ((_local3 is fon2s)))) || ((_local3 is f65654646)))) || ((_local3 is f090)))){ _local3.mouseEnabled = false; _local3.mouseChildren = false; }; _local2++; }; Parent.cred.gotoAndStop(1); Parent.cred.menuC.gotoAndStop(1); Parent.sbros.addEventListener(MouseEvent.CLICK, delShared); Parent.btnPlay.addEventListener(MouseEvent.CLICK, c_Play); Parent.btnHiSc.addEventListener(MouseEvent.CLICK, gotoscore); Parent.btnHost.addEventListener(MouseEvent.CLICK, gotohost); Parent.btnCredits.addEventListener(MouseEvent.CLICK, c_Credits); Parent.mMus.addEventListener(MouseEvent.CLICK, menMus); Parent.mSnd.addEventListener(MouseEvent.CLICK, menSnd); Parent.btnMore.addEventListener(MouseEvent.CLICK, gotosite); Parent.dops.addEventListener(MouseEvent.CLICK, gotosite); Parent.armors.addEventListener(MouseEvent.CLICK, gotosite11); Parent.btnPlay.addEventListener(MouseEvent.ROLL_OVER, chik); Parent.btnHiSc.addEventListener(MouseEvent.ROLL_OVER, chik); Parent.btnCredits.addEventListener(MouseEvent.ROLL_OVER, chik); Parent.btnMore.addEventListener(MouseEvent.ROLL_OVER, chik); Parent.btnHost.addEventListener(MouseEvent.ROLL_OVER, chik); Parent.mMus.addEventListener(MouseEvent.ROLL_OVER, chik); Parent.mSnd.addEventListener(MouseEvent.ROLL_OVER, chik); arr.addEventListener(Event.ENTER_FRAME, arrMove); arr.mouseEnabled = false; arr.mouseChildren = false; 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], [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 ((((stat.data.total == undefined)) || ((stat.data.total == 0)))){ stat.data.total = 0; Main2.totalScore = 0; } else { Main2.totalScore = stat.data.total; }; if ((((stat.data.stt == undefined)) || ((stat.data.stt == 1)))){ stat.data.stt = 1; stT.volume = 0.5; Main2.musAlpha = 1; } else { stT.volume = 0; Main2.musAlpha = 0; }; if ((((stat.data.snd == undefined)) || ((stat.data.snd == 1)))){ stat.data.snd = 1; Main2.snd = true; Main2.sndAlpha = 1; } else { Main2.snd = false; Main2.sndAlpha = 0; }; if ((((Main2.musAlpha == 0)) && ((krestikM == null)))){ krestikM = new krest(); krestikM.x = Parent.mMus.x; krestikM.y = Parent.mMus.y; Parent.addChild(krestikM); krestikM.mouseEnabled = false; krestikM.mouseChildren = false; }; if ((((Main2.snd == false)) && ((krestikS == null)))){ krestikS = new krest(); krestikS.x = Parent.mSnd.x; krestikS.y = Parent.mSnd.y; Parent.addChild(krestikS); krestikS.mouseEnabled = false; krestikS.mouseChildren = false; }; s_theme = new musicmenuwavewithFX(); if (scT == null){ if (krestikM != null){ stT.volume = 0; } else { stT.volume = 0.5; }; scT = s_theme.play(0, 10000, stT); }; } function tudasudas(_arg1:Event){ chik1(); Parent.cred.menuC.tudas.rotation = (rotats + 180); Parent.cred.menuC.gotoAndStop((Parent.cred.menuC.currentFrame + kadr)); kadr = -(kadr); rotats = Parent.cred.menuC.tudas.rotation; } } }//package
Section 206
//menuBig (menuBig) package { import flash.display.*; public dynamic class menuBig extends MovieClip { public var openAll:gvozd; public var armors:armr; public var mMus:btnMusic; public var btnHost:theHost; public var sbros:gvozd; public var cred:animCred; public var btnHiSc:theHig; public var btnPlay:theplay; public var mSnd:btnsound; public var dops:SimpleButton; public var btnMore:theMore; public var btnCredits:theCred; } }//package
Section 207
//menuCongrat (menuCongrat) package { import flash.display.*; public dynamic class menuCongrat extends MovieClip { public var show_btn:theShow; public var wrstm:themenus; public var submit_btn:thesubmit; public var tck1:tochka; } }//package
Section 208
//menuCr (menuCr) package { import flash.display.*; public dynamic class menuCr extends MovieClip { public var tudas:thetudasuda; public var adrs:adress; public var zakr:thekrest; public function menuCr(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 209
//menuCredits (menuCredits) package { import flash.display.*; public dynamic class menuCredits extends MovieClip { public var menuC:menuCr; public function menuCredits(){ addFrameScript(0, frame1, 29, frame30, 60, frame61); } function frame1(){ stop(); } function frame30(){ stop(); } function frame61(){ gotoAndStop(1); } } }//package
Section 210
//menuInits (menuInits) package { import flash.display.*; public dynamic class menuInits extends MovieClip { public var webm:wbmst; public var no:Символ1; public var webm1:adress1; } }//package
Section 211
//menuLevel (menuLevel) package { import flash.display.*; public dynamic class menuLevel extends MovieClip { public var mSnd1:btnsound; public var rstl1:btnReset; public var rstm1:btnmenus; public var rstdop1:SimpleButton; public var rsts1:btnSolutions; public var lvls1:btnLevels; public var mMus1:btnMusic; public var tck1:tochka; } }//package
Section 212
//menunavedenie (menunavedenie) package { import flash.media.*; public dynamic class menunavedenie extends Sound { } }//package
Section 213
//menuSelects (menuSelects) package { import flash.display.*; import flash.text.*; public dynamic class menuSelects extends MovieClip { public var l17:numberL; public var mMus:btnMusic; public var scores1:TextField; public var sbmt:thesubmit; public var scores:TextField; public var l4:numberL; public var l1:numberL; public var l5:numberL; public var srstm:themenus; public var l6:numberL; public var l2:numberL; public var l7:numberL; public var l15:numberL; public var l16:numberL; public var l13:numberL; public var l9:numberL; public var l14:numberL; public var l22:numberL; public var l10:numberL; public var l12:numberL; public var l20:numberL; public var l11:numberL; public var l21:numberL; public var l24:numberL; public var l18:numberL; public var l19:numberL; public var dops:SimpleButton; public var l23:numberL; public var l8:numberL; public var l25:numberL; public var mSnd:btnsound; public var l3:numberL; } }//package
Section 214
//menuvybor (menuvybor) package { import flash.media.*; public dynamic class menuvybor extends Sound { } }//package
Section 215
//minas (minas) package { import flash.display.*; public dynamic class minas extends MovieClip { public function minas(){ addFrameScript(15, frame16, 29, frame30); } function frame16(){ gotoAndPlay("stat"); } function frame30(){ stop(); } } }//package
Section 216
//movieTarget (movieTarget) package { import flash.display.*; public dynamic class movieTarget extends MovieClip { } }//package
Section 217
//muravei1 (muravei1) package { import flash.display.*; public dynamic class muravei1 extends MovieClip { public function muravei1(){ addFrameScript(15, frame16, 92, frame93, 139, frame140, 221, frame222, 296, frame297, 334, frame335, 372, frame373, 383, frame384, 394, frame395, 414, frame415, 435, frame436, 459, frame460, 483, frame484, 502, frame503, 521, frame522, 547, frame548, 573, frame574, 587, frame588, 601, frame602, 621, frame622, 622, frame623, 628, frame629, 629, frame630, 649, frame650, 673, frame674, 690, frame691, 691, frame692, 692, frame693); } function frame548(){ stop(); } function frame674(){ stop(); } function frame395(){ gotoAndPlay("levo"); } function frame436(){ gotoAndPlay("pravo"); } function frame602(){ stop(); } function frame297(){ gotoAndStop("stopz"); } function frame574(){ stop(); } function frame335(){ gotoAndPlay("pravo"); } function frame691(){ stop(); } function frame693(){ stop(); } function frame93(){ stop(); } function frame622(){ gotoAndStop("stopz"); } function frame16(){ stop(); } function frame503(){ stop(); } function frame460(){ stop(); } function frame623(){ gotoAndStop("stopz"); } function frame588(){ stop(); } function frame692(){ stop(); } function frame629(){ gotoAndStop("stopz"); } function frame222(){ gotoAndStop("stopz"); } function frame630(){ gotoAndStop("stopz"); } function frame522(){ stop(); } function frame484(){ stop(); } function frame373(){ gotoAndPlay("levo"); } function frame415(){ gotoAndPlay("levo"); } function frame650(){ stop(); } function frame140(){ gotoAndStop("stopz"); } function frame384(){ gotoAndPlay("pravo"); } } }//package
Section 218
//muravei2 (muravei2) package { import flash.display.*; public dynamic class muravei2 extends MovieClip { public function muravei2(){ addFrameScript(15, frame16, 92, frame93, 139, frame140, 221, frame222, 296, frame297, 334, frame335, 372, frame373, 383, frame384, 394, frame395, 414, frame415, 435, frame436, 459, frame460, 483, frame484, 502, frame503, 521, frame522, 547, frame548, 573, frame574, 587, frame588, 601, frame602, 621, frame622, 622, frame623, 628, frame629, 629, frame630, 649, frame650, 673, frame674, 690, frame691, 691, frame692, 692, frame693); } function frame548(){ stop(); } function frame674(){ stop(); } function frame395(){ gotoAndPlay("levo"); } function frame436(){ gotoAndPlay("pravo"); } function frame602(){ stop(); } function frame297(){ gotoAndStop("stopz"); } function frame574(){ stop(); } function frame335(){ gotoAndPlay("pravo"); } function frame691(){ stop(); } function frame693(){ stop(); } function frame93(){ stop(); } function frame622(){ gotoAndStop("stopz"); } function frame16(){ stop(); } function frame503(){ stop(); } function frame460(){ stop(); } function frame623(){ gotoAndStop("stopz"); } function frame588(){ stop(); } function frame692(){ stop(); } function frame629(){ gotoAndStop("stopz"); } function frame222(){ gotoAndStop("stopz"); } function frame630(){ gotoAndStop("stopz"); } function frame522(){ stop(); } function frame484(){ stop(); } function frame373(){ gotoAndPlay("levo"); } function frame415(){ gotoAndPlay("levo"); } function frame650(){ stop(); } function frame140(){ gotoAndStop("stopz"); } function frame384(){ gotoAndPlay("pravo"); } } }//package
Section 219
//muravei3 (muravei3) package { import flash.display.*; public dynamic class muravei3 extends MovieClip { public function muravei3(){ addFrameScript(15, frame16, 92, frame93, 139, frame140, 221, frame222, 296, frame297, 334, frame335, 372, frame373, 383, frame384, 394, frame395, 414, frame415, 435, frame436, 459, frame460, 483, frame484, 502, frame503, 521, frame522, 547, frame548, 573, frame574, 587, frame588, 601, frame602, 621, frame622, 622, frame623, 628, frame629, 629, frame630, 649, frame650, 673, frame674, 690, frame691, 691, frame692, 692, frame693); } function frame548(){ stop(); } function frame674(){ stop(); } function frame395(){ gotoAndPlay("levo"); } function frame436(){ gotoAndPlay("pravo"); } function frame602(){ stop(); } function frame297(){ gotoAndStop("stopz"); } function frame574(){ stop(); } function frame335(){ gotoAndPlay("pravo"); } function frame691(){ stop(); } function frame693(){ stop(); } function frame93(){ stop(); } function frame622(){ gotoAndStop("stopz"); } function frame16(){ stop(); } function frame503(){ stop(); } function frame460(){ stop(); } function frame623(){ gotoAndStop("stopz"); } function frame588(){ stop(); } function frame692(){ stop(); } function frame629(){ gotoAndStop("stopz"); } function frame222(){ gotoAndStop("stopz"); } function frame630(){ gotoAndStop("stopz"); } function frame522(){ stop(); } function frame484(){ stop(); } function frame373(){ gotoAndPlay("levo"); } function frame415(){ gotoAndPlay("levo"); } function frame650(){ stop(); } function frame140(){ gotoAndStop("stopz"); } function frame384(){ gotoAndPlay("pravo"); } } }//package
Section 220
//muravei4 (muravei4) package { import flash.display.*; public dynamic class muravei4 extends MovieClip { public function muravei4(){ addFrameScript(15, frame16, 92, frame93, 139, frame140, 221, frame222, 296, frame297, 334, frame335, 372, frame373, 383, frame384, 394, frame395, 414, frame415, 435, frame436, 459, frame460, 483, frame484, 502, frame503, 521, frame522, 547, frame548, 573, frame574, 587, frame588, 601, frame602, 621, frame622, 622, frame623, 628, frame629, 629, frame630, 649, frame650, 673, frame674, 690, frame691, 691, frame692, 692, frame693); } function frame548(){ stop(); } function frame674(){ stop(); } function frame395(){ gotoAndPlay("levo"); } function frame436(){ gotoAndPlay("pravo"); } function frame602(){ stop(); } function frame297(){ gotoAndStop("stopz"); } function frame574(){ stop(); } function frame335(){ gotoAndPlay("pravo"); } function frame691(){ stop(); } function frame693(){ stop(); } function frame93(){ stop(); } function frame622(){ gotoAndStop("stopz"); } function frame16(){ stop(); } function frame503(){ stop(); } function frame460(){ stop(); } function frame623(){ gotoAndStop("stopz"); } function frame588(){ stop(); } function frame692(){ stop(); } function frame629(){ gotoAndStop("stopz"); } function frame222(){ gotoAndStop("stopz"); } function frame630(){ gotoAndStop("stopz"); } function frame522(){ stop(); } function frame484(){ stop(); } function frame373(){ gotoAndPlay("levo"); } function frame415(){ gotoAndPlay("levo"); } function frame650(){ stop(); } function frame140(){ gotoAndStop("stopz"); } function frame384(){ gotoAndPlay("pravo"); } } }//package
Section 221
//musicgameplaywave (musicgameplaywave) package { import flash.media.*; public dynamic class musicgameplaywave extends Sound { } }//package
Section 222
//musicmenuwavewithFX (musicmenuwavewithFX) package { import flash.media.*; public dynamic class musicmenuwavewithFX extends Sound { } }//package
Section 223
//nIns (nIns) package { import flash.display.*; public dynamic class nIns extends MovieClip { public var zalaz:gvozd; public var zrzr; public function nIns(){ addFrameScript(0, frame1, 1, frame2, 19, frame20, 34, frame35, 48, frame49, 63, frame64); } function frame64(){ gotoAndStop("stat"); } function frame1(){ stop(); } function frame20(){ stop(); } function frame2(){ zrzr = 0; } function frame35(){ if (zrzr < 1){ zrzr++; gotoAndPlay("zrat"); } else { gotoAndStop(1); }; } function frame49(){ stop(); } } }//package
Section 224
//nomerUr (nomerUr) package { import flash.display.*; public dynamic class nomerUr extends MovieClip { public function nomerUr(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 225
//notDoppler_intro (notDoppler_intro) package { import flash.display.*; public dynamic class notDoppler_intro extends MovieClip { public function notDoppler_intro(){ addFrameScript(185, frame186); } function frame186(){ stop(); } } }//package
Section 226
//numberL (numberL) package { import flash.display.*; import flash.text.*; public dynamic class numberL extends MovieClip { public var nomerL:TextField; public function numberL(){ addFrameScript(0, frame1, 14, frame15, 28, frame29, 29, frame30); } function frame15(){ stop(); } function frame1(){ stop(); } function frame29(){ gotoAndStop(1); } function frame30(){ stop(); } } }//package
Section 227
//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 228
//plank_2 (plank_2) package { import flash.display.*; public dynamic class plank_2 extends MovieClip { public function plank_2(){ addFrameScript(0, frame1); } function frame1(){ this.visible = false; } } }//package
Section 229
//plank_krepl (plank_krepl) package { import flash.display.*; public dynamic class plank_krepl extends MovieClip { public var tochkakrepl:gvozd; } }//package
Section 230
//plankDynam (plankDynam) package { import flash.display.*; public dynamic class plankDynam extends MovieClip { } }//package
Section 231
//plankDynamH (plankDynamH) package { import flash.display.*; public dynamic class plankDynamH extends MovieClip { } }//package
Section 232
//plankDynamYa (plankDynamYa) package { import flash.display.*; public dynamic class plankDynamYa extends MovieClip { } }//package
Section 233
//plankDynamYa1 (plankDynamYa1) package { import flash.display.*; public dynamic class plankDynamYa1 extends MovieClip { } }//package
Section 234
//plankPad (plankPad) package { import flash.display.*; public dynamic class plankPad extends MovieClip { } }//package
Section 235
//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 236
//plitka (plitka) package { import flash.display.*; public dynamic class plitka extends MovieClip { } }//package
Section 237
//plusHalf (plusHalf) package { import flash.display.*; public dynamic class plusHalf extends MovieClip { public function plusHalf(){ addFrameScript(22, frame23); } function frame23(){ stop(); } } }//package
Section 238
//podsk (podsk) package { import flash.display.*; public dynamic class podsk extends MovieClip { public var zombos2:MovieClip; public var zombos3:MovieClip; public var zombos6:MovieClip; public var zombos4:MovieClip; public var zombos5:MovieClip; public var zombos1:MovieClip; public var tck1:tochka; public function podsk(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6); } function frame3(){ stop(); } function frame6(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame2(){ stop(); } } }//package
Section 239
//podskazka (podskazka) package { import flash.display.*; public dynamic class podskazka extends MovieClip { } }//package
Section 240
//preload (preload) package { import flash.display.*; public dynamic class preload extends MovieClip { public function preload(){ addFrameScript(99, frame100); } function frame100(){ stop(); } } }//package
Section 241
//Program (Program) package { import flash.display.*; public class Program extends Sprite { public function Program(){ var _local1:*; var _local2:AnotherClass; super(); _local1 = new init2(); _local2 = new AnotherClass(); _local1.y = 0; _local1.x = 0; addChild(_local1); } } }//package
Section 242
//prPlay (prPlay) package { import flash.display.*; public dynamic class prPlay extends SimpleButton { } }//package
Section 243
//pyk1 (pyk1) package { import flash.media.*; public dynamic class pyk1 extends Sound { } }//package
Section 244
//select2 (select2) package { import flash.display.*; import flash.events.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import caurina.transitions.*; public dynamic class select2 extends MovieClip { var hs_URL:String;// = "" var levArray:Array; var krestikM:MovieClip; var stat:SharedObject; var svet:MovieClip; var hs_score:Number;// = 0 var arr:MovieClip; var hs_view:Number;// = 2 var krestikS:MovieClip; var hs_game:String;// = "needbrain" public var Parent; var selPic:MovieClip; var mmz:Number; var hsloader;// = null public function select2():void{ selPic = new menuSelects(); arr = new tochka(); levArray = []; stat = SharedObject.getLocal("brainzombie"); hs_game = "needbrain"; hs_score = 0; hs_view = 2; hs_URL = ""; hsloader = null; super(); selPic.x = 320; selPic.y = 240; addChild(selPic); arr.x = mouseX; arr.y = mouseY; addChild(arr); addEventListener(Event.ENTER_FRAME, ini); } function goGame(){ delListeners(); Main2.lvl = mmz; removeChild(selPic); removeChild(arr); Main2(parent).newLevel(); } function ini(_arg1:Event){ if (this.parent != null){ removeEventListener(Event.ENTER_FRAME, ini); go(); }; } function chikchik(){ var _local1:SoundTransform; var _local2:Sound; var _local3:SoundChannel; if (Main2.snd){ _local1 = new SoundTransform(); _local2 = new selectornavedenie(); _local1 = new SoundTransform(0.8, 0); _local3 = _local2.play(15, 0); _local3.soundTransform = _local1; }; } function menMus(_arg1:MouseEvent){ if (krestikM != null){ menu2.stT.volume = 0.5; Parent.removeChild(krestikM); krestikM = null; Main2.musAlpha = 1; stat.data.stt = 1; } else { krestikM = new krest(); krestikM.x = Parent.mMus.x; krestikM.y = Parent.mMus.y; Parent.addChild(krestikM); krestikM.mouseEnabled = false; krestikM.mouseChildren = false; menu2.stT.volume = 0; Main2.musAlpha = 0; stat.data.stt = 0; }; menu2.scT.stop(); menu2.scT = menu2.s_theme.play(0, 10000, menu2.stT); } function gotosite(_arg1:Event){ var _local2:URLRequest; var _local3:*; _local3 = "http://www.notdoppler.com/?ref=allweneedisbrain"; _local2 = new URLRequest(_local3); navigateToURL(_local2, "_blank"); } function chik(_arg1:MouseEvent){ var _local2:SoundTransform; var _local3:Sound; var _local4:SoundChannel; if (Main2.snd){ _local2 = new SoundTransform(); _local3 = new selectornavedenie(); _local2 = new SoundTransform(0.8, 0); _local4 = _local3.play(15, 0); _local4.soundTransform = _local2; }; } function delListeners(){ var _local1:*; Mouse.hide(); if (hsloader != null){ removeChild(hsloader); hsloader = null; }; Parent.sbmt.removeEventListener(MouseEvent.ROLL_OVER, chik); Parent.mMus.removeEventListener(MouseEvent.ROLL_OVER, chik); Parent.mSnd.removeEventListener(MouseEvent.ROLL_OVER, chik); Parent.dops.removeEventListener(MouseEvent.CLICK, gotosite); Parent.srstm.removeEventListener(MouseEvent.CLICK, menuAl); if (Parent.sbmt.visible == true){ 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) { if (levArray[_local1].currentFrame < 30){ levArray[_local1].removeEventListener(MouseEvent.ROLL_OVER, inn); levArray[_local1].removeEventListener(MouseEvent.ROLL_OUT, outt); levArray[_local1].removeEventListener(MouseEvent.CLICK, klikk); }; _local1++; }; } function klikk(_arg1:MouseEvent){ var _local2:*; _local2 = _arg1.currentTarget.name.substr(1, 2); mmz = _local2; goGame(); } function submits(_arg1:Event){ var _local2:*; Mouse.show(); stat.data.sub = Main2.totalScore; Parent.sbmt.visible = false; Parent.sbmt.removeEventListener(MouseEvent.CLICK, submits); addChild(Main2.agi); _local2 = Main2.totalScore; Main2.agi.showScoreboardSubmit(_local2); } function menSnd(_arg1:MouseEvent){ Main2.snd = !(Main2.snd); if (((Main2.snd) && (!((krestikS == null))))){ Main2.sndAlpha = 1; Parent.removeChild(krestikS); krestikS = null; stat.data.snd = 1; } else { krestikS = new krest(); krestikS.x = Parent.mSnd.x; krestikS.y = Parent.mSnd.y; Parent.addChild(krestikS); krestikS.mouseEnabled = false; krestikS.mouseChildren = false; Main2.sndAlpha = 0; stat.data.snd = 0; }; } function arrMove(_arg1:Event){ arr.x = mouseX; arr.y = mouseY; } function outt(_arg1:MouseEvent){ _arg1.currentTarget.gotoAndPlay("down"); } function go(){ var _local1:*; var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:int; var _local9:*; var _local10:TextField; Parent = selPic; _local1 = Parent.numChildren; _local2 = 0; while (_local2 < _local1) { _local7 = Parent.getChildAt(_local2); if ((_local7 is TextField)){ if (_local7.text.indexOf("total score") > -1){ _local7.htmlText = ("total score: " + Main2.totalScore); }; }; if ((((((((_local7 is light)) || ((_local7 is fon5s)))) || ((_local7 is fon6s)))) || ((_local7 is f090)))){ _local7.mouseEnabled = false; _local7.mouseChildren = false; }; if ((_local7 is light)){ _local7.gotoAndStop(1); svet = _local7; }; _local2++; }; Main2.totalScore = 0; _local3 = 0; while (_local3 < stat.data.array.length) { _local8 = stat.data.array[_local3]; Main2.totalScore = (Main2.totalScore + _local8); _local3++; }; if (stat.data.sub == undefined){ stat.data.sub = 0; }; if ((((Main2.totalScore > stat.data.sub)) && ((stat.data.wonn == true)))){ Parent.sbmt.visible = true; } else { Parent.sbmt.visible = false; }; if (Parent.sbmt.visible == true){ Parent.sbmt.addEventListener(MouseEvent.CLICK, submits); }; Parent.scores.text = ("total score: " + Main2.totalScore); Parent.srstm.addEventListener(MouseEvent.CLICK, menuAl); Parent.mMus.addEventListener(MouseEvent.CLICK, menMus); Parent.mSnd.addEventListener(MouseEvent.CLICK, menSnd); Parent.dops.addEventListener(MouseEvent.CLICK, gotosite); Parent.sbmt.addEventListener(MouseEvent.ROLL_OVER, chik); Parent.mMus.addEventListener(MouseEvent.ROLL_OVER, chik); Parent.mSnd.addEventListener(MouseEvent.ROLL_OVER, chik); Parent.srstm.addEventListener(MouseEvent.ROLL_OVER, chik); arr.addEventListener(Event.ENTER_FRAME, arrMove); arr.mouseEnabled = false; arr.mouseChildren = false; if ((((Main2.musAlpha == 0)) && ((krestikM == null)))){ krestikM = new krest(); krestikM.x = Parent.mMus.x; krestikM.y = Parent.mMus.y; Parent.addChild(krestikM); krestikM.mouseEnabled = false; krestikM.mouseChildren = false; }; if ((((Main2.snd == false)) && ((krestikS == null)))){ krestikS = new krest(); krestikS.x = Parent.mSnd.x; krestikS.y = Parent.mSnd.y; Parent.addChild(krestikS); krestikS.mouseEnabled = false; krestikS.mouseChildren = false; }; _local4 = Parent.numChildren; _local5 = 0; while (_local5 < _local4) { _local9 = Parent.getChildAt(_local5); if ((_local9 is numberL)){ if (_local9.name.substr(1, 2) < (stat.data.lvl + 1)){ _local9.gotoAndStop(1); } else { _local9.gotoAndStop(30); }; _local9.mouseChildren = false; levArray.push(_local9); _local10 = _local9.nomerL; _local10.text = ("" + _local9.name.substr(1, 2)); }; _local5++; }; _local6 = 0; while (_local6 < levArray.length) { if (levArray[_local6].currentFrame < 30){ levArray[_local6].addEventListener(MouseEvent.ROLL_OVER, inn); levArray[_local6].addEventListener(MouseEvent.ROLL_OUT, outt); levArray[_local6].addEventListener(MouseEvent.CLICK, klikk); }; _local6++; }; } function inn(_arg1:MouseEvent){ var _local2:*; chikchik(); _arg1.currentTarget.gotoAndPlay("up"); svet.gotoAndStop(_arg1.currentTarget.name.substr(1, 2)); _local2 = _arg1.currentTarget.name.substr(1, 2); Parent.scores1.text = ("Level score: " + stat.data.array[(_local2 - 1)]); } function menuAl(_arg1:Event){ delListeners(); removeChild(selPic); removeChild(arr); Main2(parent).toMenu(); } } }//package
Section 245
//selectornavedenie (selectornavedenie) package { import flash.media.*; public dynamic class selectornavedenie extends Sound { } }//package
Section 246
//selectorvybor (selectorvybor) package { import flash.media.*; public dynamic class selectorvybor extends Sound { } }//package
Section 247
//theBall (theBall) package { import flash.display.*; public dynamic class theBall extends MovieClip { } }//package
Section 248
//theCred (theCred) package { import flash.display.*; public dynamic class theCred extends SimpleButton { } }//package
Section 249
//theHig (theHig) package { import flash.display.*; public dynamic class theHig extends SimpleButton { } }//package
Section 250
//theHost (theHost) package { import flash.display.*; public dynamic class theHost extends SimpleButton { } }//package
Section 251
//thekrest (thekrest) package { import flash.display.*; public dynamic class thekrest extends SimpleButton { } }//package
Section 252
//themenus (themenus) package { import flash.display.*; public dynamic class themenus extends SimpleButton { } }//package
Section 253
//theMore (theMore) package { import flash.display.*; public dynamic class theMore extends SimpleButton { } }//package
Section 254
//theplay (theplay) package { import flash.display.*; public dynamic class theplay extends SimpleButton { } }//package
Section 255
//theShow (theShow) package { import flash.display.*; public dynamic class theShow extends SimpleButton { } }//package
Section 256
//thesubmit (thesubmit) package { import flash.display.*; public dynamic class thesubmit extends SimpleButton { } }//package
Section 257
//thetudasuda (thetudasuda) package { import flash.display.*; public dynamic class thetudasuda extends SimpleButton { } }//package
Section 258
//tochka (tochka) package { import flash.display.*; public dynamic class tochka extends MovieClip { public function tochka(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 259
//voda (voda) package { import flash.display.*; public dynamic class voda extends MovieClip { public function voda(){ addFrameScript(0, frame1); } function frame1(){ this.visible = false; } } }//package
Section 260
//vonisa3 (vonisa3) package { import flash.display.*; public dynamic class vonisa3 extends MovieClip { public function vonisa3(){ addFrameScript(106, frame107); } function frame107(){ stop(); } } }//package
Section 261
//wbmst (wbmst) package { import flash.display.*; public dynamic class wbmst extends SimpleButton { } }//package
Section 262
//weldannn (weldannn) package { import flash.display.*; public dynamic class weldannn extends MovieClip { } }//package
Section 263
//weldon (weldon) package { import flash.display.*; public dynamic class weldon extends MovieClip { public function weldon(){ addFrameScript(79, frame80); } function frame80(){ stop(); } } }//package
Section 264
//win2 (win2) package { import flash.display.*; import flash.events.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.ui.*; import fl.*; public dynamic class win2 extends MovieClip { var winPic:MovieClip; var show_btn:SimpleButton; var hs_URL:String;// = "" var stepp:int;// = 0 var sc:SoundChannel; var hs_score:Number;// = 0 var arr:MovieClip; var hs_view:Number;// = 2 var st:SoundTransform; var hs_game:String;// = "needbrain" var s_beep:Sound; var submit_btn:SimpleButton; public var Parent; public function win2():void{ winPic = new menuCongrat(); arr = new tochka(); st = new SoundTransform(); stepp = 0; hs_game = "needbrain"; hs_score = 0; hs_view = 2; hs_URL = ""; super(); winPic.x = 320; winPic.y = 240; addChild(winPic); arr.x = mouseX; arr.y = mouseY; addChild(arr); addEventListener(Event.ENTER_FRAME, init111); } function init111(_arg1:Event){ removeEventListener(Event.ENTER_FRAME, init111); go(); } function handleSubmitClick(_arg1:MouseEvent):void{ var _local2:*; Mouse.show(); addChild(Main2.agi); Parent.submit_btn.removeEventListener(MouseEvent.CLICK, handleSubmitClick); Parent.submit_btn.visible = false; stepp = 1; _local2 = Main2.totalScore; Main2.agi.showScoreboardSubmit(_local2); } function handleShowClick(_arg1:MouseEvent):void{ Mouse.show(); addChild(Main2.agi); Main2.agi.showScoreboardList(); } function submits(_arg1:Event){ } function delListeners(){ Parent.wrstm.removeEventListener(MouseEvent.CLICK, wgoMenu); arr.removeEventListener(Event.ENTER_FRAME, arrMove); Parent.show_btn.removeEventListener(MouseEvent.CLICK, handleShowClick); if (stepp == 0){ Parent.submit_btn.removeEventListener(MouseEvent.CLICK, handleSubmitClick); }; } function wgoMenu(_arg1:Event){ delListeners(); Mouse.hide(); removeChild(winPic); removeChild(arr); Main2(parent).toMenu1(); } function arrMove(_arg1:Event){ arr.x = mouseX; arr.y = mouseY; } function go(){ var _local1:*; var _local2:*; var _local3:*; Parent = winPic; Parent.submit_btn.addEventListener(MouseEvent.CLICK, handleSubmitClick); Parent.show_btn.addEventListener(MouseEvent.CLICK, handleShowClick); if (menu2.stT.volume != 0){ menu2.stT.volume = 0; menu2.scT.stop(); }; if (Main2.snd == true){ s_beep = new gamefanfary(); sc = new SoundChannel(); st = new SoundTransform(0.5, 0); sc = s_beep.play(0, 0); sc.soundTransform = st; }; _local1 = Parent.numChildren; _local2 = 0; while (_local2 < _local1) { _local3 = Parent.getChildAt(_local2); if ((_local3 is TextField)){ if (_local3.text.indexOf("total score") > -1){ _local3.htmlText = ("total score: " + Main2.totalScore); }; }; _local2++; }; hs_score = Main2.totalScore; Parent.wrstm.addEventListener(MouseEvent.CLICK, wgoMenu); arr.addEventListener(Event.ENTER_FRAME, arrMove); arr.mouseEnabled = false; arr.mouseChildren = false; } } }//package
Section 265
//zaprets (zaprets) package { import flash.display.*; public dynamic class zaprets extends MovieClip { public function zaprets(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 266
//zona (zona) package { import flash.display.*; public dynamic class zona extends MovieClip { public function zona(){ addFrameScript(0, frame1); } function frame1(){ this.alpha = 0; } } }//package
Section 267
//zona1 (zona1) package { import flash.display.*; public dynamic class zona1 extends MovieClip { public function zona1(){ addFrameScript(0, frame1); } function frame1(){ this.alpha = 0; } } }//package
Section 268
//Символ1 (Символ1) package { import flash.display.*; public dynamic class Символ1 extends MovieClip { } }//package

Library Items

Symbol 1 GraphicUsed by:2
Symbol 2 MovieClipUses:1Used by:24
Symbol 3 MovieClip {fl.core.ComponentShim}Used by:24
Symbol 4 GraphicUsed by:5
Symbol 5 MovieClip {Button_disabledSkin}Uses:4Used by:24
Symbol 6 GraphicUsed by:7
Symbol 7 MovieClip {Button_downSkin}Uses:6Used by:24
Symbol 8 GraphicUsed by:9
Symbol 9 MovieClip {Button_emphasizedSkin}Uses:8Used by:24
Symbol 10 GraphicUsed by:11
Symbol 11 MovieClip {Button_overSkin}Uses:10Used by:24
Symbol 12 GraphicUsed by:13
Symbol 13 MovieClip {Button_selectedDisabledSkin}Uses:12Used by:24
Symbol 14 GraphicUsed by:15
Symbol 15 MovieClip {Button_selectedDownSkin}Uses:14Used by:24
Symbol 16 GraphicUsed by:17
Symbol 17 MovieClip {Button_selectedOverSkin}Uses:16Used by:24
Symbol 18 GraphicUsed by:19
Symbol 19 MovieClip {Button_selectedUpSkin}Uses:18Used by:24
Symbol 20 GraphicUsed by:21
Symbol 21 MovieClip {Button_upSkin}Uses:20Used by:24
Symbol 22 GraphicUsed by:23
Symbol 23 MovieClip {focusRectSkin}Uses:22Used by:24
Symbol 24 MovieClip {fl.controls.Button}Uses:2 3 5 7 9 11 13 15 17 19 21 23
Symbol 25 GraphicUsed by:37
Symbol 26 GraphicUsed by:37
Symbol 27 GraphicUsed by:28 32
Symbol 28 MovieClipUses:27Used by:32
Symbol 29 GraphicUsed by:32 872
Symbol 30 GraphicUsed by:31
Symbol 31 MovieClipUses:30Used by:32
Symbol 32 MovieClipUses:28 27 29 31Used by:37
Symbol 33 GraphicUsed by:37
Symbol 34 GraphicUsed by:35
Symbol 35 MovieClipUses:34Used by:36
Symbol 36 MovieClipUses:35Used by:37
Symbol 37 MovieClipUses:25 26 32 33 36
Symbol 38 GraphicUsed by:39 908
Symbol 39 MovieClipUses:38Used by:48 735 742 908
Symbol 40 GraphicUsed by:48
Symbol 41 FontUsed by:42 44 46 51 688 716 722 724 726 730 732 734 737 739 741 768 769 770 778 779 783 788 790 792 797 798 799 804 805 806 811 812 813 821 863 865 867 870 873 877 878 879 882 883 884 890 892 894 897 898 899 903 905 907 912 914 916 919 920 922 923 924 925 934 958 959 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 1348 1349
Symbol 42 TextUses:41Used by:48
Symbol 43 GraphicUsed by:48
Symbol 44 TextUses:41Used by:48
Symbol 45 GraphicUsed by:48
Symbol 46 TextUses:41Used by:48
Symbol 47 GraphicUsed by:48 735 742
Symbol 48 ButtonUses:39 40 42 43 44 45 46 47
Symbol 49 GraphicUsed by:50
Symbol 50 MovieClip {fon1}Uses:49
Symbol 51 TextUses:41Used by:52
Symbol 52 MovieClip {Символ1}Uses:51Used by:62
Symbol 53 FontUsed by:54 55 58 59 759 760 761 762 763 764 765 773
Symbol 54 TextUses:53Used by:57
Symbol 55 TextUses:53Used by:57
Symbol 56 GraphicUsed by:57
Symbol 57 Button {wbmst}Uses:54 55 56Used by:62
Symbol 58 TextUses:53Used by:61
Symbol 59 TextUses:53Used by:61
Symbol 60 GraphicUsed by:61 63 1347
Symbol 61 Button {adress1}Uses:58 59 60Used by:62
Symbol 62 MovieClip {menuInits}Uses:52 57 61
Symbol 63 MovieClip {cepeme}Uses:60
Symbol 64 GraphicUsed by:65 66 67 68
Symbol 65 MovieClip {Eye4}Uses:64Used by:1040 1041
Symbol 66 MovieClip {Eye3}Uses:64Used by:1011 1012
Symbol 67 MovieClip {Eye1}Uses:64Used by:940 941
Symbol 68 MovieClip {Eye5}Uses:64Used by:663 665
Symbol 69 GraphicUsed by:70
Symbol 70 MovieClip {l565}Uses:69Used by:426 448 510 527 554 566 594 598 602 620 631 717
Symbol 71 GraphicUsed by:74
Symbol 72 GraphicUsed by:74
Symbol 73 GraphicUsed by:74
Symbol 74 MovieClip {l5454535}Uses:71 72 73Used by:426 510 527 554 566 594 598 602 620 631 717
Symbol 75 BitmapUsed by:76
Symbol 76 GraphicUses:75Used by:Timeline
Symbol 77 FontUsed by:78 79
Symbol 78 EditableTextUses:77Used by:Timeline
Symbol 79 EditableTextUses:77Used by:Timeline
Symbol 80 FontUsed by:81 855 856 1343 1344
Symbol 81 TextUses:80Used by:1385
Symbol 82 GraphicUsed by:122
Symbol 83 GraphicUsed by:122
Symbol 84 GraphicUsed by:122
Symbol 85 ShapeTweeningUsed by:92
Symbol 86 ShapeTweeningUsed by:92
Symbol 87 ShapeTweeningUsed by:92
Symbol 88 ShapeTweeningUsed by:92
Symbol 89 ShapeTweeningUsed by:92
Symbol 90 ShapeTweeningUsed by:92
Symbol 91 GraphicUsed by:92 100
Symbol 92 MovieClipUses:85 86 87 88 89 90 91Used by:101
Symbol 93 ShapeTweeningUsed by:100
Symbol 94 ShapeTweeningUsed by:100
Symbol 95 ShapeTweeningUsed by:100
Symbol 96 ShapeTweeningUsed by:100
Symbol 97 ShapeTweeningUsed by:100
Symbol 98 ShapeTweeningUsed by:100
Symbol 99 GraphicUsed by:100
Symbol 100 MovieClipUses:93 94 95 91 96 97 98 99Used by:101
Symbol 101 MovieClipUses:92 100Used by:121 683 701 921
Symbol 102 GraphicUsed by:120
Symbol 103 ShapeTweeningUsed by:120
Symbol 104 ShapeTweeningUsed by:120
Symbol 105 ShapeTweeningUsed by:120
Symbol 106 ShapeTweeningUsed by:120
Symbol 107 ShapeTweeningUsed by:120
Symbol 108 ShapeTweeningUsed by:120
Symbol 109 ShapeTweeningUsed by:120
Symbol 110 ShapeTweeningUsed by:120
Symbol 111 ShapeTweeningUsed by:120
Symbol 112 ShapeTweeningUsed by:120
Symbol 113 ShapeTweeningUsed by:120
Symbol 114 ShapeTweeningUsed by:120
Symbol 115 ShapeTweeningUsed by:120
Symbol 116 ShapeTweeningUsed by:120
Symbol 117 ShapeTweeningUsed by:120
Symbol 118 ShapeTweeningUsed by:120
Symbol 119 GraphicUsed by:120
Symbol 120 MovieClipUses:102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119Used by:121 683 701 921
Symbol 121 MovieClip {ball_1}Uses:101 120Used by:122 553 564 623 632 705 717 1385
Symbol 122 MovieClip {arm}Uses:82 83 84 121Used by:1385
Symbol 123 GraphicUsed by:127 139
Symbol 124 GraphicUsed by:127 139
Symbol 125 GraphicUsed by:127 139
Symbol 126 GraphicUsed by:127 139
Symbol 127 MovieClip {blood1}Uses:123 124 125 126Used by:1385
Symbol 128 GraphicUsed by:132
Symbol 129 GraphicUsed by:132
Symbol 130 GraphicUsed by:132
Symbol 131 GraphicUsed by:132
Symbol 132 MovieClip {blood2}Uses:128 129 130 131Used by:1385
Symbol 133 GraphicUsed by:137
Symbol 134 GraphicUsed by:137
Symbol 135 GraphicUsed by:137
Symbol 136 GraphicUsed by:137
Symbol 137 MovieClip {blood3}Uses:133 134 135 136Used by:697 1385
Symbol 138 GraphicUsed by:139
Symbol 139 MovieClip {blood4}Uses:138 123 124 125 126Used by:1385
Symbol 140 GraphicUsed by:141
Symbol 141 MovieClipUses:140Used by:153 163
Symbol 142 GraphicUsed by:153
Symbol 143 GraphicUsed by:144 683 697 712 1000 1029 1058 1062
Symbol 144 MovieClipUses:143Used by:153
Symbol 145 GraphicUsed by:146 683 697 712 1000 1029 1058 1062
Symbol 146 MovieClipUses:145Used by:153
Symbol 147 GraphicUsed by:148 1000
Symbol 148 MovieClipUses:147Used by:153
Symbol 149 GraphicUsed by:150 1000
Symbol 150 MovieClipUses:149Used by:153
Symbol 151 GraphicUsed by:152 683 697 712 1000 1029 1058 1062
Symbol 152 MovieClipUses:151Used by:153
Symbol 153 MovieClip {brainBoom}Uses:141 142 144 146 148 150 152Used by:1385
Symbol 154 ShapeTweeningUsed by:163
Symbol 155 GraphicUsed by:163 1000
Symbol 156 GraphicUsed by:163
Symbol 157 ShapeTweeningUsed by:163
Symbol 158 ShapeTweeningUsed by:163
Symbol 159 ShapeTweeningUsed by:163
Symbol 160 ShapeTweeningUsed by:163
Symbol 161 GraphicUsed by:163
Symbol 162 GraphicUsed by:163
Symbol 163 MovieClip {brainDav}Uses:141 154 155 156 157 158 159 160 161 162Used by:1385
Symbol 164 GraphicUsed by:166
Symbol 165 GraphicUsed by:166
Symbol 166 Button {btnSelect}Uses:164 165Used by:1385
Symbol 167 GraphicUsed by:169
Symbol 168 GraphicUsed by:169
Symbol 169 MovieClip {bulbul}Uses:167 168Used by:713 1385
Symbol 170 GraphicUsed by:184 196
Symbol 171 GraphicUsed by:172
Symbol 172 MovieClipUses:171Used by:184 196
Symbol 173 GraphicUsed by:184
Symbol 174 ShapeTweeningUsed by:184
Symbol 175 ShapeTweeningUsed by:184
Symbol 176 ShapeTweeningUsed by:184
Symbol 177 ShapeTweeningUsed by:184
Symbol 178 GraphicUsed by:184
Symbol 179 ShapeTweeningUsed by:184
Symbol 180 ShapeTweeningUsed by:184
Symbol 181 ShapeTweeningUsed by:184
Symbol 182 GraphicUsed by:184 196
Symbol 183 GraphicUsed by:184
Symbol 184 MovieClip {drobs}Uses:170 172 173 174 175 176 177 178 179 180 181 182 183Used by:1385
Symbol 185 GraphicUsed by:196 255
Symbol 186 GraphicUsed by:196
Symbol 187 ShapeTweeningUsed by:196
Symbol 188 ShapeTweeningUsed by:196
Symbol 189 ShapeTweeningUsed by:196
Symbol 190 ShapeTweeningUsed by:196
Symbol 191 GraphicUsed by:196
Symbol 192 ShapeTweeningUsed by:196
Symbol 193 ShapeTweeningUsed by:196
Symbol 194 ShapeTweeningUsed by:196
Symbol 195 GraphicUsed by:196
Symbol 196 MovieClip {drobs2}Uses:185 170 172 186 187 188 189 190 191 192 193 194 182 195Used by:1385
Symbol 197 GraphicUsed by:198
Symbol 198 MovieClipUses:197Used by:201
Symbol 199 GraphicUsed by:200
Symbol 200 MovieClipUses:199Used by:201 684 951
Symbol 201 MovieClip {earth}Uses:198 200Used by:347 417 429 445 449 504 511 523 528 536 553 555 564 567 572 574 583 597 599 605 610 618 623 629 632 1385
Symbol 202 GraphicUsed by:203
Symbol 203 MovieClip {forZona}Uses:202Used by:1385
Symbol 204 GraphicUsed by:205
Symbol 205 MovieClip {gvozd}Uses:204Used by:252 648 859 1064 1385
Symbol 206 MovieClip {Program}Used by:1385
Symbol 207 BitmapUsed by:208
Symbol 208 GraphicUses:207Used by:209
Symbol 209 MovieClipUses:208Used by:235 348 426 442 448 455 510 516 527 533 552 554 558 566 569 573 576 594 598 602 609 615 620 626 717
Symbol 210 GraphicUsed by:211
Symbol 211 MovieClipUses:210Used by:235 348 426 455
Symbol 212 GraphicUsed by:213
Symbol 213 MovieClip {derevo}Uses:212Used by:235 348 426 442 448 455 527 533 552 558 569 573 576 594 598 602 609 615 620 1385
Symbol 214 GraphicUsed by:215
Symbol 215 MovieClipUses:214Used by:235 348 516 573
Symbol 216 GraphicUsed by:217
Symbol 217 MovieClipUses:216Used by:235 348 455 510 527 573
Symbol 218 GraphicUsed by:219
Symbol 219 MovieClipUses:218Used by:235 527 573
Symbol 220 GraphicUsed by:221
Symbol 221 MovieClipUses:220Used by:235 348 442 448 510 516 527 533 552 554 566 569 573 576 594 602 620
Symbol 222 GraphicUsed by:223
Symbol 223 MovieClipUses:222Used by:235 573
Symbol 224 GraphicUsed by:225
Symbol 225 MovieClipUses:224Used by:235 348 448 527 573
Symbol 226 GraphicUsed by:227
Symbol 227 MovieClipUses:226Used by:228
Symbol 228 MovieClipUses:227Used by:235 348 426 442 448 455 510 516 527 533 552 554 558 566 569 573 576 594 598 602 609 615 620 626 631 717
Symbol 229 GraphicUsed by:230 231
Symbol 230 MovieClipUses:229Used by:235 348 426 442 448 455 510 516 527 533 552 554 558 566 569 573 576 594 598 602 615 620 626 631 717
Symbol 231 MovieClipUses:229Used by:235 348 426 442 448 455 510 516 527 533 552 554 558 566 569 573 576 594 598 602 609 615 620 626 631 717 828 872
Symbol 232 GraphicUsed by:233
Symbol 233 MovieClipUses:232Used by:234 452 509 515 551 557 565 575 576 593 601 608 613 619 625 630
Symbol 234 MovieClipUses:233Used by:235 348 442 448 527 533 569 573 598
Symbol 235 MovieClipUses:209 211 213 215 217 219 221 223 225 228 230 231 234Used by:347
Symbol 236 GraphicUsed by:237
Symbol 237 MovieClipUses:236Used by:252 648
Symbol 238 GraphicUsed by:252 648 683 951 1000 1029 1058 1062
Symbol 239 GraphicUsed by:240
Symbol 240 MovieClipUses:239Used by:252 648 951
Symbol 241 GraphicUsed by:242
Symbol 242 MovieClipUses:241Used by:252 648 951
Symbol 243 GraphicUsed by:244
Symbol 244 MovieClipUses:243Used by:252 648 951
Symbol 245 GraphicUsed by:246
Symbol 246 MovieClipUses:245Used by:252 648 951
Symbol 247 GraphicUsed by:252 648 951
Symbol 248 ShapeTweeningUsed by:252
Symbol 249 ShapeTweeningUsed by:252
Symbol 250 ShapeTweeningUsed by:252
Symbol 251 ShapeTweeningUsed by:252
Symbol 252 MovieClip {nIns}Uses:237 238 240 242 244 246 247 205 248 249 250 251Used by:347 417 429 445 449 504 511 523 528 536 553 555 564 567 572 574 583 597 599 605 610 618 623 629 632 1385
Symbol 253 GraphicUsed by:254
Symbol 254 MovieClipUses:253Used by:347 417 429 445 449 504 511 523 528 536 553 555 564 567 572 574 583 597 599 605 610 618 623 629 859 960
Symbol 255 MovieClip {plank}Uses:185Used by:347 417 429 445 449 504 511 523 528 536 553 555 564 567 572 574 583 597 599 605 610 618 623 629 632 1385
Symbol 256 GraphicUsed by:257 854
Symbol 257 MovieClip {plankReturn}Uses:256Used by:347 417 429 445 449 504 523 528 536 553 564 567 574 597 599 618 632 1385
Symbol 258 GraphicUsed by:259
Symbol 259 MovieClip {voda}Uses:258Used by:347 445 504 523 528 536 555 564 572 574 583 605 610 618 623 629 1385
Symbol 260 GraphicUsed by:261
Symbol 261 MovieClipUses:260Used by:347 442 504 522 528 535 555 560 571 574 583 604 609 617 622 628 717
Symbol 262 GraphicUsed by:263
Symbol 263 MovieClipUses:262Used by:264
Symbol 264 MovieClip {AllWeNeedIsBrains_fla.Timeline_60}Uses:263Used by:265
Symbol 265 MovieClipUses:264Used by:347 504 528 555 574 610
Symbol 266 GraphicUsed by:338
Symbol 267 GraphicUsed by:338
Symbol 268 GraphicUsed by:338
Symbol 269 GraphicUsed by:338
Symbol 270 GraphicUsed by:338
Symbol 271 GraphicUsed by:338
Symbol 272 GraphicUsed by:338
Symbol 273 GraphicUsed by:338
Symbol 274 GraphicUsed by:338
Symbol 275 GraphicUsed by:338
Symbol 276 GraphicUsed by:338
Symbol 277 GraphicUsed by:338
Symbol 278 GraphicUsed by:338
Symbol 279 GraphicUsed by:338
Symbol 280 GraphicUsed by:338
Symbol 281 GraphicUsed by:338
Symbol 282 GraphicUsed by:338
Symbol 283 GraphicUsed by:338
Symbol 284 GraphicUsed by:338
Symbol 285 GraphicUsed by:338
Symbol 286 GraphicUsed by:338
Symbol 287 GraphicUsed by:338
Symbol 288 GraphicUsed by:338
Symbol 289 GraphicUsed by:338
Symbol 290 GraphicUsed by:338
Symbol 291 GraphicUsed by:338
Symbol 292 GraphicUsed by:338
Symbol 293 GraphicUsed by:338
Symbol 294 GraphicUsed by:338
Symbol 295 GraphicUsed by:338
Symbol 296 GraphicUsed by:338
Symbol 297 GraphicUsed by:338
Symbol 298 GraphicUsed by:338
Symbol 299 GraphicUsed by:338
Symbol 300 GraphicUsed by:338
Symbol 301 GraphicUsed by:338
Symbol 302 GraphicUsed by:338
Symbol 303 GraphicUsed by:338
Symbol 304 GraphicUsed by:338
Symbol 305 GraphicUsed by:338
Symbol 306 GraphicUsed by:338
Symbol 307 GraphicUsed by:338
Symbol 308 GraphicUsed by:338
Symbol 309 GraphicUsed by:338
Symbol 310 GraphicUsed by:338
Symbol 311 GraphicUsed by:338
Symbol 312 GraphicUsed by:338
Symbol 313 GraphicUsed by:338
Symbol 314 GraphicUsed by:338
Symbol 315 GraphicUsed by:338
Symbol 316 GraphicUsed by:338
Symbol 317 GraphicUsed by:338
Symbol 318 GraphicUsed by:338
Symbol 319 GraphicUsed by:338
Symbol 320 GraphicUsed by:338
Symbol 321 GraphicUsed by:338
Symbol 322 GraphicUsed by:338
Symbol 323 GraphicUsed by:338
Symbol 324 GraphicUsed by:338
Symbol 325 GraphicUsed by:338
Symbol 326 GraphicUsed by:338
Symbol 327 GraphicUsed by:338
Symbol 328 GraphicUsed by:338
Symbol 329 GraphicUsed by:338
Symbol 330 GraphicUsed by:338
Symbol 331 GraphicUsed by:338
Symbol 332 GraphicUsed by:338
Symbol 333 GraphicUsed by:338
Symbol 334 GraphicUsed by:338
Symbol 335 GraphicUsed by:338
Symbol 336 GraphicUsed by:338
Symbol 337 GraphicUsed by:338
Symbol 338 MovieClipUses:266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337Used by:341
Symbol 339 GraphicUsed by:340
Symbol 340 MovieClipUses:339Used by:341
Symbol 341 MovieClipUses:338 340Used by:342 444 522 535 571 604 617 622 628 717
Symbol 342 MovieClipUses:341Used by:347 504 528 555 560 574 583 610
Symbol 343 GraphicUsed by:344
Symbol 344 MovieClip {f65654646}Uses:343Used by:347 417 429 445 449 504 511 523 528 536 553 555 564 567 572 574 583 597 599 605 610 618 623 629 859 952 1385
Symbol 345 GraphicUsed by:346
Symbol 346 MovieClip {zona1}Uses:345Used by:347 417 429 445 449 504 511 523 528 536 553 555 564 567 572 574 583 597 599 605 610 618 623 629 632 1385
Symbol 347 MovieClip {levelsp2.level1}Uses:235 252 254 255 257 259 201 261 265 342 344 346Used by:1385
Symbol 348 MovieClipUses:209 211 215 213 217 221 225 228 234 230 231Used by:417
Symbol 349 GraphicUsed by:416 711
Symbol 350 GraphicUsed by:416 711
Symbol 351 GraphicUsed by:416
Symbol 352 GraphicUsed by:416
Symbol 353 GraphicUsed by:416 711
Symbol 354 ShapeTweeningUsed by:413
Symbol 355 ShapeTweeningUsed by:413
Symbol 356 ShapeTweeningUsed by:413
Symbol 357 ShapeTweeningUsed by:413
Symbol 358 ShapeTweeningUsed by:413
Symbol 359 ShapeTweeningUsed by:413
Symbol 360 ShapeTweeningUsed by:413
Symbol 361 ShapeTweeningUsed by:413
Symbol 362 ShapeTweeningUsed by:413
Symbol 363 ShapeTweeningUsed by:413
Symbol 364 ShapeTweeningUsed by:413
Symbol 365 ShapeTweeningUsed by:413
Symbol 366 ShapeTweeningUsed by:413
Symbol 367 ShapeTweeningUsed by:413
Symbol 368 ShapeTweeningUsed by:413
Symbol 369 ShapeTweeningUsed by:413
Symbol 370 ShapeTweeningUsed by:413
Symbol 371 ShapeTweeningUsed by:413
Symbol 372 ShapeTweeningUsed by:413
Symbol 373 ShapeTweeningUsed by:413
Symbol 374 ShapeTweeningUsed by:413
Symbol 375 ShapeTweeningUsed by:413
Symbol 376 ShapeTweeningUsed by:413
Symbol 377 ShapeTweeningUsed by:413
Symbol 378 ShapeTweeningUsed by:413
Symbol 379 ShapeTweeningUsed by:413
Symbol 380 ShapeTweeningUsed by:413
Symbol 381 ShapeTweeningUsed by:413
Symbol 382 ShapeTweeningUsed by:413
Symbol 383 GraphicUsed by:413
Symbol 384 ShapeTweeningUsed by:413
Symbol 385 ShapeTweeningUsed by:413
Symbol 386 GraphicUsed by:413
Symbol 387 GraphicUsed by:413
Symbol 388 GraphicUsed by:413
Symbol 389 ShapeTweeningUsed by:413
Symbol 390 ShapeTweeningUsed by:413
Symbol 391 ShapeTweeningUsed by:413
Symbol 392 ShapeTweeningUsed by:413
Symbol 393 ShapeTweeningUsed by:413
Symbol 394 ShapeTweeningUsed by:413
Symbol 395 ShapeTweeningUsed by:413
Symbol 396 ShapeTweeningUsed by:413
Symbol 397 ShapeTweeningUsed by:413
Symbol 398 ShapeTweeningUsed by:413
Symbol 399 ShapeTweeningUsed by:413
Symbol 400 ShapeTweeningUsed by:413
Symbol 401 ShapeTweeningUsed by:413
Symbol 402 ShapeTweeningUsed by:413
Symbol 403 ShapeTweeningUsed by:413
Symbol 404 ShapeTweeningUsed by:413
Symbol 405 GraphicUsed by:413
Symbol 406 GraphicUsed by:413
Symbol 407 GraphicUsed by:413
Symbol 408 GraphicUsed by:413
Symbol 409 GraphicUsed by:413
Symbol 410 GraphicUsed by:413
Symbol 411 GraphicUsed by:413
Symbol 412 GraphicUsed by:413
Symbol 413 MovieClip {AllWeNeedIsBrains_fla.5435_71}Uses:354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412Used by:416 711
Symbol 414 GraphicUsed by:416 711
Symbol 415 GraphicUsed by:416 711
Symbol 416 MovieClip {minas}Uses:349 350 351 352 353 413 414 415Used by:417 553 564
Symbol 417 MovieClip {levelsp2.level2}Uses:348 252 255 257 416 201 344 254 346Used by:1385
Symbol 418 GraphicUsed by:419
Symbol 419 MovieClip {plitka}Uses:418Used by:426 448 510 527 554 566 594 598 602 620 631 717 1385
Symbol 420 GraphicUsed by:421
Symbol 421 MovieClipUses:420Used by:426 448 554 566 598 602 620 717 926
Symbol 422 GraphicUsed by:423
Symbol 423 MovieClipUses:422Used by:426 442 448 455 502 510 527 554 558 576 594 602 609 615 620 626 717
Symbol 424 GraphicUsed by:425
Symbol 425 MovieClipUses:424Used by:426 448 510 516 533 552 554 558 566 569 594 609 615 620 626 631 951
Symbol 426 MovieClipUses:209 213 211 419 74 70 421 423 228 425 230 231Used by:429
Symbol 427 GraphicUsed by:428
Symbol 428 MovieClip {zona}Uses:427Used by:429 449 511 528 555 567 597 599 605 623 632 1385
Symbol 429 MovieClip {levelsp2.level3}Uses:426 252 255 257 201 344 254 428 346Used by:1385
Symbol 430 GraphicUsed by:431
Symbol 431 MovieClipUses:430Used by:434
Symbol 432 GraphicUsed by:433
Symbol 433 MovieClipUses:432Used by:434
Symbol 434 MovieClipUses:431 433Used by:442 513 516 533 552 620
Symbol 435 GraphicUsed by:442
Symbol 436 GraphicUsed by:437
Symbol 437 MovieClipUses:436Used by:442 516 598 602
Symbol 438 GraphicUsed by:439
Symbol 439 MovieClipUses:438Used by:442 526
Symbol 440 GraphicUsed by:441
Symbol 441 MovieClipUses:440Used by:442
Symbol 442 MovieClipUses:209 213 434 221 435 228 437 261 234 439 230 231 423 441Used by:445
Symbol 443 GraphicUsed by:444
Symbol 444 MovieClipUses:443 341Used by:445
Symbol 445 MovieClip {levelsp2.level4}Uses:442 252 254 255 257 259 346 201 444 344Used by:1385
Symbol 446 GraphicUsed by:447
Symbol 447 MovieClipUses:446Used by:448 455 554 569 620 626
Symbol 448 MovieClipUses:209 213 447 221 419 70 421 423 228 234 230 231 425 225Used by:449
Symbol 449 MovieClip {levelsp2.level5}Uses:448 252 255 257 201 344 254 428 346Used by:1385
Symbol 450 GraphicUsed by:451
Symbol 451 MovieClipUses:450Used by:455 554 558 576 590 602 607 609 615 620 626 717
Symbol 452 MovieClipUses:233Used by:455
Symbol 453 GraphicUsed by:454
Symbol 454 MovieClipUses:453Used by:455 510 516 527 533 552 554 558 566 569 576 581 594 598 602 609 615 620 626 631
Symbol 455 MovieClipUses:209 211 213 217 447 451 423 228 452 454 231 230Used by:504
Symbol 456 GraphicUsed by:501
Symbol 457 GraphicUsed by:481
Symbol 458 GraphicUsed by:481 498
Symbol 459 GraphicUsed by:481 498
Symbol 460 GraphicUsed by:481
Symbol 461 GraphicUsed by:481
Symbol 462 GraphicUsed by:481
Symbol 463 GraphicUsed by:481
Symbol 464 GraphicUsed by:481
Symbol 465 GraphicUsed by:481
Symbol 466 GraphicUsed by:481
Symbol 467 GraphicUsed by:481
Symbol 468 GraphicUsed by:481
Symbol 469 GraphicUsed by:481
Symbol 470 GraphicUsed by:481 498
Symbol 471 GraphicUsed by:481 498
Symbol 472 GraphicUsed by:481 498
Symbol 473 GraphicUsed by:481 498
Symbol 474 GraphicUsed by:481
Symbol 475 GraphicUsed by:481 498
Symbol 476 GraphicUsed by:481 498
Symbol 477 GraphicUsed by:481
Symbol 478 GraphicUsed by:481
Symbol 479 GraphicUsed by:481
Symbol 480 GraphicUsed by:481
Symbol 481 MovieClipUses:457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480Used by:501
Symbol 482 GraphicUsed by:498
Symbol 483 GraphicUsed by:498
Symbol 484 GraphicUsed by:498
Symbol 485 GraphicUsed by:498
Symbol 486 GraphicUsed by:498
Symbol 487 GraphicUsed by:498
Symbol 488 GraphicUsed by:498
Symbol 489 GraphicUsed by:498
Symbol 490 GraphicUsed by:498
Symbol 491 GraphicUsed by:498
Symbol 492 GraphicUsed by:498
Symbol 493 GraphicUsed by:498
Symbol 494 GraphicUsed by:498
Symbol 495 GraphicUsed by:498
Symbol 496 GraphicUsed by:498
Symbol 497 GraphicUsed by:498
Symbol 498 MovieClipUses:482 483 484 485 486 487 488 489 470 471 472 473 490 475 476 491 492 493 494 495 458 459 496 497Used by:501
Symbol 499 GraphicUsed by:500
Symbol 500 MovieClipUses:499Used by:501
Symbol 501 MovieClipUses:456 481 498 500Used by:504 555 564 583 597 605 610 618 629
Symbol 502 MovieClipUses:423Used by:503 953 960
Symbol 503 MovieClip {plankDynam}Uses:502Used by:504 528 536 567 610 623 1385
Symbol 504 MovieClip {levelsp2.level6}Uses:455 501 252 257 503 255 254 201 259 261 265 342 344 346Used by:1385
Symbol 505 GraphicUsed by:506
Symbol 506 MovieClipUses:505Used by:510 516 552 594
Symbol 507 GraphicUsed by:508
Symbol 508 MovieClipUses:507Used by:510 527 554 569 576 598
Symbol 509 MovieClipUses:233Used by:510
Symbol 510 MovieClipUses:209 506 217 221 508 419 70 423 74 228 425 454 509 230 231Used by:511
Symbol 511 MovieClip {levelsp2.level11}Uses:510 252 255 201 254 344 428 346Used by:1385
Symbol 512 GraphicUsed by:513
Symbol 513 MovieClipUses:512 434Used by:516
Symbol 514 GraphicUsed by:516 620
Symbol 515 MovieClipUses:233Used by:516
Symbol 516 MovieClipUses:209 221 506 215 513 434 514 228 437 230 231 425 515 454Used by:523
Symbol 517 GraphicUsed by:518
Symbol 518 MovieClipUses:517Used by:520
Symbol 519 GraphicUsed by:520
Symbol 520 MovieClip {theBall}Uses:518 519Used by:523 536 564 567 572 605 708
Symbol 521 GraphicUsed by:522
Symbol 522 MovieClipUses:521 341 261Used by:523
Symbol 523 MovieClip {levelsp2.level8}Uses:516 252 254 259 255 257 520 201 522 346 344Used by:1385
Symbol 524 GraphicUsed by:525
Symbol 525 MovieClipUses:524Used by:527 566 594 598 602 615 626 631
Symbol 526 MovieClipUses:439Used by:527
Symbol 527 MovieClipUses:209 213 217 219 225 221 419 525 70 74 423 228 508 230 526 234 231 454Used by:528
Symbol 528 MovieClip {levelsp2.level7}Uses:527 254 252 255 257 503 201 259 261 265 342 344 428 346Used by:1385
Symbol 529 GraphicUsed by:533
Symbol 530 GraphicUsed by:531
Symbol 531 MovieClipUses:530Used by:532
Symbol 532 MovieClipUses:531Used by:533 552 569 615 620
Symbol 533 MovieClipUses:209 213 221 434 529 228 425 234 532 230 231 454Used by:536
Symbol 534 GraphicUsed by:535
Symbol 535 MovieClipUses:534 341 261Used by:536
Symbol 536 MovieClip {levelsp2.level10}Uses:533 503 252 254 255 257 520 201 259 535 344 346Used by:1385
Symbol 537 GraphicUsed by:538
Symbol 538 MovieClipUses:537Used by:552
Symbol 539 GraphicUsed by:550
Symbol 540 GraphicUsed by:550
Symbol 541 GraphicUsed by:550
Symbol 542 GraphicUsed by:550
Symbol 543 GraphicUsed by:550
Symbol 544 GraphicUsed by:550
Symbol 545 GraphicUsed by:550
Symbol 546 GraphicUsed by:550
Symbol 547 GraphicUsed by:550
Symbol 548 GraphicUsed by:550
Symbol 549 GraphicUsed by:550
Symbol 550 MovieClipUses:539 540 541 542 543 544 545 546 547 548 549Used by:551 565 593
Symbol 551 MovieClip {AllWeNeedIsBrains_fla.Symbol12_128}Uses:233 550Used by:552
Symbol 552 MovieClipUses:209 213 506 538 434 228 425 221 230 231 532 551 454Used by:553
Symbol 553 MovieClip {levelsp2.level9}Uses:552 252 255 121 257 416 201 344 254 346Used by:1385
Symbol 554 MovieClipUses:209 221 447 425 419 70 421 74 423 451 508 228 231 230 454Used by:555
Symbol 555 MovieClip {levelsp2.level12}Uses:554 501 254 259 252 255 201 261 265 342 344 428 346Used by:1385
Symbol 556 GraphicUsed by:558
Symbol 557 MovieClipUses:233Used by:558
Symbol 558 MovieClipUses:209 213 451 423 556 228 425 230 231 557 454Used by:564
Symbol 559 GraphicUsed by:560
Symbol 560 MovieClipUses:559 261 342Used by:564
Symbol 561 GraphicUsed by:562
Symbol 562 MovieClip {plankDynamYa1}Uses:561Used by:563 1385
Symbol 563 MovieClip {plankDynamYa}Uses:562Used by:564 629 1385
Symbol 564 MovieClip {levelsp2.level13}Uses:558 501 252 254 259 255 257 121 520 201 560 344 563 416 346Used by:1385
Symbol 565 MovieClip {AllWeNeedIsBrains_fla.Symbol9copy_140}Uses:233 550Used by:566
Symbol 566 MovieClipUses:209 221 419 525 70 421 74 228 425 565 230 231 454Used by:567
Symbol 567 MovieClip {levelsp2.level14}Uses:566 252 255 257 520 503 201 344 254 428 346Used by:1385
Symbol 568 GraphicUsed by:569
Symbol 569 MovieClipUses:209 213 447 532 221 568 508 425 228 454 234 231 230Used by:572
Symbol 570 GraphicUsed by:571
Symbol 571 MovieClipUses:570 341 261Used by:572
Symbol 572 MovieClip {levelsp2.level15}Uses:569 252 254 255 520 201 259 571 344 346Used by:1385
Symbol 573 MovieClipUses:209 215 217 213 219 221 223 225 228 234 230 231Used by:574
Symbol 574 MovieClip {levelsp2.level16}Uses:573 259 252 254 255 257 201 261 265 342 344 346Used by:1385
Symbol 575 MovieClipUses:233Used by:576
Symbol 576 MovieClipUses:209 213 221 451 423 508 228 230 231 575 233 454Used by:583
Symbol 577 GraphicUsed by:581
Symbol 578 GraphicUsed by:579
Symbol 579 MovieClipUses:578Used by:581
Symbol 580 GraphicUsed by:581
Symbol 581 MovieClip {AllWeNeedIsBrains_fla.Timeline_150}Uses:577 579 454 580Used by:582
Symbol 582 MovieClip {plankDynamH}Uses:581Used by:583 1385
Symbol 583 MovieClip {levelsp2.level17}Uses:576 501 254 259 252 255 201 261 342 344 582 346Used by:1385
Symbol 584 GraphicUsed by:585
Symbol 585 MovieClipUses:584Used by:594 960
Symbol 586 GraphicUsed by:590
Symbol 587 GraphicUsed by:590
Symbol 588 GraphicUsed by:589
Symbol 589 MovieClipUses:588Used by:590 626
Symbol 590 MovieClipUses:586 451 587 589Used by:594
Symbol 591 GraphicUsed by:592
Symbol 592 MovieClipUses:591Used by:593 598
Symbol 593 MovieClip {AllWeNeedIsBrains_fla.Symbol8_157}Uses:550 233 592Used by:594
Symbol 594 MovieClipUses:209 213 221 506 585 590 525 425 423 419 70 74 228 454 593 230 231Used by:597
Symbol 595 GraphicUsed by:596
Symbol 596 MovieClip {plank_2}Uses:595Used by:597 599 1385
Symbol 597 MovieClip {levelsp2.level18}Uses:594 501 252 255 257 596 201 344 254 346 428Used by:1385
Symbol 598 MovieClipUses:209 213 419 525 70 421 74 228 437 508 454 234 230 231 592Used by:599
Symbol 599 MovieClip {levelsp2.level19}Uses:598 252 255 596 257 201 254 344 428 346Used by:1385
Symbol 600 GraphicUsed by:602
Symbol 601 MovieClipUses:233Used by:602
Symbol 602 MovieClipUses:209 213 221 419 74 70 421 451 525 423 600 228 230 231 437 601 454Used by:605
Symbol 603 GraphicUsed by:604
Symbol 604 MovieClipUses:603 341 261Used by:605
Symbol 605 MovieClip {levelsp2.level23}Uses:602 501 254 259 252 255 201 520 604 344 346 428Used by:1385
Symbol 606 GraphicUsed by:607
Symbol 607 MovieClipUses:606 451Used by:609
Symbol 608 MovieClipUses:233Used by:609
Symbol 609 MovieClipUses:209 213 451 607 423 261 228 231 425 608 454Used by:610
Symbol 610 MovieClip {levelsp2.level21}Uses:609 501 252 254 259 255 503 201 265 342 344 346Used by:1385
Symbol 611 GraphicUsed by:612
Symbol 612 MovieClipUses:611Used by:615 620
Symbol 613 MovieClipUses:233Used by:615
Symbol 614 GraphicUsed by:615
Symbol 615 MovieClipUses:209 213 532 612 451 525 423 425 613 454 614 228 230 231Used by:618
Symbol 616 GraphicUsed by:617
Symbol 617 MovieClipUses:616 261 341Used by:618
Symbol 618 MovieClip {levelsp2.level22}Uses:615 501 254 259 252 255 257 201 617 344 346Used by:1385
Symbol 619 MovieClipUses:233Used by:620
Symbol 620 MovieClipUses:209 434 447 221 532 213 612 451 423 419 70 421 74 514 228 425 619 454 230 231Used by:623
Symbol 621 GraphicUsed by:622
Symbol 622 MovieClipUses:621 341 261Used by:623
Symbol 623 MovieClip {levelsp2.level20}Uses:620 254 252 259 255 503 201 121 622 344 346 428Used by:1385
Symbol 624 GraphicUsed by:626
Symbol 625 MovieClipUses:233Used by:626
Symbol 626 MovieClipUses:209 447 451 525 589 423 624 228 425 625 231 230 454Used by:629
Symbol 627 GraphicUsed by:628
Symbol 628 MovieClipUses:627 261 341Used by:629
Symbol 629 MovieClip {levelsp2.level24}Uses:626 501 254 259 252 255 563 201 628 344 346Used by:1385
Symbol 630 MovieClipUses:233Used by:631
Symbol 631 MovieClipUses:419 525 70 74 228 425 630 230 231 454Used by:632
Symbol 632 MovieClip {levelsp2.level25}Uses:631 121 255 257 252 201 428 346Used by:1385
Symbol 633 GraphicUsed by:718
Symbol 634 GraphicUsed by:635
Symbol 635 MovieClipUses:634Used by:718
Symbol 636 GraphicUsed by:637
Symbol 637 MovieClipUses:636Used by:718 774
Symbol 638 BitmapUsed by:639
Symbol 639 GraphicUses:638Used by:718
Symbol 640 GraphicUsed by:717
Symbol 641 ShapeTweeningUsed by:648
Symbol 642 ShapeTweeningUsed by:648
Symbol 643 ShapeTweeningUsed by:648
Symbol 644 ShapeTweeningUsed by:648
Symbol 645 ShapeTweeningUsed by:648
Symbol 646 ShapeTweeningUsed by:648
Symbol 647 ShapeTweeningUsed by:648
Symbol 648 MovieClip {AllWeNeedIsBrains_fla.45646456456_190}Uses:237 238 240 242 244 246 641 205 642 643 644 645 646 647 247Used by:717
Symbol 649 GraphicUsed by:683
Symbol 650 GraphicUsed by:651
Symbol 651 MovieClip {AllWeNeedIsBrains_fla.vonisa1_192}Uses:650Used by:683
Symbol 652 GraphicUsed by:683
Symbol 653 GraphicUsed by:683 697 708 712 713 1062
Symbol 654 GraphicUsed by:683 697 708 712 713 1062
Symbol 655 GraphicUsed by:683 697 708 712 713 951 1000 1062
Symbol 656 GraphicUsed by:683 697 708 712 713 1062
Symbol 657 GraphicUsed by:683 697 708 712 713 1062
Symbol 658 GraphicUsed by:683 697 708 712 713 1062
Symbol 659 GraphicUsed by:683 697 708 712 713 951 1000 1062
Symbol 660 GraphicUsed by:683 697 708 712 713 951 1000 1062
Symbol 661 GraphicUsed by:683 697 708 712 713 1062
Symbol 662 GraphicUsed by:663 940 1011 1040
Symbol 663 MovieClipUses:662 68Used by:683 697 708 712 713 1062
Symbol 664 GraphicUsed by:665 941 1012 1041
Symbol 665 MovieClipUses:664 68Used by:683 697 708 712 713 1062
Symbol 666 GraphicUsed by:683 697 708 712 713 1000 1062
Symbol 667 GraphicUsed by:683 697 708 712 713 1062
Symbol 668 GraphicUsed by:683 697 708 712 713 1062
Symbol 669 GraphicUsed by:683 697 708 712 713 1000 1029 1058 1062
Symbol 670 GraphicUsed by:683 697 708 712 713 1062
Symbol 671 GraphicUsed by:683 697 708 712 713 1000 1029 1058 1062
Symbol 672 GraphicUsed by:683 697 708 712 713 1000 1029 1058 1062
Symbol 673 GraphicUsed by:683 697 708 712 713 1062
Symbol 674 GraphicUsed by:683 697 708 712 713 1062
Symbol 675 GraphicUsed by:683 697 708 712 713 1000 1062
Symbol 676 GraphicUsed by:683 697 708 712 713 1000 1062
Symbol 677 GraphicUsed by:683 697 708 712 713 1000 1029 1058 1062
Symbol 678 GraphicUsed by:683 697 708 712 713 1062
Symbol 679 GraphicUsed by:683 1062
Symbol 680 GraphicUsed by:683 697 712 1062
Symbol 681 GraphicUsed by:683 697 712 1062
Symbol 682 GraphicUsed by:683
Symbol 683 MovieClipUses:649 101 120 651 652 653 654 655 656 657 658 659 660 661 663 665 238 666 667 668 669 670 671 672 673 674 675 676 677 678 679 143 145 680 681 151 682Used by:717
Symbol 684 MovieClipUses:200Used by:717
Symbol 685 GraphicUsed by:686
Symbol 686 MovieClipUses:685Used by:687
Symbol 687 MovieClip {tochka}Uses:686Used by:697 705 717 886 926 1385
Symbol 688 TextUses:41Used by:717
Symbol 689 GraphicUsed by:694
Symbol 690 GraphicUsed by:694
Symbol 691 GraphicUsed by:694
Symbol 692 GraphicUsed by:694
Symbol 693 GraphicUsed by:694
Symbol 694 MovieClipUses:689 690 691 692 693Used by:695
Symbol 695 MovieClip {movieTarget}Uses:694Used by:697 1385
Symbol 696 GraphicUsed by:697 1062
Symbol 697 MovieClipUses:653 654 655 656 657 658 659 660 661 663 665 666 667 668 669 670 671 672 673 674 675 676 677 678 687 695 137 143 145 680 681 151 696Used by:717
Symbol 698 ShapeTweeningUsed by:705
Symbol 699 GraphicUsed by:700
Symbol 700 MovieClipUses:699Used by:701
Symbol 701 MovieClip {zaprets}Uses:101 120 700Used by:705 1385
Symbol 702 ShapeTweeningUsed by:705
Symbol 703 ShapeTweeningUsed by:705
Symbol 704 GraphicUsed by:705
Symbol 705 MovieClipUses:687 121 698 701 702 703 704Used by:717
Symbol 706 GraphicUsed by:708 712 1062
Symbol 707 GraphicUsed by:708 1000 1029 1058 1062
Symbol 708 MovieClipUses:653 654 655 656 657 658 659 660 661 663 665 666 667 668 669 670 671 672 673 674 675 676 677 678 520 706 707Used by:717
Symbol 709 GraphicUsed by:711
Symbol 710 GraphicUsed by:711
Symbol 711 MovieClipUses:349 350 709 710 353 413 414 415Used by:712
Symbol 712 MovieClipUses:653 654 655 656 657 658 659 660 661 663 665 666 667 668 669 670 671 672 673 674 711 675 676 677 678 143 145 680 681 151 706Used by:717
Symbol 713 MovieClipUses:653 654 655 656 657 658 659 660 661 663 665 666 667 668 669 670 671 672 673 674 675 676 677 678 169Used by:717
Symbol 714 BitmapUsed by:715 1213
Symbol 715 GraphicUses:714Used by:717
Symbol 716 TextUses:41Used by:717
Symbol 717 MovieClip {podsk}Uses:640 209 648 683 684 228 230 231 687 688 419 70 421 74 423 697 451 705 708 712 713 341 261 715 121 716Used by:718 1385
Symbol 718 MovieClip {helps}Uses:633 635 637 639 717Used by:1385
Symbol 719 GraphicUsed by:720
Symbol 720 MovieClipUses:719Used by:728 869 895 901 926
Symbol 721 GraphicUsed by:728
Symbol 722 TextUses:41Used by:728
Symbol 723 GraphicUsed by:728
Symbol 724 TextUses:41Used by:728
Symbol 725 GraphicUsed by:728
Symbol 726 TextUses:41Used by:728
Symbol 727 GraphicUsed by:728 895
Symbol 728 Button {btnHelps}Uses:720 721 722 723 724 725 726 727Used by:1385
Symbol 729 GraphicUsed by:735
Symbol 730 TextUses:41Used by:735
Symbol 731 GraphicUsed by:735
Symbol 732 TextUses:41Used by:735
Symbol 733 GraphicUsed by:735
Symbol 734 TextUses:41Used by:735
Symbol 735 Button {btnNext}Uses:39 729 730 731 732 733 734 47Used by:1385
Symbol 736 GraphicUsed by:742
Symbol 737 TextUses:41Used by:742
Symbol 738 GraphicUsed by:742
Symbol 739 TextUses:41Used by:742
Symbol 740 GraphicUsed by:742
Symbol 741 TextUses:41Used by:742
Symbol 742 Button {btnStart}Uses:39 736 737 738 739 740 741 47Used by:1385
Symbol 743 GraphicUsed by:744
Symbol 744 MovieClipUses:743Used by:745
Symbol 745 MovieClip {krest}Uses:744Used by:1385
Symbol 746 BitmapUsed by:747
Symbol 747 GraphicUses:746Used by:859
Symbol 748 GraphicUsed by:776
Symbol 749 GraphicUsed by:774
Symbol 750 GraphicUsed by:751 784
Symbol 751 MovieClipUses:750Used by:758 772 784
Symbol 752 GraphicUsed by:758
Symbol 753 GraphicUsed by:758 772
Symbol 754 GraphicUsed by:755
Symbol 755 MovieClipUses:754Used by:758
Symbol 756 GraphicUsed by:758
Symbol 757 GraphicUsed by:758
Symbol 758 Button {thetudasuda}Uses:751 752 753 755 756 757Used by:774
Symbol 759 TextUses:53Used by:774
Symbol 760 TextUses:53Used by:774
Symbol 761 TextUses:53Used by:774
Symbol 762 TextUses:53Used by:774
Symbol 763 TextUses:53Used by:774
Symbol 764 TextUses:53Used by:767
Symbol 765 TextUses:53Used by:767
Symbol 766 GraphicUsed by:767
Symbol 767 Button {adress}Uses:764 765 766Used by:774
Symbol 768 TextUses:41Used by:772
Symbol 769 TextUses:41Used by:772
Symbol 770 TextUses:41Used by:772
Symbol 771 GraphicUsed by:772
Symbol 772 Button {thekrest}Uses:751 753 768 769 770 771Used by:774
Symbol 773 EditableTextUses:53Used by:774
Symbol 774 MovieClip {menuCr}Uses:749 637 758 759 760 761 762 763 767 772 773Used by:776 887
Symbol 775 GraphicUsed by:776
Symbol 776 MovieClip {animCred}Uses:748 774 775Used by:859 1385
Symbol 777 GraphicUsed by:784
Symbol 778 TextUses:41Used by:784
Symbol 779 TextUses:41Used by:784
Symbol 780 GraphicUsed by:781
Symbol 781 MovieClipUses:780Used by:782 950
Symbol 782 MovieClipUses:781Used by:784 793 800 807 814 869 881 885
Symbol 783 TextUses:41Used by:784
Symbol 784 Button {theplay}Uses:751 777 778 779 782 783 750Used by:859
Symbol 785 GraphicUsed by:786 793
Symbol 786 MovieClipUses:785Used by:793
Symbol 787 GraphicUsed by:793
Symbol 788 TextUses:41Used by:793
Symbol 789 GraphicUsed by:793
Symbol 790 TextUses:41Used by:793
Symbol 791 GraphicUsed by:793
Symbol 792 TextUses:41Used by:793
Symbol 793 Button {theHig}Uses:786 787 788 789 790 782 791 792 785Used by:859
Symbol 794 GraphicUsed by:795 800
Symbol 795 MovieClipUses:794Used by:800
Symbol 796 GraphicUsed by:800
Symbol 797 TextUses:41Used by:800
Symbol 798 TextUses:41Used by:800
Symbol 799 TextUses:41Used by:800
Symbol 800 Button {theCred}Uses:795 796 797 798 782 799 794Used by:859
Symbol 801 GraphicUsed by:802 807
Symbol 802 MovieClipUses:801Used by:807
Symbol 803 GraphicUsed by:807
Symbol 804 TextUses:41Used by:807
Symbol 805 TextUses:41Used by:807
Symbol 806 TextUses:41Used by:807
Symbol 807 Button {theMore}Uses:802 803 804 805 782 806 801Used by:859
Symbol 808 GraphicUsed by:809 814
Symbol 809 MovieClipUses:808Used by:814
Symbol 810 GraphicUsed by:814
Symbol 811 TextUses:41Used by:814
Symbol 812 TextUses:41Used by:814
Symbol 813 TextUses:41Used by:814
Symbol 814 Button {theHost}Uses:809 810 811 812 782 813 808Used by:859
Symbol 815 GraphicUsed by:818
Symbol 816 GraphicUsed by:817
Symbol 817 MovieClip {Eye2}Uses:816Used by:818 1385
Symbol 818 MovieClipUses:815 817Used by:859 872
Symbol 819 GraphicUsed by:859
Symbol 820 Bitmap {fon2s}Used by:859 1385
Symbol 821 TextUses:41Used by:828
Symbol 822 GraphicUsed by:828
Symbol 823 GraphicUsed by:828
Symbol 824 GraphicUsed by:825
Symbol 825 MovieClipUses:824Used by:828 872
Symbol 826 GraphicUsed by:827
Symbol 827 MovieClipUses:826Used by:828
Symbol 828 MovieClipUses:231 821 822 823 825 827Used by:859
Symbol 829 BitmapUsed by:830
Symbol 830 GraphicUses:829Used by:831
Symbol 831 MovieClip {f090}Uses:830Used by:859 886 960 1385
Symbol 832 GraphicUsed by:833
Symbol 833 MovieClipUses:832Used by:859 886 926 960
Symbol 834 GraphicUsed by:835
Symbol 835 MovieClipUses:834Used by:840
Symbol 836 GraphicUsed by:840
Symbol 837 GraphicUsed by:838
Symbol 838 MovieClipUses:837Used by:840
Symbol 839 GraphicUsed by:840
Symbol 840 Button {btnsound}Uses:835 836 838 839Used by:859 926 960
Symbol 841 GraphicUsed by:842
Symbol 842 MovieClipUses:841Used by:847
Symbol 843 GraphicUsed by:847
Symbol 844 GraphicUsed by:845
Symbol 845 MovieClipUses:844Used by:847
Symbol 846 GraphicUsed by:847
Symbol 847 Button {btnMusic}Uses:842 843 845 846Used by:859 926 960
Symbol 848 GraphicUsed by:854
Symbol 849 GraphicUsed by:854
Symbol 850 GraphicUsed by:854
Symbol 851 GraphicUsed by:852
Symbol 852 MovieClipUses:851Used by:854
Symbol 853 GraphicUsed by:854
Symbol 854 Button {armr}Uses:848 849 850 852 853 256Used by:859
Symbol 855 TextUses:80Used by:858
Symbol 856 TextUses:80Used by:858
Symbol 857 GraphicUsed by:858
Symbol 858 ButtonUses:855 856 857Used by:859 926 960
Symbol 859 MovieClip {menuBig}Uses:747 776 784 793 800 807 814 818 819 820 344 254 828 831 833 840 847 205 854 858Used by:1385
Symbol 860 BitmapUsed by:861
Symbol 861 GraphicUses:860Used by:886
Symbol 862 GraphicUsed by:869
Symbol 863 TextUses:41Used by:869
Symbol 864 GraphicUsed by:869
Symbol 865 TextUses:41Used by:869
Symbol 866 GraphicUsed by:869
Symbol 867 TextUses:41Used by:869
Symbol 868 GraphicUsed by:869
Symbol 869 Button {themenus}Uses:720 862 863 864 865 782 866 867 868Used by:886 960
Symbol 870 TextUses:41Used by:872
Symbol 871 GraphicUsed by:872
Symbol 872 MovieClipUses:231 870 871 29 825 818Used by:886
Symbol 873 EditableTextUses:41Used by:886
Symbol 874 GraphicUsed by:875
Symbol 875 MovieClipUses:874Used by:881 885
Symbol 876 GraphicUsed by:881 885
Symbol 877 TextUses:41Used by:881
Symbol 878 TextUses:41Used by:881
Symbol 879 TextUses:41Used by:881
Symbol 880 GraphicUsed by:881 885
Symbol 881 Button {thesubmit}Uses:875 876 877 878 782 879 880Used by:886 960
Symbol 882 TextUses:41Used by:885
Symbol 883 TextUses:41Used by:885
Symbol 884 TextUses:41Used by:885
Symbol 885 Button {theShow}Uses:875 876 882 883 782 884 880Used by:886
Symbol 886 MovieClip {menuCongrat}Uses:861 687 831 869 872 873 881 885 833Used by:1385
Symbol 887 MovieClip {menuCredits}Uses:774Used by:1385
Symbol 888 GraphicUsed by:926
Symbol 889 GraphicUsed by:895
Symbol 890 TextUses:41Used by:895
Symbol 891 GraphicUsed by:895
Symbol 892 TextUses:41Used by:895
Symbol 893 GraphicUsed by:895
Symbol 894 TextUses:41Used by:895
Symbol 895 Button {btnReset}Uses:720 889 890 891 892 893 894 727Used by:926
Symbol 896 GraphicUsed by:901
Symbol 897 TextUses:41Used by:901
Symbol 898 TextUses:41Used by:901
Symbol 899 TextUses:41Used by:901
Symbol 900 GraphicUsed by:901
Symbol 901 Button {btnmenus}Uses:720 896 897 898 899 900Used by:926
Symbol 902 GraphicUsed by:908
Symbol 903 TextUses:41Used by:908
Symbol 904 GraphicUsed by:908
Symbol 905 TextUses:41Used by:908
Symbol 906 GraphicUsed by:908
Symbol 907 TextUses:41Used by:908
Symbol 908 Button {btnLevels}Uses:39 902 903 904 905 906 907 38Used by:926
Symbol 909 GraphicUsed by:910
Symbol 910 MovieClipUses:909Used by:918
Symbol 911 GraphicUsed by:918
Symbol 912 TextUses:41Used by:918
Symbol 913 GraphicUsed by:918
Symbol 914 TextUses:41Used by:918
Symbol 915 GraphicUsed by:918
Symbol 916 TextUses:41Used by:918
Symbol 917 GraphicUsed by:918
Symbol 918 Button {btnSolutions}Uses:910 911 912 913 914 915 916 917Used by:926
Symbol 919 TextUses:41Used by:926
Symbol 920 TextUses:41Used by:926
Symbol 921 MovieClipUses:101 120Used by:926
Symbol 922 TextUses:41Used by:926
Symbol 923 EditableTextUses:41Used by:926
Symbol 924 EditableTextUses:41Used by:926
Symbol 925 EditableTextUses:41Used by:926
Symbol 926 MovieClip {menuLevel}Uses:720 888 421 833 895 901 908 918 840 919 920 921 922 847 923 924 925 858 687Used by:1385
Symbol 927 BitmapUsed by:928
Symbol 928 GraphicUses:927Used by:929
Symbol 929 MovieClipUses:928Used by:960
Symbol 930 BitmapUsed by:931
Symbol 931 GraphicUses:930Used by:960
Symbol 932 GraphicUsed by:933
Symbol 933 MovieClipUses:932Used by:951
Symbol 934 EditableTextUses:41Used by:951
Symbol 935 GraphicUsed by:951
Symbol 936 GraphicUsed by:951 1000
Symbol 937 GraphicUsed by:951 1000
Symbol 938 GraphicUsed by:951 1000
Symbol 939 GraphicUsed by:951 1000
Symbol 940 MovieClipUses:662 67Used by:951 1000
Symbol 941 MovieClipUses:664 67Used by:951 1000
Symbol 942 GraphicUsed by:951
Symbol 943 GraphicUsed by:951 1000
Symbol 944 GraphicUsed by:951 1000
Symbol 945 GraphicUsed by:951
Symbol 946 GraphicUsed by:951
Symbol 947 GraphicUsed by:951
Symbol 948 GraphicUsed by:951
Symbol 949 GraphicUsed by:951
Symbol 950 MovieClipUses:781Used by:951
Symbol 951 MovieClip {numberL}Uses:247 933 238 240 242 244 246 934 200 425 935 936 937 938 939 659 940 941 942 660 943 655 944 945 946 947 948 949 950Used by:960 1385
Symbol 952 MovieClip {light}Uses:344Used by:960 1385
Symbol 953 MovieClipUses:502Used by:960
Symbol 954 GraphicUsed by:955
Symbol 955 MovieClipUses:954Used by:960
Symbol 956 Bitmap {fon5s}Used by:960 1385
Symbol 957 Bitmap {fon6s}Used by:960 1385
Symbol 958 EditableTextUses:41Used by:960
Symbol 959 EditableTextUses:41Used by:960
Symbol 960 MovieClip {menuSelects}Uses:929 585 931 951 254 952 953 502 955 956 831 840 847 957 869 881 958 959 858 833Used by:1385
Symbol 961 TextUses:41Used by:986
Symbol 962 TextUses:41Used by:986
Symbol 963 TextUses:41Used by:986
Symbol 964 TextUses:41Used by:986
Symbol 965 TextUses:41Used by:986
Symbol 966 TextUses:41Used by:986
Symbol 967 TextUses:41Used by:986
Symbol 968 TextUses:41Used by:986
Symbol 969 TextUses:41Used by:986
Symbol 970 TextUses:41Used by:986
Symbol 971 TextUses:41Used by:986
Symbol 972 TextUses:41Used by:986
Symbol 973 TextUses:41Used by:986
Symbol 974 TextUses:41Used by:986
Symbol 975 TextUses:41Used by:986
Symbol 976 TextUses:41Used by:986
Symbol 977 TextUses:41Used by:986
Symbol 978 TextUses:41Used by:986
Symbol 979 TextUses:41Used by:986
Symbol 980 TextUses:41Used by:986
Symbol 981 TextUses:41Used by:986
Symbol 982 TextUses:41Used by:986
Symbol 983 TextUses:41Used by:986
Symbol 984 TextUses:41Used by:986
Symbol 985 TextUses:41Used by:986
Symbol 986 MovieClip {nomerUr}Uses:961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985Used by:1385
Symbol 987 GraphicUsed by:1000
Symbol 988 GraphicUsed by:1000
Symbol 989 GraphicUsed by:1000
Symbol 990 GraphicUsed by:1000
Symbol 991 GraphicUsed by:1000
Symbol 992 GraphicUsed by:1000
Symbol 993 GraphicUsed by:1000
Symbol 994 GraphicUsed by:1000
Symbol 995 GraphicUsed by:1000 1029 1058 1062
Symbol 996 GraphicUsed by:1000
Symbol 997 GraphicUsed by:1000
Symbol 998 GraphicUsed by:1000 1029 1058 1062
Symbol 999 GraphicUsed by:1000
Symbol 1000 MovieClip {muravei1}Uses:987 936 937 655 944 938 939 659 660 943 940 941 238 666 988 989 669 990 671 672 991 992 675 676 677 993 994 143 145 147 149 151 155 707 995 996 997 998 999Used by:1385
Symbol 1001 GraphicUsed by:1029
Symbol 1002 GraphicUsed by:1029
Symbol 1003 GraphicUsed by:1029
Symbol 1004 GraphicUsed by:1029
Symbol 1005 GraphicUsed by:1029
Symbol 1006 GraphicUsed by:1029
Symbol 1007 GraphicUsed by:1029
Symbol 1008 GraphicUsed by:1029
Symbol 1009 GraphicUsed by:1029
Symbol 1010 GraphicUsed by:1029
Symbol 1011 MovieClipUses:662 66Used by:1029
Symbol 1012 MovieClipUses:664 66Used by:1029
Symbol 1013 GraphicUsed by:1029
Symbol 1014 GraphicUsed by:1029
Symbol 1015 GraphicUsed by:1029
Symbol 1016 GraphicUsed by:1029
Symbol 1017 GraphicUsed by:1029
Symbol 1018 GraphicUsed by:1029
Symbol 1019 GraphicUsed by:1029
Symbol 1020 GraphicUsed by:1029
Symbol 1021 GraphicUsed by:1029
Symbol 1022 GraphicUsed by:1029
Symbol 1023 GraphicUsed by:1029
Symbol 1024 GraphicUsed by:1029
Symbol 1025 GraphicUsed by:1029
Symbol 1026 GraphicUsed by:1029
Symbol 1027 GraphicUsed by:1029
Symbol 1028 GraphicUsed by:1029
Symbol 1029 MovieClip {muravei2}Uses:1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 238 1013 1014 1015 669 1016 671 672 1017 1018 1019 1020 677 1021 1022 143 145 1023 1024 151 1025 707 995 1026 1027 998 1028Used by:1385
Symbol 1030 GraphicUsed by:1058
Symbol 1031 GraphicUsed by:1058
Symbol 1032 GraphicUsed by:1058
Symbol 1033 GraphicUsed by:1058
Symbol 1034 GraphicUsed by:1058
Symbol 1035 GraphicUsed by:1058
Symbol 1036 GraphicUsed by:1058
Symbol 1037 GraphicUsed by:1058
Symbol 1038 GraphicUsed by:1058
Symbol 1039 GraphicUsed by:1058
Symbol 1040 MovieClipUses:662 65Used by:1058
Symbol 1041 MovieClipUses:664 65Used by:1058
Symbol 1042 GraphicUsed by:1058
Symbol 1043 GraphicUsed by:1058
Symbol 1044 GraphicUsed by:1058
Symbol 1045 GraphicUsed by:1058
Symbol 1046 GraphicUsed by:1058
Symbol 1047 GraphicUsed by:1058
Symbol 1048 GraphicUsed by:1058
Symbol 1049 GraphicUsed by:1058
Symbol 1050 GraphicUsed by:1058
Symbol 1051 GraphicUsed by:1058
Symbol 1052 GraphicUsed by:1058
Symbol 1053 GraphicUsed by:1058
Symbol 1054 GraphicUsed by:1058
Symbol 1055 GraphicUsed by:1058
Symbol 1056 GraphicUsed by:1058
Symbol 1057 GraphicUsed by:1058
Symbol 1058 MovieClip {muravei3}Uses:1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 238 1042 1043 1044 669 1045 671 672 1046 1047 1048 1049 677 1050 1051 143 145 1052 1053 151 1054 707 995 1055 1056 998 1057Used by:1385
Symbol 1059 GraphicUsed by:1062
Symbol 1060 GraphicUsed by:1062
Symbol 1061 GraphicUsed by:1062
Symbol 1062 MovieClip {muravei4}Uses:1059 653 654 655 656 657 658 659 660 661 663 665 238 666 667 668 669 670 671 672 673 674 675 676 677 678 679 143 145 680 681 151 706 707 995 696 1060 998 1061Used by:1385
Symbol 1063 GraphicUsed by:1064
Symbol 1064 MovieClip {plank_krepl}Uses:1063 205Used by:1385
Symbol 1065 GraphicUsed by:1066
Symbol 1066 MovieClip {plankPad}Uses:1065Used by:1385
Symbol 1067 BitmapUsed by:1068
Symbol 1068 GraphicUses:1067Used by:1280
Symbol 1069 BitmapUsed by:1070
Symbol 1070 GraphicUses:1069Used by:1280
Symbol 1071 BitmapUsed by:1072
Symbol 1072 GraphicUses:1071Used by:1280
Symbol 1073 BitmapUsed by:1074
Symbol 1074 GraphicUses:1073Used by:1280
Symbol 1075 BitmapUsed by:1076
Symbol 1076 GraphicUses:1075Used by:1280
Symbol 1077 BitmapUsed by:1078
Symbol 1078 GraphicUses:1077Used by:1280
Symbol 1079 BitmapUsed by:1080
Symbol 1080 GraphicUses:1079Used by:1280
Symbol 1081 BitmapUsed by:1082
Symbol 1082 GraphicUses:1081Used by:1280
Symbol 1083 BitmapUsed by:1084
Symbol 1084 GraphicUses:1083Used by:1280
Symbol 1085 BitmapUsed by:1086
Symbol 1086 GraphicUses:1085Used by:1280
Symbol 1087 BitmapUsed by:1088
Symbol 1088 GraphicUses:1087Used by:1280
Symbol 1089 BitmapUsed by:1090
Symbol 1090 GraphicUses:1089Used by:1280
Symbol 1091 BitmapUsed by:1092
Symbol 1092 GraphicUses:1091Used by:1280
Symbol 1093 BitmapUsed by:1094
Symbol 1094 GraphicUses:1093Used by:1280
Symbol 1095 BitmapUsed by:1096
Symbol 1096 GraphicUses:1095Used by:1280
Symbol 1097 BitmapUsed by:1098
Symbol 1098 GraphicUses:1097Used by:1280
Symbol 1099 BitmapUsed by:1100
Symbol 1100 GraphicUses:1099Used by:1280
Symbol 1101 BitmapUsed by:1102
Symbol 1102 GraphicUses:1101Used by:1280
Symbol 1103 BitmapUsed by:1104
Symbol 1104 GraphicUses:1103Used by:1280
Symbol 1105 BitmapUsed by:1106
Symbol 1106 GraphicUses:1105Used by:1280
Symbol 1107 BitmapUsed by:1108
Symbol 1108 GraphicUses:1107Used by:1280
Symbol 1109 BitmapUsed by:1110
Symbol 1110 GraphicUses:1109Used by:1280
Symbol 1111 BitmapUsed by:1112
Symbol 1112 GraphicUses:1111Used by:1280
Symbol 1113 BitmapUsed by:1114
Symbol 1114 GraphicUses:1113Used by:1280
Symbol 1115 BitmapUsed by:1116
Symbol 1116 GraphicUses:1115Used by:1280
Symbol 1117 BitmapUsed by:1118
Symbol 1118 GraphicUses:1117Used by:1280
Symbol 1119 BitmapUsed by:1120
Symbol 1120 GraphicUses:1119Used by:1280
Symbol 1121 BitmapUsed by:1122
Symbol 1122 GraphicUses:1121Used by:1280
Symbol 1123 BitmapUsed by:1124
Symbol 1124 GraphicUses:1123Used by:1280
Symbol 1125 BitmapUsed by:1126
Symbol 1126 GraphicUses:1125Used by:1280
Symbol 1127 BitmapUsed by:1128
Symbol 1128 GraphicUses:1127Used by:1280
Symbol 1129 BitmapUsed by:1130
Symbol 1130 GraphicUses:1129Used by:1280
Symbol 1131 BitmapUsed by:1132
Symbol 1132 GraphicUses:1131Used by:1280
Symbol 1133 BitmapUsed by:1134
Symbol 1134 GraphicUses:1133Used by:1280
Symbol 1135 BitmapUsed by:1136
Symbol 1136 GraphicUses:1135Used by:1280
Symbol 1137 BitmapUsed by:1138
Symbol 1138 GraphicUses:1137Used by:1280
Symbol 1139 BitmapUsed by:1140
Symbol 1140 GraphicUses:1139Used by:1280
Symbol 1141 BitmapUsed by:1142
Symbol 1142 GraphicUses:1141Used by:1280
Symbol 1143 BitmapUsed by:1144
Symbol 1144 GraphicUses:1143Used by:1280
Symbol 1145 BitmapUsed by:1146
Symbol 1146 GraphicUses:1145Used by:1280
Symbol 1147 BitmapUsed by:1148
Symbol 1148 GraphicUses:1147Used by:1280
Symbol 1149 BitmapUsed by:1150
Symbol 1150 GraphicUses:1149Used by:1280
Symbol 1151 BitmapUsed by:1152
Symbol 1152 GraphicUses:1151Used by:1280
Symbol 1153 BitmapUsed by:1154
Symbol 1154 GraphicUses:1153Used by:1280
Symbol 1155 BitmapUsed by:1156
Symbol 1156 GraphicUses:1155Used by:1280
Symbol 1157 BitmapUsed by:1158
Symbol 1158 GraphicUses:1157Used by:1280
Symbol 1159 BitmapUsed by:1160
Symbol 1160 GraphicUses:1159Used by:1280
Symbol 1161 BitmapUsed by:1162
Symbol 1162 GraphicUses:1161Used by:1280
Symbol 1163 BitmapUsed by:1164
Symbol 1164 GraphicUses:1163Used by:1280
Symbol 1165 BitmapUsed by:1166
Symbol 1166 GraphicUses:1165Used by:1280
Symbol 1167 BitmapUsed by:1168
Symbol 1168 GraphicUses:1167Used by:1280
Symbol 1169 BitmapUsed by:1170
Symbol 1170 GraphicUses:1169Used by:1280
Symbol 1171 BitmapUsed by:1172
Symbol 1172 GraphicUses:1171Used by:1280
Symbol 1173 BitmapUsed by:1174
Symbol 1174 GraphicUses:1173Used by:1280
Symbol 1175 BitmapUsed by:1176
Symbol 1176 GraphicUses:1175Used by:1280
Symbol 1177 BitmapUsed by:1178
Symbol 1178 GraphicUses:1177Used by:1280
Symbol 1179 BitmapUsed by:1180
Symbol 1180 GraphicUses:1179Used by:1280
Symbol 1181 BitmapUsed by:1182
Symbol 1182 GraphicUses:1181Used by:1280
Symbol 1183 BitmapUsed by:1184
Symbol 1184 GraphicUses:1183Used by:1280
Symbol 1185 BitmapUsed by:1186
Symbol 1186 GraphicUses:1185Used by:1280
Symbol 1187 BitmapUsed by:1188
Symbol 1188 GraphicUses:1187Used by:1280
Symbol 1189 BitmapUsed by:1190
Symbol 1190 GraphicUses:1189Used by:1280
Symbol 1191 BitmapUsed by:1192
Symbol 1192 GraphicUses:1191Used by:1280
Symbol 1193 BitmapUsed by:1194
Symbol 1194 GraphicUses:1193Used by:1280
Symbol 1195 BitmapUsed by:1196
Symbol 1196 GraphicUses:1195Used by:1280
Symbol 1197 BitmapUsed by:1198
Symbol 1198 GraphicUses:1197Used by:1280
Symbol 1199 BitmapUsed by:1200
Symbol 1200 GraphicUses:1199Used by:1280
Symbol 1201 BitmapUsed by:1202
Symbol 1202 GraphicUses:1201Used by:1280
Symbol 1203 BitmapUsed by:1204
Symbol 1204 GraphicUses:1203Used by:1280
Symbol 1205 BitmapUsed by:1206
Symbol 1206 GraphicUses:1205Used by:1280
Symbol 1207 BitmapUsed by:1208
Symbol 1208 GraphicUses:1207Used by:1280
Symbol 1209 BitmapUsed by:1210
Symbol 1210 GraphicUses:1209Used by:1280
Symbol 1211 BitmapUsed by:1212
Symbol 1212 GraphicUses:1211Used by:1280
Symbol 1213 GraphicUses:714Used by:1280
Symbol 1214 BitmapUsed by:1215
Symbol 1215 GraphicUses:1214Used by:1280
Symbol 1216 BitmapUsed by:1217
Symbol 1217 GraphicUses:1216Used by:1280
Symbol 1218 BitmapUsed by:1219
Symbol 1219 GraphicUses:1218Used by:1280
Symbol 1220 BitmapUsed by:1221
Symbol 1221 GraphicUses:1220Used by:1280
Symbol 1222 BitmapUsed by:1223
Symbol 1223 GraphicUses:1222Used by:1280
Symbol 1224 BitmapUsed by:1225
Symbol 1225 GraphicUses:1224Used by:1280
Symbol 1226 BitmapUsed by:1227
Symbol 1227 GraphicUses:1226Used by:1280
Symbol 1228 BitmapUsed by:1229
Symbol 1229 GraphicUses:1228Used by:1280
Symbol 1230 BitmapUsed by:1231
Symbol 1231 GraphicUses:1230Used by:1280
Symbol 1232 BitmapUsed by:1233
Symbol 1233 GraphicUses:1232Used by:1280
Symbol 1234 BitmapUsed by:1235
Symbol 1235 GraphicUses:1234Used by:1280
Symbol 1236 BitmapUsed by:1237
Symbol 1237 GraphicUses:1236Used by:1280
Symbol 1238 BitmapUsed by:1239
Symbol 1239 GraphicUses:1238Used by:1280
Symbol 1240 BitmapUsed by:1241
Symbol 1241 GraphicUses:1240Used by:1280
Symbol 1242 BitmapUsed by:1243
Symbol 1243 GraphicUses:1242Used by:1280
Symbol 1244 BitmapUsed by:1245
Symbol 1245 GraphicUses:1244Used by:1280
Symbol 1246 BitmapUsed by:1247
Symbol 1247 GraphicUses:1246Used by:1280
Symbol 1248 BitmapUsed by:1249
Symbol 1249 GraphicUses:1248Used by:1280
Symbol 1250 BitmapUsed by:1251
Symbol 1251 GraphicUses:1250Used by:1280
Symbol 1252 BitmapUsed by:1253
Symbol 1253 GraphicUses:1252Used by:1280
Symbol 1254 BitmapUsed by:1255
Symbol 1255 GraphicUses:1254Used by:1280
Symbol 1256 BitmapUsed by:1257
Symbol 1257 GraphicUses:1256Used by:1280
Symbol 1258 BitmapUsed by:1259
Symbol 1259 GraphicUses:1258Used by:1280
Symbol 1260 BitmapUsed by:1261
Symbol 1261 GraphicUses:1260Used by:1280
Symbol 1262 BitmapUsed by:1263
Symbol 1263 GraphicUses:1262Used by:1280
Symbol 1264 BitmapUsed by:1265
Symbol 1265 GraphicUses:1264Used by:1280
Symbol 1266 BitmapUsed by:1267
Symbol 1267 GraphicUses:1266Used by:1280
Symbol 1268 BitmapUsed by:1269
Symbol 1269 GraphicUses:1268Used by:1280
Symbol 1270 BitmapUsed by:1271
Symbol 1271 GraphicUses:1270Used by:1280
Symbol 1272 BitmapUsed by:1273
Symbol 1273 GraphicUses:1272Used by:1280
Symbol 1274 BitmapUsed by:1275
Symbol 1275 GraphicUses:1274Used by:1280
Symbol 1276 BitmapUsed by:1277
Symbol 1277 GraphicUses:1276Used by:1280
Symbol 1278 BitmapUsed by:1279
Symbol 1279 GraphicUses:1278Used by:1280
Symbol 1280 MovieClip {vonisa3}Uses:1068 1070 1072 1074 1076 1078 1080 1082 1084 1086 1088 1090 1092 1094 1096 1098 1100 1102 1104 1106 1108 1110 1112 1114 1116 1118 1120 1122 1124 1126 1128 1130 1132 1134 1136 1138 1140 1142 1144 1146 1148 1150 1152 1154 1156 1158 1160 1162 1164 1166 1168 1170 1172 1174 1176 1178 1180 1182 1184 1186 1188 1190 1192 1194 1196 1198 1200 1202 1204 1206 1208 1210 1212 1213 1215 1217 1219 1221 1223 1225 1227 1229 1231 1233 1235 1237 1239 1241 1243 1245 1247 1249 1251 1253 1255 1257 1259 1261 1263 1265 1267 1269 1271 1273 1275 1277 1279Used by:1385
Symbol 1281 BitmapUsed by:1282
Symbol 1282 GraphicUses:1281Used by:1283
Symbol 1283 MovieClip {weldannn}Uses:1282Used by:1284 1385
Symbol 1284 MovieClip {weldon}Uses:1283Used by:1385
Symbol 1285 BitmapUsed by:1286
Symbol 1286 GraphicUses:1285Used by:1327
Symbol 1287 BitmapUsed by:1288
Symbol 1288 GraphicUses:1287Used by:1327
Symbol 1289 BitmapUsed by:1290
Symbol 1290 GraphicUses:1289Used by:1327
Symbol 1291 BitmapUsed by:1292
Symbol 1292 GraphicUses:1291Used by:1327
Symbol 1293 BitmapUsed by:1294
Symbol 1294 GraphicUses:1293Used by:1327
Symbol 1295 BitmapUsed by:1296
Symbol 1296 GraphicUses:1295Used by:1327
Symbol 1297 BitmapUsed by:1298
Symbol 1298 GraphicUses:1297Used by:1327
Symbol 1299 BitmapUsed by:1300
Symbol 1300 GraphicUses:1299Used by:1327
Symbol 1301 BitmapUsed by:1302
Symbol 1302 GraphicUses:1301Used by:1327
Symbol 1303 BitmapUsed by:1304
Symbol 1304 GraphicUses:1303Used by:1327
Symbol 1305 BitmapUsed by:1306
Symbol 1306 GraphicUses:1305Used by:1327
Symbol 1307 BitmapUsed by:1308
Symbol 1308 GraphicUses:1307Used by:1327
Symbol 1309 BitmapUsed by:1310
Symbol 1310 GraphicUses:1309Used by:1327
Symbol 1311 BitmapUsed by:1312
Symbol 1312 GraphicUses:1311Used by:1327
Symbol 1313 BitmapUsed by:1314
Symbol 1314 GraphicUses:1313Used by:1327
Symbol 1315 BitmapUsed by:1316
Symbol 1316 GraphicUses:1315Used by:1327
Symbol 1317 BitmapUsed by:1318
Symbol 1318 GraphicUses:1317Used by:1327
Symbol 1319 BitmapUsed by:1320
Symbol 1320 GraphicUses:1319Used by:1327
Symbol 1321 BitmapUsed by:1322
Symbol 1322 GraphicUses:1321Used by:1327
Symbol 1323 BitmapUsed by:1324
Symbol 1324 GraphicUses:1323Used by:1327
Symbol 1325 BitmapUsed by:1326
Symbol 1326 GraphicUses:1325Used by:1327
Symbol 1327 MovieClip {podskazka}Uses:1286 1288 1290 1292 1294 1296 1298 1300 1302 1304 1306 1308 1310 1312 1314 1316 1318 1320 1322 1324 1326Used by:1385
Symbol 1328 ShapeTweeningUsed by:1347
Symbol 1329 GraphicUsed by:1333
Symbol 1330 ShapeTweeningUsed by:1332 1333
Symbol 1331 GraphicUsed by:1332
Symbol 1332 MovieClip {AllWeNeedIsBrains_fla.introFlash_295}Uses:1330 1331Used by:1333
Symbol 1333 ButtonUses:1329 1332 1330Used by:1347
Symbol 1334 GraphicUsed by:1347
Symbol 1335 GraphicUsed by:1347
Symbol 1336 ShapeTweeningUsed by:1347
Symbol 1337 GraphicUsed by:1347
Symbol 1338 ShapeTweeningUsed by:1347
Symbol 1339 GraphicUsed by:1347
Symbol 1340 ShapeTweeningUsed by:1347
Symbol 1341 ShapeTweeningUsed by:1347
Symbol 1342 GraphicUsed by:1347
Symbol 1343 TextUses:80Used by:1345
Symbol 1344 TextUses:80Used by:1345
Symbol 1345 MovieClipUses:1343 1344Used by:1347
Symbol 1346 ShapeTweeningUsed by:1347
Symbol 1347 MovieClip {notDoppler_intro}Uses:1328 1333 1334 1335 1336 1337 1338 1339 1340 60 1341 1342 1345 1346 SS1Used by:1385
Symbol 1348 TextUses:41Used by:1352
Symbol 1349 TextUses:41Used by:1352
Symbol 1350 GraphicUsed by:1351
Symbol 1351 MovieClipUses:1350Used by:1352
Symbol 1352 MovieClipUses:1348 1349 1351Used by:1353
Symbol 1353 MovieClip {plusHalf}Uses:1352Used by:1385
Symbol 1354 FontUsed by:1355 1356
Symbol 1355 TextUses:1354Used by:1357
Symbol 1356 TextUses:1354Used by:1357
Symbol 1357 MovieClip {highscoreloader}Uses:1355 1356Used by:1385
Symbol 1358 Sound {ambientgameplaywave}Used by:1385
Symbol 1359 Sound {gamebulkibig}Used by:1385
Symbol 1360 Sound {gamebulkibrrrrrr}Used by:1385
Symbol 1361 Sound {gamedavkamozga}Used by:1385
Symbol 1362 Sound {gamedavkarazletanie}Used by:1385
Symbol 1363 Sound {gamedavkasharom1}Used by:1385
Symbol 1364 Sound {gamefanfary}Used by:1385
Symbol 1365 Sound {gamepoedanievmogile}Used by:1385
Symbol 1366 Sound {gameshoot}Used by:1385
Symbol 1367 Sound {gamevylazizmogily1}Used by:1385
Symbol 1368 Sound {gamevylazizmogily2}Used by:1385
Symbol 1369 Sound {gamevylazizmogily3}Used by:1385
Symbol 1370 Sound {gamevylazizmogily4}Used by:1385
Symbol 1371 Sound {gamevzryv}Used by:1385
Symbol 1372 Sound {gamewelldone}Used by:1385
Symbol 1373 Sound {gamezombieating1}Used by:1385
Symbol 1374 Sound {gamezombieating2}Used by:1385
Symbol 1375 Sound {menunavedenie}Used by:1385
Symbol 1376 Sound {menuvybor}Used by:1385
Symbol 1377 Sound {musicgameplaywave}Used by:1385
Symbol 1378 Sound {musicmenuwavewithFX}Used by:1385
Symbol 1379 Sound {selectornavedenie}Used by:1385
Symbol 1380 Sound {selectorvybor}Used by:1385
Symbol 1381 Sound {pyk1}Used by:1385
Symbol 1382 Sound {gamedavkasharom}Used by:1385
Symbol 1383 Sound {gamebloodaftershoot}Used by:1385
Symbol 1384 Sound {dzn}Used by:1385
Symbol 1385 MovieClip {EmbedClip}Uses:81 122 121 127 132 137 139 153 163 166 169 184 196 201 203 205 206 347 417 429 445 449 504 511 523 528 536 553 555 564 567 572 574 583 597 599 605 610 618 623 629 632 718 728 735 742 745 859 886 887 926 960 986 951 695 1000 1029 1058 1062 252 255 596 1064 503 582 563 562 1066 257 717 687 259 1280 1283 1284 701 428 346 213 1327 831 344 1347 820 956 957 419 776 952 817 1353 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384Used by:Timeline
Streaming Sound 1Used by:Symbol 1347 MovieClip {notDoppler_intro}

Instance Names

"zzt"Frame 1Symbol 78 EditableText
"bbb"Frame 1Symbol 79 EditableText
"no"Symbol 62 MovieClip {menuInits} Frame 1Symbol 52 MovieClip {Символ1}
"webm"Symbol 62 MovieClip {menuInits} Frame 1Symbol 57 Button {wbmst}
"webm1"Symbol 62 MovieClip {menuInits} Frame 1Symbol 61 Button {adress1}
"brarm"Symbol 122 MovieClip {arm} Frame 28Symbol 121 MovieClip {ball_1}
"zalaz"Symbol 252 MovieClip {nIns} Frame 1Symbol 205 MovieClip {gvozd}
"br_wall_vn"Symbol 551 MovieClip {AllWeNeedIsBrains_fla.Symbol12_128} Frame 1Symbol 550 MovieClip
"br_wall_vn"Symbol 551 MovieClip {AllWeNeedIsBrains_fla.Symbol12_128} Frame 1Symbol 550 MovieClip
"br_wall_vn"Symbol 551 MovieClip {AllWeNeedIsBrains_fla.Symbol12_128} Frame 1Symbol 550 MovieClip
"br_wall_vn"Symbol 551 MovieClip {AllWeNeedIsBrains_fla.Symbol12_128} Frame 1Symbol 550 MovieClip
"br_wall_vn"Symbol 551 MovieClip {AllWeNeedIsBrains_fla.Symbol12_128} Frame 1Symbol 550 MovieClip
"br_wall_vn"Symbol 551 MovieClip {AllWeNeedIsBrains_fla.Symbol12_128} Frame 1Symbol 550 MovieClip
"br_wall_vn"Symbol 551 MovieClip {AllWeNeedIsBrains_fla.Symbol12_128} Frame 1Symbol 550 MovieClip
"br_wall_vn"Symbol 551 MovieClip {AllWeNeedIsBrains_fla.Symbol12_128} Frame 1Symbol 550 MovieClip
"br_wall_vn"Symbol 551 MovieClip {AllWeNeedIsBrains_fla.Symbol12_128} Frame 1Symbol 550 MovieClip
"br_wall_vn"Symbol 565 MovieClip {AllWeNeedIsBrains_fla.Symbol9copy_140} Frame 1Symbol 550 MovieClip
"br_wall_vn"Symbol 565 MovieClip {AllWeNeedIsBrains_fla.Symbol9copy_140} Frame 1Symbol 550 MovieClip
"br_wall_vn"Symbol 565 MovieClip {AllWeNeedIsBrains_fla.Symbol9copy_140} Frame 1Symbol 550 MovieClip
"br_wall_vn"Symbol 565 MovieClip {AllWeNeedIsBrains_fla.Symbol9copy_140} Frame 1Symbol 550 MovieClip
"intervalKillAnim_0"Symbol 581 MovieClip {AllWeNeedIsBrains_fla.Timeline_150} Frame 1Symbol 579 MovieClip
"br_wall_vn"Symbol 593 MovieClip {AllWeNeedIsBrains_fla.Symbol8_157} Frame 1Symbol 550 MovieClip
"br_wall_vn"Symbol 593 MovieClip {AllWeNeedIsBrains_fla.Symbol8_157} Frame 1Symbol 550 MovieClip
"br_wall_vn"Symbol 593 MovieClip {AllWeNeedIsBrains_fla.Symbol8_157} Frame 1Symbol 550 MovieClip
"br_wall_vn"Symbol 593 MovieClip {AllWeNeedIsBrains_fla.Symbol8_157} Frame 1Symbol 550 MovieClip
"br_wall_vn"Symbol 593 MovieClip {AllWeNeedIsBrains_fla.Symbol8_157} Frame 1Symbol 550 MovieClip
"br_wall_vn"Symbol 593 MovieClip {AllWeNeedIsBrains_fla.Symbol8_157} Frame 1Symbol 550 MovieClip
"br_wall_vn"Symbol 593 MovieClip {AllWeNeedIsBrains_fla.Symbol8_157} Frame 1Symbol 550 MovieClip
"br_wall_vn"Symbol 593 MovieClip {AllWeNeedIsBrains_fla.Symbol8_157} Frame 1Symbol 550 MovieClip
"br_wall_vn"Symbol 593 MovieClip {AllWeNeedIsBrains_fla.Symbol8_157} Frame 1Symbol 550 MovieClip
"zalaz"Symbol 648 MovieClip {AllWeNeedIsBrains_fla.45646456456_190} Frame 1Symbol 205 MovieClip {gvozd}
"zombos1"Symbol 717 MovieClip {podsk} Frame 1Symbol 683 MovieClip
"tck1"Symbol 717 MovieClip {podsk} Frame 1Symbol 687 MovieClip {tochka}
"zombos2"Symbol 717 MovieClip {podsk} Frame 2Symbol 697 MovieClip
"tck1"Symbol 717 MovieClip {podsk} Frame 2Symbol 687 MovieClip {tochka}
"zombos3"Symbol 717 MovieClip {podsk} Frame 3Symbol 705 MovieClip
"tck1"Symbol 717 MovieClip {podsk} Frame 3Symbol 687 MovieClip {tochka}
"zombos4"Symbol 717 MovieClip {podsk} Frame 4Symbol 708 MovieClip
"tck1"Symbol 717 MovieClip {podsk} Frame 4Symbol 687 MovieClip {tochka}
"zombos5"Symbol 717 MovieClip {podsk} Frame 5Symbol 712 MovieClip
"tck1"Symbol 717 MovieClip {podsk} Frame 5Symbol 687 MovieClip {tochka}
"zombos6"Symbol 717 MovieClip {podsk} Frame 6Symbol 713 MovieClip
"tck1"Symbol 717 MovieClip {podsk} Frame 6Symbol 687 MovieClip {tochka}
"helping"Symbol 718 MovieClip {helps} Frame 1Symbol 717 MovieClip {podsk}
"tudas"Symbol 774 MovieClip {menuCr} Frame 1Symbol 758 Button {thetudasuda}
"adrs"Symbol 774 MovieClip {menuCr} Frame 1Symbol 767 Button {adress}
"zakr"Symbol 774 MovieClip {menuCr} Frame 1Symbol 772 Button {thekrest}
"menuC"Symbol 776 MovieClip {animCred} Frame 1Symbol 774 MovieClip {menuCr}
"cred"Symbol 859 MovieClip {menuBig} Frame 1Symbol 776 MovieClip {animCred}
"btnPlay"Symbol 859 MovieClip {menuBig} Frame 1Symbol 784 Button {theplay}
"btnHiSc"Symbol 859 MovieClip {menuBig} Frame 1Symbol 793 Button {theHig}
"btnCredits"Symbol 859 MovieClip {menuBig} Frame 1Symbol 800 Button {theCred}
"btnMore"Symbol 859 MovieClip {menuBig} Frame 1Symbol 807 Button {theMore}
"btnHost"Symbol 859 MovieClip {menuBig} Frame 1Symbol 814 Button {theHost}
"mSnd"Symbol 859 MovieClip {menuBig} Frame 1Symbol 840 Button {btnsound}
"mMus"Symbol 859 MovieClip {menuBig} Frame 1Symbol 847 Button {btnMusic}
"openAll"Symbol 859 MovieClip {menuBig} Frame 1Symbol 205 MovieClip {gvozd}
"sbros"Symbol 859 MovieClip {menuBig} Frame 1Symbol 205 MovieClip {gvozd}
"armors"Symbol 859 MovieClip {menuBig} Frame 1Symbol 854 Button {armr}
"dops"Symbol 859 MovieClip {menuBig} Frame 1Symbol 858 Button
"tck1"Symbol 886 MovieClip {menuCongrat} Frame 1Symbol 687 MovieClip {tochka}
"wrstm"Symbol 886 MovieClip {menuCongrat} Frame 1Symbol 869 Button {themenus}
"submit_btn"Symbol 886 MovieClip {menuCongrat} Frame 1Symbol 881 Button {thesubmit}
"show_btn"Symbol 886 MovieClip {menuCongrat} Frame 1Symbol 885 Button {theShow}
"menuC"Symbol 887 MovieClip {menuCredits} Frame 1Symbol 774 MovieClip {menuCr}
"rstl1"Symbol 926 MovieClip {menuLevel} Frame 1Symbol 895 Button {btnReset}
"rstm1"Symbol 926 MovieClip {menuLevel} Frame 1Symbol 901 Button {btnmenus}
"lvls1"Symbol 926 MovieClip {menuLevel} Frame 1Symbol 908 Button {btnLevels}
"rsts1"Symbol 926 MovieClip {menuLevel} Frame 1Symbol 918 Button {btnSolutions}
"mSnd1"Symbol 926 MovieClip {menuLevel} Frame 1Symbol 840 Button {btnsound}
"mMus1"Symbol 926 MovieClip {menuLevel} Frame 1Symbol 847 Button {btnMusic}
"rstdop1"Symbol 926 MovieClip {menuLevel} Frame 1Symbol 858 Button
"tck1"Symbol 926 MovieClip {menuLevel} Frame 1Symbol 687 MovieClip {tochka}
"nomerL"Symbol 951 MovieClip {numberL} Frame 1Symbol 934 EditableText
"l11"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"l1"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"l5"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"l6"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"l7"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"l22"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"l25"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"l2"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"l3"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"l4"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"l16"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"l8"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"l10"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"l13"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"l9"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"l12"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"l14"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"l15"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"l17"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"l18"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"l20"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"l19"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"l21"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"l23"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"l24"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 951 MovieClip {numberL}
"mSnd"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 840 Button {btnsound}
"mMus"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 847 Button {btnMusic}
"srstm"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 869 Button {themenus}
"sbmt"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 881 Button {thesubmit}
"scores"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 958 EditableText
"scores1"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 959 EditableText
"dops"Symbol 960 MovieClip {menuSelects} Frame 1Symbol 858 Button
"tochkakrepl"Symbol 1064 MovieClip {plank_krepl} Frame 1Symbol 205 MovieClip {gvozd}

Special Tags

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

Labels

"armgo"Symbol 122 MovieClip {arm} Frame 28
"выстрел"Symbol 127 MovieClip {blood1} Frame 1
"выстрел"Symbol 132 MovieClip {blood2} Frame 1
"выстрел"Symbol 137 MovieClip {blood3} Frame 1
"выстрел"Symbol 139 MovieClip {blood4} Frame 1
"stat"Symbol 201 MovieClip {earth} Frame 1
"razr"Symbol 201 MovieClip {earth} Frame 40
"zar"Symbol 201 MovieClip {earth} Frame 55
"stat"Symbol 252 MovieClip {nIns} Frame 1
"zrat"Symbol 252 MovieClip {nIns} Frame 21
"razr"Symbol 252 MovieClip {nIns} Frame 36
"zar"Symbol 252 MovieClip {nIns} Frame 50
"stat"Symbol 416 MovieClip {minas} Frame 1
"boom"Symbol 416 MovieClip {minas} Frame 17
"h1"Symbol 717 MovieClip {podsk} Frame 1
"h3"Symbol 717 MovieClip {podsk} Frame 2
"h6"Symbol 717 MovieClip {podsk} Frame 3
"h8"Symbol 717 MovieClip {podsk} Frame 4
"h2"Symbol 717 MovieClip {podsk} Frame 5
"h111"Symbol 717 MovieClip {podsk} Frame 6
"появляеться"Symbol 776 MovieClip {animCred} Frame 1
"исчезает"Symbol 776 MovieClip {animCred} Frame 15
"obr"Symbol 776 MovieClip {animCred} Frame 16
"obr"Symbol 887 MovieClip {menuCredits} Frame 31
"у курсора"Symbol 921 MovieClip Frame 1
"up"Symbol 951 MovieClip {numberL} Frame 2
"down"Symbol 951 MovieClip {numberL} Frame 16
"newz"Symbol 1000 MovieClip {muravei1} Frame 1
"anim1"Symbol 1000 MovieClip {muravei1} Frame 17
"stopz"Symbol 1000 MovieClip {muravei1} Frame 93
"anim2"Symbol 1000 MovieClip {muravei1} Frame 94
"anim3"Symbol 1000 MovieClip {muravei1} Frame 141
"anim4"Symbol 1000 MovieClip {muravei1} Frame 223
"vpravo"Symbol 1000 MovieClip {muravei1} Frame 298
"pravo"Symbol 1000 MovieClip {muravei1} Frame 304
"vlevo"Symbol 1000 MovieClip {muravei1} Frame 336
"levo"Symbol 1000 MovieClip {muravei1} Frame 342
"razvpravo"Symbol 1000 MovieClip {muravei1} Frame 374
"razvlevo"Symbol 1000 MovieClip {muravei1} Frame 385
"eatlevo"Symbol 1000 MovieClip {muravei1} Frame 396
"eatpravo"Symbol 1000 MovieClip {muravei1} Frame 416
"davpravo"Symbol 1000 MovieClip {muravei1} Frame 437
"davlevo"Symbol 1000 MovieClip {muravei1} Frame 461
"bahpravo"Symbol 1000 MovieClip {muravei1} Frame 485
"bahlevo"Symbol 1000 MovieClip {muravei1} Frame 504
"tonpravo"Symbol 1000 MovieClip {muravei1} Frame 525
"tonlevo"Symbol 1000 MovieClip {muravei1} Frame 551
"vzrpravo"Symbol 1000 MovieClip {muravei1} Frame 581
"vzrlevo"Symbol 1000 MovieClip {muravei1} Frame 589
"переход1"Symbol 1000 MovieClip {muravei1} Frame 603
"переход2"Symbol 1000 MovieClip {muravei1} Frame 610
"izprava"Symbol 1000 MovieClip {muravei1} Frame 617
"izleva"Symbol 1000 MovieClip {muravei1} Frame 624
"bahanfas"Symbol 1000 MovieClip {muravei1} Frame 631
"davanfas"Symbol 1000 MovieClip {muravei1} Frame 651
"zalez"Symbol 1000 MovieClip {muravei1} Frame 675
"kill"Symbol 1000 MovieClip {muravei1} Frame 692
"newz"Symbol 1029 MovieClip {muravei2} Frame 1
"anim1"Symbol 1029 MovieClip {muravei2} Frame 17
"stopz"Symbol 1029 MovieClip {muravei2} Frame 93
"anim2"Symbol 1029 MovieClip {muravei2} Frame 94
"anim3"Symbol 1029 MovieClip {muravei2} Frame 141
"anim4"Symbol 1029 MovieClip {muravei2} Frame 223
"vpravo"Symbol 1029 MovieClip {muravei2} Frame 298
"pravo"Symbol 1029 MovieClip {muravei2} Frame 304
"vlevo"Symbol 1029 MovieClip {muravei2} Frame 336
"levo"Symbol 1029 MovieClip {muravei2} Frame 342
"razvpravo"Symbol 1029 MovieClip {muravei2} Frame 374
"razvlevo"Symbol 1029 MovieClip {muravei2} Frame 385
"eatlevo"Symbol 1029 MovieClip {muravei2} Frame 396
"eatpravo"Symbol 1029 MovieClip {muravei2} Frame 416
"davpravo"Symbol 1029 MovieClip {muravei2} Frame 437
"davlevo"Symbol 1029 MovieClip {muravei2} Frame 461
"bahpravo"Symbol 1029 MovieClip {muravei2} Frame 485
"bahlevo"Symbol 1029 MovieClip {muravei2} Frame 504
"tonpravo"Symbol 1029 MovieClip {muravei2} Frame 525
"tonlevo"Symbol 1029 MovieClip {muravei2} Frame 551
"vzrpravo"Symbol 1029 MovieClip {muravei2} Frame 581
"vzrlevo"Symbol 1029 MovieClip {muravei2} Frame 589
"переход1"Symbol 1029 MovieClip {muravei2} Frame 603
"переход2"Symbol 1029 MovieClip {muravei2} Frame 610
"izprava"Symbol 1029 MovieClip {muravei2} Frame 617
"izleva"Symbol 1029 MovieClip {muravei2} Frame 624
"bahanfas"Symbol 1029 MovieClip {muravei2} Frame 631
"davanfas"Symbol 1029 MovieClip {muravei2} Frame 651
"zalez"Symbol 1029 MovieClip {muravei2} Frame 675
"kill"Symbol 1029 MovieClip {muravei2} Frame 692
"newz"Symbol 1058 MovieClip {muravei3} Frame 1
"anim1"Symbol 1058 MovieClip {muravei3} Frame 17
"stopz"Symbol 1058 MovieClip {muravei3} Frame 93
"anim2"Symbol 1058 MovieClip {muravei3} Frame 94
"anim3"Symbol 1058 MovieClip {muravei3} Frame 141
"anim4"Symbol 1058 MovieClip {muravei3} Frame 223
"vpravo"Symbol 1058 MovieClip {muravei3} Frame 298
"pravo"Symbol 1058 MovieClip {muravei3} Frame 304
"vlevo"Symbol 1058 MovieClip {muravei3} Frame 336
"levo"Symbol 1058 MovieClip {muravei3} Frame 342
"razvpravo"Symbol 1058 MovieClip {muravei3} Frame 374
"razvlevo"Symbol 1058 MovieClip {muravei3} Frame 385
"eatlevo"Symbol 1058 MovieClip {muravei3} Frame 396
"eatpravo"Symbol 1058 MovieClip {muravei3} Frame 416
"davpravo"Symbol 1058 MovieClip {muravei3} Frame 437
"davlevo"Symbol 1058 MovieClip {muravei3} Frame 461
"bahpravo"Symbol 1058 MovieClip {muravei3} Frame 485
"bahlevo"Symbol 1058 MovieClip {muravei3} Frame 504
"tonpravo"Symbol 1058 MovieClip {muravei3} Frame 525
"tonlevo"Symbol 1058 MovieClip {muravei3} Frame 551
"vzrpravo"Symbol 1058 MovieClip {muravei3} Frame 581
"vzrlevo"Symbol 1058 MovieClip {muravei3} Frame 589
"переход1"Symbol 1058 MovieClip {muravei3} Frame 603
"переход2"Symbol 1058 MovieClip {muravei3} Frame 610
"izprava"Symbol 1058 MovieClip {muravei3} Frame 617
"izleva"Symbol 1058 MovieClip {muravei3} Frame 624
"bahanfas"Symbol 1058 MovieClip {muravei3} Frame 631
"davanfas"Symbol 1058 MovieClip {muravei3} Frame 651
"zalez"Symbol 1058 MovieClip {muravei3} Frame 675
"kill"Symbol 1058 MovieClip {muravei3} Frame 692
"newz"Symbol 1062 MovieClip {muravei4} Frame 1
"anim1"Symbol 1062 MovieClip {muravei4} Frame 17
"stopz"Symbol 1062 MovieClip {muravei4} Frame 93
"anim2"Symbol 1062 MovieClip {muravei4} Frame 94
"anim3"Symbol 1062 MovieClip {muravei4} Frame 141
"anim4"Symbol 1062 MovieClip {muravei4} Frame 223
"vpravo"Symbol 1062 MovieClip {muravei4} Frame 298
"pravo"Symbol 1062 MovieClip {muravei4} Frame 304
"vlevo"Symbol 1062 MovieClip {muravei4} Frame 336
"levo"Symbol 1062 MovieClip {muravei4} Frame 342
"razvpravo"Symbol 1062 MovieClip {muravei4} Frame 374
"razvlevo"Symbol 1062 MovieClip {muravei4} Frame 385
"eatlevo"Symbol 1062 MovieClip {muravei4} Frame 396
"eatpravo"Symbol 1062 MovieClip {muravei4} Frame 416
"davpravo"Symbol 1062 MovieClip {muravei4} Frame 437
"davlevo"Symbol 1062 MovieClip {muravei4} Frame 461
"bahpravo"Symbol 1062 MovieClip {muravei4} Frame 485
"bahlevo"Symbol 1062 MovieClip {muravei4} Frame 504
"tonpravo"Symbol 1062 MovieClip {muravei4} Frame 525
"tonlevo"Symbol 1062 MovieClip {muravei4} Frame 551
"vzrpravo"Symbol 1062 MovieClip {muravei4} Frame 581
"vzrlevo"Symbol 1062 MovieClip {muravei4} Frame 589
"переход1"Symbol 1062 MovieClip {muravei4} Frame 603
"переход2"Symbol 1062 MovieClip {muravei4} Frame 610
"izprava"Symbol 1062 MovieClip {muravei4} Frame 617
"izleva"Symbol 1062 MovieClip {muravei4} Frame 624
"bahanfas"Symbol 1062 MovieClip {muravei4} Frame 631
"davanfas"Symbol 1062 MovieClip {muravei4} Frame 651
"zalez"Symbol 1062 MovieClip {muravei4} Frame 675
"kill"Symbol 1062 MovieClip {muravei4} Frame 692




https://swfchan.com/53/264273/info.shtml
Created: 14/5 -2026 09:49:29 Last modified: 14/5 -2026 09:49:29 Server time: 14/05 -2026 11:13:33