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

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

All We Need Is Brain.swf

This is the info page for
Flash #100655

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


Text
play

play

play

This game is currently site-locked NotDoppler.com
but will be available for other websites
to host on November 11.
Please check the Not Doppler
page on November 11.

[webmasters]

[webmasters]

loading

not

DOPPLER

init

use brain to lure
zombie out

and get rid of it!

help

help

help

next

next

next

start

start

start

x

x

x

Physics engyne: Box2D

Alexander Balint

Music by

Graphics by мAx(((

Developer by VladG

vladg1979@gmail.com

vladg1979@gmail.com

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
Highscore Submitter

Loading higscores...

submit score

submit score

submit score

menu

menu

menu

congratulations!

total 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

_

ActionScript [AS3]

Section 1
//45646456456_191 (AllWeNeedIsBrains_fla.45646456456_191) package AllWeNeedIsBrains_fla { import flash.display.*; public dynamic class 45646456456_191 extends MovieClip { public var zalaz:gvozd; } }//package AllWeNeedIsBrains_fla
Section 2
//5435_72 (AllWeNeedIsBrains_fla.5435_72) package AllWeNeedIsBrains_fla { import flash.display.*; public dynamic class 5435_72 extends MovieClip { public function 5435_72(){ addFrameScript(12, frame13); } function frame13(){ stop(); } } }//package AllWeNeedIsBrains_fla
Section 3
//introFlash_293 (AllWeNeedIsBrains_fla.introFlash_293) package AllWeNeedIsBrains_fla { import flash.display.*; public dynamic class introFlash_293 extends MovieClip { public function introFlash_293(){ addFrameScript(5, frame6); } function frame6(){ stop(); } } }//package AllWeNeedIsBrains_fla
Section 4
//Symbol12_129 (AllWeNeedIsBrains_fla.Symbol12_129) package AllWeNeedIsBrains_fla { import flash.display.*; public dynamic class Symbol12_129 extends MovieClip { public var br_wall_vn:MovieClip; } }//package AllWeNeedIsBrains_fla
Section 5
//Symbol8_158 (AllWeNeedIsBrains_fla.Symbol8_158) package AllWeNeedIsBrains_fla { import flash.display.*; public dynamic class Symbol8_158 extends MovieClip { public var br_wall_vn:MovieClip; } }//package AllWeNeedIsBrains_fla
Section 6
//Symbol9copy_141 (AllWeNeedIsBrains_fla.Symbol9copy_141) package AllWeNeedIsBrains_fla { import flash.display.*; public dynamic class Symbol9copy_141 extends MovieClip { public var br_wall_vn:MovieClip; } }//package AllWeNeedIsBrains_fla
Section 7
//Timeline_151 (AllWeNeedIsBrains_fla.Timeline_151) package AllWeNeedIsBrains_fla { import flash.display.*; public dynamic class Timeline_151 extends MovieClip { public var intervalKillAnim_0:MovieClip; } }//package AllWeNeedIsBrains_fla
Section 8
//Timeline_61 (AllWeNeedIsBrains_fla.Timeline_61) package AllWeNeedIsBrains_fla { import flash.display.*; public dynamic class Timeline_61 extends MovieClip { public function Timeline_61(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package AllWeNeedIsBrains_fla
Section 9
//vonisa1_193 (AllWeNeedIsBrains_fla.vonisa1_193) package AllWeNeedIsBrains_fla { import flash.display.*; public dynamic class vonisa1_193 extends MovieClip { public function vonisa1_193(){ 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 Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.display.*; public class b2DebugDraw { public var m_xformScale:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_alpha:Number;// = 1 public var m_lineThickness:Number;// = 1 public var m_drawFlags:uint; public var m_sprite:Sprite; public var m_drawScale:Number;// = 1 public static var e_coreShapeBit:uint = 4; public static var e_shapeBit:uint = 1; public static var e_centerOfMassBit:uint = 64; public static var e_aabbBit:uint = 8; public static var e_obbBit:uint = 16; public static var e_pairBit:uint = 32; public static var e_jointBit:uint = 2; public function b2DebugDraw(){ m_drawScale = 1; m_lineThickness = 1; m_alpha = 1; m_fillAlpha = 1; m_xformScale = 1; super(); m_drawFlags = 0; } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ var _local4:int; m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo(0, 0); m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); m_sprite.graphics.endFill(); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale)); } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale)); } public function GetFlags():uint{ return (m_drawFlags); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ var _local4:int; m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } } }//package Box2D.Dynamics
Section 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
//AdLoader (CPMStar.AdLoader) package CPMStar { import flash.display.*; import flash.events.*; import flash.net.*; import flash.system.*; public class AdLoader extends Sprite { private var contentspotid:String; private var cpmstarLoader:Loader; public function AdLoader(_arg1:String){ this.contentspotid = _arg1; addEventListener(Event.ADDED, addedHandler); } private function addedHandler(_arg1:Event):void{ var _local2:String; var _local3:DisplayObjectContainer; removeEventListener(Event.ADDED, addedHandler); Security.allowDomain("server.cpmstar.com"); _local2 = "http://server.cpmstar.com/adviewas3.swf"; _local3 = parent; cpmstarLoader = new Loader(); cpmstarLoader.contentLoaderInfo.addEventListener(Event.INIT, dispatchHandler); cpmstarLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, dispatchHandler); cpmstarLoader.load(new URLRequest(((_local2 + "?contentspotid=") + contentspotid))); addChild(cpmstarLoader); } private function dispatchHandler(_arg1:Event):void{ dispatchEvent(_arg1); } } }//package CPMStar
Section 83
//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 84
//level1 (levelsp2.level1) package levelsp2 { public class level1 extends levels2 { public static var param2 = 1; } }//package levelsp2
Section 85
//level10 (levelsp2.level10) package levelsp2 { public class level10 extends levels2 { public static var param2 = 4; } }//package levelsp2
Section 86
//level11 (levelsp2.level11) package levelsp2 { public class level11 extends levels2 { public static var param2 = 8; } }//package levelsp2
Section 87
//level12 (levelsp2.level12) package levelsp2 { public class level12 extends levels2 { public static var param2 = 2; } }//package levelsp2
Section 88
//level13 (levelsp2.level13) package levelsp2 { public class level13 extends levels2 { public static var param2 = 4; } }//package levelsp2
Section 89
//level14 (levelsp2.level14) package levelsp2 { public class level14 extends levels2 { public static var param2 = 3; } }//package levelsp2
Section 90
//level15 (levelsp2.level15) package levelsp2 { public class level15 extends levels2 { public static var param2 = 3; } }//package levelsp2
Section 91
//level16 (levelsp2.level16) package levelsp2 { public class level16 extends levels2 { public static var param2 = 3; } }//package levelsp2
Section 92
//level17 (levelsp2.level17) package levelsp2 { public class level17 extends levels2 { public static var param2 = 6; } }//package levelsp2
Section 93
//level18 (levelsp2.level18) package levelsp2 { public class level18 extends levels2 { public static var param2 = 4; } }//package levelsp2
Section 94
//level19 (levelsp2.level19) package levelsp2 { public class level19 extends levels2 { public static var param2 = 6; } }//package levelsp2
Section 95
//level2 (levelsp2.level2) package levelsp2 { public class level2 extends levels2 { public static var param2 = 1; } }//package levelsp2
Section 96
//level20 (levelsp2.level20) package levelsp2 { public class level20 extends levels2 { public static var param2 = 2; } }//package levelsp2
Section 97
//level21 (levelsp2.level21) package levelsp2 { public class level21 extends levels2 { public static var param2 = 4; } }//package levelsp2
Section 98
//level22 (levelsp2.level22) package levelsp2 { public class level22 extends levels2 { public static var param2 = 5; } }//package levelsp2
Section 99
//level23 (levelsp2.level23) package levelsp2 { public class level23 extends levels2 { public static var param2 = 4; } }//package levelsp2
Section 100
//level24 (levelsp2.level24) package levelsp2 { public class level24 extends levels2 { public static var param2 = 3; } }//package levelsp2
Section 101
//level25 (levelsp2.level25) package levelsp2 { public class level25 extends levels2 { public static var param2 = 0; } }//package levelsp2
Section 102
//level3 (levelsp2.level3) package levelsp2 { public class level3 extends levels2 { public static var param2 = 1; } }//package levelsp2
Section 103
//level4 (levelsp2.level4) package levelsp2 { public class level4 extends levels2 { public static var param2 = 3; } }//package levelsp2
Section 104
//level5 (levelsp2.level5) package levelsp2 { public class level5 extends levels2 { public static var param2 = 3; } }//package levelsp2
Section 105
//level6 (levelsp2.level6) package levelsp2 { public class level6 extends levels2 { public static var param2 = 3; } }//package levelsp2
Section 106
//level7 (levelsp2.level7) package levelsp2 { public class level7 extends levels2 { public static var param2 = 2; } }//package levelsp2
Section 107
//level8 (levelsp2.level8) package levelsp2 { public class level8 extends levels2 { public static var param2 = 2; } }//package levelsp2
Section 108
//level9 (levelsp2.level9) package levelsp2 { public class level9 extends levels2 { public static var param2 = 3; } }//package levelsp2
Section 109
//adress (adress) package { import flash.display.*; public dynamic class adress extends SimpleButton { } }//package
Section 110
//ambientgameplaywave (ambientgameplaywave) package { import flash.media.*; public dynamic class ambientgameplaywave extends Sound { } }//package
Section 111
//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 112
//AnotherClass (AnotherClass) package { public class AnotherClass { } }//package
Section 113
//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 114
//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 115
//blood1 (blood1) package { import flash.display.*; public dynamic class blood1 extends MovieClip { public function blood1(){ addFrameScript(5, frame6); } function frame6(){ stop(); } } }//package
Section 116
//blood2 (blood2) package { import flash.display.*; public dynamic class blood2 extends MovieClip { public function blood2(){ addFrameScript(5, frame6); } function frame6(){ stop(); } } }//package
Section 117
//blood3 (blood3) package { import flash.display.*; public dynamic class blood3 extends MovieClip { public function blood3(){ addFrameScript(5, frame6); } function frame6(){ stop(); } } }//package
Section 118
//blood4 (blood4) package { import flash.display.*; public dynamic class blood4 extends MovieClip { public function blood4(){ addFrameScript(5, frame6); } function frame6(){ stop(); } } }//package
Section 119
//brainBoom (brainBoom) package { import flash.display.*; public dynamic class brainBoom extends MovieClip { public function brainBoom(){ addFrameScript(12, frame13); } function frame13(){ stop(); } } }//package
Section 120
//brainDav (brainDav) package { import flash.display.*; public dynamic class brainDav extends MovieClip { public function brainDav(){ addFrameScript(6, frame7); } function frame7(){ stop(); } } }//package
Section 121
//btnHelps (btnHelps) package { import flash.display.*; public dynamic class btnHelps extends SimpleButton { } }//package
Section 122
//btnLevels (btnLevels) package { import flash.display.*; public dynamic class btnLevels extends SimpleButton { } }//package
Section 123
//btnmenus (btnmenus) package { import flash.display.*; public dynamic class btnmenus extends SimpleButton { } }//package
Section 124
//btnMusic (btnMusic) package { import flash.display.*; public dynamic class btnMusic extends SimpleButton { } }//package
Section 125
//btnNext (btnNext) package { import flash.display.*; public dynamic class btnNext extends SimpleButton { } }//package
Section 126
//btnReset (btnReset) package { import flash.display.*; public dynamic class btnReset extends SimpleButton { } }//package
Section 127
//btnSelect (btnSelect) package { import flash.display.*; public dynamic class btnSelect extends SimpleButton { } }//package
Section 128
//btnSolutions (btnSolutions) package { import flash.display.*; public dynamic class btnSolutions extends SimpleButton { } }//package
Section 129
//btnsound (btnsound) package { import flash.display.*; public dynamic class btnsound extends SimpleButton { } }//package
Section 130
//btnStart (btnStart) package { import flash.display.*; public dynamic class btnStart extends SimpleButton { } }//package
Section 131
//bulbul (bulbul) package { import flash.display.*; public dynamic class bulbul extends MovieClip { public function bulbul(){ addFrameScript(40, frame41); } function frame41(){ stop(); } } }//package
Section 132
//cepeme (cepeme) package { import flash.display.*; public dynamic class cepeme extends MovieClip { } }//package
Section 133
//derevo (derevo) package { import flash.display.*; public dynamic class derevo extends MovieClip { } }//package
Section 134
//drobs (drobs) package { import flash.display.*; public dynamic class drobs extends MovieClip { public function drobs(){ addFrameScript(7, frame8); } function frame8(){ stop(); } } }//package
Section 135
//drobs2 (drobs2) package { import flash.display.*; public dynamic class drobs2 extends MovieClip { public function drobs2(){ addFrameScript(7, frame8); } function frame8(){ stop(); } } }//package
Section 136
//dzn (dzn) package { import flash.media.*; public dynamic class dzn extends Sound { } }//package
Section 137
//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 138
//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 139
//ExportSecondFrameExample (ExportSecondFrameExample) package { import flash.display.*; import flash.events.*; import CPMStar.*; 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 var dops:SimpleButton; public static const ENTRY_FRAME:Number = 3; public static const DOCUMENT_CLASS:String = "Program"; public function ExportSecondFrameExample(){ var _local1:String; var _local2:String; var _local3:DisplayObject; 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); dops.addEventListener(MouseEvent.CLICK, gotosite); loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler); loaderInfo.addEventListener(Event.COMPLETE, completeHandler); _local1 = stage.loaderInfo.url; if (search(_local1)){ } else { adBox = new cepeme(); adBox.x = 175; adBox.y = 115; addChild(adBox); _local2 = "3386QC03DCECE"; _local3 = new AdLoader(_local2); adBox.addChild(_local3); }; } 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); dops.removeEventListener(MouseEvent.CLICK, gotosite); if (adBox != null){ removeChild(adBox); }; removeChild(knopa); MochiBot.track(this, "2873545f"); 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 140
//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 141
//Eye1 (Eye1) package { public class Eye1 extends Eye { } }//package
Section 142
//Eye2 (Eye2) package { public class Eye2 extends Eye { } }//package
Section 143
//Eye3 (Eye3) package { public class Eye3 extends Eye { } }//package
Section 144
//Eye4 (Eye4) package { public class Eye4 extends Eye { } }//package
Section 145
//Eye5 (Eye5) package { public class Eye5 extends Eye { } }//package
Section 146
//f090 (f090) package { import flash.display.*; public dynamic class f090 extends MovieClip { } }//package
Section 147
//f65654646 (f65654646) package { import flash.display.*; public dynamic class f65654646 extends MovieClip { } }//package
Section 148
//fon1 (fon1) package { import flash.display.*; public dynamic class fon1 extends MovieClip { } }//package
Section 149
//fon2s (fon2s) package { import flash.display.*; public dynamic class fon2s extends BitmapData { public function fon2s(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 150
//fon5s (fon5s) package { import flash.display.*; public dynamic class fon5s extends BitmapData { public function fon5s(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 151
//fon6s (fon6s) package { import flash.display.*; public dynamic class fon6s extends BitmapData { public function fon6s(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 152
//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 153
//gamebloodaftershoot (gamebloodaftershoot) package { import flash.media.*; public dynamic class gamebloodaftershoot extends Sound { } }//package
Section 154
//gamebulkibig (gamebulkibig) package { import flash.media.*; public dynamic class gamebulkibig extends Sound { } }//package
Section 155
//gamebulkibrrrrrr (gamebulkibrrrrrr) package { import flash.media.*; public dynamic class gamebulkibrrrrrr extends Sound { } }//package
Section 156
//gamedavkamozga (gamedavkamozga) package { import flash.media.*; public dynamic class gamedavkamozga extends Sound { } }//package
Section 157
//gamedavkarazletanie (gamedavkarazletanie) package { import flash.media.*; public dynamic class gamedavkarazletanie extends Sound { } }//package
Section 158
//gamedavkasharom (gamedavkasharom) package { import flash.media.*; public dynamic class gamedavkasharom extends Sound { } }//package
Section 159
//gamedavkasharom1 (gamedavkasharom1) package { import flash.media.*; public dynamic class gamedavkasharom1 extends Sound { } }//package
Section 160
//gamefanfary (gamefanfary) package { import flash.media.*; public dynamic class gamefanfary extends Sound { } }//package
Section 161
//gamepoedanievmogile (gamepoedanievmogile) package { import flash.media.*; public dynamic class gamepoedanievmogile extends Sound { } }//package
Section 162
//gameshoot (gameshoot) package { import flash.media.*; public dynamic class gameshoot extends Sound { } }//package
Section 163
//gamewelldone (gamewelldone) package { import flash.media.*; public dynamic class gamewelldone extends Sound { } }//package
Section 164
//gamevylazizmogily1 (gamevylazizmogily1) package { import flash.media.*; public dynamic class gamevylazizmogily1 extends Sound { } }//package
Section 165
//gamevylazizmogily2 (gamevylazizmogily2) package { import flash.media.*; public dynamic class gamevylazizmogily2 extends Sound { } }//package
Section 166
//gamevylazizmogily3 (gamevylazizmogily3) package { import flash.media.*; public dynamic class gamevylazizmogily3 extends Sound { } }//package
Section 167
//gamevylazizmogily4 (gamevylazizmogily4) package { import flash.media.*; public dynamic class gamevylazizmogily4 extends Sound { } }//package
Section 168
//gamevzryv (gamevzryv) package { import flash.media.*; public dynamic class gamevzryv extends Sound { } }//package
Section 169
//gamezombieating1 (gamezombieating1) package { import flash.media.*; public dynamic class gamezombieating1 extends Sound { } }//package
Section 170
//gamezombieating2 (gamezombieating2) package { import flash.media.*; public dynamic class gamezombieating2 extends Sound { } }//package
Section 171
//gvozd (gvozd) package { import flash.display.*; public dynamic class gvozd extends MovieClip { } }//package
Section 172
//helps (helps) package { import flash.display.*; public dynamic class helps extends MovieClip { public var helping:podsk; } }//package
Section 173
//highscoreloader (highscoreloader) package { import flash.display.*; import flash.events.*; import flash.media.*; import flash.net.*; import flash.text.*; 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.ui.*; import flash.utils.*; 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 174
//init2 (init2) package { import flash.display.*; import flash.events.*; import flash.media.*; import flash.net.*; public dynamic class init2 extends MovieClip { var slSites:Array; var initPic:MovieClip; var sl;// = false var mcMain; var intro:MovieClip; public var Parent; public static var tru = false; public function init2():void{ initPic = new menuInits(); sl = false; slSites = ["vladgames.com", "notdoppler.com"]; super(); initPic.x = 320; initPic.y = 240; addChild(initPic); addEventListener(Event.ENTER_FRAME, ini); } private function checkDomain(_arg1:String):Boolean{ var _local2:String; var _local3:Number; var _local4:Number; var _local5:String; var _local6:Number; var _local7:Number; _local2 = stage.loaderInfo.url; _local3 = (_local2.indexOf("://") + 3); _local4 = _local2.indexOf("/", _local3); _local5 = _local2.substring(_local3, _local4); _local6 = (_local5.lastIndexOf(".") - 1); _local7 = (_local5.lastIndexOf(".", _local6) + 1); _local5 = _local5.substring(_local7, _local5.length); if (_local5 == _arg1){ return (true); }; return (false); } function ini(_arg1:Event){ if (this.parent != null){ removeEventListener(Event.ENTER_FRAME, ini); go(); }; } function 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:URLRequest; var _local3:*; _local3 = "http://notdoppler.com/webmasters.php"; _local2 = new URLRequest(_local3); navigateToURL(_local2, "_blank"); } function search(_arg1:String):Boolean{ var _local2:*; var _local3:*; _local2 = false; _local3 = 0; while (_local3 < slSites.length) { if (checkDomain(slSites[_local3])){ _local2 = true; break; }; _local3++; }; return (_local2); } function 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 (((search(_local1)) || ((_local1.indexOf("proekt19") > -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 = 35; Parent.no.visible = true; Parent.webm.visible = true; Parent.webm.addEventListener(MouseEvent.CLICK, gotosite1); 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 175
//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 176
//l5454535 (l5454535) package { import flash.display.*; public dynamic class l5454535 extends MovieClip { } }//package
Section 177
//l565 (l565) package { import flash.display.*; public dynamic class l565 extends MovieClip { } }//package
Section 178
//levels2 (levels2) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.display.*; import flash.events.*; import General.*; import flash.media.*; import flash.net.*; import flash.text.*; import flash.filters.*; import flash.ui.*; import flash.utils.*; 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; }; 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.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 179
//light (light) package { import flash.display.*; public dynamic class light extends MovieClip { } }//package
Section 180
//Main2 (Main2) package { import flash.display.*; import flash.events.*; import flash.media.*; import flash.net.*; import flash.text.*; import levelsp2.*; import flash.ui.*; import flash.utils.*; public dynamic class Main2 extends MovieClip { var lev; var lvc:TextField; var stat:SharedObject; var f0; public static var snd:Boolean; 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"); 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(); } 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 < 6)) || ((((lvl > 7)) && ((lvl < 10)))))) || ((((lvl > 11)) && ((lvl < 14)))))) || ((((lvl > 14)) && ((lvl < 18)))))) || ((((lvl > 21)) && ((lvl < 24)))))){ 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 < 6)) || ((((lvl > 7)) && ((lvl < 10)))))) || ((((lvl > 11)) && ((lvl < 14)))))) || ((((lvl > 14)) && ((lvl < 18)))))) || ((((lvl > 21)) && ((lvl < 24)))))){ 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(); toMenu(); } } }//package
Section 181
//menu2 (menu2) package { import flash.display.*; import flash.events.*; import flash.media.*; import flash.net.*; import flash.text.*; 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){ var _local2:URLRequest; var _local3:*; _local3 = "http://www.notdoppler.com/highscores.php?game=needbrain"; _local2 = new URLRequest(_local3); navigateToURL(_local2, "_blank"); } 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){ 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"); }; } 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.btnHiSc.removeEventListener(MouseEvent.CLICK, gotoscore); Parent.btnHost.removeEventListener(MouseEvent.CLICK, gotohost); Parent.btnMore.removeEventListener(MouseEvent.CLICK, gotosite); Parent.dops.removeEventListener(MouseEvent.CLICK, gotosite); } 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){ 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"); }; } 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 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.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.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 182
//menuBig (menuBig) package { import flash.display.*; public dynamic class menuBig extends MovieClip { public var openAll:gvozd; 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 183
//menuCongrat (menuCongrat) package { import flash.display.*; public dynamic class menuCongrat extends MovieClip { public var sbmt:thesubmit; public var wrstm:themenus; public var tck1:tochka; public var hsloader:highscoreloader; } }//package
Section 184
//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 185
//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 186
//menuInits (menuInits) package { import flash.display.*; public dynamic class menuInits extends MovieClip { public var webm:wbmst; public var no:Символ1; } }//package
Section 187
//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 188
//menunavedenie (menunavedenie) package { import flash.media.*; public dynamic class menunavedenie extends Sound { } }//package
Section 189
//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 190
//menuvybor (menuvybor) package { import flash.media.*; public dynamic class menuvybor extends Sound { } }//package
Section 191
//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 192
//MochiBot (MochiBot) package { import flash.display.*; import flash.net.*; import flash.system.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ var _local3:MochiBot; var _local4:String; var _local5:URLVariables; var _local6:String; var _local7:URLRequest; var _local8:Loader; if (Security.sandboxType == "localWithFile"){ return (null); }; _local3 = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); _local4 = "http://core.mochibot.com/my/core.swf"; _local5 = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; _local6 = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; _local7 = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; _local8 = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package
Section 193
//movieTarget (movieTarget) package { import flash.display.*; public dynamic class movieTarget extends MovieClip { } }//package
Section 194
//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 195
//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 196
//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 197
//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 198
//musicgameplaywave (musicgameplaywave) package { import flash.media.*; public dynamic class musicgameplaywave extends Sound { } }//package
Section 199
//musicmenuwavewithFX (musicmenuwavewithFX) package { import flash.media.*; public dynamic class musicmenuwavewithFX extends Sound { } }//package
Section 200
//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 201
//nomerUr (nomerUr) package { import flash.display.*; public dynamic class nomerUr extends MovieClip { public function nomerUr(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 202
//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 203
//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 204
//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 205
//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 206
//plank_krepl (plank_krepl) package { import flash.display.*; public dynamic class plank_krepl extends MovieClip { public var tochkakrepl:gvozd; } }//package
Section 207
//plankDynam (plankDynam) package { import flash.display.*; public dynamic class plankDynam extends MovieClip { } }//package
Section 208
//plankDynamH (plankDynamH) package { import flash.display.*; public dynamic class plankDynamH extends MovieClip { } }//package
Section 209
//plankDynamYa (plankDynamYa) package { import flash.display.*; public dynamic class plankDynamYa extends MovieClip { } }//package
Section 210
//plankDynamYa1 (plankDynamYa1) package { import flash.display.*; public dynamic class plankDynamYa1 extends MovieClip { } }//package
Section 211
//plankPad (plankPad) package { import flash.display.*; public dynamic class plankPad extends MovieClip { } }//package
Section 212
//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 213
//plitka (plitka) package { import flash.display.*; public dynamic class plitka extends MovieClip { } }//package
Section 214
//plusHalf (plusHalf) package { import flash.display.*; public dynamic class plusHalf extends MovieClip { public function plusHalf(){ addFrameScript(22, frame23); } function frame23(){ stop(); } } }//package
Section 215
//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 216
//podskazka (podskazka) package { import flash.display.*; public dynamic class podskazka extends MovieClip { } }//package
Section 217
//preload (preload) package { import flash.display.*; public dynamic class preload extends MovieClip { public function preload(){ addFrameScript(99, frame100); } function frame100(){ stop(); } } }//package
Section 218
//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 219
//prPlay (prPlay) package { import flash.display.*; public dynamic class prPlay extends SimpleButton { } }//package
Section 220
//pyk1 (pyk1) package { import flash.media.*; public dynamic class pyk1 extends Sound { } }//package
Section 221
//select2 (select2) package { import flash.display.*; import flash.events.*; import flash.media.*; import flash.net.*; import flash.text.*; 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:*; 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){ stat.data.sub = Main2.totalScore; hs_score = Main2.totalScore; Parent.sbmt.visible = false; Parent.sbmt.removeEventListener(MouseEvent.CLICK, submits); hsloader = new highscoreloader(); hsloader.x = 220; hsloader.y = 55; addChildAt(hsloader, getChildIndex(arr)); hsloader.loadHighscores(hs_game, hs_score, hs_view, hs_URL); } 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){ 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 222
//selectornavedenie (selectornavedenie) package { import flash.media.*; public dynamic class selectornavedenie extends Sound { } }//package
Section 223
//selectorvybor (selectorvybor) package { import flash.media.*; public dynamic class selectorvybor extends Sound { } }//package
Section 224
//theBall (theBall) package { import flash.display.*; public dynamic class theBall extends MovieClip { } }//package
Section 225
//theCred (theCred) package { import flash.display.*; public dynamic class theCred extends SimpleButton { } }//package
Section 226
//theHig (theHig) package { import flash.display.*; public dynamic class theHig extends SimpleButton { } }//package
Section 227
//theHost (theHost) package { import flash.display.*; public dynamic class theHost extends SimpleButton { } }//package
Section 228
//thekrest (thekrest) package { import flash.display.*; public dynamic class thekrest extends SimpleButton { } }//package
Section 229
//themenus (themenus) package { import flash.display.*; public dynamic class themenus extends SimpleButton { } }//package
Section 230
//theMore (theMore) package { import flash.display.*; public dynamic class theMore extends SimpleButton { } }//package
Section 231
//theplay (theplay) package { import flash.display.*; public dynamic class theplay extends SimpleButton { } }//package
Section 232
//thesubmit (thesubmit) package { import flash.display.*; public dynamic class thesubmit extends SimpleButton { } }//package
Section 233
//thetudasuda (thetudasuda) package { import flash.display.*; public dynamic class thetudasuda extends SimpleButton { } }//package
Section 234
//tochka (tochka) package { import flash.display.*; public dynamic class tochka extends MovieClip { public function tochka(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 235
//wbmst (wbmst) package { import flash.display.*; public dynamic class wbmst extends SimpleButton { } }//package
Section 236
//weldannn (weldannn) package { import flash.display.*; public dynamic class weldannn extends MovieClip { } }//package
Section 237
//weldon (weldon) package { import flash.display.*; public dynamic class weldon extends MovieClip { public function weldon(){ addFrameScript(79, frame80); } function frame80(){ stop(); } } }//package
Section 238
//win2 (win2) package { import flash.display.*; import flash.events.*; import flash.media.*; import flash.net.*; import flash.text.*; public dynamic class win2 extends MovieClip { var winPic:MovieClip; var hs_URL:String;// = "" 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; public var Parent; public function win2():void{ winPic = new menuCongrat(); arr = new tochka(); st = new SoundTransform(); 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, init); } function init(_arg1:Event){ removeEventListener(Event.ENTER_FRAME, init); go(); } function submits(_arg1:Event){ Parent.sbmt.removeEventListener(MouseEvent.CLICK, submits); Parent.sbmt.visible = false; Parent.hsloader.loadHighscores(hs_game, hs_score, hs_view, hs_URL); } function delListeners(){ if (Parent.sbmt.visible == true){ Parent.sbmt.removeEventListener(MouseEvent.CLICK, submits); }; Parent.wrstm.removeEventListener(MouseEvent.CLICK, wgoMenu); arr.removeEventListener(Event.ENTER_FRAME, arrMove); } function wgoMenu(_arg1:Event){ delListeners(); 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:*; 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; }; Parent = winPic; _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.sbmt.addEventListener(MouseEvent.CLICK, submits); Parent.wrstm.addEventListener(MouseEvent.CLICK, wgoMenu); arr.addEventListener(Event.ENTER_FRAME, arrMove); arr.mouseEnabled = false; arr.mouseChildren = false; } } }//package
Section 239
//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 240
//vonisa3 (vonisa3) package { import flash.display.*; public dynamic class vonisa3 extends MovieClip { public function vonisa3(){ addFrameScript(106, frame107); } function frame107(){ stop(); } } }//package
Section 241
//zaprets (zaprets) package { import flash.display.*; public dynamic class zaprets extends MovieClip { public function zaprets(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 242
//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 243
//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 244
//Символ1 (Символ1) package { import flash.display.*; public dynamic class Символ1 extends MovieClip { } }//package

Library Items

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

Instance Names

"zzt"Frame 1Symbol 50 EditableText
"bbb"Frame 1Symbol 51 EditableText
"dops"Frame 1Symbol 56 Button
"no"Symbol 33 MovieClip {menuInits} Frame 1Symbol 28 MovieClip {Символ1}
"webm"Symbol 33 MovieClip {menuInits} Frame 1Symbol 32 Button {wbmst}
"brarm"Symbol 98 MovieClip {arm} Frame 28Symbol 97 MovieClip {ball_1}
"zalaz"Symbol 228 MovieClip {nIns} Frame 1Symbol 181 MovieClip {gvozd}
"br_wall_vn"Symbol 527 MovieClip {AllWeNeedIsBrains_fla.Symbol12_129} Frame 1Symbol 526 MovieClip
"br_wall_vn"Symbol 527 MovieClip {AllWeNeedIsBrains_fla.Symbol12_129} Frame 1Symbol 526 MovieClip
"br_wall_vn"Symbol 527 MovieClip {AllWeNeedIsBrains_fla.Symbol12_129} Frame 1Symbol 526 MovieClip
"br_wall_vn"Symbol 527 MovieClip {AllWeNeedIsBrains_fla.Symbol12_129} Frame 1Symbol 526 MovieClip
"br_wall_vn"Symbol 527 MovieClip {AllWeNeedIsBrains_fla.Symbol12_129} Frame 1Symbol 526 MovieClip
"br_wall_vn"Symbol 527 MovieClip {AllWeNeedIsBrains_fla.Symbol12_129} Frame 1Symbol 526 MovieClip
"br_wall_vn"Symbol 527 MovieClip {AllWeNeedIsBrains_fla.Symbol12_129} Frame 1Symbol 526 MovieClip
"br_wall_vn"Symbol 527 MovieClip {AllWeNeedIsBrains_fla.Symbol12_129} Frame 1Symbol 526 MovieClip
"br_wall_vn"Symbol 527 MovieClip {AllWeNeedIsBrains_fla.Symbol12_129} Frame 1Symbol 526 MovieClip
"br_wall_vn"Symbol 541 MovieClip {AllWeNeedIsBrains_fla.Symbol9copy_141} Frame 1Symbol 526 MovieClip
"br_wall_vn"Symbol 541 MovieClip {AllWeNeedIsBrains_fla.Symbol9copy_141} Frame 1Symbol 526 MovieClip
"br_wall_vn"Symbol 541 MovieClip {AllWeNeedIsBrains_fla.Symbol9copy_141} Frame 1Symbol 526 MovieClip
"br_wall_vn"Symbol 541 MovieClip {AllWeNeedIsBrains_fla.Symbol9copy_141} Frame 1Symbol 526 MovieClip
"intervalKillAnim_0"Symbol 557 MovieClip {AllWeNeedIsBrains_fla.Timeline_151} Frame 1Symbol 555 MovieClip
"br_wall_vn"Symbol 569 MovieClip {AllWeNeedIsBrains_fla.Symbol8_158} Frame 1Symbol 526 MovieClip
"br_wall_vn"Symbol 569 MovieClip {AllWeNeedIsBrains_fla.Symbol8_158} Frame 1Symbol 526 MovieClip
"br_wall_vn"Symbol 569 MovieClip {AllWeNeedIsBrains_fla.Symbol8_158} Frame 1Symbol 526 MovieClip
"br_wall_vn"Symbol 569 MovieClip {AllWeNeedIsBrains_fla.Symbol8_158} Frame 1Symbol 526 MovieClip
"br_wall_vn"Symbol 569 MovieClip {AllWeNeedIsBrains_fla.Symbol8_158} Frame 1Symbol 526 MovieClip
"br_wall_vn"Symbol 569 MovieClip {AllWeNeedIsBrains_fla.Symbol8_158} Frame 1Symbol 526 MovieClip
"br_wall_vn"Symbol 569 MovieClip {AllWeNeedIsBrains_fla.Symbol8_158} Frame 1Symbol 526 MovieClip
"br_wall_vn"Symbol 569 MovieClip {AllWeNeedIsBrains_fla.Symbol8_158} Frame 1Symbol 526 MovieClip
"br_wall_vn"Symbol 569 MovieClip {AllWeNeedIsBrains_fla.Symbol8_158} Frame 1Symbol 526 MovieClip
"zalaz"Symbol 624 MovieClip {AllWeNeedIsBrains_fla.45646456456_191} Frame 1Symbol 181 MovieClip {gvozd}
"zombos1"Symbol 693 MovieClip {podsk} Frame 1Symbol 659 MovieClip
"tck1"Symbol 693 MovieClip {podsk} Frame 1Symbol 663 MovieClip {tochka}
"zombos2"Symbol 693 MovieClip {podsk} Frame 2Symbol 673 MovieClip
"tck1"Symbol 693 MovieClip {podsk} Frame 2Symbol 663 MovieClip {tochka}
"zombos3"Symbol 693 MovieClip {podsk} Frame 3Symbol 681 MovieClip
"tck1"Symbol 693 MovieClip {podsk} Frame 3Symbol 663 MovieClip {tochka}
"zombos4"Symbol 693 MovieClip {podsk} Frame 4Symbol 684 MovieClip
"tck1"Symbol 693 MovieClip {podsk} Frame 4Symbol 663 MovieClip {tochka}
"zombos5"Symbol 693 MovieClip {podsk} Frame 5Symbol 688 MovieClip
"tck1"Symbol 693 MovieClip {podsk} Frame 5Symbol 663 MovieClip {tochka}
"zombos6"Symbol 693 MovieClip {podsk} Frame 6Symbol 689 MovieClip
"tck1"Symbol 693 MovieClip {podsk} Frame 6Symbol 663 MovieClip {tochka}
"helping"Symbol 694 MovieClip {helps} Frame 1Symbol 693 MovieClip {podsk}
"tudas"Symbol 751 MovieClip {menuCr} Frame 1Symbol 734 Button {thetudasuda}
"zakr"Symbol 751 MovieClip {menuCr} Frame 1Symbol 739 Button {thekrest}
"adrs"Symbol 751 MovieClip {menuCr} Frame 1Symbol 749 Button {adress}
"menuC"Symbol 753 MovieClip {animCred} Frame 1Symbol 751 MovieClip {menuCr}
"cred"Symbol 825 MovieClip {menuBig} Frame 1Symbol 753 MovieClip {animCred}
"btnPlay"Symbol 825 MovieClip {menuBig} Frame 1Symbol 761 Button {theplay}
"btnHiSc"Symbol 825 MovieClip {menuBig} Frame 1Symbol 770 Button {theHig}
"btnCredits"Symbol 825 MovieClip {menuBig} Frame 1Symbol 777 Button {theCred}
"btnMore"Symbol 825 MovieClip {menuBig} Frame 1Symbol 784 Button {theMore}
"btnHost"Symbol 825 MovieClip {menuBig} Frame 1Symbol 791 Button {theHost}
"mSnd"Symbol 825 MovieClip {menuBig} Frame 1Symbol 817 Button {btnsound}
"mMus"Symbol 825 MovieClip {menuBig} Frame 1Symbol 824 Button {btnMusic}
"dops"Symbol 825 MovieClip {menuBig} Frame 1Symbol 56 Button
"openAll"Symbol 825 MovieClip {menuBig} Frame 1Symbol 181 MovieClip {gvozd}
"sbros"Symbol 825 MovieClip {menuBig} Frame 1Symbol 181 MovieClip {gvozd}
"tck1"Symbol 852 MovieClip {menuCongrat} Frame 1Symbol 663 MovieClip {tochka}
"hsloader"Symbol 852 MovieClip {menuCongrat} Frame 1Symbol 831 MovieClip {highscoreloader}
"sbmt"Symbol 852 MovieClip {menuCongrat} Frame 1Symbol 839 Button {thesubmit}
"wrstm"Symbol 852 MovieClip {menuCongrat} Frame 1Symbol 847 Button {themenus}
"menuC"Symbol 853 MovieClip {menuCredits} Frame 1Symbol 751 MovieClip {menuCr}
"rstl1"Symbol 892 MovieClip {menuLevel} Frame 1Symbol 861 Button {btnReset}
"rstm1"Symbol 892 MovieClip {menuLevel} Frame 1Symbol 867 Button {btnmenus}
"lvls1"Symbol 892 MovieClip {menuLevel} Frame 1Symbol 874 Button {btnLevels}
"rsts1"Symbol 892 MovieClip {menuLevel} Frame 1Symbol 884 Button {btnSolutions}
"mSnd1"Symbol 892 MovieClip {menuLevel} Frame 1Symbol 817 Button {btnsound}
"mMus1"Symbol 892 MovieClip {menuLevel} Frame 1Symbol 824 Button {btnMusic}
"rstdop1"Symbol 892 MovieClip {menuLevel} Frame 1Symbol 56 Button
"tck1"Symbol 892 MovieClip {menuLevel} Frame 1Symbol 663 MovieClip {tochka}
"nomerL"Symbol 917 MovieClip {numberL} Frame 1Symbol 900 EditableText
"l11"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"l1"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"l5"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"l6"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"l7"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"l22"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"l25"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"l2"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"l3"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"l4"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"l16"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"l8"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"l10"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"l13"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"l9"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"l12"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"l14"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"l15"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"l17"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"l18"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"l20"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"l19"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"l21"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"l23"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"l24"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 917 MovieClip {numberL}
"mSnd"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 817 Button {btnsound}
"mMus"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 824 Button {btnMusic}
"srstm"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 847 Button {themenus}
"sbmt"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 839 Button {thesubmit}
"scores"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 924 EditableText
"scores1"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 925 EditableText
"dops"Symbol 926 MovieClip {menuSelects} Frame 1Symbol 56 Button
"tochkakrepl"Symbol 1030 MovieClip {plank_krepl} Frame 1Symbol 181 MovieClip {gvozd}

Special Tags

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

Labels

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




http://swfchan.com/21/100655/info.shtml
Created: 21/3 -2019 04:39:24 Last modified: 21/3 -2019 04:39:24 Server time: 27/04 -2024 00:29:44