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

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

Joe the Alien - guide alien jump through space in fun game.swf

This is the info page for
Flash #90183

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


Text
LOADING...

PLAY

PLAY

SKIP

SKIP

2

SCORES:

<p align="left"><font face="a_PlakatCmpl" size="16" color="#cbcbcb" letterSpacing="0.000000" kerning="1"><b>x99</b></font></p>

LEVEL:

MODE:

<p align="left"><font face="a_PlakatCmpl" size="16" color="#cbcbcb" letterSpacing="0.000000" kerning="1"><b>1\2</b></font></p>

<p align="left"><font face="a_PlakatCmpl" size="16" color="#cbcbcb" letterSpacing="0.000000" kerning="1"><b>Story</b></font></p>

<p align="left"><font face="a_PlakatCmpl" size="16" color="#cbcbcb" letterSpacing="0.000000" kerning="1"><b>x99</b></font></p>

MENU

MENU

CONTINUE

CONTINUE

SHOP

SHOP

ACHIEVEMENTS

ACHIEVEMENTS

4

1

Total platforms
used

BACK

BACK

<p align="right"><font face="a_PlakatCmpl" size="28" color="#999999" letterSpacing="0.000000" kerning="1"><b>999999</b></font></p>

Total score

Total stars

Total deaths

Max level

Total jet used

Total health lost

6

+150x3

3

New Achievement

Star desiese

Advanced guy

Upgrade master

Living dead

Bonus eater

Green combo

Combo master

Tricky alien

Survivable

Thrifty

Cash

<p align="center"><font face="a_PlakatCmpl" size="17" color="#cccccc" letterSpacing="0.000000" kerning="1"><b>28</b></font></p>

<p align="left"><font face="a_PlakatCmpl" size="17" color="#cccccc" letterSpacing="0.000000" kerning="1"><b>Click it to upgrade your jetpack. It will increase the volume of the jetpack container.</b></font></p>

DESCRIPTION

<p align="left"><font face="a_PlakatCmpl" size="11" color="#cccccc" letterSpacing="0.000000" kerning="1"><b>1/4</b></font></p>

<p align="left"><font face="a_PlakatCmpl" size="20" color="#cccccc" letterSpacing="0.000000" kerning="1"><b>20</b></font></p>

STORY

STORY

ENDLESS

ENDLESS

CREDITS

CREDITS

5

<p align="left"><font face="a_PlakatCmpl" size="16" color="#cbcbcb" letterSpacing="0.000000" kerning="1"><b>Story</b></font></p>

RESUME

RESUME

NEXT

NEXT

Move using
arrow keys.

Jump onto platforms and
get scores.

left

right

jet

500

Now the
platforms
have different
colors. Jumping
on them you get
scores of different
colors.

Try to jump on the
platforms of the same
color to get more
combo-scores.

Beware of junk.
It injures Joe.

500

COMBO:

The fuel is being
used when you fly.

Collect fuel tanks
to get more fuel.

Collects as many
stars as you can.
They will help you
in the future.

Hit space while
standing on a
platform to use
weapon.

The distance
between platforms
has been
increased.  Try to
save fuel.

Be careful. These
platforms can move.
Watch the direction.

This magnet attracts
Joe. Stay away from it.

This level is hard. A lot
of junk, a lot  of stars.

This level is long.

This platform pulls Joe
up.

This platform attracts
Joe and slows him
down.

This level is the
hardest. Just try to
finish it.

Sometimes Joe would get special bonuses.

Starfall.
Take it to have a chance to get a lot
of stars.

Time machine.
Take it to slow down the time.

Reverse.
It swaps left and right keys.

Welcome to the shop. Here you can buy
upgrades for Joe.

=$

Collect as many stars as you can. Using stars
you can buy upgrades.

STATS

STATS

7

Programming
Graphics
2010

<p align="center"><font face="a_PlakatCmpl" size="28" color="#999999" letterSpacing="0.000000" kerning="1"><a href="mailto:p.kosushko@gmail.com"><b>Kosushko Pavel</b></a></font></p>

<p align="center"><font face="a_PlakatCmpl" size="28" color="#999999" letterSpacing="0.000000" kerning="1"><a href="artjamayka@gmail.com"><b>Makarov Vladimir</b></a></font></p>

250

<p align="left"><font face="a_PlakatCmpl" size="16" color="#cbcbcb" letterSpacing="0.000000" kerning="1"><b>x99</b></font></p>

REPLAY

REPLAY

<p align="left"><font face="a_PlakatCmpl" size="17" color="#999999" letterSpacing="0.000000" kerning="1"><b>Star disease: to get it you must collect 50 stars in each level.</b></font></p>

<p align="left"><font face="a_PlakatCmpl ExtraBold" size="22" color="#ffff00" letterSpacing="0.000000" kerning="1">0</font></p>

9999999999

XXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXX

ENTER YOUR NICKNAME :

SCORE WILL BE SAVED UNDER :

VIEW SCORE

VIEW SCORE

XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX

HELP

<p align="left"><font face="a_PlakatCmpl ExtraBold" size="17" color="#cccccc" letterSpacing="0.000000" kerning="1">text text text text text text text text text text text text </font></p>

LE VEL:

<p align="center"><font face="a_PlakatCmpl ExtraBold" size="24" color="#cacaca" letterSpacing="0.000000" kerning="1">1/1</font></p>

SCORES:

COMBO:

<p align="center"><font face="a_PlakatCmpl ExtraBold" size="18" color="#cccccc" letterSpacing="0.000000" kerning="1">000000000000</font></p>

<p align="left"><font face="a_PlakatCmpl ExtraBold" size="50" color="#cacaca" letterSpacing="0.000000" kerning="1">2/3</font></p>

Level

01

01

START

FINISH

<p align="right"><font face="a_PlakatCmpl ExtraBold" size="12" color="#cccccc" letterSpacing="0.000000" kerning="1">1/2</font></p>

<p align="left"><font face="a_PlakatCmpl ExtraBold" size="18" color="#cbcbcb" letterSpacing="0.000000" kerning="1">x9900</font></p>

ActionScript [AS3]

Section 1
//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 2
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_localPosition:b2Vec2; public var m_radius:Number; public function b2CircleShape(_arg1:b2ShapeDef){ m_localPosition = new b2Vec2(); super(_arg1); var _local2:b2CircleDef = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local10:Number; var _local6:b2Mat22 = _arg1.R; var _local7:Number = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); var _local8:Number = (_arg1.position.y + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); var _local9:Number = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); var _local11:Number = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ return (false); }; var _local12:Number = (_arg4.p2.x - _arg4.p1.x); var _local13:Number = (_arg4.p2.y - _arg4.p1.y); var _local14:Number = ((_local9 * _local12) + (_local10 * _local13)); var _local15:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local16:Number = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; var _local17:Number = -((_local14 + Math.sqrt(_local16))); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){ _local17 = (_local17 / _local15); _arg2[0] = _local17; _arg3.x = (_local9 + (_local17 * _local12)); _arg3.y = (_local10 + (_local17 * _local13)); _arg3.Normalize(); return (true); }; return (false); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } public function GetRadius():Number{ return (m_radius); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; _local4 = _arg2.R; var _local5:Number = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local6:Number = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; var _local7:Number = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local8:Number = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius)); _arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius)); } override public function ComputeMass(_arg1:b2MassData):void{ _arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_localPosition); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y)))); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number = (m_localPosition.x - _arg1.x); var _local3:Number = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22 = _arg2.R; var _local4:Number = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22 = _arg1.R; var _local4:Number = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } } }//package Box2D.Collision.Shapes
Section 3
//b2FilterData (Box2D.Collision.Shapes.b2FilterData) package Box2D.Collision.Shapes { public class b2FilterData { public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public var categoryBits:uint;// = 1 public function Copy():b2FilterData{ var _local1:b2FilterData = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Collision.Shapes
Section 4
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ center = new b2Vec2(0, 0); super(); } } }//package Box2D.Collision.Shapes
Section 5
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertices:Array; public var vertexCount:int; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; var _local1:int; while (_local1 < b2Settings.b2_maxPolygonVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{ var _local5:b2Vec2; var _local6:b2Mat22; var _local7:int; vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); if (_arg3){ _local5 = _arg3; _local6 = s_mat; _local6.Set(_arg4); _local7 = 0; while (_local7 < vertexCount) { _arg3 = vertices[_local7]; _arg1 = (_local5.x + ((_local6.col1.x * _arg3.x) + (_local6.col2.x * _arg3.y))); _arg3.y = (_local5.y + ((_local6.col1.y * _arg3.x) + (_local6.col2.y * _arg3.y))); _arg3.x = _arg1; _local7++; }; }; } public function SetAsBox(_arg1:Number, _arg2:Number):void{ vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); } } }//package Box2D.Collision.Shapes
Section 6
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { public var m_coreVertices:Array; public var m_vertices:Array; private var s_supportVec:b2Vec2; public var m_centroid:b2Vec2; public var m_normals:Array; public var m_obb:b2OBB; public var m_vertexCount:int; private static var s_computeMat:b2Mat22 = new b2Mat22(); private static var s_sweptAABB1:b2AABB = new b2AABB(); private static var s_sweptAABB2:b2AABB = new b2AABB(); public function b2PolygonShape(_arg1:b2ShapeDef){ var _local3:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; s_supportVec = new b2Vec2(); m_obb = new b2OBB(); m_vertices = new Array(b2Settings.b2_maxPolygonVertices); m_normals = new Array(b2Settings.b2_maxPolygonVertices); m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices); super(_arg1); m_type = e_polygonShape; var _local2:b2PolygonDef = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; var _local4:int = _local3; var _local5:int = _local3; _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3] = _local2.vertices[_local3].Copy(); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = (m_vertices[_local5].x - m_vertices[_local4].x); _local7 = (m_vertices[_local5].y - m_vertices[_local4].y); _local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8)); _local3++; }; m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount); ComputeOBB(m_obb, m_vertices, m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { _local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1); _local5 = _local3; _local9 = m_normals[_local4].x; _local10 = m_normals[_local4].y; _local11 = m_normals[_local5].x; _local12 = m_normals[_local5].y; _local13 = (m_vertices[_local3].x - m_centroid.x); _local14 = (m_vertices[_local3].y - m_centroid.y); _local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop); _local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop); _local17 = (1 / ((_local9 * _local12) - (_local10 * _local11))); m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y)); _local3++; }; } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB = s_sweptAABB1; var _local5:b2AABB = s_sweptAABB2; ComputeAABB(_local4, _arg2); ComputeAABB(_local5, _arg3); _arg1.lowerBound.Set(((_local4.lowerBound.x < _local5.lowerBound.x)) ? _local4.lowerBound.x : _local5.lowerBound.x, ((_local4.lowerBound.y < _local5.lowerBound.y)) ? _local4.lowerBound.y : _local5.lowerBound.y); _arg1.upperBound.Set(((_local4.upperBound.x > _local5.upperBound.x)) ? _local4.upperBound.x : _local5.upperBound.x, ((_local4.upperBound.y > _local5.upperBound.y)) ? _local4.upperBound.y : _local5.upperBound.y); } public function GetVertices():Array{ return (m_vertices); } public function GetCoreVertices():Array{ return (m_coreVertices); } public function GetCentroid():b2Vec2{ return (m_centroid); } 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 TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local20:Number; var _local21:Number; var _local6:Number = 0; var _local7:Number = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; var _local12:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local13:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local8 = (_arg4.p2.x - _arg1.position.x); _local9 = (_arg4.p2.y - _arg1.position.y); _local10 = _arg1.R; var _local14:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local15:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); var _local18 = -1; var _local19:int; while (_local19 < m_vertexCount) { _local11 = m_vertices[_local19]; _local8 = (_local11.x - _local12); _local9 = (_local11.y - _local13); _local11 = m_normals[_local19]; _local20 = ((_local11.x * _local8) + (_local11.y * _local9)); _local21 = ((_local11.x * _local16) + (_local11.y * _local17)); if ((((_local21 < 0)) && ((_local20 < (_local6 * _local21))))){ _local6 = (_local20 / _local21); _local18 = _local19; } else { if ((((_local21 > 0)) && ((_local20 < (_local7 * _local21))))){ _local7 = (_local20 / _local21); }; }; if (_local7 < _local6){ return (false); }; _local19++; }; if (_local18 >= 0){ _arg2[0] = _local6; _local10 = _arg1.R; _local11 = m_normals[_local18]; _arg3.x = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _arg3.y = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); return (true); }; return (false); } override public function ComputeMass(_arg1:b2MassData):void{ var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local2:Number = 0; var _local3:Number = 0; var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; var _local7:Number = 0; var _local8:Number = (1 / 3); var _local9:int; while (_local9 < m_vertexCount) { _local10 = m_vertices[_local9]; _local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[int((_local9 + 1))] : m_vertices[0]; _local12 = (_local10.x - _local6); _local13 = (_local10.y - _local7); _local14 = (_local11.x - _local6); _local15 = (_local11.y - _local7); _local16 = ((_local12 * _local15) - (_local13 * _local14)); _local17 = (0.5 * _local16); _local4 = (_local4 + _local17); _local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x))); _local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y))); _local18 = _local6; _local19 = _local7; _local20 = _local12; _local21 = _local13; _local22 = _local14; _local23 = _local15; _local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18)); _local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local5 = (_local5 + (_local16 * (_local24 + _local25))); _local9++; }; _arg1.mass = (m_density * _local4); _local2 = (_local2 * (1 / _local4)); _local3 = (_local3 * (1 / _local4)); _arg1.center.Set(_local2, _local3); _arg1.I = (m_density * _local5); } public function GetNormals():Array{ return (m_normals); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Vec2; var _local5:b2Mat22; var _local11:Number; _local5 = _arg1.R; var _local6:Number = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y)); var _local7:Number = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y)); var _local8:int; _local4 = m_coreVertices[0]; var _local9:Number = ((_local4.x * _local6) + (_local4.y * _local7)); var _local10 = 1; while (_local10 < m_vertexCount) { _local4 = m_coreVertices[_local10]; _local11 = ((_local4.x * _local6) + (_local4.y * _local7)); if (_local11 > _local9){ _local8 = _local10; _local9 = _local11; }; _local10++; }; _local5 = _arg1.R; _local4 = m_coreVertices[_local8]; s_supportVec.x = (_arg1.position.x + ((_local5.col1.x * _local4.x) + (_local5.col2.x * _local4.y))); s_supportVec.y = (_arg1.position.y + ((_local5.col1.y * _local4.x) + (_local5.col2.y * _local4.y))); return (s_supportVec); } public function GetVertexCount():int{ return (m_vertexCount); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22 = s_computeMat; _local3 = _arg2.R; _local4 = m_obb.R.col1; _local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local4 = m_obb.R.col2; _local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local5.Abs(); var _local6:b2Mat22 = _local5; _local4 = m_obb.extents; var _local7:Number = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); var _local8:Number = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; var _local9:Number = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); var _local10:Number = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8)); _arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8)); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:b2Vec2; var _local4:Number; var _local5:Number; m_sweepRadius = 0; var _local3:int; while (_local3 < m_vertexCount) { _local2 = m_coreVertices[_local3]; _local4 = (_local2.x - _arg1.x); _local5 = (_local2.y - _arg1.y); _local4 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); if (_local4 > m_sweepRadius){ m_sweepRadius = _local4; }; _local3++; }; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Vec2; var _local10:Number; var _local4:b2Mat22 = _arg1.R; var _local5:Number = (_arg2.x - _arg1.position.x); var _local6:Number = (_arg2.y - _arg1.position.y); var _local7:Number = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); var _local8:Number = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); var _local9:int; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local7:Number; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local3 = new b2Vec2(); var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; _local7 = (1 / 3); var _local8:int; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0]; _local11 = (_local9.x - _local5); _local12 = (_local9.y - _local6); _local13 = (_local10.x - _local5); _local14 = (_local10.y - _local6); _local15 = ((_local11 * _local14) - (_local12 * _local13)); _local16 = (0.5 * _local15); _local4 = (_local4 + _local16); _local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x))); _local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y))); _local8++; }; _local3.x = (_local3.x * (1 / _local4)); _local3.y = (_local3.y * (1 / _local4)); return (_local3); } public static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{ var _local4:int; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:b2Mat22; var _local5:Array = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; var _local6:Number = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[int((_local4 - 1))]; _local8 = (_local5[_local4].x - _local7.x); _local9 = (_local5[_local4].y - _local7.y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = -(_local9); _local12 = _local8; _local13 = Number.MAX_VALUE; _local14 = Number.MAX_VALUE; _local15 = -(Number.MAX_VALUE); _local16 = -(Number.MAX_VALUE); _local17 = 0; while (_local17 < _arg3) { _local19 = (_local5[_local17].x - _local7.x); _local20 = (_local5[_local17].y - _local7.y); _local21 = ((_local8 * _local19) + (_local9 * _local20)); _local22 = ((_local11 * _local19) + (_local12 * _local20)); if (_local21 < _local13){ _local13 = _local21; }; if (_local22 < _local14){ _local14 = _local22; }; if (_local21 > _local15){ _local15 = _local21; }; if (_local22 > _local16){ _local16 = _local22; }; _local17++; }; _local18 = ((_local15 - _local13) * (_local16 - _local14)); if (_local18 < (0.95 * _local6)){ _local6 = _local18; _arg1.R.col1.x = _local8; _arg1.R.col1.y = _local9; _arg1.R.col2.x = _local11; _arg1.R.col2.y = _local12; _local23 = (0.5 * (_local13 + _local15)); _local24 = (0.5 * (_local14 + _local16)); _local25 = _arg1.R; _arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24))); _arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24))); _arg1.extents.x = (0.5 * (_local15 - _local13)); _arg1.extents.y = (0.5 * (_local16 - _local14)); }; _local4++; }; } } }//package Box2D.Collision.Shapes
Section 7
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2Shape { public var m_next:b2Shape; public var m_type:int; public var m_sweepRadius:Number; public var m_density:Number; public var m_filter:b2FilterData; public var m_friction:Number; public var m_isSensor:Boolean; public var m_restitution:Number; public var m_userData; public var m_proxyId:uint; public var m_body:b2Body; public static const e_polygonShape:int = 1; public static const e_unknownShape:int = -1; public static const e_circleShape:int = 0; public static const e_shapeTypeCount:int = 2; private static var s_resetAABB:b2AABB = new b2AABB(); private static var s_syncAABB:b2AABB = new b2AABB(); private static var s_proxyAABB:b2AABB = new b2AABB(); public function b2Shape(_arg1:b2ShapeDef){ m_userData = _arg1.userData; m_friction = _arg1.friction; m_restitution = _arg1.restitution; m_density = _arg1.density; m_body = null; m_sweepRadius = 0; m_next = null; m_proxyId = b2Pair.b2_nullProxy; m_filter = _arg1.filter.Copy(); m_isSensor = _arg1.isSensor; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetSweepRadius():Number{ return (m_sweepRadius); } public function GetNext():b2Shape{ return (m_next); } public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ } public function GetType():int{ return (m_type); } public function GetRestitution():Number{ return (m_restitution); } public function GetFriction():Number{ return (m_friction); } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ return (false); } public function RefilterProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _arg1.DestroyProxy(m_proxyId); var _local3:b2AABB = s_resetAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } public function GetUserData(){ return (m_userData); } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; var _local4:b2AABB = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxyId, _local4); return (true); }; return (false); } public function ComputeMass(_arg1:b2MassData):void{ } public function IsSensor():Boolean{ return (m_isSensor); } public function DestroyProxy(_arg1:b2BroadPhase):void{ if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); m_proxyId = b2Pair.b2_nullProxy; }; } public function UpdateSweepRadius(_arg1:b2Vec2):void{ } public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ } public function GetBody():b2Body{ return (m_body); } public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB = s_proxyAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } public static function Destroy(_arg1:b2Shape, _arg2):void{ } public static function Create(_arg1:b2ShapeDef, _arg2):b2Shape{ switch (_arg1.type){ case e_circleShape: return (new b2CircleShape(_arg1)); case e_polygonShape: return (new b2PolygonShape(_arg1)); default: return (null); }; } } }//package Box2D.Collision.Shapes
Section 8
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { public class b2ShapeDef { public var friction:Number;// = 0.2 public var isSensor:Boolean;// = false public var density:Number;// = 0 public var restitution:Number;// = 0 public var userData;// = null public var filter:b2FilterData; public var type:int; public function b2ShapeDef(){ type = b2Shape.e_unknownShape; filter = new b2FilterData(); super(); } } }//package Box2D.Collision.Shapes
Section 9
//b2AABB (Box2D.Collision.b2AABB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2AABB { public var upperBound:b2Vec2; public var lowerBound:b2Vec2; public function b2AABB(){ lowerBound = new b2Vec2(); upperBound = new b2Vec2(); super(); } public function IsValid():Boolean{ var _local1:Number = (upperBound.x - lowerBound.x); var _local2:Number = (upperBound.y - lowerBound.y); var _local3:Boolean = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } }//package Box2D.Collision
Section 10
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var value:uint; public var proxyId:uint; public var stabbingCount:uint; public function Swap(_arg1:b2Bound):void{ var _local2:uint = value; var _local3:uint = proxyId; var _local4:uint = stabbingCount; value = _arg1.value; proxyId = _arg1.proxyId; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxyId = _local3; _arg1.stabbingCount = _local4; } public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } } }//package Box2D.Collision
Section 11
//b2BoundValues (Box2D.Collision.b2BoundValues) package Box2D.Collision { public class b2BoundValues { public var lowerValues:Array; public var upperValues:Array; public function b2BoundValues(){ lowerValues = [0, 0]; upperValues = [0, 0]; super(); } } }//package Box2D.Collision
Section 12
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_bounds:Array; public var m_quantizationFactor:b2Vec2; public var m_worldAABB:b2AABB; 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 = 0xFFFF; public static const b2_invalid:uint = 0xFFFF; public static var s_validate:Boolean = false; public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){ var _local3:int; var _local5:Number; var _local6:b2Proxy; var _local7:int; m_pairManager = new b2PairManager(); m_proxyPool = new Array(b2Settings.b2_maxPairs); m_bounds = new Array((2 * b2Settings.b2_maxProxies)); m_queryResults = new Array(b2Settings.b2_maxProxies); m_quantizationFactor = new b2Vec2(); super(); m_pairManager.Initialize(this, _arg2); m_worldAABB = _arg1; m_proxyCount = 0; _local3 = 0; while (_local3 < b2Settings.b2_maxProxies) { m_queryResults[_local3] = 0; _local3++; }; m_bounds = new Array(2); _local3 = 0; while (_local3 < 2) { m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies)); _local7 = 0; while (_local7 < (2 * b2Settings.b2_maxProxies)) { m_bounds[_local3][_local7] = new b2Bound(); _local7++; }; _local3++; }; var _local4:Number = (_arg1.upperBound.x - _arg1.lowerBound.x); _local5 = (_arg1.upperBound.y - _arg1.lowerBound.y); m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4); m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5); _local3 = 0; while (_local3 < (b2Settings.b2_maxProxies - 1)) { _local6 = new b2Proxy(); m_proxyPool[_local3] = _local6; _local6.SetNext((_local3 + 1)); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; _local3++; }; _local6 = new b2Proxy(); m_proxyPool[int((b2Settings.b2_maxProxies - 1))] = _local6; _local6.SetNext(b2Pair.b2_nullProxy); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; m_freeProxy = 0; m_timeStamp = 1; m_queryResultCount = 0; } public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{ var _local6:uint; var _local7:uint; var _local12:b2Proxy; var _local4:Array = new Array(); var _local5:Array = new Array(); ComputeBounds(_local4, _local5, _arg1); var _local8:Array = [_local6]; var _local9:Array = [_local7]; Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0); Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1); var _local10:int; var _local11:int; while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) { _local12 = m_proxyPool[m_queryResults[_local11]]; _arg2[_local11] = _local12.userData; _local11++; _local10++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local10); } public function Commit():void{ m_pairManager.Commit(); } public function GetProxy(_arg1:int):b2Proxy{ var _local2:b2Proxy = m_proxyPool[_arg1]; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((_local2.IsValid() == false)))){ return (null); }; return (_local2); } private function IncrementTimeStamp():void{ var _local1:uint; if (m_timeStamp == b2Settings.USHRT_MAX){ _local1 = 0; while (_local1 < b2Settings.b2_maxProxies) { (m_proxyPool[_local1] as b2Proxy).timeStamp = 0; _local1++; }; m_timeStamp = 1; } else { m_timeStamp++; }; } private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{ var _local10:b2Bound; var _local12:int; var _local13:int; var _local14:b2Proxy; var _local8:uint = BinarySearch(_arg5, _arg6, _arg3); var _local9:uint = BinarySearch(_arg5, _arg6, _arg4); var _local11:uint = _local8; while (_local11 < _local9) { _local10 = _arg5[_local11]; if (_local10.IsLower()){ IncrementOverlapCount(_local10.proxyId); }; _local11++; }; if (_local8 > 0){ _local12 = (_local8 - 1); _local10 = _arg5[_local12]; _local13 = _local10.stabbingCount; while (_local13) { _local10 = _arg5[_local12]; if (_local10.IsLower()){ _local14 = m_proxyPool[_local10.proxyId]; if (_local8 <= _local14.upperBounds[_arg7]){ IncrementOverlapCount(_local10.proxyId); _local13--; }; }; _local12--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local6:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg1.lowerBounds[_local3]]; _local6 = _local4[_arg2.upperBounds[_local3]]; if (_local5.value > _local6.value){ return (false); }; _local5 = _local4[_arg1.upperBounds[_local3]]; _local6 = _local4[_arg2.lowerBounds[_local3]]; if (_local5.value < _local6.value){ return (false); }; _local3++; }; return (true); } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number = _arg3.lowerBound.x; var _local5:Number = _arg3.lowerBound.y; _local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x); _local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y); _local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x); _local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y); var _local6:Number = _arg3.upperBound.x; var _local7:Number = _arg3.upperBound.y; _local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x); _local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y); _local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x); _local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y); _arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1)); _arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1); _arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1)); _arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1); } public function CreateProxy(_arg1:b2AABB, _arg2):uint{ var _local3:uint; var _local4:b2Proxy; var _local11:Array; var _local12:uint; var _local13:uint; var _local14:Array; var _local15:Array; var _local16:Array; var _local17:int; var _local18:int; var _local19:b2Bound; var _local20:b2Bound; var _local21:b2Bound; var _local22:int; var _local23:b2Proxy; var _local5:uint = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; var _local6:uint = (2 * m_proxyCount); var _local7:Array = new Array(); var _local8:Array = new Array(); ComputeBounds(_local7, _local8, _arg1); var _local9:int; while (_local9 < 2) { _local11 = m_bounds[_local9]; _local14 = [_local12]; _local15 = [_local13]; Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9); _local12 = _local14[0]; _local13 = _local15[0]; _local16 = new Array(); _local18 = (_local6 - _local13); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local13 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local13 + 2); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local16 = new Array(); _local18 = (_local13 - _local12); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local12 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local12 + 1); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local13++; _local19 = _local11[_local12]; _local20 = _local11[_local13]; _local19.value = _local7[_local9]; _local19.proxyId = _local5; _local20.value = _local8[_local9]; _local20.proxyId = _local5; _local21 = _local11[int((_local12 - 1))]; _local19.stabbingCount = ((_local12 == 0)) ? 0 : _local21.stabbingCount; _local21 = _local11[int((_local13 - 1))]; _local20.stabbingCount = _local21.stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local21 = _local11[_local3]; _local21.stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local6 + 2)) { _local19 = _local11[_local3]; _local23 = m_proxyPool[_local19.proxyId]; if (_local19.IsLower()){ _local23.lowerBounds[_local9] = _local3; } else { _local23.upperBounds[_local9] = _local3; }; _local3++; }; _local9++; }; m_proxyCount++; var _local10:int; while (_local10 < m_queryResultCount) { m_pairManager.AddBufferedPair(_local5, m_queryResults[_local10]); _local10++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); return (_local5); } public function DestroyProxy(_arg1:uint):void{ var _local2:b2Bound; var _local3:b2Bound; var _local8:Array; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:Array; var _local14:int; var _local15:int; var _local16:int; var _local17:uint; var _local18:int; var _local19:b2Proxy; var _local4:b2Proxy = m_proxyPool[_arg1]; var _local5:int = (2 * m_proxyCount); var _local6:int; while (_local6 < 2) { _local8 = m_bounds[_local6]; _local9 = _local4.lowerBounds[_local6]; _local10 = _local4.upperBounds[_local6]; _local2 = _local8[_local9]; _local11 = _local2.value; _local3 = _local8[_local10]; _local12 = _local3.value; _local13 = new Array(); _local15 = ((_local10 - _local9) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local9 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = _local9; _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local13 = new Array(); _local15 = ((_local5 - _local10) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local10 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = (_local10 - 1); _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = (_local5 - 2); _local17 = _local9; while (_local17 < _local15) { _local2 = _local8[_local17]; _local19 = m_proxyPool[_local2.proxyId]; if (_local2.IsLower()){ _local19.lowerBounds[_local6] = _local17; } else { _local19.upperBounds[_local6] = _local17; }; _local17++; }; _local15 = (_local10 - 1); _local18 = _local9; while (_local18 < _local15) { _local2 = _local8[_local18]; _local2.stabbingCount--; _local18++; }; Query([0], [0], _local11, _local12, _local8, (_local5 - 2), _local6); _local6++; }; var _local7:int; while (_local7 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local7]); _local7++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _local4.userData = null; _local4.overlapCount = b2_invalid; _local4.lowerBounds[0] = b2_invalid; _local4.lowerBounds[1] = b2_invalid; _local4.upperBounds[0] = b2_invalid; _local4.upperBounds[1] = b2_invalid; _local4.SetNext(m_freeProxy); m_freeProxy = _arg1; m_proxyCount--; } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg2.upperBounds[_local3]]; if (_arg1.lowerValues[_local3] > _local5.value){ return (false); }; _local5 = _local4[_arg2.lowerBounds[_local3]]; if (_arg1.upperValues[_local3] < _local5.value){ return (false); }; _local3++; }; return (true); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; var _local5:int; while (_local5 < 2) { _local6 = m_bounds[_local5]; _local7 = (2 * m_proxyCount); _local8 = 0; _local9 = 0; while (_local9 < _local7) { _local10 = _local6[_local9]; if (_local10.IsLower() == true){ _local8++; } else { _local8--; }; _local9++; }; _local5++; }; } private function IncrementOverlapCount(_arg1:uint):void{ var _local2:b2Proxy = m_proxyPool[_arg1]; if (_local2.timeStamp < m_timeStamp){ _local2.timeStamp = m_timeStamp; _local2.overlapCount = 1; } else { _local2.overlapCount = 2; m_queryResults[m_queryResultCount] = _arg1; m_queryResultCount++; }; } public function InRange(_arg1:b2AABB):Boolean{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = _arg1.lowerBound.x; _local3 = _arg1.lowerBound.y; _local2 = (_local2 - m_worldAABB.upperBound.x); _local3 = (_local3 - m_worldAABB.upperBound.y); _local4 = m_worldAABB.lowerBound.x; _local5 = m_worldAABB.lowerBound.y; _local4 = (_local4 - _arg1.upperBound.x); _local5 = (_local5 - _arg1.upperBound.y); _local2 = b2Math.b2Max(_local2, _local4); _local3 = b2Math.b2Max(_local3, _local5); return ((b2Math.b2Max(_local2, _local3) < 0)); } public function MoveProxy(_arg1:uint, _arg2:b2AABB):void{ var _local3:Array; var _local4:int; var _local5:uint; var _local6:uint; var _local7:b2Bound; var _local8:b2Bound; var _local9:b2Bound; var _local10:uint; var _local11:b2Proxy; var _local16:Array; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:uint; var _local21:int; var _local22:int; var _local23:uint; var _local24:b2Proxy; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){ return; }; if (_arg2.IsValid() == false){ return; }; var _local12:uint = (2 * m_proxyCount); var _local13:b2Proxy = m_proxyPool[_arg1]; var _local14:b2BoundValues = new b2BoundValues(); ComputeBounds(_local14.lowerValues, _local14.upperValues, _arg2); var _local15:b2BoundValues = new b2BoundValues(); _local5 = 0; while (_local5 < 2) { _local7 = m_bounds[_local5][_local13.lowerBounds[_local5]]; _local15.lowerValues[_local5] = _local7.value; _local7 = m_bounds[_local5][_local13.upperBounds[_local5]]; _local15.upperValues[_local5] = _local7.value; _local5++; }; _local5 = 0; while (_local5 < 2) { _local16 = m_bounds[_local5]; _local17 = _local13.lowerBounds[_local5]; _local18 = _local13.upperBounds[_local5]; _local19 = _local14.lowerValues[_local5]; _local20 = _local14.upperValues[_local5]; _local7 = _local16[_local17]; _local21 = (_local19 - _local7.value); _local7.value = _local19; _local7 = _local16[_local18]; _local22 = (_local20 - _local7.value); _local7.value = _local20; if (_local21 < 0){ _local6 = _local17; while ((((_local6 > 0)) && ((_local19 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local8.proxyId]; _local8.stabbingCount++; if (_local8.IsUpper() == true){ if (TestOverlap(_local14, _local24)){ m_pairManager.AddBufferedPair(_arg1, _local23); }; _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; if (_local22 > 0){ _local6 = _local18; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local20)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount++; if (_local9.IsLower() == true){ if (TestOverlap(_local14, _local11)){ m_pairManager.AddBufferedPair(_arg1, _local10); }; _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local21 > 0){ _local6 = _local17; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local19)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount--; if (_local9.IsUpper()){ if (TestOverlap(_local15, _local11)){ m_pairManager.RemoveBufferedPair(_arg1, _local10); }; _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local22 < 0){ _local6 = _local18; while ((((_local6 > 0)) && ((_local20 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local23]; _local8.stabbingCount--; if (_local8.IsLower() == true){ if (TestOverlap(_local15, _local24)){ m_pairManager.RemoveBufferedPair(_arg1, _local23); }; _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; _local5++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local6:int; var _local7:b2Bound; var _local4:int; var _local5:int = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); _local7 = _arg1[_local6]; if (_local7.value > _arg3){ _local5 = (_local6 - 1); } else { if (_local7.value < _arg3){ _local4 = (_local6 + 1); } else { return (uint(_local6)); }; }; }; return (uint(_local4)); } } }//package Box2D.Collision
Section 13
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 14
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local11:b2Mat22; var _local12:b2Vec2; var _local25:Number; var _local6:int = _arg1.m_vertexCount; var _local7:Array = _arg1.m_vertices; var _local8:Array = _arg1.m_normals; var _local9:int = _arg4.m_vertexCount; var _local10:Array = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; var _local13:Number = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); var _local14:Number = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; var _local15:Number = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); var _local16:Number = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; var _local20:Number = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local21:Number = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; var _local22:Number = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local23:Number = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); var _local24:Number = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2 = _arg2.lowerBound; var _local4:b2Vec2 = _arg1.upperBound; var _local5:Number = (_local3.x - _local4.x); var _local6:Number = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; var _local7:Number = (_local3.x - _local4.x); var _local8:Number = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local12:b2Mat22; var _local13:b2Vec2; var _local20:ClipVertex; var _local23:Number; var _local7:int = _arg2.m_vertexCount; var _local8:Array = _arg2.m_normals; var _local9:int = _arg5.m_vertexCount; var _local10:Array = _arg5.m_vertices; var _local11:Array = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; var _local14:Number = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); var _local15:Number = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; var _local16:Number = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; var _local21:int = _local17; var _local22:int = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local21; _local20.id.features.incidentVertex = 0; _local20 = _arg1[1]; _local13 = _local10[_local22]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local22; _local20.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:ClipVertex; var _local13:b2PolygonShape; var _local14:b2PolygonShape; var _local17:int; var _local18:uint; var _local34:int; var _local37:b2Vec2; var _local38:Number; var _local39:b2ManifoldPoint; _arg1.pointCount = 0; var _local7:int; var _local8:Array = [_local7]; var _local9:Number = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5); _local7 = _local8[0]; if (_local9 > 0){ return; }; var _local10:int; var _local11:Array = [_local10]; var _local12:Number = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3); _local10 = _local11[0]; if (_local12 > 0){ return; }; var _local15:b2XForm = new b2XForm(); var _local16:b2XForm = new b2XForm(); var _local19:Number = 0.98; var _local20:Number = 0.001; if (_local12 > ((_local19 * _local9) + _local20)){ _local13 = _arg4; _local14 = _arg2; _local15.Set(_arg5); _local16.Set(_arg3); _local17 = _local10; _local18 = 1; } else { _local13 = _arg2; _local14 = _arg4; _local15.Set(_arg3); _local16.Set(_arg5); _local17 = _local7; _local18 = 0; }; var _local21:Array = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16); var _local22:int = _local13.m_vertexCount; var _local23:Array = _local13.m_vertices; var _local24:b2Vec2 = _local23[_local17]; var _local25:b2Vec2 = _local24.Copy(); if ((_local17 + 1) < _local22){ _local24 = _local23[int((_local17 + 1))]; _local37 = _local24.Copy(); } else { _local24 = _local23[0]; _local37 = _local24.Copy(); }; var _local26:b2Vec2 = b2Math.SubtractVV(_local37, _local25); var _local27:b2Vec2 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25)); _local27.Normalize(); var _local28:b2Vec2 = b2Math.b2CrossVF(_local27, 1); _local25 = b2Math.b2MulX(_local15, _local25); _local37 = b2Math.b2MulX(_local15, _local37); var _local29:Number = b2Math.b2Dot(_local28, _local25); var _local30:Number = -(b2Math.b2Dot(_local27, _local25)); var _local31:Number = b2Math.b2Dot(_local27, _local37); var _local32:Array = [new ClipVertex(), new ClipVertex()]; var _local33:Array = [new ClipVertex(), new ClipVertex()]; _local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30); if (_local34 < 2){ return; }; _local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31); if (_local34 < 2){ return; }; _arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy(); var _local35:int; var _local36:int; while (_local36 < b2Settings.b2_maxManifoldPoints) { _local6 = _local33[_local36]; _local38 = (b2Math.b2Dot(_local28, _local6.v) - _local29); if (_local38 <= 0){ _local39 = _arg1.points[_local35]; _local39.separation = _local38; _local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v); _local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v); _local39.id.key = _local6.id._key; _local39.id.features.flip = _local18; _local35++; }; _local36++; }; _arg1.pointCount = _local35; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local8:b2Vec2; var _local9:b2Mat22; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; var _local6:int = _arg2.m_vertexCount; var _local7:Array = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; var _local10:Number = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); var _local11:Number = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local9 = _arg3.R; _local8 = _arg2.m_centroid; _local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)))); _local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)))); var _local12:Number = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); var _local13:Number = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); var _local14:int; var _local15:Number = -(Number.MAX_VALUE); var _local16:int; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; var _local17:Number = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; var _local18:int = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); var _local19:Number = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); if (_local19 > 0){ return (_local19); }; var _local20:int = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; var _local21:Number = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); if (_local21 > 0){ return (_local21); }; if ((((_local19 > _local17)) && ((_local19 > _local21)))){ _local24 = -1; _local22 = _local18; _local23 = _local19; } else { if (_local21 > _local17){ _local24 = 1; _local22 = _local20; _local23 = _local21; } else { _arg1[0] = _local14; return (_local17); }; }; while (true) { if (_local24 == -1){ _local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1); } else { _local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; if (_local17 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; _local8 = _local5.v; _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); var _local10:Number = (b2Math.b2Dot(_arg3, _local8) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); var _local14 = _temp1; _arg1[_local14] = _arg2[0]; }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _local14 = _temp2; _arg1[_local14] = _arg2[1]; }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local18:Number; var _local24:Number; var _local25:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; var _local8:Number = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local9:Number = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; var _local10:Number = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local11:Number = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); var _local12:Number = (_local10 - _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local15:Number = _arg2.m_radius; var _local16:Number = _arg4.m_radius; var _local17:Number = (_local15 + _local16); if (_local14 > (_local17 * _local17)){ return; }; if (_local14 < Number.MIN_VALUE){ _local18 = -(_local17); _arg1.normal.Set(0, 1); } else { _local24 = Math.sqrt(_local14); _local18 = (_local24 - _local17); _local25 = (1 / _local24); _arg1.normal.x = (_local25 * _local12); _arg1.normal.y = (_local25 * _local13); }; _arg1.pointCount = 1; var _local19:b2ManifoldPoint = _arg1.points[0]; _local19.id.key = 0; _local19.separation = _local18; _local8 = (_local8 + (_local15 * _arg1.normal.x)); _local9 = (_local9 + (_local15 * _arg1.normal.y)); _local10 = (_local10 - (_local16 * _arg1.normal.x)); _local11 = (_local11 - (_local16 * _arg1.normal.y)); var _local20:Number = (0.5 * (_local8 + _local10)); var _local21:Number = (0.5 * (_local9 + _local11)); var _local22:Number = (_local20 - _arg3.position.x); var _local23:Number = (_local21 - _arg3.position.y); _local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y)); _local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y)); _local22 = (_local20 - _arg5.position.x); _local23 = (_local21 - _arg5.position.y); _local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y)); _local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y)); } public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local17:Number; var _local32:Number; var _local33:Number; var _local34:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; var _local13:Number = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); var _local14:Number = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; var _local15:Number = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); var _local16:Number = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); var _local18:int; var _local19:Number = -(Number.MAX_VALUE); var _local20:Number = _arg4.m_radius; var _local21:int = _arg2.m_vertexCount; var _local22:Array = _arg2.m_vertices; var _local23:Array = _arg2.m_normals; var _local24:int; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _local34 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local34 > _local20){ return; }; if (_local34 > _local19){ _local19 = _local34; _local18 = _local24; }; _local24++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _local23[_local18]; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)); _arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local19 - _local20); return; }; var _local25:int = _local18; var _local26:int = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; _local11 = _local22[_local25]; var _local27:b2Vec2 = _local22[_local26]; var _local28:Number = (_local27.x - _local11.x); var _local29:Number = (_local27.y - _local11.y); var _local30:Number = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); var _local31:Number = ((_local7 * _local28) + (_local8 * _local29)); _local6 = _arg1.points[0]; if (_local31 <= 0){ _local32 = _local11.x; _local33 = _local11.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local25; } else { if (_local31 >= _local30){ _local32 = _local27.x; _local33 = _local27.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local26; } else { _local32 = ((_local28 * _local31) + _local11.x); _local33 = ((_local29 * _local31) + _local11.y); _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; }; }; _local7 = (_local15 - _local32); _local8 = (_local16 - _local33); _local17 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local7 = (_local7 / _local17); _local8 = (_local8 / _local17); if (_local17 > _local20){ return; }; _arg1.pointCount = 1; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local7) + (_local12.col2.x * _local8)); _arg1.normal.y = ((_local12.col1.y * _local7) + (_local12.col2.y * _local8)); _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local17 - _local20); _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; } } }//package Box2D.Collision
Section 15
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { public class b2ContactID { public var _key:uint; public var features:Features; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID = new b2ContactID(); _local1.key = key; return (_local1); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceEdge = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } public function get key():uint{ return (_key); } } }//package Box2D.Collision
Section 16
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2ContactPoint { public var friction:Number; public var separation:Number; public var normal:b2Vec2; public var position:b2Vec2; public var restitution:Number; public var shape1:b2Shape; public var shape2:b2Shape; public var id:b2ContactID; public var velocity:b2Vec2; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 17
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; 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 _local6:b2Vec2; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local4:Number = (100 * Number.MIN_VALUE); var _local5:int; while (_local5 < _arg3) { _local6 = _arg2[_local5]; _local7 = Math.abs((_arg1.x - _local6.x)); _local8 = Math.abs((_arg1.y - _local6.y)); _local9 = Math.max(Math.abs(_arg1.x), Math.abs(_local6.x)); _local10 = Math.max(Math.abs(_arg1.y), Math.abs(_local6.y)); if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:b2Vec2; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:int; var _local8:Array = s_p1s; var _local9:Array = s_p2s; var _local10:Array = s_points; var _local11:int; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); var _local12:Number = 0; var _local13 = 20; var _local14:int; while (_local14 < _local13) { _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local17 = _arg3.Support(_arg4, _local15, _local16); _local18 = _arg5.Support(_arg6, -(_local15), -(_local16)); _local12 = ((_local15 * _local15) + (_local16 * _local16)); _local19 = (_local18.x - _local17.x); _local20 = (_local18.y - _local17.y); _local21 = ((_local15 * _local19) + (_local16 * _local20)); if ((_local12 - _local21) <= (0.01 * _local12)){ if (_local11 == 0){ _arg1.SetV(_local17); _arg2.SetV(_local18); }; g_GJK_Iterations = _local14; return (Math.sqrt(_local12)); }; switch (_local11){ case 0: _local7 = _local8[0]; _local7.SetV(_local17); _local7 = _local9[0]; _local7.SetV(_local18); _local7 = _local10[0]; _local7.x = _local19; _local7.y = _local20; _arg1.SetV(_local8[0]); _arg2.SetV(_local9[0]); _local11++; break; case 1: _local7 = _local8[1]; _local7.SetV(_local17); _local7 = _local9[1]; _local7.SetV(_local18); _local7 = _local10[1]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10); break; case 2: _local7 = _local8[2]; _local7.SetV(_local17); _local7 = _local9[2]; _local7.SetV(_local18); _local7 = _local10[2]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10); break; }; if (_local11 == 3){ g_GJK_Iterations = _local14; return (0); }; _local22 = -(Number.MAX_VALUE); _local23 = 0; while (_local23 < _local11) { _local7 = _local10[_local23]; _local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y))); _local23++; }; if ((((_local11 == 3)) || ((_local12 <= ((100 * Number.MIN_VALUE) * _local22))))){ g_GJK_Iterations = _local14; _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local12 = ((_local15 * _local15) + (_local16 * _local16)); return (Math.sqrt(_local12)); }; _local14++; }; g_GJK_Iterations = _local13; return (Math.sqrt(_local12)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; var _local9:Number = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local10:Number = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; var _local11:Number = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local12:Number = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:Number = ((_local13 * _local13) + (_local14 * _local14)); var _local16:Number = (_arg3.m_radius - b2Settings.b2_toiSlop); var _local17:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); var _local18:Number = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(_local15); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _local20 = (_local19 - _local18); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = (_local11 - (_local17 * _local13)); _arg2.y = (_local12 - (_local17 * _local14)); return (_local20); }; if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local19 = Math.sqrt(_local15); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; _arg1.x = _local9; _arg1.y = _local10; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:b2Vec2; var _local35:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg5[2]; _local9 = _arg3[0]; _local10 = _arg3[1]; _local11 = _arg3[2]; _local12 = _arg4[0]; _local13 = _arg4[1]; var _local14:b2Vec2 = _arg4[2]; var _local15:Number = _local6.x; var _local16:Number = _local6.y; var _local17:Number = _local7.x; var _local18:Number = _local7.y; var _local19:Number = _local8.x; var _local20:Number = _local8.y; var _local21:Number = (_local17 - _local15); var _local22:Number = (_local18 - _local16); var _local23:Number = (_local19 - _local15); var _local24:Number = (_local20 - _local16); var _local25:Number = (_local19 - _local17); var _local26:Number = (_local20 - _local18); var _local27:Number = -(((_local15 * _local21) + (_local16 * _local22))); var _local28:Number = ((_local17 * _local21) + (_local18 * _local22)); var _local29:Number = -(((_local15 * _local23) + (_local16 * _local24))); var _local30:Number = ((_local19 * _local23) + (_local20 * _local24)); var _local31:Number = -(((_local17 * _local25) + (_local18 * _local26))); var _local32:Number = ((_local19 * _local25) + (_local20 * _local26)); if ((((_local30 <= 0)) && ((_local32 <= 0)))){ _arg1.SetV(_local11); _arg2.SetV(_local14); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (1); }; var _local33:Number = ((_local21 * _local24) - (_local22 * _local23)); var _local34:Number = (_local33 * ((_local15 * _local18) - (_local16 * _local17))); var _local36:Number = (_local33 * ((_local17 * _local20) - (_local18 * _local19))); if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){ _local35 = (_local31 / (_local31 + _local32)); _arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x))); _arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y))); _arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x))); _arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y))); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (2); }; var _local37:Number = (_local33 * ((_local19 * _local16) - (_local20 * _local15))); if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){ _local35 = (_local29 / (_local29 + _local30)); _arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x))); _arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y))); _arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x))); _arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y))); _local10.SetV(_local11); _local13.SetV(_local14); _local7.SetV(_local8); return (2); }; var _local38:Number = ((_local36 + _local37) + _local34); _local38 = (1 / _local38); var _local39:Number = (_local36 * _local38); var _local40:Number = (_local37 * _local38); var _local41:Number = ((1 - _local39) - _local40); _arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x)); _arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y)); _arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x)); _arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y)); return (3); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local9:b2Point = gPoint; _local8 = _arg5.m_localPosition; _local7 = _arg6.R; _local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local10:Number = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); var _local11:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); if (_local10 > _local11){ _local10 = (_local10 - _local11); _local12 = (_arg2.x - _arg1.x); _local13 = (_arg2.y - _arg1.y); _local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13))); _local12 = (_local12 / _local14); _local13 = (_local13 / _local14); _arg2.x = (_arg2.x - (_local11 * _local12)); _arg2.y = (_arg2.y - (_local11 * _local13)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ var _local7:int = _arg3.m_type; var _local8:int = _arg5.m_type; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6)); }; return (0); } public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local17:Number; var _local6:b2Vec2 = _arg5[0]; var _local7:b2Vec2 = _arg5[1]; var _local8:b2Vec2 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; var _local12:Number = -(_local7.x); var _local13:Number = -(_local7.y); var _local14:Number = (_local6.x - _local7.x); var _local15:Number = (_local6.y - _local7.y); var _local16:Number = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); _local14 = (_local14 / _local16); _local15 = (_local15 / _local16); _local17 = ((_local12 * _local14) + (_local13 * _local15)); if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){ _arg1.SetV(_local9); _arg2.SetV(_local11); _local8.SetV(_local9); _local10.SetV(_local11); _local6.SetV(_local7); return (1); }; _local17 = (_local17 / _local16); _arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x))); _arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y))); _arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x))); _arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y))); return (2); } } }//package Box2D.Collision
Section 18
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var pointCount:int;// = 0 public var normal:b2Vec2; public var points:Array; public function b2Manifold(){ points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Set(_arg1:b2Manifold):void{ pointCount = _arg1.pointCount; var _local2:int; while (_local2 < b2Settings.b2_maxManifoldPoints) { (points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]); _local2++; }; normal.SetV(_arg1.normal); } public function Reset():void{ var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } } }//package Box2D.Collision
Section 19
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var separation:Number; public var localPoint2:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var localPoint1:b2Vec2; public var id:b2ContactID; public function b2ManifoldPoint(){ localPoint1 = new b2Vec2(); localPoint2 = new b2Vec2(); id = new b2ContactID(); super(); } public function Set(_arg1:b2ManifoldPoint):void{ localPoint1.SetV(_arg1.localPoint1); localPoint2.SetV(_arg1.localPoint2); separation = _arg1.separation; normalImpulse = _arg1.normalImpulse; tangentImpulse = _arg1.tangentImpulse; id.key = _arg1.id.key; } public function Reset():void{ localPoint1.SetZero(); localPoint2.SetZero(); separation = 0; normalImpulse = 0; tangentImpulse = 0; id.key = 0; } } }//package Box2D.Collision
Section 20
//b2OBB (Box2D.Collision.b2OBB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2OBB { public var R:b2Mat22; public var center:b2Vec2; public var extents:b2Vec2; public function b2OBB(){ R = new b2Mat22(); center = new b2Vec2(); extents = new b2Vec2(); super(); } } }//package Box2D.Collision
Section 21
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var proxyId1:uint; public var userData;// = null 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 SetBuffered():void{ status = (status | e_pairBuffered); } public function IsBuffered():Boolean{ return (((status & e_pairBuffered) == e_pairBuffered)); } public function IsFinal():Boolean{ return (((status & e_pairFinal) == e_pairFinal)); } public function ClearRemoved():void{ status = (status & ~(e_pairRemoved)); } public function SetFinal():void{ status = (status | e_pairFinal); } public function IsRemoved():Boolean{ return (((status & e_pairRemoved) == e_pairRemoved)); } public function ClearBuffered():void{ status = (status & ~(e_pairBuffered)); } public function SetRemoved():void{ status = (status | e_pairRemoved); } } }//package Box2D.Collision
Section 22
//b2PairCallback (Box2D.Collision.b2PairCallback) package Box2D.Collision { public class b2PairCallback { public function PairRemoved(_arg1, _arg2, _arg3):void{ } public function PairAdded(_arg1, _arg2){ return (null); } } }//package Box2D.Collision
Section 23
//b2PairManager (Box2D.Collision.b2PairManager) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PairManager { public var m_pairCount:int; public var m_pairBuffer:Array; public var m_hashTable:Array; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_pairBufferCount:int; public var m_broadPhase:b2BroadPhase; public var m_freePair:uint; public function b2PairManager(){ var _local1:uint; super(); m_hashTable = new Array(b2Pair.b2_tableCapacity); _local1 = 0; while (_local1 < b2Pair.b2_tableCapacity) { m_hashTable[_local1] = b2Pair.b2_nullPair; _local1++; }; m_pairs = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1] = new b2Pair(); _local1++; }; m_pairBuffer = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairBuffer[_local1] = new b2BufferedPair(); _local1++; }; _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1].proxyId1 = b2Pair.b2_nullProxy; m_pairs[_local1].proxyId2 = b2Pair.b2_nullProxy; m_pairs[_local1].userData = null; m_pairs[_local1].status = 0; m_pairs[_local1].next = (_local1 + 1); _local1++; }; m_pairs[int((b2Settings.b2_maxPairs - 1))].next = b2Pair.b2_nullPair; m_pairCount = 0; m_pairBufferCount = 0; } private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{ var _local4:b2Pair; var _local5:uint = m_hashTable[_arg3]; _local4 = m_pairs[_local5]; while (((!((_local5 == b2Pair.b2_nullPair))) && ((Equals(_local4, _arg1, _arg2) == false)))) { _local5 = _local4.next; _local4 = m_pairs[_local5]; }; if (_local5 == b2Pair.b2_nullPair){ return (null); }; return (_local4); } private function Find(_arg1:uint, _arg2:uint):b2Pair{ var _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function ValidateBuffer():void{ } public function Commit():void{ var _local1:b2BufferedPair; var _local2:int; var _local5:b2Pair; var _local6:b2Proxy; var _local7:b2Proxy; var _local3:int; var _local4:Array = m_broadPhase.m_proxyPool; _local2 = 0; while (_local2 < m_pairBufferCount) { _local1 = m_pairBuffer[_local2]; _local5 = Find(_local1.proxyId1, _local1.proxyId2); _local5.ClearBuffered(); _local6 = _local4[_local5.proxyId1]; _local7 = _local4[_local5.proxyId2]; if (_local5.IsRemoved()){ if (_local5.IsFinal() == true){ m_callback.PairRemoved(_local6.userData, _local7.userData, _local5.userData); }; _local1 = m_pairBuffer[_local3]; _local1.proxyId1 = _local5.proxyId1; _local1.proxyId2 = _local5.proxyId2; _local3++; } else { if (_local5.IsFinal() == false){ _local5.userData = m_callback.PairAdded(_local6.userData, _local7.userData); _local5.SetFinal(); }; }; _local2++; }; _local2 = 0; while (_local2 < _local3) { _local1 = m_pairBuffer[_local2]; RemovePair(_local1.proxyId1, _local1.proxyId2); _local2++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = Find(_arg1, _arg2); if (_local4 == null){ return; }; if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:b2Pair; var _local7:uint; var _local8:uint; var _local9:*; if (_arg1 > _arg2){ _local7 = _arg1; _arg1 = _arg2; _arg2 = _local7; }; var _local4:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local5:uint = m_hashTable[_local4]; var _local6:b2Pair; while (_local5 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local5], _arg1, _arg2)){ _local8 = _local5; _local3 = m_pairs[_local5]; if (_local6){ _local6.next = _local3.next; } else { m_hashTable[_local4] = _local3.next; }; _local3 = m_pairs[_local8]; _local9 = _local3.userData; _local3.next = m_freePair; _local3.proxyId1 = b2Pair.b2_nullProxy; _local3.proxyId2 = b2Pair.b2_nullProxy; _local3.userData = null; _local3.status = 0; m_freePair = _local8; m_pairCount--; return (_local9); } else { _local6 = m_pairs[_local5]; _local5 = _local6.next; }; }; return (null); } public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{ m_broadPhase = _arg1; m_callback = _arg2; } public function AddBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = AddPair(_arg1, _arg2); if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; var _local5:uint = m_freePair; _local4 = m_pairs[_local5]; m_freePair = _local4.next; _local4.proxyId1 = _arg1; _local4.proxyId2 = _arg2; _local4.status = 0; _local4.userData = null; _local4.next = m_hashTable[_local3]; m_hashTable[_local3] = _local5; m_pairCount++; return (_local4); } private function 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 = (((_arg2 << 16) & 4294901760) | _arg1); _local3 = (~(_local3) + ((_local3 << 15) & 4294934528)); _local3 = (_local3 ^ ((_local3 >> 12) & 1048575)); _local3 = (_local3 + ((_local3 << 2) & 4294967292)); _local3 = (_local3 ^ ((_local3 >> 4) & 268435455)); _local3 = (_local3 * 2057); _local3 = (_local3 ^ ((_local3 >> 16) & 0xFFFF)); return (_local3); } public static function Equals(_arg1:b2Pair, _arg2:uint, _arg3:uint):Boolean{ return ((((_arg1.proxyId1 == _arg2)) && ((_arg1.proxyId2 == _arg3)))); } } }//package Box2D.Collision
Section 24
//b2Point (Box2D.Collision.b2Point) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Point { public var p:b2Vec2; public function b2Point(){ p = new b2Vec2(); super(); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (p); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ return (p); } } }//package Box2D.Collision
Section 25
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var overlapCount:uint; public var userData;// = null public var lowerBounds:Array; public var upperBounds:Array; public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; super(); } public function GetNext():uint{ return (lowerBounds[0]); } public function IsValid():Boolean{ return (!((overlapCount == b2BroadPhase.b2_invalid))); } public function SetNext(_arg1:uint):void{ lowerBounds[0] = (_arg1 & 0xFFFF); } } }//package Box2D.Collision
Section 26
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local5:b2Vec2 = _arg3.p1; var _local6:Number = (_arg3.p2.x - _local5.x); var _local7:Number = (_arg3.p2.y - _local5.y); var _local8:Number = (p2.x - p1.x); var _local9:Number = (p2.y - p1.y); var _local10:Number = _local9; var _local11:Number = -(_local8); var _local12:Number = (100 * Number.MIN_VALUE); var _local13:Number = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local6) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } } }//package Box2D.Collision
Section 27
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; 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 _local25:Number; var _local26:b2XForm; var _local27:b2XForm; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local7:Number = _arg1.m_sweepRadius; var _local8:Number = _arg3.m_sweepRadius; var _local9:Number = _arg2.t0; var _local10:Number = (_arg2.c.x - _arg2.c0.x); var _local11:Number = (_arg2.c.y - _arg2.c0.y); var _local12:Number = (_arg4.c.x - _arg4.c0.x); var _local13:Number = (_arg4.c.y - _arg4.c0.y); var _local14:Number = (_arg2.a - _arg2.a0); var _local15:Number = (_arg4.a - _arg4.a0); var _local16:Number = 0; var _local17:b2Vec2 = s_p1; var _local18:b2Vec2 = s_p2; var _local19 = 20; var _local20:int; var _local21:Number = 0; var _local22:Number = 0; var _local23:Number = 0; var _local24:Number = 0; while (true) { _local25 = (((1 - _local16) * _local9) + _local16); _local26 = s_xf1; _local27 = s_xf2; _arg2.GetXForm(_local26, _local25); _arg4.GetXForm(_local27, _local25); _local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27); if (_local20 == 0){ if (_local23 > (2 * b2Settings.b2_toiSlop)){ _local24 = (1.5 * b2Settings.b2_toiSlop); } else { _local5 = (0.05 * b2Settings.b2_toiSlop); _local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop)); _local24 = ((_local5 > _local6)) ? _local5 : _local6; }; }; if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){ break; }; _local21 = (_local18.x - _local17.x); _local22 = (_local18.y - _local17.y); _local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22))); _local21 = (_local21 / _local28); _local22 = (_local22 / _local28); _local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8)); if (_local29 == 0){ _local16 = 1; break; }; _local30 = ((_local23 - _local24) / _local29); _local31 = (_local16 + _local30); if ((((_local31 < 0)) || ((1 < _local31)))){ _local16 = 1; break; }; if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){ break; }; _local16 = _local31; _local20++; }; return (_local16); } } }//package Box2D.Collision
Section 28
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var id:b2ContactID; public var v:b2Vec2; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 29
//Features (Box2D.Collision.Features) package Box2D.Collision { public class Features { public var _referenceEdge:int; public var _incidentEdge:int; public var _flip:int; public var _incidentVertex:int; public var _m_id:b2ContactID; public function get referenceEdge():int{ return (_referenceEdge); } public function set incidentVertex(_arg1:int):void{ _incidentVertex = _arg1; _m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000)); } public function get flip():int{ return (_flip); } public function get incidentEdge():int{ return (_incidentEdge); } public function set referenceEdge(_arg1:int):void{ _referenceEdge = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } }//package Box2D.Collision
Section 30
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(_arg1:Number=0, _arg2:b2Vec2=null, _arg3:b2Vec2=null){ var _local4:Number; var _local5:Number; col1 = new b2Vec2(); col2 = new b2Vec2(); super(); if (((!((_arg2 == null))) && (!((_arg3 == null))))){ col1.SetV(_arg2); col2.SetV(_arg3); } else { _local4 = Math.cos(_arg1); _local5 = Math.sin(_arg1); col1.x = _local4; col2.x = -(_local5); col1.y = _local5; col2.y = _local4; }; } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function Set(_arg1:Number):void{ var _local2:Number; _local2 = Math.cos(_arg1); var _local3:Number = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function 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 _local4:Number; var _local6:Number; _local2 = col1.x; var _local3:Number = col2.x; _local4 = col1.y; var _local5:Number = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number = col1.x; var _local5:Number = col2.x; var _local6:Number = col1.y; var _local7:Number = col2.y; var _local8:Number = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } }//package Box2D.Common.Math
Section 31
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Mat22_identity:b2Mat22 = new b2Mat22(0, new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2XForm_identity:b2XForm = new b2XForm(b2Vec2_zero, b2Mat22_identity); public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function 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 = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:* = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function 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 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function 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 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); var _local4:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); var _local5:b2Mat22 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean = (((_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 = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); return (_local3); } public static function 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 = 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 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } } }//package Box2D.Common.Math
Section 32
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var a:Number; public var c:b2Vec2; public var a0:Number; public var c0:b2Vec2; 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 _local4:Number; var _local5:Number; if ((1 - t0) > Number.MIN_VALUE){ _local4 = ((_arg2 - t0) / (1 - t0)); _arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x)); _arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y)); _local5 = (((1 - _local4) * a0) + (_local4 * a)); _arg1.R.Set(_local5); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; var _local3:b2Mat22 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } } }//package Box2D.Common.Math
Section 33
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { public class b2Vec2 { public var y:Number; public var x:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } 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 MulM(_arg1:b2Mat22):void{ var _local2:Number = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function SetZero():void{ x = 0; y = 0; } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function Normalize():Number{ var _local1:Number = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; var _local2:Number = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function CrossVF(_arg1:Number):void{ var _local2:Number = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } 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 CrossFV(_arg1:Number):void{ var _local2:Number = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 34
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { public class b2XForm { public var position:b2Vec2; public var R:b2Mat22; public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } } }//package Box2D.Common.Math
Section 35
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _r:uint;// = 0 private var _g:uint;// = 0 private var _b:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 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 g(_arg1:Number):void{ _g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } } }//package Box2D.Common
Section 36
//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { import Box2D.Common.Math.*; public class b2Settings { public static const b2_angularSleepTolerance:Number = 0.0111111111111111; public static const b2_linearSleepTolerance:Number = 0.01; public static const b2_angularSlop:Number = 0.0349065850398866; public static const b2_linearSlop:Number = 0.005; public static const b2_pi:Number = 3.14159265358979; public static const b2_maxProxies:int = 0x0200; public static const b2_maxAngularVelocitySquared:Number = 62500; public static const b2_maxPolygonVertices:int = 8; public static const b2_velocityThreshold:Number = 1; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_maxPairs:int = 4096; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_timeToSleep:Number = 0.5; public static const b2_maxManifoldPoints:int = 2; public static const b2_maxAngularVelocity:Number = 250; public static const b2_maxAngularCorrection:Number = 0.139626340159546; public static const USHRT_MAX:int = 0xFFFF; public static const b2_maxLinearVelocity:Number = 200; public static const b2_maxLinearCorrection:Number = 0.2; public static const b2_toiSlop:Number = 0.04; public static const b2_maxLinearVelocitySquared:Number = 40000; public static function b2Assert(_arg1:Boolean):void{ var _local2:b2Vec2; if (!_arg1){ _local2.x++; }; } } }//package Box2D.Common
Section 37
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local8:b2ManifoldPoint; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf); var _local7:b2ContactPoint = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ m_manifoldCount = 1; _local8 = m_manifold.points[0]; if (m0.pointCount == 0){ _local8.normalImpulse = 0; _local8.tangentImpulse = 0; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Add(_local7); }; } else { _local4 = m0.points[0]; _local8.normalImpulse = _local4.normalImpulse; _local8.tangentImpulse = _local4.tangentImpulse; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Persist(_local7); }; }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = m0.points[0]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2CircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 38
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; 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 IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetShape1():b2Shape{ return (m_shape1); } public function GetShape2():b2Shape{ return (m_shape2); } public function GetNext():b2Contact{ return (m_next); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function GetManifolds():Array{ return (null); } public function Update(_arg1:b2ContactListener):void{ var _local2:int = m_manifoldCount; Evaluate(_arg1); var _local3:int = m_manifoldCount; var _local4:b2Body = m_shape1.m_body; var _local5:b2Body = m_shape2.m_body; if ((((_local3 == 0)) && ((_local2 > 0)))){ _local4.WakeUp(); _local5.WakeUp(); }; if (((((((_local4.IsStatic()) || (_local4.IsBullet()))) || (_local5.IsStatic()))) || (_local5.IsBullet()))){ m_flags = (m_flags & ~(e_slowFlag)); } else { m_flags = (m_flags | e_slowFlag); }; } public function Evaluate(_arg1:b2ContactListener):void{ } public static function InitializeRegisters():void{ var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); var _local1:int; while (_local1 < b2Shape.e_shapeTypeCount) { s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { s_registers[_local1][_local2] = new b2ContactRegister(); _local2++; }; _local1++; }; AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape); AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape); AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape); } public static function Destroy(_arg1:b2Contact, _arg2):void{ if (_arg1.m_manifoldCount > 0){ _arg1.m_shape1.m_body.WakeUp(); _arg1.m_shape2.m_body.WakeUp(); }; var _local3:int = _arg1.m_shape1.m_type; var _local4:int = _arg1.m_shape2.m_type; var _local5:b2ContactRegister = s_registers[_local3][_local4]; var _local6:Function = _local5.destroyFcn; _local6(_arg1, _arg2); } public static function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{ s_registers[_arg3][_arg4].createFcn = _arg1; s_registers[_arg3][_arg4].destroyFcn = _arg2; s_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ s_registers[_arg4][_arg3].createFcn = _arg1; s_registers[_arg4][_arg3].destroyFcn = _arg2; s_registers[_arg4][_arg3].primary = false; }; } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ var _local8:b2Contact; var _local9:int; var _local10:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; var _local4:int = _arg1.m_type; var _local5:int = _arg2.m_type; var _local6:b2ContactRegister = s_registers[_local4][_local5]; var _local7:Function = _local6.createFcn; if (_local7 != null){ if (_local6.primary){ return (_local7(_arg1, _arg2, _arg3)); }; _local8 = _local7(_arg2, _arg1, _arg3); _local9 = 0; while (_local9 < _local8.m_manifoldCount) { _local10 = _local8.GetManifolds()[_local9]; _local8.GetManifolds()[_local9].normal = _local10.normal.Negative(); _local9++; }; return (_local8); //unresolved jump }; return (null); } } }//package Box2D.Dynamics.Contacts
Section 39
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var normal:b2Vec2; public var restitution:Number; public var body1:b2Body; public var manifold:b2Manifold; public var body2:b2Body; public var friction:Number; public var pointCount:int; public function b2ContactConstraint(){ normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 40
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var r2:b2Vec2; public var separation:Number; public var positionImpulse:Number; public var normalImpulse:Number; public var tangentMass:Number; public var equalizedMass:Number; public var tangentImpulse:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var normalMass:Number; public var velocityBias:Number; public var r1:b2Vec2; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); r1 = new b2Vec2(); r2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 41
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var other:b2Body; public var prev:b2ContactEdge; public var contact:b2Contact; public var next:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 42
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var primary:Boolean; public var createFcn:Function; public var destroyFcn:Function; } }//package Box2D.Dynamics.Contacts
Section 43
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2ContactResult { public var position:b2Vec2; public var shape1:b2Shape; public var shape2:b2Shape; public var normalImpulse:Number; public var normal:b2Vec2; public var tangentImpulse:Number; public var id:b2ContactID; public function b2ContactResult(){ position = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Dynamics.Contacts
Section 44
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2ContactSolver { public var m_constraintCount:int; public var m_constraints:Array; public var m_allocator; public var m_step:b2TimeStep; public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local10:b2Body; var _local11:b2Body; var _local12:int; var _local13:Array; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:int; var _local23:b2Manifold; var _local24:Number; var _local25:Number; var _local26:b2ContactConstraint; var _local27:uint; var _local28:b2ManifoldPoint; var _local29:b2ContactConstraintPoint; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; m_step = new b2TimeStep(); m_constraints = new Array(); super(); m_step.dt = _arg1.dt; m_step.inv_dt = _arg1.inv_dt; m_step.maxIterations = _arg1.maxIterations; m_allocator = _arg4; m_constraintCount = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; m_constraintCount = (m_constraintCount + _local5.m_manifoldCount); _local6++; }; _local6 = 0; while (_local6 < m_constraintCount) { m_constraints[_local6] = new b2ContactConstraint(); _local6++; }; var _local9:int; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local10 = _local5.m_shape1.m_body; _local11 = _local5.m_shape2.m_body; _local12 = _local5.m_manifoldCount; _local13 = _local5.GetManifolds(); _local14 = _local5.m_friction; _local15 = _local5.m_restitution; _local16 = _local10.m_linearVelocity.x; _local17 = _local10.m_linearVelocity.y; _local18 = _local11.m_linearVelocity.x; _local19 = _local11.m_linearVelocity.y; _local20 = _local10.m_angularVelocity; _local21 = _local11.m_angularVelocity; _local22 = 0; while (_local22 < _local12) { _local23 = _local13[_local22]; _local24 = _local23.normal.x; _local25 = _local23.normal.y; _local26 = m_constraints[_local9]; _local26.body1 = _local10; _local26.body2 = _local11; _local26.manifold = _local23; _local26.normal.x = _local24; _local26.normal.y = _local25; _local26.pointCount = _local23.pointCount; _local26.friction = _local14; _local26.restitution = _local15; _local27 = 0; while (_local27 < _local26.pointCount) { _local28 = _local23.points[_local27]; _local29 = _local26.points[_local27]; _local29.normalImpulse = _local28.normalImpulse; _local29.tangentImpulse = _local28.tangentImpulse; _local29.separation = _local28.separation; _local29.positionImpulse = 0; _local29.localAnchor1.SetV(_local28.localPoint1); _local29.localAnchor2.SetV(_local28.localPoint2); _local8 = _local10.m_xf.R; _local32 = (_local28.localPoint1.x - _local10.m_sweep.localCenter.x); _local33 = (_local28.localPoint1.y - _local10.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local32) + (_local8.col2.x * _local33)); _local33 = ((_local8.col1.y * _local32) + (_local8.col2.y * _local33)); _local32 = _local30; _local29.r1.Set(_local32, _local33); _local8 = _local11.m_xf.R; _local34 = (_local28.localPoint2.x - _local11.m_sweep.localCenter.x); _local35 = (_local28.localPoint2.y - _local11.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local34) + (_local8.col2.x * _local35)); _local35 = ((_local8.col1.y * _local34) + (_local8.col2.y * _local35)); _local34 = _local30; _local29.r2.Set(_local34, _local35); _local36 = ((_local32 * _local32) + (_local33 * _local33)); _local37 = ((_local34 * _local34) + (_local35 * _local35)); _local38 = ((_local32 * _local24) + (_local33 * _local25)); _local39 = ((_local34 * _local24) + (_local35 * _local25)); _local40 = (_local10.m_invMass + _local11.m_invMass); _local40 = (_local40 + ((_local10.m_invI * (_local36 - (_local38 * _local38))) + (_local11.m_invI * (_local37 - (_local39 * _local39))))); _local29.normalMass = (1 / _local40); _local41 = ((_local10.m_mass * _local10.m_invMass) + (_local11.m_mass * _local11.m_invMass)); _local41 = (_local41 + (((_local10.m_mass * _local10.m_invI) * (_local36 - (_local38 * _local38))) + ((_local11.m_mass * _local11.m_invI) * (_local37 - (_local39 * _local39))))); _local29.equalizedMass = (1 / _local41); _local42 = _local25; _local43 = -(_local24); _local44 = ((_local32 * _local42) + (_local33 * _local43)); _local45 = ((_local34 * _local42) + (_local35 * _local43)); _local46 = (_local10.m_invMass + _local11.m_invMass); _local46 = (_local46 + ((_local10.m_invI * (_local36 - (_local44 * _local44))) + (_local11.m_invI * (_local37 - (_local45 * _local45))))); _local29.tangentMass = (1 / _local46); _local29.velocityBias = 0; if (_local29.separation > 0){ _local29.velocityBias = (-60 * _local29.separation); }; _local30 = (((_local18 + (-(_local21) * _local35)) - _local16) - (-(_local20) * _local33)); _local31 = (((_local19 + (_local21 * _local34)) - _local17) - (_local20 * _local32)); _local47 = ((_local26.normal.x * _local30) + (_local26.normal.y * _local31)); if (_local47 < -(b2Settings.b2_velocityThreshold)){ _local29.velocityBias = (_local29.velocityBias + (-(_local26.restitution) * _local47)); }; _local27++; }; _local9++; _local22++; }; _local6++; }; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2Mat22; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:b2ContactConstraintPoint; var _local21:Number; var _local22:Number; var _local23:b2ContactConstraintPoint; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_invMass; _local10 = _local7.m_invI; _local11 = _local8.m_invMass; _local12 = _local8.m_invI; _local13 = _local6.normal.x; _local14 = _local6.normal.y; _local15 = _local14; _local16 = -(_local13); if (_arg1.warmStarting){ _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local20 = _local6.points[_local18]; _local6.points[_local18].normalImpulse = (_local20.normalImpulse * _arg1.dtRatio); _local20.tangentImpulse = (_local20.tangentImpulse * _arg1.dtRatio); _local21 = ((_local20.normalImpulse * _local13) + (_local20.tangentImpulse * _local15)); _local22 = ((_local20.normalImpulse * _local14) + (_local20.tangentImpulse * _local16)); _local7.m_angularVelocity = (_local7.m_angularVelocity - (_local10 * ((_local20.r1.x * _local22) - (_local20.r1.y * _local21)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x - (_local9 * _local21)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y - (_local9 * _local22)); _local8.m_angularVelocity = (_local8.m_angularVelocity + (_local12 * ((_local20.r2.x * _local22) - (_local20.r2.y * _local21)))); _local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21)); _local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22)); _local18++; }; } else { _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local23 = _local6.points[_local18]; _local23.normalImpulse = 0; _local23.tangentImpulse = 0; _local18++; }; }; _local5++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local3:b2Mat22; var _local4:b2Vec2; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:b2Vec2; var _local10:Number; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:int; var _local21:b2ContactConstraintPoint; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local2:Number = 0; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_sweep.c; _local10 = _local7.m_sweep.a; _local11 = _local8.m_sweep.c; _local12 = _local8.m_sweep.a; _local13 = (_local7.m_mass * _local7.m_invMass); _local14 = (_local7.m_mass * _local7.m_invI); _local15 = (_local8.m_mass * _local8.m_invMass); _local16 = (_local8.m_mass * _local8.m_invI); _local17 = _local6.normal.x; _local18 = _local6.normal.y; _local19 = _local6.pointCount; _local20 = 0; while (_local20 < _local19) { _local21 = _local6.points[_local20]; _local3 = _local7.m_xf.R; _local4 = _local7.m_sweep.localCenter; _local22 = (_local21.localAnchor1.x - _local4.x); _local23 = (_local21.localAnchor1.y - _local4.y); _local26 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local26; _local3 = _local8.m_xf.R; _local4 = _local8.m_sweep.localCenter; _local24 = (_local21.localAnchor2.x - _local4.x); _local25 = (_local21.localAnchor2.y - _local4.y); _local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local26; _local27 = (_local9.x + _local22); _local28 = (_local9.y + _local23); _local29 = (_local11.x + _local24); _local30 = (_local11.y + _local25); _local31 = (_local29 - _local27); _local32 = (_local30 - _local28); _local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation); _local2 = b2Math.b2Min(_local2, _local33); _local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0)); _local35 = (-(_local21.equalizedMass) * _local34); _local36 = _local21.positionImpulse; _local21.positionImpulse = b2Math.b2Max((_local36 + _local35), 0); _local35 = (_local21.positionImpulse - _local36); _local37 = (_local35 * _local17); _local38 = (_local35 * _local18); _local9.x = (_local9.x - (_local13 * _local37)); _local9.y = (_local9.y - (_local13 * _local38)); _local10 = (_local10 - (_local14 * ((_local22 * _local38) - (_local23 * _local37)))); _local7.m_sweep.a = _local10; _local7.SynchronizeTransform(); _local11.x = (_local11.x + (_local15 * _local37)); _local11.y = (_local11.y + (_local15 * _local38)); _local12 = (_local12 + (_local16 * ((_local24 * _local38) - (_local25 * _local37)))); _local8.m_sweep.a = _local12; _local8.SynchronizeTransform(); _local20++; }; _local5++; }; return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop))); } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Mat22; var _local18:b2Vec2; var _local20:b2ContactConstraint; var _local21:b2Body; var _local22:b2Body; var _local23:Number; var _local24:Number; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:int; var _local38:Number; var _local19:int; while (_local19 < m_constraintCount) { _local20 = m_constraints[_local19]; _local21 = _local20.body1; _local22 = _local20.body2; _local23 = _local21.m_angularVelocity; _local24 = _local22.m_angularVelocity; _local25 = _local21.m_linearVelocity; _local26 = _local22.m_linearVelocity; _local27 = _local21.m_invMass; _local28 = _local21.m_invI; _local29 = _local22.m_invMass; _local30 = _local22.m_invI; _local31 = _local20.normal.x; _local32 = _local20.normal.y; _local33 = _local32; _local34 = -(_local31); _local35 = _local20.friction; _local37 = _local20.pointCount; _local1 = 0; while (_local1 < _local37) { _local2 = _local20.points[_local1]; _local7 = (((_local26.x + (-(_local24) * _local2.r2.y)) - _local25.x) - (-(_local23) * _local2.r1.y)); _local8 = (((_local26.y + (_local24 * _local2.r2.x)) - _local25.y) - (_local23 * _local2.r1.x)); _local9 = ((_local7 * _local31) + (_local8 * _local32)); _local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias)); _local10 = ((_local7 * _local33) + (_local8 * _local34)); _local12 = (_local2.tangentMass * -(_local10)); _local13 = b2Math.b2Max((_local2.normalImpulse + _local11), 0); _local11 = (_local13 - _local2.normalImpulse); _local38 = (_local35 * _local2.normalImpulse); _local14 = b2Math.b2Clamp((_local2.tangentImpulse + _local12), -(_local38), _local38); _local12 = (_local14 - _local2.tangentImpulse); _local15 = ((_local11 * _local31) + (_local12 * _local33)); _local16 = ((_local11 * _local32) + (_local12 * _local34)); _local25.x = (_local25.x - (_local27 * _local15)); _local25.y = (_local25.y - (_local27 * _local16)); _local23 = (_local23 - (_local28 * ((_local2.r1.x * _local16) - (_local2.r1.y * _local15)))); _local26.x = (_local26.x + (_local29 * _local15)); _local26.y = (_local26.y + (_local29 * _local16)); _local24 = (_local24 + (_local30 * ((_local2.r2.x * _local16) - (_local2.r2.y * _local15)))); _local2.normalImpulse = _local13; _local2.tangentImpulse = _local14; _local1++; }; _local21.m_angularVelocity = _local23; _local22.m_angularVelocity = _local24; _local19++; }; } public function FinalizeVelocityConstraints():void{ var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ManifoldPoint; var _local6:b2ContactConstraintPoint; var _local1:int; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.points[_local4]; _local6 = _local2.points[_local4]; _local5.normalImpulse = _local6.normalImpulse; _local5.tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 45
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function Evaluate(_arg1:b2ContactListener):void{ } override public function GetManifolds():Array{ return (null); } } }//package Box2D.Dynamics.Contacts
Section 46
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape)); m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local6:b2Body = m_shape1.m_body; var _local7:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf); var _local8:Array = [false, false]; var _local9:b2ContactPoint = s_evalCP; _local9.shape1 = m_shape1; _local9.shape2 = m_shape2; _local9.friction = m_friction; _local9.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local2 = 0; while (_local2 < m_manifold.pointCount) { _local10 = m_manifold.points[_local2]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local8[_local13] == true){ } else { _local5 = m0.points[_local13]; if (_local5.id._key == _local12){ _local8[_local13] = true; _local10.normalImpulse = _local5.normalImpulse; _local10.tangentImpulse = _local5.tangentImpulse; _local11 = true; if (_arg1 != null){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Persist(_local9); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Add(_local9); }; _local2++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local2 = 0; while (_local2 < m0.pointCount) { if (_local8[_local2]){ } else { _local5 = m0.points[_local2]; _local9.position = _local6.GetWorldPoint(_local5.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m0.normal); _local9.separation = _local5.separation; _local9.id.key = _local5.id._key; _arg1.Remove(_local9); }; _local2++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 47
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2PolygonContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{ m0 = new b2Manifold(); m_manifolds = [new b2Manifold()]; super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local7:b2ContactPoint; var _local8:int; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf); var _local9:Array = [false, false]; _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local8 = 0; while (_local8 < m_manifold.pointCount) { _local10 = m_manifold.points[_local8]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local9[_local13] == true){ } else { _local4 = m0.points[_local13]; if (_local4.id._key == _local12){ _local9[_local13] = true; _local10.normalImpulse = _local4.normalImpulse; _local10.tangentImpulse = _local4.tangentImpulse; _local11 = true; if (_arg1 != null){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Persist(_local7); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Add(_local7); }; _local8++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local8 = 0; while (_local8 < m0.pointCount) { if (_local9[_local8]){ } else { _local4 = m0.points[_local8]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; _local8++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolygonContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 48
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_bias:Number; public var m_gamma:Number; public var m_u:b2Vec2; public var m_mass:Number; public var m_impulse:Number; public var m_dampingRatio:Number; public var m_frequencyHz:Number; public var m_length:Number; public function b2DistanceJoint(_arg1:b2DistanceJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u = new b2Vec2(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_length = _arg1.length; m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_impulse = 0; m_gamma = 0; m_bias = 0; m_inv_dt = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local8:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; m_inv_dt = _arg1.inv_dt; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7)); _local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7)); _local6 = _local3; _local2 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local3; m_u.x = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6); m_u.y = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7); var _local10:Number = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local10 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local10)); } else { m_u.SetZero(); }; var _local11:Number = ((_local6 * m_u.y) - (_local7 * m_u.x)); var _local12:Number = ((_local8 * m_u.y) - (_local9 * m_u.x)); var _local13:Number = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / _local13); if (m_frequencyHz > 0){ _local14 = (_local10 - m_length); _local15 = ((2 * Math.PI) * m_frequencyHz); _local16 = (((2 * m_mass) * m_dampingRatio) * _local15); _local17 = ((m_mass * _local15) * _local15); m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17)))); m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (1 / (_local13 + m_gamma)); }; if (_arg1.warmStarting){ m_impulse = (m_impulse * _arg1.dtRatio); _local18 = (m_impulse * m_u.x); _local19 = (m_impulse * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local18)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local19)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local19) - (_local7 * _local18)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local18)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local19)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local19) - (_local9 * _local18)))); } else { m_impulse = 0; }; } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply((m_inv_dt * m_impulse)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; if (m_frequencyHz > 0){ return (true); }; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local1 = _local2.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8)); _local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8)); _local7 = _local6; var _local9:Number = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); var _local10:Number = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); var _local11:Number = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); var _local12:Number = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local13:Number = (-(m_mass) * _local12); m_u.Set(_local9, _local10); var _local14:Number = (_local13 * m_u.x); var _local15:Number = (_local13 * m_u.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop)); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; _local2 = _local3.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local7:Number = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); var _local11:Number = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); var _local12:Number = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); var _local13:Number = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); var _local14:Number = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); var _local15:Number = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); var _local16:Number = (_local15 * m_u.x); var _local17:Number = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } } }//package Box2D.Dynamics.Joints
Section 49
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2DistanceJointDef extends b2JointDef { public var localAnchor1:b2Vec2; public var length:Number; public var dampingRatio:Number; public var localAnchor2:b2Vec2; public var frequencyHz:Number; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; frequencyHz = 0; dampingRatio = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); var _local5:Number = (_arg4.x - _arg3.x); var _local6:Number = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); frequencyHz = 0; dampingRatio = 0; } } }//package Box2D.Dynamics.Joints
Section 50
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { public var m_ground2:b2Body; 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_revolute2:b2RevoluteJoint; public var m_force:Number; public var m_mass:Number; public var m_prismatic2:b2PrismaticJoint; public var m_ground1:b2Body; public var m_revolute1:b2RevoluteJoint; public var m_prismatic1:b2PrismaticJoint; public var m_constant:Number; public var m_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); var _local2:int = _arg1.joint1.m_type; var _local3:int = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.m_body1; m_body1 = _arg1.joint1.m_body2; if (_local2 == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local4 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local4 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_local3 == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local5 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local5 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local4 + (m_ratio * _local5)); m_force = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local15:Number; var _local2:b2Body = m_ground1; var _local3:b2Body = m_ground2; var _local4:b2Body = m_body1; var _local5:b2Body = m_body2; var _local14:Number = 0; m_J.SetZero(); if (m_revolute1){ m_J.angular1 = -1; _local14 = (_local14 + _local4.m_invI); } else { _local10 = _local2.m_xf.R; _local11 = m_prismatic1.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local4.m_xf.R; _local8 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear1.Set(-(_local6), -(_local7)); m_J.angular1 = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angular2 = -(m_ratio); _local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI)); } else { _local10 = _local3.m_xf.R; _local11 = m_prismatic2.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angular2 = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = (1 / _local14); if (_arg1.warmStarting){ _local15 = (_arg1.dt * m_force); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2)); } else { m_force = 0; }; } override public function GetReactionTorque():Number{ var _local1:b2Mat22 = m_body2.m_xf.R; var _local2:Number = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x); var _local3:Number = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y); var _local4:Number = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3)); _local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3)); _local2 = _local4; _local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x)))); return (_local4); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local4:Number; var _local5:Number; var _local1:Number = 0; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; if (m_revolute1){ _local4 = m_revolute1.GetJointAngle(); } else { _local4 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local5 = m_revolute2.GetJointAngle(); } else { _local5 = m_prismatic2.GetJointTranslation(); }; var _local6:Number = (m_constant - (_local4 + (m_ratio * _local5))); var _local7:Number = (-(m_mass) * _local6); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * m_J.linear1.x)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y)); _local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1)); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2)); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((_local1 < b2Settings.b2_linearSlop)); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local5:Number = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); var _local6:Number = (_arg1.dt * _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * m_J.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2)); } } }//package Box2D.Dynamics.Joints
Section 51
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { public class b2GearJointDef extends b2JointDef { public var joint1:b2Joint; public var joint2:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 52
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linear1:b2Vec2; public var linear2:b2Vec2; public var angular1:Number; public var angular2:Number; public function b2Jacobian(){ linear1 = new b2Vec2(); linear2 = new b2Vec2(); super(); } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linear1.SetV(_arg1); angular1 = _arg2; linear2.SetV(_arg3); angular2 = _arg4; } public function SetZero():void{ linear1.SetZero(); angular1 = 0; linear2.SetZero(); angular2 = 0; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linear1.x * _arg1.x) + (linear1.y * _arg1.y)) + (angular1 * _arg2)) + ((linear2.x * _arg3.x) + (linear2.y * _arg3.y))) + (angular2 * _arg4))); } } }//package Box2D.Dynamics.Joints
Section 53
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2Joint { public var m_islandFlag:Boolean; public var m_body1:b2Body; public var m_prev:b2Joint; public var m_next:b2Joint; public var m_type:int; public var m_collideConnected:Boolean; public var m_node1:b2JointEdge; public var m_node2:b2JointEdge; public var m_inv_dt:Number; public var m_userData; public var m_body2:b2Body; public static const e_unknownJoint:int = 0; public static const e_inactiveLimit:int = 0; public static const e_atUpperLimit:int = 2; public static const e_atLowerLimit:int = 1; public static const e_gearJoint:int = 6; public static const e_revoluteJoint:int = 1; public static const e_equalLimits:int = 3; public static const e_distanceJoint:int = 3; public static const e_pulleyJoint:int = 4; public static const e_prismaticJoint:int = 2; public static const e_mouseJoint:int = 5; public function b2Joint(_arg1:b2JointDef){ m_node1 = new b2JointEdge(); m_node2 = new b2JointEdge(); super(); m_type = _arg1.type; m_prev = null; m_next = null; m_body1 = _arg1.body1; m_body2 = _arg1.body2; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } public function GetBody2():b2Body{ return (m_body2); } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function GetNext():b2Joint{ return (m_next); } public function GetType():int{ return (m_type); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function GetReactionTorque():Number{ return (0); } public function GetUserData(){ return (m_userData); } public function GetReactionForce():b2Vec2{ return (null); } public function SolvePositionConstraints():Boolean{ return (false); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetBody1():b2Body{ return (m_body1); } public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } public function InitPositionConstraints():void{ } public static function Destroy(_arg1:b2Joint, _arg2):void{ } public static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; default: break; }; return (_local3); } } }//package Box2D.Dynamics.Joints
Section 54
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var body2:b2Body; public var type:int; public var userData; public var collideConnected:Boolean; public var body1:b2Body; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 55
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var other:b2Body; public var next:b2JointEdge; public var prev:b2JointEdge; public var joint:b2Joint; } }//package Box2D.Dynamics.Joints
Section 56
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { private var K1:b2Mat22; private var K:b2Mat22; public var m_beta:Number; public var m_mass:b2Mat22; private var K2:b2Mat22; public var m_target:b2Vec2; public var m_gamma:Number; public var m_impulse:b2Vec2; public var m_C:b2Vec2; public var m_localAnchor:b2Vec2; public var m_maxForce:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local3:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_impulse = new b2Vec2(); m_mass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); var _local2:Number = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); var _local4:b2Mat22 = m_body2.m_xf.R; m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y)); m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y)); m_maxForce = _arg1.maxForce; m_impulse.SetZero(); var _local5:Number = m_body2.m_mass; var _local6:Number = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); var _local7:Number = (((2 * _local5) * _arg1.dampingRatio) * _local6); var _local8:Number = ((_arg1.timeStep * _local5) * (_local6 * _local6)); m_gamma = (1 / (_local7 + _local8)); m_beta = (_local8 / (_local7 + _local8)); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local7:Number; var _local8:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local4 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local7 = _local2.m_invMass; _local8 = _local2.m_invI; K1.col1.x = _local7; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local7; K2.col1.x = ((_local8 * _local5) * _local5); K2.col2.x = ((-(_local8) * _local4) * _local5); K2.col1.y = ((-(_local8) * _local4) * _local5); K2.col2.y = ((_local8 * _local4) * _local4); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.Invert(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); var _local9:Number = (_arg1.dt * m_impulse.x); var _local10:Number = (_arg1.dt * m_impulse.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local7 * _local9)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local7 * _local10)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local8 * ((_local4 * _local10) - (_local5 * _local9)))); } override public function GetAnchor1():b2Vec2{ return (m_target); } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ return (m_impulse); } override public function SolvePositionConstraints():Boolean{ return (true); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local2:b2Body = m_body2; _local3 = _local2.m_xf.R; var _local6:Number = (m_localAnchor.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; var _local8:Number = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); var _local9:Number = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_impulse.x)); _local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_impulse.y)); var _local10:Number = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); var _local11:Number = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); var _local12:Number = m_impulse.x; var _local13:Number = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); var _local14:Number = m_impulse.Length(); if (_local14 > m_maxForce){ m_impulse.Multiply((m_maxForce / _local14)); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); var _local15:Number = (_arg1.dt * _local10); var _local16:Number = (_arg1.dt * _local11); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); } } }//package Box2D.Dynamics.Joints
Section 57
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var timeStep:Number; public var target:b2Vec2; public var maxForce:Number; public var dampingRatio:Number; public var frequencyHz:Number; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; timeStep = (1 / 60); } } }//package Box2D.Dynamics.Joints
Section 58
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PrismaticJoint extends b2Joint { public var m_limitForce:Number; public var m_lowerTranslation:Number; public var m_localXAxis1:b2Vec2; public var m_refAngle:Number; public var m_torque:Number; public var m_motorForce:Number; public var m_enableLimit:Boolean; public var m_angularMass:Number; public var m_maxMotorForce:Number; public var m_localYAxis1:b2Vec2; public var m_force:Number; public var m_motorMass:Number; public var m_upperTranslation:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_limitState:int; public var m_linearMass: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 SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local8:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = _local2.m_invMass; var _local5:Number = _local3.m_invMass; var _local6:Number = _local2.m_invI; var _local7:Number = _local3.m_invI; var _local9:Number = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local10:Number = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); var _local11:Number = (_arg1.dt * _local10); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2)); var _local12:Number = (_local3.m_angularVelocity - _local2.m_angularVelocity); var _local13:Number = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); var _local14:Number = (_arg1.dt * _local13); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15); _local17 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce); _local16 = (m_motorForce - _local17); _local11 = (_arg1.dt * _local16); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local19); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); }; }; }; _local11 = (_arg1.dt * _local19); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetJointTranslation():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:b2Vec2 = _local1.GetWorldPoint(m_localAnchor1); var _local5:b2Vec2 = _local2.GetWorldPoint(m_localAnchor2); var _local6:Number = (_local5.x - _local4.x); var _local7:Number = (_local5.y - _local4.y); var _local8:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local9:Number = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22 = m_body1.m_xf.R; var _local2:Number = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); var _local3:Number = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); var _local4:Number = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); var _local5:Number = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y))); return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5)))); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local9:b2Mat22; var _local10:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = _local3.m_invMass; var _local6:Number = _local4.m_invMass; var _local7:Number = _local3.m_invI; var _local8:Number = _local4.m_invI; _local9 = _local3.m_xf.R; var _local11:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local12:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; var _local13:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local14:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; var _local15:Number = (_local3.m_sweep.c.x + _local11); var _local16:Number = (_local3.m_sweep.c.y + _local12); var _local17:Number = (_local4.m_sweep.c.x + _local13); var _local18:Number = (_local4.m_sweep.c.y + _local14); var _local19:Number = (_local17 - _local15); var _local20:Number = (_local18 - _local16); _local9 = _local3.m_xf.R; var _local21:Number = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); var _local22:Number = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); var _local23:Number = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local24:Number = (-(m_linearMass) * _local23); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2)); var _local25:Number = b2Math.b2Abs(_local23); var _local26:Number = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); var _local27:Number = (-(m_angularMass) * _local26); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local28:Number = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y)); _local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y)); _local31 = ((_local29 * _local19) + (_local30 * _local20)); _local32 = 0; if (m_limitState == e_equalLimits){ _local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26)); } else { if (m_limitState == e_atLowerLimit){ _local1 = (_local31 - m_lowerTranslation); _local25 = b2Math.b2Max(_local25, -(_local1)); _local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); } else { if (m_limitState == e_atUpperLimit){ _local1 = (_local31 - m_upperTranslation); _local25 = b2Math.b2Max(_local25, _local1); _local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); }; }; }; _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; _local3 = _local1.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; var _local9:Number = (_local1.m_sweep.c.x + _local4); var _local10:Number = (_local1.m_sweep.c.y + _local5); var _local11:Number = (_local2.m_sweep.c.x + _local7); var _local12:Number = (_local2.m_sweep.c.y + _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local16:b2Vec2 = _local1.m_linearVelocity; var _local17:b2Vec2 = _local2.m_linearVelocity; var _local18:Number = _local1.m_angularVelocity; var _local19:Number = _local2.m_angularVelocity; var _local20:Number = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; _local4 = _local2.m_xf.R; var _local14:Number = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); var _local15:Number = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); var _local16:Number = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); var _local17:Number = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y); m_linearJacobian.linear1.x = -(_local14); m_linearJacobian.linear1.y = -(_local15); m_linearJacobian.linear2.x = _local14; m_linearJacobian.linear2.y = _local15; m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14))); m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14)); m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2)); m_linearMass = (1 / m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > Number.MIN_VALUE){ m_angularMass = (1 / m_angularMass); }; if (((m_enableLimit) || (m_enableMotor))){ _local4 = _local2.m_xf.R; _local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y)); _local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y)); m_motorJacobian.linear1.x = -(_local18); m_motorJacobian.linear1.y = -(_local19); m_motorJacobian.linear2.x = _local18; m_motorJacobian.linear2.y = _local19; m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18))); m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18)); m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2)); m_motorMass = (1 / m_motorMass); if (m_enableLimit){ _local20 = (_local16 - _local6); _local21 = (_local17 - _local7); _local22 = ((_local18 * _local20) + (_local19 * _local21)); if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local22 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local22 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; }; }; if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit == false){ m_limitForce = 0; }; if (_arg1.warmStarting){ _local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x))); _local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y))); _local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x))); _local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y))); _local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1))); _local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28)); } else { m_force = 0; m_torque = 0; m_limitForce = 0; m_motorForce = 0; }; m_limitPositionImpulse = 0; } public function GetMotorForce():Number{ return (m_motorForce); } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } override public function GetReactionTorque():Number{ return (m_torque); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } } }//package Box2D.Dynamics.Joints
Section 59
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PrismaticJointDef extends b2JointDef { public var motorSpeed:Number; public var localAxis1:b2Vec2; public var referenceAngle:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public var maxMotorForce:Number; public var lowerTranslation:Number; public function b2PrismaticJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); localAxis1 = new b2Vec2(); super(); type = b2Joint.e_prismaticJoint; localAxis1.Set(1, 0); referenceAngle = 0; enableLimit = false; lowerTranslation = 0; upperTranslation = 0; enableMotor = false; maxMotorForce = 0; motorSpeed = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); localAxis1 = body1.GetLocalVector(_arg4); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 60
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { public var m_limitState1:int; public var m_limitState2:int; public var m_ground:b2Body; public var m_maxLength2:Number; public var m_maxLength1:Number; public var m_limitPositionImpulse1:Number; public var m_limitPositionImpulse2:Number; public var m_force:Number; public var m_constant:Number; public var m_positionImpulse: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_limitMass1:Number; public var m_limitMass2:Number; public var m_pulleyMass:Number; public var m_u1:b2Vec2; public var m_limitForce1:Number; public var m_limitForce2:Number; public var m_u2:b2Vec2; 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 = 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 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local3:b2Mat22; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local5:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local6:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local7:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local23:Number = 0; if (m_state == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u1.Set((_local12 - _local4), (_local13 - _local5)); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local16 = m_u1.Length(); _local17 = m_u2.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local16)); } else { m_u1.SetZero(); }; if (_local17 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local17)); } else { m_u2.SetZero(); }; _local18 = ((m_constant - _local16) - (m_ratio * _local17)); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_pulleyMass) * _local18); _local20 = m_positionImpulse; m_positionImpulse = b2Math.b2Max(0, (m_positionImpulse + _local19)); _local19 = (m_positionImpulse - _local20); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local14 = ((-(m_ratio) * _local19) * m_u2.x); _local15 = ((-(m_ratio) * _local19) * m_u2.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local1.SynchronizeTransform(); _local2.SynchronizeTransform(); }; if (m_limitState1 == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); m_u1.Set((_local12 - _local4), (_local13 - _local5)); _local16 = m_u1.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.x = (m_u1.x * (1 / _local16)); m_u1.y = (m_u1.y * (1 / _local16)); } else { m_u1.SetZero(); }; _local18 = (m_maxLength1 - _local16); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass1) * _local18); _local21 = m_limitPositionImpulse1; m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19)); _local19 = (m_limitPositionImpulse1 - _local21); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local1.SynchronizeTransform(); }; if (m_limitState2 == e_atUpperLimit){ _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local17 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local17)); m_u2.y = (m_u2.y * (1 / _local17)); } else { m_u2.SetZero(); }; _local18 = (m_maxLength2 - _local17); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass2) * _local18); _local21 = m_limitPositionImpulse2; m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19)); _local19 = (m_limitPositionImpulse2 - _local21); _local14 = (-(_local19) * m_u2.x); _local15 = (-(_local19) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local2.SynchronizeTransform(); }; return ((_local23 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local2.m_sweep.c.x + _local5); var _local11:Number = (_local2.m_sweep.c.y + _local6); var _local12:Number = (_local3.m_sweep.c.x + _local8); var _local13:Number = (_local3.m_sweep.c.y + _local9); var _local14:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local15:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local16:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local17:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); var _local18:Number = m_u1.Length(); var _local19:Number = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; var _local20:Number = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_force = 0; } else { m_state = e_atUpperLimit; m_positionImpulse = 0; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitForce1 = 0; } else { m_limitState1 = e_atUpperLimit; m_limitPositionImpulse1 = 0; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitForce2 = 0; } else { m_limitState2 = e_atUpperLimit; m_limitPositionImpulse2 = 0; }; var _local21:Number = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); var _local22:Number = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ _local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x); _local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y); _local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x); _local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25)))); } else { m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; }; } override public function GetReactionTorque():Number{ return (0); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18); _local20 = m_force; m_force = b2Math.b2Max(0, (m_force + _local19)); _local19 = (m_force - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x); _local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; if (m_limitState1 == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11))); _local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18); _local20 = m_limitForce1; m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19)); _local19 = (m_limitForce1 - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); }; if (m_limitState2 == e_atUpperLimit){ _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13))); _local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18); _local20 = m_limitForce2; m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19)); _local19 = (m_limitForce2 - _local20); _local16 = ((-(_arg1.dt) * _local19) * m_u2.x); _local17 = ((-(_arg1.dt) * _local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } public function GetLength1():Number{ var _local1:b2Vec2 = m_body1.GetWorldPoint(m_localAnchor1); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetLength2():Number{ var _local1:b2Vec2 = m_body2.GetWorldPoint(m_localAnchor2); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } } }//package Box2D.Dynamics.Joints
Section 61
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PulleyJointDef extends b2JointDef { public var maxLength1:Number; public var maxLength2:Number; public var length1:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var ratio:Number; public var length2:Number; public function b2PulleyJointDef(){ groundAnchor1 = new b2Vec2(); groundAnchor2 = new b2Vec2(); localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchor1.Set(-1, 1); groundAnchor2.Set(1, 1); localAnchor1.Set(-1, 0); localAnchor2.Set(1, 0); length1 = 0; maxLength1 = 0; length2 = 0; maxLength2 = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); var _local8:Number = (_arg5.x - _arg3.x); var _local9:Number = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); var _local10:Number = (_arg6.x - _arg4.x); var _local11:Number = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; var _local12:Number = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 62
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { public var m_limitForce:Number; public var m_pivotMass:b2Mat22; public var m_motorForce:Number; 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_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_upperAngle:Number; public var m_lowerAngle:Number; public var m_maxMotorTorque: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 SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local10:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local11:Number = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); var _local12:Number = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); var _local13:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); var _local14:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12))); m_pivotForce.x = (m_pivotForce.x + _local13); m_pivotForce.y = (m_pivotForce.y + _local14); var _local15:Number = (_arg1.dt * _local13); _local16 = (_arg1.dt * _local14); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed); _local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17); _local19 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque); _local18 = (m_motorForce - _local19); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local21); } else { if (m_limitState == e_atLowerLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); } else { if (m_limitState == e_atUpperLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); }; }; }; _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } 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 _local6:b2Mat22; var _local25:Number; var _local26:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = 0; _local6 = _local3.m_xf.R; var _local7:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local9:Number = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; var _local10:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local11:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11)); _local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11)); _local10 = _local9; var _local12:Number = (_local3.m_sweep.c.x + _local7); var _local13:Number = (_local3.m_sweep.c.y + _local8); var _local14:Number = (_local4.m_sweep.c.x + _local10); var _local15:Number = (_local4.m_sweep.c.y + _local11); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); var _local18:Number = _local3.m_invMass; var _local19:Number = _local4.m_invMass; var _local20:Number = _local3.m_invI; var _local21:Number = _local4.m_invI; K1.col1.x = (_local18 + _local19); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local18 + _local19); K2.col1.x = ((_local20 * _local8) * _local8); K2.col2.x = ((-(_local20) * _local7) * _local8); K2.col1.y = ((-(_local20) * _local7) * _local8); K2.col2.y = ((_local20 * _local7) * _local7); K3.col1.x = ((_local21 * _local11) * _local11); K3.col2.x = ((-(_local21) * _local10) * _local11); K3.col1.y = ((-(_local21) * _local10) * _local11); K3.col2.y = ((_local21 * _local10) * _local10); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); var _local22:Number = tImpulse.x; var _local23:Number = tImpulse.y; _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local24:Number = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local24 = b2Math.b2Abs(_local2); } else { if (m_limitState == e_atLowerLimit){ _local2 = (_local25 - m_lowerAngle); _local24 = b2Math.b2Max(0, -(_local2)); _local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); } else { if (m_limitState == e_atUpperLimit){ _local2 = (_local25 - m_upperAngle); _local24 = b2Math.b2Max(0, _local2); _local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); }; }; }; _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } 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)); } public function GetMotorTorque():Number{ return (m_motorForce); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local7:Number; var _local14:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; K1.col1.x = (_local10 + _local11); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local10 + _local11); K2.col1.x = ((_local12 * _local7) * _local7); K2.col2.x = ((-(_local12) * _local6) * _local7); K2.col1.y = ((-(_local12) * _local6) * _local7); K2.col2.y = ((_local12 * _local6) * _local6); K3.col1.x = ((_local13 * _local9) * _local9); K3.col2.x = ((-(_local13) * _local8) * _local9); K3.col1.y = ((-(_local13) * _local8) * _local9); K3.col2.y = ((_local13 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Invert(m_pivotMass); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; } else { m_limitForce = 0; }; if (_arg1.warmStarting){ _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); } else { m_pivotForce.SetZero(); m_motorForce = 0; m_limitForce = 0; }; m_limitPositionImpulse = 0; } 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); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } } }//package Box2D.Dynamics.Joints
Section 63
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2RevoluteJointDef extends b2JointDef { public var upperAngle:Number; public var enableMotor:Boolean; public var referenceAngle:Number; public var motorSpeed:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var lowerAngle:Number; public var maxMotorTorque:Number; public function b2RevoluteJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchor1.Set(0, 0); localAnchor2.Set(0, 0); referenceAngle = 0; lowerAngle = 0; upperAngle = 0; maxMotorTorque = 0; motorSpeed = 0; enableLimit = false; enableMotor = false; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 64
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Dynamics.Contacts.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; public class b2Body { public var m_next:b2Body; public var m_xf:b2XForm; public var m_contactList:b2ContactEdge; public var m_angularVelocity:Number; public var m_shapeList:b2Shape; public var m_force:b2Vec2; public var m_mass:Number; public var m_sweep:b2Sweep; public var m_torque:Number; public var m_userData; public var m_flags:uint; public var m_world:b2World; public var m_prev:b2Body; public var m_invMass:Number; public var m_type:int; public var m_linearDamping:Number; public var m_shapeCount:int; public var m_angularDamping:Number; public var m_invI:Number; public var m_linearVelocity:b2Vec2; public var m_sleepTime:Number; public var m_jointList:b2JointEdge; public var m_I:Number; public static var e_fixedRotationFlag:uint = 64; public static var e_frozenFlag:uint = 2; public static var e_maxTypes:uint = 3; public static var e_sleepFlag:uint = 8; private static var s_massData:b2MassData = new b2MassData(); public static var e_bulletFlag:uint = 32; public static var e_staticType:uint = 1; public static var e_islandFlag:uint = 4; public static var e_allowSleepFlag:uint = 16; private static var s_xf1:b2XForm = new b2XForm(); public static var e_dynamicType:uint = 2; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ m_xf = new b2XForm(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.isBullet){ m_flags = (m_flags | e_bulletFlag); }; if (_arg1.fixedRotation){ m_flags = (m_flags | e_fixedRotationFlag); }; if (_arg1.allowSleep){ m_flags = (m_flags | e_allowSleepFlag); }; if (_arg1.isSleeping){ m_flags = (m_flags | e_sleepFlag); }; m_world = _arg2; m_xf.position.SetV(_arg1.position); m_xf.R.Set(_arg1.angle); m_sweep.localCenter.SetV(_arg1.massData.center); m_sweep.t0 = 1; m_sweep.a0 = (m_sweep.a = _arg1.angle); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_contactList = null; m_prev = null; m_next = null; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_sleepTime = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.massData.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((m_linearVelocity.x - (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.y + (m_angularVelocity * (_arg1.x - m_sweep.c.x))))); } public function SetLinearVelocity(_arg1:b2Vec2):void{ m_linearVelocity.SetV(_arg1); } public function WakeUp():void{ m_flags = (m_flags & ~(e_sleepFlag)); m_sleepTime = 0; } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function ApplyTorque(_arg1:Number):void{ if (IsSleeping()){ WakeUp(); }; m_torque = (m_torque + _arg1); } public function IsFrozen():Boolean{ return (((m_flags & e_frozenFlag) == e_frozenFlag)); } public function IsDynamic():Boolean{ return ((m_type == e_dynamicType)); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function SynchronizeTransform():void{ m_xf.R.Set(m_sweep.a); var _local1:b2Mat22 = m_xf.R; var _local2:b2Vec2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function GetInertia():Number{ return (m_I); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function SetMassFromShapes():void{ var _local1:b2Shape; if (m_world.m_lock == true){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; var _local2:Number = 0; var _local3:Number = 0; var _local4:b2MassData = s_massData; _local1 = m_shapeList; while (_local1) { _local1.ComputeMass(_local4); m_mass = (m_mass + _local4.mass); _local2 = (_local2 + (_local4.mass * _local4.center.x)); _local3 = (_local3 + (_local4.mass * _local4.center.y)); m_I = (m_I + _local4.I); _local1 = _local1.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local2 = (_local2 * m_invMass); _local3 = (_local3 * m_invMass); }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3)))); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_sweep.localCenter.Set(_local2, _local3); var _local5:b2Mat22 = m_xf.R; var _local6:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local1 = m_shapeList; while (_local1) { _local1.UpdateSweepRadius(m_sweep.localCenter); _local1 = _local1.m_next; }; var _local7:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local7 != m_type){ _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; }; } public function PutToSleep():void{ m_flags = (m_flags | e_sleepFlag); m_sleepTime = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_force.SetZero(); m_torque = 0; } public function GetJointList():b2JointEdge{ return (m_jointList); } public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; var _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); var _local4:b2Mat22 = m_xf.R; var _local5:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); var _local6:Boolean; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function 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 _local4:b2Shape; var _local1:b2XForm = s_xf1; _local1.R.Set(m_sweep.a0); var _local2:b2Mat22 = _local1.R; var _local3:b2Vec2 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); var _local5:Boolean; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; return (true); } public function GetAngle():Number{ return (m_sweep.a); } public function GetXForm():b2XForm{ return (m_xf); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.y - (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function GetNext():b2Body{ return (m_next); } public function GetMass():Number{ return (m_mass); } 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 GetAngularVelocity():Number{ return (m_angularVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Shape; if (m_world.m_lock == true){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_sweep.localCenter.SetV(_arg1.center); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local2 = m_shapeList; while (_local2) { _local2.UpdateSweepRadius(m_sweep.localCenter); _local2 = _local2.m_next; }; var _local5:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local5 != m_type){ _local2 = m_shapeList; while (_local2) { _local2.RefilterProxy(m_world.m_broadPhase, m_xf); _local2 = _local2.m_next; }; }; } public function 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 = 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{ if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); var _local2:b2Shape = m_shapeList; var _local3:b2Shape; var _local4:Boolean; while (_local2 != null) { if (_local2 == _arg1){ if (_local3){ _local3.m_next = _arg1.m_next; } else { m_shapeList = _arg1.m_next; }; _local4 = true; break; }; _local3 = _local2; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function GetUserData(){ return (m_userData); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_xf.R, _arg1)); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorld():b2World{ return (m_world); } public function GetPosition():b2Vec2{ return (m_xf.position); } } }//package Box2D.Dynamics
Section 65
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2BodyDef { public var angularDamping:Number; public var angle:Number; public var isSleeping:Boolean; public var position:b2Vec2; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var fixedRotation:Boolean; public var linearDamping:Number; public var massData:b2MassData; public function b2BodyDef(){ massData = new b2MassData(); position = new b2Vec2(); super(); massData.center.SetZero(); massData.mass = 0; massData.I = 0; userData = null; position.Set(0, 0); angle = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; isSleeping = false; fixedRotation = false; isBullet = false; } } }//package Box2D.Dynamics
Section 66
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 67
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; public class b2ContactFilter { public static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:b2FilterData = _arg1.GetFilterData(); var _local4:b2FilterData = _arg2.GetFilterData(); if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; var _local5:Boolean = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local5); } } }//package Box2D.Dynamics
Section 68
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2ContactListener { public function Add(_arg1:b2ContactPoint):void{ } public function Remove(_arg1:b2ContactPoint):void{ } public function Persist(_arg1:b2ContactPoint):void{ } public function Result(_arg1:b2ContactResult):void{ } } }//package Box2D.Dynamics
Section 69
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2ContactManager extends b2PairCallback { public var m_world:b2World; public var m_destroyImmediate:Boolean; public var m_nullContact:b2NullContact; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2ContactManager(){ m_nullContact = new b2NullContact(); super(); m_world = null; m_destroyImmediate = false; } override public function PairRemoved(_arg1, _arg2, _arg3):void{ if (_arg3 == null){ return; }; var _local4:b2Contact = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local7:b2Body; var _local8:b2Body; var _local9:Array; var _local10:b2ContactPoint; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2Vec2; var _local16:b2Vec2; var _local2:b2Shape = _arg1.m_shape1; var _local3:b2Shape = _arg1.m_shape2; var _local4:int = _arg1.m_manifoldCount; if ((((_local4 > 0)) && (m_world.m_contactListener))){ _local7 = _local2.m_body; _local8 = _local3.m_body; _local9 = _arg1.GetManifolds(); _local10 = s_evalCP; _local10.shape1 = _arg1.m_shape1; _local10.shape2 = _arg1.m_shape2; _local10.friction = _arg1.m_friction; _local10.restitution = _arg1.m_restitution; _local11 = 0; while (_local11 < _local4) { _local12 = _local9[_local11]; _local10.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local10.position = _local7.GetWorldPoint(_local14.localPoint1); _local15 = _local7.GetLinearVelocityFromLocalPoint(_local14.localPoint1); _local16 = _local8.GetLinearVelocityFromLocalPoint(_local14.localPoint2); _local10.velocity.Set((_local16.x - _local15.x), (_local16.y - _local15.y)); _local10.separation = _local14.separation; _local10.id.key = _local14.id._key; m_world.m_contactListener.Remove(_local10); _local13++; }; _local11++; }; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; var _local5:b2Body = _local2.m_body; var _local6:b2Body = _local3.m_body; if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local6.m_contactList){ _local6.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape = (_arg1 as b2Shape); var _local4:b2Shape = (_arg2 as b2Shape); var _local5:b2Body = _local3.m_body; var _local6:b2Body = _local4.m_body; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; var _local7:b2Contact = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.m_shape1; _local4 = _local7.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } public function Collide():void{ var _local2:b2Body; var _local3:b2Body; var _local1:b2Contact = m_world.m_contactList; while (_local1) { _local2 = _local1.m_shape1.m_body; _local3 = _local1.m_shape2.m_body; if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); }; _local1 = _local1.m_next; }; } } }//package Box2D.Dynamics
Section 70
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import flash.display.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2DebugDraw { public var m_xformScale:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_alpha:Number;// = 1 public var m_drawFlags:uint; public var m_lineThickness:Number;// = 1 public var m_drawScale:Number;// = 1 public var m_sprite:Sprite; 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_drawFlags = 0; } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } 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 DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } public function 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 GetFlags():uint{ return (m_drawFlags); } public function DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } } }//package Box2D.Dynamics
Section 71
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; public class b2DestructionListener { public function SayGoodbyeShape(_arg1:b2Shape):void{ } public function SayGoodbyeJoint(_arg1:b2Joint):void{ } } }//package Box2D.Dynamics
Section 72
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; public class b2Island { public var m_listener:b2ContactListener; public var m_positionIterationCount:int; public var m_bodyCapacity:int; public var m_bodies:Array; public var m_joints:Array; public var m_jointCapacity:int; public var m_contactCount:int; public var m_contacts:Array; public var m_contactCapacity:int; public var m_jointCount:int; public var m_allocator; public var m_bodyCount:int; private static var s_reportCR:b2ContactResult = new b2ContactResult(); public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener){ var _local6:int; super(); m_bodyCapacity = _arg1; m_contactCapacity = _arg2; m_jointCapacity = _arg3; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_allocator = _arg4; m_listener = _arg5; if (_arg1 < 0){ _arg1 = 0; m_bodyCapacity = 0; }; 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 _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactResult; var _local8:b2Body; var _local9:int; var _local10:Array; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2ContactConstraintPoint; if (m_listener == null){ return; }; var _local4:int; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCR; _local7.shape1 = _local5.m_shape1; _local7.shape2 = _local5.m_shape2; _local8 = _local7.shape1.m_body; _local9 = _local5.m_manifoldCount; _local10 = _local5.GetManifolds(); _local11 = 0; while (_local11 < _local9) { _local12 = _local10[_local11]; _local7.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local15 = _local6.points[_local13]; _local7.position = _local8.GetWorldPoint(_local14.localPoint1); _local7.normalImpulse = _local15.normalImpulse; _local7.tangentImpulse = _local15.tangentImpulse; _local7.id.key = _local14.id.key; m_listener.Result(_local7); _local13++; }; _local11++; }; _local4++; }; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local9:int; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; var _local13:Number; var _local14:Number; var _local15:Number; _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_arg2.x + (_local6.m_invMass * _local6.m_force.x)))); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_arg2.y + (_local6.m_invMass * _local6.m_force.y)))); _local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque)); _local6.m_force.SetZero(); _local6.m_torque = 0; _local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); if (_local6.m_linearVelocity.LengthSquared() > b2Settings.b2_maxLinearVelocitySquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * b2Settings.b2_maxLinearVelocity); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * b2Settings.b2_maxLinearVelocity); }; if ((_local6.m_angularVelocity * _local6.m_angularVelocity) > b2Settings.b2_maxAngularVelocitySquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = -(b2Settings.b2_maxAngularVelocity); } else { _local6.m_angularVelocity = b2Settings.b2_maxAngularVelocity; }; }; }; _local5++; }; var _local8:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local8.InitVelocityConstraints(_arg1); _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitVelocityConstraints(_arg1); _local5++; }; _local5 = 0; while (_local5 < _arg1.maxIterations) { _local8.SolveVelocityConstraints(); _local9 = 0; while (_local9 < m_jointCount) { _local7 = m_joints[_local9]; _local7.SolveVelocityConstraints(_arg1); _local9++; }; _local5++; }; _local8.FinalizeVelocityConstraints(); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_sweep.c0.SetV(_local6.m_sweep.c); _local6.m_sweep.a0 = _local6.m_sweep.a; _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_arg1.dt * _local6.m_linearVelocity.x)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_arg1.dt * _local6.m_linearVelocity.y)); _local6.m_sweep.a = (_local6.m_sweep.a + (_arg1.dt * _local6.m_angularVelocity)); _local6.SynchronizeTransform(); }; _local5++; }; if (_arg3){ _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitPositionConstraints(); _local5++; }; m_positionIterationCount = 0; while (m_positionIterationCount < _arg1.maxIterations) { _local10 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local11 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local12 = _local7.SolvePositionConstraints(); _local11 = ((_local11) && (_local12)); _local5++; }; if (((_local10) && (_local11))){ break; }; m_positionIterationCount++; }; }; Report(_local8.m_constraints); if (_arg4){ _local13 = Number.MAX_VALUE; _local14 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local15 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.m_invMass == 0){ } else { if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){ _local6.m_sleepTime = 0; _local13 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local15)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local14)))){ _local6.m_sleepTime = 0; _local13 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local13 = b2Math.b2Min(_local13, _local6.m_sleepTime); }; }; _local5++; }; if (_local13 >= b2Settings.b2_timeToSleep){ _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; m_bodies[_local5].m_flags = (_local6.m_flags | b2Body.e_sleepFlag); _local6.m_linearVelocity.SetZero(); _local6.m_angularVelocity = 0; _local5++; }; }; }; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local5:b2Body; var _local6:Boolean; var _local3:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local2 = 0; while (_local2 < _arg1.maxIterations) { _local3.SolveVelocityConstraints(); _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local5 = m_bodies[_local2]; if (_local5.IsStatic()){ } else { _local5.m_sweep.c0.SetV(_local5.m_sweep.c); _local5.m_sweep.a0 = _local5.m_sweep.a; _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity)); _local5.SynchronizeTransform(); }; _local2++; }; var _local4:Number = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } } }//package Box2D.Dynamics
Section 73
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var warmStarting:Boolean; public var positionCorrection:Boolean; public var dt:Number; public var maxIterations:int; public var dtRatio:Number; public var inv_dt:Number; } }//package Box2D.Dynamics
Section 74
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2World { public var m_inv_dt0:Number; public var m_boundaryListener:b2BoundaryListener; public var m_contactList:b2Contact; public var m_blockAllocator; public var m_contactListener:b2ContactListener; public var m_allowSleep:Boolean; public var m_broadPhase:b2BroadPhase; public var m_destructionListener:b2DestructionListener; public var m_jointCount:int; public var m_bodyCount:int; public var m_lock:Boolean; public var m_positionIterationCount:int; public var m_groundBody:b2Body; public var m_contactCount:int; public var m_debugDraw:b2DebugDraw; public var m_contactFilter:b2ContactFilter; public var m_bodyList:b2Body; public var m_stackAllocator; public var m_jointList:b2Joint; public var m_gravity:b2Vec2; public var m_contactManager:b2ContactManager; private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); public static var m_continuousPhysics:Boolean; public static var m_warmStarting:Boolean; private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6); public static var m_positionCorrection:Boolean; private static var s_xf:b2XForm = new b2XForm(); public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ m_contactManager = new b2ContactManager(); super(); m_destructionListener = null; m_boundaryListener = null; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_positionCorrection = true; m_warmStarting = true; m_continuousPhysics = true; m_allowSleep = _arg3; m_gravity = _arg2; m_lock = false; m_inv_dt0 = 0; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); var _local4:b2BodyDef = new b2BodyDef(); m_groundBody = CreateBody(_local4); } public function DrawJoint(_arg1:b2Joint):void{ var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; var _local2:b2Body = _arg1.m_body1; var _local3:b2Body = _arg1.m_body2; var _local4:b2XForm = _local2.m_xf; var _local5:b2XForm = _local3.m_xf; var _local6:b2Vec2 = _local4.position; var _local7:b2Vec2 = _local5.position; var _local8:b2Vec2 = _arg1.GetAnchor1(); var _local9:b2Vec2 = _arg1.GetAnchor2(); var _local10:b2Color = s_jointColor; switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; case b2Joint.e_pulleyJoint: _local11 = (_arg1 as b2PulleyJoint); _local12 = _local11.GetGroundAnchor1(); _local13 = _local11.GetGroundAnchor2(); m_debugDraw.DrawSegment(_local12, _local8, _local10); m_debugDraw.DrawSegment(_local13, _local9, _local10); m_debugDraw.DrawSegment(_local12, _local13, _local10); break; case b2Joint.e_mouseJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; default: if (_local2 != m_groundBody){ m_debugDraw.DrawSegment(_local6, _local8, _local10); }; m_debugDraw.DrawSegment(_local8, _local9, _local10); if (_local3 != m_groundBody){ m_debugDraw.DrawSegment(_local7, _local9, _local10); }; }; } public function Refilter(_arg1:b2Shape):void{ _arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf); } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetProxyCount():int{ return (m_broadPhase.m_proxyCount); } public function DrawDebugData():void{ var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local11:b2XForm; var _local15:Boolean; var _local16:uint; var _local17:b2Pair; var _local18:b2Proxy; var _local19:b2Proxy; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Proxy; var _local23:b2PolygonShape; var _local24:b2OBB; var _local25:b2Vec2; var _local26:b2Mat22; var _local27:b2Vec2; var _local28:Number; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); var _local1:uint = m_debugDraw.GetFlags(); var _local7:b2Vec2 = new b2Vec2(); var _local8:b2Vec2 = new b2Vec2(); var _local9:b2Vec2 = new b2Vec2(); var _local10:b2Color = new b2Color(0, 0, 0); var _local12:b2AABB = new b2AABB(); var _local13:b2AABB = new b2AABB(); var _local14:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; if ((_local1 & b2DebugDraw.e_shapeBit)){ _local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local3.IsStatic()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15); } else { if (_local3.IsSleeping()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15); } else { DrawShape(_local4, _local11, new b2Color(0.9, 0.9, 0.9), _local15); }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local6 = m_broadPhase; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.9, 0.3); _local2 = 0; while (_local2 < b2Pair.b2_tableCapacity) { _local16 = _local6.m_pairManager.m_hashTable[_local2]; while (_local16 != b2Pair.b2_nullPair) { _local17 = _local6.m_pairManager.m_pairs[_local16]; _local18 = _local6.m_proxyPool[_local17.proxyId1]; _local19 = _local6.m_proxyPool[_local17.proxyId2]; _local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value)); _local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value)); _local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value)); _local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value)); _local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value)); _local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value)); _local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value)); _local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value)); _local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x)); _local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y)); _local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x)); _local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y)); m_debugDraw.DrawSegment(_local8, _local9, _local10); _local16 = _local17.next; }; _local2++; }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local6 = m_broadPhase; _local20 = _local6.m_worldAABB.lowerBound; _local21 = _local6.m_worldAABB.upperBound; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.3, 0.9); _local2 = 0; while (_local2 < b2Settings.b2_maxProxies) { _local22 = _local6.m_proxyPool[_local2]; if (_local22.IsValid() == false){ } else { _local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value)); _local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value)); _local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value)); _local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value)); _local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y); _local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y); _local14[2].Set(_local12.upperBound.x, _local12.upperBound.y); _local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local2++; }; _local14[0].Set(_local20.x, _local20.y); _local14[1].Set(_local21.x, _local20.y); _local14[2].Set(_local21.x, _local21.y); _local14[3].Set(_local20.x, _local21.y); m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9)); }; if ((_local1 & b2DebugDraw.e_obbBit)){ _local10.Set(0.5, 0.3, 0.5); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.m_type != b2Shape.e_polygonShape){ } else { _local23 = (_local4 as b2PolygonShape); _local24 = _local23.GetOBB(); _local25 = _local24.extents; _local14[0].Set(-(_local25.x), -(_local25.y)); _local14[1].Set(_local25.x, -(_local25.y)); _local14[2].Set(_local25.x, _local25.y); _local14[3].Set(-(_local25.x), _local25.y); _local2 = 0; while (_local2 < 4) { _local26 = _local24.R; _local27 = _local14[_local2]; _local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local26 = _local11.R; _local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local2++; }; m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.m_xf.R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.m_next; }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; var _local2:b2JointEdge = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; var _local3:b2Shape = _arg1.m_shapeList; while (_local3) { _local5 = _local3; _local3 = _local3.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeShape(_local5); }; _local5.DestroyProxy(m_broadPhase); b2Shape.Destroy(_local5, m_blockAllocator); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function GetGroundBody():b2Body{ return (m_groundBody); } public function DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{ var _local6:b2CircleShape; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:int; var _local11:b2PolygonShape; var _local12:int; var _local13:Array; var _local14:Array; var _local15:Array; var _local5:b2Color = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition); _local8 = _local6.m_radius; _local9 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3); if (_arg4){ m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5); }; break; case b2Shape.e_polygonShape: _local11 = (_arg1 as b2PolygonShape); _local12 = _local11.GetVertexCount(); _local13 = _local11.GetVertices(); _local14 = new Array(b2Settings.b2_maxPolygonVertices); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]); _local10++; }; m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3); if (_arg4){ _local15 = _local11.GetCoreVertices(); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]); _local10++; }; m_debugDraw.DrawPolygon(_local14, _local12, _local5); }; break; }; } public function GetContactCount():int{ return (m_contactCount); } public function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; var _local3:b2Island = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; var _local4:b2Contact = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; var _local5:b2Joint = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; var _local6:int = m_bodyCount; if (_local6 < 0){ _local6 = 0; m_bodyCount = 0; }; var _local7:Array = new Array(_local6); var _local8:b2Body = m_bodyList; while (_local8) { if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){ } else { if (_local8.IsStatic()){ } else { _local3.Clear(); _local9 = 0; var _temp1 = _local9; _local9 = (_local9 + 1); var _local15 = _temp1; _local7[_local15] = _local8; _local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag); while (_local9 > 0) { --_local9; _local2 = _local7[_local9]; _local3.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local12 = _local2.m_contactList; while (_local12) { if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){ } else { if (_local12.contact.m_manifoldCount == 0){ } else { _local3.AddContact(_local12.contact); _local12.contact.m_flags = (_local12.contact.m_flags | b2Contact.e_islandFlag); _local11 = _local12.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local9; _local9 = (_local9 + 1); var _local16 = _temp2; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; }; _local12 = _local12.next; }; _local13 = _local2.m_jointList; while (_local13) { if (_local13.joint.m_islandFlag == true){ } else { _local3.AddJoint(_local13.joint); _local13.joint.m_islandFlag = true; _local11 = _local13.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local9; _local9 = (_local9 + 1); _local16 = _temp3; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; _local13 = _local13.next; }; }; }; _local3.Solve(_arg1, m_gravity, m_positionCorrection, m_allowSleep); if (_local3.m_positionIterationCount > m_positionIterationCount){ m_positionIterationCount = _local3.m_positionIterationCount; }; _local10 = 0; while (_local10 < _local3.m_bodyCount) { _local2 = _local3.m_bodies[_local10]; if (_local2.IsStatic()){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local10++; }; }; }; _local8 = _local8.m_next; }; _local2 = m_bodyList; while (_local2) { if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local14 = _local2.SynchronizeShapes(); if ((((_local14 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; }; }; _local2 = _local2.m_next; }; m_broadPhase.Commit(); } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array = new Array(_arg3); var _local5:int = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); var _local6:int; while (_local6 < _local5) { _arg2[_local6] = _local4[_local6]; _local6++; }; return (_local5); } public function SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; var _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:b2TimeStep; var _local17:int; var _local18:Number; var _local19:Number; var _local20:b2Body; var _local21:Boolean; var _local8:b2Island = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); var _local9:int = m_bodyCount; if (_local9 < 0){ _local9 = 0; }; var _local10:Array = new Array(_local9); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2.m_sweep.t0 = 0; _local2 = _local2.m_next; }; _local11 = m_contactList; while (_local11) { _local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local11 = _local11.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){ } else { _local18 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local18 = _local11.m_toi; } else { _local3 = _local11.m_shape1; _local4 = _local11.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((_local5.IsStatic()) || (_local5.IsSleeping()))) && (((_local6.IsStatic()) || (_local6.IsSleeping()))))){ continue; }; _local19 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local19 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local19); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local19 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local19); }; }; _local18 = b2TimeOfImpact.TimeOfImpact(_local11.m_shape1, _local5.m_sweep, _local11.m_shape2, _local6.m_sweep); if ((((_local18 > 0)) && ((_local18 < 1)))){ _local18 = (((1 - _local18) * _local19) + _local18); if (_local18 > 1){ _local18 = 1; }; }; _local11.m_toi = _local18; _local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local18)) && ((_local18 < _local13)))){ _local12 = _local11; _local13 = _local18; }; }; }; if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){ break; }; _local3 = _local12.m_shape1; _local4 = _local12.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if (_local12.m_manifoldCount == 0){ } else { _local14 = _local5; if (_local14.IsStatic()){ _local14 = _local6; }; _local8.Clear(); _local15 = 0; var _temp1 = _local15; _local15 = (_local15 + 1); var _local22 = _temp1; _local10[_local22] = _local14; _local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag); while (_local15 > 0) { --_local15; _local2 = _local10[_local15]; _local8.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local8.m_contactCount == _local8.m_contactCapacity){ } else { if ((_local7.contact.m_flags & ((b2Contact.e_islandFlag | b2Contact.e_slowFlag) | b2Contact.e_nonSolidFlag))){ } else { if (_local7.contact.m_manifoldCount == 0){ } else { _local8.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local20 = _local7.other; if ((_local20.m_flags & b2Body.e_islandFlag)){ } else { if (_local20.IsStatic() == false){ _local20.Advance(_local13); _local20.WakeUp(); }; var _temp2 = _local15; _local15 = (_local15 + 1); var _local23 = _temp2; _local10[_local23] = _local20; _local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag); }; }; }; }; _local7 = _local7.next; }; }; }; _local16 = new b2TimeStep(); _local16.dt = ((1 - _local13) * _arg1.dt); _local16.inv_dt = (1 / _local16.dt); _local16.maxIterations = _arg1.maxIterations; _local8.SolveTOI(_local16); _local17 = 0; while (_local17 < _local8.m_bodyCount) { _local2 = _local8.m_bodies[_local17]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local21 = _local2.SynchronizeShapes(); if ((((_local21 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local17++; }; _local17 = 0; while (_local17 < _local8.m_contactCount) { _local11 = _local8.m_contacts[_local17]; _local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local17++; }; m_broadPhase.Commit(); }; }; } public function GetJointList():b2Joint{ return (m_jointList); } public function GetBodyList():b2Body{ return (m_bodyList); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function Validate():void{ m_broadPhase.Validate(); } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function SetPositionCorrection(_arg1:Boolean):void{ m_positionCorrection = _arg1; } public function CreateJoint(_arg1:b2JointDef):b2Joint{ var _local3:b2Body; var _local4:b2Shape; var _local2:b2Joint = b2Joint.Create(_arg1, m_blockAllocator); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_node1.joint = _local2; _local2.m_node1.other = _local2.m_body2; _local2.m_node1.prev = null; _local2.m_node1.next = _local2.m_body1.m_jointList; if (_local2.m_body1.m_jointList){ _local2.m_body1.m_jointList.prev = _local2.m_node1; }; _local2.m_body1.m_jointList = _local2.m_node1; _local2.m_node2.joint = _local2; _local2.m_node2.other = _local2.m_body1; _local2.m_node2.prev = null; _local2.m_node2.next = _local2.m_body2.m_jointList; if (_local2.m_body2.m_jointList){ _local2.m_body2.m_jointList.prev = _local2.m_node2; }; _local2.m_body2.m_jointList = _local2.m_node2; if (_arg1.collideConnected == false){ _local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2; _local4 = _local3.m_shapeList; while (_local4) { _local4.RefilterProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local5:b2Body; var _local6:b2Shape; var _local2:Boolean = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; var _local3:b2Body = _arg1.m_body1; var _local4:b2Body = _arg1.m_body2; _local3.WakeUp(); _local4.WakeUp(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local3.m_jointList){ _local3.m_jointList = _arg1.m_node1.next; }; _arg1.m_node1.prev = null; _arg1.m_node1.next = null; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local4.m_jointList){ _local4.m_jointList = _arg1.m_node2.next; }; _arg1.m_node2.prev = null; _arg1.m_node2.next = null; b2Joint.Destroy(_arg1, m_blockAllocator); m_jointCount--; if (_local2 == false){ _local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4; _local6 = _local5.m_shapeList; while (_local6) { _local6.RefilterProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function CreateBody(_arg1:b2BodyDef):b2Body{ if (m_lock == true){ return (null); }; var _local2:b2Body = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function Step(_arg1:Number, _arg2:int):void{ m_lock = true; var _local3:b2TimeStep = new b2TimeStep(); _local3.dt = _arg1; _local3.maxIterations = _arg2; if (_arg1 > 0){ _local3.inv_dt = (1 / _arg1); } else { _local3.inv_dt = 0; }; _local3.dtRatio = (m_inv_dt0 * _arg1); _local3.positionCorrection = m_positionCorrection; _local3.warmStarting = m_warmStarting; m_contactManager.Collide(); if (_local3.dt > 0){ Solve(_local3); }; if (((m_continuousPhysics) && ((_local3.dt > 0)))){ SolveTOI(_local3); }; DrawDebugData(); m_inv_dt0 = _local3.inv_dt; m_lock = false; } public function GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } } }//package Box2D.Dynamics
Section 75
//alien_22 (char_fla.alien_22) package char_fla { import flash.events.*; import flash.net.*; import flash.display.*; import flash.utils.*; import flash.text.*; import flash.media.*; import flash.geom.*; import adobe.utils.*; import flash.accessibility.*; import flash.desktop.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.system.*; import flash.text.engine.*; import flash.ui.*; import flash.xml.*; public dynamic class alien_22 extends MovieClip { public var colorh:MovieClip; public var colorl:MovieClip; public var ct:ColorTransform; public var mc_antenna:MovieClip; public var colorb:MovieClip; public function alien_22(){ addFrameScript(0, this.frame1, 2, this.frame3, 4, this.frame5, 6, this.frame7, 8, this.frame9, 10, this.frame11, 12, this.frame13, 14, this.frame15); } function frame1(){ this.ct = new ColorTransform(); this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; } function frame3(){ this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; } function frame5(){ this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; } function frame9(){ this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; } function frame11(){ this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; } function frame13(){ this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; } function frame15(){ this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; } function frame7(){ this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; } } }//package char_fla
Section 76
//antenna_8 (char_fla.antenna_8) package char_fla { import flash.display.*; public dynamic class antenna_8 extends MovieClip { public function antenna_8(){ addFrameScript(0, this.frame1); } function frame1(){ stop(); } } }//package char_fla
Section 77
//antennaEffect_14 (char_fla.antennaEffect_14) package char_fla { import flash.display.*; public dynamic class antennaEffect_14 extends MovieClip { public function antennaEffect_14(){ addFrameScript(9, this.frame10); } function frame10(){ stop(); } } }//package char_fla
Section 78
//antennaEffect1_15 (char_fla.antennaEffect1_15) package char_fla { import flash.display.*; public dynamic class antennaEffect1_15 extends MovieClip { public function antennaEffect1_15(){ addFrameScript(15, this.frame16); } function frame16(){ stop(); } } }//package char_fla
Section 79
//eyes_1_5 (char_fla.eyes_1_5) package char_fla { import flash.display.*; public dynamic class eyes_1_5 extends MovieClip { public function eyes_1_5(){ addFrameScript(3, this.frame4, 12, this.frame13); } function frame13(){ gotoAndStop(4); } function frame4(){ gotoAndStop(4); } } }//package char_fla
Section 80
//mc_antenna_anim_13 (char_fla.mc_antenna_anim_13) package char_fla { import flash.events.*; import flash.net.*; import flash.display.*; import flash.utils.*; import flash.text.*; import flash.media.*; import flash.geom.*; import adobe.utils.*; import flash.accessibility.*; import flash.desktop.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.system.*; import flash.text.engine.*; import flash.ui.*; import flash.xml.*; public dynamic class mc_antenna_anim_13 extends MovieClip { public var mc:MovieClip; public function mc_antenna_anim_13(){ addFrameScript(0, this.frame1, 1, this.frame2); } function frame1(){ stop(); this["mc"].gotoAndPlay(1); } function frame2(){ stop(); this["mc"].gotoAndPlay(1); } } }//package char_fla
Section 81
//weaponEffects2_60 (char_fla.weaponEffects2_60) package char_fla { import flash.events.*; import flash.net.*; import flash.display.*; import flash.utils.*; import flash.text.*; import flash.media.*; import flash.geom.*; import adobe.utils.*; import flash.accessibility.*; import flash.desktop.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.system.*; import flash.text.engine.*; import flash.ui.*; import flash.xml.*; public dynamic class weaponEffects2_60 extends MovieClip { public var colorh:MovieClip; public var colorl:MovieClip; public var ct:ColorTransform; public var colorb:MovieClip; public function weaponEffects2_60(){ addFrameScript(0, this.frame1, 1, this.frame2, 2, this.frame3, 3, this.frame4, 4, this.frame5, 5, this.frame6, 6, this.frame7, 8, this.frame9, 18, this.frame19); } function frame1(){ this.ct = new ColorTransform(); this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; } function frame3(){ this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).x = -20.2; (this["colorh"] as MovieClip).y = -126.1; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).x = -19.5; (this["colorb"] as MovieClip).y = -90.7; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).x = -18.6; (this["colorl"] as MovieClip).y = -65.8; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; } function frame4(){ this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).x = -20.2; (this["colorh"] as MovieClip).y = -123.6; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).x = -19.5; (this["colorb"] as MovieClip).y = -88.2; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).x = -18.5; (this["colorl"] as MovieClip).y = -63.2; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; } function frame5(){ this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).x = -20.2; (this["colorh"] as MovieClip).y = -123.6; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).x = -19.5; (this["colorb"] as MovieClip).y = -88.2; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).x = -18.5; (this["colorl"] as MovieClip).y = -63.1; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; } function frame2(){ this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).x = -20.2; (this["colorh"] as MovieClip).y = -123.35; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).x = -19.5; (this["colorb"] as MovieClip).y = -88; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).x = -18.8; (this["colorl"] as MovieClip).y = -62.9; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; } function frame6(){ this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).x = -20.2; (this["colorh"] as MovieClip).y = -107; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).x = -19.5; (this["colorb"] as MovieClip).y = -71.6; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).x = -18.5; (this["colorl"] as MovieClip).y = -46.5; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; } function frame9(){ var _local1 = parent.parent; _local1["useWeapon1"](); } function frame19(){ stop(); var _local1 = parent.parent; _local1["finishAtack"](); } function frame7(){ this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).x = -20.2; (this["colorh"] as MovieClip).y = -71.75; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).x = -19.5; (this["colorb"] as MovieClip).y = -36.35; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).x = -18.5; (this["colorl"] as MovieClip).y = -11.2; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; } } }//package char_fla
Section 82
//weaponEffects3_65 (char_fla.weaponEffects3_65) package char_fla { import flash.events.*; import flash.net.*; import flash.display.*; import flash.utils.*; import flash.text.*; import flash.media.*; import flash.geom.*; import adobe.utils.*; import flash.accessibility.*; import flash.desktop.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.system.*; import flash.text.engine.*; import flash.ui.*; import flash.xml.*; public dynamic class weaponEffects3_65 extends MovieClip { public var colorh:MovieClip; public var colorl:MovieClip; public var ct:ColorTransform; public var colorb:MovieClip; public function weaponEffects3_65(){ addFrameScript(0, this.frame1, 1, this.frame2, 2, this.frame3, 3, this.frame4, 4, this.frame5, 5, this.frame6, 8, this.frame9, 9, this.frame10, 10, this.frame11, 11, this.frame12, 12, this.frame13, 13, this.frame14); } function frame1(){ this.ct = new ColorTransform(); this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; (this["colorh"] as MovieClip).x = -20.2; (this["colorh"] as MovieClip).y = -79.1; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; (this["colorb"] as MovieClip).x = -19.5; (this["colorb"] as MovieClip).y = -43.7; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; (this["colorl"] as MovieClip).x = -18.8; (this["colorl"] as MovieClip).y = -18.6; } function frame3(){ this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; (this["colorh"] as MovieClip).x = -20.2; (this["colorh"] as MovieClip).y = -126.1; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; (this["colorb"] as MovieClip).x = -19.5; (this["colorb"] as MovieClip).y = -90.7; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; (this["colorl"] as MovieClip).x = -18.8; (this["colorl"] as MovieClip).y = -65.8; } function frame4(){ this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; (this["colorh"] as MovieClip).x = -20.2; (this["colorh"] as MovieClip).y = -123.6; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; (this["colorb"] as MovieClip).x = -19.5; (this["colorb"] as MovieClip).y = -88.2; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; (this["colorl"] as MovieClip).x = -18.8; (this["colorl"] as MovieClip).y = -63.2; } function frame5(){ this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; (this["colorh"] as MovieClip).x = -20.2; (this["colorh"] as MovieClip).y = -123.6; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; (this["colorb"] as MovieClip).x = -19.5; (this["colorb"] as MovieClip).y = -88.2; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; (this["colorl"] as MovieClip).x = -18.8; (this["colorl"] as MovieClip).y = -63.2; } function frame2(){ this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; (this["colorh"] as MovieClip).x = -20.2; (this["colorh"] as MovieClip).y = -123.35; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; (this["colorb"] as MovieClip).x = -19.5; (this["colorb"] as MovieClip).y = -87.95; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; (this["colorl"] as MovieClip).x = -18.8; (this["colorl"] as MovieClip).y = -62.85; } function frame11(){ this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; (this["colorh"] as MovieClip).x = -20.2; (this["colorh"] as MovieClip).y = -108; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; (this["colorb"] as MovieClip).x = -19.5; (this["colorb"] as MovieClip).y = -72.6; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; (this["colorl"] as MovieClip).x = -18.8; (this["colorl"] as MovieClip).y = -47.6; } function frame12(){ this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; (this["colorh"] as MovieClip).x = -20.2; (this["colorh"] as MovieClip).y = -99.7; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; (this["colorb"] as MovieClip).x = -19.5; (this["colorb"] as MovieClip).y = -64.3; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; (this["colorl"] as MovieClip).x = -18.8; (this["colorl"] as MovieClip).y = -39.4; } function frame13(){ this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; (this["colorh"] as MovieClip).x = -20.2; (this["colorh"] as MovieClip).y = -80.4; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; (this["colorb"] as MovieClip).x = -19.5; (this["colorb"] as MovieClip).y = -45; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; (this["colorl"] as MovieClip).x = -18.8; (this["colorl"] as MovieClip).y = -20; } function frame6(){ this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; (this["colorh"] as MovieClip).x = -20.2; (this["colorh"] as MovieClip).y = -123.6; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; (this["colorb"] as MovieClip).x = -19.5; (this["colorb"] as MovieClip).y = -88.2; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; (this["colorl"] as MovieClip).x = -18.8; (this["colorl"] as MovieClip).y = -63.1; } function frame9(){ var _local1 = parent.parent; _local1["useWeapon2"](); } function frame14(){ stop(); var _local1 = parent.parent; _local1["finishAtack"](); this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; (this["colorh"] as MovieClip).x = -20.2; (this["colorh"] as MovieClip).y = -87.35; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; (this["colorb"] as MovieClip).x = -19.5; (this["colorb"] as MovieClip).y = -51.95; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; (this["colorl"] as MovieClip).x = -18.8; (this["colorl"] as MovieClip).y = -26.85; } function frame10(){ this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; (this["colorh"] as MovieClip).x = -20.2; (this["colorh"] as MovieClip).y = -123.6; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; (this["colorb"] as MovieClip).x = -19.5; (this["colorb"] as MovieClip).y = -88.2; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; (this["colorl"] as MovieClip).x = -18.8; (this["colorl"] as MovieClip).y = -63.1; } } }//package char_fla
Section 83
//weaponEffects4_55 (char_fla.weaponEffects4_55) package char_fla { import flash.events.*; import flash.net.*; import flash.display.*; import flash.utils.*; import flash.text.*; import flash.media.*; import flash.geom.*; import adobe.utils.*; import flash.accessibility.*; import flash.desktop.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.system.*; import flash.text.engine.*; import flash.ui.*; import flash.xml.*; public dynamic class weaponEffects4_55 extends MovieClip { public var colorh:MovieClip; public var colorl:MovieClip; public var ct:ColorTransform; public var colorb:MovieClip; public function weaponEffects4_55(){ addFrameScript(0, this.frame1, 5, this.frame6, 16, this.frame17); } function frame1(){ this.ct = new ColorTransform(); this.ct.color = parent.parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent.parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; } function frame6(){ var _local1 = parent.parent; _local1["useWeapon0"](); } function frame17(){ var _local1 = parent.parent; _local1["finishAtack"](); } } }//package char_fla
Section 84
//Debug (com.hexagonstar.util.debug.Debug) package com.hexagonstar.util.debug { import flash.events.*; import flash.net.*; import flash.display.*; import flash.utils.*; import flash.system.*; public final class Debug { public static const LEVEL_WARN:int = 2; public static const LEVEL_DEBUG:int = 0; public static const LEVEL_INFO:int = 1; public static const LEVEL_FATAL:int = 4; public static const LEVEL_ERROR:int = 3; private static var _stage:Stage; private static var _filterLevel:int = 0; private static var _isEnabled:Boolean = true; private static var _isConnected:Boolean = false; private static var _isPollingFPS:Boolean = false; private static var _stopWatch:StopWatch; private static var _connection:LocalConnection; private static var _fpsMeter:FPSMeter; public static function forceGC():void{ try { } catch(e1:Error) { try { new LocalConnection().connect("forceGC"); new LocalConnection().connect("forceGC"); } catch(e2:Error) { }; }; } private static function send(_arg1:String, _arg2, _arg3:int=1, _arg4:int=0):void{ var _local5:Number; var _local6:ByteArray; if (_isEnabled){ if (!_isConnected){ _isConnected = true; _connection = new LocalConnection(); _connection.addEventListener(StatusEvent.STATUS, onStatus); }; _local5 = 0; if (typeof(_arg2) == "string"){ _local5 = String(_arg2).length; } else { if (typeof(_arg2) == "object"){ _local6 = new ByteArray(); _local6.writeObject(_arg2); _local5 = _local6.length; _local6 = null; }; }; if (_local5 > 39000){ storeDataLSO(_arg1, _arg2); _arg1 = "onLargeData"; _arg2 = null; }; _connection.send("_alcon_lc", _arg1, _arg2, _arg3, _arg4, ""); }; } public static function stop():void{ if (_fpsMeter){ _isPollingFPS = false; _fpsMeter.stop(); _fpsMeter.removeEventListener(FPSMeter.FPS_UPDATE, onFPSUpdate); _fpsMeter = null; _stage = null; }; } public static function timerReset():void{ if (_stopWatch){ _stopWatch.reset(); }; } private static function onFPSUpdate(_arg1:Event):void{ send("onFPS", ((((((_fpsMeter.fps + ",") + _stage.frameRate) + ",") + _fpsMeter.frt) + ",") + System.totalMemory)); } public static function delimiter():void{ Debug.trace("[%DLT%]", 5); } public static function set enabled(_arg1:Boolean):void{ _isEnabled = _arg1; } public static function inspect(_arg1:Object):void{ send("onInspect", _arg1, 1, -1); } public static function timerStart(_arg1:String=""):void{ if (_isEnabled){ if (!_stopWatch){ _stopWatch = new StopWatch(); }; _stopWatch.start(_arg1); }; } public static function createCategory(_arg1:int, _arg2:String="", _arg3:uint=0, _arg4:uint=0xFFFF00):void{ send("onCategory", [_arg1, _arg2, _arg3, _arg4], 0, 0); } private static function storeDataLSO(_arg1:String, _arg2):void{ var flushResult:String; var m = _arg1; var d = _arg2; var sharedObject:SharedObject = SharedObject.getLocal("alcon", "/"); sharedObject.data["alconMethod"] = m; sharedObject.data["alconData"] = d; try { flushResult = sharedObject.flush(); if (flushResult == SharedObjectFlushStatus.FLUSHED){ return; }; } catch(e:Error) { Security.showSettings(SecurityPanel.LOCAL_STORAGE); }; } public static function hexDump(_arg1:Object):void{ send("onHexDump", _arg1, 0, 0); } private static function onStatus(_arg1:StatusEvent):void{ } public static function get enabled():Boolean{ return (_isEnabled); } public static function trace(... _args):void{ var _local2:int = ((_args[1] is int)) ? _args[1] : 1; if ((((_local2 >= _filterLevel)) && ((_local2 < 7)))){ send("onData", _args[0], _local2, 0); }; } public static function timerToString():void{ if (_stopWatch){ Debug.trace(_stopWatch.toString()); }; } public static function mark(_arg1:uint=0xFF00FF):void{ send("onMarker", _arg1, 1, -1); } public static function timerInSeconds():void{ if (_stopWatch){ Debug.trace((_stopWatch.timeInSeconds + "s")); }; } public static function set filterLevel(_arg1:int):void{ if ((((_arg1 >= 0)) && ((_arg1 < 5)))){ _filterLevel = _arg1; }; } public static function monitor(_arg1:Stage, _arg2:int=500):void{ if (_isPollingFPS){ Debug.stop(); }; if (((_isEnabled) && (!(_fpsMeter)))){ _isPollingFPS = true; _stage = _arg1; sendCapabilities(); _fpsMeter = new FPSMeter(_stage, _arg2); _fpsMeter.addEventListener(FPSMeter.FPS_UPDATE, onFPSUpdate); _fpsMeter.start(); }; } public static function time():void{ Debug.trace("[%TME%]", 5); } private static function sendCapabilities():void{ var _local3:XML; var _local4:String; var _local1:XML = describeType(Capabilities); var _local2:Array = []; for each (_local3 in _local1.*) { _local4 = _local3.@name.toString(); if ((((((_local4.length > 0)) && (!((_local4 == "_internal"))))) && (!((_local4 == "prototype"))))){ _local2.push({p:_local4, v:Capabilities[_local4].toString()}); }; }; _local2.sortOn(["p"], Array.CASEINSENSITIVE); send("onCap", _local2); } public static function clear():void{ Debug.trace("[%CLR%]", 5); } public static function timerStop():void{ if (_stopWatch){ _stopWatch.stop(); }; } public static function timerInMilliSeconds():void{ if (_stopWatch){ Debug.trace((_stopWatch.timeInMilliSeconds + "ms")); }; } public static function get filterLevel():int{ return (_filterLevel); } public static function traceObj(_arg1:Object, _arg2:int=64, _arg3:int=1):void{ if ((((_arg3 >= _filterLevel)) && ((_arg3 < 7)))){ send("onData", _arg1, _arg3, _arg2); }; } public static function timerStopToString(_arg1:Boolean=false):void{ if (_stopWatch){ _stopWatch.stop(); Debug.trace(_stopWatch.toString()); if (_arg1){ _stopWatch.reset(); }; }; } public static function pause():void{ Debug.trace("[%PSE%]", 5); } } }//package com.hexagonstar.util.debug
Section 85
//FPSMeter (com.hexagonstar.util.debug.FPSMeter) package com.hexagonstar.util.debug { import flash.events.*; import flash.display.*; import flash.utils.*; public class FPSMeter extends EventDispatcher { private var _delayMax:int;// = 10 private var _pollInterval:int; private var _delay:int; private var _ms:int; private var _timer:Timer; private var _prev:int; private var _frt:int; private var _fps:int; private var _isRunning:Boolean; private var _stage:Stage; public static const FPS_UPDATE:String = "fpsUpdate"; public function FPSMeter(_arg1:Stage, _arg2:int=500){ _stage = _arg1; _pollInterval = _arg2; reset(); } public function stop():void{ if (_isRunning){ _timer.stop(); _timer.removeEventListener(TimerEvent.TIMER, onTimer); _stage.removeEventListener(Event.ENTER_FRAME, onEnterFrame); _timer = null; reset(); }; } public function reset():void{ _fps = 0; _frt = 0; _ms = 0; _delay = 0; _prev = 0; _isRunning = false; } public function start():void{ if (!_isRunning){ _isRunning = true; _timer = new Timer(_pollInterval, 0); _timer.addEventListener(TimerEvent.TIMER, onTimer); _stage.addEventListener(Event.ENTER_FRAME, onEnterFrame); _timer.start(); }; } private function onTimer(_arg1:TimerEvent):void{ dispatchEvent(new Event(FPSMeter.FPS_UPDATE)); } public function get frt():int{ return (_frt); } public function get fps():int{ return (_fps); } private function onEnterFrame(_arg1:Event):void{ var _local2:Number = getTimer(); _delay++; if (_delay >= _delayMax){ _delay = 0; _fps = int(((1000 * _delayMax) / (_local2 - _prev))); _prev = _local2; }; _frt = (_local2 - _ms); _ms = _local2; } } }//package com.hexagonstar.util.debug
Section 86
//StopWatch (com.hexagonstar.util.debug.StopWatch) package com.hexagonstar.util.debug { import flash.utils.*; public class StopWatch { private var _stopTimeKeys:Array; private var _startTimeKeys:Array; private var _started:Boolean;// = false private var _title:String; public function StopWatch(){ reset(); } public function get started():Boolean{ return (_started); } public function get timeInMilliSeconds():int{ if (_started){ _stopTimeKeys[(_startTimeKeys.length - 1)] = getTimer(); }; var _local1:int; var _local2:int; while (_local2 < _startTimeKeys.length) { _local1 = (_local1 + (_stopTimeKeys[_local2] - _startTimeKeys[_local2])); _local2++; }; return (_local1); } public function stop():void{ var _local1:int; if (_started){ _local1 = getTimer(); _stopTimeKeys[(_startTimeKeys.length - 1)] = _local1; _started = false; }; } public function toString():String{ var _local3:int; var _local4:int; var _local1 = "\n ********************* [STOPWATCH] *********************"; if (_title != ""){ _local1 = (_local1 + ("\n * " + _title)); }; var _local2:int; while (_local2 < _startTimeKeys.length) { _local3 = _startTimeKeys[_local2]; _local4 = _stopTimeKeys[_local2]; _local1 = (_local1 + (((((("\n * started [" + format(_local3)) + "ms] stopped [") + format(_local4)) + "ms] time [") + format((_local4 - _local3))) + "ms]")); _local2++; }; if (_local2 == 0){ _local1 = (_local1 + "\n * never started."); } else { _local1 = (_local1 + (("\n * total runnning time: " + timeInSeconds) + "s")); }; _local1 = (_local1 + "\n *******************************************************"); return (_local1); } public function get timeInSeconds():Number{ return ((timeInMilliSeconds / 1000)); } public function reset():void{ _startTimeKeys = []; _stopTimeKeys = []; _started = false; } private function format(_arg1:int):String{ var _local2 = ""; var _local3:int = _arg1.toString().length; var _local4:int; while (_local4 < (5 - _local3)) { _local2 = (_local2 + "0"); _local4++; }; return ((_local2 + _arg1)); } public function start(_arg1:String=""):void{ if (!_started){ _title = _arg1; _started = true; _startTimeKeys.push(getTimer()); }; } } }//package com.hexagonstar.util.debug
Section 87
//AdLoader (CPMStar.AdLoader) package CPMStar { import flash.events.*; import flash.display.*; import flash.system.*; import flash.net.*; public class AdLoader extends Sprite { private var cpmstarLoader:Loader; private var contentspotid:String; public function AdLoader(_arg1:String){ this.contentspotid = _arg1; addEventListener(Event.ADDED, addedHandler); } private function dispatchHandler(_arg1:Event):void{ dispatchEvent(_arg1); } private function addedHandler(_arg1:Event):void{ removeEventListener(Event.ADDED, addedHandler); Security.allowDomain("server.cpmstar.com"); var _local2 = "http://server.cpmstar.com/adviewas3.swf"; var _local3:DisplayObjectContainer = 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); } } }//package CPMStar
Section 88
//DamageItem (GameObjects.FallingItems.DamageItem) package GameObjects.FallingItems { import flash.display.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import GameObjects.*; public class DamageItem extends PhysicalBody { protected var m_sd:b2PolygonDef; protected var m_h_2:Number; protected var m_hero:Hero; protected var m_was_touched:Boolean;// = false protected var m_level:Level; protected var m_w_2:Number; public function DamageItem(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Hero, _arg5:Level){ super(_arg1, _arg2, _arg3); m_hero = _arg4; m_level = _arg5; } protected function onTouch():void{ } public function update():void{ m_body.ApplyImpulse(new b2Vec2(0, -1), m_body.GetPosition()); onUpdate(); } public function getX():Number{ return (mc.x); } protected function onUpdate():void{ } public function getY():Number{ return (mc.y); } public function remove():void{ m_level.addToDestroyList(m_body); } public function touch():void{ var _local1:MovieClip; if ((((m_hero.Y > (m_body.GetPosition().y * Constants.SCALE))) && (!(m_hero.isInvincible())))){ if (!m_was_touched){ m_was_touched = true; onTouch(); _local1 = new mc_head_bum(); _local1.x = mc.x; _local1.y = mc.y; m_level.addChild(_local1); remove(); }; }; } public function wasTouched():Boolean{ return (m_was_touched); } } }//package GameObjects.FallingItems
Section 89
//FireBomb (GameObjects.FallingItems.FireBomb) package GameObjects.FallingItems { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import GameObjects.*; import flash.media.*; public class FireBomb extends DamageItem { public function FireBomb(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Hero, _arg5:Level){ super(_arg1, _arg2, _arg3, _arg4, _arg5); mc = new mc_firebomb(); mc.scaleX = Constants.GAME_SCALE; mc.scaleY = Constants.GAME_SCALE; mc.x = _arg2; mc.y = _arg3; m_w_2 = ((85 / 2) * Constants.GAME_SCALE); m_h_2 = ((85 / 2) * Constants.GAME_SCALE); initBody(); addChild(mc); m_body.m_userData = mc; } override protected function onUpdate():void{ } override protected function initBody():void{ var _local1:b2CircleDef = new b2CircleDef(); _local1.radius = (m_w_2 / Constants.SCALE); _local1.density = 4; m_bd.linearDamping = 7; m_bd.angularDamping = 1; m_bd.position.Set((m_start_x / Constants.SCALE), (m_start_y / Constants.SCALE)); m_body = m_world.CreateBody(m_bd); m_body.CreateShape(_local1); m_body.SetMassFromShapes(); m_body.SetAngularVelocity(10); } override public function touch():void{ var _local1:Sound; if (((!(m_was_touched)) && (!(m_hero.isInvincible())))){ _local1 = new snd_steam1(); _local1.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 0.4))); _local1 = new snd_steam2(); _local1.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 0.5))); m_was_touched = true; m_hero.fire(); }; } } }//package GameObjects.FallingItems
Section 90
//FireJunk0 (GameObjects.FallingItems.FireJunk0) package GameObjects.FallingItems { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import GameObjects.*; public class FireJunk0 extends DamageItem { public function FireJunk0(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Hero, _arg5:Level){ super(_arg1, _arg2, _arg3, _arg4, _arg5); mc = new mc_firejunk0(); mc.scaleX = Constants.GAME_SCALE; mc.scaleY = Constants.GAME_SCALE; mc.x = _arg2; mc.y = _arg3; m_w_2 = ((16 / 2) * Constants.GAME_SCALE); m_h_2 = ((16 / 2) * Constants.GAME_SCALE); initBody(); addChild(mc); m_body.m_userData = mc; } override protected function onUpdate():void{ } override protected function initBody():void{ var _local1:b2CircleDef = new b2CircleDef(); _local1.radius = (m_w_2 / Constants.SCALE); _local1.density = 20; m_bd.linearDamping = 7; m_bd.angularDamping = 1; m_bd.position.Set((m_start_x / Constants.SCALE), (m_start_y / Constants.SCALE)); m_body = m_world.CreateBody(m_bd); m_body.CreateShape(_local1); m_body.SetMassFromShapes(); m_body.SetAngularVelocity(10); } override protected function onTouch():void{ m_hero.hit(6); } } }//package GameObjects.FallingItems
Section 91
//FireJunk1 (GameObjects.FallingItems.FireJunk1) package GameObjects.FallingItems { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import GameObjects.*; public class FireJunk1 extends DamageItem { public function FireJunk1(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Hero, _arg5:Level){ super(_arg1, _arg2, _arg3, _arg4, _arg5); mc = new mc_firejunk1(); mc.scaleX = Constants.GAME_SCALE; mc.scaleY = Constants.GAME_SCALE; mc.x = _arg2; mc.y = _arg3; m_w_2 = ((38 / 2) * Constants.GAME_SCALE); m_h_2 = ((38 / 2) * Constants.GAME_SCALE); initBody(); addChild(mc); m_body.m_userData = mc; } override protected function onUpdate():void{ } override protected function initBody():void{ var _local1:b2CircleDef = new b2CircleDef(); _local1.radius = (m_w_2 / Constants.SCALE); _local1.density = 20; m_bd.linearDamping = 7; m_bd.angularDamping = 1; m_bd.position.Set((m_start_x / Constants.SCALE), (m_start_y / Constants.SCALE)); m_body = m_world.CreateBody(m_bd); m_body.CreateShape(_local1); m_body.SetMassFromShapes(); m_body.SetAngularVelocity(10); } override protected function onTouch():void{ m_hero.hit(7); } } }//package GameObjects.FallingItems
Section 92
//SkyBomb (GameObjects.FallingItems.SkyBomb) package GameObjects.FallingItems { import flash.display.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import GameObjects.*; import flash.media.*; public class SkyBomb extends DamageItem { private var m_was_exploded:Boolean;// = false public function SkyBomb(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Hero, _arg5:Level){ super(_arg1, _arg2, _arg3, _arg4, _arg5); mc = new mc_skybomb(); mc.scaleX = (Constants.GAME_SCALE * 1.4); mc.scaleY = (Constants.GAME_SCALE * 1.4); mc.x = _arg2; mc.y = _arg3; m_w_2 = (((23 / 2) * Constants.GAME_SCALE) * 1.4); m_h_2 = (((51 / 2) * Constants.GAME_SCALE) * 1.4); initBody(); addChild(mc); m_body.m_userData = mc; (mc["mc_counter"] as MovieClip).gotoAndStop(1); } override protected function onUpdate():void{ var _local1:MovieClip; var _local2:b2Body; var _local3:b2Vec2; var _local4:Number; if (((((mc["mc_counter"] as MovieClip).currentFrame == 12)) && (!(m_was_exploded)))){ m_was_exploded = true; m_hero.hit(15); remove(); _local1 = new mc_xplode(); _local1.x = mc.x; _local1.y = mc.y; m_level.addChild(_local1); _local1.play(); _local2 = m_world.m_bodyList; while (_local2) { _local3 = new b2Vec2((_local2.GetPosition().x - m_body.GetPosition().x), (_local2.GetPosition().y - m_body.GetPosition().y)); _local4 = ((1 / _local3.Length()) * 1); _local3.Normalize(); _local3.Multiply(150); _local2.ApplyImpulse(_local3, _local2.GetPosition()); _local2 = _local2.m_next; }; }; } override protected function initBody():void{ m_sd = new b2PolygonDef(); m_sd.SetAsBox((m_w_2 / Constants.SCALE), (m_h_2 / Constants.SCALE)); m_sd.density = 4; m_bd.linearDamping = 8; m_bd.angularDamping = 1; m_bd.position.Set((m_start_x / Constants.SCALE), (m_start_y / Constants.SCALE)); m_body = m_world.CreateBody(m_bd); m_body.CreateShape(m_sd); m_body.SetMassFromShapes(); m_body.SetAngularVelocity(10); } override public function touch():void{ var _local1:Sound; if (!m_was_touched){ _local1 = new snd_expl(); _local1.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 0.9))); m_was_touched = true; (mc["mc_counter"] as MovieClip).play(); }; } } }//package GameObjects.FallingItems
Section 93
//SkyJunk0 (GameObjects.FallingItems.SkyJunk0) package GameObjects.FallingItems { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import GameObjects.*; public class SkyJunk0 extends DamageItem { public function SkyJunk0(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Hero, _arg5:Level){ super(_arg1, _arg2, _arg3, _arg4, _arg5); mc = new mc_skyjunk0(); mc.scaleX = Constants.GAME_SCALE; mc.scaleY = Constants.GAME_SCALE; mc.x = _arg2; mc.y = _arg3; m_w_2 = ((23 / 2) * Constants.GAME_SCALE); m_h_2 = ((23 / 2) * Constants.GAME_SCALE); initBody(); addChild(mc); m_body.m_userData = mc; } override protected function onUpdate():void{ } override protected function initBody():void{ m_sd = new b2PolygonDef(); m_sd.SetAsBox((m_w_2 / Constants.SCALE), (m_h_2 / Constants.SCALE)); m_sd.density = 20; m_bd.linearDamping = 7; m_bd.angularDamping = 1; m_bd.position.Set((m_start_x / Constants.SCALE), (m_start_y / Constants.SCALE)); m_body = m_world.CreateBody(m_bd); m_body.CreateShape(m_sd); m_body.SetMassFromShapes(); m_body.SetAngularVelocity(10); } override protected function onTouch():void{ m_hero.hit(6); } } }//package GameObjects.FallingItems
Section 94
//SkyJunk1 (GameObjects.FallingItems.SkyJunk1) package GameObjects.FallingItems { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import GameObjects.*; public class SkyJunk1 extends DamageItem { public function SkyJunk1(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Hero, _arg5:Level){ super(_arg1, _arg2, _arg3, _arg4, _arg5); mc = new mc_skyjunk1(); mc.scaleX = Constants.GAME_SCALE; mc.scaleY = Constants.GAME_SCALE; mc.x = _arg2; mc.y = _arg3; m_w_2 = ((26 / 2) * Constants.GAME_SCALE); m_h_2 = ((31 / 2) * Constants.GAME_SCALE); initBody(); addChild(mc); m_body.m_userData = mc; } override protected function onUpdate():void{ } override protected function initBody():void{ m_sd = new b2PolygonDef(); m_sd.SetAsBox((m_w_2 / Constants.SCALE), (m_h_2 / Constants.SCALE)); m_sd.density = 20; m_bd.linearDamping = 7; m_bd.angularDamping = 1; m_bd.position.Set((m_start_x / Constants.SCALE), (m_start_y / Constants.SCALE)); m_body = m_world.CreateBody(m_bd); m_body.CreateShape(m_sd); m_body.SetMassFromShapes(); m_body.SetAngularVelocity(10); } override protected function onTouch():void{ m_hero.hit(7); } } }//package GameObjects.FallingItems
Section 95
//SpaceBomb (GameObjects.FallingItems.SpaceBomb) package GameObjects.FallingItems { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import GameObjects.*; import flash.media.*; public class SpaceBomb extends DamageItem { public function SpaceBomb(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Hero, _arg5:Level){ super(_arg1, _arg2, _arg3, _arg4, _arg5); mc = new mc_spacebomb(); mc.scaleX = Constants.GAME_SCALE; mc.scaleY = Constants.GAME_SCALE; mc.x = _arg2; mc.y = _arg3; m_w_2 = ((62 / 2) * Constants.GAME_SCALE); m_h_2 = ((62 / 2) * Constants.GAME_SCALE); initBody(); addChild(mc); m_body.m_userData = mc; } override protected function onUpdate():void{ } override protected function initBody():void{ var _local1:b2CircleDef = new b2CircleDef(); _local1.radius = (m_w_2 / Constants.SCALE); _local1.density = 4; m_bd.linearDamping = 13; m_bd.angularDamping = 1; m_bd.position.Set((m_start_x / Constants.SCALE), (m_start_y / Constants.SCALE)); m_body = m_world.CreateBody(m_bd); m_body.CreateShape(_local1); m_body.SetMassFromShapes(); m_body.SetAngularVelocity(10); } override public function touch():void{ var _local1:Sound = new snd_shock(); _local1.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 0.5))); m_hero.shock(); var _local2:b2Vec2 = new b2Vec2((m_hero.body.GetPosition().x - m_body.GetPosition().x), (m_hero.body.GetPosition().y - m_body.GetPosition().y)); var _local3:Number = ((1 / _local2.Length()) * 1); _local2.Normalize(); _local2.Multiply(200); m_hero.body.ApplyImpulse(_local2, m_hero.body.GetPosition()); } } }//package GameObjects.FallingItems
Section 96
//SpaceJunk0 (GameObjects.FallingItems.SpaceJunk0) package GameObjects.FallingItems { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import GameObjects.*; public class SpaceJunk0 extends DamageItem { public function SpaceJunk0(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Hero, _arg5:Level){ super(_arg1, _arg2, _arg3, _arg4, _arg5); mc = new mc_spacejunk0(); mc.scaleX = Constants.GAME_SCALE; mc.scaleY = Constants.GAME_SCALE; mc.x = _arg2; mc.y = _arg3; m_w_2 = ((37 / 2) * Constants.GAME_SCALE); m_h_2 = ((25 / 2) * Constants.GAME_SCALE); initBody(); addChild(mc); m_body.m_userData = mc; } override protected function onUpdate():void{ } override protected function initBody():void{ m_sd = new b2PolygonDef(); m_sd.SetAsBox((m_w_2 / Constants.SCALE), (m_h_2 / Constants.SCALE)); m_sd.density = 20; m_bd.linearDamping = 11; m_bd.angularDamping = 1; m_bd.position.Set((m_start_x / Constants.SCALE), (m_start_y / Constants.SCALE)); m_body = m_world.CreateBody(m_bd); m_body.CreateShape(m_sd); m_body.SetMassFromShapes(); m_body.SetAngularVelocity(10); } override protected function onTouch():void{ m_hero.hit(5); } } }//package GameObjects.FallingItems
Section 97
//SpaceJunk1 (GameObjects.FallingItems.SpaceJunk1) package GameObjects.FallingItems { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import GameObjects.*; public class SpaceJunk1 extends DamageItem { public function SpaceJunk1(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Hero, _arg5:Level){ super(_arg1, _arg2, _arg3, _arg4, _arg5); mc = new mc_spacejunk1(); mc.scaleX = Constants.GAME_SCALE; mc.scaleY = Constants.GAME_SCALE; mc.x = _arg2; mc.y = _arg3; m_w_2 = ((23 / 2) * Constants.GAME_SCALE); m_h_2 = ((19 / 2) * Constants.GAME_SCALE); initBody(); addChild(mc); m_body.m_userData = mc; } override protected function onUpdate():void{ } override protected function initBody():void{ m_sd = new b2PolygonDef(); m_sd.SetAsBox((m_w_2 / Constants.SCALE), (m_h_2 / Constants.SCALE)); m_sd.density = 20; m_bd.linearDamping = 11; m_bd.angularDamping = 1; m_bd.position.Set((m_start_x / Constants.SCALE), (m_start_y / Constants.SCALE)); m_body = m_world.CreateBody(m_bd); m_body.CreateShape(m_sd); m_body.SetMassFromShapes(); m_body.SetAngularVelocity(10); } override protected function onTouch():void{ m_hero.hit(5); } } }//package GameObjects.FallingItems
Section 98
//SpaceJunk2 (GameObjects.FallingItems.SpaceJunk2) package GameObjects.FallingItems { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import GameObjects.*; public class SpaceJunk2 extends DamageItem { public function SpaceJunk2(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Hero, _arg5:Level){ super(_arg1, _arg2, _arg3, _arg4, _arg5); mc = new mc_spacejunk2(); mc.scaleX = Constants.GAME_SCALE; mc.scaleY = Constants.GAME_SCALE; mc.x = _arg2; mc.y = _arg3; m_w_2 = ((55 / 2) * Constants.GAME_SCALE); m_h_2 = ((30 / 2) * Constants.GAME_SCALE); initBody(); addChild(mc); m_body.m_userData = mc; } override protected function onUpdate():void{ } override protected function initBody():void{ m_sd = new b2PolygonDef(); m_sd.SetAsBox((m_w_2 / Constants.SCALE), (m_h_2 / Constants.SCALE)); m_sd.density = 20; m_bd.linearDamping = 11; m_bd.angularDamping = 1; m_bd.position.Set((m_start_x / Constants.SCALE), (m_start_y / Constants.SCALE)); m_body = m_world.CreateBody(m_bd); m_body.CreateShape(m_sd); m_body.SetMassFromShapes(); m_body.SetAngularVelocity(10); } override protected function onTouch():void{ m_hero.hit(9); } } }//package GameObjects.FallingItems
Section 99
//BasicItem (GameObjects.LevelItems.BasicItem) package GameObjects.LevelItems { import flash.display.*; import GameObjects.*; public class BasicItem extends MovieClip { protected var m_mc:MovieClip; protected var m_hero:Hero; protected var m_level:Level; protected var m_was_touched:Boolean;// = false public function BasicItem(_arg1:Number, _arg2:Number, _arg3:Hero, _arg4:Level){ m_hero = _arg3; m_level = _arg4; if (m_mc != null){ m_mc.x = _arg1; m_mc.y = _arg2; m_mc.scaleX = Constants.GAME_SCALE; m_mc.scaleY = Constants.GAME_SCALE; addChild(m_mc); }; } protected function onTouch():void{ } public function getX():Number{ return (m_mc.x); } public function getY():Number{ return (m_mc.y); } public function update():void{ onUpdate(); if (m_hero.hitTestObject(m_mc)){ touch(); }; } protected function onMoveUp(_arg1:Number):void{ m_mc.y = (m_mc.y - _arg1); } protected function onUpdate():void{ } public function wasTouched():Boolean{ return (m_was_touched); } public function moveUp(_arg1:Number):void{ onMoveUp(_arg1); } public function touch():void{ if (!m_was_touched){ m_was_touched = true; onTouch(); }; } } }//package GameObjects.LevelItems
Section 100
//ItemBonus (GameObjects.LevelItems.ItemBonus) package GameObjects.LevelItems { import flash.events.*; import flash.display.*; import GameObjects.*; import flash.utils.*; import flash.media.*; public class ItemBonus extends BasicItem { protected var m_is_showing:Boolean;// = false protected var m_time:Number;// = 10000 protected var m_work_timer:Timer; protected var m_is_hiding:Boolean;// = false protected var m_mc_bg:MovieClip; protected var m_working:Boolean;// = false public function ItemBonus(_arg1:Number, _arg2:Number, _arg3:Hero, _arg4:Level){ super(_arg1, _arg2, _arg3, _arg4); } override protected function onTouch():void{ var _local1:Sound = new snd_bonus_get(); _local1.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 0.3))); GameProfile.getInstance().achievements_stats["bonuses_on_level"] = (GameProfile.getInstance().achievements_stats["bonuses_on_level"] + 1); m_mc.gotoAndPlay(1); m_mc.addEventListener(Event.ENTER_FRAME, onGlowUpdate); onStartEffect(); } override protected function onUpdate():void{ var _local1:Number; if (((m_working) && (!((m_mc_bg == null))))){ _local1 = 0.05; if (m_is_showing){ if (m_mc_bg.alpha < 1){ m_mc_bg.alpha = (m_mc_bg.alpha + _local1); if (m_mc_bg.alpha >= 1){ m_mc_bg.alpha = 1; m_is_showing = false; }; }; }; if (m_is_hiding){ if (m_mc_bg.alpha > 0){ m_mc_bg.alpha = (m_mc_bg.alpha - _local1); if (m_mc_bg.alpha <= 0){ m_mc_bg.alpha = 0; m_is_hiding = false; m_working = false; m_level.removeBonus(); if (m_mc_bg.parent != null){ m_mc_bg.parent.removeChild(m_mc_bg); }; }; }; }; }; } protected function onEndEffect():void{ m_is_hiding = true; } protected function onStartEffect():void{ m_level.setBonusBG(m_mc_bg); m_level.setBonus(this); m_work_timer.start(); m_is_showing = true; m_working = true; } private function onGlowUpdate(_arg1:Event):void{ if (m_mc.currentFrame == m_mc.totalFrames){ m_mc.removeEventListener(Event.ENTER_FRAME, onGlowUpdate); if (parent != null){ parent.removeChild(this); }; }; } public function remove():void{ m_work_timer.stop(); m_working = false; m_level.removeBonus(); onEndEffect(); if (m_mc_bg.parent != null){ m_mc_bg.parent.removeChild(m_mc_bg); }; } } }//package GameObjects.LevelItems
Section 101
//ItemBonusHypno (GameObjects.LevelItems.ItemBonusHypno) package GameObjects.LevelItems { import flash.events.*; import GameObjects.*; import flash.utils.*; public class ItemBonusHypno extends ItemBonus { public function ItemBonusHypno(_arg1:Number, _arg2:Number, _arg3:Hero, _arg4:Level){ var _x = _arg1; var _y = _arg2; var _hero = _arg3; var _level = _arg4; m_mc = new mc_hypno(); m_mc.gotoAndStop(1); m_mc_bg = new mc_bg_hypno(); m_mc_bg.alpha = 0; m_work_timer = new Timer(10000, 1); m_work_timer.addEventListener(TimerEvent.TIMER_COMPLETE, function (_arg1:TimerEvent):void{ onEndEffect(); }); super(_x, _y, _hero, _level); } override protected function onStartEffect():void{ super.onStartEffect(); m_hero.showSpyral(); } } }//package GameObjects.LevelItems
Section 102
//ItemBonusStarfall (GameObjects.LevelItems.ItemBonusStarfall) package GameObjects.LevelItems { import flash.events.*; import Box2D.Common.Math.*; import GameObjects.*; import flash.utils.*; public class ItemBonusStarfall extends ItemBonus { public function ItemBonusStarfall(_arg1:Number, _arg2:Number, _arg3:Hero, _arg4:Level){ var _x = _arg1; var _y = _arg2; var _hero = _arg3; var _level = _arg4; m_mc = new mc_starfall(); m_mc.gotoAndStop(1); m_mc_bg = new mc_bg_starfall(); m_mc_bg.alpha = 0; m_work_timer = new Timer(10000, 1); m_work_timer.addEventListener(TimerEvent.TIMER_COMPLETE, function (_arg1:TimerEvent):void{ onEndEffect(); }); super(_x, _y, _hero, _level); } override protected function onUpdate():void{ var _local1:ItemStar; super.onUpdate(); if (((m_working) && (!((m_level == null))))){ if (Math.round(b2Math.b2RandomRange(0, 1000)) < 50){ _local1 = new ItemStar(b2Math.b2RandomRange(50, (400 - 50)), -70, m_hero, m_level); m_level.getFallingStarsList().push(_local1); m_level.addChild(_local1); }; }; } } }//package GameObjects.LevelItems
Section 103
//ItemBonusTimeSlow (GameObjects.LevelItems.ItemBonusTimeSlow) package GameObjects.LevelItems { import flash.events.*; import GameObjects.*; import flash.utils.*; public class ItemBonusTimeSlow extends ItemBonus { public function ItemBonusTimeSlow(_arg1:Number, _arg2:Number, _arg3:Hero, _arg4:Level){ var _x = _arg1; var _y = _arg2; var _hero = _arg3; var _level = _arg4; m_mc = new mc_slow(); m_mc.gotoAndStop(1); m_mc_bg = new mc_bg_slow(); m_mc_bg.alpha = 0; m_work_timer = new Timer(10000, 1); m_work_timer.addEventListener(TimerEvent.TIMER_COMPLETE, function (_arg1:TimerEvent):void{ onEndEffect(); }); super(_x, _y, _hero, _level); } override protected function onStartEffect():void{ super.onStartEffect(); m_level.setPlatformsSpeed((1.3 * Constants.GAME_SCALE)); } override protected function onEndEffect():void{ super.onEndEffect(); m_level.resetPlatformsSpeed(); } } }//package GameObjects.LevelItems
Section 104
//ItemFuel (GameObjects.LevelItems.ItemFuel) package GameObjects.LevelItems { import flash.events.*; import GameObjects.*; import flash.media.*; public class ItemFuel extends BasicItem { public function ItemFuel(_arg1:Number, _arg2:Number, _arg3:Hero, _arg4:Level){ m_mc = new mc_fuel(); m_mc.gotoAndStop(1); super(_arg1, _arg2, _arg3, _arg4); } override protected function onTouch():void{ var _local1:Sound = new snd_get_jet(); _local1.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 0.3))); m_mc.gotoAndPlay(1); m_mc.addEventListener(Event.ENTER_FRAME, onGlowUpdate); } private function onGlowUpdate(_arg1:Event):void{ if (m_mc.currentFrame == m_mc.totalFrames){ GameProfile.getInstance().achievements_stats["jet_on_level"] = (GameProfile.getInstance().achievements_stats["jet_on_level"] + 1); m_hero.addJetFuel(); m_mc.removeEventListener(Event.ENTER_FRAME, onGlowUpdate); if (parent != null){ parent.removeChild(this); }; }; } } }//package GameObjects.LevelItems
Section 105
//ItemHealth (GameObjects.LevelItems.ItemHealth) package GameObjects.LevelItems { import flash.events.*; import GameObjects.*; import flash.media.*; public class ItemHealth extends BasicItem { public function ItemHealth(_arg1:Number, _arg2:Number, _arg3:Hero, _arg4:Level){ m_mc = new mc_health(); m_mc.gotoAndStop(1); super(_arg1, _arg2, _arg3, _arg4); } override protected function onTouch():void{ var _local2:Sound; var _local1:Sound = new snd_get_jet(); _local1.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 0.3))); if (m_hero.getHealthValue() <= 30){ _local2 = new snd_voice_thank(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1.3))); }; m_mc.gotoAndPlay(1); m_mc.addEventListener(Event.ENTER_FRAME, onGlowUpdate); } private function onGlowUpdate(_arg1:Event):void{ if (m_mc.currentFrame == m_mc.totalFrames){ GameProfile.getInstance().achievements_stats["health_on_level"] = (GameProfile.getInstance().achievements_stats["health_on_level"] + 1); m_hero.addHealth(); m_mc.removeEventListener(Event.ENTER_FRAME, onGlowUpdate); if (parent != null){ parent.removeChild(this); }; }; } } }//package GameObjects.LevelItems
Section 106
//ItemStar (GameObjects.LevelItems.ItemStar) package GameObjects.LevelItems { import flash.events.*; import Box2D.Common.Math.*; import GameObjects.*; import flash.media.*; public class ItemStar extends BasicItem { private var m_falling_speed:Number; public function ItemStar(_arg1:Number, _arg2:Number, _arg3:Hero, _arg4:Level){ m_mc = new mc_star(); m_falling_speed = Math.floor(b2Math.b2RandomRange(2, 6)); super(_arg1, _arg2, _arg3, _arg4); } override protected function onTouch():void{ var _local1:Sound = new snd_star_collect(); _local1.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 0.1))); m_mc.gotoAndPlay(1); m_mc.addEventListener(Event.ENTER_FRAME, onGlowUpdate); } public function remove():void{ if (parent != null){ parent.removeChild(this); }; } private function onGlowUpdate(_arg1:Event):void{ if (m_mc.currentFrame == m_mc.totalFrames){ m_level.getStarsPanel().addStar(); m_mc.removeEventListener(Event.ENTER_FRAME, onGlowUpdate); if (parent != null){ parent.removeChild(this); }; }; } public function fall():void{ if (m_hero.hitTestObject(m_mc)){ touch(); }; m_mc.y = (m_mc.y + (m_falling_speed * Constants.GAME_SCALE)); if (m_mc.y > (500 + 100)){ if (parent != null){ parent.removeChild(this); }; }; } } }//package GameObjects.LevelItems
Section 107
//BasePlatform (GameObjects.Platforms.BasePlatform) package GameObjects.Platforms { import flash.events.*; import States.*; import flash.display.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import GameObjects.*; import flash.text.*; import flash.media.*; public class BasePlatform extends MovingItem { private var m_score_color:Array; protected var m_color:Number; private var m_scores:MovieClip; protected var m_allowed_colors:Number; public function BasePlatform(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Hero, _arg5:Level, _arg6:Number=3){ m_score_color = [150, 50, 200]; super(_arg1, _arg2, _arg3, _arg4, _arg5); m_hero = _arg4; m_level = _arg5; m_allowed_colors = _arg6; } override protected function onUpdate():void{ super.onUpdate(); if (((!((m_scores == null))) && (!((mc.parent == null))))){ m_scores.x = (mc.x - 70); m_scores.y = (mc.y - 15); }; } public function getColor():Number{ return ((mc["mc_color"] as MovieClip).currentFrame); } protected function generateColor():void{ m_color = Math.round(b2Math.b2RandomRange(1, m_allowed_colors)); if (mc != null){ if (mc["mc_glow"] != null){ (mc["mc_glow"] as MovieClip).gotoAndStop(1); }; if (mc["mc_color"] != null){ (mc["mc_color"] as MovieClip).gotoAndStop(m_color); }; }; } private function onGlowUpdate(_arg1:Event):void{ if ((mc["mc_glow"] as MovieClip).currentFrame == 7){ if (mc["mc_color"] != null){ (mc["mc_color"] as MovieClip).gotoAndStop(4); }; (mc["mc_glow"] as MovieClip).removeEventListener(Event.ENTER_FRAME, onGlowUpdate); }; } override public function touch():void{ var _local1:Number; var _local2:Sound; var _local3:Number; if (!m_was_touched){ GameProfile.getInstance().total_platforms_used++; m_was_touched = true; if (mc["mc_color"] != null){ m_level.getComboPanel().addBlock(this); _local1 = m_level.getComboPanel().getItemsCount(); if (mc["mc_glow"] != null){ _local2 = new snd_platform(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 2))); m_scores = new mc_platform_score(); m_scores.x = (mc.x - 70); m_scores.y = (mc.y - 15); m_level.addChild(m_scores); if (getColor() == 1){ GameProfile.getInstance().setStat("green_max", _local1); }; if (getColor() == 2){ GameProfile.getInstance().setStat("yellow_max", _local1); }; if (getColor() == 3){ GameProfile.getInstance().setStat("blue_max", _local1); }; _local3 = (_local1 * m_score_color[(getColor() - 1)]); (m_scores["m_anim"]["m_text"]["tf_score"] as TextField).text = ("+" + _local3); (m_scores["m_anim"]["m_mask"] as MovieClip).gotoAndStop(getColor()); GameProfile.getInstance().score = (GameProfile.getInstance().score + _local3); GamePlayState.getInstance().getGUI().updateScore(); (mc["mc_glow"] as MovieClip).gotoAndPlay(1); (mc["mc_glow"] as MovieClip).addEventListener(Event.ENTER_FRAME, onGlowUpdate); }; }; }; onTouch(); } } }//package GameObjects.Platforms
Section 108
//DisappearingPlatform (GameObjects.Platforms.DisappearingPlatform) package GameObjects.Platforms { import flash.events.*; import flash.display.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import GameObjects.*; import flash.utils.*; public class DisappearingPlatform extends BasePlatform { private var m_has_been_touched:Boolean;// = false private var m_sd:b2PolygonDef; private var m_step_timer:Timer; protected var m_h_2:Number; private var m_cur_phase:Number;// = 0 protected var m_w_2:Number; public function DisappearingPlatform(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Hero, _arg5:Level, _arg6:Number=3){ m_step_timer = new Timer(100, 6); super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); mc = new mc_block2(); m_w_2 = ((132 / 2) * Constants.GAME_SCALE); m_h_2 = ((24 / 2) * Constants.GAME_SCALE); initBody(); addChild(mc); mc.x = _arg2; mc.y = _arg3; mc.scaleX = Constants.GAME_SCALE; mc.scaleY = Constants.GAME_SCALE; m_body.m_userData = mc; m_step_timer.addEventListener(TimerEvent.TIMER, onTimerTick); var _local7:Number = 0; while (_local7 != 6) { (mc[("mc_light" + _local7)] as MovieClip).gotoAndStop(1); _local7++; }; generateColor(); } override protected function onTouch():void{ if (!m_has_been_touched){ m_has_been_touched = true; m_step_timer.start(); }; } override protected function initBody():void{ m_sd = new b2PolygonDef(); m_sd.SetAsBox((m_w_2 / Constants.SCALE), (m_h_2 / Constants.SCALE)); m_sd.density = 0; m_sd.friction = 0.01; m_bd.position.Set((m_start_x / Constants.SCALE), (m_start_y / Constants.SCALE)); m_body = m_world.CreateBody(m_bd); m_body.CreateShape(m_sd); m_body.SetMassFromShapes(); } private function onTimerTick(_arg1:TimerEvent):void{ (mc[("mc_light" + m_cur_phase++)] as MovieClip).gotoAndStop(2); if (m_cur_phase == 6){ m_world.DestroyBody(m_body); if (parent != null){ parent.removeChild(this); }; }; } } }//package GameObjects.Platforms
Section 109
//FinishPlatform (GameObjects.Platforms.FinishPlatform) package GameObjects.Platforms { import States.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import GameObjects.*; public class FinishPlatform extends BasePlatform { private var m_has_been_touched:Boolean;// = false private var m_sd:b2PolygonDef; protected var m_w_2:Number; protected var m_h_2:Number; public function FinishPlatform(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Hero, _arg5:Level){ super(_arg1, _arg2, _arg3, _arg4, _arg5); mc = new mc_block_finish(); m_w_2 = ((460 / 2) * Constants.GAME_SCALE); m_h_2 = ((140 / 2) * Constants.GAME_SCALE); initBody(); addChild(mc); mc.x = _arg2; mc.y = _arg3; mc.scaleX = Constants.GAME_SCALE; mc.scaleY = Constants.GAME_SCALE; m_body.m_userData = mc; } override protected function onTouch():void{ if (!m_has_been_touched){ m_has_been_touched = true; GamePlayState.getInstance().stopMusic(); StateManager.getInstance().pushState(LevelCompleteState.getInstance()); StateManager.getInstance().pushState(ScoreSubmitState.getInstance()); }; } override protected function initBody():void{ m_sd = new b2PolygonDef(); m_sd.SetAsBox((m_w_2 / Constants.SCALE), (m_h_2 / Constants.SCALE)); m_sd.density = 0; m_sd.friction = 0.01; m_bd.position.Set((m_start_x / Constants.SCALE), (m_start_y / Constants.SCALE)); m_body = m_world.CreateBody(m_bd); m_body.CreateShape(m_sd); m_body.SetMassFromShapes(); } } }//package GameObjects.Platforms
Section 110
//MagnetPlatform (GameObjects.Platforms.MagnetPlatform) package GameObjects.Platforms { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import GameObjects.*; public class MagnetPlatform extends BasePlatform { private var m_sd:b2PolygonDef; protected var m_w_2:Number; protected var m_h_2:Number; public function MagnetPlatform(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Hero, _arg5:Level, _arg6:Number=3){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); mc = new mc_block6(); m_w_2 = ((132 / 2) * Constants.GAME_SCALE); m_h_2 = ((24 / 2) * Constants.GAME_SCALE); initBody(); addChild(mc); mc.x = _arg2; mc.y = _arg3; mc.scaleX = Constants.GAME_SCALE; mc.scaleY = Constants.GAME_SCALE; m_body.m_userData = mc; generateColor(); } override protected function initBody():void{ m_sd = new b2PolygonDef(); m_sd.SetAsBox((m_w_2 / Constants.SCALE), (m_h_2 / Constants.SCALE)); m_sd.density = 0; m_sd.friction = 0.01; m_bd.position.Set((m_start_x / Constants.SCALE), (m_start_y / Constants.SCALE)); m_body = m_world.CreateBody(m_bd); m_body.CreateShape(m_sd); m_body.SetMassFromShapes(); } override protected function onTouch():void{ var _local1:Number; super.onTouch(); if (!m_hero.falling){ if (((((((((m_hero.body.GetPosition().y * Constants.SCALE) < mc.y)) && (((m_hero.body.GetPosition().y * Constants.SCALE) > (mc.y - 150))))) && (((m_hero.body.GetPosition().x * Constants.SCALE) > (mc.x - m_w_2))))) && (((m_hero.body.GetPosition().x * Constants.SCALE) < (mc.x + m_w_2))))){ _local1 = (m_hero.sideForce * 0.25); if (m_hero.cur_anim == "go_left"){ m_hero.body.ApplyImpulse(new b2Vec2((_local1 / 6), 0), m_hero.body.GetPosition()); }; if (m_hero.cur_anim == "go_right"){ m_hero.body.ApplyImpulse(new b2Vec2((-(_local1) / 6), 0), m_hero.body.GetPosition()); }; }; }; } } }//package GameObjects.Platforms
Section 111
//MovingItem (GameObjects.Platforms.MovingItem) package GameObjects.Platforms { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import GameObjects.*; public class MovingItem extends PhysicalBody { protected var m_hero:Hero; protected var m_level:Level; protected var m_was_touched:Boolean;// = false public function MovingItem(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Hero, _arg5:Level){ super(_arg1, _arg2, _arg3); m_hero = _arg4; m_level = _arg5; } protected function onTouch():void{ } protected function onRemove():void{ m_level.addToDestroyList(m_body); } protected function onUpdate():void{ } public function update():void{ onUpdate(); } public function remove():void{ onRemove(); } public function moveUp(_arg1:Number):void{ onMoveUp(_arg1); } public function wasTouched():Boolean{ return (m_was_touched); } protected function onMoveUp(_arg1:Number):void{ var _local2:Number = m_body.GetAngle(); m_body.SetXForm(new b2Vec2(m_body.GetPosition().x, (m_body.GetPosition().y - (_arg1 / Constants.SCALE))), _local2); } public function touch():void{ if (!m_was_touched){ m_was_touched = true; onTouch(); }; } } }//package GameObjects.Platforms
Section 112
//MovingLeftPlatform (GameObjects.Platforms.MovingLeftPlatform) package GameObjects.Platforms { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import GameObjects.*; public class MovingLeftPlatform extends BasePlatform { private var m_sd:b2PolygonDef; protected var m_h_2:Number; private var m_nominal_force:Number; protected var m_w_2:Number; private var m_start_moving:Boolean;// = false public function MovingLeftPlatform(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Hero, _arg5:Level, _arg6:Number=3){ m_nominal_force = (6000 * Constants.GAME_SCALE); super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); mc = new mc_block4(); m_w_2 = ((132 / 2) * Constants.GAME_SCALE); m_h_2 = ((24 / 2) * Constants.GAME_SCALE); initBody(); addChild(mc); mc.x = _arg2; mc.y = _arg3; mc.scaleX = Constants.GAME_SCALE; mc.scaleY = Constants.GAME_SCALE; m_body.m_userData = mc; generateColor(); } override protected function onTouch():void{ m_start_moving = true; } override protected function onUpdate():void{ var _local1:Number; super.onUpdate(); if (m_start_moving){ _local1 = m_body.GetAngle(); m_body.SetXForm(new b2Vec2((m_body.GetPosition().x - (5 / Constants.SCALE)), m_body.GetPosition().y), _local1); }; } override protected function initBody():void{ m_sd = new b2PolygonDef(); m_sd.SetAsBox((m_w_2 / Constants.SCALE), (m_h_2 / Constants.SCALE)); m_sd.density = 0; m_sd.friction = 0.01; m_bd.position.Set((m_start_x / Constants.SCALE), (m_start_y / Constants.SCALE)); m_body = m_world.CreateBody(m_bd); m_body.CreateShape(m_sd); m_body.SetMassFromShapes(); } } }//package GameObjects.Platforms
Section 113
//MovingRightPlatform (GameObjects.Platforms.MovingRightPlatform) package GameObjects.Platforms { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import GameObjects.*; public class MovingRightPlatform extends BasePlatform { private var m_sd:b2PolygonDef; protected var m_h_2:Number; private var m_nominal_force:Number; protected var m_w_2:Number; private var m_start_moving:Boolean;// = false public function MovingRightPlatform(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Hero, _arg5:Level, _arg6:Number=3){ m_nominal_force = (6000 * Constants.GAME_SCALE); super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); mc = new mc_block3(); m_w_2 = ((132 / 2) * Constants.GAME_SCALE); m_h_2 = ((24 / 2) * Constants.GAME_SCALE); initBody(); addChild(mc); mc.x = _arg2; mc.y = _arg3; mc.scaleX = Constants.GAME_SCALE; mc.scaleY = Constants.GAME_SCALE; m_body.m_userData = mc; generateColor(); } override protected function onTouch():void{ m_start_moving = true; } override protected function onUpdate():void{ var _local1:Number; super.onUpdate(); if (m_start_moving){ _local1 = m_body.GetAngle(); m_body.SetXForm(new b2Vec2((m_body.GetPosition().x + (5 / Constants.SCALE)), m_body.GetPosition().y), _local1); }; } override protected function initBody():void{ m_sd = new b2PolygonDef(); m_sd.SetAsBox((m_w_2 / Constants.SCALE), (m_h_2 / Constants.SCALE)); m_sd.density = 0; m_sd.friction = 0.01; m_bd.position.Set((m_start_x / Constants.SCALE), (m_start_y / Constants.SCALE)); m_body = m_world.CreateBody(m_bd); m_body.CreateShape(m_sd); m_body.SetMassFromShapes(); } } }//package GameObjects.Platforms
Section 114
//PlanePlatform (GameObjects.Platforms.PlanePlatform) package GameObjects.Platforms { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import GameObjects.*; public class PlanePlatform extends BasePlatform { private var m_sd:b2PolygonDef; protected var m_w_2:Number; protected var m_h_2:Number; public function PlanePlatform(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Hero, _arg5:Level, _arg6:Number=3){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); mc = new mc_block0(); m_w_2 = ((132 / 2) * Constants.GAME_SCALE); m_h_2 = ((24 / 2) * Constants.GAME_SCALE); initBody(); addChild(mc); mc.x = _arg2; mc.y = _arg3; mc.scaleX = Constants.GAME_SCALE; mc.scaleY = Constants.GAME_SCALE; m_body.m_userData = mc; generateColor(); } override protected function initBody():void{ m_sd = new b2PolygonDef(); m_sd.SetAsBox((m_w_2 / Constants.SCALE), (m_h_2 / Constants.SCALE)); m_sd.density = 0; m_sd.friction = 0.01; m_bd.position.Set((m_start_x / Constants.SCALE), (m_start_y / Constants.SCALE)); m_body = m_world.CreateBody(m_bd); m_body.CreateShape(m_sd); m_body.SetMassFromShapes(); } } }//package GameObjects.Platforms
Section 115
//PushingPlatform (GameObjects.Platforms.PushingPlatform) package GameObjects.Platforms { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import GameObjects.*; import flash.media.*; public class PushingPlatform extends BasePlatform { private var m_sd:b2PolygonDef; protected var m_w_2:Number; protected var m_h_2:Number; public function PushingPlatform(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Hero, _arg5:Level, _arg6:Number=3){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); mc = new mc_block5(); m_w_2 = ((132 / 2) * Constants.GAME_SCALE); m_h_2 = ((24 / 2) * Constants.GAME_SCALE); initBody(); addChild(mc); mc.x = _arg2; mc.y = _arg3; mc.scaleX = Constants.GAME_SCALE; mc.scaleY = Constants.GAME_SCALE; m_body.m_userData = mc; generateColor(); } override protected function initBody():void{ m_sd = new b2PolygonDef(); m_sd.SetAsBox((m_w_2 / Constants.SCALE), (m_h_2 / Constants.SCALE)); m_sd.density = 0; m_sd.friction = 0.01; m_bd.position.Set((m_start_x / Constants.SCALE), (m_start_y / Constants.SCALE)); m_body = m_world.CreateBody(m_bd); m_body.CreateShape(m_sd); m_body.SetMassFromShapes(); } override protected function onTouch():void{ var _local1:Sound; var _local2:Number; super.onTouch(); if (!m_hero.falling){ if (((((((((m_hero.body.GetPosition().y * Constants.SCALE) < mc.y)) && (((m_hero.body.GetPosition().y * Constants.SCALE) > (mc.y - 150))))) && (((m_hero.body.GetPosition().x * Constants.SCALE) > (mc.x - m_w_2))))) && (((m_hero.body.GetPosition().x * Constants.SCALE) < (mc.x + m_w_2))))){ _local1 = new snd_poing(); _local1.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 0.7))); _local2 = b2Math.b2RandomRange((1500 * Constants.GAME_SCALE), (2300 * Constants.GAME_SCALE)); m_hero.body.ApplyImpulse(new b2Vec2(0, (-(_local2) / 6)), m_hero.body.GetPosition()); }; }; } } }//package GameObjects.Platforms
Section 116
//RotatingPlatform (GameObjects.Platforms.RotatingPlatform) package GameObjects.Platforms { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import GameObjects.*; public class RotatingPlatform extends BasePlatform { private var m_sd:b2PolygonDef; protected var m_w_2:Number; protected var m_h_2:Number; private var m_axis:b2Body; public function RotatingPlatform(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Hero, _arg5:Level, _arg6:Number=3){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); mc = new mc_block1(); m_w_2 = ((132 / 2) * Constants.GAME_SCALE); m_h_2 = ((24 / 2) * Constants.GAME_SCALE); initBody(); addChild(mc); mc.x = _arg2; mc.y = _arg3; mc.scaleX = Constants.GAME_SCALE; mc.scaleY = Constants.GAME_SCALE; m_body.m_userData = mc; generateColor(); } override protected function initBody():void{ m_sd = new b2PolygonDef(); m_sd.SetAsBox((m_w_2 / Constants.SCALE), (m_h_2 / Constants.SCALE)); m_sd.density = 10; m_sd.friction = 0.01; m_bd.position.Set((m_start_x / Constants.SCALE), (m_start_y / Constants.SCALE)); m_body = m_world.CreateBody(m_bd); m_body.CreateShape(m_sd); m_body.SetMassFromShapes(); m_sd = new b2PolygonDef(); m_sd.SetAsBox((0.1 / Constants.SCALE), (0.1 / Constants.SCALE)); m_sd.density = 0; m_sd.friction = 0.01; m_bd.position.Set((m_start_x / Constants.SCALE), (m_start_y / Constants.SCALE)); m_axis = m_world.CreateBody(m_bd); m_axis.CreateShape(m_sd); m_axis.SetMassFromShapes(); var _local1:b2RevoluteJointDef = new b2RevoluteJointDef(); var _local2:b2Vec2 = new b2Vec2((m_start_x / Constants.SCALE), (m_start_y / Constants.SCALE)); _local1.Initialize(m_axis, m_body, _local2); _local1.collideConnected = false; _local1.lowerAngle = (-0.5 * 3.14); _local1.upperAngle = (0.25 * 14); _local1.enableLimit = true; _local1.maxMotorTorque = 300; _local1.motorSpeed = 0; _local1.enableMotor = true; m_world.CreateJoint(_local1); } override protected function onMoveUp(_arg1:Number):void{ var _local2:Number = m_body.GetAngle(); m_body.SetXForm(new b2Vec2(m_body.GetPosition().x, (m_body.GetPosition().y - (_arg1 / Constants.SCALE))), _local2); m_axis.SetXForm(new b2Vec2(m_axis.GetPosition().x, (m_axis.GetPosition().y - (_arg1 / Constants.SCALE))), _local2); } override protected function onRemove():void{ m_level.addToDestroyList(m_body); m_level.addToDestroyList(m_axis); } } }//package GameObjects.Platforms
Section 117
//StartPlatform (GameObjects.Platforms.StartPlatform) package GameObjects.Platforms { import flash.events.*; import flash.display.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import GameObjects.*; import flash.utils.*; public class StartPlatform extends BasePlatform { private var m_has_been_touched:Boolean;// = false private var m_sd:b2PolygonDef; private var m_step_timer:Timer; protected var m_h_2:Number; private var m_cur_phase:Number;// = 0 private var m_start_counter:MovieClip; protected var m_w_2:Number; public function StartPlatform(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Hero, _arg5:Level){ m_step_timer = new Timer(200, 6); super(_arg1, _arg2, _arg3, _arg4, _arg5); mc = new mc_block_start(); m_w_2 = ((132 / 2) * Constants.GAME_SCALE); m_h_2 = ((24 / 2) * Constants.GAME_SCALE); initBody(); addChild(mc); mc.x = _arg2; mc.y = _arg3; mc.scaleX = Constants.GAME_SCALE; mc.scaleY = Constants.GAME_SCALE; m_body.m_userData = mc; m_step_timer.addEventListener(TimerEvent.TIMER, onTimerTick); var _local6:Number = 0; while (_local6 != 6) { (mc[("mc_light" + _local6)] as MovieClip).gotoAndStop(1); _local6++; }; m_start_counter = new mc_start_counter(); m_start_counter.x = 200; m_start_counter.y = 250; m_level.addChild(m_start_counter); m_start_counter.gotoAndPlay(1); } override protected function onTouch():void{ if (!m_has_been_touched){ m_has_been_touched = true; m_step_timer.start(); }; } override protected function initBody():void{ m_sd = new b2PolygonDef(); m_sd.SetAsBox((m_w_2 / Constants.SCALE), (m_h_2 / Constants.SCALE)); m_sd.density = 0; m_sd.friction = 0.01; m_bd.position.Set((m_start_x / Constants.SCALE), (m_start_y / Constants.SCALE)); m_body = m_world.CreateBody(m_bd); m_body.CreateShape(m_sd); m_body.SetMassFromShapes(); } private function onTimerTick(_arg1:TimerEvent):void{ (mc[("mc_light" + m_cur_phase++)] as MovieClip).gotoAndStop(2); m_level.addChild(m_start_counter); if ((m_cur_phase % 2) == 0){ m_start_counter.gotoAndPlay((((m_cur_phase / 2) * 20) + 1)); }; if (m_cur_phase == 6){ m_level.isLevelStarted = true; m_world.DestroyBody(m_body); if (parent != null){ parent.removeChild(this); }; }; } } }//package GameObjects.Platforms
Section 118
//BonusBox (GameObjects.BonusBox) package GameObjects { import flash.events.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.utils.*; import flash.media.*; public class BonusBox extends PhysicalBody { private var m_sd:b2PolygonDef; protected var m_h_2:Number; private var m_level:Level; private var m_hero:Hero; private var m_was_touched:Boolean;// = false protected var m_w_2:Number; public function BonusBox(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Level, _arg5:Hero){ super(_arg1, _arg2, _arg3); m_level = _arg4; m_hero = _arg5; mc = new mc_bonusbox(); mc.x = _arg2; mc.y = _arg3; mc.scaleX = Constants.GAME_SCALE; mc.scaleY = Constants.GAME_SCALE; m_w_2 = ((43 / 2) * Constants.GAME_SCALE); m_h_2 = ((43 / 2) * Constants.GAME_SCALE); initBody(); addChild(mc); m_body.m_userData = mc; } override protected function initBody():void{ m_sd = new b2PolygonDef(); m_sd.SetAsBox((m_w_2 / Constants.SCALE), (m_h_2 / Constants.SCALE)); m_sd.density = 20; m_bd.linearDamping = 7; m_bd.angularDamping = 7; m_bd.position.Set((m_start_x / Constants.SCALE), (m_start_y / Constants.SCALE)); m_body = m_world.CreateBody(m_bd); m_body.CreateShape(m_sd); m_body.SetMassFromShapes(); } public function update():void{ m_body.ApplyImpulse(new b2Vec2(0, -1), m_body.GetPosition()); } public function touch():void{ var create_timer:Timer; if (!m_was_touched){ m_was_touched = true; mc.gotoAndPlay(2); create_timer = new Timer(100, 1); create_timer.addEventListener(TimerEvent.TIMER_COMPLETE, function (_arg1:TimerEvent):void{ var _local2:Sound = new snd_voice_holy(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1.2))); var _local3:BonusFromBox = new BonusFromBox(m_world, mc.x, mc.y, m_level, m_hero); m_level.addChild(_local3); }); create_timer.start(); }; } public function remove():void{ m_level.addToDestroyList(m_body); } } }//package GameObjects
Section 119
//BonusFromBox (GameObjects.BonusFromBox) package GameObjects { import flash.events.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; public class BonusFromBox extends PhysicalBody { private var m_sd:b2PolygonDef; protected var m_h_2:Number; private var m_hero:Hero; private var m_level:Level; protected var m_w_2:Number; public function BonusFromBox(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Level, _arg5:Hero){ super(_arg1, _arg2, _arg3); m_level = _arg4; m_hero = _arg5; var _local6:Number = Math.round(b2Math.b2RandomRange(0, 2)); switch (_local6){ case 0: mc = new mc_health_inbox(); m_hero.useHealthBonus(); break; case 1: mc = new mc_jet_inbox(); m_hero.useJetBonus(); break; case 2: mc = new mc_star_inbox(); m_level.getStarsPanel().addStars(250); break; }; mc.x = _arg2; mc.y = _arg3; mc.scaleX = Constants.GAME_SCALE; mc.scaleY = Constants.GAME_SCALE; m_w_2 = 25; m_h_2 = 25; initBody(); addChild(mc); m_body.m_userData = mc; addEventListener(Event.ENTER_FRAME, update); } override protected function initBody():void{ m_sd = new b2PolygonDef(); m_sd.SetAsBox((m_w_2 / Constants.SCALE), (m_h_2 / Constants.SCALE)); m_sd.density = 20; m_bd.linearDamping = 7; m_bd.angularDamping = 7; m_bd.position.Set((m_start_x / Constants.SCALE), (m_start_y / Constants.SCALE)); m_body = m_world.CreateBody(m_bd); m_body.CreateShape(m_sd); m_body.SetMassFromShapes(); var _local1:b2Vec2 = new b2Vec2(b2Math.b2RandomRange(-1, 1), -1); _local1.Normalize(); _local1.Multiply(1500); m_body.ApplyImpulse(_local1, m_body.GetPosition()); } private function update(_arg1:Event):void{ var _local2:Number = 0.05; if (mc.alpha > 0){ mc.alpha = (mc.alpha - _local2); if (mc.alpha <= 0){ mc.alpha = 0; m_level.addToDestroyList(m_body); }; }; } } }//package GameObjects
Section 120
//Hero (GameObjects.Hero) package GameObjects { import flash.events.*; import States.*; import GUI.*; import flash.display.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import GameObjects.Platforms.*; import flash.utils.*; import flash.media.*; public class Hero extends PhysicalBody { private var m_is_moving_right:Boolean;// = false private var m_side_force:Number;// = 470 private var m_cur_platform:BasePlatform; private var m_dead_head_color:Number;// = 3381708 private var m_cur_anim:String;// = "stand_front" protected var m_h_2:Number; private var m_head_color:Number;// = 7702609 private var m_is_attacking:Boolean;// = false private var m_jetpack:JetPack; private var m_sd:b2PolygonDef; private var m_health:HealthBar; private var m_prev_y:Number; private var m_is_dead:Boolean;// = false private var m_is_falling:Boolean;// = false private var m_shock_timer:Timer; private var m_body_color:Number;// = 0x999999 private var m_weapon_force:Number;// = 2000 protected var m_w_2:Number; private var m_base_head_color:Number;// = 7702609 private var m_is_health_bonus:Boolean;// = false private var m_is_blinking:Boolean;// = false private var m_jet_bonus_timer:Timer; private var m_is_jet_bonus:Boolean;// = false private var m_is_shocked:Boolean;// = false private var m_blink_timer:Timer; private var m_is_moving_left:Boolean;// = false private var m_up_force:Number;// = 940 private var m_health_bonus_timer:Timer; private var m_legs_color:Number;// = 0x333333 private var m_timer_atenna_use:Timer; private var m_timer_jet_blink:Timer; private var m_is_flying:Boolean;// = false private var m_eyes:MovieClip; public function Hero(_arg1:b2World, _arg2:Number, _arg3:Number){ var m_this:MovieClip; var _world = _arg1; var _x = _arg2; var _y = _arg3; m_shock_timer = new Timer(1000, 1); m_blink_timer = new Timer(1000, 1); m_health_bonus_timer = new Timer(15000, 1); m_jet_bonus_timer = new Timer(15000, 1); m_timer_jet_blink = new Timer(15000, 1); m_timer_atenna_use = new Timer(5000, 1000); super(_world, _x, _y); m_prev_y = _y; mc = new mc_hero_anim(); mc.scaleX = (0.4 * Constants.GAME_SCALE); mc.scaleY = (0.4 * Constants.GAME_SCALE); m_w_2 = ((57 / 2) * Constants.GAME_SCALE); m_h_2 = ((95 / 2) * Constants.GAME_SCALE); initBody(); addChild(mc); mc.gotoAndStop("stand_front"); legs_color = GameProfile.getInstance().colorl; body_color = GameProfile.getInstance().colorb; m_body.m_userData = mc; (mc["mc_smoke"] as MovieClip).visible = false; m_eyes = (mc["mc_eyes"] as MovieClip); mc["m_whirl"].visible = false; m_jetpack = new JetPack(); GamePlayState.getInstance().getGUI().addChild(m_jetpack); m_health = new HealthBar(); GamePlayState.getInstance().getGUI().addChild(m_health); m_shock_timer.addEventListener(TimerEvent.TIMER_COMPLETE, function (_arg1:TimerEvent):void{ m_is_shocked = false; }); m_blink_timer.addEventListener(TimerEvent.TIMER_COMPLETE, function (_arg1:TimerEvent):void{ m_is_blinking = false; mc.alpha = 1; }); m_jet_bonus_timer.addEventListener(TimerEvent.TIMER_COMPLETE, function (_arg1:TimerEvent):void{ m_is_jet_bonus = false; m_jetpack.setJetBonus(false); }); m_health_bonus_timer.addEventListener(TimerEvent.TIMER_COMPLETE, function (_arg1:TimerEvent):void{ m_is_health_bonus = false; mc["mc_shield"].visible = false; }); m_timer_jet_blink.addEventListener(TimerEvent.TIMER_COMPLETE, function (_arg1:TimerEvent):void{ }); m_this = this; m_timer_atenna_use.addEventListener(TimerEvent.TIMER, function (_arg1:TimerEvent):void{ var _local2:Number; if (mc["mc_antenna_animation"] != null){ _local2 = (GameProfile.getInstance().upgrades[5] + 1); var _local3 = m_this; _local3[("useAntenna" + _local2)](); (mc["mc_antenna_animation"] as MovieClip).gotoAndStop((GameProfile.getInstance().upgrades[5] + 1)); if (mc["mc_antenna_animation"]["mc"] != null){ (mc["mc_antenna_animation"]["mc"] as MovieClip).gotoAndPlay(1); }; }; }); } public function stopMovingRight():void{ m_is_moving_right = false; } public function useWeapon0():void{ var _local3:b2Vec2; var _local4:Number; var _local1:Sound = new snd_weapon0(); _local1.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 0.4))); var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (((!((_local2 == m_body))) && ((_local2.GetPosition().y < m_body.GetPosition().y)))){ _local3 = new b2Vec2((_local2.GetPosition().x - m_body.GetPosition().x), (_local2.GetPosition().y - m_body.GetPosition().y)); _local4 = ((1 / _local3.Length()) * m_weapon_force); _local3.Normalize(); _local3.Multiply(_local4); _local2.ApplyImpulse(_local3, _local2.GetPosition()); }; _local2 = _local2.m_next; }; } public function useWeapon1():void{ var _local3:b2Vec2; var _local4:Number; var _local1:Sound = new snd_weapon1(); _local1.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 0.6))); var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2 != m_body){ _local3 = new b2Vec2((_local2.GetPosition().x - m_body.GetPosition().x), (_local2.GetPosition().y - m_body.GetPosition().y)); _local4 = ((1 / _local3.Length()) * m_weapon_force); _local3.Normalize(); _local3.Multiply(_local4); _local2.ApplyImpulse(_local3, _local2.GetPosition()); }; _local2 = _local2.m_next; }; } public function useWeapon2():void{ var _local3:b2Vec2; var _local4:Number; var _local1:Sound = new snd_weapon2(); _local1.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 0.4))); var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2 != m_body){ _local3 = new b2Vec2((_local2.GetPosition().x - m_body.GetPosition().x), (_local2.GetPosition().y - m_body.GetPosition().y)); _local4 = ((1 / _local3.Length()) * m_weapon_force); _local3.Normalize(); _local3.Multiply(_local4); _local2.ApplyImpulse(_local3, _local2.GetPosition()); }; _local2 = _local2.m_next; }; } public function set body_color(_arg1:Number):void{ m_body_color = _arg1; } public function stopMovingLeft():void{ m_is_moving_left = false; } public function set upForce(_arg1:Number):void{ m_up_force = _arg1; } public function addJetFuel():void{ m_jetpack.addFuel(); } public function useHealthBonus():void{ m_is_health_bonus = true; m_health_bonus_timer.stop(); m_health_bonus_timer.start(); mc["mc_shield"].visible = true; } public function stopFlying():void{ m_is_flying = false; m_jetpack.stopFlight(); } public function fire():void{ hit(18); (mc["mc_smoke"] as MovieClip).visible = true; (mc["mc_smoke"] as MovieClip).gotoAndPlay(1); } public function getJetFuelValue():Number{ return (m_jetpack.getValue()); } public function getHealthValue():Number{ return (m_health.getValue()); } public function get head_color():Number{ return (m_head_color); } public function showSpyral():void{ if (mc["m_whirl"] != null){ mc["m_whirl"].visible = true; }; } public function moveUp():void{ var _local1:Number = m_up_force; if (m_jetpack.getValue() > 0){ if (!m_is_flying){ m_jetpack.startFlight(); }; m_body.ApplyImpulse(new b2Vec2(0, (-(_local1) / 6)), m_body.GetPosition()); m_is_flying = true; }; } public function reset():void{ legs_color = GameProfile.getInstance().colorl; body_color = GameProfile.getInstance().colorb; m_body.SetXForm(new b2Vec2((100 / Constants.SCALE), (100 / Constants.SCALE)), 0); sideForce = GameProfile.getInstance().getSideSpeed(); upForce = GameProfile.getInstance().getJetPackSpeed(); m_is_dead = false; m_jet_bonus_timer.stop(); m_health_bonus_timer.stop(); m_jetpack.setJetBonus(false); m_is_health_bonus = false; m_is_jet_bonus = false; mc["mc_shield"].visible = false; } public function get X():Number{ return ((m_body.GetPosition().x * Constants.SCALE)); } public function get Y():Number{ return ((m_body.GetPosition().y * Constants.SCALE)); } public function addHealth():void{ m_health.addhealth(); updateHeadColor(); } public function get platform():BasePlatform{ return (m_cur_platform); } public function atack():void{ if (((((!(m_is_shocked)) && (!(m_is_falling)))) && (!(m_is_flying)))){ setAnim(("weapon" + GameProfile.getInstance().upgrades[3])); m_is_attacking = true; }; } public function moveLeft():void{ var _local1:Number = m_side_force; m_body.ApplyImpulse(new b2Vec2((-(_local1) / 6), 0), m_body.GetPosition()); m_is_moving_left = true; if (!m_is_flying){ setAnim("go_left"); } else { setAnim("fly_left"); }; } public function get body_color():Number{ return (m_body_color); } public function set head_color(_arg1:Number):void{ m_head_color = _arg1; } public function get falling():Boolean{ return (m_is_falling); } public function hit(_arg1:Number):void{ var _local2:Sound; var _local3:Sound; if (!m_is_health_bonus){ _local2 = new snd_hit(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 0.7))); m_health.substractHealth(_arg1); updateHeadColor(); if (m_health.getValue() <= 0){ _local3 = new snd_voice_death(); _local3.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1.2))); GamePlayState.getInstance().stopMusic(); StateManager.getInstance().pushState(DeathState.getInstance()); StateManager.getInstance().pushState(ScoreSubmitState.getInstance()); }; if (((!(m_is_blinking)) && (!(m_is_shocked)))){ m_is_blinking = true; m_blink_timer.start(); }; }; } public function set legs_color(_arg1:Number):void{ m_legs_color = _arg1; } private function updateHeadColor():void{ var _local1 = (m_base_head_color >> 16); var _local2:int = ((m_base_head_color << 16) >>> 24); var _local3:int = ((m_base_head_color << 24) >>> 24); var _local4 = (m_dead_head_color >> 16); var _local5:int = ((m_dead_head_color << 16) >>> 24); var _local6:int = ((m_dead_head_color << 24) >>> 24); var _local7:int = (_local4 + (((_local1 - _local4) * m_health.getValue()) * 0.01)); var _local8:int = (_local5 + (((_local2 - _local5) * m_health.getValue()) * 0.01)); var _local9:int = (_local6 + (((_local3 - _local6) * m_health.getValue()) * 0.01)); m_head_color = ((_local9 | (_local7 << 16)) | (_local8 << 8)); } public function shock():void{ if (!m_is_shocked){ hit(15); setAnim("shock"); m_is_shocked = true; m_shock_timer.start(); }; } public function finishAtack():void{ m_is_attacking = false; if (m_is_falling){ m_is_falling = false; setAnim("fall_front"); m_is_falling = true; } else { setAnim("stand_front"); }; } public function setAnim(_arg1:String):void{ var _anim = _arg1; if (((((!((m_cur_anim == _anim))) && (!(m_is_shocked)))) && (!(m_is_attacking)))){ if (((((!(m_is_falling)) || (((m_is_falling) && ((_anim == "shock")))))) || (((m_is_falling) && (!((_anim.search("weapon") == -1))))))){ try { mc.gotoAndStop(_anim); m_cur_anim = _anim; if (((!((_anim.search("go") == -1))) && (!((mc["mc"] == null))))){ if (mc["mc"]["mc_antenna"] != null){ (mc["mc"]["mc_antenna"] as MovieClip).gotoAndStop((GameProfile.getInstance().upgrades[5] + 2)); }; } else { if (mc["mc_antenna"] != null){ (mc["mc_antenna"] as MovieClip).gotoAndStop((GameProfile.getInstance().upgrades[5] + 2)); }; }; } catch(error:Error) { trace(error.message); }; }; }; } public function set sideForce(_arg1:Number):void{ m_side_force = _arg1; } public function get cur_anim():String{ return (m_cur_anim); } public function useJetBonus():void{ m_is_jet_bonus = true; m_jetpack.setJetBonus(true); m_jet_bonus_timer.stop(); m_jet_bonus_timer.start(); } private function useAntenna1():void{ var _local2:b2Vec2; var _local3:Number; var _local1:b2Body = m_world.m_bodyList; while (_local1) { if (_local1 != m_body){ if (_local1.m_userData != null){ if (((!(((_local1.m_userData.toString() as String).search("junk0") == -1))) || (!(((_local1.m_userData.toString() as String).search("junk1") == -1))))){ _local2 = new b2Vec2((_local1.GetPosition().x - m_body.GetPosition().x), (_local1.GetPosition().y - m_body.GetPosition().y)); _local3 = ((1 / _local2.Length()) * 400); _local2.Normalize(); _local2.Multiply(_local3); _local1.ApplyImpulse(_local2, _local1.GetPosition()); }; }; }; _local1 = _local1.m_next; }; } public function hideSpyral():void{ if (mc["m_whirl"] != null){ mc["m_whirl"].visible = false; }; } private function useAntenna2():void{ var _local2:b2Vec2; var _local3:Number; var _local1:b2Body = m_world.m_bodyList; while (_local1) { if (_local1 != m_body){ if (_local1.m_userData != null){ if (((((((!(((_local1.m_userData.toString() as String).search("junk0") == -1))) || (!(((_local1.m_userData.toString() as String).search("junk1") == -1))))) || (!(((_local1.m_userData.toString() as String).search("junk2") == -1))))) || (!(((_local1.m_userData.toString() as String).search("bomb") == -1))))){ _local2 = new b2Vec2((_local1.GetPosition().x - m_body.GetPosition().x), (_local1.GetPosition().y - m_body.GetPosition().y)); _local3 = ((1 / _local2.Length()) * 550); _local2.Normalize(); _local2.Multiply(_local3); _local1.ApplyImpulse(_local2, _local1.GetPosition()); }; }; }; _local1 = _local1.m_next; }; } public function resetHealthValue():void{ m_health.reset(); updateHeadColor(); } public function update():void{ var _local1:Sound; var _local2:Number; m_body.SetXForm(m_body.GetPosition(), 0); m_body.ApplyImpulse(new b2Vec2(0, -1), m_body.GetPosition()); if (m_is_blinking){ if (mc.alpha == 1){ mc.alpha = 0.5; } else { mc.alpha = 1; }; }; if (((!(m_is_shocked)) && (!(m_is_attacking)))){ if (m_prev_y < m_body.GetPosition().y){ setAnim("fall_front"); m_is_falling = true; } else { if (m_is_falling){ m_is_falling = false; setAnim("stand_front"); }; m_is_falling = false; }; if (((((m_is_flying) && (!(m_is_moving_left)))) && (!(m_is_moving_right)))){ setAnim("fly_front"); }; m_prev_y = m_body.GetPosition().y; m_jetpack.update(); }; if (m_cur_anim.indexOf("front") == -1){ m_eyes.visible = false; } else { m_eyes.visible = true; }; if ((((((Y > ((500 + ((mc.height * 0.5) * Constants.GAME_SCALE)) + 200))) || ((Y < -200)))) && (!(m_is_dead)))){ _local1 = new snd_voice_death(); _local1.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1.2))); GamePlayState.getInstance().stopMusic(); StateManager.getInstance().pushState(DeathState.getInstance()); StateManager.getInstance().pushState(ScoreSubmitState.getInstance()); m_is_dead = true; }; if (((!((m_cur_anim.search("go") == -1))) && (!((mc["mc"] == null))))){ if (mc["mc"]["mc_antenna"] != null){ (mc["mc"]["mc_antenna"] as MovieClip).gotoAndStop((GameProfile.getInstance().upgrades[5] + 2)); }; } else { if (mc["mc_antenna"] != null){ (mc["mc_antenna"] as MovieClip).gotoAndStop((GameProfile.getInstance().upgrades[5] + 2)); }; }; if (b2Math.b2RandomRange(0, 100) < 2){ _local2 = b2Math.b2RandomRange(1, 2); m_eyes.gotoAndPlay(("eyesanimation_" + 1)); }; if (X > (400 + ((mc.width * mc.scaleX) * 0.5))){ m_body.SetXForm(new b2Vec2((((-(mc.width) * mc.scaleX) * 0.5) / Constants.SCALE), m_body.GetPosition().y), 0); }; if (X < ((-(mc.width) * mc.scaleX) * 0.5)){ m_body.SetXForm(new b2Vec2(((400 + ((mc.width * mc.scaleX) * 0.5)) / Constants.SCALE), m_body.GetPosition().y), 0); }; } public function moveRight():void{ var _local1:Number = m_side_force; m_body.ApplyImpulse(new b2Vec2((_local1 / 6), 0), m_body.GetPosition()); m_is_moving_right = true; if (!m_is_flying){ setAnim("go_right"); } else { setAnim("fly_right"); }; } public function resetFuelValue():void{ m_jetpack.reset(); } override protected function initBody():void{ m_sd = new b2PolygonDef(); m_sd.SetAsOrientedBox((m_w_2 / Constants.SCALE), (m_h_2 / Constants.SCALE), new b2Vec2(0, (-4 / Constants.SCALE))); m_sd.density = 5; m_bd.linearDamping = (10 * Constants.GAME_SCALE); m_bd.angularDamping = (10 * Constants.GAME_SCALE); m_bd.position.Set((m_start_x / Constants.SCALE), (m_start_y / Constants.SCALE)); m_body = m_world.CreateBody(m_bd); m_body.CreateShape(m_sd); m_body.SetMassFromShapes(); m_timer_atenna_use.start(); } public function get legs_color():Number{ return (m_legs_color); } public function set platform(_arg1:BasePlatform):void{ m_cur_platform = _arg1; } public function isInvincible():Boolean{ if (m_is_blinking){ return (true); }; return (false); } public function get sideForce():Number{ return (m_side_force); } } }//package GameObjects
Section 121
//Magnet (GameObjects.Magnet) package GameObjects { import flash.display.*; import Box2D.Common.Math.*; public class Magnet extends MovieClip { private var m_is_finished:Boolean;// = false private var m_mc:MovieClip; private var m_hero:Hero; private var m_velocity:Number; private var m_type:String; private var m_speed:Number;// = 2 private var m_nominal_force:Number; private var m_num_moves:Number;// = 0 private var m_max_num_moves:Number;// = 1 public function Magnet(_arg1:Hero){ m_mc = new mc_magnet(); m_nominal_force = (500000 * Constants.GAME_SCALE); super(); m_hero = _arg1; addChild(m_mc); m_mc.scaleX = Constants.GAME_SCALE; m_mc.scaleY = Constants.GAME_SCALE; } public function reset(_arg1:String):void{ m_is_finished = false; m_num_moves = 0; m_type = _arg1; m_velocity = -(m_speed); y = 550; if (_arg1 == "left"){ x = 20; m_mc.scaleX = (-1 * Constants.GAME_SCALE); } else { x = 380; m_mc.scaleX = (1 * Constants.GAME_SCALE); }; } public function update():void{ var _local1:b2Vec2; var _local2:Number; if (!m_is_finished){ if (m_hero != null){ if (((((m_hero.body.GetPosition().y * Constants.SCALE) > (y - 50))) && (((m_hero.body.GetPosition().y * Constants.SCALE) < (y + 50))))){ _local1 = new b2Vec2(((x + 100) - (m_hero.body.GetPosition().x * Constants.SCALE)), 0); if ((x + 100) < (m_hero.body.GetPosition().x * Constants.SCALE)){ _local1.x = 0; }; if (m_type == "left"){ _local1.x = ((x - 100) - (m_hero.body.GetPosition().x * Constants.SCALE)); if ((x - 100) > (m_hero.body.GetPosition().x * Constants.SCALE)){ _local1.x = 0; }; }; _local2 = (1 / Math.round(_local1.Length())); if (_local1.Length() == 0){ _local2 = 1; }; if (_local2 > 0.012){ _local2 = 0.012; }; if (m_type == "left"){ _local2 = (_local2 * -1); }; m_hero.body.ApplyForce(new b2Vec2(((m_nominal_force * _local2) * 0.85), 0), m_hero.body.GetPosition()); }; }; y = (y + m_velocity); if ((((y < -50)) || ((y > 550)))){ m_num_moves++; m_velocity = (m_velocity * -1); }; if (m_num_moves >= m_max_num_moves){ m_velocity = (m_velocity * -1); m_is_finished = true; parent.removeChild(this); }; }; } public function isFinished():Boolean{ return (m_is_finished); } } }//package GameObjects
Section 122
//PhysicalBody (GameObjects.PhysicalBody) package GameObjects { import flash.display.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class PhysicalBody extends MovieClip { protected var m_world:b2World; protected var m_bd:b2BodyDef; protected var m_start_x:Number; protected var m_start_y:Number; protected var mc:MovieClip; protected var m_body:b2Body; public function PhysicalBody(_arg1:b2World, _arg2:Number, _arg3:Number){ m_bd = new b2BodyDef(); m_world = _arg1; m_start_x = _arg2; m_start_y = _arg3; } protected function initBody():void{ } public function get body():b2Body{ return (m_body); } public function setPos(_arg1:Number, _arg2:Number=-1):void{ var _local3:Number = m_body.GetAngle(); m_body.SetXForm(new b2Vec2(_arg1, _arg2), _local3); } } }//package GameObjects
Section 123
//bombcounter_48 (graphics_fla.bombcounter_48) package graphics_fla { import flash.display.*; public dynamic class bombcounter_48 extends MovieClip { public function bombcounter_48(){ addFrameScript(11, this.frame12); } function frame12(){ stop(); } } }//package graphics_fla
Section 124
//PanelTouchAnimation_3 (graphics_fla.PanelTouchAnimation_3) package graphics_fla { import flash.display.*; public dynamic class PanelTouchAnimation_3 extends MovieClip { public function PanelTouchAnimation_3(){ addFrameScript(6, this.frame7); } function frame7(){ stop(); } } }//package graphics_fla
Section 125
//PlaneScoreColor_61 (graphics_fla.PlaneScoreColor_61) package graphics_fla { import flash.display.*; public dynamic class PlaneScoreColor_61 extends MovieClip { public function PlaneScoreColor_61(){ addFrameScript(0, this.frame1); } function frame1(){ stop(); } } }//package graphics_fla
Section 126
//AchievementInfo (GUI.ItemsInfo.AchievementInfo) package GUI.ItemsInfo { import flash.display.*; public class AchievementInfo { public var mc:SimpleButton; public var title:String; public var description:String; } }//package GUI.ItemsInfo
Section 127
//LevelInfo (GUI.ItemsInfo.LevelInfo) package GUI.ItemsInfo { public class LevelInfo { public var setting:Number;// = 0 public var part_length:Number;// = 1000 public var parts_infos:Array; public var platform_colors:Number;// = 3 } }//package GUI.ItemsInfo
Section 128
//LevelPartInfo (GUI.ItemsInfo.LevelPartInfo) package GUI.ItemsInfo { public class LevelPartInfo { public var platforms:Array; public var magnets_p:Number;// = 0 public var dist:Number;// = 140 public var health_p:Number;// = 10 public var bonus_p:Number;// = 2 public var falling_trash_p:Number;// = 200 public var stars_p:Number;// = 50 public var fuel_p:Number;// = 20 public var wnd_name:String; public var speed:Number;// = 4 } }//package GUI.ItemsInfo
Section 129
//UpgradeItem (GUI.ItemsInfo.UpgradeItem) package GUI.ItemsInfo { import flash.display.*; public class UpgradeItem { public var color:Number; public var cost:Number; public var color_item:String; public var mc:SimpleButton; public var title:String; public var description:String; } }//package GUI.ItemsInfo
Section 130
//BtMute (GUI.BtMute) package GUI { import flash.events.*; import flash.display.*; public class BtMute extends MovieClip { public var clickFunction:Function; private var m_mc:MovieClip; public function BtMute(){ m_mc = new mc_snd(); m_mc.x = 42; m_mc.y = 20; addChild(m_mc); buttonMode = true; m_mc.addEventListener(MouseEvent.CLICK, onMuteClick); init(); } public function init():void{ if (GameProfile.getInstance().sound_volume == 0){ m_mc.gotoAndStop(2); } else { m_mc.gotoAndStop(1); }; } public function onMuteClick(_arg1:MouseEvent):void{ GameProfile.getInstance().save(); if (GameProfile.getInstance().sound_volume == 0){ GameProfile.getInstance().sound_volume = 1; } else { GameProfile.getInstance().sound_volume = 0; }; if (clickFunction != null){ clickFunction(); }; init(); } } }//package GUI
Section 131
//ComboStack (GUI.ComboStack) package GUI { import flash.display.*; import GameObjects.Platforms.*; public class ComboStack extends MovieClip { private var m_items:Array; public function addBlock(_arg1:BasePlatform):void{ var _local4:MovieClip; var _local2:MovieClip = new mc_combo_anim(); var _local3:Boolean; if (m_items.length == 0){ _local3 = false; } else { if ((m_items[(m_items.length - 1)] as MovieClip)["m_color_rect"].currentFrame != _arg1.getColor()){ _local3 = true; }; }; if (m_items.length >= 10){ _local3 = true; }; if (_local3){ for each (_local4 in m_items) { _local4.gotoAndPlay(11); }; m_items = new Array(); }; _local2.x = (96 + (m_items.length * 25)); _local2.y = 44; _local2["m_color_rect"].gotoAndStop(_arg1.getColor()); m_items.push(_local2); addChild(_local2); } public function clear():void{ var _local1:MovieClip; if (m_items != null){ for each (_local1 in m_items) { removeChild(_local1); }; }; m_items = new Array(); } public function getItemsCount():Number{ return (m_items.length); } } }//package GUI
Section 132
//HealthBar (GUI.HealthBar) package GUI { import flash.display.*; public class HealthBar extends MovieClip { private const NOMINAL_VALUE:Number = 50; private var m_max_value:Number; private var m_health_panel:MovieClip; private var m_value:Number; public function HealthBar(){ m_health_panel = new mc_healthpanel(); m_health_panel.x = 0; m_health_panel.y = 440; m_health_panel["mc_health_line"].gotoAndStop(1); addChild(m_health_panel); reset(); } public function substractHealth(_arg1:Number):void{ GameProfile.getInstance().total_health_used = (GameProfile.getInstance().total_health_used + _arg1); m_value = (m_value - _arg1); if (m_value <= 0){ m_value = 0; }; var _local2:Number = ((m_value / m_max_value) * 100); if (_local2 < 40){ m_health_panel["mc_health_line"]["mc_anim"].play(); }; m_health_panel["mc_health_line"].gotoAndStop((50 - Math.round((_local2 * 0.5)))); } public function reset():void{ m_max_value = GameProfile.getInstance().getHealthMaxValue(); m_value = m_max_value; m_health_panel["mc_health_line"].gotoAndStop(1); m_health_panel["mc_health_line"].scaleX = ((m_max_value / NOMINAL_VALUE) - (0.25 * GameProfile.getInstance().upgrades[2])); m_health_panel["mc_border"].scaleX = ((m_max_value / NOMINAL_VALUE) - (0.25 * GameProfile.getInstance().upgrades[2])); m_health_panel["mc_health_line"]["mc_anim"].gotoAndStop(1); } public function getValue():Number{ return (((m_value / m_max_value) * 100)); } public function addhealth():void{ m_value = (m_value + 20); if (m_value > m_max_value){ m_value = m_max_value; }; var _local1:Number = ((m_value / m_max_value) * 100); if (m_value == m_max_value){ m_health_panel["mc_health_line"].gotoAndStop(1); } else { m_health_panel["mc_health_line"].gotoAndStop((50 - Math.round((_local1 * 0.5)))); }; if (_local1 > 40){ m_health_panel["mc_health_line"]["mc_anim"].gotoAndStop(1); }; } } }//package GUI
Section 133
//HeroPlaceArrow (GUI.HeroPlaceArrow) package GUI { import flash.display.*; import GameObjects.*; import flash.text.*; public class HeroPlaceArrow extends MovieClip { private var m_hero:Hero; private var m_arrow:MovieClip; public function HeroPlaceArrow(_arg1:Hero){ m_hero = _arg1; m_arrow = new mc_place_arrow(); addChild(m_arrow); } public function setPosotion(_arg1:Number, _arg2:Number):void{ m_arrow.x = _arg1; if (_arg2 > (500 + ((m_hero.height * 0.5) * Constants.GAME_SCALE))){ m_arrow.y = 500; (m_arrow["tf_dist"] as TextField).text = String(Math.floor(((_arg2 - 500) + ((m_hero.height * 0.5) * Constants.GAME_SCALE)))); if (!m_arrow.visible){ m_arrow.visible = true; m_arrow.gotoAndPlay(8); }; return; } else { if (_arg2 < ((-(m_hero.height) * 0.5) * Constants.GAME_SCALE)){ m_arrow.y = 0; (m_arrow["tf_dist"] as TextField).text = String(Math.floor(_arg2)); if (!m_arrow.visible){ m_arrow.visible = true; m_arrow.gotoAndPlay(1); }; } else { m_arrow.visible = false; }; }; } } }//package GUI
Section 134
//IngameGUI (GUI.IngameGUI) package GUI { import flash.display.*; import flash.text.*; public class IngameGUI extends MovieClip { private var m_top_panel:MovieClip; public function IngameGUI(){ m_top_panel = new mc_top_panel(); addChild(m_top_panel); updateScore(); } public function showAch(_arg1:Number):void{ var _local2:MovieClip; _local2 = new mc_ach_info(); _local2.x = 360; _local2.y = 360; (_local2["m_info"]["m_ach"] as MovieClip).gotoAndStop((_arg1 + 1)); addChild(_local2); } public function addItem(_arg1:MovieClip):void{ addChild(_arg1); } public function updateScore():void{ var _local1:String = GameProfile.getInstance().score.toString(); var _local2 = ""; var _local3:Number = 0; while (_local3 != (12 - _local1.length)) { _local2 = (_local2 + "0"); _local3++; }; _local2 = (_local2 + _local1); (m_top_panel["tf_score"] as TextField).text = _local2; } public function showInfo(_arg1:String):void{ var _local2:MovieClip; if (GameProfile.getInstance().info_messages[_arg1] == undefined){ GameProfile.getInstance().info_messages[_arg1] = true; if (((!((StringTable.getInstance().getText(_arg1) == null))) && (!((StringTable.getInstance().getText(_arg1) == ""))))){ _local2 = new mc_text_info(); _local2.x = 360; _local2.y = 360; (_local2["m_info"]["tf_text"] as TextField).text = StringTable.getInstance().getText(_arg1); addChild(_local2); }; }; } public function setLevelInd(_arg1:Number, _arg2:Number=0):void{ if (_arg2 != 0){ (m_top_panel["tf_level_ind"] as TextField).text = ((("" + _arg2) + ".") + _arg1); } else { (m_top_panel["tf_level_ind"] as TextField).text = ("" + _arg1); }; } } }//package GUI
Section 135
//JetPack (GUI.JetPack) package GUI { import flash.display.*; import flash.media.*; public class JetPack extends MovieClip { private const NOMINAL_VALUE:Number = 100; private var m_max_value:Number; private var m_jet_panel:MovieClip; private var m_snd_ch:SoundChannel; private var m_time_passed:Number; private var m_fuel_consumption_rate:Number;// = 1 private var m_value:Number; private var m_time_delay:Number;// = 2 private var snd:Sound; private var m_is_flying:Boolean;// = false private var m_is_jet_bonus_using:Boolean;// = false public function JetPack(){ snd = new snd_jet(); super(); m_jet_panel = new mc_jetpanel(); m_jet_panel.x = 13; m_jet_panel.y = 415; m_jet_panel["mc_jetline"].gotoAndStop(1); addChild(m_jet_panel); reset(); } public function getValue():Number{ return (m_value); } public function update():void{ var _local1:Number; var _local2:Number; if (((m_is_flying) && ((m_value > 0)))){ if ((((m_time_passed >= m_time_delay)) && (!(m_is_jet_bonus_using)))){ _local1 = ((m_value / m_max_value) * 100); m_time_passed = 0; m_value = (m_value - m_fuel_consumption_rate); if (m_value <= 0){ m_value = 0; stopFlight(); }; GameProfile.getInstance().total_jet_used = (GameProfile.getInstance().total_jet_used + m_fuel_consumption_rate); _local2 = ((m_value / m_max_value) * 100); m_jet_panel["mc_jetline"].gotoAndStop((50 - Math.round((_local2 * 0.5)))); if ((((_local2 < 40)) && ((_local1 >= 40)))){ m_jet_panel["mc_jetline"]["mc_anim"].play(); }; }; m_time_passed++; }; } public function reset():void{ if (m_snd_ch != null){ m_snd_ch.stop(); }; (m_jet_panel["mc_jetline_top"] as MovieClip).visible = false; m_is_jet_bonus_using = false; m_max_value = 100; m_value = m_max_value; m_time_delay = (2 + GameProfile.getInstance().upgrades[4]); m_fuel_consumption_rate = GameProfile.getInstance().getFuelConsumptionRate(); m_is_flying = false; m_jet_panel["mc_jetline"].gotoAndStop(1); m_jet_panel["mc_jetline"].scaleX = (1 + (GameProfile.getInstance().upgrades[4] * 0.25)); m_jet_panel["mc_border"].scaleX = (1 + (GameProfile.getInstance().upgrades[4] * 0.25)); m_jet_panel["mc_jetline"]["mc_anim"].gotoAndStop(1); } public function setJetBonus(_arg1:Boolean):void{ m_is_jet_bonus_using = _arg1; (m_jet_panel["mc_jetline_top"] as MovieClip).visible = m_is_jet_bonus_using; if (m_is_jet_bonus_using){ (m_jet_panel["mc_jetline_top"] as MovieClip).gotoAndStop(1); }; } public function stopFlight():void{ if (m_snd_ch != null){ m_snd_ch.stop(); }; m_is_flying = false; } public function startFlight():void{ if (m_snd_ch != null){ m_snd_ch.stop(); }; m_snd_ch = snd.play(1, int.MAX_VALUE, new SoundTransform((GameProfile.getInstance().sound_volume * 1.3))); m_time_passed = 0; m_is_flying = true; } public function addFuel():void{ m_value = (m_value + 20); if (m_value > m_max_value){ m_value = m_max_value; }; var _local1:Number = ((m_value / m_max_value) * 100); if (m_value == m_max_value){ m_jet_panel["mc_jetline"].gotoAndStop(1); } else { m_jet_panel["mc_jetline"].gotoAndStop((50 - Math.round((_local1 * 0.5)))); }; if (_local1 >= 40){ m_jet_panel["mc_jetline"]["mc_anim"].gotoAndStop(1); }; } } }//package GUI
Section 136
//LevelProgressPanel (GUI.LevelProgressPanel) package GUI { import flash.display.*; import flash.text.*; public class LevelProgressPanel extends MovieClip { private const FINISH_Y:Number = 475; private const START_Y:Number = 78; private var m_parts_markers:Array; private var m_marker:MovieClip; private var m_mc:MovieClip; public function LevelProgressPanel(){ m_mc = new mc_progress_panel(); m_mc.x = 385; m_mc.y = 13; addChild(m_mc); m_marker = m_mc["m_marker"]; m_marker.y = START_Y; } public function setPartsCount(_arg1:Number, _arg2:Number):void{ var _local4:MovieClip; var _local5:MovieClip; if (m_parts_markers != null){ for each (_local4 in m_parts_markers) { m_mc["m_inner_info"].removeChild(_local4); }; }; m_parts_markers = new Array(); var _local3:Number = 0; while (_local3 != (_arg1 - 1)) { _local5 = new mc_progress_bar_part_pointer(); _local5.x = 28; _local5.y = (10 + ((400 / _arg1) * (_local3 + 1))); (_local5["tf_text"] as TextField).text = ((_arg2 + ".") + (_local3 + 2)); m_mc["m_inner_info"].addChild(_local5); m_parts_markers.push(_local5); _local3++; }; } public function setProgress(_arg1:Number):void{ m_marker.y = (START_Y + ((FINISH_Y - START_Y) * _arg1)); } } }//package GUI
Section 137
//StarsCounterPanel (GUI.StarsCounterPanel) package GUI { import flash.display.*; import flash.text.*; public class StarsCounterPanel extends MovieClip { private var m_mc:MovieClip; private var m_counter:Number;// = 0 public function StarsCounterPanel(){ m_mc = new mc_stars_counter(); m_mc.x = 273; m_mc.y = 13; addChild(m_mc); reset(); } public function addStar():void{ GameProfile.getInstance().stars++; GameProfile.getInstance().setStat("stars_collected", 1, "summ"); updateCounter(); } public function addStars(_arg1:Number):void{ GameProfile.getInstance().stars = (GameProfile.getInstance().stars + _arg1); GameProfile.getInstance().setStat("stars_collected", _arg1, "summ"); updateCounter(); } public function updateCounter():void{ (m_mc["m_star"] as MovieClip).gotoAndPlay(1); (m_mc["m_tf"] as TextField).text = "x"; m_counter = GameProfile.getInstance().stars; if (m_counter < 10){ (m_mc["m_tf"] as TextField).text = ((m_mc["m_tf"] as TextField).text + "000"); } else { if (m_counter < 100){ (m_mc["m_tf"] as TextField).text = ((m_mc["m_tf"] as TextField).text + "00"); } else { if (m_counter < 1000){ (m_mc["m_tf"] as TextField).text = ((m_mc["m_tf"] as TextField).text + "0"); }; }; }; (m_mc["m_tf"] as TextField).text = ((m_mc["m_tf"] as TextField).text + m_counter); } public function reset():void{ m_counter = GameProfile.getInstance().stars; updateCounter(); } } }//package GUI
Section 138
//star_8 (GUI_fla.star_8) package GUI_fla { import flash.display.*; public dynamic class star_8 extends MovieClip { public function star_8(){ addFrameScript(0, this.frame1); } function frame1(){ stop(); } } }//package GUI_fla
Section 139
//Timeline_21 (GUI_fla.Timeline_21) package GUI_fla { import flash.events.*; import flash.net.*; import flash.display.*; public dynamic class Timeline_21 extends MovieClip { public function Timeline_21(){ addFrameScript(0, this.frame1); } function frame1(){ buttonMode = true; addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{ var _local2:URLRequest = new URLRequest("http://www.badhed.com/?ref=joe-the-alien_INGAMELOGO"); navigateToURL(_local2); }); } } }//package GUI_fla
Section 140
//ByteArrayAsset (mx.core.ByteArrayAsset) package mx.core { import flash.utils.*; public class ByteArrayAsset extends ByteArray implements IFlexAsset { mx_internal static const VERSION:String = "3.5.0.12683"; } }//package mx.core
Section 141
//IFlexAsset (mx.core.IFlexAsset) package mx.core { public interface IFlexAsset { } }//package mx.core
Section 142
//mx_internal (mx.core.mx_internal) package mx.core { public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal"; }//package mx.core
Section 143
//AchievementsState (States.AchievementsState) package States { import flash.events.*; import flash.display.*; import GUI.ItemsInfo.*; import flash.utils.*; import flash.text.*; import flash.media.*; public class AchievementsState extends BasicWindowState { private var xmlAch:Class; private var m_achievements:Array; private static var m_instance:AchievementsState; public function AchievementsState(){ xmlAch = AchievementsState_xmlAch; super(); m_a_speed = 0.1; m_title = "AchievementsState"; m_mc_wnd = new mc_wnd_achieve(); addChild(m_mc_wnd); parseXMLData(); } private function onKeyDown(_arg1:KeyboardEvent):void{ } override protected function onCleanUp():void{ super.onCleanUp(); stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); (m_mc_wnd["bt_back"] as SimpleButton).removeEventListener(MouseEvent.CLICK, onResumeClick); } private function onIconOver(_arg1:MouseEvent):void{ var _local2:Number = Number((_arg1.currentTarget as MovieClip).name.charAt(6)); (m_mc_wnd["tf_descr"] as TextField).text = (m_achievements[_local2] as AchievementInfo).description; } private function parseXMLData():void{ var _local5:XML; var _local6:AchievementInfo; var _local1:ByteArray = new xmlAch(); var _local2:String = _local1.readUTFBytes(_local1.length); var _local3:XML = new XML(_local2); var _local4:Number = 0; m_achievements = new Array(); for each (_local5 in _local3.Achievement) { _local6 = new AchievementInfo(); _local6.description = _local5.attribute("description"); _local6.title = _local5.attribute("title"); m_achievements[_local4] = _local6; (m_mc_wnd[("mc_ach" + _local4)] as MovieClip).buttonMode = true; (m_mc_wnd[("mc_ach" + _local4)] as MovieClip).addEventListener(MouseEvent.MOUSE_OVER, onIconOver); (m_mc_wnd[("mc_ach" + _local4)] as MovieClip).addEventListener(MouseEvent.MOUSE_OUT, onIconOut); _local4++; }; } override protected function onInit():void{ super.onInit(); stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); (m_mc_wnd["bt_back"] as SimpleButton).addEventListener(MouseEvent.CLICK, onResumeClick); resetItems(); } private function resetItems():void{ var _local1:Number = 0; while (_local1 != GameProfile.getInstance().achievements.length) { if (GameProfile.getInstance().achievements[_local1]){ (m_mc_wnd[("mc_ach" + _local1)]["mc_fade"] as MovieClip).visible = false; } else { m_mc_wnd[("mc_ach" + _local1)]["mc_fade"].visible = true; (m_mc_wnd[("mc_ach" + _local1)] as MovieClip).addChild(m_mc_wnd[("mc_ach" + _local1)]["mc_fade"]); }; _local1++; }; } private function onResumeClick(_arg1:MouseEvent):void{ var _local2:Sound = new snd_click(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); StateManager.getInstance().popState(); } private function onIconOut(_arg1:MouseEvent):void{ (m_mc_wnd["tf_descr"] as TextField).text = ""; } public static function getInstance():AchievementsState{ if (m_instance == null){ m_instance = new (AchievementsState); }; return (m_instance); } } }//package States
Section 144
//AchievementsState_xmlAch (States.AchievementsState_xmlAch) package States { import mx.core.*; public class AchievementsState_xmlAch extends ByteArrayAsset { } }//package States
Section 145
//BasicWindowState (States.BasicWindowState) package States { import flash.display.*; public class BasicWindowState extends GameState { protected var m_is_hiding:Boolean;// = false protected var m_mc_wnd:MovieClip; protected var m_a_speed:Number;// = 0.03 protected var m_is_showing:Boolean;// = false override protected function onUpdate():void{ if (m_is_showing){ if (m_mc_wnd.alpha < 1){ m_mc_wnd.alpha = (m_mc_wnd.alpha + m_a_speed); if (m_mc_wnd.alpha >= 1){ m_mc_wnd.alpha = 1; m_is_showing = false; }; }; }; if (m_is_hiding){ if (m_mc_wnd.alpha > 0){ m_mc_wnd.alpha = (m_mc_wnd.alpha - m_a_speed); if (m_mc_wnd.alpha <= 0){ m_mc_wnd.alpha = 0; m_is_hiding = false; }; }; }; } override protected function onInit():void{ m_mc_wnd.alpha = 0; m_is_showing = true; } } }//package States
Section 146
//CreditsState (States.CreditsState) package States { import flash.events.*; import flash.display.*; import flash.media.*; public class CreditsState extends BasicWindowState { private var m_is_inited:Boolean;// = false private static var m_instance:CreditsState; public function CreditsState(){ m_a_speed = 0.1; m_title = "CreditsState"; m_mc_wnd = new mc_wnd_credits(); addChild(m_mc_wnd); (m_mc_wnd["bt_back"] as SimpleButton).addEventListener(MouseEvent.CLICK, onBackClick); } public function onBackClick(_arg1:MouseEvent):void{ var _local2:Sound = new snd_click(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); StateManager.getInstance().popState(); } override protected function onCleanUp():void{ super.onCleanUp(); } override protected function onInit():void{ super.onInit(); } public static function getInstance():CreditsState{ if (m_instance == null){ m_instance = new (CreditsState); }; return (m_instance); } } }//package States
Section 147
//DeathState (States.DeathState) package States { import flash.events.*; import GUI.*; import flash.display.*; import flash.text.*; import flash.media.*; public class DeathState extends BasicWindowState { private var m_bt_mute:BtMute; private var m_mus_menu:SoundChannel; private static var m_instance:DeathState; public function DeathState(){ m_bt_mute = new BtMute(); super(); m_title = "DeathState"; m_mc_wnd = new mc_window_dead(); addChild(m_mc_wnd); if (StaticSounds.m_mus_menu_loop == null){ StaticSounds.m_mus_menu_loop = new mus_menu_loop(); }; m_bt_mute.clickFunction = function ():void{ if (m_mus_menu != null){ m_mus_menu.soundTransform = new SoundTransform((GameProfile.getInstance().sound_volume * 1)); }; }; addChild(m_bt_mute); } private function onMenuClick(_arg1:MouseEvent):void{ var _local2:Sound = new snd_click(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); StateManager.getInstance().changeState(MainMenuState.getInstance()); } private function onShopClick(_arg1:MouseEvent):void{ var _local2:Sound = new snd_click(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); StateManager.getInstance().pushState(UpgradesState.getInstance()); if (!GameProfile.getInstance().was_in_shop){ HelpState.getInstance().setLevelInd(9); StateManager.getInstance().pushState(HelpState.getInstance()); }; } private function onAchieveClick(_arg1:MouseEvent):void{ var _local2:Sound = new snd_click(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); StateManager.getInstance().pushState(AchievementsState.getInstance()); } private function onReplayClick(_arg1:MouseEvent):void{ var _local2:Sound = new snd_click(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); if (GameProfile.getInstance().game_mode == "Story"){ GamePlayState.getInstance().resetLevel(true); } else { GamePlayState.getInstance().resetLevel(false); }; StateManager.getInstance().popState(); } override protected function onCleanUp():void{ if (m_mus_menu != null){ m_mus_menu.stop(); }; (m_mc_wnd["m_bt_replay"] as SimpleButton).removeEventListener(MouseEvent.CLICK, onReplayClick); (m_mc_wnd["m_bt_achieve"] as SimpleButton).removeEventListener(MouseEvent.CLICK, onAchieveClick); (m_mc_wnd["m_bt_shop"] as SimpleButton).removeEventListener(MouseEvent.CLICK, onShopClick); (m_mc_wnd["m_bt_menu"] as SimpleButton).removeEventListener(MouseEvent.CLICK, onMenuClick); } override protected function onInit():void{ super.onInit(); GameProfile.getInstance().total_death = (GameProfile.getInstance().total_death + 1); GameProfile.getInstance().setStat("deaths_on_level", 1, "summ"); m_mus_menu = StaticSounds.m_mus_menu_loop.play(0, int.MAX_VALUE, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); (m_mc_wnd["tf_stars"] as TextField).text = ("x" + GameProfile.getInstance().stars); var _local1:String = GameProfile.getInstance().score.toString(); var _local2 = ""; var _local3:Number = 0; while (_local3 != (12 - _local1.length)) { _local2 = (_local2 + "0"); _local3++; }; _local2 = (_local2 + _local1); (m_mc_wnd["tf_score"] as TextField).text = _local2; (m_mc_wnd["m_bt_replay"] as SimpleButton).addEventListener(MouseEvent.CLICK, onReplayClick); (m_mc_wnd["m_bt_achieve"] as SimpleButton).addEventListener(MouseEvent.CLICK, onAchieveClick); (m_mc_wnd["m_bt_shop"] as SimpleButton).addEventListener(MouseEvent.CLICK, onShopClick); (m_mc_wnd["m_bt_menu"] as SimpleButton).addEventListener(MouseEvent.CLICK, onMenuClick); GameProfile.getInstance().save(); m_bt_mute.init(); } public static function getInstance():DeathState{ if (m_instance == null){ m_instance = new (DeathState); }; return (m_instance); } } }//package States
Section 148
//GamePauseState (States.GamePauseState) package States { import flash.events.*; import GUI.*; import flash.display.*; import flash.text.*; import flash.media.*; import flash.ui.*; public class GamePauseState extends BasicWindowState { private var m_mus_menu:SoundChannel; private static var m_instance:GamePauseState; public function GamePauseState(){ super(); m_a_speed = 0.1; m_title = "GamePauseState"; if (StaticSounds.m_mus_menu_loop == null){ StaticSounds.m_mus_menu_loop = new mus_menu_loop(); }; m_mc_wnd = new mc_wnd_pause(); addChild(m_mc_wnd); (m_mc_wnd["bt_resume"] as SimpleButton).addEventListener(MouseEvent.CLICK, onResumeClick); (m_mc_wnd["bt_menu"] as SimpleButton).addEventListener(MouseEvent.CLICK, onMenuClick); (m_mc_wnd["bt_achieve"] as SimpleButton).addEventListener(MouseEvent.CLICK, onAchieveClick); var m_bt_mute:BtMute = new BtMute(); m_bt_mute.clickFunction = function ():void{ if (m_mus_menu != null){ m_mus_menu.soundTransform = new SoundTransform((GameProfile.getInstance().sound_volume * 1)); }; }; addChild(m_bt_mute); } private function onKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.ESCAPE){ (m_mc_wnd["bt_resume"] as SimpleButton).dispatchEvent(new MouseEvent("click")); }; } override protected function onCleanUp():void{ if (m_mus_menu != null){ m_mus_menu.stop(); }; super.onCleanUp(); stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); } private function onAchieveClick(_arg1:MouseEvent):void{ var _local2:Sound = new snd_click(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); StateManager.getInstance().pushState(AchievementsState.getInstance()); } private function onMenuClick(_arg1:MouseEvent):void{ var _local2:Sound = new snd_click(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); StateManager.getInstance().changeState(LevelSelectState.getInstance()); } private function onResumeClick(_arg1:MouseEvent):void{ var _local2:Sound = new snd_click(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); StateManager.getInstance().popState(); } override protected function onInit():void{ super.onInit(); m_mus_menu = StaticSounds.m_mus_menu_loop.play(0, int.MAX_VALUE, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); (m_mc_wnd["tf_stars"] as TextField).text = ("x" + GameProfile.getInstance().stars); (m_mc_wnd["tf_mode"] as TextField).text = GameProfile.getInstance().game_mode; var _local1:String = GameProfile.getInstance().score.toString(); var _local2 = ""; var _local3:Number = 0; while (_local3 != (12 - _local1.length)) { _local2 = (_local2 + "0"); _local3++; }; _local2 = (_local2 + _local1); (m_mc_wnd["tf_score"] as TextField).text = _local2; var _local4:Number = GamePlayState.getInstance().getLevelInd(); if (GameProfile.getInstance().game_mode == "Story"){ (m_mc_wnd["tf_level"] as TextField).text = GamePlayState.getInstance().getCurLevelString(); } else { (m_mc_wnd["tf_level"] as TextField).text = ((("" + _local4) + "/") + 3); }; stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); } public static function getInstance():GamePauseState{ if (m_instance == null){ m_instance = new (GamePauseState); }; return (m_instance); } } }//package States
Section 149
//GamePlayState (States.GamePlayState) package States { import flash.events.*; import GUI.*; import flash.display.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import GameObjects.*; import GameObjects.LevelItems.*; import flash.media.*; import flash.ui.*; public class GamePlayState extends GameState { private var m_world:b2World; private var m_iterations:int;// = 15 private var m_timeStep:Number;// = 0.0333333333333333 private var m_hero:Hero; private var m_level_ind:Number;// = 0 private var m_is_mouse_down:Boolean;// = false private var m_is_key_up_down:Boolean;// = false private var m_is_key_right_down:Boolean;// = false private var m_gui:IngameGUI; private var m_level:Level; private var m_is_key_left_down:Boolean;// = false private var m_mus_game:SoundChannel; private var m_is_key_down_down:Boolean;// = false private static var m_instance:GamePlayState; public function GamePlayState(){ m_instance = this; m_title = "GamePlayState"; if (StaticSounds.m_mus_game_loop == null){ StaticSounds.m_mus_game_loop = new mus_game_loop(); }; var _local1:b2AABB = new b2AABB(); var _local2:b2Vec2 = new b2Vec2(0, ((2.3 * Constants.SCALE) * Constants.GAME_SCALE)); var _local3:Boolean; _local1.lowerBound.Set((-300 / Constants.SCALE), (-200 / Constants.SCALE)); _local1.upperBound.Set((1000 / Constants.SCALE), (1000 / Constants.SCALE)); m_world = new b2World(_local1, _local2, _local3); m_world.SetContactListener(new GameContactListener()); m_gui = new IngameGUI(); m_hero = new Hero(m_world, (400 * 0.5), 50); m_level = new Level(m_world, m_hero, m_level_ind); addChild(m_level); addChild(m_gui); } private function onMouseDown(_arg1:MouseEvent):void{ if (((((!(m_is_paused)) && (m_level.isLevelStarted))) && (GameProfile.getInstance().mouse_enabled))){ m_is_mouse_down = true; }; } private function onKeyDown(_arg1:KeyboardEvent):void{ var _local2:uint; var _local3:uint; var _local4:uint; var _local5:uint; var _local6:uint; var _local7:uint; if (((!(m_is_paused)) && (m_level.isLevelStarted))){ _local2 = Keyboard.LEFT; _local3 = Keyboard.RIGHT; _local4 = 65; _local5 = 68; _local6 = Keyboard.UP; _local7 = Keyboard.DOWN; if (m_level.getCurBonus() != null){ if ((m_level.getCurBonus() is ItemBonusHypno)){ _local2 = Keyboard.RIGHT; _local3 = Keyboard.LEFT; _local4 = 68; _local5 = 65; }; }; if ((((_arg1.keyCode == _local2)) || ((_arg1.keyCode == _local4)))){ m_is_key_left_down = true; }; if ((((_arg1.keyCode == _local3)) || ((_arg1.keyCode == _local5)))){ m_is_key_right_down = true; }; if ((((_arg1.keyCode == _local6)) || ((_arg1.keyCode == 87)))){ m_is_key_up_down = true; }; if (_arg1.keyCode == _local7){ m_is_key_down_down = true; }; if (_arg1.keyCode == Keyboard.ESCAPE){ m_hero.stopFlying(); m_mus_game.stop(); StateManager.getInstance().pushState(GamePauseState.getInstance()); resetKeys(); }; }; } public function stopMusic():void{ m_mus_game.stop(); } public function getGUI():IngameGUI{ return (m_gui); } override protected function onInit():void{ m_mus_game = StaticSounds.m_mus_game_loop.play(0, int.MAX_VALUE, new SoundTransform((GameProfile.getInstance().sound_volume * 0.35))); m_level.levelInd = m_level_ind; stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp); stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp); stage.addEventListener(MouseEvent.DOUBLE_CLICK, onDBLClick); } public function getCurLevel():Number{ return (m_level.levelInd); } override protected function onUpdate():void{ var _local2:Number; m_world.Step(m_timeStep, m_iterations); var _local1:b2Body = m_world.m_bodyList; while (_local1) { if ((((_local1.m_userData is Sprite)) || ((_local1.m_userData is MovieClip)))){ if (_local1.m_userData != null){ _local1.m_userData.x = (_local1.GetPosition().x * Constants.SCALE); _local1.m_userData.y = (_local1.GetPosition().y * Constants.SCALE); if (_local1.m_userData != "[object mc_hero_anim]"){ _local1.m_userData.rotation = (_local1.GetAngle() * (180 / Math.PI)); }; }; }; _local1 = _local1.m_next; }; if (((((!(m_is_paused)) && (m_level.isLevelStarted))) && (GameProfile.getInstance().mouse_enabled))){ _local2 = 30; if ((((((mouseX < (m_hero.X - _local2))) && (!((m_level.getCurBonus() is ItemBonusHypno))))) || ((((mouseX > (m_hero.X + _local2))) && ((m_level.getCurBonus() is ItemBonusHypno)))))){ m_hero.moveLeft(); } else { if ((((((mouseX > (m_hero.X + _local2))) && (!((m_level.getCurBonus() is ItemBonusHypno))))) || ((((mouseX < (m_hero.X - _local2))) && ((m_level.getCurBonus() is ItemBonusHypno)))))){ m_hero.moveRight(); } else { if ((((((mouseX < m_hero.X)) && (!((m_level.getCurBonus() is ItemBonusHypno))))) || ((((mouseX > m_hero.X)) && ((m_level.getCurBonus() is ItemBonusHypno)))))){ m_hero.stopMovingLeft(); m_hero.setAnim("stand_left"); } else { if ((((((mouseX > m_hero.X)) && (!((m_level.getCurBonus() is ItemBonusHypno))))) || ((((mouseX < m_hero.X)) && ((m_level.getCurBonus() is ItemBonusHypno)))))){ m_hero.stopMovingRight(); m_hero.setAnim("stand_right"); } else { m_hero.setAnim("stand_front"); }; }; }; }; }; if (m_is_key_left_down){ m_hero.moveLeft(); }; if (m_is_key_right_down){ m_hero.moveRight(); }; if (((m_is_key_up_down) || (m_is_mouse_down))){ m_hero.moveUp(); }; m_hero.update(); m_level.update(); } override protected function onCleanUp():void{ m_mus_game.stop(); stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); stage.removeEventListener(KeyboardEvent.KEY_UP, onKeyUp); stage.removeEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp); stage.removeEventListener(MouseEvent.DOUBLE_CLICK, onDBLClick); } public function resetKeys():void{ m_is_key_left_down = false; m_is_key_right_down = false; m_is_key_up_down = false; m_is_key_down_down = false; m_is_mouse_down = false; } override protected function onResume():void{ stage.focus = this; m_mus_game = StaticSounds.m_mus_game_loop.play(0, int.MAX_VALUE, new SoundTransform((GameProfile.getInstance().sound_volume * 0.35))); } public function getCurLevelString():String{ return (m_level.getCurLevelString()); } public function getLevelInd():Number{ return (m_level.levelInd); } public function resetLevel(_arg1:Boolean=false):void{ resetKeys(); m_level.resetLevel(_arg1); } private function onDBLClick(_arg1:MouseEvent):void{ if (((((!(m_is_paused)) && (m_level.isLevelStarted))) && (GameProfile.getInstance().mouse_enabled))){ m_hero.atack(); }; } private function onMouseUp(_arg1:MouseEvent):void{ if (((((!(m_is_paused)) && (m_level.isLevelStarted))) && (GameProfile.getInstance().mouse_enabled))){ m_is_mouse_down = false; m_hero.setAnim("stand_front"); m_hero.stopFlying(); }; } private function onKeyUp(_arg1:KeyboardEvent):void{ var _local2:uint; var _local3:uint; var _local4:uint; var _local5:uint; var _local6:uint; var _local7:uint; if (((!(m_is_paused)) && (m_level.isLevelStarted))){ _local2 = Keyboard.LEFT; _local3 = Keyboard.RIGHT; _local4 = 65; _local5 = 68; _local6 = Keyboard.UP; _local7 = Keyboard.DOWN; if (m_level.getCurBonus() != null){ if ((m_level.getCurBonus() is ItemBonusHypno)){ _local2 = Keyboard.RIGHT; _local3 = Keyboard.LEFT; _local4 = 68; _local5 = 65; }; }; if ((((_arg1.keyCode == _local2)) || ((_arg1.keyCode == _local4)))){ m_is_key_left_down = false; m_hero.setAnim("stand_left"); m_hero.stopMovingLeft(); }; if ((((_arg1.keyCode == _local3)) || ((_arg1.keyCode == _local5)))){ m_is_key_right_down = false; m_hero.setAnim("stand_right"); m_hero.stopMovingRight(); }; if ((((_arg1.keyCode == _local6)) || ((_arg1.keyCode == 87)))){ m_is_key_up_down = false; m_hero.setAnim("stand_front"); m_hero.stopFlying(); }; if (_arg1.keyCode == _local7){ m_is_key_down_down = false; }; if (_arg1.keyCode == Keyboard.SPACE){ m_hero.atack(); }; }; } public function setLevelInd(_arg1:Number):void{ m_level_ind = _arg1; } public static function getInstance():GamePlayState{ if (m_instance == null){ m_instance = new (GamePlayState); }; return (m_instance); } } }//package States
Section 150
//GameState (States.GameState) package States { import flash.display.*; public class GameState extends Sprite { protected var m_title:String; protected var m_is_paused:Boolean;// = false public function GameState(){ tabEnabled = false; tabChildren = false; } public function cleanUp():void{ m_is_paused = true; onCleanUp(); } protected function onCleanUp():void{ } protected function onUpdate():void{ } public function update():void{ if (!m_is_paused){ onUpdate(); }; } override public function toString():String{ return (m_title); } public function resume():void{ m_is_paused = false; onResume(); } protected function onResume():void{ } protected function onInit():void{ } public function init():void{ if (stage != null){ stage.focus = this; }; m_is_paused = false; onInit(); } public function pause():void{ m_is_paused = true; onPause(); } protected function onPause():void{ } protected function onEnterState():void{ } public function enterState():void{ stage.focus = this; m_is_paused = false; onEnterState(); } } }//package States
Section 151
//HelpState (States.HelpState) package States { import flash.events.*; import flash.media.*; public class HelpState extends BasicWindowState { private var m_level_ind:Number;// = 1 private var m_is_inited:Boolean;// = false private static var m_instance:HelpState; public function HelpState(){ m_a_speed = 0.1; m_title = "HelpState"; m_mc_wnd = new mc_wnd_help(); addChild(m_mc_wnd); } public function gotoShop(_arg1:MouseEvent):void{ GameProfile.getInstance().was_in_shop = true; GameProfile.getInstance().save(); StateManager.getInstance().popState(); } override protected function onCleanUp():void{ super.onCleanUp(); } public function onSkipClick(_arg1:MouseEvent):void{ var _local2:Sound = new snd_click(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); StateManager.getInstance().changeState(GamePlayState.getInstance()); GamePlayState.getInstance().resetLevel(); } public function setLevelInd(_arg1:Number):void{ m_level_ind = _arg1; } override protected function onInit():void{ super.onInit(); if (m_level_ind > 2){ m_level_ind = (m_level_ind + 1); }; m_mc_wnd.gotoAndStop(m_level_ind); } public static function getInstance():HelpState{ if (m_instance == null){ m_instance = new (HelpState); }; return (m_instance); } } }//package States
Section 152
//LevelCompleteState (States.LevelCompleteState) package States { import flash.events.*; import GUI.*; import flash.display.*; import flash.text.*; import flash.media.*; public class LevelCompleteState extends BasicWindowState { private var m_bt_mute:BtMute; private var m_mus_menu:SoundChannel; private static var m_instance:LevelCompleteState; public function LevelCompleteState(){ m_bt_mute = new BtMute(); super(); m_a_speed = 0.1; m_title = "LevelCompleteState"; if (StaticSounds.m_mus_menu_loop == null){ StaticSounds.m_mus_menu_loop = new mus_menu_loop(); }; m_mc_wnd = new mc_wnd_level_complete(); addChild(m_mc_wnd); (m_mc_wnd["bt_shop"] as SimpleButton).addEventListener(MouseEvent.CLICK, onShopClick); (m_mc_wnd["bt_cont"] as SimpleButton).addEventListener(MouseEvent.CLICK, onContClick); (m_mc_wnd["bt_menu"] as SimpleButton).addEventListener(MouseEvent.CLICK, onMenuClick); (m_mc_wnd["bt_achieve"] as SimpleButton).addEventListener(MouseEvent.CLICK, onAchieveClick); m_bt_mute.clickFunction = function ():void{ if (m_mus_menu != null){ m_mus_menu.soundTransform = new SoundTransform((GameProfile.getInstance().sound_volume * 1)); }; }; addChild(m_bt_mute); } private function onMenuClick(_arg1:MouseEvent):void{ StateManager.getInstance().changeState(MainMenuState.getInstance()); } private function onShopClick(_arg1:MouseEvent):void{ var _local2:Sound = new snd_click(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); StateManager.getInstance().pushState(UpgradesState.getInstance()); if (!GameProfile.getInstance().was_in_shop){ HelpState.getInstance().setLevelInd(9); StateManager.getInstance().pushState(HelpState.getInstance()); }; } private function onAchieveClick(_arg1:MouseEvent):void{ var _local2:Sound = new snd_click(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); StateManager.getInstance().pushState(AchievementsState.getInstance()); } private function onContClick(_arg1:MouseEvent):void{ var _local2:Sound = new snd_click(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); StateManager.getInstance().changeState(LevelSelectState.getInstance()); } override protected function onCleanUp():void{ super.onCleanUp(); if (m_mus_menu != null){ m_mus_menu.stop(); }; } override protected function onInit():void{ super.onInit(); if (GameProfile.getInstance().levels_opened < (GamePlayState.getInstance().getCurLevel() + 2)){ GameProfile.getInstance().levels_opened = (GamePlayState.getInstance().getCurLevel() + 2); if (GameProfile.getInstance().levels_opened > 7){ GameProfile.getInstance().levels_opened = 7; }; if (GameProfile.getInstance().levels_opened == 7){ StateManager.getInstance().showScores(GameProfile.getInstance().score); }; }; GameProfile.getInstance().setStat("bonuses_on_level", 0); GameProfile.getInstance().setStat("health_on_level", 0); GameProfile.getInstance().setStat("jet_on_level", 0); m_mus_menu = StaticSounds.m_mus_menu_loop.play(0, int.MAX_VALUE, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); (m_mc_wnd["tf_stars"] as TextField).text = ("x" + GameProfile.getInstance().stars); (m_mc_wnd["tf_mode"] as TextField).text = GameProfile.getInstance().game_mode; var _local1:String = GameProfile.getInstance().score.toString(); var _local2 = ""; var _local3:Number = 0; while (_local3 != (12 - _local1.length)) { _local2 = (_local2 + "0"); _local3++; }; _local2 = (_local2 + _local1); (m_mc_wnd["tf_score"] as TextField).text = _local2; var _local4:Number = GamePlayState.getInstance().getLevelInd(); if (GameProfile.getInstance().game_mode == "Story"){ (m_mc_wnd["tf_level"] as TextField).text = GamePlayState.getInstance().getCurLevelString(); } else { (m_mc_wnd["tf_level"] as TextField).text = ((("" + _local4) + "/") + 3); }; GameProfile.getInstance().save(); m_bt_mute.init(); } public static function getInstance():LevelCompleteState{ if (m_instance == null){ m_instance = new (LevelCompleteState); }; return (m_instance); } } }//package States
Section 153
//LevelSelectState (States.LevelSelectState) package States { import flash.events.*; import GUI.*; import flash.display.*; import flash.media.*; public class LevelSelectState extends BasicWindowState { private var m_cur_button_ind:Number;// = 0 private var m_mus_menu:SoundChannel; private var m_bt_mute:BtMute; private var m_buttons_opened:Number;// = 3 private static var m_instance:LevelSelectState; public function LevelSelectState(){ m_bt_mute = new BtMute(); super(); m_a_speed = 0.1; m_title = "LevelSelectState"; if (StaticSounds.m_mus_menu_loop == null){ StaticSounds.m_mus_menu_loop = new mus_menu_loop(); }; m_mc_wnd = new mc_wnd_map(); addChild(m_mc_wnd); var i:Number = 0; while (i != 7) { (m_mc_wnd[("bt_level" + i)] as MovieClip).gotoAndStop(1); (m_mc_wnd[("bt_level" + i)] as MovieClip).buttonMode = true; (m_mc_wnd[("bt_level" + i)] as MovieClip).addEventListener(MouseEvent.CLICK, onLevelBtClick); (m_mc_wnd[("bt_level" + i)] as MovieClip).addEventListener(MouseEvent.MOUSE_OVER, onSelectBt); (m_mc_wnd[("bt_level" + i)] as MovieClip).addEventListener(MouseEvent.MOUSE_OUT, onDeselectBt); i = (i + 1); }; (m_mc_wnd["bt_back"] as SimpleButton).addEventListener(MouseEvent.CLICK, onBackClick); (m_mc_wnd["bt_shop"] as SimpleButton).addEventListener(MouseEvent.CLICK, onShopClick); (m_mc_wnd["bt_achieve"] as SimpleButton).addEventListener(MouseEvent.CLICK, onAchieveClick); (m_mc_wnd["bt_stats"] as SimpleButton).addEventListener(MouseEvent.CLICK, onStatsClick); m_bt_mute.clickFunction = function ():void{ if (m_mus_menu != null){ m_mus_menu.soundTransform = new SoundTransform((GameProfile.getInstance().sound_volume * 1)); }; }; addChild(m_bt_mute); } private function onBackClick(_arg1:MouseEvent):void{ var _local2:Sound = new snd_click(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); StateManager.getInstance().changeState(MainMenuState.getInstance()); } override protected function onCleanUp():void{ super.onCleanUp(); if (m_mus_menu != null){ m_mus_menu.stop(); }; } private function onSelectBt(_arg1:MouseEvent):void{ if ((_arg1.currentTarget as MovieClip).currentFrame != 2){ (_arg1.currentTarget as MovieClip).gotoAndStop(1); m_cur_button_ind = Number((_arg1.currentTarget as MovieClip).name.charAt(8)); }; } private function onDeselectBt(_arg1:MouseEvent):void{ if ((_arg1.currentTarget as MovieClip).currentFrame != 2){ (_arg1.currentTarget as MovieClip).gotoAndStop(1); }; } private function onStatsClick(_arg1:MouseEvent):void{ var _local2:Sound = new snd_click(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); StateManager.getInstance().pushState(StatsState.getInstance()); } private function onLevelBtClick(_arg1:MouseEvent):void{ var _local2:Sound; var _local3:Number; if ((_arg1.currentTarget as MovieClip).currentFrame != 2){ _local2 = new snd_click(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); _local3 = Number((_arg1.currentTarget as MovieClip).name.charAt(8)); GamePlayState.getInstance().setLevelInd(_local3); GameProfile.getInstance().game_mode = "Story"; if (GameProfile.getInstance().game_mode == "Story"){ HelpState.getInstance().setLevelInd((_local3 + 1)); StateManager.getInstance().pushState(HelpState.getInstance()); } else { StateManager.getInstance().changeState(GamePlayState.getInstance()); GamePlayState.getInstance().resetLevel(); }; }; } private function onShopClick(_arg1:MouseEvent):void{ var _local2:Sound = new snd_click(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); StateManager.getInstance().pushState(UpgradesState.getInstance()); if (!GameProfile.getInstance().was_in_shop){ HelpState.getInstance().setLevelInd(9); StateManager.getInstance().pushState(HelpState.getInstance()); }; } private function onAchieveClick(_arg1:MouseEvent):void{ var _local2:Sound = new snd_click(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); StateManager.getInstance().pushState(AchievementsState.getInstance()); } override protected function onInit():void{ super.onInit(); m_mus_menu = StaticSounds.m_mus_menu_loop.play(0, int.MAX_VALUE, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); m_buttons_opened = GameProfile.getInstance().levels_opened; if (m_buttons_opened > 7){ m_buttons_opened = 7; }; var _local1:Number = 0; while (_local1 != 7) { (m_mc_wnd[("bt_level" + _local1)] as MovieClip).gotoAndStop(1); (m_mc_wnd[("bt_level" + _local1)] as MovieClip).buttonMode = true; _local1++; }; _local1 = m_buttons_opened; while (_local1 != 7) { (m_mc_wnd[("bt_level" + _local1)] as MovieClip).gotoAndStop(2); (m_mc_wnd[("bt_level" + _local1)] as MovieClip).buttonMode = false; _local1++; }; m_bt_mute.init(); } public static function getInstance():LevelSelectState{ if (m_instance == null){ m_instance = new (LevelSelectState); StringTable.getInstance(); }; return (m_instance); } } }//package States
Section 154
//MainMenuState (States.MainMenuState) package States { import flash.events.*; import GUI.*; import flash.display.*; import flash.media.*; public class MainMenuState extends BasicWindowState { public var onClickFunc:Function; private var m_is_inited:Boolean;// = false private var m_bt_mute:BtMute; private var m_mus_title:SoundChannel; private static var m_instance:MainMenuState; public function MainMenuState(){ m_bt_mute = new BtMute(); super(); m_a_speed = 0.1; m_title = "MainMenuState"; if (StaticSounds.m_mus_title_loop == null){ StaticSounds.m_mus_title_loop = new mus_title_loop(); }; m_mc_wnd = new mc_wnd_main_menu(); addChild(m_mc_wnd); m_bt_mute.clickFunction = function ():void{ if (m_mus_title != null){ m_mus_title.soundTransform = new SoundTransform((GameProfile.getInstance().sound_volume * 1.3)); }; }; addChild(m_bt_mute); } public function onStoryClick(_arg1:MouseEvent):void{ var e = _arg1; var snd:Sound = new snd_click(); snd.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); (m_mc_wnd["mc_logo"] as MovieClip).gotoAndPlay("away"); GameProfile.getInstance().game_mode = "Story"; onClickFunc = function ():void{ StateManager.getInstance().changeState(LevelSelectState.getInstance()); }; } public function onEndlessClick(_arg1:MouseEvent):void{ var e = _arg1; var snd:Sound = new snd_click(); snd.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); (m_mc_wnd["mc_logo"] as MovieClip).gotoAndPlay("away"); GameProfile.getInstance().game_mode = "Endless"; onClickFunc = function ():void{ GamePlayState.getInstance().setLevelInd(0); StateManager.getInstance().changeState(GamePlayState.getInstance()); GamePlayState.getInstance().resetLevel(); }; } override protected function onCleanUp():void{ super.onCleanUp(); m_is_inited = true; if (m_mus_title != null){ m_mus_title.stop(); }; } override protected function onResume():void{ super.onResume(); if (m_is_inited){ (m_mc_wnd["mc_logo"] as MovieClip).gotoAndPlay("show"); }; } override protected function onInit():void{ super.onInit(); m_mus_title = StaticSounds.m_mus_title_loop.play(0, int.MAX_VALUE, new SoundTransform((GameProfile.getInstance().sound_volume * 1.3))); if (m_is_inited){ (m_mc_wnd["mc_logo"] as MovieClip).gotoAndPlay("show"); }; (m_mc_wnd["mc_buttons"] as MovieClip).gotoAndPlay(28); m_bt_mute.init(); } public function onCreditsClick(_arg1:MouseEvent):void{ var e = _arg1; var snd:Sound = new snd_click(); snd.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); (m_mc_wnd["mc_logo"] as MovieClip).gotoAndPlay("away"); onClickFunc = function ():void{ StateManager.getInstance().pushState(CreditsState.getInstance()); }; } public function setButtons():void{ ((m_mc_wnd["mc_buttons"] as MovieClip).getChildAt(2) as SimpleButton).addEventListener(MouseEvent.CLICK, onStoryClick); ((m_mc_wnd["mc_buttons"] as MovieClip).getChildAt(1) as SimpleButton).addEventListener(MouseEvent.CLICK, onEndlessClick); ((m_mc_wnd["mc_buttons"] as MovieClip).getChildAt(0) as SimpleButton).addEventListener(MouseEvent.CLICK, onCreditsClick); if (GameProfile.getInstance().levels_opened == 7){ ((m_mc_wnd["mc_buttons"] as MovieClip).getChildAt(3) as MovieClip).visible = false; } else { ((m_mc_wnd["mc_buttons"] as MovieClip).getChildAt(3) as MovieClip).visible = true; }; m_is_inited = true; } public static function getInstance():MainMenuState{ if (m_instance == null){ m_instance = new (MainMenuState); }; return (m_instance); } } }//package States
Section 155
//ScoreSubmitState (States.ScoreSubmitState) package States { import flash.events.*; import flash.display.*; public class ScoreSubmitState extends BasicWindowState { private var m_is_inited:Boolean;// = false private static var m_instance:ScoreSubmitState; public function ScoreSubmitState(){ m_title = "ScoreSubmitState"; m_mc_wnd = new mc_wnd_score(); addChild(m_mc_wnd); (m_mc_wnd["bt_back"] as SimpleButton).addEventListener(MouseEvent.CLICK, onBackClick); } public function onBackClick(_arg1:MouseEvent):void{ StateManager.getInstance().closeScores(); StateManager.getInstance().popState(); } override protected function onCleanUp():void{ super.onCleanUp(); } override protected function onInit():void{ super.onInit(); StateManager.getInstance().showScores(GameProfile.getInstance().score); } public static function getInstance():ScoreSubmitState{ if (m_instance == null){ m_instance = new (ScoreSubmitState); }; return (m_instance); } } }//package States
Section 156
//StatsState (States.StatsState) package States { import flash.events.*; import flash.display.*; import flash.text.*; import flash.media.*; public class StatsState extends BasicWindowState { private var m_is_inited:Boolean;// = false private static var m_instance:StatsState; public function StatsState(){ m_a_speed = 0.1; m_title = "StatsState"; m_mc_wnd = new mc_wnd_stats(); addChild(m_mc_wnd); (m_mc_wnd["bt_back"] as SimpleButton).addEventListener(MouseEvent.CLICK, onBackClick); } public function onBackClick(_arg1:MouseEvent):void{ var _local2:Sound = new snd_click(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); StateManager.getInstance().popState(); } override protected function onCleanUp():void{ super.onCleanUp(); } override protected function onInit():void{ super.onInit(); (m_mc_wnd["tf_line0"] as TextField).text = ("" + GameProfile.getInstance().score); (m_mc_wnd["tf_line1"] as TextField).text = ("" + GameProfile.getInstance().achievements_stats["stars_collected"]); (m_mc_wnd["tf_line2"] as TextField).text = ("" + GameProfile.getInstance().total_death); (m_mc_wnd["tf_line3"] as TextField).text = ("" + GameProfile.getInstance().max_level); (m_mc_wnd["tf_line4"] as TextField).text = ("" + GameProfile.getInstance().total_jet_used); (m_mc_wnd["tf_line5"] as TextField).text = ("" + GameProfile.getInstance().total_health_used); (m_mc_wnd["tf_line6"] as TextField).text = ("" + GameProfile.getInstance().total_platforms_used); } public static function getInstance():StatsState{ if (m_instance == null){ m_instance = new (StatsState); }; return (m_instance); } } }//package States
Section 157
//UpgradesState (States.UpgradesState) package States { import flash.events.*; import flash.display.*; import Box2D.Common.Math.*; import GUI.ItemsInfo.*; import flash.utils.*; import flash.text.*; import flash.media.*; import flash.geom.*; public class UpgradesState extends BasicWindowState { private var m_upgrades_info:Array; private var m_mc_hero_weapon:MovieClip; private var m_icons:Array; private var m_mc_hero:MovieClip; private var xmlUpgrades:Class; private static var m_instance:UpgradesState; public function UpgradesState(){ xmlUpgrades = UpgradesState_xmlUpgrades; m_upgrades_info = new Array(); m_icons = new Array(6); super(); m_a_speed = 0.1; m_title = "UpgradesState"; m_mc_wnd = new mc_wnd_upgrades(); addChild(m_mc_wnd); m_mc_hero = m_mc_wnd["mc_joe"]; m_mc_hero_weapon = m_mc_wnd["mc_joe_weapon"]; m_mc_hero_weapon.visible = false; parseXMLData(); } override protected function onUpdate():void{ var _local1:Number; super.onUpdate(); if (b2Math.b2RandomRange(0, 100) < 2){ _local1 = b2Math.b2RandomRange(1, 2); m_mc_hero["mc_eyes"].gotoAndPlay(("eyesanimation_" + 1)); }; } private function onResumeClick(_arg1:MouseEvent):void{ var _local2:Sound = new snd_click(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1))); StateManager.getInstance().popState(); } override protected function onCleanUp():void{ super.onCleanUp(); stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); (m_mc_wnd["bt_back"] as SimpleButton).removeEventListener(MouseEvent.CLICK, onResumeClick); } private function onKeyDown(_arg1:KeyboardEvent):void{ } private function onIconOver(_arg1:MouseEvent):void{ var _local2:Number = Number((_arg1.currentTarget as SimpleButton).name); var _local3:Number = GameProfile.getInstance().upgrades[_local2]; (m_mc_wnd["tf_descr"] as TextField).text = (m_upgrades_info[_local2][_local3] as UpgradeItem).description; if (_local2 == 3){ m_mc_hero.visible = false; m_mc_hero_weapon.visible = true; m_mc_hero_weapon.gotoAndStop((_local3 + 1)); }; if (_local2 == 5){ (m_mc_hero["mc_antenna_anim"] as MovieClip).visible = true; (m_mc_hero["mc_antenna_anim"] as MovieClip).gotoAndStop((_local3 + 1)); }; } private function parseXMLData():void{ var _local4:XML; var _local5:Array; var _local6:XML; var _local7:UpgradeItem; var _local1:ByteArray = new xmlUpgrades(); var _local2:String = _local1.readUTFBytes(_local1.length); var _local3:XML = new XML(_local2); for each (_local4 in _local3.UpgradeChain) { _local5 = new Array(); for each (_local6 in _local4.UpgradeItem) { _local7 = new UpgradeItem(); _local7.cost = Number(_local6.attribute("cost")); _local7.description = _local6.attribute("description"); _local7.title = _local6.attribute("title"); _local7.color_item = _local6.attribute("color_item"); _local7.color = Number(_local6.attribute("color")); _local7.mc = new ((getDefinitionByName(_local6.attribute("mc_name")) as Class)); _local5.push(_local7); }; m_upgrades_info.push(_local5); }; reinitItems(); } private function onIconOut(_arg1:MouseEvent):void{ var _local2:Number = Number((_arg1.currentTarget as SimpleButton).name); var _local3:Number = GameProfile.getInstance().upgrades[_local2]; if (_local2 == 3){ m_mc_hero.visible = true; m_mc_hero_weapon.visible = false; m_mc_hero_weapon.stop(); }; (m_mc_hero["mc_antenna_anim"] as MovieClip).visible = false; } private function onIconClick(_arg1:MouseEvent):void{ var _local2:Sound = new snd_upgrade(); _local2.play(1, 0, new SoundTransform((GameProfile.getInstance().sound_volume * 1.6))); var _local3:Number = Number((_arg1.currentTarget as SimpleButton).name); var _local4:Number = GameProfile.getInstance().upgrades[_local3]; if (GameProfile.getInstance().upgrades[_local3] < (m_upgrades_info[_local3].length - 1)){ GameProfile.getInstance().stars = (GameProfile.getInstance().stars - (m_upgrades_info[_local3][_local4] as UpgradeItem).cost); var _local5 = GameProfile.getInstance().upgrades; var _local6 = _local3; var _local7 = (_local5[_local6] + 1); _local5[_local6] = _local7; }; GameProfile.getInstance().setStat(" ", 0); reinitItems(); GameProfile.getInstance().save(); } private function reinitItems():void{ var _local2:Number; var _local3:MovieClip; var _local4:String; var _local5:SimpleButton; var _local6:ColorTransform; (m_mc_wnd["tf_descr"] as TextField).text = ""; (m_mc_wnd["tf_stars"] as TextField).text = ("" + GameProfile.getInstance().stars); var _local1:Number = 0; while (_local1 != 6) { _local2 = GameProfile.getInstance().upgrades[_local1]; _local3 = (m_mc_wnd[("mc_upgrade" + _local1)] as MovieClip); (_local3["tf_grade"] as TextField).text = (((_local2 + 1) + "/") + m_upgrades_info[_local1].length); if (m_icons[_local1] != null){ _local3.removeChild(m_icons[_local1]); m_icons[_local1] = null; }; if (_local2 < m_upgrades_info[_local1].length){ (_local3["tf_cost"] as TextField).visible = true; (_local3["mc_star"] as MovieClip).visible = true; (_local3["tf_cost"] as TextField).text = ("" + (m_upgrades_info[_local1][_local2] as UpgradeItem).cost); _local5 = (m_upgrades_info[_local1][_local2] as UpgradeItem).mc; _local5.x = -10; _local5.y = 1; _local5.name = ("" + _local1); _local5.addEventListener(MouseEvent.MOUSE_OVER, onIconOver); _local5.addEventListener(MouseEvent.MOUSE_OUT, onIconOut); _local5.addEventListener(MouseEvent.CLICK, onIconClick); _local3.addChild(_local5); m_icons[_local1] = _local5; _local3["mc_fade"].visible = false; if ((m_upgrades_info[_local1][_local2] as UpgradeItem).cost > GameProfile.getInstance().stars){ _local3.addChild(_local3["mc_fade"]); _local3["mc_fade"].visible = true; }; }; if (_local2 >= (m_upgrades_info[_local1].length - 1)){ (_local3["tf_cost"] as TextField).visible = false; (_local3["mc_star"] as MovieClip).visible = false; }; _local4 = (m_upgrades_info[_local1][_local2] as UpgradeItem).color_item; if (_local4 != ""){ _local6 = new ColorTransform(); GameProfile.getInstance()[_local4] = (m_upgrades_info[_local1][_local2] as UpgradeItem).color; _local6.color = GameProfile.getInstance()[_local4]; (m_mc_hero[_local4] as MovieClip).transform.colorTransform = _local6; }; if (_local1 == 5){ (m_mc_hero["mc_antenna"] as MovieClip).gotoAndStop((_local2 + 2)); }; _local1++; }; } override protected function onInit():void{ super.onInit(); stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); (m_mc_wnd["bt_back"] as SimpleButton).addEventListener(MouseEvent.CLICK, onResumeClick); reinitItems(); } public static function getInstance():UpgradesState{ if (m_instance == null){ m_instance = new (UpgradesState); }; return (m_instance); } } }//package States
Section 158
//UpgradesState_xmlUpgrades (States.UpgradesState_xmlUpgrades) package States { import mx.core.*; public class UpgradesState_xmlUpgrades extends ByteArrayAsset { } }//package States
Section 159
//antenna_37 (Windows_fla.antenna_37) package Windows_fla { import flash.display.*; public dynamic class antenna_37 extends MovieClip { public function antenna_37(){ addFrameScript(0, this.frame1); } function frame1(){ gotoAndStop(1); } } }//package Windows_fla
Section 160
//badhed_head_square_57 (Windows_fla.badhed_head_square_57) package Windows_fla { import flash.events.*; import flash.net.*; import flash.display.*; public dynamic class badhed_head_square_57 extends MovieClip { public function badhed_head_square_57(){ addFrameScript(0, this.frame1); } function frame1(){ buttonMode = true; addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{ var _local2:URLRequest = new URLRequest("http://www.badhed.com/?ref=joe-the-alien_INTERVAL"); navigateToURL(_local2); }); } } }//package Windows_fla
Section 161
//badhed_logo_more_104 (Windows_fla.badhed_logo_more_104) package Windows_fla { import flash.events.*; import flash.net.*; import flash.display.*; public dynamic class badhed_logo_more_104 extends MovieClip { public function badhed_logo_more_104(){ addFrameScript(0, this.frame1); } function frame1(){ buttonMode = true; addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{ var _local2:URLRequest = new URLRequest("http://www.badhed.com/?ref=joe-the-alien_CREDITS"); navigateToURL(_local2); }); } } }//package Windows_fla
Section 162
//badhed_logo_more_squarecopy_2 (Windows_fla.badhed_logo_more_squarecopy_2) package Windows_fla { import flash.events.*; import flash.net.*; import flash.display.*; public dynamic class badhed_logo_more_squarecopy_2 extends MovieClip { public function badhed_logo_more_squarecopy_2(){ addFrameScript(0, this.frame1); } function frame1(){ buttonMode = true; addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{ var _local2:URLRequest = new URLRequest(("http://www.badhed.com/?ref=joe-the-alien_" + name)); navigateToURL(_local2); }); } } }//package Windows_fla
Section 163
//eyes_1_51 (Windows_fla.eyes_1_51) package Windows_fla { import flash.display.*; public dynamic class eyes_1_51 extends MovieClip { public function eyes_1_51(){ addFrameScript(3, this.frame4, 12, this.frame13); } function frame4(){ gotoAndStop(4); } function frame13(){ gotoAndStop(4); } } }//package Windows_fla
Section 164
//GAMETITLEANIMATION_93 (Windows_fla.GAMETITLEANIMATION_93) package Windows_fla { import flash.events.*; import flash.net.*; import flash.display.*; import flash.utils.*; import flash.text.*; import flash.media.*; import flash.geom.*; import adobe.utils.*; import flash.accessibility.*; import flash.desktop.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.system.*; import flash.text.engine.*; import flash.ui.*; import flash.xml.*; import flash.globalization.*; import flash.net.drm.*; import flash.sensors.*; import flash.text.ime.*; public dynamic class GAMETITLEANIMATION_93 extends MovieClip { public var TITLE:MovieClip; public function GAMETITLEANIMATION_93(){ addFrameScript(118, this.frame119, 133, this.frame134); } function frame119(){ stop(); } function frame134(){ var _local1 = parent.parent; _local1["onClickFunc"](); } } }//package Windows_fla
Section 165
//level1btn_7 (Windows_fla.level1btn_7) package Windows_fla { import flash.display.*; public dynamic class level1btn_7 extends MovieClip { public function level1btn_7(){ addFrameScript(0, this.frame1, 1, this.frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package Windows_fla
Section 166
//level2btn_9 (Windows_fla.level2btn_9) package Windows_fla { import flash.display.*; public dynamic class level2btn_9 extends MovieClip { public function level2btn_9(){ addFrameScript(0, this.frame1, 1, this.frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package Windows_fla
Section 167
//level3btn_13 (Windows_fla.level3btn_13) package Windows_fla { import flash.display.*; public dynamic class level3btn_13 extends MovieClip { public function level3btn_13(){ addFrameScript(0, this.frame1, 1, this.frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package Windows_fla
Section 168
//level4btn_15 (Windows_fla.level4btn_15) package Windows_fla { import flash.display.*; public dynamic class level4btn_15 extends MovieClip { public function level4btn_15(){ addFrameScript(0, this.frame1, 1, this.frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package Windows_fla
Section 169
//level5btn_16 (Windows_fla.level5btn_16) package Windows_fla { import flash.display.*; public dynamic class level5btn_16 extends MovieClip { public function level5btn_16(){ addFrameScript(0, this.frame1, 1, this.frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package Windows_fla
Section 170
//level6btn_18 (Windows_fla.level6btn_18) package Windows_fla { import flash.display.*; public dynamic class level6btn_18 extends MovieClip { public function level6btn_18(){ addFrameScript(0, this.frame1, 1, this.frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package Windows_fla
Section 171
//level7btn_25 (Windows_fla.level7btn_25) package Windows_fla { import flash.display.*; public dynamic class level7btn_25 extends MovieClip { public function level7btn_25(){ addFrameScript(0, this.frame1, 1, this.frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package Windows_fla
Section 172
//mc_ach_201 (Windows_fla.mc_ach_201) package Windows_fla { import flash.events.*; import flash.net.*; import flash.display.*; import flash.utils.*; import flash.text.*; import flash.media.*; import flash.geom.*; import adobe.utils.*; import flash.accessibility.*; import flash.desktop.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.system.*; import flash.text.engine.*; import flash.ui.*; import flash.xml.*; import flash.globalization.*; import flash.net.drm.*; import flash.sensors.*; import flash.text.ime.*; public dynamic class mc_ach_201 extends MovieClip { public var mc_ach:MovieClip; public var tf_text:TextField; public function mc_ach_201(){ addFrameScript(0, this.frame1, 1, this.frame2, 2, this.frame3, 3, this.frame4, 4, this.frame5, 5, this.frame6, 6, this.frame7, 7, this.frame8, 8, this.frame9, 9, this.frame10); } function frame1(){ this["mc_ach"]["mc_fade"].visible = false; } function frame2(){ this["mc_ach"]["mc_fade"].visible = false; } function frame3(){ this["mc_ach"]["mc_fade"].visible = false; } function frame4(){ this["mc_ach"]["mc_fade"].visible = false; } function frame5(){ this["mc_ach"]["mc_fade"].visible = false; } function frame6(){ this["mc_ach"]["mc_fade"].visible = false; } function frame7(){ this["mc_ach"]["mc_fade"].visible = false; } function frame8(){ this["mc_ach"]["mc_fade"].visible = false; } function frame9(){ this["mc_ach"]["mc_fade"].visible = false; } function frame10(){ this["mc_ach"]["mc_fade"].visible = false; } } }//package Windows_fla
Section 173
//mc_joe_32 (Windows_fla.mc_joe_32) package Windows_fla { import flash.events.*; import flash.net.*; import flash.display.*; import flash.utils.*; import flash.text.*; import flash.media.*; import flash.geom.*; import adobe.utils.*; import flash.accessibility.*; import flash.desktop.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.system.*; import flash.text.engine.*; import flash.ui.*; import flash.xml.*; import flash.globalization.*; import flash.net.drm.*; import flash.sensors.*; import flash.text.ime.*; public dynamic class mc_joe_32 extends MovieClip { public var mc:MovieClip; public function mc_joe_32(){ addFrameScript(1, this.frame2, 2, this.frame3); } function frame2(){ this["mc"].gotoAndPlay(1); } function frame3(){ this["mc"].gotoAndPlay(1); } } }//package Windows_fla
Section 174
//sdg_78 (Windows_fla.sdg_78) package Windows_fla { import flash.display.*; public dynamic class sdg_78 extends MovieClip { public var colorb:MovieClip; public var colorh:MovieClip; public var colorl:MovieClip; public function sdg_78(){ addFrameScript(0, this.frame1); } function frame1(){ stop(); } } }//package Windows_fla
Section 175
//sponsorlogo_86 (Windows_fla.sponsorlogo_86) package Windows_fla { import flash.events.*; import flash.net.*; import flash.display.*; public dynamic class sponsorlogo_86 extends MovieClip { public function sponsorlogo_86(){ addFrameScript(0, this.frame1); } function frame1(){ buttonMode = true; addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{ var _local2:URLRequest = new URLRequest("http://www.badhed.com/?ref=joe-the-alien_TITLE"); navigateToURL(_local2); }); } } }//package Windows_fla
Section 176
//Timeline_75 (Windows_fla.Timeline_75) package Windows_fla { import flash.display.*; public dynamic class Timeline_75 extends MovieClip { public function Timeline_75(){ addFrameScript(0, this.frame1); } function frame1(){ stop(); } } }//package Windows_fla
Section 177
//TitleButtonAnimation_98 (Windows_fla.TitleButtonAnimation_98) package Windows_fla { import flash.events.*; import flash.net.*; import flash.display.*; import flash.utils.*; import flash.text.*; import flash.media.*; import flash.geom.*; import adobe.utils.*; import flash.accessibility.*; import flash.desktop.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.system.*; import flash.text.engine.*; import flash.ui.*; import flash.xml.*; import flash.globalization.*; import flash.net.drm.*; import flash.sensors.*; import flash.text.ime.*; public dynamic class TitleButtonAnimation_98 extends MovieClip { public var mc_fade:MovieClip; public function TitleButtonAnimation_98(){ addFrameScript(28, this.frame29); } function frame29(){ stop(); var _local1 = parent.parent; _local1["setButtons"](); } } }//package Windows_fla
Section 178
//Constants (Constants) package { public class Constants { public static var SCALE:Number = 30; public static var GAME_SCALE:Number = 0.85; } }//package
Section 179
//GameContactListener (GameContactListener) package { import flash.display.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Dynamics.*; import GameObjects.Platforms.*; import GameObjects.*; import GameObjects.FallingItems.*; public class GameContactListener extends b2ContactListener { override public function Add(_arg1:b2ContactPoint):void{ } override public function Persist(_arg1:b2ContactPoint):void{ } override public function Result(_arg1:b2ContactResult):void{ var _local2:MovieClip = _arg1.shape1.GetBody().GetUserData(); var _local3:MovieClip = _arg1.shape2.GetBody().GetUserData(); if (_local2 != null){ if (_local2.parent.toString() == "[object Hero]"){ if (_local3 != null){ if ((_local3.parent.toString() as String).search("Platform") != -1){ if ((_local3.parent.toString() as String).search("Moving") == -1){ (_local2.parent as Hero).platform = (_local3.parent as BasePlatform); }; (_local3.parent as BasePlatform).touch(); }; if ((_local3.parent.toString() as String).search("Item") != -1){ (_local3.parent as MovingItem).touch(); }; if (((((!(((_local3.parent.toString() as String).search("Space") == -1))) || (!(((_local3.parent.toString() as String).search("Fire") == -1))))) || (!(((_local3.parent.toString() as String).search("Sky") == -1))))){ (_local3.parent as DamageItem).touch(); }; if ((_local3.parent.toString() as String).search("BonusBox") != -1){ (_local3.parent as BonusBox).touch(); }; }; }; }; } override public function Remove(_arg1:b2ContactPoint):void{ } } }//package
Section 180
//GameProfile (GameProfile) package { import States.*; import flash.net.*; public class GameProfile { private const MAX_STARS:Number = 10000; private const MAX_DEATHS:Number = 5; public var was_in_shop:Boolean;// = false public var score:Number; public var total_platforms_used:Number;// = 0 private var shared_obj:SharedObject; public var achievements:Array; public var mouse_enabled:Boolean;// = false public var bonuses_spawned:Number;// = 0 public var total_death:Number;// = 0 public var info_messages:Array; public var total_jet_used:Number;// = 0 public var levels_opened:Number;// = 1 public var achievements_stats:Array; public var total_health_used:Number;// = 0 public var sound_volume:Number;// = 1 public var game_mode:String;// = "Story" public var upgrades:Array; public var colorb:Number;// = 6724044 public var stars:Number; public var colorl:Number;// = 0x800000 public var max_level:Number;// = 0 private static var m_instance:GameProfile; public function GameProfile(){ achievements_stats = new Array(); super(); shared_obj = SharedObject.getLocal("joe_the_alien"); load(); } public function getSideSpeed():Number{ return ((350 + (upgrades[1] * 50))); } public function getJetPackSpeed():Number{ return ((600 + (upgrades[0] * 50))); } public function resetStat(_arg1:String):void{ achievements_stats[_arg1] = 0; } private function reset():void{ info_messages = new Array(); colorb = 6724044; colorl = 0x800000; stars = 0; score = 0; upgrades = new Array(6); var _local1:Number = 0; while (_local1 != 6) { upgrades[_local1] = 0; _local1++; }; achievements = new Array(6); _local1 = 0; while (_local1 != 10) { achievements[_local1] = false; _local1++; }; achievements_stats["stars_collected"] = stars; achievements_stats["deaths_on_level"] = 0; achievements_stats["bonuses_on_level"] = -1; achievements_stats["green_max"] = 0; achievements_stats["yellow_max"] = 0; achievements_stats["blue_max"] = 0; achievements_stats["health_on_level"] = 0; achievements_stats["jet_on_level"] = 0; } public function setStat(_arg1:String, _arg2:Number, _arg3:String="max"):void{ if (_arg3 == "max"){ if (achievements_stats[_arg1] < _arg2){ achievements_stats[_arg1] = _arg2; }; }; if (_arg3 == "summ"){ achievements_stats[_arg1] = (achievements_stats[_arg1] + _arg2); }; var _local4:Array = new Array(); var _local5:Number = 0; while (_local5 != achievements.length) { _local4[_local5] = achievements[_local5]; _local5++; }; if (!achievements[0]){ achievements[0] = (achievements_stats["stars_collected"] >= MAX_STARS); }; if (!achievements[1]){ achievements[1] = (((((((((((upgrades[0] >= 1)) && ((upgrades[1] >= 1)))) && ((upgrades[2] >= 1)))) && ((upgrades[3] >= 1)))) && ((upgrades[4] >= 1)))) && ((upgrades[5] >= 1))); }; if (!achievements[2]){ achievements[2] = (((((((((((upgrades[0] >= 2)) && ((upgrades[1] >= 2)))) && ((upgrades[2] >= 2)))) && ((upgrades[3] >= 2)))) && ((upgrades[4] >= 2)))) && ((upgrades[5] >= 1))); }; if (!achievements[3]){ achievements[3] = (achievements_stats["deaths_on_level"] >= MAX_DEATHS); }; if (((!(achievements[4])) && ((_arg1 == "bonuses_on_level")))){ achievements[4] = (achievements_stats["bonuses_on_level"] == bonuses_spawned); }; if (!achievements[5]){ achievements[5] = (achievements_stats["green_max"] == 10); }; if (!achievements[6]){ achievements[6] = (((((achievements_stats["green_max"] == 10)) && ((achievements_stats["yellow_max"] == 10)))) && ((achievements_stats["blue_max"] == 10))); }; if (!achievements[7]){ achievements[7] = (max_level >= 19); }; if (((!(achievements[8])) && ((_arg1 == "health_on_level")))){ achievements[8] = (achievements_stats["health_on_level"] == 0); }; if (((!(achievements[9])) && ((_arg1 == "jet_on_level")))){ achievements[9] = (achievements_stats["jet_on_level"] == 0); }; _local5 = 0; while (_local5 != achievements.length) { if (_local4[_local5] != achievements[_local5]){ GamePlayState.getInstance().getGUI().showAch(_local5); save(); }; _local5++; }; } public function load():void{ try { if (shared_obj.data.inited == null){ reset(); save(); } else { achievements_stats = shared_obj.data.achievements_stats; achievements = shared_obj.data.achievements; upgrades = shared_obj.data.upgrades; score = shared_obj.data.score; stars = shared_obj.data.stars; colorl = shared_obj.data.colorl; colorb = shared_obj.data.colorb; info_messages = new Array(); levels_opened = shared_obj.data.levels_opened; sound_volume = shared_obj.data.sound_volume; total_death = shared_obj.data.total_death; max_level = shared_obj.data.max_level; total_jet_used = shared_obj.data.total_jet_used; total_health_used = shared_obj.data.total_health_used; total_platforms_used = shared_obj.data.total_platforms_used; was_in_shop = shared_obj.data.was_in_shop; }; } catch(e:Error) { reset(); save(); }; } public function getFuelConsumptionRate():Number{ return (((upgrades[0] * 0.3) + 1)); } public function getHealthMaxValue():Number{ return ((50 + (upgrades[2] * 25))); } public function save():void{ shared_obj.data.inited = true; shared_obj.data.achievements_stats = achievements_stats; shared_obj.data.achievements = achievements; shared_obj.data.upgrades = upgrades; shared_obj.data.score = score; shared_obj.data.stars = stars; shared_obj.data.colorl = colorl; shared_obj.data.colorb = colorb; shared_obj.data.levels_opened = levels_opened; shared_obj.data.sound_volume = sound_volume; shared_obj.data.total_death = total_death; shared_obj.data.max_level = max_level; shared_obj.data.total_jet_used = total_jet_used; shared_obj.data.total_health_used = total_health_used; shared_obj.data.total_platforms_used = total_platforms_used; shared_obj.data.was_in_shop = was_in_shop; shared_obj.flush(); } public static function getInstance():GameProfile{ if (m_instance == null){ m_instance = new (GameProfile); }; return (m_instance); } } }//package
Section 181
//ItemsCreator (ItemsCreator) package { import Box2D.Dynamics.*; import GameObjects.Platforms.*; import GameObjects.*; import GameObjects.LevelItems.*; import GameObjects.FallingItems.*; public class ItemsCreator { public static function createFallingItem(_arg1:Number, _arg2:b2World, _arg3:Number, _arg4:Number, _arg5:Hero, _arg6:Level):DamageItem{ switch (_arg1){ case 0: return (new SpaceJunk0(_arg2, _arg3, _arg4, _arg5, _arg6)); case 1: return (new SpaceJunk1(_arg2, _arg3, _arg4, _arg5, _arg6)); case 2: return (new SpaceJunk2(_arg2, _arg3, _arg4, _arg5, _arg6)); case 3: return (new SpaceBomb(_arg2, _arg3, _arg4, _arg5, _arg6)); case 4: return (new SkyJunk0(_arg2, _arg3, _arg4, _arg5, _arg6)); case 5: return (new SkyJunk1(_arg2, _arg3, _arg4, _arg5, _arg6)); case 6: return (new SkyBomb(_arg2, _arg3, _arg4, _arg5, _arg6)); case 7: return (new FireJunk0(_arg2, _arg3, _arg4, _arg5, _arg6)); case 8: return (new FireJunk1(_arg2, _arg3, _arg4, _arg5, _arg6)); case 9: return (new FireBomb(_arg2, _arg3, _arg4, _arg5, _arg6)); default: return (null); }; } public static function createItem(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Hero, _arg5:Level):BasicItem{ switch (_arg1){ case 0: return (new ItemStar(_arg2, _arg3, _arg4, _arg5)); case 1: return (new ItemFuel(_arg2, _arg3, _arg4, _arg5)); case 2: return (new ItemHealth(_arg2, _arg3, _arg4, _arg5)); case 3: return (new ItemBonusTimeSlow(_arg2, _arg3, _arg4, _arg5)); case 4: return (new ItemBonusHypno(_arg2, _arg3, _arg4, _arg5)); case 5: return (new ItemBonusStarfall(_arg2, _arg3, _arg4, _arg5)); default: return (null); }; } public static function createPlatform(_arg1:Number, _arg2:b2World, _arg3:Number, _arg4:Number, _arg5:Hero, _arg6:Level, _arg7:Number):BasePlatform{ switch (_arg1){ case 0: default: return (new PlanePlatform(_arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); case 1: return (new RotatingPlatform(_arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); case 2: return (new DisappearingPlatform(_arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); case 3: return (new MovingRightPlatform(_arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); case 4: return (new MovingLeftPlatform(_arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); case 5: return (new PushingPlatform(_arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); case 6: return (new MagnetPlatform(_arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); }; } } }//package
Section 182
//Level (Level) package { import flash.events.*; import States.*; import GUI.*; import flash.display.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import GameObjects.Platforms.*; import GameObjects.*; import GameObjects.LevelItems.*; import GameObjects.FallingItems.*; import GUI.ItemsInfo.*; import flash.utils.*; import flash.text.*; public class Level extends Sprite { private const JUNK_FALLING_START_HEIGHT:Number = 400; private const SHOW_HINT_DIST:Number = 200; private const BLOCK_START_Y:Number = 320; private var m_local_part_ind:Number;// = 0 private var BLOCK_V_DIST:Number;// = 160 private var m_is_level_started:Boolean;// = false private var m_star_ft:Number;// = 200 private var m_cur_bonus:ItemBonus; private var m_mc_bonus_bg:MovieClip; private var m_parts_count:Number;// = 0 private var m_moving_items:Array; private var m_part_ind:Number;// = 0 private var m_fuel_p:Number;// = 20 private var m_world:b2World; private var m_combo_panel:ComboStack; private var m_moving_bg_items:Array; private var m_moving_blocks:Array; private var m_hide_bg_items:Boolean;// = false private var m_level_ind:Number;// = 0 private var m_destroy_list:Array; private var m_falling_stars:Array; private var m_bg:MovieClip; private var m_prev_hint_height:Number;// = 0 private var m_magnet_p:Number;// = 2 private var m_magnet:Magnet; private var m_progress_panel:LevelProgressPanel; private var m_bonus_p:Number;// = 2 private var m_hero:Hero; private var m_level_length:Number;// = 1200 private var m_available_platforms:Array; private var m_star_sb:Number;// = 50 private var m_level_progress:Number; private var m_hero_place_arrow:HeroPlaceArrow; private var m_is_moving:Boolean;// = true private var m_is_junk_falling:Boolean; private var m_falling_items:Array; private var m_bonus_boxes:Array; private var m_stars_panel:StarsCounterPanel; private var m_star_p:Number;// = 50 private var m_star_fcrate:Number;// = 5 private var m_up_force:Number;// = 4.5 private var m_health_p:Number;// = 10 private var m_allowed_colors:Number; private var m_mc_bg_items:MovieClip; public function Level(_arg1:b2World, _arg2:Hero, _arg3:Number=0){ m_destroy_list = new Array(); m_available_platforms = [0]; super(); LevelsInfoLoader.getInstance(); m_part_ind = _arg3; m_mc_bonus_bg = new MovieClip(); m_bg = new mc_bg(); m_hero = _arg2; m_world = _arg1; addEventListener(Event.ADDED_TO_STAGE, init); } public function getComboPanel():ComboStack{ return (m_combo_panel); } private function init(_arg1:Event):void{ m_progress_panel = new LevelProgressPanel(); resetLevelParams(true); m_hero.body.SetXForm(new b2Vec2(((stage.stageWidth * 0.5) / Constants.SCALE), (50 / Constants.SCALE)), 0); m_level_progress = 0; m_falling_stars = new Array(); m_moving_items = new Array(); m_moving_blocks = new Array(); m_moving_bg_items = new Array(); m_falling_items = new Array(); m_bonus_boxes = new Array(); m_bg.gotoAndStop(1); addChild(m_bg); m_mc_bg_items = new MovieClip(); addChild(m_mc_bg_items); addChild(m_mc_bonus_bg); addChild(m_progress_panel); m_hero_place_arrow = new HeroPlaceArrow(m_hero); addChild(m_hero_place_arrow); m_stars_panel = new StarsCounterPanel(); GamePlayState.getInstance().getGUI().addChild(m_stars_panel); m_combo_panel = new ComboStack(); m_combo_panel.clear(); GamePlayState.getInstance().getGUI().addChild(m_combo_panel); generateNewBlock(); generateNewBlock(); generateNewBlock(); removeEventListener(Event.ADDED_TO_STAGE, init); addChild(m_hero); resetLevelParams(); } public function getStarsPanel():StarsCounterPanel{ return (m_stars_panel); } public function getProgressPanel():LevelProgressPanel{ return (m_progress_panel); } public function addToDestroyList(_arg1:b2Body):void{ if (m_destroy_list.indexOf(_arg1) == -1){ m_destroy_list.push(_arg1); }; } public function getCurBonus():ItemBonus{ return (m_cur_bonus); } private function generateMagnet():void{ var _local1:Boolean; var _local2:String; if (Math.round(b2Math.b2RandomRange(0, 1000)) < m_magnet_p){ _local1 = true; if (m_magnet == null){ m_magnet = new Magnet(m_hero); } else { _local1 = m_magnet.isFinished(); }; if (_local1){ _local2 = "right"; if (Math.round(b2Math.b2RandomRange(0, 10)) < 5){ _local2 = "left"; }; addChild(m_magnet); m_magnet.reset(_local2); }; }; } public function getCurLevelString():String{ return ((((m_level_ind + 1) + ".") + ((m_local_part_ind % m_parts_count) + 1))); } public function getFallingStarsList():Array{ return (m_falling_stars); } private function resetLevelParams(_arg1:Boolean=false):void{ var _local4:MovieClip; if (m_stars_panel != null){ m_stars_panel.updateCounter(); }; var _local2:LevelInfo = LevelsInfoLoader.getInstance().getLevelInfo(m_level_ind); var _local3:LevelPartInfo = (_local2.parts_infos[m_local_part_ind] as LevelPartInfo); m_parts_count = _local2.parts_infos.length; if (GameProfile.getInstance().game_mode == "Story"){ GamePlayState.getInstance().getGUI().setLevelInd(((m_part_ind % m_parts_count) + 1), (m_level_ind + 1)); } else { GamePlayState.getInstance().getGUI().setLevelInd((m_local_part_ind + 1)); }; if (m_cur_bonus != null){ m_cur_bonus.remove(); }; if (GameProfile.getInstance().game_mode == "Story"){ m_progress_panel.setPartsCount(m_parts_count, (m_level_ind + 1)); m_up_force = _local3.speed; BLOCK_V_DIST = _local3.dist; m_available_platforms = _local3.platforms; m_star_ft = _local3.falling_trash_p; m_star_sb = (_local3.falling_trash_p / 4); m_star_p = _local3.stars_p; m_fuel_p = _local3.fuel_p; m_health_p = _local3.health_p; m_bonus_p = _local3.bonus_p; m_magnet_p = _local3.magnets_p; m_level_length = _local2.part_length; m_allowed_colors = _local2.platform_colors; if (!_arg1){ GamePlayState.getInstance().getGUI().showInfo(_local3.wnd_name); }; } else { m_up_force = (3.4 + (m_local_part_ind * 0.2)); BLOCK_V_DIST = 140; m_available_platforms = [0, 1, 2, 3, 4, 5, 6]; m_star_ft = 200; m_star_sb = (m_star_ft / 4); m_star_p = 50; m_fuel_p = (30 + (m_local_part_ind * 0.3)); m_health_p = (30 + (m_local_part_ind * 0.3)); m_bonus_p = 2; m_magnet_p = 2; m_level_length = 1000; m_allowed_colors = 3; }; if (m_part_ind == 0){ m_bg.gotoAndStop(1); } else { m_bg.gotoAndPlay(((m_part_ind - 1) * 20)); }; for each (_local4 in m_moving_bg_items) { if ((m_part_ind % 3) != 0){ _local4.gotoAndPlay((((m_part_ind % 3) - 1) * 20)); }; }; if ((m_part_ind % 3) == 0){ m_hide_bg_items = true; }; } public function set isLevelStarted(_arg1:Boolean):void{ m_is_level_started = (m_is_moving = _arg1); m_moving_blocks.splice(0, 1); } private function generateNewBlock(_arg1:Boolean=false):void{ var _local6:BasePlatform; var _local2:Boolean; var _local3:Number = b2Math.b2RandomRange(50, (stage.stageWidth - 50)); var _local4:Number = 0; if (m_moving_blocks.length == 0){ _local4 = BLOCK_START_Y; } else { _local4 = (((m_moving_blocks[(m_moving_blocks.length - 1)] as PhysicalBody).body.GetPosition().y * Constants.SCALE) + BLOCK_V_DIST); }; var _local5:Number = Math.floor(b2Math.b2RandomRange(0, m_available_platforms.length)); if (_local5 > m_available_platforms.length){ _local5 = m_available_platforms.length; }; _local5 = m_available_platforms[_local5]; if (m_moving_blocks.length == 0){ _local2 = true; }; if (_arg1){ _local6 = new FinishPlatform(m_world, 200, _local4, m_hero, this); } else { if (_local2){ _local6 = new StartPlatform(m_world, 70, 150, m_hero, this); } else { _local6 = ItemsCreator.createPlatform(_local5, m_world, _local3, _local4, m_hero, this, m_allowed_colors); }; }; addChild(_local6); m_moving_blocks.push(_local6); addChild(m_progress_panel); addChild(m_hero); } public function resetLevel(_arg1:Boolean=false):void{ var _local4:MovieClip; GameProfile.getInstance().resetStat("deaths_on_level"); GameProfile.getInstance().resetStat("bonuses_on_level"); GameProfile.getInstance().resetStat("health_on_level"); GameProfile.getInstance().resetStat("jet_on_level"); GameProfile.getInstance().bonuses_spawned = 0; var _local2:LevelInfo = LevelsInfoLoader.getInstance().getLevelInfo(m_level_ind); if (m_level_ind == 0){ GameProfile.getInstance().achievements_stats["health_on_level"] = 1; }; if (m_magnet != null){ if (m_magnet.parent != null){ removeChild(m_magnet); m_magnet = null; }; }; if (!_arg1){ m_local_part_ind = 0; m_part_ind = (_local2.setting * 3); }; m_prev_hint_height = 0; m_is_junk_falling = true; m_is_level_started = false; m_is_moving = false; m_hero.reset(); var _local3:Number = 0; while (_local3 != m_moving_blocks.length) { (m_moving_blocks[_local3] as MovingItem).remove(); _local3++; }; destroyObjects(); _local3 = 0; while (_local3 != m_moving_items.length) { if ((m_moving_items[_local3] as BasicItem).parent != null){ (m_moving_items[_local3] as BasicItem).parent.removeChild((m_moving_items[_local3] as BasicItem)); }; _local3++; }; _local3 = 0; while (_local3 != m_bonus_boxes.length) { addToDestroyList((m_bonus_boxes[_local3] as BonusBox).body); _local3++; }; _local3 = 0; while (_local3 != m_falling_items.length) { (m_falling_items[_local3] as DamageItem).remove(); _local3++; }; _local3 = 0; while (_local3 != m_falling_stars.length) { (m_falling_stars[_local3] as ItemStar).remove(); _local3++; }; for each (_local4 in m_moving_bg_items) { _local4.parent.removeChild(_local4); }; m_combo_panel.clear(); if (m_cur_bonus != null){ m_cur_bonus.remove(); }; m_falling_stars = new Array(); m_moving_items = new Array(); m_moving_blocks = new Array(); m_moving_bg_items = new Array(); m_mc_bg_items = new MovieClip(); m_falling_items = new Array(); m_hero.resetFuelValue(); m_hero.resetHealthValue(); addChild(m_bg); addChild(m_mc_bg_items); addChild(m_mc_bonus_bg); addChild(m_hero); addChild(m_hero_place_arrow); resetLevelParams(); m_level_progress = 0; generateNewBlock(); generateNewBlock(); generateNewBlock(); } public function set levelInd(_arg1:Number):void{ m_level_ind = _arg1; } private function generateFallingItem():void{ var _local1:DamageItem; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:BonusBox; if (Math.round(b2Math.b2RandomRange(0, 10000)) < m_star_ft){ if (m_part_ind < 3){ _local2 = Math.round(b2Math.b2RandomRange(0, 2)); if (Math.round(b2Math.b2RandomRange(0, 1000)) < m_star_sb){ _local2 = 3; }; } else { if ((((m_part_ind > 2)) && ((m_part_ind < 6)))){ _local2 = Math.round(b2Math.b2RandomRange(4, 5)); if (Math.round(b2Math.b2RandomRange(0, 1000)) < m_star_sb){ _local2 = 6; }; } else { _local2 = Math.round(b2Math.b2RandomRange(7, 8)); if (Math.round(b2Math.b2RandomRange(0, 1000)) < m_star_sb){ _local2 = 9; }; }; }; _local3 = b2Math.b2RandomRange(50, (stage.stageWidth - 50)); _local4 = -50; _local1 = ItemsCreator.createFallingItem(_local2, m_world, _local3, _local4, m_hero, this); addChild(_local1); m_falling_items.push(_local1); if (Math.round(b2Math.b2RandomRange(0, 1000)) < m_star_fcrate){ _local5 = new BonusBox(m_world, b2Math.b2RandomRange(50, (stage.stageWidth - 50)), _local4, this, m_hero); m_bonus_boxes.push(_local5); addChild(_local5); }; }; } public function get isLevelStarted():Boolean{ return (m_is_level_started); } private function generateBGItem():void{ var _local2:Boolean; var _local3:Number; var _local4:Number; var _local5:MovieClip; var _local1:Number = (m_level_progress / m_level_length); if (b2Math.b2RandomRange(0, 1000) < 10){ _local2 = true; if (m_moving_bg_items.length > 0){ if ((m_moving_bg_items[(m_moving_bg_items.length - 1)] as MovieClip).y > (500 - (m_moving_bg_items[(m_moving_bg_items.length - 1)] as MovieClip).height)){ _local2 = false; }; }; if (_local2){ _local3 = Math.round(b2Math.b2RandomRange(0, 2)); _local4 = Math.floor((m_part_ind / 3)); _local5 = new ((getDefinitionByName(((("mc_bg_item_" + _local4) + "_") + _local3)) as Class)); _local5.x = b2Math.b2RandomRange(0, stage.stageWidth); _local5.y = (500 + (_local5.height * 0.5)); m_mc_bg_items.addChild(_local5); _local5.gotoAndStop(1); if ((m_part_ind % 3) == 0){ _local5.gotoAndStop(1); } else { _local5.gotoAndStop(((m_part_ind % 3) * 20)); }; m_moving_bg_items.push(_local5); }; }; } private function destroyObjects():void{ var _local1:b2Body; for each (_local1 in m_destroy_list) { m_world.DestroyBody(_local1); if (_local1.GetUserData() != null){ if (_local1.GetUserData().parent != null){ if (_local1.GetUserData().parent.parent != null){ removeChild(_local1.GetUserData().parent); }; }; }; }; m_destroy_list = new Array(); } public function get levelInd():Number{ return (m_level_ind); } private function generateBonus():void{ var _local1:Number; var _local3:ItemStar; var _local4:ItemFuel; var _local5:ItemHealth; var _local6:BasicItem; var _local8:ItemStar; var _local2:Number = (500 + BLOCK_V_DIST); if (m_moving_blocks.length != 0){ if (m_moving_blocks[(m_moving_blocks.length - 1)] != null){ _local2 = (((m_moving_blocks[(m_moving_blocks.length - 1)] as PhysicalBody).body.GetPosition().y * Constants.SCALE) + (BLOCK_V_DIST * 0.5)); }; }; var _local7:Boolean; if (m_moving_items.length > 0){ if ((m_moving_items[(m_moving_items.length - 1)] as BasicItem).getY() > (500 - (BLOCK_V_DIST * 0.5))){ _local7 = false; }; }; if (Math.round(b2Math.b2RandomRange(0, 10000)) < m_star_p){ _local8 = new ItemStar(b2Math.b2RandomRange(50, (400 - 50)), -70, m_hero, this); getFallingStarsList().push(_local8); addChild(_local8); }; if (_local7){ if ((((Math.round(b2Math.b2RandomRange(0, 1000)) < m_fuel_p)) && ((m_hero.getJetFuelValue() < 100)))){ _local1 = b2Math.b2RandomRange(50, (stage.stageWidth - 50)); _local4 = (ItemsCreator.createItem(1, _local1, _local2, m_hero, this) as ItemFuel); addChild(_local4); m_moving_items.push(_local4); }; if ((((Math.round(b2Math.b2RandomRange(0, 1000)) < m_health_p)) && ((m_hero.getHealthValue() < 100)))){ _local1 = b2Math.b2RandomRange(50, (stage.stageWidth - 50)); _local5 = (ItemsCreator.createItem(2, _local1, _local2, m_hero, this) as ItemHealth); addChild(_local5); m_moving_items.push(_local5); }; if (Math.round(b2Math.b2RandomRange(0, 1000)) < m_star_p){ _local1 = b2Math.b2RandomRange(50, (stage.stageWidth - 50)); _local3 = (ItemsCreator.createItem(0, _local1, _local2, m_hero, this) as ItemStar); addChild(_local3); m_moving_items.push(_local3); }; if (Math.round(b2Math.b2RandomRange(0, 100)) < m_bonus_p){ _local1 = b2Math.b2RandomRange(50, (stage.stageWidth - 50)); _local6 = ItemsCreator.createItem(Math.round(b2Math.b2RandomRange(3, 5)), _local1, _local2, m_hero, this); addChild(_local6); m_moving_items.push(_local6); GameProfile.getInstance().bonuses_spawned = (GameProfile.getInstance().bonuses_spawned + 1); }; }; } public function update():void{ var _local3:ItemStar; var _local4:Number; var _local5:MovieClip; var _local6:Number; var _local7:DamageItem; var _local8:BasicItem; var _local9:MovieClip; var _local10:MovieClip; if (m_is_moving){ m_level_progress++; }; var _local1:Number = (m_level_progress / m_level_length); if (GameProfile.getInstance().game_mode == "Story"){ m_progress_panel.visible = true; _local4 = ((_local1 / m_parts_count) + ((m_local_part_ind % m_parts_count) * (1 / m_parts_count))); if ((m_moving_blocks[(m_moving_blocks.length - 1)] is FinishPlatform)){ _local4 = 1; }; m_progress_panel.setProgress(_local4); } else { m_progress_panel.visible = false; }; if (_local1 >= 1){ m_level_progress = 0; if ((((m_local_part_ind == (m_parts_count - 1))) && ((GameProfile.getInstance().game_mode == "Story")))){ generateNewBlock(true); } else { _local5 = new mc_next_level(); _local5.x = 0; _local5.y = 0; addChild(_local5); if (GameProfile.getInstance().game_mode == "Story"){ (_local5["m_anim"]["tf_level"] as TextField).text = (((m_level_ind + 1) + ".") + ((m_local_part_ind % m_parts_count) + 2)); } else { (_local5["m_anim"]["tf_level"] as TextField).text = (" " + (m_local_part_ind + 2)); }; if (m_part_ind < 8){ m_part_ind++; m_local_part_ind++; GameProfile.getInstance().setStat("max_level", 0); if (GameProfile.getInstance().max_level < m_local_part_ind){ GameProfile.getInstance().max_level = m_local_part_ind; }; } else { if (GameProfile.getInstance().game_mode != "Story"){ m_part_ind = 0; m_local_part_ind++; GameProfile.getInstance().setStat("max_level", 0); if (GameProfile.getInstance().max_level < m_local_part_ind){ GameProfile.getInstance().max_level = m_local_part_ind; }; }; }; resetLevelParams(); }; }; if (m_moving_blocks.length > 0){ _local6 = ((m_moving_blocks[(m_moving_blocks.length - 1)] as PhysicalBody).body.GetPosition().y * Constants.SCALE); if ((((_local6 < 600)) && (!((m_moving_blocks[(m_moving_blocks.length - 1)] is FinishPlatform))))){ generateNewBlock(); }; }; var _local2:Number = 0; while (_local2 != m_moving_blocks.length) { if ((((m_moving_blocks[(m_moving_blocks.length - 1)] is FinishPlatform)) && (((m_moving_blocks[(m_moving_blocks.length - 1)] as BasePlatform).body.GetPosition().y < (500 / Constants.SCALE))))){ m_is_moving = false; }; (m_moving_blocks[_local2] as MovingItem).update(); if (m_is_moving){ (m_moving_blocks[_local2] as MovingItem).moveUp(m_up_force); }; if (((((((m_moving_blocks[_local2] as MovingItem).body.GetPosition().y < (-150 / Constants.SCALE))) || (((m_moving_blocks[_local2] as MovingItem).body.GetPosition().x < (-150 / Constants.SCALE))))) || (((m_moving_blocks[_local2] as MovingItem).body.GetPosition().x > (550 / Constants.SCALE))))){ (m_moving_blocks[_local2] as MovingItem).remove(); m_moving_blocks.splice(_local2, 1); break; }; _local2++; }; _local2 = 0; while (_local2 != m_bonus_boxes.length) { (m_bonus_boxes[_local2] as BonusBox).update(); if (((m_bonus_boxes[_local2] as BonusBox).body.GetPosition().y * Constants.SCALE) > (500 + 200)){ addToDestroyList((m_bonus_boxes[_local2] as BonusBox).body); m_bonus_boxes.splice(_local2, 1); break; }; _local2++; }; _local2 = 0; while (_local2 != m_falling_items.length) { _local7 = (m_falling_items[_local2] as DamageItem); _local7.update(); if ((((_local7.getY() < -150)) || ((_local7.getY() > (500 + 200))))){ _local7.remove(); m_falling_items.splice(_local2, 1); break; }; _local2++; }; for each (_local3 in m_falling_stars) { _local3.fall(); }; if (((m_is_moving) && (m_is_junk_falling))){ generateBonus(); generateFallingItem(); }; _local2 = 0; while (_local2 != m_moving_items.length) { _local8 = (m_moving_items[_local2] as BasicItem); _local8.update(); if (m_is_moving){ _local8.moveUp(m_up_force); }; if (_local8.getY() < -150){ if (_local8.parent != null){ _local8.parent.removeChild(_local8); }; m_moving_items.splice(_local2, 1); break; }; _local2++; }; m_hero_place_arrow.setPosotion(m_hero.X, m_hero.Y); if (m_cur_bonus != null){ m_cur_bonus.update(); }; if (m_is_moving){ if (m_magnet != null){ m_magnet.update(); }; generateMagnet(); }; if (m_hero.platform != null){ m_hero.platform.update(); m_hero.platform = null; }; generateBGItem(); if (m_hide_bg_items){ if (m_mc_bg_items.alpha > 0){ m_mc_bg_items.alpha = (m_mc_bg_items.alpha - 0.05); if (m_mc_bg_items.alpha <= 0){ for each (_local9 in m_moving_bg_items) { _local9.y = -300; }; m_hide_bg_items = false; m_mc_bg_items.alpha = 1; }; }; }; if (m_is_moving){ for each (_local10 in m_moving_bg_items) { _local10.y = (_local10.y - 1); }; }; if (m_moving_bg_items[0] != null){ if (m_moving_bg_items[0].y < -200){ m_mc_bg_items.removeChild(m_moving_bg_items[0]); m_moving_bg_items.splice(0, 1); }; }; destroyObjects(); } public function setPlatformsSpeed(_arg1:Number):void{ m_up_force = _arg1; } public function setBonus(_arg1:ItemBonus):void{ if (m_cur_bonus != null){ m_cur_bonus.remove(); }; m_cur_bonus = _arg1; } public function setBonusBG(_arg1:MovieClip):void{ m_mc_bonus_bg.addChild(_arg1); } public function resetPlatformsSpeed():void{ var _local1:LevelInfo = LevelsInfoLoader.getInstance().getLevelInfo(0); var _local2:LevelPartInfo = (_local1.parts_infos[0] as LevelPartInfo); m_up_force = _local2.speed; } public function removeBonus():void{ if ((m_cur_bonus is ItemBonusHypno)){ m_hero.hideSpyral(); GamePlayState.getInstance().resetKeys(); }; m_cur_bonus = null; } } }//package
Section 183
//LevelsInfoLoader (LevelsInfoLoader) package { import GUI.ItemsInfo.*; import flash.utils.*; public class LevelsInfoLoader { private var xmlLevels:Class; private var m_levels_info:Array; private static var m_instamce:LevelsInfoLoader; public function LevelsInfoLoader(){ xmlLevels = LevelsInfoLoader_xmlLevels; super(); parseXMLData(); } public function getLevelInfo(_arg1:Number):LevelInfo{ return (m_levels_info[_arg1]); } private function parseXMLData():void{ var _local4:XML; var _local5:LevelInfo; var _local6:XML; var _local7:LevelPartInfo; var _local8:String; var _local1:ByteArray = new xmlLevels(); var _local2:String = _local1.readUTFBytes(_local1.length); var _local3:XML = new XML(_local2); m_levels_info = new Array(); for each (_local4 in _local3.Level) { _local5 = new LevelInfo(); _local5.parts_infos = new Array(); _local5.part_length = _local4.attribute("part_length"); _local5.setting = Number(_local4.attribute("setting")); _local5.platform_colors = _local4.attribute("platform_colors"); for each (_local6 in _local4.Part) { _local7 = new LevelPartInfo(); _local8 = _local6.attribute("platforms"); if (_local8 != ""){ _local7.platforms = _local8.split(","); }; _local7.falling_trash_p = _local6.attribute("falling_trash_p"); _local7.stars_p = _local6.attribute("stars_p"); _local7.fuel_p = _local6.attribute("fuel_p"); _local7.health_p = _local6.attribute("health_p"); _local7.bonus_p = _local6.attribute("bonus_p"); _local7.magnets_p = _local6.attribute("magnets_p"); _local7.speed = _local6.attribute("speed"); _local7.dist = _local6.attribute("dist"); _local7.wnd_name = _local6.attribute("wnd_name"); _local5.parts_infos.push(_local7); }; m_levels_info.push(_local5); }; } public static function getInstance():LevelsInfoLoader{ if (m_instamce == null){ m_instamce = new (LevelsInfoLoader); }; return (m_instamce); } } }//package
Section 184
//LevelsInfoLoader_xmlLevels (LevelsInfoLoader_xmlLevels) package { import mx.core.*; public class LevelsInfoLoader_xmlLevels extends ByteArrayAsset { } }//package
Section 185
//mc_ach_info (mc_ach_info) package { import flash.display.*; public dynamic class mc_ach_info extends MovieClip { public var m_info:MovieClip; public function mc_ach_info(){ addFrameScript(69, this.frame70); } function frame70(){ if (parent != null){ parent.removeChild(this); }; } } }//package
Section 186
//mc_bg (mc_bg) package { import flash.display.*; public dynamic class mc_bg extends MovieClip { public function mc_bg(){ addFrameScript(18, this.frame19, 38, this.frame39, 58, this.frame59, 78, this.frame79, 98, this.frame99, 118, this.frame119, 138, this.frame139, 159, this.frame160); } function frame59(){ gotoAndStop(60); } function frame39(){ gotoAndStop(40); } function frame19(){ gotoAndStop(20); } function frame139(){ gotoAndStop(140); } function frame119(){ gotoAndStop(120); } function frame99(){ gotoAndStop(100); } function frame160(){ stop(); } function frame79(){ gotoAndStop(80); } } }//package
Section 187
//mc_bg_hypno (mc_bg_hypno) package { import flash.display.*; public dynamic class mc_bg_hypno extends MovieClip { } }//package
Section 188
//mc_bg_item_0_0 (mc_bg_item_0_0) package { import flash.display.*; public dynamic class mc_bg_item_0_0 extends MovieClip { public function mc_bg_item_0_0(){ addFrameScript(19, this.frame20, 39, this.frame40); } function frame40(){ stop(); } function frame20(){ stop(); } } }//package
Section 189
//mc_bg_item_0_1 (mc_bg_item_0_1) package { import flash.display.*; public dynamic class mc_bg_item_0_1 extends MovieClip { public function mc_bg_item_0_1(){ addFrameScript(19, this.frame20, 39, this.frame40); } function frame40(){ stop(); } function frame20(){ stop(); } } }//package
Section 190
//mc_bg_item_0_2 (mc_bg_item_0_2) package { import flash.display.*; public dynamic class mc_bg_item_0_2 extends MovieClip { public function mc_bg_item_0_2(){ addFrameScript(19, this.frame20, 39, this.frame40); } function frame40(){ stop(); } function frame20(){ stop(); } } }//package
Section 191
//mc_bg_item_1_0 (mc_bg_item_1_0) package { import flash.display.*; public dynamic class mc_bg_item_1_0 extends MovieClip { public function mc_bg_item_1_0(){ addFrameScript(19, this.frame20, 39, this.frame40); } function frame40(){ stop(); } function frame20(){ stop(); } } }//package
Section 192
//mc_bg_item_1_1 (mc_bg_item_1_1) package { import flash.display.*; public dynamic class mc_bg_item_1_1 extends MovieClip { public function mc_bg_item_1_1(){ addFrameScript(19, this.frame20, 39, this.frame40); } function frame40(){ stop(); } function frame20(){ stop(); } } }//package
Section 193
//mc_bg_item_1_2 (mc_bg_item_1_2) package { import flash.display.*; public dynamic class mc_bg_item_1_2 extends MovieClip { public function mc_bg_item_1_2(){ addFrameScript(19, this.frame20, 39, this.frame40); } function frame40(){ stop(); } function frame20(){ stop(); } } }//package
Section 194
//mc_bg_item_2_0 (mc_bg_item_2_0) package { import flash.display.*; public dynamic class mc_bg_item_2_0 extends MovieClip { public function mc_bg_item_2_0(){ addFrameScript(19, this.frame20, 39, this.frame40); } function frame40(){ stop(); } function frame20(){ stop(); } } }//package
Section 195
//mc_bg_item_2_1 (mc_bg_item_2_1) package { import flash.display.*; public dynamic class mc_bg_item_2_1 extends MovieClip { public function mc_bg_item_2_1(){ addFrameScript(19, this.frame20, 39, this.frame40); } function frame40(){ stop(); } function frame20(){ stop(); } } }//package
Section 196
//mc_bg_item_2_2 (mc_bg_item_2_2) package { import flash.display.*; public dynamic class mc_bg_item_2_2 extends MovieClip { public function mc_bg_item_2_2(){ addFrameScript(19, this.frame20, 39, this.frame40); } function frame40(){ stop(); } function frame20(){ stop(); } } }//package
Section 197
//mc_bg_slow (mc_bg_slow) package { import flash.display.*; public dynamic class mc_bg_slow extends MovieClip { } }//package
Section 198
//mc_bg_starfall (mc_bg_starfall) package { import flash.display.*; public dynamic class mc_bg_starfall extends MovieClip { } }//package
Section 199
//mc_block_finish (mc_block_finish) package { import flash.display.*; public dynamic class mc_block_finish extends MovieClip { } }//package
Section 200
//mc_block_start (mc_block_start) package { import flash.display.*; public dynamic class mc_block_start extends MovieClip { public var mc_light0:MovieClip; public var mc_light1:MovieClip; public var mc_light2:MovieClip; public var mc_light3:MovieClip; public var mc_light4:MovieClip; public var mc_light5:MovieClip; public var mc_glow:MovieClip; } }//package
Section 201
//mc_block0 (mc_block0) package { import flash.display.*; public dynamic class mc_block0 extends MovieClip { public var mc_color:MovieClip; public var mc_glow:MovieClip; } }//package
Section 202
//mc_block1 (mc_block1) package { import flash.display.*; public dynamic class mc_block1 extends MovieClip { public var mc_color:MovieClip; public var mc_glow:MovieClip; } }//package
Section 203
//mc_block2 (mc_block2) package { import flash.display.*; public dynamic class mc_block2 extends MovieClip { public var mc_light0:MovieClip; public var mc_light1:MovieClip; public var mc_light2:MovieClip; public var mc_light3:MovieClip; public var mc_light4:MovieClip; public var mc_light5:MovieClip; public var mc_glow:MovieClip; public var mc_color:MovieClip; } }//package
Section 204
//mc_block3 (mc_block3) package { import flash.display.*; public dynamic class mc_block3 extends MovieClip { public var mc_color:MovieClip; public var mc_glow:MovieClip; } }//package
Section 205
//mc_block4 (mc_block4) package { import flash.display.*; public dynamic class mc_block4 extends MovieClip { public var mc_color:MovieClip; public var mc_glow:MovieClip; } }//package
Section 206
//mc_block5 (mc_block5) package { import flash.display.*; public dynamic class mc_block5 extends MovieClip { public var mc_color:MovieClip; public var mc_glow:MovieClip; } }//package
Section 207
//mc_block6 (mc_block6) package { import flash.display.*; public dynamic class mc_block6 extends MovieClip { public var mc_color:MovieClip; public var mc_glow:MovieClip; } }//package
Section 208
//mc_bonus_selector (mc_bonus_selector) package { import flash.display.*; public dynamic class mc_bonus_selector extends MovieClip { } }//package
Section 209
//mc_bonusbox (mc_bonusbox) package { import flash.events.*; import flash.net.*; import flash.display.*; import flash.utils.*; import flash.text.*; import flash.media.*; import flash.geom.*; import adobe.utils.*; import flash.accessibility.*; import flash.desktop.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.system.*; import flash.text.engine.*; import flash.ui.*; import flash.xml.*; public dynamic class mc_bonusbox extends MovieClip { public function mc_bonusbox(){ addFrameScript(0, this.frame1, 12, this.frame13); } function frame1(){ stop(); } function frame13(){ if (parent != null){ var _local1 = parent; _local1["remove"](); }; } } }//package
Section 210
//mc_combo_anim (mc_combo_anim) package { import flash.display.*; public dynamic class mc_combo_anim extends MovieClip { public var m_color_rect:mc_combo_icon; public var colorcm:MovieClip; public function mc_combo_anim(){ addFrameScript(0, this.frame1, 9, this.frame10, 19, this.frame20); } function frame20(){ stop(); if (parent != null){ parent.removeChild(this); }; } function frame1(){ this.m_color_rect.visible = false; } function frame10(){ stop(); this.m_color_rect.visible = true; } } }//package
Section 211
//mc_combo_icon (mc_combo_icon) package { import flash.display.*; public dynamic class mc_combo_icon extends MovieClip { } }//package
Section 212
//mc_firebomb (mc_firebomb) package { import flash.display.*; public dynamic class mc_firebomb extends MovieClip { } }//package
Section 213
//mc_firejunk0 (mc_firejunk0) package { import flash.display.*; public dynamic class mc_firejunk0 extends MovieClip { } }//package
Section 214
//mc_firejunk1 (mc_firejunk1) package { import flash.display.*; public dynamic class mc_firejunk1 extends MovieClip { } }//package
Section 215
//mc_fps (mc_fps) package { import flash.display.*; import flash.text.*; public dynamic class mc_fps extends MovieClip { public var tf_fps:TextField; } }//package
Section 216
//mc_fuel (mc_fuel) package { import flash.display.*; public dynamic class mc_fuel extends MovieClip { public function mc_fuel(){ addFrameScript(6, this.frame7); } function frame7(){ stop(); } } }//package
Section 217
//mc_head_bum (mc_head_bum) package { import flash.display.*; public dynamic class mc_head_bum extends MovieClip { public function mc_head_bum(){ addFrameScript(7, this.frame8); } function frame8(){ if (parent != null){ parent.removeChild(this); }; } } }//package
Section 218
//mc_health (mc_health) package { import flash.display.*; public dynamic class mc_health extends MovieClip { } }//package
Section 219
//mc_health_inbox (mc_health_inbox) package { import flash.display.*; public dynamic class mc_health_inbox extends MovieClip { } }//package
Section 220
//mc_healthpanel (mc_healthpanel) package { import flash.display.*; public dynamic class mc_healthpanel extends MovieClip { public var mc_border:MovieClip; public var mc_health_line:MovieClip; } }//package
Section 221
//mc_hero_anim (mc_hero_anim) package { import flash.events.*; import flash.net.*; import flash.display.*; import flash.utils.*; import flash.text.*; import flash.media.*; import flash.geom.*; import adobe.utils.*; import flash.accessibility.*; import flash.desktop.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.system.*; import flash.text.engine.*; import flash.ui.*; import flash.xml.*; public dynamic class mc_hero_anim extends MovieClip { public var mc_smoke:mc_smoke_anim; public var mc_antenna:MovieClip; public var mc:MovieClip; public var colorb:MovieClip; public var m_whirl:MovieClip; public var colorh:MovieClip; public var colorl:MovieClip; public var mc_eyes:MovieClip; public var mc_antenna_animation:MovieClip; public var ct:ColorTransform; public var mc_shield:MovieClip; public function mc_hero_anim(){ addFrameScript(0, this.frame1, 1, this.frame2, 2, this.frame3, 3, this.frame4, 6, this.frame7, 7, this.frame8, 8, this.frame9); } function frame3(){ this.ct.color = parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; } function frame4(){ this.ct.color = parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; } function frame7(){ this.ct.color = parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; } function frame2(){ this.ct.color = parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; } function frame8(){ this.ct.color = parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; } function frame9(){ this.ct.color = parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; } function frame1(){ this.ct = new ColorTransform(); this.ct.color = parent["head_color"]; (this["colorh"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent["body_color"]; (this["colorb"] as MovieClip).transform.colorTransform = this.ct; this.ct.color = parent["legs_color"]; (this["colorl"] as MovieClip).transform.colorTransform = this.ct; } } }//package
Section 222
//mc_hypno (mc_hypno) package { import flash.display.*; public dynamic class mc_hypno extends MovieClip { public function mc_hypno(){ addFrameScript(6, this.frame7); } function frame7(){ stop(); } } }//package
Section 223
//mc_jet_inbox (mc_jet_inbox) package { import flash.display.*; public dynamic class mc_jet_inbox extends MovieClip { } }//package
Section 224
//mc_jetpanel (mc_jetpanel) package { import flash.display.*; public dynamic class mc_jetpanel extends MovieClip { public var mc_border:MovieClip; public var mc_jetline_top:MovieClip; public var mc_jetline:MovieClip; } }//package
Section 225
//mc_magnet (mc_magnet) package { import flash.display.*; public dynamic class mc_magnet extends MovieClip { } }//package
Section 226
//mc_next_level (mc_next_level) package { import flash.display.*; public dynamic class mc_next_level extends MovieClip { public var m_anim:MovieClip; public function mc_next_level(){ addFrameScript(34, this.frame35); } function frame35(){ if (parent != null){ parent.removeChild(this); }; } } }//package
Section 227
//mc_place_arrow (mc_place_arrow) package { import flash.display.*; import flash.text.*; public dynamic class mc_place_arrow extends MovieClip { public var tf_dist:TextField; public function mc_place_arrow(){ addFrameScript(6, this.frame7, 13, this.frame14); } function frame14(){ gotoAndPlay(8); } function frame7(){ gotoAndPlay(1); } } }//package
Section 228
//mc_platform_score (mc_platform_score) package { import flash.display.*; public dynamic class mc_platform_score extends MovieClip { public var m_anim:MovieClip; public function mc_platform_score(){ addFrameScript(19, this.frame20); } function frame20(){ if (parent != null){ parent.removeChild(this); }; } } }//package
Section 229
//mc_preloader (mc_preloader) package { import flash.events.*; import flash.display.*; import flash.net.*; public dynamic class mc_preloader extends MovieClip { public var bt_skip:SimpleButton; public var m_logo:SimpleButton; public var adBox:MovieClip; public var bt_play:SimpleButton; public function mc_preloader(){ addFrameScript(0, this.frame1); } function frame1(){ this.m_logo.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{ var _local2:URLRequest = new URLRequest("http://www.badhed.com/?ref=joe-the-alien_SPLASH"); navigateToURL(_local2); }); } } }//package
Section 230
//mc_progress_bar_part_pointer (mc_progress_bar_part_pointer) package { import flash.display.*; import flash.text.*; public dynamic class mc_progress_bar_part_pointer extends MovieClip { public var tf_text:TextField; } }//package
Section 231
//mc_progress_panel (mc_progress_panel) package { import flash.display.*; public dynamic class mc_progress_panel extends MovieClip { public var m_inner_info:MovieClip; public var m_marker:MovieClip; } }//package
Section 232
//mc_skybomb (mc_skybomb) package { import flash.display.*; public dynamic class mc_skybomb extends MovieClip { public var mc_counter:MovieClip; } }//package
Section 233
//mc_skyjunk0 (mc_skyjunk0) package { import flash.display.*; public dynamic class mc_skyjunk0 extends MovieClip { } }//package
Section 234
//mc_skyjunk1 (mc_skyjunk1) package { import flash.display.*; public dynamic class mc_skyjunk1 extends MovieClip { } }//package
Section 235
//mc_slow (mc_slow) package { import flash.display.*; public dynamic class mc_slow extends MovieClip { public function mc_slow(){ addFrameScript(6, this.frame7); } function frame7(){ stop(); } } }//package
Section 236
//mc_smoke_anim (mc_smoke_anim) package { import flash.display.*; public dynamic class mc_smoke_anim extends MovieClip { public function mc_smoke_anim(){ addFrameScript(39, this.frame40); } function frame40(){ visible = false; stop(); } } }//package
Section 237
//mc_snd (mc_snd) package { import flash.display.*; public dynamic class mc_snd extends MovieClip { } }//package
Section 238
//mc_spacebomb (mc_spacebomb) package { import flash.display.*; public dynamic class mc_spacebomb extends MovieClip { } }//package
Section 239
//mc_spacejunk0 (mc_spacejunk0) package { import flash.display.*; public dynamic class mc_spacejunk0 extends MovieClip { } }//package
Section 240
//mc_spacejunk1 (mc_spacejunk1) package { import flash.display.*; public dynamic class mc_spacejunk1 extends MovieClip { } }//package
Section 241
//mc_spacejunk2 (mc_spacejunk2) package { import flash.display.*; public dynamic class mc_spacejunk2 extends MovieClip { } }//package
Section 242
//mc_star (mc_star) package { import flash.display.*; public dynamic class mc_star extends MovieClip { public function mc_star(){ addFrameScript(0, this.frame1); } function frame1(){ stop(); } } }//package
Section 243
//mc_star_inbox (mc_star_inbox) package { import flash.display.*; public dynamic class mc_star_inbox extends MovieClip { } }//package
Section 244
//mc_starfall (mc_starfall) package { import flash.display.*; public dynamic class mc_starfall extends MovieClip { public function mc_starfall(){ addFrameScript(6, this.frame7); } function frame7(){ stop(); } } }//package
Section 245
//mc_stars_counter (mc_stars_counter) package { import flash.display.*; import flash.text.*; public dynamic class mc_stars_counter extends MovieClip { public var m_tf:TextField; public var m_star:MovieClip; } }//package
Section 246
//mc_start_counter (mc_start_counter) package { import flash.display.*; public dynamic class mc_start_counter extends MovieClip { public function mc_start_counter(){ addFrameScript(19, this.frame20, 39, this.frame40, 59, this.frame60, 84, this.frame85); } function frame40(){ stop(); } function frame85(){ if (parent != null){ parent.removeChild(this); }; } function frame20(){ stop(); } function frame60(){ stop(); } } }//package
Section 247
//mc_text_info (mc_text_info) package { import flash.display.*; public dynamic class mc_text_info extends MovieClip { public var m_info:MovieClip; public function mc_text_info(){ addFrameScript(89, this.frame90); } function frame90(){ if (parent != null){ parent.removeChild(this); }; } } }//package
Section 248
//mc_top_panel (mc_top_panel) package { import flash.display.*; import flash.text.*; public dynamic class mc_top_panel extends MovieClip { public var tf_score:TextField; public var tf_level_ind:TextField; } }//package
Section 249
//mc_upgrade (mc_upgrade) package { import flash.display.*; public dynamic class mc_upgrade extends SimpleButton { } }//package
Section 250
//mc_window_dead (mc_window_dead) package { import flash.display.*; import flash.text.*; public dynamic class mc_window_dead extends MovieClip { public var m_bt_menu:SimpleButton; public var tf_stars:TextField; public var HISCORE:MovieClip; public var m_bt_replay:SimpleButton; public var m_bt_shop:SimpleButton; public var m_bt_achieve:SimpleButton; public var tf_score:TextField; } }//package
Section 251
//mc_wnd_achieve (mc_wnd_achieve) package { import flash.display.*; import flash.text.*; public dynamic class mc_wnd_achieve extends MovieClip { public var mc_ach5:MovieClip; public var mc_ach6:MovieClip; public var mc_ach7:MovieClip; public var mc_ach8:MovieClip; public var mc_ach9:MovieClip; public var mc_ach0:MovieClip; public var mc_ach1:MovieClip; public var mc_ach2:MovieClip; public var tf_descr:TextField; public var mc_ach3:MovieClip; public var mc_ach4:MovieClip; public var bt_back:SimpleButton; } }//package
Section 252
//mc_wnd_credits (mc_wnd_credits) package { import flash.display.*; public dynamic class mc_wnd_credits extends MovieClip { public var m_logo:MovieClip; public var bt_back:SimpleButton; } }//package
Section 253
//mc_wnd_help (mc_wnd_help) package { import flash.events.*; import flash.net.*; import flash.display.*; import flash.utils.*; import flash.text.*; import flash.media.*; import flash.geom.*; import adobe.utils.*; import flash.accessibility.*; import flash.desktop.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.system.*; import flash.text.engine.*; import flash.ui.*; import flash.xml.*; import flash.globalization.*; import flash.net.drm.*; import flash.sensors.*; import flash.text.ime.*; public dynamic class mc_wnd_help extends MovieClip { public var bt_skip:SimpleButton; public var colorp:MovieClip; public var mc1:MovieClip; public var colorb:MovieClip; public var mc2:MovieClip; public var mc3:MovieClip; public var bt_skip4:SimpleButton; public var colorh:MovieClip; public var bt_skip2:SimpleButton; public var mc:MovieClip; public var bt_skip1:SimpleButton; public var colorl:MovieClip; public function mc_wnd_help(){ addFrameScript(0, this.frame1, 1, this.frame2, 2, this.frame3, 3, this.frame4, 4, this.frame5, 5, this.frame6, 6, this.frame7, 7, this.frame8, 8, this.frame9, 9, this.frame10); } function frame1(){ this["bt_skip2"].addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent){ gotoAndStop(9); }); } function frame2(){ this["bt_skip1"].addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent){ gotoAndStop(3); }); } function frame3(){ this["bt_skip"].addEventListener(MouseEvent.CLICK, parent["onSkipClick"]); } function frame4(){ this["bt_skip"].addEventListener(MouseEvent.CLICK, parent["onSkipClick"]); } function frame5(){ this["bt_skip"].addEventListener(MouseEvent.CLICK, parent["onSkipClick"]); } function frame6(){ this["bt_skip"].addEventListener(MouseEvent.CLICK, parent["onSkipClick"]); } function frame7(){ this["bt_skip"].addEventListener(MouseEvent.CLICK, parent["onSkipClick"]); } function frame8(){ this["bt_skip"].addEventListener(MouseEvent.CLICK, parent["onSkipClick"]); } function frame9(){ this["bt_skip"].addEventListener(MouseEvent.CLICK, parent["onSkipClick"]); this["mc1"].stop(); this["mc2"].stop(); this["mc3"].stop(); } function frame10(){ this["bt_skip4"].addEventListener(MouseEvent.CLICK, parent["gotoShop"]); } } }//package
Section 254
//mc_wnd_level_complete (mc_wnd_level_complete) package { import flash.display.*; import flash.text.*; public dynamic class mc_wnd_level_complete extends MovieClip { public var tf_stars:TextField; public var tf_mode:TextField; public var bt_cont:SimpleButton; public var bt_shop:SimpleButton; public var tf_level:TextField; public var bt_achieve:SimpleButton; public var bt_menu:SimpleButton; public var MOREGAMES:MovieClip; public var mc_glow_shop:MovieClip; public var tf_score:TextField; } }//package
Section 255
//mc_wnd_main_menu (mc_wnd_main_menu) package { import flash.display.*; public dynamic class mc_wnd_main_menu extends MovieClip { public var mc_logo:MovieClip; public var mc_buttons:MovieClip; } }//package
Section 256
//mc_wnd_map (mc_wnd_map) package { import flash.display.*; public dynamic class mc_wnd_map extends MovieClip { public var bt_level3:MovieClip; public var bt_level2:MovieClip; public var bt_shop:SimpleButton; public var bt_level5:MovieClip; public var bt_level4:MovieClip; public var bt_achieve:SimpleButton; public var bt_level6:MovieClip; public var MOREGAMES:MovieClip; public var bt_level1:MovieClip; public var bt_stats:SimpleButton; public var bt_level0:MovieClip; public var bt_back:SimpleButton; } }//package
Section 257
//mc_wnd_pause (mc_wnd_pause) package { import flash.display.*; import flash.text.*; public dynamic class mc_wnd_pause extends MovieClip { public var tf_stars:TextField; public var tf_mode:TextField; public var bt_resume:SimpleButton; public var tf_level:TextField; public var bt_achieve:SimpleButton; public var bt_menu:SimpleButton; public var MOREGAMES:MovieClip; public var tf_score:TextField; } }//package
Section 258
//mc_wnd_score (mc_wnd_score) package { import flash.display.*; public dynamic class mc_wnd_score extends MovieClip { public var bt_back:SimpleButton; } }//package
Section 259
//mc_wnd_stats (mc_wnd_stats) package { import flash.display.*; import flash.text.*; public dynamic class mc_wnd_stats extends MovieClip { public var tf_line6:TextField; public var tf_line5:TextField; public var tf_line4:TextField; public var tf_line3:TextField; public var tf_line2:TextField; public var tf_line1:TextField; public var tf_line0:TextField; public var bt_back:SimpleButton; } }//package
Section 260
//mc_wnd_upgrades (mc_wnd_upgrades) package { import flash.display.*; import flash.text.*; public dynamic class mc_wnd_upgrades extends MovieClip { public var mc_upgrade5:MovieClip; public var tf_stars:TextField; public var mc_joe:MovieClip; public var mc_joe_weapon:MovieClip; public var mc_upgrade0:MovieClip; public var mc_upgrade1:MovieClip; public var mc_upgrade2:MovieClip; public var mc_upgrade3:MovieClip; public var tf_descr:TextField; public var mc_upgrade4:MovieClip; public var bt_back:SimpleButton; } }//package
Section 261
//mc_xplode (mc_xplode) package { import flash.display.*; public dynamic class mc_xplode extends MovieClip { public function mc_xplode(){ addFrameScript(8, this.frame9); } function frame9(){ if (parent != null){ parent.removeChild(this); }; } } }//package
Section 262
//mcu_antenna1 (mcu_antenna1) package { import flash.display.*; public dynamic class mcu_antenna1 extends SimpleButton { } }//package
Section 263
//mcu_antenna2 (mcu_antenna2) package { import flash.display.*; public dynamic class mcu_antenna2 extends SimpleButton { } }//package
Section 264
//mcu_health1 (mcu_health1) package { import flash.display.*; public dynamic class mcu_health1 extends SimpleButton { } }//package
Section 265
//mcu_health2 (mcu_health2) package { import flash.display.*; public dynamic class mcu_health2 extends SimpleButton { } }//package
Section 266
//mcu_health3 (mcu_health3) package { import flash.display.*; public dynamic class mcu_health3 extends SimpleButton { } }//package
Section 267
//mcu_jet_speed1 (mcu_jet_speed1) package { import flash.display.*; public dynamic class mcu_jet_speed1 extends SimpleButton { } }//package
Section 268
//mcu_jet_speed2 (mcu_jet_speed2) package { import flash.display.*; public dynamic class mcu_jet_speed2 extends SimpleButton { } }//package
Section 269
//mcu_jet_speed3 (mcu_jet_speed3) package { import flash.display.*; public dynamic class mcu_jet_speed3 extends SimpleButton { } }//package
Section 270
//mcu_jet1 (mcu_jet1) package { import flash.display.*; public dynamic class mcu_jet1 extends SimpleButton { } }//package
Section 271
//mcu_jet2 (mcu_jet2) package { import flash.display.*; public dynamic class mcu_jet2 extends SimpleButton { } }//package
Section 272
//mcu_jet3 (mcu_jet3) package { import flash.display.*; public dynamic class mcu_jet3 extends SimpleButton { } }//package
Section 273
//mcu_legs1 (mcu_legs1) package { import flash.display.*; public dynamic class mcu_legs1 extends SimpleButton { } }//package
Section 274
//mcu_legs2 (mcu_legs2) package { import flash.display.*; public dynamic class mcu_legs2 extends SimpleButton { } }//package
Section 275
//mcu_legs3 (mcu_legs3) package { import flash.display.*; public dynamic class mcu_legs3 extends SimpleButton { } }//package
Section 276
//mcu_weapon1 (mcu_weapon1) package { import flash.display.*; public dynamic class mcu_weapon1 extends SimpleButton { } }//package
Section 277
//mcu_weapon2 (mcu_weapon2) package { import flash.display.*; public dynamic class mcu_weapon2 extends SimpleButton { } }//package
Section 278
//mcu_weapon3 (mcu_weapon3) package { import flash.display.*; public dynamic class mcu_weapon3 extends SimpleButton { } }//package
Section 279
//MochiBot (MochiBot) package { import flash.display.*; import flash.system.*; import flash.net.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ if (Security.sandboxType == "localWithFile"){ return (null); }; var _local3:MochiBot = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); var _local4 = "http://core.mochibot.com/my/core.swf"; var _local5:URLVariables = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; var _local6:String = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; var _local7:URLRequest = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; var _local8:Loader = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package
Section 280
//mus_game_loop (mus_game_loop) package { import flash.media.*; public dynamic class mus_game_loop extends Sound { } }//package
Section 281
//mus_menu_loop (mus_menu_loop) package { import flash.media.*; public dynamic class mus_menu_loop extends Sound { } }//package
Section 282
//mus_title_loop (mus_title_loop) package { import flash.media.*; public dynamic class mus_title_loop extends Sound { } }//package
Section 283
//Preloader (Preloader) package { import flash.events.*; import flash.display.*; import CPMStar.*; import flash.utils.*; public class Preloader extends MovieClip { private var m_percent_loaded:Number;// = 0 private var domain:String; public var show_ads:Boolean;// = true private var m_mc_preloader:MovieClip; public function Preloader(){ var CPMStarContentSpotID:String; var ad:DisplayObject; super(); MochiBot.track(this, "8dbfc580"); adLock(); loaderInfo.addEventListener(ProgressEvent.PROGRESS, onRootLoaderProgress); loaderInfo.addEventListener(Event.COMPLETE, onRootLoaderComplete); m_mc_preloader = new mc_preloader(); m_mc_preloader.x = 200; m_mc_preloader.y = 250; addChild(m_mc_preloader); if (show_ads){ var clickHandler:Function = function (_arg1:Event):void{ var event = _arg1; try { m_mc_preloader.removeChild(m_mc_preloader["adBox"]); (m_mc_preloader["bt_play"] as SimpleButton).visible = true; (m_mc_preloader["bt_skip"] as SimpleButton).visible = false; (m_mc_preloader["adBox"] as MovieClip).visible = false; (m_mc_preloader["m_logo"] as SimpleButton).visible = true; } catch(e:Error) { }; }; CPMStarContentSpotID = "2538Q4EE1481E"; ad = new AdLoader(CPMStarContentSpotID); (m_mc_preloader["adBox"] as MovieClip).addChild(ad); (m_mc_preloader["m_logo"] as SimpleButton).visible = false; (m_mc_preloader["bt_skip"] as SimpleButton).addEventListener(MouseEvent.CLICK, clickHandler); } else { (m_mc_preloader["adBox"] as MovieClip).visible = false; (m_mc_preloader["m_logo"] as SimpleButton).visible = true; }; (m_mc_preloader["bt_skip"] as SimpleButton).visible = false; (m_mc_preloader["bt_play"] as SimpleButton).visible = false; (m_mc_preloader["bt_play"] as SimpleButton).addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{ var _local3:Object; loaderInfo.removeEventListener(ProgressEvent.PROGRESS, onRootLoaderProgress); loaderInfo.removeEventListener(Event.COMPLETE, onRootLoaderComplete); removeChild(m_mc_preloader); nextFrame(); stage.stageFocusRect = false; var _local2:Class = Class(getDefinitionByName("StateManager")); if (_local2){ _local3 = new (_local2); addChild((_local3 as DisplayObject)); }; }); } private function onRootLoaderProgress(_arg1:ProgressEvent):void{ var _local2:Number = _arg1.target.bytesLoaded; var _local3:Number = _arg1.target.bytesTotal; m_percent_loaded = (_local2 / _local3); m_mc_preloader.gotoAndStop(int((m_percent_loaded * 100))); } private function onRootLoaderComplete(_arg1:Event):void{ if (show_ads){ (m_mc_preloader["bt_skip"] as SimpleButton).visible = true; } else { (m_mc_preloader["bt_play"] as SimpleButton).visible = true; }; } private function adLock():void{ var _local1:String = loaderInfo.loaderURL; var _local2:Number = (_local1.indexOf("://") + 3); var _local3:Number = _local1.indexOf("/", _local2); domain = _local1.substring(_local2, _local3); var _local4:Number = (domain.lastIndexOf(".") - 1); var _local5:Number = (domain.lastIndexOf(".", _local4) + 1); domain = domain.substring(_local5, domain.length); if (((!((_local1.indexOf("assets.zattikka.com") == -1))) || (!((_local1.indexOf("assets.staging.zattikka.com") == -1))))){ show_ads = false; }; } } }//package
Section 284
//snd_bonus_get (snd_bonus_get) package { import flash.media.*; public dynamic class snd_bonus_get extends Sound { } }//package
Section 285
//snd_click (snd_click) package { import flash.media.*; public dynamic class snd_click extends Sound { } }//package
Section 286
//snd_expl (snd_expl) package { import flash.media.*; public dynamic class snd_expl extends Sound { } }//package
Section 287
//snd_get_jet (snd_get_jet) package { import flash.media.*; public dynamic class snd_get_jet extends Sound { } }//package
Section 288
//snd_hit (snd_hit) package { import flash.media.*; public dynamic class snd_hit extends Sound { } }//package
Section 289
//snd_jet (snd_jet) package { import flash.media.*; public dynamic class snd_jet extends Sound { } }//package
Section 290
//snd_platform (snd_platform) package { import flash.media.*; public dynamic class snd_platform extends Sound { } }//package
Section 291
//snd_poing (snd_poing) package { import flash.media.*; public dynamic class snd_poing extends Sound { } }//package
Section 292
//snd_shock (snd_shock) package { import flash.media.*; public dynamic class snd_shock extends Sound { } }//package
Section 293
//snd_star_collect (snd_star_collect) package { import flash.media.*; public dynamic class snd_star_collect extends Sound { } }//package
Section 294
//snd_steam1 (snd_steam1) package { import flash.media.*; public dynamic class snd_steam1 extends Sound { } }//package
Section 295
//snd_steam2 (snd_steam2) package { import flash.media.*; public dynamic class snd_steam2 extends Sound { } }//package
Section 296
//snd_upgrade (snd_upgrade) package { import flash.media.*; public dynamic class snd_upgrade extends Sound { } }//package
Section 297
//snd_weapon0 (snd_weapon0) package { import flash.media.*; public dynamic class snd_weapon0 extends Sound { } }//package
Section 298
//snd_weapon1 (snd_weapon1) package { import flash.media.*; public dynamic class snd_weapon1 extends Sound { } }//package
Section 299
//snd_weapon2 (snd_weapon2) package { import flash.media.*; public dynamic class snd_weapon2 extends Sound { } }//package
Section 300
//snd_voice_death (snd_voice_death) package { import flash.media.*; public dynamic class snd_voice_death extends Sound { } }//package
Section 301
//snd_voice_holy (snd_voice_holy) package { import flash.media.*; public dynamic class snd_voice_holy extends Sound { } }//package
Section 302
//snd_voice_thank (snd_voice_thank) package { import flash.media.*; public dynamic class snd_voice_thank extends Sound { } }//package
Section 303
//StateManager (StateManager) package { import flash.events.*; import States.*; import flash.display.*; import flash.utils.*; import flash.text.*; public class StateManager extends Sprite { public var hiScores:ZattikkaHiScores; private var m_mc_fps:MovieClip; private var m_fps_counter:Number;// = 0 private var m_states:Array; private var m_fps_timer:Timer; private static var m_instance:StateManager; public function StateManager(){ m_states = []; m_fps_timer = new Timer(1000, int.MAX_VALUE); hiScores = new ZattikkaHiScores(); super(); hiScores.x = 55; hiScores.y = 60; m_mc_fps = new mc_fps(); m_fps_timer.addEventListener(TimerEvent.TIMER, function (_arg1:TimerEvent):void{ (m_mc_fps["tf_fps"] as TextField).text = ("" + m_fps_counter); m_fps_counter = 0; }); m_fps_timer.start(); m_instance = this; if (stage != null){ stage.stageFocusRect = false; }; addEventListener(Event.ENTER_FRAME, update); pushState(MainMenuState.getInstance()); } public function popState():void{ GameState(m_states[(m_states.length - 1)]).cleanUp(); removeChild(GameState(m_states[(m_states.length - 1)])); m_states.pop(); if (m_states.length > 0){ GameState(m_states[(m_states.length - 1)]).resume(); }; } public function changeState(_arg1:GameState):void{ var _local2:GameState; for each (_local2 in m_states) { _local2.cleanUp(); removeChild(_local2); }; m_states = new Array(); pushState(_arg1); } private function update(_arg1:Event):void{ var _local2:GameState; m_fps_counter++; for each (_local2 in m_states) { _local2.update(); }; } public function pushState(_arg1:GameState):void{ var _local2:GameState; for each (_local2 in m_states) { _local2.pause(); }; addChild(_arg1); _arg1.init(); m_states.push(_arg1); } public function closeScores():void{ try { removeChild(hiScores); } catch(e:Error) { }; } public function showScores(_arg1:Number):void{ hiScores.setDetails(423, 0, "joe-the-alien", "EDqxWEELdSJ1nds", false, _arg1, ("" + _arg1), "points!", false); addChild(hiScores); } public static function getInstance():StateManager{ return (m_instance); } } }//package
Section 304
//StaticSounds (StaticSounds) package { import flash.media.*; public class StaticSounds { public static var m_mus_title_loop:Sound; public static var m_mus_game_loop:Sound; public static var m_mus_menu_loop:Sound; } }//package
Section 305
//StringTable (StringTable) package { import flash.utils.*; public class StringTable { private var m_strings:Array; private var xmlStrings:Class; private static var m_instance:StringTable; public function StringTable(){ xmlStrings = StringTable_xmlStrings; super(); parseXMLData(); } public function getText(_arg1:String):String{ return (m_strings[_arg1]); } private function parseXMLData():void{ var _local5:XML; var _local6:String; var _local7:String; var _local1:ByteArray = new xmlStrings(); var _local2:String = _local1.readUTFBytes(_local1.length); var _local3:XML = new XML(_local2); var _local4:Number = 0; m_strings = new Array(); for each (_local5 in _local3.String) { _local6 = _local5.attribute("title"); _local7 = _local5.text(); m_strings[_local6] = _local7; }; } public static function getInstance():StringTable{ if (m_instance == null){ m_instance = new (StringTable); }; return (m_instance); } } }//package
Section 306
//StringTable_xmlStrings (StringTable_xmlStrings) package { import mx.core.*; public class StringTable_xmlStrings extends ByteArrayAsset { } }//package
Section 307
//ZattikkaHiScores (ZattikkaHiScores) package { import flash.events.*; import flash.net.*; import flash.display.*; import com.hexagonstar.util.debug.*; import flash.external.*; public class ZattikkaHiScores extends MovieClip { private const EVENT_VIEW_HI_SCORE:String = "ViewHiScore="; private const MSG_SERVER_ERROR:String = "Could not contact server, please try again in a few minutes."; private const FB_ACTION:String = "/Facebook.action?"; private const HS_PLATFORM_WEB:int = 0; private const TEST_SERVER_URL:String = "http://api.staging.zattikka.com"; private const DEV_TEST_MODE_FB:int = 2; private const EVENT_SUBMIT_HI_SCORE:String = "SubmitHiScore="; private const DEV_TEST_MODE_G5:int = 1; private const EVENT_GET_HI_SCORES:String = "GetHiScores="; private const VERSION_NUM:String = "1.0.15 (AS3)"; private const EVENT_VIEW_HI_SCORES:String = "ViewHiScores="; private const TW_ACTION:String = "/Twitter.action?"; private const LIVE_SERVER_URL:String = "http://api.zattikka.com"; private const MSG_SUBMITTING_DETAILS:String = "Submitting hi-score details to the server, please wait."; private const GFTP_URL:String = "http://www.gamesfortheplanet.com"; private const MSG_PLEASE_ENTER_NICKNAME:String = "Please enter your nickname."; private const EVENT_PUBLISH_HI_SCORE_FEED_EXTERNAL:String = "PublishHiScoreFeedExternal="; private const EVENT_POST_TWEET:String = "PostTweet="; private const HS_PLATFORM_FACEBOOK:int = 1; private const HS_ACTION:String = "/HiScore.action?"; private const EVENT_PUBLISH_HI_SCORE_FEED:String = "PublishHiScoreFeed="; private const DEV_TEST_MODE_OFF:int = 0; public var btnGFTP:SimpleButton; private var gameKey:String; private var SERVER_URL:String;// = "http://api.zattikka.com" private var g5UserExists:Boolean; private var entryScreen:MovieClip;// = null private var devTestMode:int;// = 0 private var caller:Object; private var score:Number; private var g5User:Object; private var fbUser:Object; private var cxn:LocalConnection; private var lowIsBest:Boolean; private var gameId:Number; private var infoScreen:MovieClip;// = null private var levelId:Number; private var fbSessionKey:String; public var movEntryScreen:MovieClip; private var msg1:String; private var msg2:String; private var fbUserExists:Boolean; public var movInfoScreen:MovieClip; private var gameCode:String; public function ZattikkaHiScores(){ debug((("[ZattikkaHiScores VERSION " + VERSION_NUM) + "]")); this.visible = false; } private function grabG5User():void{ this.g5User = ExternalInterface.call("getG5User"); this.g5UserExists = ((g5User == null)) ? false : !(isNaN(this.g5User[0])); if (devTestMode == DEV_TEST_MODE_G5){ this.g5User = new Array("9", "RocketRonz"); this.g5UserExists = ((g5User == null)) ? false : !(isNaN(this.g5User[0])); }; debug(("[ZattikkaHiScores::grabG5User] " + (g5UserExists) ? ((("userId = " + this.g5User[0]) + ", userName = ") + this.g5User[1]) : "g5User is empty")); } private function grabFacebookUser():void{ this.fbUser = ExternalInterface.call("getFBUser"); this.fbUserExists = ((fbUser == null)) ? false : !(isNaN(this.fbUser[0])); this.fbSessionKey = ExternalInterface.call("getFBSessionKey"); if (devTestMode == DEV_TEST_MODE_FB){ this.fbUser = new Array("1383775213", "Dolphin Gimme-Five"); this.fbUserExists = ((fbUser == null)) ? false : !(isNaN(this.fbUser[0])); this.fbSessionKey = "ad4dff81c4d2467efc456072-1383775213"; }; debug(("[ZattikkaHiScores::grabFacebookUser] " + (fbUserExists) ? ((((("userId = " + this.fbUser[0]) + ", userName = ") + this.fbUser[1]) + ", sessionKey = ") + this.fbSessionKey) : "fbUser is empty")); } private function getRandomString(_arg1:int):String{ var _local2 = ""; var _local3:int; while (_local3 < _arg1) { _local2 = (_local2 + String.fromCharCode(getRandom(48, 122))); _local3++; }; return (_local2); } public function showInfoMessage(_arg1:String, _arg2:Boolean):void{ infoScreen["txtInfo"].text = _arg1; infoScreen["btnBack"].visible = _arg2; infoScreen["btnView"].visible = ((!(_arg2)) && (!(fbUserExists))); infoScreen.visible = true; entryScreen.visible = false; } private function showEntryScreen():void{ entryScreen["txtMsg1"].text = msg1; entryScreen["txtMsg2"].text = msg2; entryScreen["movNameAuto"].visible = ((g5UserExists) || (fbUserExists)); entryScreen["movNameManual"].visible = ((!(g5UserExists)) && (!(fbUserExists))); entryScreen["movNameAuto"]["txtName"].text = (g5UserExists) ? this.g5User[1] : (fbUserExists) ? this.fbUser[1] : ""; entryScreen["movNameManual"]["txtName"].text = ""; entryScreen.visible = true; infoScreen.visible = false; } private function replaceAll(_arg1:String, _arg2:String, _arg3:String):String{ var _local4 = ""; var _local5:int; while (_local5 < _arg1.length) { if (_arg1.charAt(_local5) == _arg2){ _local4 = (_local4 + _arg3); } else { _local4 = (_local4 + _arg1.charAt(_local5)); }; _local5++; }; return (_local4); } private function xor(_arg1:String, _arg2:String, _arg3:Boolean):String{ var _local7:int; var _local4 = ""; var _local5:int; var _local6:int; while (_local5 < _arg1.length) { if (_local6 >= _arg2.length){ _local6 = 0; }; _local7 = ((_arg1.charCodeAt(_local5) ^ _arg2.charCodeAt(_local6)) + 1); if (_arg3){ debug(((("charCode = " + _local7) + " = ") + String.fromCharCode(_local7))); }; _local4 = (_local4 + String.fromCharCode(_local7)); _local5++; _local6++; }; return (_local4); } private function submitScore():void{ showInfoMessage(MSG_SUBMITTING_DETAILS, false); infoScreen.visible = true; entryScreen.visible = false; var _local1:int = (fbUserExists) ? HS_PLATFORM_FACEBOOK : HS_PLATFORM_WEB; var _local2 = ""; var _local3 = ""; if (fbUserExists){ _local3 = this.fbUser[0]; _local2 = this.fbUser[1]; } else { if (g5UserExists){ _local3 = this.g5User[0]; _local2 = this.g5User[1]; } else { _local2 = entryScreen["movNameManual"]["txtName"].text; }; }; var _local4:String = String(new Date().getTime()); var _local5:String = _local4.split("").reverse().join(""); var _local6:String = xor(_local5, this.gameKey, false); var _local7 = ""; _local7 = (_local7 + (this.gameId + ",")); _local7 = (_local7 + (this.levelId + ",")); _local7 = (_local7 + (_local1 + ",")); _local7 = (_local7 + (this.score + ",")); _local7 = (_local7 + (_local3 + ",")); _local7 = (_local7 + (replaceAll(_local2, ",", "") + ",")); _local7 = (_local7 + ","); _local7 = (_local7 + lowIsBest); var _local8:String = xor(_local7, _local6, false); debug(((("key [" + _local6.length) + "] = ") + _local6)); debug(((("plain [" + _local7.length) + "] = ") + _local7)); debug(((("cipher [" + _local8.length) + "] = ") + _local8)); _local8 = ((getRandomString(5) + _local8) + getRandomString(5)); var _local9:URLVariables = new URLVariables(); _local9.gameId = this.gameId; _local9.platformId = _local1; _local9.time = _local4; _local9.data = _local8; _local9.returnMessage = true; hitServer(HS_ACTION, EVENT_SUBMIT_HI_SCORE, _local9); } private function debug(_arg1:String):void{ trace(_arg1); Debug.trace(_arg1); } public function viewHiScores(_arg1:int, _arg2:Boolean=false):void{ debug(((("[ZattikkaHiScores::viewHiScores] gameId = " + _arg1) + ", testMode = ") + _arg2)); initServerURL(_arg2); var _local3:String = ((SERVER_URL + HS_ACTION) + EVENT_VIEW_HI_SCORES); _local3 = (_local3 + ("&gameId=" + _arg1)); navigateToURL(new URLRequest(_local3), "_blank"); } private function facebookFeedExternal():void{ navigateToURL(new URLRequest(((SERVER_URL + FB_ACTION) + EVENT_PUBLISH_HI_SCORE_FEED_EXTERNAL)), "_blank"); try { cxn = new LocalConnection(); cxn.allowDomain("*"); cxn.client = this; cxn.connect("_cxnZattikkaHS"); } catch(err:Error) { }; } public function setDetails(_arg1:int, _arg2:int, _arg3:String, _arg4:String, _arg5:Boolean, _arg6:Number, _arg7:String, _arg8:String, _arg9:Boolean=false):void{ var gameId = _arg1; var levelId = _arg2; var gameCode = _arg3; var gameKey = _arg4; var lowIsBest = _arg5; var score = _arg6; var msg1 = _arg7; var msg2 = _arg8; var testMode = _arg9; debug(((((((((((("[ZattikkaHiScores::setDetails] gameId = " + gameId) + ", levelId = ") + levelId) + ", gameCode = ") + gameCode) + ", lowIsBest = ") + lowIsBest) + ", score = ") + score) + ", testMode = ") + testMode)); initServerURL(testMode); entryScreen = this["movEntryScreen"]; infoScreen = this["movInfoScreen"]; entryScreen.visible = false; infoScreen.visible = false; this.gameId = gameId; this.levelId = levelId; this.gameCode = gameCode; this.gameKey = gameKey; this.lowIsBest = lowIsBest; this.score = score; this.msg1 = msg1; this.msg2 = msg2; try { grabG5User(); if (!g5UserExists){ grabFacebookUser(); }; } catch(err:Error) { }; this["btnGFTP"].addEventListener(MouseEvent.MOUSE_DOWN, onButtonPress); entryScreen["btnSubmit"].addEventListener(MouseEvent.MOUSE_DOWN, onButtonPress); entryScreen["btnTwitter"].addEventListener(MouseEvent.MOUSE_DOWN, onButtonPress); entryScreen["btnFacebook"].addEventListener(MouseEvent.MOUSE_DOWN, onButtonPress); infoScreen["btnView"].addEventListener(MouseEvent.MOUSE_DOWN, onButtonPress); infoScreen["btnBack"].addEventListener(MouseEvent.MOUSE_DOWN, onButtonPress); if (fbUserExists){ btn_submitScore(); } else { showEntryScreen(); }; this.visible = true; } private function facebookFeed():void{ var _local1:URLVariables = new URLVariables(); _local1.gameId = this.gameId; _local1.levelId = this.levelId; _local1.score = this.score; _local1.sessionKey = this.fbSessionKey; _local1.returnMessage = true; hitServer(FB_ACTION, EVENT_PUBLISH_HI_SCORE_FEED, _local1); } public function setFBUser(_arg1:String, _arg2:String):void{ debug(((("[ZattikkaHiScores::setFBUser] fbUserId = " + _arg1) + ", fbSessionKey = ") + _arg2)); this.fbUser = new Array(_arg1, ""); this.fbUserExists = true; this.fbSessionKey = _arg2; cxn.close(); facebookFeed(); } public function loadHandler(_arg1:String, _arg2:Boolean, _arg3:Event):void{ var response:URLLoader; var xml:XML; var resCode:int; var stripesEvent = _arg1; var success = _arg2; var event = _arg3; debug(((((("[ZattikkaHiScores::loadHandler] stripesEvent = " + stripesEvent) + ", success = ") + success) + ", event = ") + event.toString())); if (!success){ if (stripesEvent == EVENT_GET_HI_SCORES){ caller.getHiScores_Error(); } else { showInfoMessage(MSG_SERVER_ERROR, true); }; } else { response = URLLoader(event.target); xml = new XML(response.data); resCode = xml.@code; switch (stripesEvent){ case EVENT_SUBMIT_HI_SCORE: showInfoMessage(xml.@msg, (resCode == -1)); if (((fbUserExists) && ((((resCode == 1)) || ((resCode == 2)))))){ try { ExternalInterface.call("refreshFBHiScores", this.score, this.levelId); ExternalInterface.call("streamPublish_FBConnect", this.msg1, this.levelId); } catch(err:Error) { }; }; break; case EVENT_PUBLISH_HI_SCORE_FEED: submitScore(); break; case EVENT_GET_HI_SCORES: caller.getHiScores_Callback(xml); break; }; }; } private function getRandom(_arg1:Number, _arg2:Number):Number{ return ((Math.floor((Math.random() * ((_arg2 - _arg1) + 1))) + _arg1)); } private function hitServer(_arg1:String, _arg2:String, _arg3:URLVariables):void{ var stripesAction = _arg1; var stripesEvent = _arg2; var vars = _arg3; debug(((("[ZattikkaHiScores::hitServer] url = " + SERVER_URL) + stripesAction) + stripesEvent)); var request:URLRequest = new URLRequest(((SERVER_URL + stripesAction) + stripesEvent)); var loader:URLLoader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.BINARY; request.data = vars; request.method = URLRequestMethod.POST; request.requestHeaders = new Array(new URLRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8")); loader.addEventListener(Event.COMPLETE, function (_arg1:Event):void{ loadHandler(stripesEvent, true, _arg1); }); loader.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:Event):void{ loadHandler(stripesEvent, false, _arg1); }); loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function (_arg1:Event):void{ loadHandler(stripesEvent, false, _arg1); }); loader.load(request); } private function twitterTweet():void{ var _local1:String = ((SERVER_URL + TW_ACTION) + EVENT_POST_TWEET); _local1 = (_local1 + ("&gameId=" + this.gameId)); _local1 = (_local1 + ("&levelId=" + this.levelId)); _local1 = (_local1 + ("&score=" + this.score)); navigateToURL(new URLRequest(_local1), "_blank"); submitScore(); } public function onButtonPress(_arg1:MouseEvent):void{ switch (_arg1.target.name){ case "btnGFTP": navigateToURL(new URLRequest(GFTP_URL), "_blank"); break; case "btnSubmit": btn_submitScore(); break; case "btnTwitter": if (((((!(this.g5UserExists)) && (!(this.fbUserExists)))) && ((entryScreen["movNameManual"]["txtName"].text.length == 0)))){ showInfoMessage(MSG_PLEASE_ENTER_NICKNAME, true); } else { twitterTweet(); }; break; case "btnFacebook": if (this.fbUserExists){ facebookFeed(); } else { facebookFeedExternal(); }; break; case "btnView": viewScore(); break; case "btnBack": setDetails(this.gameId, this.levelId, this.gameCode, this.gameKey, this.lowIsBest, this.score, this.msg1, this.msg2); break; }; } public function viewScore():void{ var _local1:String = ((SERVER_URL + HS_ACTION) + EVENT_VIEW_HI_SCORE); _local1 = (_local1 + ("&gameId=" + this.gameId)); _local1 = (_local1 + ("&levelId=" + this.levelId)); _local1 = (_local1 + ("&platformId=" + HS_PLATFORM_WEB)); _local1 = (_local1 + ("&gameCode=" + this.gameCode)); if (this.g5UserExists){ _local1 = (_local1 + ("&userId=" + this.g5User[0])); } else { _local1 = (_local1 + ("&name=" + entryScreen["movNameManual"]["txtName"].text)); }; navigateToURL(new URLRequest(_local1), "_blank"); } private function btn_submitScore():void{ if (((((!(this.g5UserExists)) && (!(this.fbUserExists)))) && ((entryScreen["movNameManual"]["txtName"].text.length == 0)))){ showInfoMessage(MSG_PLEASE_ENTER_NICKNAME, true); } else { submitScore(); }; } public function getHiScores(_arg1:Object, _arg2:int, _arg3:int, _arg4:int, _arg5:Boolean, _arg6:Boolean=false):void{ debug(((((((((("[ZattikkaHiScores::getHiScores] gameId = " + _arg2) + ", levelId = ") + _arg3) + ", numRows = ") + _arg4) + ", lowIsBest = ") + _arg5) + ", testMode = ") + _arg6)); initServerURL(_arg6); this.caller = _arg1; var _local7:URLVariables = new URLVariables(); _local7.gameId = _arg2; _local7.levelId = _arg3; _local7.platformId = 0; _local7.viewPlatformId = 0; _local7.userId = ""; _local7.numRows = _arg4; _local7.lowIsBest = _arg5; hitServer(HS_ACTION, EVENT_GET_HI_SCORES, _local7); } public function initServerURL(_arg1:Boolean):void{ var params:Object; var fvSvrUrl:Object; var testMode = _arg1; if (testMode){ SERVER_URL = TEST_SERVER_URL; } else { try { params = LoaderInfo(this.root.loaderInfo).parameters; fvSvrUrl = params["svrUrl"]; if (((!((fvSvrUrl == null))) && ((fvSvrUrl.length > 0)))){ SERVER_URL = String(fvSvrUrl); }; } catch(err:Error) { }; }; debug(("[ZattikkaHiScores::initServerURL] SERVER_URL = " + SERVER_URL)); } } }//package

Library Items

Symbol 1 BitmapUsed by:2
Symbol 2 GraphicUses:1Used by:118
Symbol 3 FontUsed by:4 72 75 78 80 141 161 162 171 172 173 174 175 177 180 183 185 193 195 198 201 213 218 248 250 252 256 257 258 259 260 261 262 304 333 338 345 349 353 357 371 375 381 392 398 416 633 634 636 637 639 641 684 686 689 691 695 697 704 745 746 748 776 778 782 783 784 785 786 806 808 809 810 811 818 823 824 825 826 836 840 841 845 846 847 848 851 852 861 862 863 864 865 866 931 933 936 944 945 946 986 991 992 1000
Symbol 4 TextUses:3Used by:5
Symbol 5 MovieClipUses:4Used by:118
Symbol 6 GraphicUsed by:68
Symbol 7 GraphicUsed by:8
Symbol 8 MovieClipUses:7Used by:68
Symbol 9 GraphicUsed by:10
Symbol 10 MovieClipUses:9Used by:68
Symbol 11 GraphicUsed by:12
Symbol 12 MovieClipUses:11Used by:68 1197
Symbol 13 GraphicUsed by:68
Symbol 14 GraphicUsed by:68
Symbol 15 GraphicUsed by:16
Symbol 16 MovieClipUses:15Used by:68 1197
Symbol 17 GraphicUsed by:18
Symbol 18 MovieClipUses:17Used by:68
Symbol 19 GraphicUsed by:20
Symbol 20 MovieClipUses:19Used by:68
Symbol 21 GraphicUsed by:68
Symbol 22 GraphicUsed by:68
Symbol 23 GraphicUsed by:24
Symbol 24 MovieClipUses:23Used by:68 1197
Symbol 25 GraphicUsed by:26
Symbol 26 MovieClipUses:25Used by:68
Symbol 27 GraphicUsed by:28
Symbol 28 MovieClipUses:27Used by:68
Symbol 29 GraphicUsed by:68
Symbol 30 GraphicUsed by:68
Symbol 31 GraphicUsed by:32
Symbol 32 MovieClipUses:31Used by:68 1197
Symbol 33 GraphicUsed by:34
Symbol 34 MovieClipUses:33Used by:68 1197
Symbol 35 GraphicUsed by:36
Symbol 36 MovieClipUses:35Used by:68
Symbol 37 GraphicUsed by:68
Symbol 38 GraphicUsed by:68
Symbol 39 GraphicUsed by:40
Symbol 40 MovieClipUses:39Used by:68 1197
Symbol 41 GraphicUsed by:42
Symbol 42 MovieClipUses:41Used by:68 1197
Symbol 43 GraphicUsed by:44
Symbol 44 MovieClipUses:43Used by:68 1197
Symbol 45 GraphicUsed by:68
Symbol 46 GraphicUsed by:68
Symbol 47 GraphicUsed by:48
Symbol 48 MovieClipUses:47Used by:68 1197
Symbol 49 GraphicUsed by:50
Symbol 50 MovieClipUses:49Used by:68
Symbol 51 GraphicUsed by:68
Symbol 52 GraphicUsed by:68
Symbol 53 GraphicUsed by:54
Symbol 54 MovieClipUses:53Used by:68 1197
Symbol 55 GraphicUsed by:56
Symbol 56 MovieClipUses:55Used by:68 1197
Symbol 57 GraphicUsed by:58
Symbol 58 MovieClipUses:57Used by:68 1197
Symbol 59 GraphicUsed by:68
Symbol 60 GraphicUsed by:68
Symbol 61 GraphicUsed by:62
Symbol 62 MovieClipUses:61Used by:68
Symbol 63 GraphicUsed by:64
Symbol 64 MovieClipUses:63Used by:68
Symbol 65 GraphicUsed by:66
Symbol 66 MovieClipUses:65Used by:68
Symbol 67 GraphicUsed by:68
Symbol 68 MovieClipUses:6 8 10 12 13 14 16 18 20 21 22 24 26 28 29 30 32 34 36 37 38 40 42 44 45 46 48 50 51 52 54 56 58 59 60 62 64 66 67Used by:118
Symbol 69 GraphicUsed by:118
Symbol 70 GraphicUsed by:118
Symbol 71 GraphicUsed by:77 82 197 203 254 688 694 699 780 821 935
Symbol 72 TextUses:3Used by:77
Symbol 73 GraphicUsed by:77
Symbol 74 GraphicUsed by:77 82 254 688 694 699 780 821
Symbol 75 TextUses:3Used by:77
Symbol 76 GraphicUsed by:77
Symbol 77 ButtonUses:71 72 73 74 75 76Used by:118
Symbol 78 TextUses:3Used by:82 821
Symbol 79 GraphicUsed by:82
Symbol 80 TextUses:3Used by:82 821
Symbol 81 GraphicUsed by:82
Symbol 82 ButtonUses:71 78 79 74 80 81Used by:118
Symbol 83 GraphicUsed by:113
Symbol 84 GraphicUsed by:90 113
Symbol 85 GraphicUsed by:90 113
Symbol 86 GraphicUsed by:87 113
Symbol 87 MovieClipUses:86Used by:90
Symbol 88 GraphicUsed by:89 113
Symbol 89 MovieClipUses:88Used by:90
Symbol 90 MovieClipUses:84 85 87 89Used by:98
Symbol 91 GraphicUsed by:97
Symbol 92 GraphicUsed by:97
Symbol 93 GraphicUsed by:94
Symbol 94 MovieClipUses:93Used by:97
Symbol 95 GraphicUsed by:96
Symbol 96 MovieClipUses:95Used by:97
Symbol 97 MovieClipUses:91 92 94 96Used by:98
Symbol 98 MovieClipUses:90 97Used by:112
Symbol 99 GraphicUsed by:111 113
Symbol 100 GraphicUsed by:111 113
Symbol 101 GraphicUsed by:111 113
Symbol 102 GraphicUsed by:111
Symbol 103 GraphicUsed by:111
Symbol 104 GraphicUsed by:111
Symbol 105 GraphicUsed by:111
Symbol 106 GraphicUsed by:111
Symbol 107 GraphicUsed by:111
Symbol 108 GraphicUsed by:111
Symbol 109 GraphicUsed by:111
Symbol 110 GraphicUsed by:111
Symbol 111 MovieClipUses:99 100 101 102 103 104 105 106 107 108 109 110Used by:112
Symbol 112 MovieClipUses:98 111Used by:113
Symbol 113 ButtonUses:83 112 84 85 86 88 99 100 101Used by:118
Symbol 114 GraphicUsed by:115
Symbol 115 MovieClipUses:114Used by:118
Symbol 116 GraphicUsed by:118
Symbol 117 GraphicUsed by:118
Symbol 118 MovieClip {mc_preloader} [mc_preloader]Uses:2 5 68 69 70 77 82 113 115 116 117
Symbol 119 GraphicUsed by:120
Symbol 120 MovieClipUses:119Used by:122 139 306
Symbol 121 GraphicUsed by:122 139
Symbol 122 MovieClipUses:120 121Used by:133
Symbol 123 GraphicUsed by:133
Symbol 124 GraphicUsed by:128
Symbol 125 GraphicUsed by:128
Symbol 126 GraphicUsed by:128
Symbol 127 GraphicUsed by:128
Symbol 128 MovieClipUses:124 125 126 127Used by:133 136 140 222 225 232 235
Symbol 129 GraphicUsed by:133
Symbol 130 GraphicUsed by:131
Symbol 131 MovieClipUses:130Used by:132
Symbol 132 MovieClip {graphics_fla.PanelTouchAnimation_3} [graphics_fla.PanelTouchAnimation_3]Uses:131Used by:133 136 140 222 225 232 235 1013
Symbol 133 MovieClip {mc_block5} [mc_block5]Uses:122 123 128 129 132
Symbol 134 GraphicUsed by:136
Symbol 135 GraphicUsed by:136
Symbol 136 MovieClip {mc_block4} [mc_block4]Uses:134 128 135 132
Symbol 137 GraphicUsed by:140
Symbol 138 GraphicUsed by:140
Symbol 139 MovieClipUses:120 121Used by:140
Symbol 140 MovieClip {mc_block6} [mc_block6]Uses:137 128 138 139 132
Symbol 141 TextUses:3Used by:155
Symbol 142 GraphicUsed by:155 219 336
Symbol 143 GraphicUsed by:155 216 219 317 336 707 937
Symbol 144 GraphicUsed by:145
Symbol 145 MovieClipUses:144Used by:155 867
Symbol 146 GraphicUsed by:147
Symbol 147 MovieClipUses:146Used by:155 867
Symbol 148 GraphicUsed by:149
Symbol 149 MovieClipUses:148Used by:155 867
Symbol 150 BitmapUsed by:151 153 1004
Symbol 151 GraphicUses:150Used by:155
Symbol 152 GraphicUsed by:155 216 219 317 336 707 937
Symbol 153 GraphicUses:150Used by:155
Symbol 154 GraphicUsed by:155 216 219 317 336 707 937
Symbol 155 MovieClip {Windows_fla.level2btn_9} [Windows_fla.level2btn_9]Uses:141 142 143 145 147 149 151 152 153 154Used by:939
Symbol 156 GraphicUsed by:157
Symbol 157 MovieClip {Windows_fla.badhed_logo_more_squarecopy_2} [Windows_fla.badhed_logo_more_squarecopy_2]Uses:156Used by:752 939
Symbol 158 GraphicUsed by:159
Symbol 159 MovieClip {Windows_fla.badhed_head_square_57} [Windows_fla.badhed_head_square_57]Uses:158Used by:264 645 867 1001
Symbol 160 GraphicUsed by:208 752 996
Symbol 161 TextUses:3Used by:208 752 996
Symbol 162 EditableTextUses:3Used by:208 752
Symbol 163 GraphicUsed by:170
Symbol 164 GraphicUsed by:165 958
Symbol 165 MovieClipUses:164Used by:170 219 270 275 344 644 645 867 958 990 1353
Symbol 166 GraphicUsed by:170 990
Symbol 167 ShapeTweeningUsed by:170
Symbol 168 GraphicUsed by:170 990
Symbol 169 GraphicUsed by:170
Symbol 170 MovieClipUses:163 165 166 167 168 169Used by:208 752
Symbol 171 TextUses:3Used by:208 752
Symbol 172 TextUses:3Used by:208 752
Symbol 173 EditableTextUses:3Used by:208 752
Symbol 174 EditableTextUses:3Used by:208
Symbol 175 EditableTextUses:3Used by:208 752 996
Symbol 176 GraphicUsed by:182 187 750 994
Symbol 177 TextUses:3Used by:182
Symbol 178 GraphicUsed by:182
Symbol 179 GraphicUsed by:182 187 197 750 935
Symbol 180 TextUses:3Used by:182
Symbol 181 GraphicUsed by:182
Symbol 182 ButtonUses:176 177 178 179 180 181Used by:208 752 996
Symbol 183 TextUses:3Used by:187
Symbol 184 GraphicUsed by:187
Symbol 185 TextUses:3Used by:187
Symbol 186 GraphicUsed by:187
Symbol 187 ButtonUses:176 183 184 179 185 186Used by:208
Symbol 188 ShapeTweeningUsed by:191
Symbol 189 ShapeTweeningUsed by:191
Symbol 190 GraphicUsed by:191
Symbol 191 MovieClipUses:188 189 190Used by:208
Symbol 192 GraphicUsed by:208
Symbol 193 TextUses:3Used by:197
Symbol 194 GraphicUsed by:197
Symbol 195 TextUses:3Used by:197
Symbol 196 GraphicUsed by:197
Symbol 197 ButtonUses:71 193 194 179 195 196Used by:208 939 996
Symbol 198 TextUses:3Used by:203
Symbol 199 GraphicUsed by:203 994
Symbol 200 GraphicUsed by:203 994
Symbol 201 TextUses:3Used by:203
Symbol 202 GraphicUsed by:203
Symbol 203 ButtonUses:71 198 199 200 201 202Used by:208 752 939 996
Symbol 204 GraphicUsed by:205
Symbol 205 MovieClipUses:204Used by:206
Symbol 206 MovieClip {Windows_fla.sponsorlogo_86} [Windows_fla.sponsorlogo_86]Uses:205Used by:208 487 996
Symbol 207 GraphicUsed by:208
Symbol 208 MovieClip {mc_wnd_level_complete} [mc_wnd_level_complete]Uses:160 161 162 170 171 172 173 174 175 182 187 191 192 197 203 206 207
Symbol 209 GraphicUsed by:210
Symbol 210 MovieClip {mc_skyjunk1} [mc_skyjunk1]Uses:209
Symbol 211 GraphicUsed by:212
Symbol 212 MovieClip {mc_skyjunk0} [mc_skyjunk0]Uses:211
Symbol 213 TextUses:3Used by:216
Symbol 214 GraphicUsed by:216 317 707 937
Symbol 215 GraphicUsed by:216
Symbol 216 MovieClip {Windows_fla.level4btn_15} [Windows_fla.level4btn_15]Uses:143 213 214 215 152 154Used by:939
Symbol 217 GraphicUsed by:219
Symbol 218 TextUses:3Used by:219
Symbol 219 MovieClip {Windows_fla.level1btn_7} [Windows_fla.level1btn_7]Uses:217 218 142 165 152 143 154Used by:939
Symbol 220 GraphicUsed by:222
Symbol 221 GraphicUsed by:222
Symbol 222 MovieClip {mc_block0} [mc_block0]Uses:220 128 221 132
Symbol 223 GraphicUsed by:225
Symbol 224 GraphicUsed by:225
Symbol 225 MovieClip {mc_block1} [mc_block1]Uses:223 128 224 132
Symbol 226 GraphicUsed by:232
Symbol 227 GraphicUsed by:232
Symbol 228 GraphicUsed by:230
Symbol 229 GraphicUsed by:230
Symbol 230 MovieClipUses:228 229Used by:232 1013
Symbol 231 GraphicUsed by:232 1013
Symbol 232 MovieClip {mc_block2} [mc_block2]Uses:226 128 227 230 231 132
Symbol 233 GraphicUsed by:235
Symbol 234 GraphicUsed by:235
Symbol 235 MovieClip {mc_block3} [mc_block3]Uses:233 128 234 132
Symbol 236 GraphicUsed by:237
Symbol 237 MovieClipUses:236Used by:240
Symbol 238 GraphicUsed by:239
Symbol 239 MovieClipUses:238Used by:240 755
Symbol 240 MovieClip {mc_fuel} [mc_fuel]Uses:237 239
Symbol 241 GraphicUsed by:245
Symbol 242 GraphicUsed by:243
Symbol 243 MovieClipUses:242Used by:245
Symbol 244 GraphicUsed by:245
Symbol 245 MovieClip {mc_bg_hypno} [mc_bg_hypno]Uses:241 243 244
Symbol 246 BitmapUsed by:247 443 496 683 819 997
Symbol 247 GraphicUses:246Used by:264 939
Symbol 248 TextUses:3Used by:264
Symbol 249 GraphicUsed by:264 939
Symbol 250 TextUses:3Used by:254
Symbol 251 GraphicUsed by:254
Symbol 252 TextUses:3Used by:254
Symbol 253 GraphicUsed by:254
Symbol 254 ButtonUses:71 250 251 74 252 253Used by:264 444 645 939 948 1001
Symbol 255 GraphicUsed by:264
Symbol 256 EditableTextUses:3Used by:264
Symbol 257 TextUses:3Used by:264
Symbol 258 TextUses:3Used by:264
Symbol 259 TextUses:3Used by:264
Symbol 260 TextUses:3Used by:264
Symbol 261 TextUses:3Used by:264
Symbol 262 TextUses:3Used by:264
Symbol 263 GraphicUsed by:264
Symbol 264 MovieClip {mc_wnd_stats} [mc_wnd_stats]Uses:247 248 249 254 255 256 257 258 259 260 261 262 263 159
Symbol 265 GraphicUsed by:270
Symbol 266 GraphicUsed by:270 275
Symbol 267 ShapeTweeningUsed by:270
Symbol 268 GraphicUsed by:270
Symbol 269 GraphicUsed by:270
Symbol 270 MovieClipUses:265 165 266 267 268 269Used by:275
Symbol 271 GraphicUsed by:272
Symbol 272 MovieClipUses:271Used by:275 1354
Symbol 273 GraphicUsed by:275
Symbol 274 ShapeTweeningUsed by:275
Symbol 275 MovieClip {mc_star} [mc_star]Uses:270 272 273 165 266 274
Symbol 276 BitmapUsed by:277
Symbol 277 GraphicUses:276Used by:278
Symbol 278 MovieClipUses:277Used by:303
Symbol 279 BitmapUsed by:280
Symbol 280 GraphicUses:279Used by:281
Symbol 281 MovieClipUses:280Used by:303
Symbol 282 BitmapUsed by:283
Symbol 283 GraphicUses:282Used by:284
Symbol 284 MovieClipUses:283Used by:303
Symbol 285 BitmapUsed by:286
Symbol 286 GraphicUses:285Used by:287
Symbol 287 MovieClipUses:286Used by:303
Symbol 288 BitmapUsed by:289
Symbol 289 GraphicUses:288Used by:290
Symbol 290 MovieClipUses:289Used by:303
Symbol 291 BitmapUsed by:292
Symbol 292 GraphicUses:291Used by:293
Symbol 293 MovieClipUses:292Used by:303
Symbol 294 BitmapUsed by:295
Symbol 295 GraphicUses:294Used by:296
Symbol 296 MovieClipUses:295Used by:303
Symbol 297 BitmapUsed by:298
Symbol 298 GraphicUses:297Used by:299
Symbol 299 MovieClipUses:298Used by:303
Symbol 300 BitmapUsed by:301
Symbol 301 GraphicUses:300Used by:302
Symbol 302 MovieClipUses:301Used by:303
Symbol 303 MovieClip {mc_bg} [mc_bg]Uses:278 281 284 287 290 293 296 299 302
Symbol 304 TextUses:3Used by:317
Symbol 305 GraphicUsed by:306
Symbol 306 MovieClipUses:120 305Used by:311 316
Symbol 307 GraphicUsed by:311
Symbol 308 GraphicUsed by:309
Symbol 309 MovieClipUses:308Used by:311
Symbol 310 GraphicUsed by:311
Symbol 311 MovieClipUses:306 307 309 310Used by:317 867
Symbol 312 GraphicUsed by:316
Symbol 313 GraphicUsed by:314
Symbol 314 MovieClipUses:313Used by:316 867
Symbol 315 GraphicUsed by:316
Symbol 316 MovieClipUses:312 314 315 306Used by:317 867
Symbol 317 MovieClip {Windows_fla.level6btn_18} [Windows_fla.level6btn_18]Uses:143 304 214 311 316 152 154Used by:939
Symbol 318 GraphicUsed by:323
Symbol 319 GraphicUsed by:323
Symbol 320 GraphicUsed by:323
Symbol 321 GraphicUsed by:322
Symbol 322 MovieClipUses:321Used by:323 361 856
Symbol 323 MovieClip {mc_starfall} [mc_starfall]Uses:318 319 320 322
Symbol 324 FontUsed by:325 979 1014 1064 1065 1069 1070 1071 1072 1073 1282 1283 1315 1319 1334 1336 1344 1347
Symbol 325 EditableTextUses:324Used by:326
Symbol 326 MovieClipUses:325Used by:331
Symbol 327 GraphicUsed by:330
Symbol 328 GraphicUsed by:330
Symbol 329 GraphicUsed by:330
Symbol 330 MovieClip {graphics_fla.PlaneScoreColor_61} [graphics_fla.PlaneScoreColor_61]Uses:327 328 329Used by:331
Symbol 331 MovieClipUses:326 330Used by:332
Symbol 332 MovieClip {mc_platform_score} [mc_platform_score]Uses:331
Symbol 333 TextUses:3Used by:336
Symbol 334 GraphicUsed by:335
Symbol 335 MovieClipUses:334Used by:336 834 867 1308
Symbol 336 MovieClip {Windows_fla.level3btn_13} [Windows_fla.level3btn_13]Uses:143 333 142 335 152 154Used by:939
Symbol 337 GraphicUsed by:418
Symbol 338 TextUses:3Used by:418
Symbol 339 GraphicUsed by:344
Symbol 340 GraphicUsed by:344 348 352 356 370 374 380 391 397
Symbol 341 GraphicUsed by:344 348 352 356 370 374 380 391 397 415
Symbol 342 GraphicUsed by:343
Symbol 343 MovieClipUses:342Used by:344 348 352 356 370 374 380 391 397 415
Symbol 344 MovieClipUses:339 340 165 341 343Used by:417 1001
Symbol 345 TextUses:3Used by:417
Symbol 346 GraphicUsed by:348
Symbol 347 GraphicUsed by:348
Symbol 348 MovieClipUses:346 340 347 341 343Used by:417 1001
Symbol 349 TextUses:3Used by:417
Symbol 350 GraphicUsed by:352
Symbol 351 GraphicUsed by:352
Symbol 352 MovieClipUses:350 340 351 341 343Used by:417 1001
Symbol 353 TextUses:3Used by:417
Symbol 354 GraphicUsed by:356
Symbol 355 GraphicUsed by:356
Symbol 356 MovieClipUses:354 340 355 341 343Used by:417 1001
Symbol 357 TextUses:3Used by:417
Symbol 358 GraphicUsed by:370
Symbol 359 GraphicUsed by:370
Symbol 360 GraphicUsed by:361
Symbol 361 MovieClipUses:360 322Used by:370
Symbol 362 GraphicUsed by:363
Symbol 363 MovieClipUses:362Used by:370 391 757 858
Symbol 364 GraphicUsed by:367
Symbol 365 GraphicUsed by:367
Symbol 366 GraphicUsed by:367
Symbol 367 MovieClipUses:364 365 366Used by:370 937
Symbol 368 GraphicUsed by:369
Symbol 369 MovieClipUses:368Used by:370 860 1003
Symbol 370 MovieClipUses:358 340 359 361 363 367 369 341 343Used by:417 1001
Symbol 371 TextUses:3Used by:417
Symbol 372 GraphicUsed by:374
Symbol 373 GraphicUsed by:374
Symbol 374 MovieClipUses:372 340 373 341 343Used by:417 1001
Symbol 375 TextUses:3Used by:417
Symbol 376 GraphicUsed by:380
Symbol 377 GraphicUsed by:380
Symbol 378 GraphicUsed by:380
Symbol 379 GraphicUsed by:380
Symbol 380 MovieClipUses:376 340 377 378 379 341 343Used by:417 1001
Symbol 381 TextUses:3Used by:417
Symbol 382 GraphicUsed by:391
Symbol 383 GraphicUsed by:391
Symbol 384 GraphicUsed by:390
Symbol 385 GraphicUsed by:386
Symbol 386 MovieClipUses:385Used by:390 511 548 585 631 1225 1243 1276 1277
Symbol 387 GraphicUsed by:388
Symbol 388 MovieClipUses:387Used by:390 631
Symbol 389 GraphicUsed by:390
Symbol 390 MovieClipUses:384 386 388 389Used by:391
Symbol 391 MovieClipUses:382 340 383 390 363 341 343Used by:417 1001
Symbol 392 TextUses:3Used by:417
Symbol 393 GraphicUsed by:397
Symbol 394 GraphicUsed by:395
Symbol 395 MovieClip {Windows_fla.Timeline_75} [Windows_fla.Timeline_75]Uses:394Used by:397
Symbol 396 GraphicUsed by:397
Symbol 397 MovieClipUses:393 340 395 396 341 343Used by:417 1001
Symbol 398 TextUses:3Used by:417
Symbol 399 GraphicUsed by:415
Symbol 400 GraphicUsed by:415
Symbol 401 GraphicUsed by:402
Symbol 402 MovieClipUses:401Used by:415
Symbol 403 GraphicUsed by:414
Symbol 404 GraphicUsed by:405
Symbol 405 MovieClipUses:404Used by:414
Symbol 406 GraphicUsed by:407
Symbol 407 MovieClipUses:406Used by:414 1277
Symbol 408 GraphicUsed by:409
Symbol 409 MovieClipUses:408Used by:414
Symbol 410 GraphicUsed by:414
Symbol 411 GraphicUsed by:413
Symbol 412 GraphicUsed by:413
Symbol 413 MovieClip {Windows_fla.antenna_37} [Windows_fla.antenna_37]Uses:411 412Used by:414 511 548 585 631 867
Symbol 414 MovieClip {Windows_fla.sdg_78} [Windows_fla.sdg_78]Uses:403 405 407 409 410 413Used by:415
Symbol 415 MovieClipUses:399 400 402 414 341 343Used by:417 1001
Symbol 416 TextUses:3Used by:417
Symbol 417 MovieClip {Windows_fla.mc_ach_201} [Windows_fla.mc_ach_201]Uses:344 345 348 349 352 353 356 357 370 371 374 375 380 381 391 392 397 398 415 416Used by:418
Symbol 418 MovieClipUses:337 338 417Used by:419
Symbol 419 MovieClip {mc_ach_info} [mc_ach_info]Uses:418
Symbol 420 GraphicUsed by:425
Symbol 421 GraphicUsed by:425
Symbol 422 GraphicUsed by:423
Symbol 423 MovieClipUses:422Used by:425
Symbol 424 GraphicUsed by:425
Symbol 425 Button {mcu_legs1} [mcu_legs1]Uses:420 421 423 424
Symbol 426 GraphicUsed by:431
Symbol 427 GraphicUsed by:431
Symbol 428 GraphicUsed by:429
Symbol 429 MovieClipUses:428Used by:431
Symbol 430 GraphicUsed by:431
Symbol 431 Button {mcu_legs2} [mcu_legs2]Uses:426 427 429 430
Symbol 432 GraphicUsed by:435
Symbol 433 GraphicUsed by:435
Symbol 434 GraphicUsed by:435
Symbol 435 Button {mcu_legs3} [mcu_legs3]Uses:432 433 434
Symbol 436 GraphicUsed by:437
Symbol 437 MovieClipUses:436Used by:442
Symbol 438 GraphicUsed by:439
Symbol 439 MovieClipUses:438Used by:442
Symbol 440 GraphicUsed by:441
Symbol 441 MovieClipUses:440Used by:442
Symbol 442 MovieClip {mc_bg_item_0_2} [mc_bg_item_0_2]Uses:437 439 441
Symbol 443 GraphicUses:246Used by:444 867 948
Symbol 444 MovieClip {mc_wnd_score} [mc_wnd_score]Uses:443 254
Symbol 445 GraphicUsed by:454
Symbol 446 GraphicUsed by:454
Symbol 447 ShapeTweeningUsed by:454
Symbol 448 GraphicUsed by:454
Symbol 449 ShapeTweeningUsed by:454
Symbol 450 GraphicUsed by:454
Symbol 451 ShapeTweeningUsed by:454
Symbol 452 GraphicUsed by:454
Symbol 453 GraphicUsed by:454
Symbol 454 MovieClipUses:445 446 447 448 449 450 451 452 453Used by:467
Symbol 455 GraphicUsed by:467
Symbol 456 GraphicUsed by:467
Symbol 457 GraphicUsed by:467
Symbol 458 GraphicUsed by:467
Symbol 459 GraphicUsed by:467
Symbol 460 GraphicUsed by:467
Symbol 461 GraphicUsed by:467
Symbol 462 GraphicUsed by:467
Symbol 463 GraphicUsed by:467
Symbol 464 GraphicUsed by:467
Symbol 465 GraphicUsed by:467
Symbol 466 GraphicUsed by:467
Symbol 467 MovieClip {mc_bonusbox} [mc_bonusbox]Uses:454 455 456 457 458 459 460 461 462 463 464 465 466
Symbol 468 GraphicUsed by:472
Symbol 469 GraphicUsed by:470
Symbol 470 MovieClipUses:469Used by:472
Symbol 471 GraphicUsed by:472
Symbol 472 Button {mcu_weapon2} [mcu_weapon2]Uses:468 470 471
Symbol 473 GraphicUsed by:483
Symbol 474 GraphicUsed by:475
Symbol 475 MovieClipUses:474Used by:483
Symbol 476 GraphicUsed by:482
Symbol 477 ShapeTweeningUsed by:482
Symbol 478 GraphicUsed by:482
Symbol 479 ShapeTweeningUsed by:482
Symbol 480 ShapeTweeningUsed by:482
Symbol 481 GraphicUsed by:482
Symbol 482 MovieClipUses:476 477 478 479 480 481Used by:483
Symbol 483 MovieClipUses:473 475 482Used by:487
Symbol 484 BitmapUsed by:485
Symbol 485 GraphicUses:484Used by:486
Symbol 486 MovieClipUses:485Used by:487
Symbol 487 MovieClip {Windows_fla.GAMETITLEANIMATION_93} [Windows_fla.GAMETITLEANIMATION_93]Uses:483 206 486Used by:703
Symbol 488 GraphicUsed by:489 490
Symbol 489 MovieClipUses:488Used by:490
Symbol 490 Button {mcu_weapon3} [mcu_weapon3]Uses:489 488
Symbol 491 GraphicUsed by:495
Symbol 492 GraphicUsed by:493
Symbol 493 MovieClipUses:492Used by:495
Symbol 494 GraphicUsed by:495
Symbol 495 Button {mcu_weapon1} [mcu_weapon1]Uses:491 493 494
Symbol 496 GraphicUses:246Used by:645
Symbol 497 GraphicUsed by:645
Symbol 498 GraphicUsed by:511
Symbol 499 GraphicUsed by:500
Symbol 500 MovieClipUses:499Used by:511 548 585 631 1225 1243 1276 1277
Symbol 501 GraphicUsed by:502
Symbol 502 MovieClipUses:501Used by:511 548 585 1225 1243 1276
Symbol 503 GraphicUsed by:511
Symbol 504 GraphicUsed by:505
Symbol 505 MovieClipUses:504Used by:510 1224
Symbol 506 GraphicUsed by:507
Symbol 507 MovieClipUses:506Used by:510 1224
Symbol 508 ShapeTweeningUsed by:510
Symbol 509 GraphicUsed by:510
Symbol 510 MovieClipUses:505 507 508 509Used by:511
Symbol 511 MovieClipUses:498 500 386 502 503 413 510Used by:586 867
Symbol 512 GraphicUsed by:548
Symbol 513 GraphicUsed by:514
Symbol 514 MovieClipUses:513Used by:548 585 1243 1276
Symbol 515 GraphicUsed by:548
Symbol 516 GraphicUsed by:548
Symbol 517 GraphicUsed by:548
Symbol 518 GraphicUsed by:524
Symbol 519 GraphicUsed by:524
Symbol 520 GraphicUsed by:524
Symbol 521 GraphicUsed by:524
Symbol 522 GraphicUsed by:524
Symbol 523 GraphicUsed by:524
Symbol 524 MovieClipUses:518 519 520 521 522 523Used by:548 867
Symbol 525 GraphicUsed by:548
Symbol 526 GraphicUsed by:527
Symbol 527 MovieClipUses:526Used by:548 585 1243 1276
Symbol 528 GraphicUsed by:548
Symbol 529 GraphicUsed by:548
Symbol 530 GraphicUsed by:548
Symbol 531 GraphicUsed by:548
Symbol 532 GraphicUsed by:548
Symbol 533 GraphicUsed by:548
Symbol 534 GraphicUsed by:535
Symbol 535 MovieClipUses:534Used by:548 1243
Symbol 536 GraphicUsed by:548
Symbol 537 GraphicUsed by:548
Symbol 538 GraphicUsed by:539
Symbol 539 MovieClipUses:538Used by:548 1243
Symbol 540 GraphicUsed by:548
Symbol 541 ShapeTweeningUsed by:548
Symbol 542 GraphicUsed by:548
Symbol 543 GraphicUsed by:548
Symbol 544 ShapeTweeningUsed by:548
Symbol 545 GraphicUsed by:548
Symbol 546 GraphicUsed by:548
Symbol 547 GraphicUsed by:548
Symbol 548 MovieClipUses:512 500 386 514 515 413 516 502 517 524 525 527 528 529 530 531 532 533 535 536 537 539 540 541 542 543 544 545 546 547Used by:586
Symbol 549 GraphicUsed by:585
Symbol 550 GraphicUsed by:585
Symbol 551 GraphicUsed by:585
Symbol 552 GraphicUsed by:585
Symbol 553 GraphicUsed by:585
Symbol 554 GraphicUsed by:585
Symbol 555 GraphicUsed by:585
Symbol 556 GraphicUsed by:585
Symbol 557 GraphicUsed by:585
Symbol 558 GraphicUsed by:585
Symbol 559 GraphicUsed by:585
Symbol 560 GraphicUsed by:585
Symbol 561 GraphicUsed by:585
Symbol 562 GraphicUsed by:585
Symbol 563 ShapeTweeningUsed by:585
Symbol 564 GraphicUsed by:585
Symbol 565 GraphicUsed by:566
Symbol 566 MovieClipUses:565Used by:585 1276
Symbol 567 GraphicUsed by:585
Symbol 568 GraphicUsed by:585
Symbol 569 GraphicUsed by:585
Symbol 570 GraphicUsed by:585
Symbol 571 GraphicUsed by:585
Symbol 572 GraphicUsed by:585
Symbol 573 GraphicUsed by:585
Symbol 574 GraphicUsed by:585
Symbol 575 GraphicUsed by:585
Symbol 576 GraphicUsed by:585
Symbol 577 GraphicUsed by:585
Symbol 578 GraphicUsed by:585
Symbol 579 GraphicUsed by:585
Symbol 580 GraphicUsed by:585
Symbol 581 GraphicUsed by:585
Symbol 582 GraphicUsed by:585
Symbol 583 GraphicUsed by:585
Symbol 584 GraphicUsed by:585
Symbol 585 MovieClipUses:549 500 386 514 550 413 551 502 552 553 527 554 555 556 557 558 559 560 561 562 563 564 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584Used by:586
Symbol 586 MovieClip {Windows_fla.mc_joe_32} [Windows_fla.mc_joe_32]Uses:511 548 585Used by:645
Symbol 587 GraphicUsed by:631
Symbol 588 GraphicUsed by:601
Symbol 589 GraphicUsed by:601
Symbol 590 GraphicUsed by:601
Symbol 591 GraphicUsed by:601
Symbol 592 GraphicUsed by:601
Symbol 593 GraphicUsed by:601
Symbol 594 GraphicUsed by:601
Symbol 595 GraphicUsed by:601
Symbol 596 GraphicUsed by:601
Symbol 597 GraphicUsed by:601
Symbol 598 GraphicUsed by:601
Symbol 599 GraphicUsed by:601
Symbol 600 GraphicUsed by:601
Symbol 601 MovieClip {Windows_fla.eyes_1_51} [Windows_fla.eyes_1_51]Uses:588 589 590 591 592 593 594 595 596 597 598 599 600Used by:631
Symbol 602 GraphicUsed by:612
Symbol 603 GraphicUsed by:612
Symbol 604 GraphicUsed by:612
Symbol 605 GraphicUsed by:612
Symbol 606 GraphicUsed by:612
Symbol 607 GraphicUsed by:612
Symbol 608 GraphicUsed by:612
Symbol 609 GraphicUsed by:612
Symbol 610 GraphicUsed by:612
Symbol 611 GraphicUsed by:612
Symbol 612 MovieClipUses:602 603 604 605 606 607 608 609 610 611Used by:630
Symbol 613 GraphicUsed by:629
Symbol 614 GraphicUsed by:629
Symbol 615 GraphicUsed by:629
Symbol 616 GraphicUsed by:629
Symbol 617 GraphicUsed by:629
Symbol 618 GraphicUsed by:629
Symbol 619 GraphicUsed by:629
Symbol 620 GraphicUsed by:629
Symbol 621 GraphicUsed by:629
Symbol 622 GraphicUsed by:629
Symbol 623 GraphicUsed by:629
Symbol 624 GraphicUsed by:629
Symbol 625 GraphicUsed by:629
Symbol 626 GraphicUsed by:629
Symbol 627 GraphicUsed by:629
Symbol 628 GraphicUsed by:629
Symbol 629 MovieClipUses:613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628Used by:630
Symbol 630 MovieClipUses:612 629Used by:631
Symbol 631 MovieClipUses:500 386 388 587 601 413 630Used by:645
Symbol 632 GraphicUsed by:645
Symbol 633 TextUses:3Used by:645
Symbol 634 EditableTextUses:3Used by:645
Symbol 635 GraphicUsed by:645
Symbol 636 EditableTextUses:3Used by:645
Symbol 637 TextUses:3Used by:645 1001
Symbol 638 GraphicUsed by:644
Symbol 639 EditableTextUses:3Used by:644
Symbol 640 GraphicUsed by:644
Symbol 641 EditableTextUses:3Used by:644
Symbol 642 GraphicUsed by:643
Symbol 643 MovieClipUses:642Used by:644
Symbol 644 MovieClipUses:638 639 640 165 641 643Used by:645
Symbol 645 MovieClip {mc_wnd_upgrades} [mc_wnd_upgrades]Uses:496 254 497 586 631 632 165 633 634 635 636 637 644 159
Symbol 646 GraphicUsed by:647
Symbol 647 MovieClipUses:646Used by:652
Symbol 648 GraphicUsed by:649
Symbol 649 MovieClipUses:648Used by:652
Symbol 650 GraphicUsed by:651
Symbol 651 MovieClipUses:650Used by:652
Symbol 652 MovieClip {mc_bg_item_0_1} [mc_bg_item_0_1]Uses:647 649 651
Symbol 653 GraphicUsed by:654
Symbol 654 MovieClipUses:653Used by:659
Symbol 655 GraphicUsed by:656
Symbol 656 MovieClipUses:655Used by:659
Symbol 657 GraphicUsed by:658
Symbol 658 MovieClipUses:657Used by:659
Symbol 659 MovieClip {mc_bg_item_0_0} [mc_bg_item_0_0]Uses:654 656 658
Symbol 660 GraphicUsed by:668
Symbol 661 GraphicUsed by:668
Symbol 662 GraphicUsed by:668
Symbol 663 GraphicUsed by:668
Symbol 664 GraphicUsed by:668
Symbol 665 GraphicUsed by:668
Symbol 666 GraphicUsed by:668
Symbol 667 GraphicUsed by:668
Symbol 668 MovieClip {mc_head_bum} [mc_head_bum]Uses:660 661 662 663 664 665 666 667
Symbol 669 GraphicUsed by:673
Symbol 670 GraphicUsed by:671
Symbol 671 MovieClipUses:670Used by:673
Symbol 672 GraphicUsed by:673
Symbol 673 MovieClip {mc_bg_slow} [mc_bg_slow]Uses:669 671 672
Symbol 674 GraphicUsed by:676 677 709 711 712
Symbol 675 GraphicUsed by:677
Symbol 676 MovieClipUses:674Used by:677
Symbol 677 Button {mcu_health1} [mcu_health1]Uses:674 675 676
Symbol 678 GraphicUsed by:682
Symbol 679 GraphicUsed by:680
Symbol 680 MovieClipUses:679Used by:682
Symbol 681 GraphicUsed by:682
Symbol 682 MovieClip {mc_bg_starfall} [mc_bg_starfall]Uses:678 680 681
Symbol 683 GraphicUses:246Used by:703
Symbol 684 TextUses:3Used by:688
Symbol 685 GraphicUsed by:688
Symbol 686 TextUses:3Used by:688
Symbol 687 GraphicUsed by:688
Symbol 688 ButtonUses:71 684 685 74 686 687Used by:702
Symbol 689 TextUses:3Used by:694
Symbol 690 GraphicUsed by:694
Symbol 691 TextUses:3Used by:694
Symbol 692 GraphicUsed by:694
Symbol 693 GraphicUsed by:694
Symbol 694 ButtonUses:71 689 690 74 691 692 693Used by:702
Symbol 695 TextUses:3Used by:699
Symbol 696 GraphicUsed by:699
Symbol 697 TextUses:3Used by:699
Symbol 698 GraphicUsed by:699 821
Symbol 699 ButtonUses:71 695 696 74 697 698Used by:702
Symbol 700 GraphicUsed by:701
Symbol 701 MovieClipUses:700Used by:702
Symbol 702 MovieClip {Windows_fla.TitleButtonAnimation_98} [Windows_fla.TitleButtonAnimation_98]Uses:688 694 699 701Used by:703
Symbol 703 MovieClip {mc_wnd_main_menu} [mc_wnd_main_menu]Uses:683 487 702
Symbol 704 TextUses:3Used by:707
Symbol 705 GraphicUsed by:706
Symbol 706 MovieClipUses:705Used by:707
Symbol 707 MovieClip {Windows_fla.level5btn_16} [Windows_fla.level5btn_16]Uses:143 704 214 706 152 154Used by:939
Symbol 708 GraphicUsed by:709
Symbol 709 Button {mcu_health3} [mcu_health3]Uses:674 708
Symbol 710 GraphicUsed by:712
Symbol 711 MovieClipUses:674Used by:712
Symbol 712 Button {mcu_health2} [mcu_health2]Uses:674 710 711
Symbol 713 GraphicUsed by:714
Symbol 714 Button {mcu_antenna2} [mcu_antenna2]Uses:713
Symbol 715 GraphicUsed by:716 717
Symbol 716 MovieClipUses:715Used by:717
Symbol 717 Button {mcu_antenna1} [mcu_antenna1]Uses:715 716
Symbol 718 GraphicUsed by:719
Symbol 719 MovieClipUses:718Used by:724
Symbol 720 GraphicUsed by:721
Symbol 721 MovieClipUses:720Used by:724
Symbol 722 GraphicUsed by:723
Symbol 723 MovieClipUses:722Used by:724
Symbol 724 MovieClip {mc_bg_item_2_2} [mc_bg_item_2_2]Uses:719 721 723
Symbol 725 GraphicUsed by:726
Symbol 726 MovieClipUses:725Used by:731
Symbol 727 GraphicUsed by:728
Symbol 728 MovieClipUses:727Used by:731
Symbol 729 GraphicUsed by:730
Symbol 730 MovieClipUses:729Used by:731
Symbol 731 MovieClip {mc_bg_item_2_0} [mc_bg_item_2_0]Uses:726 728 730
Symbol 732 GraphicUsed by:733
Symbol 733 MovieClipUses:732Used by:738
Symbol 734 GraphicUsed by:735
Symbol 735 MovieClipUses:734Used by:738
Symbol 736 GraphicUsed by:737
Symbol 737 MovieClipUses:736Used by:738
Symbol 738 MovieClip {mc_bg_item_2_1} [mc_bg_item_2_1]Uses:733 735 737
Symbol 739 GraphicUsed by:744
Symbol 740 GraphicUsed by:743
Symbol 741 GraphicUsed by:743
Symbol 742 GraphicUsed by:743
Symbol 743 MovieClip {graphics_fla.bombcounter_48} [graphics_fla.bombcounter_48]Uses:740 741 742Used by:744
Symbol 744 MovieClip {mc_skybomb} [mc_skybomb]Uses:739 743
Symbol 745 EditableTextUses:3Used by:752
Symbol 746 TextUses:3Used by:750
Symbol 747 GraphicUsed by:750
Symbol 748 TextUses:3Used by:750
Symbol 749 GraphicUsed by:750
Symbol 750 ButtonUses:176 746 747 179 748 749Used by:752
Symbol 751 GraphicUsed by:752
Symbol 752 MovieClip {mc_wnd_pause} [mc_wnd_pause]Uses:160 161 162 170 171 172 173 745 175 157 182 750 203 751
Symbol 753 GraphicUsed by:754
Symbol 754 MovieClipUses:753Used by:755
Symbol 755 MovieClip {mc_health} [mc_health]Uses:754 239
Symbol 756 GraphicUsed by:757
Symbol 757 MovieClip {mc_slow} [mc_slow]Uses:756 363
Symbol 758 GraphicUsed by:762
Symbol 759 GraphicUsed by:762
Symbol 760 GraphicUsed by:762
Symbol 761 GraphicUsed by:762
Symbol 762 Button {mcu_jet_speed3} [mcu_jet_speed3]Uses:758 759 760 761
Symbol 763 GraphicUsed by:768
Symbol 764 GraphicUsed by:768
Symbol 765 GraphicUsed by:766
Symbol 766 MovieClipUses:765Used by:768
Symbol 767 GraphicUsed by:768
Symbol 768 Button {mcu_jet_speed2} [mcu_jet_speed2]Uses:763 764 766 767
Symbol 769 GraphicUsed by:774
Symbol 770 GraphicUsed by:774
Symbol 771 GraphicUsed by:772
Symbol 772 MovieClipUses:771Used by:774
Symbol 773 GraphicUsed by:774
Symbol 774 Button {mcu_jet_speed1} [mcu_jet_speed1]Uses:769 770 772 773
Symbol 775 GraphicUsed by:867
Symbol 776 TextUses:3Used by:780
Symbol 777 GraphicUsed by:780
Symbol 778 TextUses:3Used by:780
Symbol 779 GraphicUsed by:780
Symbol 780 ButtonUses:71 776 777 74 778 779Used by:867
Symbol 781 GraphicUsed by:867
Symbol 782 TextUses:3Used by:867
Symbol 783 TextUses:3Used by:867
Symbol 784 TextUses:3Used by:867
Symbol 785 TextUses:3Used by:867
Symbol 786 TextUses:3Used by:867
Symbol 787 GraphicUsed by:788 867
Symbol 788 MovieClipUses:787Used by:867
Symbol 789 GraphicUsed by:867
Symbol 790 GraphicUsed by:791
Symbol 791 MovieClipUses:790Used by:867 1277
Symbol 792 GraphicUsed by:793
Symbol 793 MovieClipUses:792Used by:867 1277
Symbol 794 GraphicUsed by:795
Symbol 795 MovieClipUses:794Used by:867 1277
Symbol 796 GraphicUsed by:867
Symbol 797 MovieClipUsed by:867
Symbol 798 GraphicUsed by:867
Symbol 799 GraphicUsed by:800
Symbol 800 MovieClipUses:799Used by:867 1277
Symbol 801 GraphicUsed by:802
Symbol 802 MovieClipUses:801Used by:867 1277
Symbol 803 GraphicUsed by:804
Symbol 804 MovieClipUses:803Used by:867 1277
Symbol 805 GraphicUsed by:867
Symbol 806 TextUses:3Used by:867
Symbol 807 GraphicUsed by:867
Symbol 808 TextUses:3Used by:867
Symbol 809 TextUses:3Used by:867
Symbol 810 TextUses:3Used by:867
Symbol 811 TextUses:3Used by:867
Symbol 812 GraphicUsed by:813
Symbol 813 MovieClipUses:812Used by:867
Symbol 814 GraphicUsed by:817
Symbol 815 GraphicUsed by:816
Symbol 816 MovieClipUses:815Used by:817 1331
Symbol 817 MovieClipUses:814 816Used by:867
Symbol 818 TextUses:3Used by:867
Symbol 819 GraphicUses:246Used by:867
Symbol 820 GraphicUsed by:821
Symbol 821 ButtonUses:71 78 820 74 80 698Used by:867
Symbol 822 GraphicUsed by:867
Symbol 823 TextUses:3Used by:867
Symbol 824 TextUses:3Used by:867
Symbol 825 TextUses:3Used by:867
Symbol 826 TextUses:3Used by:867
Symbol 827 GraphicUsed by:867
Symbol 828 GraphicUsed by:829
Symbol 829 MovieClipUses:828Used by:867 1277
Symbol 830 GraphicUsed by:831
Symbol 831 MovieClipUses:830Used by:867
Symbol 832 GraphicUsed by:867
Symbol 833 GraphicUsed by:834
Symbol 834 MovieClipUses:833 335Used by:867
Symbol 835 GraphicUsed by:867
Symbol 836 TextUses:3Used by:867
Symbol 837 GraphicUsed by:867
Symbol 838 GraphicUsed by:867
Symbol 839 GraphicUsed by:867
Symbol 840 TextUses:3Used by:867
Symbol 841 TextUses:3Used by:867
Symbol 842 GraphicUsed by:867
Symbol 843 GraphicUsed by:844
Symbol 844 MovieClipUses:843Used by:867
Symbol 845 TextUses:3Used by:867
Symbol 846 TextUses:3Used by:867
Symbol 847 TextUses:3Used by:867
Symbol 848 TextUses:3Used by:867
Symbol 849 GraphicUsed by:850
Symbol 850 MovieClipUses:849Used by:867 996
Symbol 851 TextUses:3Used by:867
Symbol 852 TextUses:3Used by:867
Symbol 853 GraphicUsed by:856
Symbol 854 GraphicUsed by:856
Symbol 855 GraphicUsed by:856
Symbol 856 MovieClipUses:853 854 855 322Used by:867
Symbol 857 GraphicUsed by:858
Symbol 858 MovieClipUses:857 363Used by:867
Symbol 859 GraphicUsed by:860
Symbol 860 MovieClipUses:859 369Used by:867
Symbol 861 TextUses:3Used by:867
Symbol 862 TextUses:3Used by:867
Symbol 863 TextUses:3Used by:867
Symbol 864 TextUses:3Used by:867
Symbol 865 TextUses:3Used by:867
Symbol 866 TextUses:3Used by:867
Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help]Uses:443 775 780 781 782 783 784 785 786 788 789 791 793 795 796 797 413 798 800 802 804 805 806 159 807 808 809 810 811 145 147 149 813 817 818 819 821 822 823 824 165 825 511 826 524 827 829 831 832 834 335 835 836 787 837 314 838 839 840 841 842 844 845 846 311 316 847 848 850 851 852 856 858 860 861 862 863 864 865 866
Symbol 868 ShapeTweeningUsed by:877
Symbol 869 GraphicUsed by:877
Symbol 870 GraphicUsed by:877
Symbol 871 ShapeTweeningUsed by:877
Symbol 872 GraphicUsed by:877
Symbol 873 ShapeTweeningUsed by:877
Symbol 874 GraphicUsed by:877
Symbol 875 GraphicUsed by:877
Symbol 876 GraphicUsed by:877
Symbol 877 MovieClip {mc_magnet} [mc_magnet]Uses:868 869 870 871 872 873 874 875 876
Symbol 878 GraphicUsed by:879
Symbol 879 MovieClip {mc_spacejunk0} [mc_spacejunk0]Uses:878
Symbol 880 GraphicUsed by:881
Symbol 881 MovieClip {Windows_fla.badhed_logo_more_104} [Windows_fla.badhed_logo_more_104]Uses:880Used by:948
Symbol 882 GraphicUsed by:883
Symbol 883 MovieClip {mc_spacejunk2} [mc_spacejunk2]Uses:882
Symbol 884 GraphicUsed by:885
Symbol 885 MovieClip {mc_spacejunk1} [mc_spacejunk1]Uses:884
Symbol 886 GraphicUsed by:887
Symbol 887 MovieClipUses:886Used by:892
Symbol 888 GraphicUsed by:889
Symbol 889 MovieClipUses:888Used by:892
Symbol 890 GraphicUsed by:891
Symbol 891 MovieClipUses:890Used by:892
Symbol 892 MovieClip {mc_bg_item_1_0} [mc_bg_item_1_0]Uses:887 889 891
Symbol 893 GraphicUsed by:902
Symbol 894 GraphicUsed by:902
Symbol 895 GraphicUsed by:902
Symbol 896 GraphicUsed by:902
Symbol 897 GraphicUsed by:902
Symbol 898 GraphicUsed by:902
Symbol 899 GraphicUsed by:902
Symbol 900 GraphicUsed by:902
Symbol 901 GraphicUsed by:902
Symbol 902 MovieClip {mc_xplode} [mc_xplode]Uses:893 894 895 896 897 898 899 900 901
Symbol 903 ShapeTweeningUsed by:909
Symbol 904 GraphicUsed by:909
Symbol 905 ShapeTweeningUsed by:909
Symbol 906 ShapeTweeningUsed by:909
Symbol 907 ShapeTweeningUsed by:909
Symbol 908 GraphicUsed by:909
Symbol 909 MovieClip {mc_firebomb} [mc_firebomb]Uses:903 904 905 906 907 908
Symbol 910 GraphicUsed by:911
Symbol 911 MovieClipUses:910Used by:916
Symbol 912 GraphicUsed by:913
Symbol 913 MovieClipUses:912Used by:916
Symbol 914 GraphicUsed by:915
Symbol 915 MovieClipUses:914Used by:916
Symbol 916 MovieClip {mc_bg_item_1_2} [mc_bg_item_1_2]Uses:911 913 915
Symbol 917 GraphicUsed by:918
Symbol 918 MovieClipUses:917Used by:923
Symbol 919 GraphicUsed by:920
Symbol 920 MovieClipUses:919Used by:923
Symbol 921 GraphicUsed by:922
Symbol 922 MovieClipUses:921Used by:923
Symbol 923 MovieClip {mc_bg_item_1_1} [mc_bg_item_1_1]Uses:918 920 922
Symbol 924 GraphicUsed by:926
Symbol 925 GraphicUsed by:926
Symbol 926 MovieClip {mc_snd} [mc_snd]Uses:924 925
Symbol 927 GraphicUsed by:928
Symbol 928 MovieClip {mc_firejunk1} [mc_firejunk1]Uses:927
Symbol 929 GraphicUsed by:930
Symbol 930 MovieClip {mc_firejunk0} [mc_firejunk0]Uses:929
Symbol 931 TextUses:3Used by:935
Symbol 932 GraphicUsed by:935
Symbol 933 TextUses:3Used by:935
Symbol 934 GraphicUsed by:935
Symbol 935 ButtonUses:71 931 932 179 933 934Used by:939
Symbol 936 TextUses:3Used by:937
Symbol 937 MovieClip {Windows_fla.level7btn_25} [Windows_fla.level7btn_25]Uses:143 936 214 367 152 154Used by:939
Symbol 938 GraphicUsed by:939
Symbol 939 MovieClip {mc_wnd_map} [mc_wnd_map]Uses:247 157 249 254 197 203 935 219 155 336 216 707 317 937 938
Symbol 940 GraphicUsed by:942 954
Symbol 941 GraphicUsed by:942
Symbol 942 Button {mcu_jet3} [mcu_jet3]Uses:940 941
Symbol 943 GraphicUsed by:948
Symbol 944 TextUses:3Used by:948
Symbol 945 EditableTextUses:3Used by:948
Symbol 946 EditableTextUses:3Used by:948
Symbol 947 GraphicUsed by:948
Symbol 948 MovieClip {mc_wnd_credits} [mc_wnd_credits]Uses:443 254 943 944 945 946 947 881
Symbol 949 GraphicUsed by:951 952
Symbol 950 GraphicUsed by:952
Symbol 951 MovieClipUses:949Used by:952
Symbol 952 Button {mcu_jet2} [mcu_jet2]Uses:949 950 951
Symbol 953 GraphicUsed by:957
Symbol 954 MovieClipUses:940Used by:957
Symbol 955 GraphicUsed by:957
Symbol 956 GraphicUsed by:957
Symbol 957 Button {mcu_jet1} [mcu_jet1]Uses:953 954 955 956
Symbol 958 Button {mc_upgrade} [mc_upgrade]Uses:165 164
Symbol 959 GraphicUsed by:969
Symbol 960 GraphicUsed by:967
Symbol 961 GraphicUsed by:967
Symbol 962 GraphicUsed by:967
Symbol 963 GraphicUsed by:967
Symbol 964 GraphicUsed by:967
Symbol 965 GraphicUsed by:967
Symbol 966 GraphicUsed by:967
Symbol 967 MovieClipUses:960 961 962 963 964 965 966Used by:969
Symbol 968 GraphicUsed by:969
Symbol 969 MovieClip {mc_block_finish} [mc_block_finish]Uses:959 967 968
Symbol 970 GraphicUsed by:985
Symbol 971 GraphicUsed by:974
Symbol 972 GraphicUsed by:973
Symbol 973 MovieClipUses:972Used by:974
Symbol 974 MovieClip {mc_jet_inbox} [mc_jet_inbox]Uses:971 973Used by:985
Symbol 975 GraphicUsed by:976
Symbol 976 MovieClip {mc_health_inbox} [mc_health_inbox]Uses:975Used by:985
Symbol 977 GraphicUsed by:978
Symbol 978 MovieClipUses:977Used by:980
Symbol 979 TextUses:324Used by:980
Symbol 980 MovieClip {mc_star_inbox} [mc_star_inbox]Uses:978 979Used by:985
Symbol 981 GraphicUsed by:982
Symbol 982 MovieClipUses:981Used by:985
Symbol 983 GraphicUsed by:984
Symbol 984 MovieClipUses:983Used by:985
Symbol 985 MovieClip {mc_bonus_selector} [mc_bonus_selector]Uses:970 974 976 980 982 984
Symbol 986 EditableTextUses:3Used by:996
Symbol 987 GraphicUsed by:990
Symbol 988 ShapeTweeningUsed by:990
Symbol 989 GraphicUsed by:990
Symbol 990 MovieClipUses:987 165 166 988 168 989Used by:996
Symbol 991 TextUses:3Used by:994
Symbol 992 TextUses:3Used by:994
Symbol 993 GraphicUsed by:994
Symbol 994 ButtonUses:176 991 199 200 992 993Used by:996
Symbol 995 GraphicUsed by:996
Symbol 996 MovieClip {mc_window_dead} [mc_window_dead]Uses:160 986 990 161 175 994 182 197 203 206 995 850
Symbol 997 GraphicUses:246Used by:1001
Symbol 998 GraphicUsed by:1001
Symbol 999 GraphicUsed by:1001
Symbol 1000 EditableTextUses:3Used by:1001
Symbol 1001 MovieClip {mc_wnd_achieve} [mc_wnd_achieve]Uses:997 254 998 344 348 352 356 370 374 380 391 397 415 999 1000 637 159
Symbol 1002 GraphicUsed by:1003
Symbol 1003 MovieClip {mc_hypno} [mc_hypno]Uses:1002 369
Symbol 1004 GraphicUses:150Used by:1011
Symbol 1005 GraphicUsed by:1010
Symbol 1006 GraphicUsed by:1010
Symbol 1007 GraphicUsed by:1010
Symbol 1008 GraphicUsed by:1010
Symbol 1009 GraphicUsed by:1010
Symbol 1010 MovieClipUses:1005 1006 1007 1008 1009Used by:1011
Symbol 1011 MovieClip {mc_spacebomb} [mc_spacebomb]Uses:1004 1010
Symbol 1012 GraphicUsed by:1013
Symbol 1013 MovieClip {mc_block_start} [mc_block_start]Uses:1012 230 231 132
Symbol 1014 EditableTextUses:324Used by:1015
Symbol 1015 MovieClip {mc_fps} [mc_fps]Uses:1014
Symbol 1016 GraphicUsed by:1019
Symbol 1017 GraphicUsed by:1018
Symbol 1018 MovieClipUses:1017Used by:1019
Symbol 1019 MovieClipUses:1016 1018Used by:1057
Symbol 1020 GraphicUsed by:1041
Symbol 1021 FontUsed by:1022 1023 1035 1053
Symbol 1022 EditableTextUses:1021Used by:1041
Symbol 1023 EditableTextUses:1021Used by:1041
Symbol 1024 GraphicUsed by:1025 1026
Symbol 1025 MovieClipUses:1024Used by:1026
Symbol 1026 ButtonUses:1025 1024Used by:1041
Symbol 1027 GraphicUsed by:1028 1029
Symbol 1028 MovieClipUses:1027Used by:1029
Symbol 1029 ButtonUses:1028 1027Used by:1041
Symbol 1030 GraphicUsed by:1031 1032
Symbol 1031 MovieClipUses:1030Used by:1032
Symbol 1032 ButtonUses:1031 1030Used by:1041
Symbol 1033 GraphicUsed by:1041
Symbol 1034 GraphicUsed by:1038
Symbol 1035 EditableTextUses:1021Used by:1038 1040
Symbol 1036 FontUsed by:1037 1039
Symbol 1037 TextUses:1036Used by:1038
Symbol 1038 MovieClipUses:1034 1035 1037Used by:1041
Symbol 1039 TextUses:1036Used by:1040
Symbol 1040 MovieClipUses:1035 1039Used by:1041
Symbol 1041 MovieClipUses:1020 1022 1023 1026 1029 1032 1033 1038 1040Used by:1057
Symbol 1042 GraphicUsed by:1043 1044
Symbol 1043 MovieClipUses:1042Used by:1044
Symbol 1044 ButtonUses:1043 1042Used by:1054
Symbol 1045 GraphicUsed by:1049 1050
Symbol 1046 FontUsed by:1047 1048
Symbol 1047 TextUses:1046Used by:1049 1050
Symbol 1048 TextUses:1046Used by:1049 1050
Symbol 1049 MovieClipUses:1045 1047 1048Used by:1050
Symbol 1050 ButtonUses:1049 1045 1047 1048Used by:1054
Symbol 1051 GraphicUsed by:1052
Symbol 1052 MovieClipUses:1051Used by:1054
Symbol 1053 EditableTextUses:1021Used by:1054
Symbol 1054 MovieClipUses:1044 1050 1052 1053Used by:1057
Symbol 1055 GraphicUsed by:1056
Symbol 1056 ButtonUses:1055Used by:1057
Symbol 1057 MovieClip {ZattikkaHiScores} [ZattikkaHiScores]Uses:1019 1041 1054 1056
Symbol 1058 Sound {mus_title_loop} [mus_title_loop]
Symbol 1059 Sound {snd_click} [snd_click]
Symbol 1060 Sound {mus_menu_loop} [mus_menu_loop]
Symbol 1061 Sound {mus_game_loop} [mus_game_loop]
Symbol 1062 Sound {snd_upgrade} [snd_upgrade]
Symbol 1063 GraphicUsed by:1066
Symbol 1064 TextUses:324Used by:1066
Symbol 1065 EditableTextUses:324Used by:1066
Symbol 1066 MovieClipUses:1063 1064 1065Used by:1067
Symbol 1067 MovieClip {mc_text_info} [mc_text_info]Uses:1066
Symbol 1068 GraphicUsed by:1074
Symbol 1069 TextUses:324Used by:1074
Symbol 1070 EditableTextUses:324Used by:1074
Symbol 1071 TextUses:324Used by:1074
Symbol 1072 TextUses:324Used by:1074
Symbol 1073 EditableTextUses:324Used by:1074
Symbol 1074 MovieClip {mc_top_panel} [mc_top_panel]Uses:1068 1069 1070 1071 1072 1073
Symbol 1075 Sound {snd_weapon1} [snd_weapon1]
Symbol 1076 Sound {snd_weapon0} [snd_weapon0]
Symbol 1077 GraphicUsed by:1078
Symbol 1078 MovieClipUses:1077Used by:1277
Symbol 1079 GraphicUsed by:1277
Symbol 1080 GraphicUsed by:1093
Symbol 1081 GraphicUsed by:1093
Symbol 1082 GraphicUsed by:1093
Symbol 1083 GraphicUsed by:1093
Symbol 1084 GraphicUsed by:1093
Symbol 1085 GraphicUsed by:1093
Symbol 1086 GraphicUsed by:1093
Symbol 1087 GraphicUsed by:1093
Symbol 1088 GraphicUsed by:1093
Symbol 1089 GraphicUsed by:1093
Symbol 1090 GraphicUsed by:1093
Symbol 1091 GraphicUsed by:1093
Symbol 1092 GraphicUsed by:1093
Symbol 1093 MovieClip {char_fla.eyes_1_5} [char_fla.eyes_1_5]Uses:1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092Used by:1277
Symbol 1094 GraphicUsed by:1095
Symbol 1095 MovieClipUses:1094Used by:1096
Symbol 1096 MovieClipUses:1095Used by:1277
Symbol 1097 GraphicUsed by:1099
Symbol 1098 GraphicUsed by:1099
Symbol 1099 MovieClip {char_fla.antenna_8} [char_fla.antenna_8]Uses:1097 1098Used by:1197 1225 1243 1276 1277
Symbol 1100 GraphicUsed by:1101
Symbol 1101 MovieClipUses:1100Used by:1104
Symbol 1102 GraphicUsed by:1103
Symbol 1103 MovieClipUses:1102Used by:1104
Symbol 1104 MovieClip {mc_smoke_anim} [mc_smoke_anim]Uses:1101 1103Used by:1277
Symbol 1105 GraphicUsed by:1123
Symbol 1106 ShapeTweeningUsed by:1123
Symbol 1107 ShapeTweeningUsed by:1123
Symbol 1108 GraphicUsed by:1123
Symbol 1109 ShapeTweeningUsed by:1123
Symbol 1110 ShapeTweeningUsed by:1123
Symbol 1111 ShapeTweeningUsed by:1123
Symbol 1112 GraphicUsed by:1123
Symbol 1113 ShapeTweeningUsed by:1123
Symbol 1114 GraphicUsed by:1123
Symbol 1115 GraphicUsed by:1123
Symbol 1116 ShapeTweeningUsed by:1123
Symbol 1117 ShapeTweeningUsed by:1123
Symbol 1118 GraphicUsed by:1123
Symbol 1119 GraphicUsed by:1123
Symbol 1120 ShapeTweeningUsed by:1123
Symbol 1121 ShapeTweeningUsed by:1123
Symbol 1122 GraphicUsed by:1123
Symbol 1123 MovieClipUses:1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122Used by:1277
Symbol 1124 GraphicUsed by:1134
Symbol 1125 GraphicUsed by:1134
Symbol 1126 GraphicUsed by:1134
Symbol 1127 GraphicUsed by:1134
Symbol 1128 GraphicUsed by:1134
Symbol 1129 GraphicUsed by:1134
Symbol 1130 GraphicUsed by:1134
Symbol 1131 GraphicUsed by:1134
Symbol 1132 GraphicUsed by:1134
Symbol 1133 GraphicUsed by:1134
Symbol 1134 MovieClip {char_fla.antennaEffect_14} [char_fla.antennaEffect_14]Uses:1124 1125 1126 1127 1128 1129 1130 1131 1132 1133Used by:1152
Symbol 1135 GraphicUsed by:1151
Symbol 1136 GraphicUsed by:1151
Symbol 1137 GraphicUsed by:1151
Symbol 1138 GraphicUsed by:1151
Symbol 1139 GraphicUsed by:1151
Symbol 1140 GraphicUsed by:1151
Symbol 1141 GraphicUsed by:1151
Symbol 1142 GraphicUsed by:1151
Symbol 1143 GraphicUsed by:1151
Symbol 1144 GraphicUsed by:1151
Symbol 1145 GraphicUsed by:1151
Symbol 1146 GraphicUsed by:1151
Symbol 1147 GraphicUsed by:1151
Symbol 1148 GraphicUsed by:1151
Symbol 1149 GraphicUsed by:1151
Symbol 1150 GraphicUsed by:1151
Symbol 1151 MovieClip {char_fla.antennaEffect1_15} [char_fla.antennaEffect1_15]Uses:1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150Used by:1152
Symbol 1152 MovieClip {char_fla.mc_antenna_anim_13} [char_fla.mc_antenna_anim_13]Uses:1134 1151Used by:1277
Symbol 1153 GraphicUsed by:1277
Symbol 1154 GraphicUsed by:1277
Symbol 1155 GraphicUsed by:1277
Symbol 1156 GraphicUsed by:1277
Symbol 1157 GraphicUsed by:1277
Symbol 1158 GraphicUsed by:1277
Symbol 1159 GraphicUsed by:1197
Symbol 1160 GraphicUsed by:1161
Symbol 1161 MovieClipUses:1160Used by:1197
Symbol 1162 GraphicUsed by:1163
Symbol 1163 MovieClipUses:1162Used by:1197
Symbol 1164 GraphicUsed by:1197
Symbol 1165 GraphicUsed by:1197
Symbol 1166 GraphicUsed by:1167
Symbol 1167 MovieClipUses:1166Used by:1197
Symbol 1168 GraphicUsed by:1169
Symbol 1169 MovieClipUses:1168Used by:1197
Symbol 1170 GraphicUsed by:1197
Symbol 1171 GraphicUsed by:1197
Symbol 1172 GraphicUsed by:1173
Symbol 1173 MovieClipUses:1172Used by:1197
Symbol 1174 GraphicUsed by:1175
Symbol 1175 MovieClipUses:1174Used by:1197
Symbol 1176 GraphicUsed by:1197
Symbol 1177 GraphicUsed by:1197
Symbol 1178 GraphicUsed by:1179
Symbol 1179 MovieClipUses:1178Used by:1197
Symbol 1180 GraphicUsed by:1197
Symbol 1181 GraphicUsed by:1197
Symbol 1182 GraphicUsed by:1197
Symbol 1183 GraphicUsed by:1197
Symbol 1184 GraphicUsed by:1185
Symbol 1185 MovieClipUses:1184Used by:1197
Symbol 1186 GraphicUsed by:1197
Symbol 1187 GraphicUsed by:1197
Symbol 1188 GraphicUsed by:1197
Symbol 1189 GraphicUsed by:1197
Symbol 1190 GraphicUsed by:1191
Symbol 1191 MovieClipUses:1190Used by:1197
Symbol 1192 GraphicUsed by:1193
Symbol 1193 MovieClipUses:1192Used by:1197
Symbol 1194 GraphicUsed by:1195
Symbol 1195 MovieClipUses:1194Used by:1197
Symbol 1196 GraphicUsed by:1197
Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22]Uses:1159 1161 1163 12 1164 1099 1165 16 1167 1169 1170 1171 24 1173 1175 1176 1177 32 34 1179 1180 1181 40 42 44 1182 1183 48 1185 1186 1187 54 56 58 1188 1189 1191 1193 1195 1196Used by:1277
Symbol 1198 GraphicUsed by:1204
Symbol 1199 GraphicUsed by:1204
Symbol 1200 GraphicUsed by:1204
Symbol 1201 GraphicUsed by:1204
Symbol 1202 GraphicUsed by:1204
Symbol 1203 GraphicUsed by:1204
Symbol 1204 MovieClipUses:1198 1199 1200 1201 1202 1203Used by:1243 1277
Symbol 1205 GraphicUsed by:1277
Symbol 1206 GraphicUsed by:1207
Symbol 1207 MovieClipUses:1206Used by:1277
Symbol 1208 GraphicUsed by:1277
Symbol 1209 GraphicUsed by:1277
Symbol 1210 GraphicUsed by:1211
Symbol 1211 MovieClipUses:1210Used by:1277
Symbol 1212 GraphicUsed by:1213
Symbol 1213 MovieClipUses:1212Used by:1277
Symbol 1214 GraphicUsed by:1277
Symbol 1215 GraphicUsed by:1277
Symbol 1216 GraphicUsed by:1277
Symbol 1217 GraphicUsed by:1219
Symbol 1218 GraphicUsed by:1219
Symbol 1219 MovieClipUses:1217 1218Used by:1277
Symbol 1220 GraphicUsed by:1225
Symbol 1221 GraphicUsed by:1225
Symbol 1222 ShapeTweeningUsed by:1224
Symbol 1223 GraphicUsed by:1224
Symbol 1224 MovieClipUses:505 507 1222 1223Used by:1225
Symbol 1225 MovieClip {char_fla.weaponEffects4_55} [char_fla.weaponEffects4_55]Uses:1220 500 386 502 1221 1099 1224Used by:1277
Symbol 1226 GraphicUsed by:1243
Symbol 1227 GraphicUsed by:1243
Symbol 1228 GraphicUsed by:1243
Symbol 1229 GraphicUsed by:1243
Symbol 1230 GraphicUsed by:1243
Symbol 1231 GraphicUsed by:1243
Symbol 1232 GraphicUsed by:1243
Symbol 1233 GraphicUsed by:1243
Symbol 1234 GraphicUsed by:1243
Symbol 1235 GraphicUsed by:1243
Symbol 1236 GraphicUsed by:1243
Symbol 1237 GraphicUsed by:1243
Symbol 1238 ShapeTweeningUsed by:1243
Symbol 1239 GraphicUsed by:1243
Symbol 1240 GraphicUsed by:1243
Symbol 1241 ShapeTweeningUsed by:1243
Symbol 1242 GraphicUsed by:1243
Symbol 1243 MovieClip {char_fla.weaponEffects2_60} [char_fla.weaponEffects2_60]Uses:1226 500 386 502 1227 1099 1204 1228 527 1229 1230 514 1231 1232 1233 1234 535 1235 1236 539 1237 1238 1239 1240 1241 1242Used by:1277
Symbol 1244 GraphicUsed by:1276
Symbol 1245 GraphicUsed by:1276
Symbol 1246 GraphicUsed by:1276
Symbol 1247 GraphicUsed by:1276
Symbol 1248 GraphicUsed by:1276
Symbol 1249 GraphicUsed by:1276
Symbol 1250 GraphicUsed by:1276
Symbol 1251 GraphicUsed by:1276
Symbol 1252 GraphicUsed by:1276
Symbol 1253 GraphicUsed by:1276
Symbol 1254 GraphicUsed by:1276
Symbol 1255 GraphicUsed by:1276
Symbol 1256 ShapeTweeningUsed by:1276
Symbol 1257 GraphicUsed by:1276
Symbol 1258 GraphicUsed by:1276
Symbol 1259 GraphicUsed by:1276
Symbol 1260 GraphicUsed by:1276
Symbol 1261 GraphicUsed by:1276
Symbol 1262 GraphicUsed by:1276
Symbol 1263 GraphicUsed by:1276
Symbol 1264 GraphicUsed by:1276
Symbol 1265 GraphicUsed by:1276
Symbol 1266 GraphicUsed by:1276
Symbol 1267 GraphicUsed by:1276
Symbol 1268 GraphicUsed by:1276
Symbol 1269 GraphicUsed by:1276
Symbol 1270 GraphicUsed by:1276
Symbol 1271 GraphicUsed by:1276
Symbol 1272 GraphicUsed by:1276
Symbol 1273 GraphicUsed by:1276
Symbol 1274 GraphicUsed by:1276
Symbol 1275 GraphicUsed by:1276
Symbol 1276 MovieClip {char_fla.weaponEffects3_65} [char_fla.weaponEffects3_65]Uses:1244 500 386 502 1245 1099 1246 527 1247 1248 514 1249 1250 1251 1252 1253 1254 1255 1256 1257 566 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275Used by:1277
Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim]Uses:500 386 1078 1079 1093 1096 1099 1104 1123 1152 1153 800 802 804 1154 1155 1156 1157 791 793 795 1158 1197 1204 1205 829 1207 1208 1209 1211 407 1213 1214 1215 1216 1219 1225 1243 1276
Symbol 1278 Sound {snd_weapon2} [snd_weapon2]
Symbol 1279 Sound {snd_hit} [snd_hit]
Symbol 1280 Sound {snd_voice_death} [snd_voice_death]
Symbol 1281 GraphicUsed by:1284
Symbol 1282 EditableTextUses:324Used by:1284
Symbol 1283 TextUses:324Used by:1284
Symbol 1284 MovieClipUses:1281 1282 1283Used by:1285
Symbol 1285 MovieClip {mc_next_level} [mc_next_level]Uses:1284
Symbol 1286 Sound {snd_bonus_get} [snd_bonus_get]
Symbol 1287 Sound {snd_voice_holy} [snd_voice_holy]
Symbol 1288 Sound {snd_platform} [snd_platform]
Symbol 1289 ShapeTweeningUsed by:1292
Symbol 1290 ShapeTweeningUsed by:1292
Symbol 1291 GraphicUsed by:1292
Symbol 1292 MovieClipUses:1289 1290 1291Used by:1293
Symbol 1293 MovieClipUses:1292Used by:1301
Symbol 1294 GraphicUsed by:1295
Symbol 1295 MovieClipUses:1294Used by:1301 1308
Symbol 1296 GraphicUsed by:1301
Symbol 1297 GraphicUsed by:1298
Symbol 1298 MovieClipUses:1297Used by:1301
Symbol 1299 GraphicUsed by:1300
Symbol 1300 MovieClip {GUI_fla.Timeline_21} [GUI_fla.Timeline_21]Uses:1299Used by:1301
Symbol 1301 MovieClip {mc_healthpanel} [mc_healthpanel]Uses:1293 1295 1296 1298 1300
Symbol 1302 ShapeTweeningUsed by:1305
Symbol 1303 ShapeTweeningUsed by:1305
Symbol 1304 GraphicUsed by:1305
Symbol 1305 MovieClipUses:1302 1303 1304Used by:1306
Symbol 1306 MovieClipUses:1305Used by:1308
Symbol 1307 GraphicUsed by:1308
Symbol 1308 MovieClip {mc_jetpanel} [mc_jetpanel]Uses:1306 1295 1307 335
Symbol 1309 Sound {snd_jet} [snd_jet]
Symbol 1310 Sound {snd_get_jet} [snd_get_jet]
Symbol 1311 Sound {snd_voice_thank} [snd_voice_thank]
Symbol 1312 GraphicUsed by:1322
Symbol 1313 ShapeTweeningUsed by:1322
Symbol 1314 GraphicUsed by:1322
Symbol 1315 EditableTextUses:324Used by:1322
Symbol 1316 ShapeTweeningUsed by:1322
Symbol 1317 GraphicUsed by:1322
Symbol 1318 ShapeTweeningUsed by:1322
Symbol 1319 EditableTextUses:324Used by:1322
Symbol 1320 ShapeTweeningUsed by:1322
Symbol 1321 GraphicUsed by:1322
Symbol 1322 MovieClip {mc_place_arrow} [mc_place_arrow]Uses:1312 1313 1314 1315 1316 1317 1318 1319 1320 1321
Symbol 1323 GraphicUsed by:1324
Symbol 1324 MovieClipUses:1323Used by:1331
Symbol 1325 GraphicUsed by:1330 1331
Symbol 1326 GraphicUsed by:1330
Symbol 1327 GraphicUsed by:1330 1331
Symbol 1328 GraphicUsed by:1330
Symbol 1329 GraphicUsed by:1330
Symbol 1330 MovieClip {mc_combo_icon} [mc_combo_icon]Uses:1325 1326 1327 1328 1329Used by:1331
Symbol 1331 MovieClip {mc_combo_anim} [mc_combo_anim]Uses:1324 1330 816 1325 1327
Symbol 1332 GraphicUsed by:1341
Symbol 1333 GraphicUsed by:1335 1337
Symbol 1334 TextUses:324Used by:1335
Symbol 1335 MovieClipUses:1333 1334Used by:1338
Symbol 1336 TextUses:324Used by:1337
Symbol 1337 MovieClipUses:1333 1336Used by:1338
Symbol 1338 MovieClipUses:1335 1337Used by:1341
Symbol 1339 GraphicUsed by:1340
Symbol 1340 MovieClipUses:1339Used by:1341
Symbol 1341 MovieClip {mc_progress_panel} [mc_progress_panel]Uses:1332 1338 1340
Symbol 1342 GraphicUsed by:1343
Symbol 1343 MovieClipUses:1342Used by:1345
Symbol 1344 EditableTextUses:324Used by:1345
Symbol 1345 MovieClip {mc_progress_bar_part_pointer} [mc_progress_bar_part_pointer]Uses:1343 1344
Symbol 1346 Sound {snd_star_collect} [snd_star_collect]
Symbol 1347 EditableTextUses:324Used by:1355
Symbol 1348 GraphicUsed by:1353
Symbol 1349 GraphicUsed by:1353
Symbol 1350 ShapeTweeningUsed by:1353
Symbol 1351 GraphicUsed by:1353
Symbol 1352 GraphicUsed by:1353
Symbol 1353 MovieClipUses:1348 165 1349 1350 1351 1352Used by:1354
Symbol 1354 MovieClip {GUI_fla.star_8} [GUI_fla.star_8]Uses:1353 272Used by:1355
Symbol 1355 MovieClip {mc_stars_counter} [mc_stars_counter]Uses:1347 1354
Symbol 1356 GraphicUsed by:1360
Symbol 1357 GraphicUsed by:1360
Symbol 1358 GraphicUsed by:1360
Symbol 1359 GraphicUsed by:1360
Symbol 1360 MovieClip {mc_start_counter} [mc_start_counter]Uses:1356 1357 1358 1359
Symbol 1361 Sound {snd_poing} [snd_poing]
Symbol 1362 Sound {snd_shock} [snd_shock]
Symbol 1363 Sound {snd_steam2} [snd_steam2]
Symbol 1364 Sound {snd_steam1} [snd_steam1]
Symbol 1365 Sound {snd_expl} [snd_expl]
Symbol 1366 BinaryData {LevelsInfoLoader_xmlLevels}
Symbol 1367 BinaryData {StringTable_xmlStrings}
Symbol 1368 BinaryData {States.AchievementsState_xmlAch}
Symbol 1369 BinaryData {States.UpgradesState_xmlUpgrades}

Instance Names

"colorh"Symbol 68 MovieClip Frame 1Symbol 8 MovieClip
"colorb"Symbol 68 MovieClip Frame 1Symbol 10 MovieClip
"colorl"Symbol 68 MovieClip Frame 1Symbol 12 MovieClip
"colorh"Symbol 68 MovieClip Frame 3Symbol 16 MovieClip
"colorb"Symbol 68 MovieClip Frame 3Symbol 18 MovieClip
"colorl"Symbol 68 MovieClip Frame 3Symbol 20 MovieClip
"colorh"Symbol 68 MovieClip Frame 5Symbol 24 MovieClip
"colorb"Symbol 68 MovieClip Frame 5Symbol 26 MovieClip
"colorl"Symbol 68 MovieClip Frame 5Symbol 28 MovieClip
"colorh"Symbol 68 MovieClip Frame 7Symbol 32 MovieClip
"colorb"Symbol 68 MovieClip Frame 7Symbol 34 MovieClip
"colorl"Symbol 68 MovieClip Frame 7Symbol 36 MovieClip
"colorh"Symbol 68 MovieClip Frame 9Symbol 40 MovieClip
"colorb"Symbol 68 MovieClip Frame 9Symbol 42 MovieClip
"colorl"Symbol 68 MovieClip Frame 9Symbol 44 MovieClip
"colorh"Symbol 68 MovieClip Frame 11Symbol 32 MovieClip
"colorb"Symbol 68 MovieClip Frame 11Symbol 48 MovieClip
"colorl"Symbol 68 MovieClip Frame 11Symbol 50 MovieClip
"colorh"Symbol 68 MovieClip Frame 13Symbol 54 MovieClip
"colorb"Symbol 68 MovieClip Frame 13Symbol 56 MovieClip
"colorl"Symbol 68 MovieClip Frame 13Symbol 58 MovieClip
"colorh"Symbol 68 MovieClip Frame 15Symbol 62 MovieClip
"colorb"Symbol 68 MovieClip Frame 15Symbol 64 MovieClip
"colorl"Symbol 68 MovieClip Frame 15Symbol 66 MovieClip
"bt_play"Symbol 118 MovieClip {mc_preloader} [mc_preloader] Frame 1Symbol 77 Button
"bt_skip"Symbol 118 MovieClip {mc_preloader} [mc_preloader] Frame 1Symbol 82 Button
"m_logo"Symbol 118 MovieClip {mc_preloader} [mc_preloader] Frame 1Symbol 113 Button
"adBox"Symbol 118 MovieClip {mc_preloader} [mc_preloader] Frame 1Symbol 115 MovieClip
"mc_color"Symbol 133 MovieClip {mc_block5} [mc_block5] Frame 1Symbol 128 MovieClip
"mc_glow"Symbol 133 MovieClip {mc_block5} [mc_block5] Frame 1Symbol 132 MovieClip {graphics_fla.PanelTouchAnimation_3} [graphics_fla.PanelTouchAnimation_3]
"mc_color"Symbol 136 MovieClip {mc_block4} [mc_block4] Frame 1Symbol 128 MovieClip
"mc_glow"Symbol 136 MovieClip {mc_block4} [mc_block4] Frame 1Symbol 132 MovieClip {graphics_fla.PanelTouchAnimation_3} [graphics_fla.PanelTouchAnimation_3]
"mc_color"Symbol 140 MovieClip {mc_block6} [mc_block6] Frame 1Symbol 128 MovieClip
"mc_glow"Symbol 140 MovieClip {mc_block6} [mc_block6] Frame 1Symbol 132 MovieClip {graphics_fla.PanelTouchAnimation_3} [graphics_fla.PanelTouchAnimation_3]
"tf_stars"Symbol 208 MovieClip {mc_wnd_level_complete} [mc_wnd_level_complete] Frame 1Symbol 162 EditableText
"tf_level"Symbol 208 MovieClip {mc_wnd_level_complete} [mc_wnd_level_complete] Frame 1Symbol 173 EditableText
"tf_mode"Symbol 208 MovieClip {mc_wnd_level_complete} [mc_wnd_level_complete] Frame 1Symbol 174 EditableText
"tf_score"Symbol 208 MovieClip {mc_wnd_level_complete} [mc_wnd_level_complete] Frame 1Symbol 175 EditableText
"bt_menu"Symbol 208 MovieClip {mc_wnd_level_complete} [mc_wnd_level_complete] Frame 1Symbol 182 Button
"bt_cont"Symbol 208 MovieClip {mc_wnd_level_complete} [mc_wnd_level_complete] Frame 1Symbol 187 Button
"mc_glow_shop"Symbol 208 MovieClip {mc_wnd_level_complete} [mc_wnd_level_complete] Frame 1Symbol 191 MovieClip
"bt_shop"Symbol 208 MovieClip {mc_wnd_level_complete} [mc_wnd_level_complete] Frame 1Symbol 197 Button
"bt_achieve"Symbol 208 MovieClip {mc_wnd_level_complete} [mc_wnd_level_complete] Frame 1Symbol 203 Button
"MOREGAMES"Symbol 208 MovieClip {mc_wnd_level_complete} [mc_wnd_level_complete] Frame 1Symbol 206 MovieClip {Windows_fla.sponsorlogo_86} [Windows_fla.sponsorlogo_86]
"mc_color"Symbol 222 MovieClip {mc_block0} [mc_block0] Frame 1Symbol 128 MovieClip
"mc_glow"Symbol 222 MovieClip {mc_block0} [mc_block0] Frame 1Symbol 132 MovieClip {graphics_fla.PanelTouchAnimation_3} [graphics_fla.PanelTouchAnimation_3]
"mc_color"Symbol 225 MovieClip {mc_block1} [mc_block1] Frame 1Symbol 128 MovieClip
"mc_glow"Symbol 225 MovieClip {mc_block1} [mc_block1] Frame 1Symbol 132 MovieClip {graphics_fla.PanelTouchAnimation_3} [graphics_fla.PanelTouchAnimation_3]
"mc_color"Symbol 232 MovieClip {mc_block2} [mc_block2] Frame 1Symbol 128 MovieClip
"mc_light0"Symbol 232 MovieClip {mc_block2} [mc_block2] Frame 1Symbol 230 MovieClip
"mc_light1"Symbol 232 MovieClip {mc_block2} [mc_block2] Frame 1Symbol 230 MovieClip
"mc_light2"Symbol 232 MovieClip {mc_block2} [mc_block2] Frame 1Symbol 230 MovieClip
"mc_light3"Symbol 232 MovieClip {mc_block2} [mc_block2] Frame 1Symbol 230 MovieClip
"mc_light4"Symbol 232 MovieClip {mc_block2} [mc_block2] Frame 1Symbol 230 MovieClip
"mc_light5"Symbol 232 MovieClip {mc_block2} [mc_block2] Frame 1Symbol 230 MovieClip
"mc_glow"Symbol 232 MovieClip {mc_block2} [mc_block2] Frame 1Symbol 132 MovieClip {graphics_fla.PanelTouchAnimation_3} [graphics_fla.PanelTouchAnimation_3]
"mc_color"Symbol 235 MovieClip {mc_block3} [mc_block3] Frame 1Symbol 128 MovieClip
"mc_glow"Symbol 235 MovieClip {mc_block3} [mc_block3] Frame 1Symbol 132 MovieClip {graphics_fla.PanelTouchAnimation_3} [graphics_fla.PanelTouchAnimation_3]
"bt_back"Symbol 264 MovieClip {mc_wnd_stats} [mc_wnd_stats] Frame 1Symbol 254 Button
"tf_line0"Symbol 264 MovieClip {mc_wnd_stats} [mc_wnd_stats] Frame 1Symbol 256 EditableText
"tf_line1"Symbol 264 MovieClip {mc_wnd_stats} [mc_wnd_stats] Frame 1Symbol 256 EditableText
"tf_line2"Symbol 264 MovieClip {mc_wnd_stats} [mc_wnd_stats] Frame 1Symbol 256 EditableText
"tf_line3"Symbol 264 MovieClip {mc_wnd_stats} [mc_wnd_stats] Frame 1Symbol 256 EditableText
"tf_line4"Symbol 264 MovieClip {mc_wnd_stats} [mc_wnd_stats] Frame 1Symbol 256 EditableText
"tf_line5"Symbol 264 MovieClip {mc_wnd_stats} [mc_wnd_stats] Frame 1Symbol 256 EditableText
"tf_line6"Symbol 264 MovieClip {mc_wnd_stats} [mc_wnd_stats] Frame 1Symbol 256 EditableText
"colorp"Symbol 311 MovieClip Frame 1Symbol 309 MovieClip
"colorp"Symbol 316 MovieClip Frame 1Symbol 314 MovieClip
"tf_score"Symbol 326 MovieClip Frame 1Symbol 325 EditableText
"m_text"Symbol 331 MovieClip Frame 1Symbol 326 MovieClip
"m_mask"Symbol 331 MovieClip Frame 1Symbol 330 MovieClip {graphics_fla.PlaneScoreColor_61} [graphics_fla.PlaneScoreColor_61]
"m_anim"Symbol 332 MovieClip {mc_platform_score} [mc_platform_score] Frame 1Symbol 331 MovieClip
"mc_fade"Symbol 344 MovieClip Frame 1Symbol 343 MovieClip
"mc_fade"Symbol 348 MovieClip Frame 1Symbol 343 MovieClip
"mc_fade"Symbol 352 MovieClip Frame 1Symbol 343 MovieClip
"mc_fade"Symbol 356 MovieClip Frame 1Symbol 343 MovieClip
"mc_fade"Symbol 370 MovieClip Frame 1Symbol 343 MovieClip
"mc_fade"Symbol 374 MovieClip Frame 1Symbol 343 MovieClip
"mc_fade"Symbol 380 MovieClip Frame 1Symbol 343 MovieClip
"colorb"Symbol 390 MovieClip Frame 1Symbol 386 MovieClip
"colorl"Symbol 390 MovieClip Frame 1Symbol 388 MovieClip
"mc_fade"Symbol 391 MovieClip Frame 1Symbol 343 MovieClip
"mc_fade"Symbol 397 MovieClip Frame 1Symbol 343 MovieClip
"colorh"Symbol 414 MovieClip {Windows_fla.sdg_78} [Windows_fla.sdg_78] Frame 1Symbol 405 MovieClip
"colorb"Symbol 414 MovieClip {Windows_fla.sdg_78} [Windows_fla.sdg_78] Frame 1Symbol 407 MovieClip
"colorl"Symbol 414 MovieClip {Windows_fla.sdg_78} [Windows_fla.sdg_78] Frame 1Symbol 409 MovieClip
"mc_fade"Symbol 415 MovieClip Frame 1Symbol 343 MovieClip
"mc_ach"Symbol 417 MovieClip {Windows_fla.mc_ach_201} [Windows_fla.mc_ach_201] Frame 1Symbol 344 MovieClip
"mc_ach"Symbol 417 MovieClip {Windows_fla.mc_ach_201} [Windows_fla.mc_ach_201] Frame 2Symbol 348 MovieClip
"mc_ach"Symbol 417 MovieClip {Windows_fla.mc_ach_201} [Windows_fla.mc_ach_201] Frame 3Symbol 352 MovieClip
"mc_ach"Symbol 417 MovieClip {Windows_fla.mc_ach_201} [Windows_fla.mc_ach_201] Frame 4Symbol 356 MovieClip
"mc_ach"Symbol 417 MovieClip {Windows_fla.mc_ach_201} [Windows_fla.mc_ach_201] Frame 5Symbol 370 MovieClip
"mc_ach"Symbol 417 MovieClip {Windows_fla.mc_ach_201} [Windows_fla.mc_ach_201] Frame 6Symbol 374 MovieClip
"mc_ach"Symbol 417 MovieClip {Windows_fla.mc_ach_201} [Windows_fla.mc_ach_201] Frame 7Symbol 380 MovieClip
"mc_ach"Symbol 417 MovieClip {Windows_fla.mc_ach_201} [Windows_fla.mc_ach_201] Frame 8Symbol 391 MovieClip
"mc_ach"Symbol 417 MovieClip {Windows_fla.mc_ach_201} [Windows_fla.mc_ach_201] Frame 9Symbol 397 MovieClip
"mc_ach"Symbol 417 MovieClip {Windows_fla.mc_ach_201} [Windows_fla.mc_ach_201] Frame 10Symbol 415 MovieClip
"m_ach"Symbol 418 MovieClip Frame 1Symbol 417 MovieClip {Windows_fla.mc_ach_201} [Windows_fla.mc_ach_201]
"m_info"Symbol 419 MovieClip {mc_ach_info} [mc_ach_info] Frame 1Symbol 418 MovieClip
"bt_back"Symbol 444 MovieClip {mc_wnd_score} [mc_wnd_score] Frame 1Symbol 254 Button
"TITLE"Symbol 487 MovieClip {Windows_fla.GAMETITLEANIMATION_93} [Windows_fla.GAMETITLEANIMATION_93] Frame 1Symbol 206 MovieClip {Windows_fla.sponsorlogo_86} [Windows_fla.sponsorlogo_86]
"TITLE"Symbol 487 MovieClip {Windows_fla.GAMETITLEANIMATION_93} [Windows_fla.GAMETITLEANIMATION_93] Frame 62Symbol 206 MovieClip {Windows_fla.sponsorlogo_86} [Windows_fla.sponsorlogo_86]
"colorh"Symbol 511 MovieClip Frame 1Symbol 500 MovieClip
"colorb"Symbol 511 MovieClip Frame 1Symbol 386 MovieClip
"colorl"Symbol 511 MovieClip Frame 1Symbol 502 MovieClip
"colorh"Symbol 548 MovieClip Frame 1Symbol 500 MovieClip
"colorb"Symbol 548 MovieClip Frame 1Symbol 386 MovieClip
"colorh"Symbol 585 MovieClip Frame 1Symbol 500 MovieClip
"colorb"Symbol 585 MovieClip Frame 1Symbol 386 MovieClip
"mc"Symbol 586 MovieClip {Windows_fla.mc_joe_32} [Windows_fla.mc_joe_32] Frame 1Symbol 511 MovieClip
"mc"Symbol 586 MovieClip {Windows_fla.mc_joe_32} [Windows_fla.mc_joe_32] Frame 2Symbol 548 MovieClip
"mc"Symbol 586 MovieClip {Windows_fla.mc_joe_32} [Windows_fla.mc_joe_32] Frame 3Symbol 585 MovieClip
"colorh"Symbol 631 MovieClip Frame 1Symbol 500 MovieClip
"colorb"Symbol 631 MovieClip Frame 1Symbol 386 MovieClip
"colorl"Symbol 631 MovieClip Frame 1Symbol 388 MovieClip
"mc_eyes"Symbol 631 MovieClip Frame 1Symbol 601 MovieClip {Windows_fla.eyes_1_51} [Windows_fla.eyes_1_51]
"mc_antenna"Symbol 631 MovieClip Frame 1Symbol 413 MovieClip {Windows_fla.antenna_37} [Windows_fla.antenna_37]
"mc_antenna_anim"Symbol 631 MovieClip Frame 1Symbol 630 MovieClip
"tf_grade"Symbol 644 MovieClip Frame 1Symbol 639 EditableText
"mc_star"Symbol 644 MovieClip Frame 1Symbol 165 MovieClip
"tf_cost"Symbol 644 MovieClip Frame 1Symbol 641 EditableText
"mc_fade"Symbol 644 MovieClip Frame 1Symbol 643 MovieClip
"bt_back"Symbol 645 MovieClip {mc_wnd_upgrades} [mc_wnd_upgrades] Frame 1Symbol 254 Button
"mc_joe_weapon"Symbol 645 MovieClip {mc_wnd_upgrades} [mc_wnd_upgrades] Frame 1Symbol 586 MovieClip {Windows_fla.mc_joe_32} [Windows_fla.mc_joe_32]
"mc_joe"Symbol 645 MovieClip {mc_wnd_upgrades} [mc_wnd_upgrades] Frame 1Symbol 631 MovieClip
"tf_stars"Symbol 645 MovieClip {mc_wnd_upgrades} [mc_wnd_upgrades] Frame 1Symbol 634 EditableText
"tf_descr"Symbol 645 MovieClip {mc_wnd_upgrades} [mc_wnd_upgrades] Frame 1Symbol 636 EditableText
"mc_upgrade0"Symbol 645 MovieClip {mc_wnd_upgrades} [mc_wnd_upgrades] Frame 1Symbol 644 MovieClip
"mc_upgrade1"Symbol 645 MovieClip {mc_wnd_upgrades} [mc_wnd_upgrades] Frame 1Symbol 644 MovieClip
"mc_upgrade2"Symbol 645 MovieClip {mc_wnd_upgrades} [mc_wnd_upgrades] Frame 1Symbol 644 MovieClip
"mc_upgrade3"Symbol 645 MovieClip {mc_wnd_upgrades} [mc_wnd_upgrades] Frame 1Symbol 644 MovieClip
"mc_upgrade4"Symbol 645 MovieClip {mc_wnd_upgrades} [mc_wnd_upgrades] Frame 1Symbol 644 MovieClip
"mc_upgrade5"Symbol 645 MovieClip {mc_wnd_upgrades} [mc_wnd_upgrades] Frame 1Symbol 644 MovieClip
"mc_fade"Symbol 702 MovieClip {Windows_fla.TitleButtonAnimation_98} [Windows_fla.TitleButtonAnimation_98] Frame 17Symbol 701 MovieClip
"mc_logo"Symbol 703 MovieClip {mc_wnd_main_menu} [mc_wnd_main_menu] Frame 1Symbol 487 MovieClip {Windows_fla.GAMETITLEANIMATION_93} [Windows_fla.GAMETITLEANIMATION_93]
"mc_buttons"Symbol 703 MovieClip {mc_wnd_main_menu} [mc_wnd_main_menu] Frame 1Symbol 702 MovieClip {Windows_fla.TitleButtonAnimation_98} [Windows_fla.TitleButtonAnimation_98]
"mc_counter"Symbol 744 MovieClip {mc_skybomb} [mc_skybomb] Frame 1Symbol 743 MovieClip {graphics_fla.bombcounter_48} [graphics_fla.bombcounter_48]
"tf_stars"Symbol 752 MovieClip {mc_wnd_pause} [mc_wnd_pause] Frame 1Symbol 162 EditableText
"tf_level"Symbol 752 MovieClip {mc_wnd_pause} [mc_wnd_pause] Frame 1Symbol 173 EditableText
"tf_mode"Symbol 752 MovieClip {mc_wnd_pause} [mc_wnd_pause] Frame 1Symbol 745 EditableText
"tf_score"Symbol 752 MovieClip {mc_wnd_pause} [mc_wnd_pause] Frame 1Symbol 175 EditableText
"MOREGAMES"Symbol 752 MovieClip {mc_wnd_pause} [mc_wnd_pause] Frame 1Symbol 157 MovieClip {Windows_fla.badhed_logo_more_squarecopy_2} [Windows_fla.badhed_logo_more_squarecopy_2]
"bt_menu"Symbol 752 MovieClip {mc_wnd_pause} [mc_wnd_pause] Frame 1Symbol 182 Button
"bt_resume"Symbol 752 MovieClip {mc_wnd_pause} [mc_wnd_pause] Frame 1Symbol 750 Button
"bt_achieve"Symbol 752 MovieClip {mc_wnd_pause} [mc_wnd_pause] Frame 1Symbol 203 Button
"bt_skip2"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 1Symbol 780 Button
"colorh"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 1Symbol 791 MovieClip
"colorb"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 1Symbol 793 MovieClip
"colorl"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 1Symbol 795 MovieClip
"colorh"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 1Symbol 800 MovieClip
"colorb"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 1Symbol 802 MovieClip
"colorl"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 1Symbol 804 MovieClip
"bt_skip1"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 2Symbol 780 Button
"colorh"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 2Symbol 791 MovieClip
"colorb"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 2Symbol 793 MovieClip
"colorl"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 2Symbol 795 MovieClip
"colorh"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 2Symbol 800 MovieClip
"colorb"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 2Symbol 802 MovieClip
"colorl"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 2Symbol 804 MovieClip
"bt_skip"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 3Symbol 821 Button
"mc"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 3Symbol 511 MovieClip
"colorh"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 3Symbol 791 MovieClip
"colorb"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 3Symbol 829 MovieClip
"colorl"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 3Symbol 831 MovieClip
"colorp"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 5Symbol 314 MovieClip
"colorp"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 5Symbol 314 MovieClip
"mc1"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 9Symbol 856 MovieClip
"mc2"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 9Symbol 858 MovieClip
"mc3"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 9Symbol 860 MovieClip
"bt_skip4"Symbol 867 MovieClip {mc_wnd_help} [mc_wnd_help] Frame 10Symbol 821 Button
"MOREGAMES"Symbol 939 MovieClip {mc_wnd_map} [mc_wnd_map] Frame 1Symbol 157 MovieClip {Windows_fla.badhed_logo_more_squarecopy_2} [Windows_fla.badhed_logo_more_squarecopy_2]
"bt_back"Symbol 939 MovieClip {mc_wnd_map} [mc_wnd_map] Frame 1Symbol 254 Button
"bt_shop"Symbol 939 MovieClip {mc_wnd_map} [mc_wnd_map] Frame 1Symbol 197 Button
"bt_achieve"Symbol 939 MovieClip {mc_wnd_map} [mc_wnd_map] Frame 1Symbol 203 Button
"bt_stats"Symbol 939 MovieClip {mc_wnd_map} [mc_wnd_map] Frame 1Symbol 935 Button
"bt_level0"Symbol 939 MovieClip {mc_wnd_map} [mc_wnd_map] Frame 1Symbol 219 MovieClip {Windows_fla.level1btn_7} [Windows_fla.level1btn_7]
"bt_level1"Symbol 939 MovieClip {mc_wnd_map} [mc_wnd_map] Frame 1Symbol 155 MovieClip {Windows_fla.level2btn_9} [Windows_fla.level2btn_9]
"bt_level2"Symbol 939 MovieClip {mc_wnd_map} [mc_wnd_map] Frame 1Symbol 336 MovieClip {Windows_fla.level3btn_13} [Windows_fla.level3btn_13]
"bt_level3"Symbol 939 MovieClip {mc_wnd_map} [mc_wnd_map] Frame 1Symbol 216 MovieClip {Windows_fla.level4btn_15} [Windows_fla.level4btn_15]
"bt_level4"Symbol 939 MovieClip {mc_wnd_map} [mc_wnd_map] Frame 1Symbol 707 MovieClip {Windows_fla.level5btn_16} [Windows_fla.level5btn_16]
"bt_level5"Symbol 939 MovieClip {mc_wnd_map} [mc_wnd_map] Frame 1Symbol 317 MovieClip {Windows_fla.level6btn_18} [Windows_fla.level6btn_18]
"bt_level6"Symbol 939 MovieClip {mc_wnd_map} [mc_wnd_map] Frame 1Symbol 937 MovieClip {Windows_fla.level7btn_25} [Windows_fla.level7btn_25]
"bt_back"Symbol 948 MovieClip {mc_wnd_credits} [mc_wnd_credits] Frame 1Symbol 254 Button
"m_logo"Symbol 948 MovieClip {mc_wnd_credits} [mc_wnd_credits] Frame 1Symbol 881 MovieClip {Windows_fla.badhed_logo_more_104} [Windows_fla.badhed_logo_more_104]
"tf_stars"Symbol 996 MovieClip {mc_window_dead} [mc_window_dead] Frame 1Symbol 986 EditableText
"tf_score"Symbol 996 MovieClip {mc_window_dead} [mc_window_dead] Frame 1Symbol 175 EditableText
"m_bt_replay"Symbol 996 MovieClip {mc_window_dead} [mc_window_dead] Frame 1Symbol 994 Button
"m_bt_menu"Symbol 996 MovieClip {mc_window_dead} [mc_window_dead] Frame 1Symbol 182 Button
"m_bt_shop"Symbol 996 MovieClip {mc_window_dead} [mc_window_dead] Frame 1Symbol 197 Button
"m_bt_achieve"Symbol 996 MovieClip {mc_window_dead} [mc_window_dead] Frame 1Symbol 203 Button
"HISCORE"Symbol 996 MovieClip {mc_window_dead} [mc_window_dead] Frame 1Symbol 206 MovieClip {Windows_fla.sponsorlogo_86} [Windows_fla.sponsorlogo_86]
"bt_back"Symbol 1001 MovieClip {mc_wnd_achieve} [mc_wnd_achieve] Frame 1Symbol 254 Button
"mc_ach0"Symbol 1001 MovieClip {mc_wnd_achieve} [mc_wnd_achieve] Frame 1Symbol 344 MovieClip
"mc_ach1"Symbol 1001 MovieClip {mc_wnd_achieve} [mc_wnd_achieve] Frame 1Symbol 348 MovieClip
"mc_ach2"Symbol 1001 MovieClip {mc_wnd_achieve} [mc_wnd_achieve] Frame 1Symbol 352 MovieClip
"mc_ach3"Symbol 1001 MovieClip {mc_wnd_achieve} [mc_wnd_achieve] Frame 1Symbol 356 MovieClip
"mc_ach4"Symbol 1001 MovieClip {mc_wnd_achieve} [mc_wnd_achieve] Frame 1Symbol 370 MovieClip
"mc_ach5"Symbol 1001 MovieClip {mc_wnd_achieve} [mc_wnd_achieve] Frame 1Symbol 374 MovieClip
"mc_ach6"Symbol 1001 MovieClip {mc_wnd_achieve} [mc_wnd_achieve] Frame 1Symbol 380 MovieClip
"mc_ach7"Symbol 1001 MovieClip {mc_wnd_achieve} [mc_wnd_achieve] Frame 1Symbol 391 MovieClip
"mc_ach8"Symbol 1001 MovieClip {mc_wnd_achieve} [mc_wnd_achieve] Frame 1Symbol 397 MovieClip
"mc_ach9"Symbol 1001 MovieClip {mc_wnd_achieve} [mc_wnd_achieve] Frame 1Symbol 415 MovieClip
"tf_descr"Symbol 1001 MovieClip {mc_wnd_achieve} [mc_wnd_achieve] Frame 1Symbol 1000 EditableText
"mc_light0"Symbol 1013 MovieClip {mc_block_start} [mc_block_start] Frame 1Symbol 230 MovieClip
"mc_light1"Symbol 1013 MovieClip {mc_block_start} [mc_block_start] Frame 1Symbol 230 MovieClip
"mc_light2"Symbol 1013 MovieClip {mc_block_start} [mc_block_start] Frame 1Symbol 230 MovieClip
"mc_light3"Symbol 1013 MovieClip {mc_block_start} [mc_block_start] Frame 1Symbol 230 MovieClip
"mc_light4"Symbol 1013 MovieClip {mc_block_start} [mc_block_start] Frame 1Symbol 230 MovieClip
"mc_light5"Symbol 1013 MovieClip {mc_block_start} [mc_block_start] Frame 1Symbol 230 MovieClip
"mc_glow"Symbol 1013 MovieClip {mc_block_start} [mc_block_start] Frame 1Symbol 132 MovieClip {graphics_fla.PanelTouchAnimation_3} [graphics_fla.PanelTouchAnimation_3]
"tf_fps"Symbol 1015 MovieClip {mc_fps} [mc_fps] Frame 1Symbol 1014 EditableText
"txtName"Symbol 1038 MovieClip Frame 1Symbol 1035 EditableText
"txtName"Symbol 1040 MovieClip Frame 1Symbol 1035 EditableText
"txtMsg1"Symbol 1041 MovieClip Frame 1Symbol 1022 EditableText
"txtMsg2"Symbol 1041 MovieClip Frame 1Symbol 1023 EditableText
"btnSubmit"Symbol 1041 MovieClip Frame 1Symbol 1026 Button
"btnTwitter"Symbol 1041 MovieClip Frame 1Symbol 1029 Button
"btnFacebook"Symbol 1041 MovieClip Frame 1Symbol 1032 Button
"txtMsg1"Symbol 1041 MovieClip Frame 1Symbol 1022 EditableText
"txtMsg2"Symbol 1041 MovieClip Frame 1Symbol 1023 EditableText
"movNameManual"Symbol 1041 MovieClip Frame 1Symbol 1038 MovieClip
"movNameAuto"Symbol 1041 MovieClip Frame 1Symbol 1040 MovieClip
"btnBack"Symbol 1054 MovieClip Frame 1Symbol 1044 Button
"btnView"Symbol 1054 MovieClip Frame 1Symbol 1050 Button
"txtInfo"Symbol 1054 MovieClip Frame 1Symbol 1053 EditableText
"movEntryScreen"Symbol 1057 MovieClip {ZattikkaHiScores} [ZattikkaHiScores] Frame 1Symbol 1041 MovieClip
"movInfoScreen"Symbol 1057 MovieClip {ZattikkaHiScores} [ZattikkaHiScores] Frame 1Symbol 1054 MovieClip
"btnGFTP"Symbol 1057 MovieClip {ZattikkaHiScores} [ZattikkaHiScores] Frame 1Symbol 1056 Button
"tf_text"Symbol 1066 MovieClip Frame 1Symbol 1065 EditableText
"m_info"Symbol 1067 MovieClip {mc_text_info} [mc_text_info] Frame 1Symbol 1066 MovieClip
"tf_level_ind"Symbol 1074 MovieClip {mc_top_panel} [mc_top_panel] Frame 1Symbol 1070 EditableText
"tf_score"Symbol 1074 MovieClip {mc_top_panel} [mc_top_panel] Frame 1Symbol 1073 EditableText
"mc"Symbol 1152 MovieClip {char_fla.mc_antenna_anim_13} [char_fla.mc_antenna_anim_13] Frame 1Symbol 1134 MovieClip {char_fla.antennaEffect_14} [char_fla.antennaEffect_14]
"mc"Symbol 1152 MovieClip {char_fla.mc_antenna_anim_13} [char_fla.mc_antenna_anim_13] Frame 2Symbol 1151 MovieClip {char_fla.antennaEffect1_15} [char_fla.antennaEffect1_15]
"colorh"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 1Symbol 1161 MovieClip
"colorb"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 1Symbol 1163 MovieClip
"colorl"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 1Symbol 12 MovieClip
"mc_antenna"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 1Symbol 1099 MovieClip {char_fla.antenna_8} [char_fla.antenna_8]
"colorh"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 3Symbol 16 MovieClip
"colorb"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 3Symbol 1167 MovieClip
"colorl"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 3Symbol 1169 MovieClip
"colorh"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 5Symbol 24 MovieClip
"colorb"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 5Symbol 1173 MovieClip
"colorl"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 5Symbol 1175 MovieClip
"colorh"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 7Symbol 32 MovieClip
"colorb"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 7Symbol 34 MovieClip
"colorl"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 7Symbol 1179 MovieClip
"colorh"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 9Symbol 40 MovieClip
"colorb"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 9Symbol 42 MovieClip
"colorl"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 9Symbol 44 MovieClip
"colorh"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 11Symbol 32 MovieClip
"colorb"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 11Symbol 48 MovieClip
"colorl"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 11Symbol 1185 MovieClip
"colorh"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 13Symbol 54 MovieClip
"colorb"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 13Symbol 56 MovieClip
"colorl"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 13Symbol 58 MovieClip
"colorh"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 15Symbol 1191 MovieClip
"colorb"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 15Symbol 1193 MovieClip
"colorl"Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22] Frame 15Symbol 1195 MovieClip
"colorh"Symbol 1225 MovieClip {char_fla.weaponEffects4_55} [char_fla.weaponEffects4_55] Frame 1Symbol 500 MovieClip
"colorb"Symbol 1225 MovieClip {char_fla.weaponEffects4_55} [char_fla.weaponEffects4_55] Frame 1Symbol 386 MovieClip
"colorl"Symbol 1225 MovieClip {char_fla.weaponEffects4_55} [char_fla.weaponEffects4_55] Frame 1Symbol 502 MovieClip
"colorh"Symbol 1243 MovieClip {char_fla.weaponEffects2_60} [char_fla.weaponEffects2_60] Frame 1Symbol 500 MovieClip
"colorb"Symbol 1243 MovieClip {char_fla.weaponEffects2_60} [char_fla.weaponEffects2_60] Frame 1Symbol 386 MovieClip
"colorl"Symbol 1243 MovieClip {char_fla.weaponEffects2_60} [char_fla.weaponEffects2_60] Frame 1Symbol 502 MovieClip
"colorl"Symbol 1243 MovieClip {char_fla.weaponEffects2_60} [char_fla.weaponEffects2_60] Frame 2Symbol 527 MovieClip
"colorl"Symbol 1243 MovieClip {char_fla.weaponEffects2_60} [char_fla.weaponEffects2_60] Frame 3Symbol 514 MovieClip
"colorl"Symbol 1243 MovieClip {char_fla.weaponEffects2_60} [char_fla.weaponEffects2_60] Frame 4Symbol 502 MovieClip
"colorl"Symbol 1243 MovieClip {char_fla.weaponEffects2_60} [char_fla.weaponEffects2_60] Frame 5Symbol 535 MovieClip
"colorl"Symbol 1243 MovieClip {char_fla.weaponEffects2_60} [char_fla.weaponEffects2_60] Frame 6Symbol 539 MovieClip
"colorh"Symbol 1276 MovieClip {char_fla.weaponEffects3_65} [char_fla.weaponEffects3_65] Frame 1Symbol 500 MovieClip
"colorb"Symbol 1276 MovieClip {char_fla.weaponEffects3_65} [char_fla.weaponEffects3_65] Frame 1Symbol 386 MovieClip
"colorl"Symbol 1276 MovieClip {char_fla.weaponEffects3_65} [char_fla.weaponEffects3_65] Frame 1Symbol 502 MovieClip
"colorl"Symbol 1276 MovieClip {char_fla.weaponEffects3_65} [char_fla.weaponEffects3_65] Frame 2Symbol 527 MovieClip
"colorl"Symbol 1276 MovieClip {char_fla.weaponEffects3_65} [char_fla.weaponEffects3_65] Frame 3Symbol 514 MovieClip
"colorl"Symbol 1276 MovieClip {char_fla.weaponEffects3_65} [char_fla.weaponEffects3_65] Frame 4Symbol 502 MovieClip
"colorl"Symbol 1276 MovieClip {char_fla.weaponEffects3_65} [char_fla.weaponEffects3_65] Frame 6Symbol 566 MovieClip
"colorl"Symbol 1276 MovieClip {char_fla.weaponEffects3_65} [char_fla.weaponEffects3_65] Frame 11Symbol 502 MovieClip
"colorl"Symbol 1276 MovieClip {char_fla.weaponEffects3_65} [char_fla.weaponEffects3_65] Frame 12Symbol 514 MovieClip
"colorl"Symbol 1276 MovieClip {char_fla.weaponEffects3_65} [char_fla.weaponEffects3_65] Frame 13Symbol 502 MovieClip
"colorl"Symbol 1276 MovieClip {char_fla.weaponEffects3_65} [char_fla.weaponEffects3_65] Frame 14Symbol 514 MovieClip
"colorh"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 1Symbol 500 MovieClip
"colorb"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 1Symbol 386 MovieClip
"colorl"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 1Symbol 1078 MovieClip
"mc_eyes"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 1Symbol 1093 MovieClip {char_fla.eyes_1_5} [char_fla.eyes_1_5]
"m_whirl"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 1Symbol 1096 MovieClip
"mc_antenna"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 1Symbol 1099 MovieClip {char_fla.antenna_8} [char_fla.antenna_8]
"mc_smoke"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 1Symbol 1104 MovieClip {mc_smoke_anim} [mc_smoke_anim]
"mc_shield"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 1Symbol 1123 MovieClip
"mc_antenna_animation"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 1Symbol 1152 MovieClip {char_fla.mc_antenna_anim_13} [char_fla.mc_antenna_anim_13]
"colorh"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 2Symbol 800 MovieClip
"colorb"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 2Symbol 802 MovieClip
"colorl"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 2Symbol 804 MovieClip
"colorh"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 4Symbol 791 MovieClip
"colorb"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 4Symbol 793 MovieClip
"colorl"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 4Symbol 795 MovieClip
"mc"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 5Symbol 1197 MovieClip {char_fla.alien_22} [char_fla.alien_22]
"colorh"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 7Symbol 791 MovieClip
"colorb"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 7Symbol 829 MovieClip
"colorl"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 7Symbol 1207 MovieClip
"mc_antenna"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 7Symbol 1099 MovieClip {char_fla.antenna_8} [char_fla.antenna_8]
"colorh"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 8Symbol 1211 MovieClip
"colorb"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 8Symbol 407 MovieClip
"colorl"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 8Symbol 1213 MovieClip
"mc"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 11Symbol 1225 MovieClip {char_fla.weaponEffects4_55} [char_fla.weaponEffects4_55]
"mc"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 12Symbol 1243 MovieClip {char_fla.weaponEffects2_60} [char_fla.weaponEffects2_60]
"mc"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 13Symbol 1276 MovieClip {char_fla.weaponEffects3_65} [char_fla.weaponEffects3_65]
"tf_level"Symbol 1284 MovieClip Frame 1Symbol 1282 EditableText
"m_anim"Symbol 1285 MovieClip {mc_next_level} [mc_next_level] Frame 1Symbol 1284 MovieClip
"mc_anim"Symbol 1293 MovieClip Frame 1Symbol 1292 MovieClip
"mc_health_line"Symbol 1301 MovieClip {mc_healthpanel} [mc_healthpanel] Frame 1Symbol 1293 MovieClip
"mc_border"Symbol 1301 MovieClip {mc_healthpanel} [mc_healthpanel] Frame 1Symbol 1295 MovieClip
"mc_anim"Symbol 1306 MovieClip Frame 1Symbol 1305 MovieClip
"mc_jetline"Symbol 1308 MovieClip {mc_jetpanel} [mc_jetpanel] Frame 1Symbol 1306 MovieClip
"mc_jetline_top"Symbol 1308 MovieClip {mc_jetpanel} [mc_jetpanel] Frame 1Symbol 1306 MovieClip
"mc_border"Symbol 1308 MovieClip {mc_jetpanel} [mc_jetpanel] Frame 1Symbol 1295 MovieClip
"tf_dist"Symbol 1322 MovieClip {mc_place_arrow} [mc_place_arrow] Frame 1Symbol 1315 EditableText
"tf_dist"Symbol 1322 MovieClip {mc_place_arrow} [mc_place_arrow] Frame 8Symbol 1319 EditableText
"colorcm"Symbol 1331 MovieClip {mc_combo_anim} [mc_combo_anim] Frame 1Symbol 1324 MovieClip
"m_color_rect"Symbol 1331 MovieClip {mc_combo_anim} [mc_combo_anim] Frame 1Symbol 1330 MovieClip {mc_combo_icon} [mc_combo_icon]
"colorcm"Symbol 1331 MovieClip {mc_combo_anim} [mc_combo_anim] Frame 12Symbol 1324 MovieClip
"m_inner_info"Symbol 1341 MovieClip {mc_progress_panel} [mc_progress_panel] Frame 1Symbol 1338 MovieClip
"m_marker"Symbol 1341 MovieClip {mc_progress_panel} [mc_progress_panel] Frame 1Symbol 1340 MovieClip
"tf_text"Symbol 1345 MovieClip {mc_progress_bar_part_pointer} [mc_progress_bar_part_pointer] Frame 1Symbol 1344 EditableText
"m_tf"Symbol 1355 MovieClip {mc_stars_counter} [mc_stars_counter] Frame 1Symbol 1347 EditableText
"m_star"Symbol 1355 MovieClip {mc_stars_counter} [mc_stars_counter] Frame 1Symbol 1354 MovieClip {GUI_fla.star_8} [GUI_fla.star_8]

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1459 bytes "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description rdf:about='' xmlns ..."
ScriptLimits (65)Timeline Frame 1MaxRecursionDepth: 1000, ScriptTimeout: 60 seconds
ExportAssets (56)Timeline Frame 1Symbol 118 as "mc_preloader"
ExportAssets (56)Timeline Frame 2Symbol 133 as "mc_block5"
ExportAssets (56)Timeline Frame 2Symbol 136 as "mc_block4"
ExportAssets (56)Timeline Frame 2Symbol 140 as "mc_block6"
ExportAssets (56)Timeline Frame 2Symbol 155 as "Windows_fla.level2btn_9"
ExportAssets (56)Timeline Frame 2Symbol 157 as "Windows_fla.badhed_logo_more_squarecopy_2"
ExportAssets (56)Timeline Frame 2Symbol 159 as "Windows_fla.badhed_head_square_57"
ExportAssets (56)Timeline Frame 2Symbol 208 as "mc_wnd_level_complete"
ExportAssets (56)Timeline Frame 2Symbol 210 as "mc_skyjunk1"
ExportAssets (56)Timeline Frame 2Symbol 212 as "mc_skyjunk0"
ExportAssets (56)Timeline Frame 2Symbol 216 as "Windows_fla.level4btn_15"
ExportAssets (56)Timeline Frame 2Symbol 219 as "Windows_fla.level1btn_7"
ExportAssets (56)Timeline Frame 2Symbol 222 as "mc_block0"
ExportAssets (56)Timeline Frame 2Symbol 225 as "mc_block1"
ExportAssets (56)Timeline Frame 2Symbol 232 as "mc_block2"
ExportAssets (56)Timeline Frame 2Symbol 235 as "mc_block3"
ExportAssets (56)Timeline Frame 2Symbol 240 as "mc_fuel"
ExportAssets (56)Timeline Frame 2Symbol 245 as "mc_bg_hypno"
ExportAssets (56)Timeline Frame 2Symbol 264 as "mc_wnd_stats"
ExportAssets (56)Timeline Frame 2Symbol 275 as "mc_star"
ExportAssets (56)Timeline Frame 2Symbol 303 as "mc_bg"
ExportAssets (56)Timeline Frame 2Symbol 317 as "Windows_fla.level6btn_18"
ExportAssets (56)Timeline Frame 2Symbol 323 as "mc_starfall"
ExportAssets (56)Timeline Frame 2Symbol 332 as "mc_platform_score"
ExportAssets (56)Timeline Frame 2Symbol 336 as "Windows_fla.level3btn_13"
ExportAssets (56)Timeline Frame 2Symbol 206 as "Windows_fla.sponsorlogo_86"
ExportAssets (56)Timeline Frame 2Symbol 419 as "mc_ach_info"
ExportAssets (56)Timeline Frame 2Symbol 425 as "mcu_legs1"
ExportAssets (56)Timeline Frame 2Symbol 431 as "mcu_legs2"
ExportAssets (56)Timeline Frame 2Symbol 435 as "mcu_legs3"
ExportAssets (56)Timeline Frame 2Symbol 442 as "mc_bg_item_0_2"
ExportAssets (56)Timeline Frame 2Symbol 444 as "mc_wnd_score"
ExportAssets (56)Timeline Frame 2Symbol 467 as "mc_bonusbox"
ExportAssets (56)Timeline Frame 2Symbol 472 as "mcu_weapon2"
ExportAssets (56)Timeline Frame 2Symbol 487 as "Windows_fla.GAMETITLEANIMATION_93"
ExportAssets (56)Timeline Frame 2Symbol 490 as "mcu_weapon3"
ExportAssets (56)Timeline Frame 2Symbol 495 as "mcu_weapon1"
ExportAssets (56)Timeline Frame 2Symbol 645 as "mc_wnd_upgrades"
ExportAssets (56)Timeline Frame 2Symbol 652 as "mc_bg_item_0_1"
ExportAssets (56)Timeline Frame 2Symbol 659 as "mc_bg_item_0_0"
ExportAssets (56)Timeline Frame 2Symbol 395 as "Windows_fla.Timeline_75"
ExportAssets (56)Timeline Frame 2Symbol 668 as "mc_head_bum"
ExportAssets (56)Timeline Frame 2Symbol 673 as "mc_bg_slow"
ExportAssets (56)Timeline Frame 2Symbol 417 as "Windows_fla.mc_ach_201"
ExportAssets (56)Timeline Frame 2Symbol 677 as "mcu_health1"
ExportAssets (56)Timeline Frame 2Symbol 682 as "mc_bg_starfall"
ExportAssets (56)Timeline Frame 2Symbol 703 as "mc_wnd_main_menu"
ExportAssets (56)Timeline Frame 2Symbol 707 as "Windows_fla.level5btn_16"
ExportAssets (56)Timeline Frame 2Symbol 709 as "mcu_health3"
ExportAssets (56)Timeline Frame 2Symbol 712 as "mcu_health2"
ExportAssets (56)Timeline Frame 2Symbol 714 as "mcu_antenna2"
ExportAssets (56)Timeline Frame 2Symbol 717 as "mcu_antenna1"
ExportAssets (56)Timeline Frame 2Symbol 586 as "Windows_fla.mc_joe_32"
ExportAssets (56)Timeline Frame 2Symbol 724 as "mc_bg_item_2_2"
ExportAssets (56)Timeline Frame 2Symbol 731 as "mc_bg_item_2_0"
ExportAssets (56)Timeline Frame 2Symbol 738 as "mc_bg_item_2_1"
ExportAssets (56)Timeline Frame 2Symbol 744 as "mc_skybomb"
ExportAssets (56)Timeline Frame 2Symbol 330 as "graphics_fla.PlaneScoreColor_61"
ExportAssets (56)Timeline Frame 2Symbol 752 as "mc_wnd_pause"
ExportAssets (56)Timeline Frame 2Symbol 755 as "mc_health"
ExportAssets (56)Timeline Frame 2Symbol 757 as "mc_slow"
ExportAssets (56)Timeline Frame 2Symbol 762 as "mcu_jet_speed3"
ExportAssets (56)Timeline Frame 2Symbol 768 as "mcu_jet_speed2"
ExportAssets (56)Timeline Frame 2Symbol 774 as "mcu_jet_speed1"
ExportAssets (56)Timeline Frame 2Symbol 867 as "mc_wnd_help"
ExportAssets (56)Timeline Frame 2Symbol 877 as "mc_magnet"
ExportAssets (56)Timeline Frame 2Symbol 132 as "graphics_fla.PanelTouchAnimation_3"
ExportAssets (56)Timeline Frame 2Symbol 702 as "Windows_fla.TitleButtonAnimation_98"
ExportAssets (56)Timeline Frame 2Symbol 879 as "mc_spacejunk0"
ExportAssets (56)Timeline Frame 2Symbol 881 as "Windows_fla.badhed_logo_more_104"
ExportAssets (56)Timeline Frame 2Symbol 883 as "mc_spacejunk2"
ExportAssets (56)Timeline Frame 2Symbol 885 as "mc_spacejunk1"
ExportAssets (56)Timeline Frame 2Symbol 892 as "mc_bg_item_1_0"
ExportAssets (56)Timeline Frame 2Symbol 902 as "mc_xplode"
ExportAssets (56)Timeline Frame 2Symbol 909 as "mc_firebomb"
ExportAssets (56)Timeline Frame 2Symbol 414 as "Windows_fla.sdg_78"
ExportAssets (56)Timeline Frame 2Symbol 916 as "mc_bg_item_1_2"
ExportAssets (56)Timeline Frame 2Symbol 923 as "mc_bg_item_1_1"
ExportAssets (56)Timeline Frame 2Symbol 926 as "mc_snd"
ExportAssets (56)Timeline Frame 2Symbol 928 as "mc_firejunk1"
ExportAssets (56)Timeline Frame 2Symbol 930 as "mc_firejunk0"
ExportAssets (56)Timeline Frame 2Symbol 413 as "Windows_fla.antenna_37"
ExportAssets (56)Timeline Frame 2Symbol 601 as "Windows_fla.eyes_1_51"
ExportAssets (56)Timeline Frame 2Symbol 939 as "mc_wnd_map"
ExportAssets (56)Timeline Frame 2Symbol 942 as "mcu_jet3"
ExportAssets (56)Timeline Frame 2Symbol 948 as "mc_wnd_credits"
ExportAssets (56)Timeline Frame 2Symbol 952 as "mcu_jet2"
ExportAssets (56)Timeline Frame 2Symbol 957 as "mcu_jet1"
ExportAssets (56)Timeline Frame 2Symbol 743 as "graphics_fla.bombcounter_48"
ExportAssets (56)Timeline Frame 2Symbol 958 as "mc_upgrade"
ExportAssets (56)Timeline Frame 2Symbol 969 as "mc_block_finish"
ExportAssets (56)Timeline Frame 2Symbol 985 as "mc_bonus_selector"
ExportAssets (56)Timeline Frame 2Symbol 996 as "mc_window_dead"
ExportAssets (56)Timeline Frame 2Symbol 937 as "Windows_fla.level7btn_25"
ExportAssets (56)Timeline Frame 2Symbol 980 as "mc_star_inbox"
ExportAssets (56)Timeline Frame 2Symbol 1001 as "mc_wnd_achieve"
ExportAssets (56)Timeline Frame 2Symbol 1003 as "mc_hypno"
ExportAssets (56)Timeline Frame 2Symbol 1011 as "mc_spacebomb"
ExportAssets (56)Timeline Frame 2Symbol 974 as "mc_jet_inbox"
ExportAssets (56)Timeline Frame 2Symbol 1013 as "mc_block_start"
ExportAssets (56)Timeline Frame 2Symbol 976 as "mc_health_inbox"
ExportAssets (56)Timeline Frame 2Symbol 1015 as "mc_fps"
ExportAssets (56)Timeline Frame 2Symbol 1057 as "ZattikkaHiScores"
ExportAssets (56)Timeline Frame 2Symbol 1058 as "mus_title_loop"
ExportAssets (56)Timeline Frame 2Symbol 1059 as "snd_click"
ExportAssets (56)Timeline Frame 2Symbol 1060 as "mus_menu_loop"
ExportAssets (56)Timeline Frame 2Symbol 1061 as "mus_game_loop"
ExportAssets (56)Timeline Frame 2Symbol 1062 as "snd_upgrade"
ExportAssets (56)Timeline Frame 2Symbol 1067 as "mc_text_info"
ExportAssets (56)Timeline Frame 2Symbol 1074 as "mc_top_panel"
ExportAssets (56)Timeline Frame 2Symbol 1075 as "snd_weapon1"
ExportAssets (56)Timeline Frame 2Symbol 1076 as "snd_weapon0"
ExportAssets (56)Timeline Frame 2Symbol 1277 as "mc_hero_anim"
ExportAssets (56)Timeline Frame 2Symbol 1278 as "snd_weapon2"
ExportAssets (56)Timeline Frame 2Symbol 1279 as "snd_hit"
ExportAssets (56)Timeline Frame 2Symbol 1280 as "snd_voice_death"
ExportAssets (56)Timeline Frame 2Symbol 1285 as "mc_next_level"
ExportAssets (56)Timeline Frame 2Symbol 1286 as "snd_bonus_get"
ExportAssets (56)Timeline Frame 2Symbol 1287 as "snd_voice_holy"
ExportAssets (56)Timeline Frame 2Symbol 1288 as "snd_platform"
ExportAssets (56)Timeline Frame 2Symbol 1301 as "mc_healthpanel"
ExportAssets (56)Timeline Frame 2Symbol 1099 as "char_fla.antenna_8"
ExportAssets (56)Timeline Frame 2Symbol 1093 as "char_fla.eyes_1_5"
ExportAssets (56)Timeline Frame 2Symbol 1152 as "char_fla.mc_antenna_anim_13"
ExportAssets (56)Timeline Frame 2Symbol 1276 as "char_fla.weaponEffects3_65"
ExportAssets (56)Timeline Frame 2Symbol 1197 as "char_fla.alien_22"
ExportAssets (56)Timeline Frame 2Symbol 1225 as "char_fla.weaponEffects4_55"
ExportAssets (56)Timeline Frame 2Symbol 1243 as "char_fla.weaponEffects2_60"
ExportAssets (56)Timeline Frame 2Symbol 1104 as "mc_smoke_anim"
ExportAssets (56)Timeline Frame 2Symbol 1308 as "mc_jetpanel"
ExportAssets (56)Timeline Frame 2Symbol 1309 as "snd_jet"
ExportAssets (56)Timeline Frame 2Symbol 1310 as "snd_get_jet"
ExportAssets (56)Timeline Frame 2Symbol 1311 as "snd_voice_thank"
ExportAssets (56)Timeline Frame 2Symbol 1322 as "mc_place_arrow"
ExportAssets (56)Timeline Frame 2Symbol 1331 as "mc_combo_anim"
ExportAssets (56)Timeline Frame 2Symbol 1341 as "mc_progress_panel"
ExportAssets (56)Timeline Frame 2Symbol 1345 as "mc_progress_bar_part_pointer"
ExportAssets (56)Timeline Frame 2Symbol 1346 as "snd_star_collect"
ExportAssets (56)Timeline Frame 2Symbol 1355 as "mc_stars_counter"
ExportAssets (56)Timeline Frame 2Symbol 1360 as "mc_start_counter"
ExportAssets (56)Timeline Frame 2Symbol 1300 as "GUI_fla.Timeline_21"
ExportAssets (56)Timeline Frame 2Symbol 1134 as "char_fla.antennaEffect_14"
ExportAssets (56)Timeline Frame 2Symbol 1151 as "char_fla.antennaEffect1_15"
ExportAssets (56)Timeline Frame 2Symbol 1330 as "mc_combo_icon"
ExportAssets (56)Timeline Frame 2Symbol 1354 as "GUI_fla.star_8"
ExportAssets (56)Timeline Frame 2Symbol 1361 as "snd_poing"
ExportAssets (56)Timeline Frame 2Symbol 1362 as "snd_shock"
ExportAssets (56)Timeline Frame 2Symbol 1363 as "snd_steam2"
ExportAssets (56)Timeline Frame 2Symbol 1364 as "snd_steam1"
ExportAssets (56)Timeline Frame 2Symbol 1365 as "snd_expl"
SerialNumber (41)Timeline Frame 1

Labels

"Preloader"Frame 1
"two"Frame 2
"back1"Symbol 303 MovieClip {mc_bg} [mc_bg] Frame 1
"back2"Symbol 303 MovieClip {mc_bg} [mc_bg] Frame 20
"back3"Symbol 303 MovieClip {mc_bg} [mc_bg] Frame 40
"back4"Symbol 303 MovieClip {mc_bg} [mc_bg] Frame 60
"back5"Symbol 303 MovieClip {mc_bg} [mc_bg] Frame 80
"back6"Symbol 303 MovieClip {mc_bg} [mc_bg] Frame 100
"back7"Symbol 303 MovieClip {mc_bg} [mc_bg] Frame 120
"back8"Symbol 303 MovieClip {mc_bg} [mc_bg] Frame 140
"back9"Symbol 303 MovieClip {mc_bg} [mc_bg] Frame 160
"back1"Symbol 442 MovieClip {mc_bg_item_0_2} [mc_bg_item_0_2] Frame 1
"back2"Symbol 442 MovieClip {mc_bg_item_0_2} [mc_bg_item_0_2] Frame 20
"back3"Symbol 442 MovieClip {mc_bg_item_0_2} [mc_bg_item_0_2] Frame 40
"show"Symbol 487 MovieClip {Windows_fla.GAMETITLEANIMATION_93} [Windows_fla.GAMETITLEANIMATION_93] Frame 62
"away"Symbol 487 MovieClip {Windows_fla.GAMETITLEANIMATION_93} [Windows_fla.GAMETITLEANIMATION_93] Frame 120
"weapon0"Symbol 586 MovieClip {Windows_fla.mc_joe_32} [Windows_fla.mc_joe_32] Frame 1
"weapon1"Symbol 586 MovieClip {Windows_fla.mc_joe_32} [Windows_fla.mc_joe_32] Frame 2
"weapon2"Symbol 586 MovieClip {Windows_fla.mc_joe_32} [Windows_fla.mc_joe_32] Frame 3
"eyesanimation_1"Symbol 601 MovieClip {Windows_fla.eyes_1_51} [Windows_fla.eyes_1_51] Frame 1
"eyesanimation_2"Symbol 601 MovieClip {Windows_fla.eyes_1_51} [Windows_fla.eyes_1_51] Frame 5
"stand_front"Symbol 631 MovieClip Frame 1
"back1"Symbol 652 MovieClip {mc_bg_item_0_1} [mc_bg_item_0_1] Frame 1
"back2"Symbol 652 MovieClip {mc_bg_item_0_1} [mc_bg_item_0_1] Frame 20
"back3"Symbol 652 MovieClip {mc_bg_item_0_1} [mc_bg_item_0_1] Frame 40
"back1"Symbol 659 MovieClip {mc_bg_item_0_0} [mc_bg_item_0_0] Frame 1
"back2"Symbol 659 MovieClip {mc_bg_item_0_0} [mc_bg_item_0_0] Frame 20
"back3"Symbol 659 MovieClip {mc_bg_item_0_0} [mc_bg_item_0_0] Frame 40
"back1"Symbol 724 MovieClip {mc_bg_item_2_2} [mc_bg_item_2_2] Frame 1
"back2"Symbol 724 MovieClip {mc_bg_item_2_2} [mc_bg_item_2_2] Frame 20
"back3"Symbol 724 MovieClip {mc_bg_item_2_2} [mc_bg_item_2_2] Frame 40
"back1"Symbol 731 MovieClip {mc_bg_item_2_0} [mc_bg_item_2_0] Frame 1
"back2"Symbol 731 MovieClip {mc_bg_item_2_0} [mc_bg_item_2_0] Frame 20
"back3"Symbol 731 MovieClip {mc_bg_item_2_0} [mc_bg_item_2_0] Frame 40
"back1"Symbol 738 MovieClip {mc_bg_item_2_1} [mc_bg_item_2_1] Frame 1
"back2"Symbol 738 MovieClip {mc_bg_item_2_1} [mc_bg_item_2_1] Frame 20
"back3"Symbol 738 MovieClip {mc_bg_item_2_1} [mc_bg_item_2_1] Frame 40
"back1"Symbol 892 MovieClip {mc_bg_item_1_0} [mc_bg_item_1_0] Frame 1
"back2"Symbol 892 MovieClip {mc_bg_item_1_0} [mc_bg_item_1_0] Frame 20
"back3"Symbol 892 MovieClip {mc_bg_item_1_0} [mc_bg_item_1_0] Frame 40
"back1"Symbol 916 MovieClip {mc_bg_item_1_2} [mc_bg_item_1_2] Frame 1
"back2"Symbol 916 MovieClip {mc_bg_item_1_2} [mc_bg_item_1_2] Frame 20
"back3"Symbol 916 MovieClip {mc_bg_item_1_2} [mc_bg_item_1_2] Frame 40
"back1"Symbol 923 MovieClip {mc_bg_item_1_1} [mc_bg_item_1_1] Frame 1
"back2"Symbol 923 MovieClip {mc_bg_item_1_1} [mc_bg_item_1_1] Frame 20
"back3"Symbol 923 MovieClip {mc_bg_item_1_1} [mc_bg_item_1_1] Frame 40
"eyesanimation_1"Symbol 1093 MovieClip {char_fla.eyes_1_5} [char_fla.eyes_1_5] Frame 1
"eyesanimation_2"Symbol 1093 MovieClip {char_fla.eyes_1_5} [char_fla.eyes_1_5] Frame 5
"stand_front"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 1
"stand_left"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 2
"stand_right"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 3
"fall_front"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 4
"go_left"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 5
"go_right"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 6
"fly_front"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 7
"fly_left"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 8
"fly_right"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 9
"shock"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 10
"weapon0"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 11
"weapon1"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 12
"weapon2"Symbol 1277 MovieClip {mc_hero_anim} [mc_hero_anim] Frame 13
"UP"Symbol 1322 MovieClip {mc_place_arrow} [mc_place_arrow] Frame 1
"DOWN"Symbol 1322 MovieClip {mc_place_arrow} [mc_place_arrow] Frame 8
"fillCombo"Symbol 1331 MovieClip {mc_combo_anim} [mc_combo_anim] Frame 1
"DropCombo"Symbol 1331 MovieClip {mc_combo_anim} [mc_combo_anim] Frame 10




http://swfchan.com/19/90183/info.shtml
Created: 28/3 -2019 14:30:37 Last modified: 28/3 -2019 14:30:37 Server time: 29/04 -2024 14:14:30