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

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

armorgames collapse-it-10500.swf

This is the info page for
Flash #268339

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


Text
<p align="left"><font face="[z] Arista" size="30" color="#dd3700" letterSpacing="0.000000" kerning="1">LOADING 100%</font></p>

<p align="center"><font face="[z] Arista" size="30" color="#dd3700" letterSpacing="0.000000" kerning="1">LOADING 100%</font></p>

PLAY

PLAY

Try to use as less bombs as
possible and probably you
can get a cup.

Place the bomb on the
brick block and press the
"boom" button (or space
bar) to blow it.

New type of blocks. These
blocks are broken into
pieces when you have them
explode.

New bomb type. These
bombs fall from above. Use
them to kill people which
cannot be killed in the
rubble

Your goal is to mine and
blow up the construction
the right way to make all
people die from the blast
wave or in the rubble.

You can not place bombs
on the block of this type.

You can place bombs on the
block of this type.

Click to continue

<p align="left"><font face="[z] Arista" size="50" color="#178e06" letterSpacing="0.000000" kerning="1">LEVEL</font></p>

BEST SCORE:

CURRENT SCORE:

BOMBS USED:

LEVEL:

<p align="right"><font face="[z] Arista" size="20" color="#3f3f3f" letterSpacing="0.000000" kerning="1">23</font></p>

<p align="right"><font face="[z] Arista" size="20" color="#3f3f3f" letterSpacing="0.000000" kerning="1">23</font></p>

<p align="right"><font face="[z] Arista" size="20" color="#3f3f3f" letterSpacing="0.000000" kerning="1">23</font></p>

<p align="right"><font face="[z] Arista" size="20" color="#3f3f3f" letterSpacing="0.000000" kerning="1">23</font></p>

<p align="center"><font face="[z] Arista" size="18" color="#b2ffa1" letterSpacing="0.000000" kerning="1">MENU</font></p>

<p align="center"><font face="[z] Arista" size="18" color="#cbffbf" letterSpacing="0.000000" kerning="1">MENU</font></p>

<p align="center"><font face="[z] Arista" size="18" color="#b2ffa1" letterSpacing="0.000000" kerning="1">MENU</font></p>

MORE

GAMES

MORE

GAMES

<p align="center"><font face="[z] Arista" size="18" color="#b2ffa1" letterSpacing="0.000000" kerning="1">NEXT</font></p>

<p align="center"><font face="[z] Arista" size="18" color="#cbffbf" letterSpacing="0.000000" kerning="1">NEXT</font></p>

<p align="center"><font face="[z] Arista" size="18" color="#b2ffa1" letterSpacing="0.000000" kerning="1">NEXT</font></p>

BOMBS LEFT:

<p align="right"><font face="[z] Arista" size="20" color="#3f3f3f" letterSpacing="0.000000" kerning="1">23</font></p>

Sorry, but this game is not aviable
for public distribution

HIGH

SCORE

HIGH

SCORE

<p align="center"><font face="[z] Arista" size="18" color="#b2ffa1" letterSpacing="0.000000" kerning="1">SUBMIT</font></p>

<p align="center"><font face="[z] Arista" size="18" color="#cbffbf" letterSpacing="0.000000" kerning="1">SUBMIT</font></p>

<p align="center"><font face="[z] Arista" size="18" color="#b2ffa1" letterSpacing="0.000000" kerning="1">SUBMIT</font></p>

<p align="left"><font face="[z] Arista" size="22" color="#000000" letterSpacing="0.000000" kerning="1">Elvis</font></p>

Your score is succesfully
submited!

Submission failed!

Enter your name

<p align="center"><font face="[z] Arista" size="50" color="#178e06" letterSpacing="0.000000" kerning="1">RESET</font></p>

Are you sure that
you want to reset
the game
progress?

YES

YES

NO

NO

?

0

1

2

3

4

5

6

7

8

9

0

0

<p align="left"><font face="[z] Arista" size="18" color="#565656" letterSpacing="0.000000" kerning="1">SCORE:</font></p>

<p align="left"><font face="[z] Arista" size="18" color="#545454" letterSpacing="0.000000" kerning="1">LEVEL:</font></p>

WALKTHROUGH

<p align="left"><font face="[z] Arista" size="20" color="#3a3a3a" letterSpacing="0.000000" kerning="1">WALKTHROUGH</font></p>

<p align="left"><font face="[z] Arista" size="20" color="#3a3a3a" letterSpacing="0.000000" kerning="1">WALKTHROUGH</font></p>

MORE GAMES

<p align="left"><font face="[z] Arista" size="20" color="#414141" letterSpacing="0.000000" kerning="1">MORE GAMES</font></p>

<p align="left"><font face="[z] Arista" size="20" color="#414141" letterSpacing="0.000000" kerning="1">MORE GAMES</font></p>

<p align="center"><font face="[z] Arista" size="20" color="#85acd0" letterSpacing="0.000000" kerning="1">BOOM</font></p>

<p align="center"><font face="[z] Arista" size="20" color="#85acd0" letterSpacing="0.000000" kerning="1">BOOM</font></p>

<p align="center"><font face="[z] Arista" size="20" color="#85acd0" letterSpacing="0.000000" kerning="1">BOOM</font></p>

<p align="left"><font face="[z] Arista" size="18" color="#565656" letterSpacing="0.000000" kerning="1">KILLS LEFT: 3</font></p>

<p align="center"><font face="[z] Arista" size="20" color="#85acd0" letterSpacing="0.000000" kerning="1">BOOM</font></p>

<p align="center"><font face="[z] Arista" size="18" color="#b2ffa1" letterSpacing="0.000000" kerning="1">RESTART</font></p>

<p align="center"><font face="[z] Arista" size="18" color="#cbffbf" letterSpacing="0.000000" kerning="1">RESTART</font></p>

<p align="center"><font face="[z] Arista" size="18" color="#b2ffa1" letterSpacing="0.000000" kerning="1">RESTART</font></p>

<p align="left"><font face="[z] Arista" size="18" color="#565656" letterSpacing="0.000000" kerning="1">SCORE:</font></p>

<p align="left"><font face="[z] Arista" size="50" color="#178e06" letterSpacing="0.000000" kerning="1">OPTIONS</font></p>

SOUND VOLUME

MUSIC VOLUME

<p align="left"><font face="[z] Arista" size="20" color="#3f3f3f" letterSpacing="0.000000" kerning="1">HIDE TIPS</font></p>

RESET

GAME

RESET

GAME

OK

OK

CREDITS

CREDITS

CREDITS

OPTIONS

OPTIONS

<p align="center"><font face="[z] Arista" size="33" color="#aaffb2" letterSpacing="0.000000" kerning="1">34</font></p>

<p align="center"><font face="[z] Arista" size="33" color="#aaffb2" letterSpacing="0.000000" kerning="1">34</font></p>

<p align="center"><font face="[z] Arista" size="33" color="#aaffb2" letterSpacing="0.000000" kerning="1">34</font></p>

<p align="center"><font face="[z] Arista" size="33" color="#aaffb2" letterSpacing="0.000000" kerning="1">34</font></p>

TOTAL SCORE:

<p align="center"><font face="[z] Arista" size="33" color="#aaffb2" letterSpacing="0.000000" kerning="1">1</font></p>

<p align="center"><font face="[z] Arista" size="33" color="#aaffb2" letterSpacing="0.000000" kerning="1">1</font></p>

<p align="center"><font face="[z] Arista" size="33" color="#aaffb2" letterSpacing="0.000000" kerning="1">1</font></p>

<p align="left"><font face="[z] Arista" size="20" color="#4f4f4f" letterSpacing="0.000000" kerning="1">1000000</font></p>

<p align="left"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">1. 123456789012345</font></p>

<p align="left"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">1. Konstantin</font></p>

<p align="left"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">1. Konstantin</font></p>

<p align="left"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">1. Konstantin</font></p>

<p align="left"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">1. Konstantin</font></p>

<p align="left"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">1. Konstantin</font></p>

<p align="left"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">1. Konstantin</font></p>

<p align="left"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">1. Konstantin</font></p>

<p align="left"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">1. Konstantin</font></p>

<p align="left"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">1. Konstantin</font></p>

<p align="right"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">160259</font></p>

<p align="right"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">160259</font></p>

<p align="right"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">160259</font></p>

<p align="right"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">160259</font></p>

<p align="right"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">160259</font></p>

<p align="right"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">160259</font></p>

<p align="right"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">160259</font></p>

<p align="right"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">160259</font></p>

<p align="right"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">160259</font></p>

<p align="right"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">160259</font></p>

<p align="left"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">1. 123456789012345</font></p>

<p align="left"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">1. Konstantin</font></p>

<p align="left"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">1. Konstantin</font></p>

<p align="left"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">1. Konstantin</font></p>

<p align="left"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">1. Konstantin</font></p>

<p align="left"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">1. Konstantin</font></p>

<p align="left"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">1. Konstantin</font></p>

<p align="left"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">1. Konstantin</font></p>

<p align="left"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">1. Konstantin</font></p>

<p align="left"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">1. Konstantin</font></p>

<p align="right"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">160259</font></p>

<p align="right"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">160259</font></p>

<p align="right"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">160259</font></p>

<p align="right"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">160259</font></p>

<p align="right"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">160259</font></p>

<p align="right"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">160259</font></p>

<p align="right"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">160259</font></p>

<p align="right"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">160259</font></p>

<p align="right"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">160259</font></p>

<p align="right"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">160259</font></p>

<p align="left"><font face="[z] Arista" size="18" color="#000000" letterSpacing="0.000000" kerning="1">You are not in &nbsp;top 20</font></p>

<p align="left"><font face="[z] Arista" size="20" color="#4f4f4f" letterSpacing="0.000000" kerning="1">1000000</font></p>

PROGRAMMING & GAME DESIGN

ART

MUSIC & SFX

KONSTANTIN BORONENKOV

ANDREW ZHERDEV

OLEG STEPURO

INPRISED BY
DEMOLITION CITY & CRUSH THE CASTLE

DEVELOPED WITH BOX2D

SPECIAL THANKS CLAYMORE, SCMORR

MARIYA STAROVOYTOVA

TWENTY KILLS MEDAL

Requirements:
kill 20 humans

TNT

Requirements:
play 30 minutes for end

SILVER CUP

Requirements:
pass 20 levels

SILVER BOMB

Requirements:
pass 20 levels with a cup
rating

HUNDRED KILLS MEDAL

Requirements:
kill 100 humans

GOLDEN GRENADE

Requirements:
pass 16th level with only 4
bombs

GOLDEN CUP

Requirements:
pass 30 levels

GOLDEN BOMB

Requirements:
pass 30 levels with a cup
rating

FIFTY KILLS MEDAL

Requirements:
kill 50 humans

FIRST BLOOD

Requirements:
pass 1st level

CROWN

Requirements:
get all achievements

BRONZE CUP

Requirements:
pass 10 levels

BRONZE BOMB

Requirements:
pass 10 levels with a cup
rating

<p align="right"><font face="[z] Arista" size="23" color="#404040" letterSpacing="0.000000" kerning="1">Crown</font></p>

SHOW

SHOW

<p align="center"><font face="[z] Arista" size="20" color="#fefdb4" letterSpacing="1.000000" kerning="1">+100</font></p>

So, let's start. Click over the
brick block to mine it.

Pres the "boom" button to
produce an explotion (or
press space bar).

Hide tips

ActionScript [AS3]

Section 1
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { b2internal var m_p:b2Vec2; public function b2CircleShape(_arg1:Number=0){ m_p = new b2Vec2(); super(); m_type = e_circleShape; m_radius = _arg1; } override public function Copy():b2Shape{ var _local1:b2Shape = new b2CircleShape(); _local1.Set(this); return (_local1); } override public function Set(_arg1:b2Shape):void{ var _local2:b2CircleShape; super.Set(_arg1); if ((_arg1 is b2CircleShape)){ _local2 = (_arg1 as b2CircleShape); m_p.SetV(_local2.m_p); }; } override public function TestPoint(_arg1:b2Transform, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22 = _arg1.R; var _local4:Number = (_arg1.position.x + ((_local3.col1.x * m_p.x) + (_local3.col2.x * m_p.y))); var _local5:Number = (_arg1.position.y + ((_local3.col1.y * m_p.x) + (_local3.col2.y * m_p.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } override public function RayCast(_arg1:b2RayCastOutput, _arg2:b2RayCastInput, _arg3:b2Transform):Boolean{ var _local8:Number; var _local4:b2Mat22 = _arg3.R; var _local5:Number = (_arg3.position.x + ((_local4.col1.x * m_p.x) + (_local4.col2.x * m_p.y))); var _local6:Number = (_arg3.position.y + ((_local4.col1.y * m_p.x) + (_local4.col2.y * m_p.y))); var _local7:Number = (_arg2.p1.x - _local5); _local8 = (_arg2.p1.y - _local6); var _local9:Number = (((_local7 * _local7) + (_local8 * _local8)) - (m_radius * m_radius)); var _local10:Number = (_arg2.p2.x - _arg2.p1.x); var _local11:Number = (_arg2.p2.y - _arg2.p1.y); var _local12:Number = ((_local7 * _local10) + (_local8 * _local11)); var _local13:Number = ((_local10 * _local10) + (_local11 * _local11)); var _local14:Number = ((_local12 * _local12) - (_local13 * _local9)); if ((((_local14 < 0)) || ((_local13 < Number.MIN_VALUE)))){ return (false); }; var _local15:Number = -((_local12 + Math.sqrt(_local14))); if ((((0 <= _local15)) && ((_local15 <= (_arg2.maxFraction * _local13))))){ _local15 = (_local15 / _local13); _arg1.fraction = _local15; _arg1.normal.x = (_local7 + (_local15 * _local10)); _arg1.normal.y = (_local8 + (_local15 * _local11)); _arg1.normal.Normalize(); return (true); }; return (false); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2Transform):void{ var _local3:b2Mat22 = _arg2.R; var _local4:Number = (_arg2.position.x + ((_local3.col1.x * m_p.x) + (_local3.col2.x * m_p.y))); var _local5:Number = (_arg2.position.y + ((_local3.col1.y * m_p.x) + (_local3.col2.y * m_p.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } override public function ComputeMass(_arg1:b2MassData, _arg2:Number):void{ _arg1.mass = (((_arg2 * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_p); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_p.x * m_p.x) + (m_p.y * m_p.y)))); } override public function ComputeSubmergedArea(_arg1:b2Vec2, _arg2:Number, _arg3:b2Transform, _arg4:b2Vec2):Number{ var _local9:Number; var _local5:b2Vec2 = b2Math.MulX(_arg3, m_p); var _local6:Number = -((b2Math.Dot(_arg1, _local5) - _arg2)); if (_local6 < (-(m_radius) + Number.MIN_VALUE)){ return (0); }; if (_local6 > m_radius){ _arg4.SetV(_local5); return (((Math.PI * m_radius) * m_radius)); }; var _local7:Number = (m_radius * m_radius); var _local8:Number = (_local6 * _local6); _local9 = ((_local7 * (Math.asin((_local6 / m_radius)) + (Math.PI / 2))) + (_local6 * Math.sqrt((_local7 - _local8)))); var _local10:Number = (((-2 / 3) * Math.pow((_local7 - _local8), 1.5)) / _local9); _arg4.x = (_local5.x + (_arg1.x * _local10)); _arg4.y = (_local5.y + (_arg1.y * _local10)); return (_local9); } public function GetLocalPosition():b2Vec2{ return (m_p); } public function SetLocalPosition(_arg1:b2Vec2):void{ m_p.SetV(_arg1); } public function GetRadius():Number{ return (m_radius); } public function SetRadius(_arg1:Number):void{ m_radius = _arg1; } } }//package Box2D.Collision.Shapes
Section 2
//b2EdgeShape (Box2D.Collision.Shapes.b2EdgeShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2EdgeShape extends b2Shape { private var s_supportVec:b2Vec2; b2internal var m_v1:b2Vec2; b2internal var m_v2:b2Vec2; b2internal var m_coreV1:b2Vec2; b2internal var m_coreV2:b2Vec2; b2internal var m_length:Number; b2internal var m_normal:b2Vec2; b2internal var m_direction:b2Vec2; b2internal var m_cornerDir1:b2Vec2; b2internal var m_cornerDir2:b2Vec2; b2internal var m_cornerConvex1:Boolean; b2internal var m_cornerConvex2:Boolean; b2internal var m_nextEdge:b2EdgeShape; b2internal var m_prevEdge:b2EdgeShape; public function b2EdgeShape(_arg1:b2Vec2, _arg2:b2Vec2){ s_supportVec = new b2Vec2(); m_v1 = new b2Vec2(); m_v2 = new b2Vec2(); m_coreV1 = new b2Vec2(); m_coreV2 = new b2Vec2(); m_normal = new b2Vec2(); m_direction = new b2Vec2(); m_cornerDir1 = new b2Vec2(); m_cornerDir2 = new b2Vec2(); super(); m_type = e_edgeShape; m_prevEdge = null; m_nextEdge = null; m_v1 = _arg1; m_v2 = _arg2; m_direction.Set((m_v2.x - m_v1.x), (m_v2.y - m_v1.y)); m_length = m_direction.Normalize(); m_normal.Set(m_direction.y, -(m_direction.x)); m_coreV1.Set(((-(b2Settings.b2_toiSlop) * (m_normal.x - m_direction.x)) + m_v1.x), ((-(b2Settings.b2_toiSlop) * (m_normal.y - m_direction.y)) + m_v1.y)); m_coreV2.Set(((-(b2Settings.b2_toiSlop) * (m_normal.x + m_direction.x)) + m_v2.x), ((-(b2Settings.b2_toiSlop) * (m_normal.y + m_direction.y)) + m_v2.y)); m_cornerDir1 = m_normal; m_cornerDir2.Set(-(m_normal.x), -(m_normal.y)); } override public function TestPoint(_arg1:b2Transform, _arg2:b2Vec2):Boolean{ return (false); } override public function RayCast(_arg1:b2RayCastOutput, _arg2:b2RayCastInput, _arg3:b2Transform):Boolean{ var _local4:b2Mat22; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local5:Number = (_arg2.p2.x - _arg2.p1.x); var _local6:Number = (_arg2.p2.y - _arg2.p1.y); _local4 = _arg3.R; var _local7:Number = (_arg3.position.x + ((_local4.col1.x * m_v1.x) + (_local4.col2.x * m_v1.y))); var _local8:Number = (_arg3.position.y + ((_local4.col1.y * m_v1.x) + (_local4.col2.y * m_v1.y))); var _local9:Number = ((_arg3.position.y + ((_local4.col1.y * m_v2.x) + (_local4.col2.y * m_v2.y))) - _local8); var _local10:Number = -(((_arg3.position.x + ((_local4.col1.x * m_v2.x) + (_local4.col2.x * m_v2.y))) - _local7)); var _local11:Number = (100 * Number.MIN_VALUE); var _local12:Number = -(((_local5 * _local9) + (_local6 * _local10))); if (_local12 > _local11){ _local13 = (_arg2.p1.x - _local7); _local14 = (_arg2.p1.y - _local8); _local15 = ((_local13 * _local9) + (_local14 * _local10)); if ((((0 <= _local15)) && ((_local15 <= (_arg2.maxFraction * _local12))))){ _local16 = ((-(_local5) * _local14) + (_local6 * _local13)); if (((((-(_local11) * _local12) <= _local16)) && ((_local16 <= (_local12 * (1 + _local11)))))){ _local15 = (_local15 / _local12); _arg1.fraction = _local15; _local17 = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _arg1.normal.x = (_local9 / _local17); _arg1.normal.y = (_local10 / _local17); return (true); }; }; }; return (false); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2Transform):void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local3:b2Mat22 = _arg2.R; _local4 = (_arg2.position.x + ((_local3.col1.x * m_v1.x) + (_local3.col2.x * m_v1.y))); _local5 = (_arg2.position.y + ((_local3.col1.y * m_v1.x) + (_local3.col2.y * m_v1.y))); _local6 = (_arg2.position.x + ((_local3.col1.x * m_v2.x) + (_local3.col2.x * m_v2.y))); _local7 = (_arg2.position.y + ((_local3.col1.y * m_v2.x) + (_local3.col2.y * m_v2.y))); if (_local4 < _local6){ _arg1.lowerBound.x = _local4; _arg1.upperBound.x = _local6; } else { _arg1.lowerBound.x = _local6; _arg1.upperBound.x = _local4; }; if (_local5 < _local7){ _arg1.lowerBound.y = _local5; _arg1.upperBound.y = _local7; } else { _arg1.lowerBound.y = _local7; _arg1.upperBound.y = _local5; }; } override public function ComputeMass(_arg1:b2MassData, _arg2:Number):void{ _arg1.mass = 0; _arg1.center.SetV(m_v1); _arg1.I = 0; } override public function ComputeSubmergedArea(_arg1:b2Vec2, _arg2:Number, _arg3:b2Transform, _arg4:b2Vec2):Number{ var _local5:b2Vec2 = new b2Vec2((_arg1.x * _arg2), (_arg1.y * _arg2)); var _local6:b2Vec2 = b2Math.MulX(_arg3, m_v1); var _local7:b2Vec2 = b2Math.MulX(_arg3, m_v2); var _local8:Number = (b2Math.Dot(_arg1, _local6) - _arg2); var _local9:Number = (b2Math.Dot(_arg1, _local7) - _arg2); if (_local8 > 0){ if (_local9 > 0){ return (0); }; _local6.x = (((-(_local9) / (_local8 - _local9)) * _local6.x) + ((_local8 / (_local8 - _local9)) * _local7.x)); _local6.y = (((-(_local9) / (_local8 - _local9)) * _local6.y) + ((_local8 / (_local8 - _local9)) * _local7.y)); } else { if (_local9 > 0){ _local7.x = (((-(_local9) / (_local8 - _local9)) * _local6.x) + ((_local8 / (_local8 - _local9)) * _local7.x)); _local7.y = (((-(_local9) / (_local8 - _local9)) * _local6.y) + ((_local8 / (_local8 - _local9)) * _local7.y)); }; }; _arg4.x = (((_local5.x + _local6.x) + _local7.x) / 3); _arg4.y = (((_local5.y + _local6.y) + _local7.y) / 3); return ((0.5 * (((_local6.x - _local5.x) * (_local7.y - _local5.y)) - ((_local6.y - _local5.y) * (_local7.x - _local5.x))))); } public function GetLength():Number{ return (m_length); } public function GetVertex1():b2Vec2{ return (m_v1); } public function GetVertex2():b2Vec2{ return (m_v2); } public function GetCoreVertex1():b2Vec2{ return (m_coreV1); } public function GetCoreVertex2():b2Vec2{ return (m_coreV2); } public function GetNormalVector():b2Vec2{ return (m_normal); } public function GetDirectionVector():b2Vec2{ return (m_direction); } public function GetCorner1Vector():b2Vec2{ return (m_cornerDir1); } public function GetCorner2Vector():b2Vec2{ return (m_cornerDir2); } public function Corner1IsConvex():Boolean{ return (m_cornerConvex1); } public function Corner2IsConvex():Boolean{ return (m_cornerConvex2); } public function GetFirstVertex(_arg1:b2Transform):b2Vec2{ var _local2:b2Mat22 = _arg1.R; return (new b2Vec2((_arg1.position.x + ((_local2.col1.x * m_coreV1.x) + (_local2.col2.x * m_coreV1.y))), (_arg1.position.y + ((_local2.col1.y * m_coreV1.x) + (_local2.col2.y * m_coreV1.y))))); } public function GetNextEdge():b2EdgeShape{ return (m_nextEdge); } public function GetPrevEdge():b2EdgeShape{ return (m_prevEdge); } public function Support(_arg1:b2Transform, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Mat22 = _arg1.R; var _local5:Number = (_arg1.position.x + ((_local4.col1.x * m_coreV1.x) + (_local4.col2.x * m_coreV1.y))); var _local6:Number = (_arg1.position.y + ((_local4.col1.y * m_coreV1.x) + (_local4.col2.y * m_coreV1.y))); var _local7:Number = (_arg1.position.x + ((_local4.col1.x * m_coreV2.x) + (_local4.col2.x * m_coreV2.y))); var _local8:Number = (_arg1.position.y + ((_local4.col1.y * m_coreV2.x) + (_local4.col2.y * m_coreV2.y))); if (((_local5 * _arg2) + (_local6 * _arg3)) > ((_local7 * _arg2) + (_local8 * _arg3))){ s_supportVec.x = _local5; s_supportVec.y = _local6; } else { s_supportVec.x = _local7; s_supportVec.y = _local8; }; return (s_supportVec); } b2internal function SetPrevEdge(_arg1:b2EdgeShape, _arg2:b2Vec2, _arg3:b2Vec2, _arg4:Boolean):void{ m_prevEdge = _arg1; m_coreV1 = _arg2; m_cornerDir1 = _arg3; m_cornerConvex1 = _arg4; } b2internal function SetNextEdge(_arg1:b2EdgeShape, _arg2:b2Vec2, _arg3:b2Vec2, _arg4:Boolean):void{ m_nextEdge = _arg1; m_coreV2 = _arg2; m_cornerDir2 = _arg3; m_cornerConvex2 = _arg4; } } }//package Box2D.Collision.Shapes
Section 3
//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 4
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { b2internal var m_centroid:b2Vec2; b2internal var m_vertices:Array; b2internal var m_normals:Array; b2internal var m_vertexCount:int; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonShape(){ m_type = e_polygonShape; m_centroid = new b2Vec2(); m_vertices = new Array(); m_normals = new Array(); } override public function Copy():b2Shape{ var _local1:b2PolygonShape = new b2PolygonShape(); _local1.Set(this); return (_local1); } override public function Set(_arg1:b2Shape):void{ var _local2:b2PolygonShape; var _local3:int; super.Set(_arg1); if ((_arg1 is b2PolygonShape)){ _local2 = (_arg1 as b2PolygonShape); m_centroid.SetV(_local2.m_centroid); m_vertexCount = _local2.m_vertexCount; Reserve(m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3].SetV(_local2.m_vertices[_local3]); m_normals[_local3].SetV(_local2.m_normals[_local3]); _local3++; }; }; } public function SetAsArray(_arg1:Array, _arg2:Number=0):void{ var _local4:b2Vec2; var _local3:Array = new Array(); for each (_local4 in _arg1) { _local3.push(_local4); }; SetAsVector(_local3, _arg2); } public function SetAsVector(_arg1:Array, _arg2:Number=0):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:b2Vec2; if (_arg2 == 0){ _arg2 = _arg1.length; }; b2Settings.b2Assert((2 <= _arg2), "2 <= vertexCount"); m_vertexCount = _arg2; Reserve(_arg2); _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3].SetV(_arg1[_local3]); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = b2Math.SubtractVV(m_vertices[_local5], m_vertices[_local4]); b2Settings.b2Assert((_local6.LengthSquared() > Number.MIN_VALUE), "edge.LengthSquared() > Number.MIN_VALUE"); m_normals[_local3].SetV(b2Math.CrossVF(_local6, 1)); m_normals[_local3].Normalize(); _local3++; }; m_centroid = ComputeCentroid(m_vertices, m_vertexCount); } public function SetAsBox(_arg1:Number, _arg2:Number):void{ m_vertexCount = 4; Reserve(4); m_vertices[0].Set(-(_arg1), -(_arg2)); m_vertices[1].Set(_arg1, -(_arg2)); m_vertices[2].Set(_arg1, _arg2); m_vertices[3].Set(-(_arg1), _arg2); m_normals[0].Set(0, -1); m_normals[1].Set(1, 0); m_normals[2].Set(0, 1); m_normals[3].Set(-1, 0); m_centroid.SetZero(); } public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{ m_vertexCount = 4; Reserve(4); m_vertices[0].Set(-(_arg1), -(_arg2)); m_vertices[1].Set(_arg1, -(_arg2)); m_vertices[2].Set(_arg1, _arg2); m_vertices[3].Set(-(_arg1), _arg2); m_normals[0].Set(0, -1); m_normals[1].Set(1, 0); m_normals[2].Set(0, 1); m_normals[3].Set(-1, 0); m_centroid = _arg3; var _local5:b2Transform = new b2Transform(); _local5.position = _arg3; _local5.R.Set(_arg4); var _local6:int; while (_local6 < m_vertexCount) { m_vertices[_local6] = b2Math.MulX(_local5, m_vertices[_local6]); m_normals[_local6] = b2Math.MulMV(_local5.R, m_normals[_local6]); _local6++; }; } public function SetAsEdge(_arg1:b2Vec2, _arg2:b2Vec2):void{ m_vertexCount = 2; Reserve(2); m_vertices[0].SetV(_arg1); m_vertices[1].SetV(_arg2); m_centroid.x = (0.5 * (_arg1.x + _arg2.x)); m_centroid.y = (0.5 * (_arg1.y + _arg2.y)); m_normals[0] = b2Math.CrossVF(b2Math.SubtractVV(_arg2, _arg1), 1); m_normals[0].Normalize(); m_normals[1].x = -(m_normals[0].x); m_normals[1].y = -(m_normals[0].y); } override public function TestPoint(_arg1:b2Transform, _arg2:b2Vec2):Boolean{ var _local3:b2Vec2; var _local10:Number; var _local4:b2Mat22 = _arg1.R; var _local5:Number = (_arg2.x - _arg1.position.x); var _local6:Number = (_arg2.y - _arg1.position.y); var _local7:Number = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); var _local8:Number = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); var _local9:int; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } override public function RayCast(_arg1:b2RayCastOutput, _arg2:b2RayCastInput, _arg3:b2Transform):Boolean{ var _local6:Number; var _local7:Number; var _local8:b2Mat22; var _local9:b2Vec2; var _local18:Number; var _local19:Number; var _local4:Number = 0; var _local5:Number = _arg2.maxFraction; _local6 = (_arg2.p1.x - _arg3.position.x); _local7 = (_arg2.p1.y - _arg3.position.y); _local8 = _arg3.R; var _local10:Number = ((_local6 * _local8.col1.x) + (_local7 * _local8.col1.y)); var _local11:Number = ((_local6 * _local8.col2.x) + (_local7 * _local8.col2.y)); _local6 = (_arg2.p2.x - _arg3.position.x); _local7 = (_arg2.p2.y - _arg3.position.y); _local8 = _arg3.R; var _local12:Number = ((_local6 * _local8.col1.x) + (_local7 * _local8.col1.y)); var _local13:Number = ((_local6 * _local8.col2.x) + (_local7 * _local8.col2.y)); var _local14:Number = (_local12 - _local10); var _local15:Number = (_local13 - _local11); var _local16 = -1; var _local17:int; while (_local17 < m_vertexCount) { _local9 = m_vertices[_local17]; _local6 = (_local9.x - _local10); _local7 = (_local9.y - _local11); _local9 = m_normals[_local17]; _local18 = ((_local9.x * _local6) + (_local9.y * _local7)); _local19 = ((_local9.x * _local14) + (_local9.y * _local15)); if (_local19 == 0){ if (_local18 < 0){ return (false); }; } else { if ((((_local19 < 0)) && ((_local18 < (_local4 * _local19))))){ _local4 = (_local18 / _local19); _local16 = _local17; } else { if ((((_local19 > 0)) && ((_local18 < (_local5 * _local19))))){ _local5 = (_local18 / _local19); }; }; }; if (_local5 < (_local4 - Number.MIN_VALUE)){ return (false); }; _local17++; }; if (_local16 >= 0){ _arg1.fraction = _local4; _local8 = _arg3.R; _local9 = m_normals[_local16]; _arg1.normal.x = ((_local8.col1.x * _local9.x) + (_local8.col2.x * _local9.y)); _arg1.normal.y = ((_local8.col1.y * _local9.x) + (_local8.col2.y * _local9.y)); return (true); }; return (false); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2Transform):void{ var _local10:Number; var _local11:Number; var _local3:b2Mat22 = _arg2.R; var _local4:b2Vec2 = m_vertices[0]; var _local5:Number = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); var _local6:Number = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); var _local7:Number = _local5; var _local8:Number = _local6; var _local9 = 1; while (_local9 < m_vertexCount) { _local4 = m_vertices[_local9]; _local10 = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); _local11 = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _local5 = ((_local5 < _local10)) ? _local5 : _local10; _local6 = ((_local6 < _local11)) ? _local6 : _local11; _local7 = ((_local7 > _local10)) ? _local7 : _local10; _local8 = ((_local8 > _local11)) ? _local8 : _local11; _local9++; }; _arg1.lowerBound.x = (_local5 - m_radius); _arg1.lowerBound.y = (_local6 - m_radius); _arg1.upperBound.x = (_local7 + m_radius); _arg1.upperBound.y = (_local8 + m_radius); } override public function ComputeMass(_arg1:b2MassData, _arg2:Number):void{ var _local11:b2Vec2; var _local12:b2Vec2; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; if (m_vertexCount == 2){ _arg1.center.x = (0.5 * (m_vertices[0].x + m_vertices[1].x)); _arg1.center.y = (0.5 * (m_vertices[0].y + m_vertices[1].y)); _arg1.mass = 0; _arg1.I = 0; return; }; var _local3:Number = 0; var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; var _local7:Number = 0; var _local8:Number = 0; var _local9:Number = (1 / 3); var _local10:int; while (_local10 < m_vertexCount) { _local11 = m_vertices[_local10]; _local12 = (((_local10 + 1) < m_vertexCount)) ? m_vertices[int((_local10 + 1))] : m_vertices[0]; _local13 = (_local11.x - _local7); _local14 = (_local11.y - _local8); _local15 = (_local12.x - _local7); _local16 = (_local12.y - _local8); _local17 = ((_local13 * _local16) - (_local14 * _local15)); _local18 = (0.5 * _local17); _local5 = (_local5 + _local18); _local3 = (_local3 + ((_local18 * _local9) * ((_local7 + _local11.x) + _local12.x))); _local4 = (_local4 + ((_local18 * _local9) * ((_local8 + _local11.y) + _local12.y))); _local19 = _local7; _local20 = _local8; _local21 = _local13; _local22 = _local14; _local23 = _local15; _local24 = _local16; _local25 = ((_local9 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local26 = ((_local9 * ((0.25 * (((_local22 * _local22) + (_local24 * _local22)) + (_local24 * _local24))) + ((_local20 * _local22) + (_local20 * _local24)))) + ((0.5 * _local20) * _local20)); _local6 = (_local6 + (_local17 * (_local25 + _local26))); _local10++; }; _arg1.mass = (_arg2 * _local5); _local3 = (_local3 * (1 / _local5)); _local4 = (_local4 * (1 / _local5)); _arg1.center.Set(_local3, _local4); _arg1.I = (_arg2 * _local6); } override public function ComputeSubmergedArea(_arg1:b2Vec2, _arg2:Number, _arg3:b2Transform, _arg4:b2Vec2):Number{ var _local12:int; var _local22:b2Vec2; var _local23:Boolean; var _local24:b2MassData; var _local25:Number; var _local5:b2Vec2 = b2Math.MulTMV(_arg3.R, _arg1); var _local6:Number = (_arg2 - b2Math.Dot(_arg1, _arg3.position)); var _local7:Array = new Array(); var _local8:int; var _local9 = -1; var _local10 = -1; var _local11:Boolean; _local12 = 0; while (_local12 < m_vertexCount) { _local7[_local12] = (b2Math.Dot(_local5, m_vertices[_local12]) - _local6); _local23 = (_local7[_local12] < -(Number.MIN_VALUE)); if (_local12 > 0){ if (_local23){ if (!_local11){ _local9 = (_local12 - 1); _local8++; }; } else { if (_local11){ _local10 = (_local12 - 1); _local8++; }; }; }; _local11 = _local23; _local12++; }; switch (_local8){ case 0: if (_local11){ _local24 = new b2MassData(); ComputeMass(_local24, 1); _arg4.SetV(b2Math.MulX(_arg3, _local24.center)); return (_local24.mass); }; return (0); case 1: if (_local9 == -1){ _local9 = (m_vertexCount - 1); } else { _local10 = (m_vertexCount - 1); }; break; }; var _local13:int = ((_local9 + 1) % m_vertexCount); var _local14:int = ((_local10 + 1) % m_vertexCount); var _local15:Number = ((0 - _local7[_local9]) / (_local7[_local13] - _local7[_local9])); var _local16:Number = ((0 - _local7[_local10]) / (_local7[_local14] - _local7[_local10])); var _local17:b2Vec2 = new b2Vec2(((m_vertices[_local9].x * (1 - _local15)) + (m_vertices[_local13].x * _local15)), ((m_vertices[_local9].y * (1 - _local15)) + (m_vertices[_local13].y * _local15))); var _local18:b2Vec2 = new b2Vec2(((m_vertices[_local10].x * (1 - _local16)) + (m_vertices[_local14].x * _local16)), ((m_vertices[_local10].y * (1 - _local16)) + (m_vertices[_local14].y * _local16))); var _local19:Number = 0; var _local20:b2Vec2 = new b2Vec2(); var _local21:b2Vec2 = m_vertices[_local13]; _local12 = _local13; while (_local12 != _local14) { _local12 = ((_local12 + 1) % m_vertexCount); if (_local12 == _local14){ _local22 = _local18; } else { _local22 = m_vertices[_local12]; }; _local25 = (0.5 * (((_local21.x - _local17.x) * (_local22.y - _local17.y)) - ((_local21.y - _local17.y) * (_local22.x - _local17.x)))); _local19 = (_local19 + _local25); _local20.x = (_local20.x + ((_local25 * ((_local17.x + _local21.x) + _local22.x)) / 3)); _local20.y = (_local20.y + ((_local25 * ((_local17.y + _local21.y) + _local22.y)) / 3)); _local21 = _local22; }; _local20.Multiply((1 / _local19)); _arg4.SetV(b2Math.MulX(_arg3, _local20)); return (_local19); } public function GetVertexCount():int{ return (m_vertexCount); } public function GetVertices():Array{ return (m_vertices); } public function GetNormals():Array{ return (m_normals); } public function GetSupport(_arg1:b2Vec2):int{ var _local5:Number; var _local2:int; var _local3:Number = ((m_vertices[0].x * _arg1.x) + (m_vertices[0].y * _arg1.y)); var _local4 = 1; while (_local4 < m_vertexCount) { _local5 = ((m_vertices[_local4].x * _arg1.x) + (m_vertices[_local4].y * _arg1.y)); if (_local5 > _local3){ _local2 = _local4; _local3 = _local5; }; _local4++; }; return (_local2); } public function GetSupportVertex(_arg1:b2Vec2):b2Vec2{ var _local5:Number; var _local2:int; var _local3:Number = ((m_vertices[0].x * _arg1.x) + (m_vertices[0].y * _arg1.y)); var _local4 = 1; while (_local4 < m_vertexCount) { _local5 = ((m_vertices[_local4].x * _arg1.x) + (m_vertices[_local4].y * _arg1.y)); if (_local5 > _local3){ _local2 = _local4; _local3 = _local5; }; _local4++; }; return (m_vertices[_local2]); } private function Validate():Boolean{ return (false); } private function Reserve(_arg1:int):void{ var _local2:int = m_vertices.length; while (_local2 < _arg1) { m_vertices[_local2] = new b2Vec2(); m_normals[_local2] = new b2Vec2(); _local2++; }; } public static function AsArray(_arg1:Array, _arg2:Number):b2PolygonShape{ var _local3:b2PolygonShape = new (b2PolygonShape); _local3.SetAsArray(_arg1, _arg2); return (_local3); } public static function AsVector(_arg1:Array, _arg2:Number):b2PolygonShape{ var _local3:b2PolygonShape = new (b2PolygonShape); _local3.SetAsVector(_arg1, _arg2); return (_local3); } public static function AsBox(_arg1:Number, _arg2:Number):b2PolygonShape{ var _local3:b2PolygonShape = new (b2PolygonShape); _local3.SetAsBox(_arg1, _arg2); return (_local3); } public static function AsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):b2PolygonShape{ var _local5:b2PolygonShape = new (b2PolygonShape); _local5.SetAsOrientedBox(_arg1, _arg2, _arg3, _arg4); return (_local5); } public static function AsEdge(_arg1:b2Vec2, _arg2:b2Vec2):b2PolygonShape{ var _local3:b2PolygonShape = new (b2PolygonShape); _local3.SetAsEdge(_arg1, _arg2); return (_local3); } public static function ComputeCentroid(_arg1:Array, _arg2:uint):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); } b2internal 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((_arg3 + 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 5
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Shape { b2internal var m_type:int; b2internal var m_radius:Number; b2internal static const e_unknownShape:int = -1; b2internal static const e_circleShape:int = 0; b2internal static const e_polygonShape:int = 1; b2internal static const e_edgeShape:int = 2; b2internal static const e_shapeTypeCount:int = 3; public static const e_hitCollide:int = 1; public static const e_missCollide:int = 0; public static const e_startsInsideCollide:int = -1; public function b2Shape(){ m_type = e_unknownShape; m_radius = b2Settings.b2_linearSlop; } public function Copy():b2Shape{ return (null); } public function Set(_arg1:b2Shape):void{ m_radius = _arg1.m_radius; } public function GetType():int{ return (m_type); } public function TestPoint(_arg1:b2Transform, _arg2:b2Vec2):Boolean{ return (false); } public function RayCast(_arg1:b2RayCastOutput, _arg2:b2RayCastInput, _arg3:b2Transform):Boolean{ return (false); } public function ComputeAABB(_arg1:b2AABB, _arg2:b2Transform):void{ } public function ComputeMass(_arg1:b2MassData, _arg2:Number):void{ } public function ComputeSubmergedArea(_arg1:b2Vec2, _arg2:Number, _arg3:b2Transform, _arg4:b2Vec2):Number{ return (0); } public static function TestOverlap(_arg1:b2Shape, _arg2:b2Transform, _arg3:b2Shape, _arg4:b2Transform):Boolean{ var _local5:b2DistanceInput = new b2DistanceInput(); _local5.proxyA = new b2DistanceProxy(); _local5.proxyA.Set(_arg1); _local5.proxyB = new b2DistanceProxy(); _local5.proxyB.Set(_arg3); _local5.transformA = _arg2; _local5.transformB = _arg4; _local5.useRadii = true; var _local6:b2SimplexCache = new b2SimplexCache(); _local6.count = 0; var _local7:b2DistanceOutput = new b2DistanceOutput(); b2Distance.Distance(_local7, _local6, _local5); return ((_local7.distance < (10 * Number.MIN_VALUE))); } } }//package Box2D.Collision.Shapes
Section 6
//b2AABB (Box2D.Collision.b2AABB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2AABB { public var lowerBound:b2Vec2; public var upperBound:b2Vec2; public function b2AABB(){ lowerBound = new b2Vec2(); upperBound = new b2Vec2(); super(); } public function IsValid():Boolean{ var _local1:Number = (upperBound.x - lowerBound.x); var _local2:Number = (upperBound.y - lowerBound.y); var _local3:Boolean = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } public function GetCenter():b2Vec2{ return (new b2Vec2(((lowerBound.x + upperBound.x) / 2), ((lowerBound.y + upperBound.y) / 2))); } public function GetExtents():b2Vec2{ return (new b2Vec2(((upperBound.x - lowerBound.x) / 2), ((upperBound.y - lowerBound.y) / 2))); } public function Contains(_arg1:b2AABB):Boolean{ var _local2:Boolean; _local2 = ((_local2) && ((lowerBound.x <= _arg1.lowerBound.x))); _local2 = ((_local2) && ((lowerBound.y <= _arg1.lowerBound.y))); _local2 = ((_local2) && ((_arg1.upperBound.x <= upperBound.x))); _local2 = ((_local2) && ((_arg1.upperBound.y <= upperBound.y))); return (_local2); } public function RayCast(_arg1:b2RayCastOutput, _arg2:b2RayCastInput):Boolean{ var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local3:Number = -(Number.MAX_VALUE); var _local4:Number = Number.MAX_VALUE; var _local5:Number = _arg2.p1.x; var _local6:Number = _arg2.p1.y; var _local7:Number = (_arg2.p2.x - _arg2.p1.x); var _local8:Number = (_arg2.p2.y - _arg2.p1.y); var _local9:Number = Math.abs(_local7); var _local10:Number = Math.abs(_local8); _local11 = _arg1.normal; if (_local9 < Number.MIN_VALUE){ if ((((_local5 < lowerBound.x)) || ((upperBound.x < _local5)))){ return (false); }; } else { _local12 = (1 / _local7); _local13 = ((lowerBound.x - _local5) * _local12); _local14 = ((upperBound.x - _local5) * _local12); _local16 = -1; if (_local13 > _local14){ _local15 = _local13; _local13 = _local14; _local14 = _local15; _local16 = 1; }; if (_local13 > _local3){ _local11.x = _local16; _local11.y = 0; _local3 = _local13; }; _local4 = Math.min(_local4, _local14); if (_local3 > _local4){ return (false); }; }; if (_local10 < Number.MIN_VALUE){ if ((((_local6 < lowerBound.y)) || ((upperBound.y < _local6)))){ return (false); }; } else { _local12 = (1 / _local8); _local13 = ((lowerBound.y - _local6) * _local12); _local14 = ((upperBound.y - _local6) * _local12); _local16 = -1; if (_local13 > _local14){ _local15 = _local13; _local13 = _local14; _local14 = _local15; _local16 = 1; }; if (_local13 > _local3){ _local11.y = _local16; _local11.x = 0; _local3 = _local13; }; _local4 = Math.min(_local4, _local14); if (_local3 > _local4){ return (false); }; }; _arg1.fraction = _local3; return (true); } public function TestOverlap(_arg1:b2AABB):Boolean{ var _local2:Number = (_arg1.lowerBound.x - upperBound.x); var _local3:Number = (_arg1.lowerBound.y - upperBound.y); var _local4:Number = (lowerBound.x - _arg1.upperBound.x); var _local5:Number = (lowerBound.y - _arg1.upperBound.y); if ((((_local2 > 0)) || ((_local3 > 0)))){ return (false); }; if ((((_local4 > 0)) || ((_local5 > 0)))){ return (false); }; return (true); } public function Combine(_arg1:b2AABB, _arg2:b2AABB):void{ lowerBound.x = Math.min(_arg1.lowerBound.x, _arg2.lowerBound.x); lowerBound.y = Math.min(_arg1.lowerBound.y, _arg2.lowerBound.y); upperBound.x = Math.max(_arg1.upperBound.x, _arg2.upperBound.x); upperBound.y = Math.max(_arg1.upperBound.y, _arg2.upperBound.y); } public static function Combine(_arg1:b2AABB, _arg2:b2AABB):b2AABB{ var _local3:b2AABB = new (b2AABB); _local3.Combine(_arg1, _arg2); return (_local3); } } }//package Box2D.Collision
Section 7
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var s_incidentEdge:Array = MakeClipPointVector(); private static var s_clipPoints1:Array = MakeClipPointVector(); private static var s_clipPoints2:Array = MakeClipPointVector(); private static var s_edgeAO:Array = new Array(1); private static var s_edgeBO:Array = new Array(1); private static var s_localTangent:b2Vec2 = new b2Vec2(); private static var s_localNormal:b2Vec2 = new b2Vec2(); private static var s_planePoint:b2Vec2 = new b2Vec2(); private static var s_normal:b2Vec2 = new b2Vec2(); private static var s_tangent:b2Vec2 = new b2Vec2(); private static var s_tangent2:b2Vec2 = new b2Vec2(); private static var s_v11:b2Vec2 = new b2Vec2(); private static var s_v12:b2Vec2 = new b2Vec2(); private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local9:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; var _local8:b2Vec2 = _local5.v; _local9 = (((_arg3.x * _local7.x) + (_arg3.y * _local7.y)) - _arg4); var _local10:Number = (((_arg3.x * _local8.x) + (_arg3.y * _local8.y)) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); _arg1[_temp1].Set(_arg2[0]); }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _arg1[_temp2].Set(_arg2[1]); }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2Transform, _arg3:int, _arg4:b2PolygonShape, _arg5:b2Transform):Number{ var _local11:b2Mat22; var _local12:b2Vec2; var _local25:Number; var _local6:int = _arg1.m_vertexCount; var _local7:Array = _arg1.m_vertices; var _local8:Array = _arg1.m_normals; var _local9:int = _arg4.m_vertexCount; var _local10:Array = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; var _local13:Number = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); var _local14:Number = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; var _local15:Number = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); var _local16:Number = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; var _local20:Number = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local21:Number = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; var _local22:Number = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local23:Number = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); var _local24:Number = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2Transform, _arg4:b2PolygonShape, _arg5:b2Transform):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); var _local18:int = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); var _local19:Number = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); var _local20:int = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; var _local21:Number = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); 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 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2Transform, _arg4:int, _arg5:b2PolygonShape, _arg6:b2Transform):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; } private static function MakeClipPointVector():Array{ var _local1:Array = new Array(2); _local1[0] = new ClipVertex(); _local1[1] = new ClipVertex(); return (_local1); } public static function CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2Transform, _arg4:b2PolygonShape, _arg5:b2Transform):void{ var _local6:ClipVertex; var _local12:b2PolygonShape; var _local13:b2PolygonShape; var _local14:b2Transform; var _local15:b2Transform; var _local16:int; var _local17:uint; var _local20:b2Mat22; var _local25:b2Vec2; var _local39:int; var _local42:Number; var _local43:b2ManifoldPoint; var _local44:Number; var _local45:Number; _arg1.m_pointCount = 0; var _local7:Number = (_arg2.m_radius + _arg4.m_radius); var _local8:int; s_edgeAO[0] = _local8; var _local9:Number = FindMaxSeparation(s_edgeAO, _arg2, _arg3, _arg4, _arg5); _local8 = s_edgeAO[0]; if (_local9 > _local7){ return; }; var _local10:int; s_edgeBO[0] = _local10; var _local11:Number = FindMaxSeparation(s_edgeBO, _arg4, _arg5, _arg2, _arg3); _local10 = s_edgeBO[0]; if (_local11 > _local7){ return; }; var _local18:Number = 0.98; var _local19:Number = 0.001; if (_local11 > ((_local18 * _local9) + _local19)){ _local12 = _arg4; _local13 = _arg2; _local14 = _arg5; _local15 = _arg3; _local16 = _local10; _arg1.m_type = b2Manifold.e_faceB; _local17 = 1; } else { _local12 = _arg2; _local13 = _arg4; _local14 = _arg3; _local15 = _arg5; _local16 = _local8; _arg1.m_type = b2Manifold.e_faceA; _local17 = 0; }; var _local21:Array = s_incidentEdge; FindIncidentEdge(_local21, _local12, _local14, _local16, _local13, _local15); var _local22:int = _local12.m_vertexCount; var _local23:Array = _local12.m_vertices; var _local24:b2Vec2 = _local23[_local16]; if ((_local16 + 1) < _local22){ _local25 = _local23[int((_local16 + 1))]; } else { _local25 = _local23[0]; }; var _local26:b2Vec2 = s_localTangent; _local26.Set((_local25.x - _local24.x), (_local25.y - _local24.y)); _local26.Normalize(); var _local27:b2Vec2 = s_localNormal; _local27.x = _local26.y; _local27.y = -(_local26.x); var _local28:b2Vec2 = s_planePoint; _local28.Set((0.5 * (_local24.x + _local25.x)), (0.5 * (_local24.y + _local25.y))); var _local29:b2Vec2 = s_tangent; _local20 = _local14.R; _local29.x = ((_local20.col1.x * _local26.x) + (_local20.col2.x * _local26.y)); _local29.y = ((_local20.col1.y * _local26.x) + (_local20.col2.y * _local26.y)); var _local30:b2Vec2 = s_tangent2; _local30.x = -(_local29.x); _local30.y = -(_local29.y); var _local31:b2Vec2 = s_normal; _local31.x = _local29.y; _local31.y = -(_local29.x); var _local32:b2Vec2 = s_v11; var _local33:b2Vec2 = s_v12; _local32.x = (_local14.position.x + ((_local20.col1.x * _local24.x) + (_local20.col2.x * _local24.y))); _local32.y = (_local14.position.y + ((_local20.col1.y * _local24.x) + (_local20.col2.y * _local24.y))); _local33.x = (_local14.position.x + ((_local20.col1.x * _local25.x) + (_local20.col2.x * _local25.y))); _local33.y = (_local14.position.y + ((_local20.col1.y * _local25.x) + (_local20.col2.y * _local25.y))); var _local34:Number = ((_local31.x * _local32.x) + (_local31.y * _local32.y)); var _local35:Number = (((-(_local29.x) * _local32.x) - (_local29.y * _local32.y)) + _local7); var _local36:Number = (((_local29.x * _local33.x) + (_local29.y * _local33.y)) + _local7); var _local37:Array = s_clipPoints1; var _local38:Array = s_clipPoints2; _local39 = ClipSegmentToLine(_local37, _local21, _local30, _local35); if (_local39 < 2){ return; }; _local39 = ClipSegmentToLine(_local38, _local37, _local29, _local36); if (_local39 < 2){ return; }; _arg1.m_localPlaneNormal.SetV(_local27); _arg1.m_localPoint.SetV(_local28); var _local40:int; var _local41:int; while (_local41 < b2Settings.b2_maxManifoldPoints) { _local6 = _local38[_local41]; _local42 = (((_local31.x * _local6.v.x) + (_local31.y * _local6.v.y)) - _local34); if (_local42 <= _local7){ _local43 = _arg1.m_points[_local40]; _local20 = _local15.R; _local44 = (_local6.v.x - _local15.position.x); _local45 = (_local6.v.y - _local15.position.y); _local43.m_localPoint.x = ((_local44 * _local20.col1.x) + (_local45 * _local20.col1.y)); _local43.m_localPoint.y = ((_local44 * _local20.col2.x) + (_local45 * _local20.col2.y)); _local43.m_id.Set(_local6.id); _local43.m_id.features.flip = _local17; _local40++; }; _local41++; }; _arg1.m_pointCount = _local40; } public static function CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2Transform, _arg4:b2CircleShape, _arg5:b2Transform):void{ var _local6:b2Mat22; var _local7:b2Vec2; _arg1.m_pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_p; 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_p; 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 + _arg4.m_radius); if (_local14 > (_local15 * _local15)){ return; }; _arg1.m_type = b2Manifold.e_circles; _arg1.m_localPoint.SetV(_arg2.m_p); _arg1.m_localPlaneNormal.SetZero(); _arg1.m_pointCount = 1; _arg1.m_points[0].m_localPoint.SetV(_arg4.m_p); _arg1.m_points[0].m_id.key = 0; } public static function CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2Transform, _arg4:b2CircleShape, _arg5:b2Transform):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 _local31:Number; var _local32:Number; var _local33:Number; _arg1.m_pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_p; 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 = (_arg2.m_radius + _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]; _local31 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local31 > _local20){ return; }; if (_local31 > _local19){ _local19 = _local31; _local18 = _local24; }; _local24++; }; var _local25:int = _local18; var _local26:int = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; var _local27:b2Vec2 = _local22[_local25]; var _local28:b2Vec2 = _local22[_local26]; if (_local19 < Number.MIN_VALUE){ _arg1.m_pointCount = 1; _arg1.m_type = b2Manifold.e_faceA; _arg1.m_localPlaneNormal.SetV(_local23[_local18]); _arg1.m_localPoint.x = (0.5 * (_local27.x + _local28.x)); _arg1.m_localPoint.y = (0.5 * (_local27.y + _local28.y)); _arg1.m_points[0].m_localPoint.SetV(_arg4.m_p); _arg1.m_points[0].m_id.key = 0; return; }; var _local29:Number = (((_local15 - _local27.x) * (_local28.x - _local27.x)) + ((_local16 - _local27.y) * (_local28.y - _local27.y))); var _local30:Number = (((_local15 - _local28.x) * (_local27.x - _local28.x)) + ((_local16 - _local28.y) * (_local27.y - _local28.y))); if (_local29 <= 0){ if ((((_local15 - _local27.x) * (_local15 - _local27.x)) + ((_local16 - _local27.y) * (_local16 - _local27.y))) > (_local20 * _local20)){ return; }; _arg1.m_pointCount = 1; _arg1.m_type = b2Manifold.e_faceA; _arg1.m_localPlaneNormal.x = (_local15 - _local27.x); _arg1.m_localPlaneNormal.y = (_local16 - _local27.y); _arg1.m_localPlaneNormal.Normalize(); _arg1.m_localPoint.SetV(_local27); _arg1.m_points[0].m_localPoint.SetV(_arg4.m_p); _arg1.m_points[0].m_id.key = 0; } else { if (_local30 <= 0){ if ((((_local15 - _local28.x) * (_local15 - _local28.x)) + ((_local16 - _local28.y) * (_local16 - _local28.y))) > (_local20 * _local20)){ return; }; _arg1.m_pointCount = 1; _arg1.m_type = b2Manifold.e_faceA; _arg1.m_localPlaneNormal.x = (_local15 - _local28.x); _arg1.m_localPlaneNormal.y = (_local16 - _local28.y); _arg1.m_localPlaneNormal.Normalize(); _arg1.m_localPoint.SetV(_local28); _arg1.m_points[0].m_localPoint.SetV(_arg4.m_p); _arg1.m_points[0].m_id.key = 0; } else { _local32 = (0.5 * (_local27.x + _local28.x)); _local33 = (0.5 * (_local27.y + _local28.y)); _local19 = (((_local15 - _local32) * _local23[_local25].x) + ((_local16 - _local33) * _local23[_local25].y)); if (_local19 > _local20){ return; }; _arg1.m_pointCount = 1; _arg1.m_type = b2Manifold.e_faceA; _arg1.m_localPlaneNormal.x = _local23[_local25].x; _arg1.m_localPlaneNormal.y = _local23[_local25].y; _arg1.m_localPlaneNormal.Normalize(); _arg1.m_localPoint.Set(_local32, _local33); _arg1.m_points[0].m_localPoint.SetV(_arg4.m_p); _arg1.m_points[0].m_id.key = 0; }; }; } public static function TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2 = _arg2.lowerBound; var _local4:b2Vec2 = _arg1.upperBound; var _local5:Number = (_local3.x - _local4.x); var _local6:Number = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; var _local7:Number = (_local3.x - _local4.x); var _local8:Number = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } } }//package Box2D.Collision
Section 8
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { import Box2D.Common.*; public class b2ContactID { public var features:Features; b2internal var _key:uint; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID = new b2ContactID(); _local1.key = key; return (_local1); } public function get key():uint{ return (_key); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceEdge = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } } }//package Box2D.Collision
Section 9
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2ContactPoint { public var shape1:b2Shape; public var shape2:b2Shape; public var position:b2Vec2; public var velocity:b2Vec2; public var normal:b2Vec2; public var separation:Number; public var friction:Number; public var restitution:Number; public var id:b2ContactID; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 10
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Distance { private static var b2_gjkCalls:int; private static var b2_gjkIters:int; private static var b2_gjkMaxIters:int; private static var s_simplex:b2Simplex = new b2Simplex(); private static var s_saveA:Array = new Array(3); private static var s_saveB:Array = new Array(3); public static function Distance(_arg1:b2DistanceOutput, _arg2:b2SimplexCache, _arg3:b2DistanceInput):void{ var _local17:int; var _local18:b2Vec2; var _local20:b2Vec2; var _local21:b2SimplexVertex; var _local22:Boolean; var _local23:Number; var _local24:Number; var _local25:b2Vec2; b2_gjkCalls++; var _local4:b2DistanceProxy = _arg3.proxyA; var _local5:b2DistanceProxy = _arg3.proxyB; var _local6:b2Transform = _arg3.transformA; var _local7:b2Transform = _arg3.transformB; var _local8:b2Simplex = s_simplex; _local8.ReadCache(_arg2, _local4, _local6, _local5, _local7); var _local9:Array = _local8.m_vertices; var _local10 = 20; var _local11:Array = s_saveA; var _local12:Array = s_saveB; var _local13:int; var _local14:b2Vec2 = _local8.GetClosestPoint(); var _local15:Number = _local14.LengthSquared(); var _local16:Number = _local15; var _local19:int; while (_local19 < _local10) { _local13 = _local8.m_count; _local17 = 0; while (_local17 < _local13) { _local11[_local17] = _local9[_local17].indexA; _local12[_local17] = _local9[_local17].indexB; _local17++; }; switch (_local8.m_count){ case 1: break; case 2: _local8.Solve2(); break; case 3: _local8.Solve3(); break; default: b2Settings.b2Assert(false); }; if (_local8.m_count == 3){ break; }; _local18 = _local8.GetClosestPoint(); _local16 = _local18.LengthSquared(); if (_local16 > _local15){ }; _local15 = _local16; _local20 = _local8.GetSearchDirection(); if (_local20.LengthSquared() < (Number.MIN_VALUE * Number.MIN_VALUE)){ break; }; _local21 = _local9[_local8.m_count]; _local21.indexA = _local4.GetSupport(b2Math.MulTMV(_local6.R, _local20.GetNegative())); _local21.wA = b2Math.MulX(_local6, _local4.GetVertex(_local21.indexA)); _local21.indexB = _local5.GetSupport(b2Math.MulTMV(_local7.R, _local20)); _local21.wB = b2Math.MulX(_local7, _local5.GetVertex(_local21.indexB)); _local21.w = b2Math.SubtractVV(_local21.wB, _local21.wA); _local19++; b2_gjkIters++; _local22 = false; _local17 = 0; while (_local17 < _local13) { if ((((_local21.indexA == _local11[_local17])) && ((_local21.indexB == _local12[_local17])))){ _local22 = true; break; }; _local17++; }; if (_local22){ break; }; _local8.m_count++; }; b2_gjkMaxIters = b2Math.Max(b2_gjkMaxIters, _local19); _local8.GetWitnessPoints(_arg1.pointA, _arg1.pointB); _arg1.distance = b2Math.SubtractVV(_arg1.pointA, _arg1.pointB).Length(); _arg1.iterations = _local19; _local8.WriteCache(_arg2); if (_arg3.useRadii){ _local23 = _local4.m_radius; _local24 = _local5.m_radius; if ((((_arg1.distance > (_local23 + _local24))) && ((_arg1.distance > Number.MIN_VALUE)))){ _arg1.distance = (_arg1.distance - (_local23 + _local24)); _local25 = b2Math.SubtractVV(_arg1.pointB, _arg1.pointA); _local25.Normalize(); _arg1.pointA.x = (_arg1.pointA.x + (_local23 * _local25.x)); _arg1.pointA.y = (_arg1.pointA.y + (_local23 * _local25.y)); _arg1.pointB.x = (_arg1.pointB.x - (_local24 * _local25.x)); _arg1.pointB.y = (_arg1.pointB.y - (_local24 * _local25.y)); } else { _local18 = new b2Vec2(); _local18.x = (0.5 * (_arg1.pointA.x + _arg1.pointB.x)); _local18.y = (0.5 * (_arg1.pointA.y + _arg1.pointB.y)); _arg1.pointA.x = (_arg1.pointB.x = _local18.x); _arg1.pointA.y = (_arg1.pointB.y = _local18.y); _arg1.distance = 0; }; }; } } }//package Box2D.Collision
Section 11
//b2DistanceInput (Box2D.Collision.b2DistanceInput) package Box2D.Collision { import Box2D.Common.Math.*; public class b2DistanceInput { public var proxyA:b2DistanceProxy; public var proxyB:b2DistanceProxy; public var transformA:b2Transform; public var transformB:b2Transform; public var useRadii:Boolean; } }//package Box2D.Collision
Section 12
//b2DistanceOutput (Box2D.Collision.b2DistanceOutput) package Box2D.Collision { import Box2D.Common.Math.*; public class b2DistanceOutput { public var pointA:b2Vec2; public var pointB:b2Vec2; public var distance:Number; public var iterations:int; public function b2DistanceOutput(){ pointA = new b2Vec2(); pointB = new b2Vec2(); super(); } } }//package Box2D.Collision
Section 13
//b2DistanceProxy (Box2D.Collision.b2DistanceProxy) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2DistanceProxy { public var m_vertices:Array; public var m_count:int; public var m_radius:Number; public function Set(_arg1:b2Shape):void{ var _local2:b2CircleShape; var _local3:b2PolygonShape; switch (_arg1.GetType()){ case b2Shape.e_circleShape: _local2 = (_arg1 as b2CircleShape); m_vertices = new Array(1, true); m_vertices[0] = _local2.m_p; m_count = 1; m_radius = _local2.m_radius; break; case b2Shape.e_polygonShape: _local3 = (_arg1 as b2PolygonShape); m_vertices = _local3.m_vertices; m_count = _local3.m_vertexCount; m_radius = _local3.m_radius; break; default: b2Settings.b2Assert(false); }; } public function GetSupport(_arg1:b2Vec2):Number{ var _local5:Number; var _local2:int; var _local3:Number = ((m_vertices[0].x * _arg1.x) + (m_vertices[0].y * _arg1.y)); var _local4 = 1; while (_local4 < m_count) { _local5 = ((m_vertices[_local4].x * _arg1.x) + (m_vertices[_local4].y * _arg1.y)); if (_local5 > _local3){ _local2 = _local4; _local3 = _local5; }; _local4++; }; return (_local2); } public function GetSupportVertex(_arg1:b2Vec2):b2Vec2{ var _local5:Number; var _local2:int; var _local3:Number = ((m_vertices[0].x * _arg1.x) + (m_vertices[0].y * _arg1.y)); var _local4 = 1; while (_local4 < m_count) { _local5 = ((m_vertices[_local4].x * _arg1.x) + (m_vertices[_local4].y * _arg1.y)); if (_local5 > _local3){ _local2 = _local4; _local3 = _local5; }; _local4++; }; return (m_vertices[_local2]); } public function GetVertexCount():int{ return (m_count); } public function GetVertex(_arg1:int):b2Vec2{ b2Settings.b2Assert((((0 <= _arg1)) && ((_arg1 < m_count)))); return (m_vertices[_arg1]); } } }//package Box2D.Collision
Section 14
//b2DynamicTree (Box2D.Collision.b2DynamicTree) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2DynamicTree { private var m_root:b2DynamicTreeNode; private var m_freeList:b2DynamicTreeNode; private var m_path:uint; private var m_insertionCount:int; public function b2DynamicTree(){ m_root = null; m_freeList = null; m_path = 0; m_insertionCount = 0; } public function CreateProxy(_arg1:b2AABB, _arg2):b2DynamicTreeNode{ var _local3:b2DynamicTreeNode; var _local4:Number; var _local5:Number; _local3 = AllocateNode(); _local4 = b2Settings.b2_aabbExtension; _local5 = b2Settings.b2_aabbExtension; _local3.aabb.lowerBound.x = (_arg1.lowerBound.x - _local4); _local3.aabb.lowerBound.y = (_arg1.lowerBound.y - _local5); _local3.aabb.upperBound.x = (_arg1.upperBound.x + _local4); _local3.aabb.upperBound.y = (_arg1.upperBound.y + _local5); _local3.userData = _arg2; InsertLeaf(_local3); return (_local3); } public function DestroyProxy(_arg1:b2DynamicTreeNode):void{ RemoveLeaf(_arg1); FreeNode(_arg1); } public function MoveProxy(_arg1:b2DynamicTreeNode, _arg2:b2AABB, _arg3:b2Vec2):Boolean{ var _local4:Number; var _local5:Number; b2Settings.b2Assert(_arg1.IsLeaf()); if (_arg1.aabb.Contains(_arg2)){ return (false); }; RemoveLeaf(_arg1); _local4 = (b2Settings.b2_aabbExtension + (b2Settings.b2_aabbMultiplier * ((_arg3.x > 0)) ? _arg3.x : -(_arg3.x))); _local5 = (b2Settings.b2_aabbExtension + (b2Settings.b2_aabbMultiplier * ((_arg3.y > 0)) ? _arg3.y : -(_arg3.y))); _arg1.aabb.lowerBound.x = (_arg2.lowerBound.x - _local4); _arg1.aabb.lowerBound.y = (_arg2.lowerBound.y - _local5); _arg1.aabb.upperBound.x = (_arg2.upperBound.x + _local4); _arg1.aabb.upperBound.y = (_arg2.upperBound.y + _local5); InsertLeaf(_arg1); return (true); } public function Rebalance(_arg1:int):void{ var _local3:b2DynamicTreeNode; var _local4:uint; if (m_root == null){ return; }; var _local2:int; while (_local2 < _arg1) { _local3 = m_root; _local4 = 0; while (_local3.IsLeaf() == false) { _local3 = (((m_path >> _local4) & 1)) ? _local3.child2 : _local3.child1; _local4 = ((_local4 + 1) & 31); }; m_path++; RemoveLeaf(_local3); InsertLeaf(_local3); _local2++; }; } public function GetFatAABB(_arg1:b2DynamicTreeNode):b2AABB{ return (_arg1.aabb); } public function GetUserData(_arg1:b2DynamicTreeNode){ return (_arg1.userData); } public function Query(_arg1:Function, _arg2:b2AABB):void{ var _local5:b2DynamicTreeNode; var _local6:Boolean; if (m_root == null){ return; }; var _local3:Array = new Array(); var _local4:int; var _temp1 = _local4; _local4 = (_local4 + 1); var _local7 = _temp1; _local3[_local7] = m_root; while (_local4 > 0) { --_local4; _local5 = _local3[_local4]; if (_local5.aabb.TestOverlap(_arg2)){ if (_local5.IsLeaf()){ _local6 = _arg1(_local5); if (!_local6){ return; }; } else { var _temp2 = _local4; _local4 = (_local4 + 1); var _local8 = _temp2; _local3[_local8] = _local5.child1; var _temp3 = _local4; _local4 = (_local4 + 1); var _local9 = _temp3; _local3[_local9] = _local5.child2; }; }; }; } public function RayCast(_arg1:Function, _arg2:b2RayCastInput):void{ var _local3:b2Vec2; var _local9:b2AABB; var _local10:Number; var _local11:Number; var _local14:b2DynamicTreeNode; var _local15:b2Vec2; var _local16:b2Vec2; var _local17:Number; var _local18:b2RayCastInput; if (m_root == null){ return; }; _local3 = _arg2.p1; var _local4:b2Vec2 = _arg2.p2; var _local5:b2Vec2 = b2Math.SubtractVV(_local3, _local4); _local5.Normalize(); var _local6:b2Vec2 = b2Math.CrossFV(1, _local5); var _local7:b2Vec2 = b2Math.AbsV(_local6); var _local8:Number = _arg2.maxFraction; _local9 = new b2AABB(); _local10 = (_local3.x + (_local8 * (_local4.x - _local3.x))); _local11 = (_local3.y + (_local8 * (_local4.y - _local3.y))); _local9.lowerBound.x = Math.min(_local3.x, _local10); _local9.lowerBound.y = Math.min(_local3.y, _local11); _local9.upperBound.x = Math.max(_local3.x, _local10); _local9.upperBound.y = Math.max(_local3.y, _local11); var _local12:Array = new Array(); var _local13:int; var _temp1 = _local13; _local13 = (_local13 + 1); var _local19 = _temp1; _local12[_local19] = m_root; while (_local13 > 0) { --_local13; _local14 = _local12[_local13]; if (_local14.aabb.TestOverlap(_local9) == false){ } else { _local15 = _local14.aabb.GetCenter(); _local16 = _local14.aabb.GetExtents(); _local17 = ((Math.abs(((_local6.x * (_local3.x - _local15.x)) + (_local6.y * (_local3.y - _local15.y)))) - (_local7.x * _local16.x)) - (_local7.y * _local16.y)); if (_local17 > 0){ } else { if (_local14.IsLeaf()){ _local18 = new b2RayCastInput(); _local18.p1 = _arg2.p1; _local18.p2 = _arg2.p2; _local18.maxFraction = _arg2.maxFraction; _local8 = _arg1(_local18, _local14); if (_local8 == 0){ return; }; _local10 = (_local3.x + (_local8 * (_local4.x - _local3.x))); _local11 = (_local3.y + (_local8 * (_local4.y - _local3.y))); _local9.lowerBound.x = Math.min(_local3.x, _local10); _local9.lowerBound.y = Math.min(_local3.y, _local11); _local9.upperBound.x = Math.max(_local3.x, _local10); _local9.upperBound.y = Math.max(_local3.y, _local11); } else { var _temp2 = _local13; _local13 = (_local13 + 1); var _local20 = _temp2; _local12[_local20] = _local14.child1; var _temp3 = _local13; _local13 = (_local13 + 1); var _local21 = _temp3; _local12[_local21] = _local14.child2; }; }; }; }; } private function AllocateNode():b2DynamicTreeNode{ var _local1:b2DynamicTreeNode; if (m_freeList){ _local1 = m_freeList; m_freeList = _local1.parent; _local1.parent = null; _local1.child1 = null; _local1.child2 = null; return (_local1); }; return (new b2DynamicTreeNode()); } private function FreeNode(_arg1:b2DynamicTreeNode):void{ _arg1.parent = m_freeList; m_freeList = _arg1; } private function InsertLeaf(_arg1:b2DynamicTreeNode):void{ var _local6:b2DynamicTreeNode; var _local7:b2DynamicTreeNode; var _local8:Number; var _local9:Number; m_insertionCount++; if (m_root == null){ m_root = _arg1; m_root.parent = null; return; }; var _local2:b2Vec2 = _arg1.aabb.GetCenter(); var _local3:b2DynamicTreeNode = m_root; if (_local3.IsLeaf() == false){ do { _local6 = _local3.child1; _local7 = _local3.child2; _local8 = (Math.abs((((_local6.aabb.lowerBound.x + _local6.aabb.upperBound.x) / 2) - _local2.x)) + Math.abs((((_local6.aabb.lowerBound.y + _local6.aabb.upperBound.y) / 2) - _local2.y))); _local9 = (Math.abs((((_local7.aabb.lowerBound.x + _local7.aabb.upperBound.x) / 2) - _local2.x)) + Math.abs((((_local7.aabb.lowerBound.y + _local7.aabb.upperBound.y) / 2) - _local2.y))); if (_local8 < _local9){ _local3 = _local6; } else { _local3 = _local7; }; } while (_local3.IsLeaf() == false); }; var _local4:b2DynamicTreeNode = _local3.parent; var _local5:b2DynamicTreeNode = AllocateNode(); _local5.parent = _local4; _local5.userData = null; _local5.aabb.Combine(_arg1.aabb, _local3.aabb); if (_local4){ if (_local3.parent.child1 == _local3){ _local4.child1 = _local5; } else { _local4.child2 = _local5; }; _local5.child1 = _local3; _local5.child2 = _arg1; _local3.parent = _local5; _arg1.parent = _local5; do { } while (!(_local4.aabb.Contains(_local5.aabb))); } else { _local5.child1 = _local3; _local5.child2 = _arg1; _local3.parent = _local5; _arg1.parent = _local5; m_root = _local5; }; } private function RemoveLeaf(_arg1:b2DynamicTreeNode):void{ var _local4:b2DynamicTreeNode; var _local5:b2AABB; if (_arg1 == m_root){ m_root = null; return; }; var _local2:b2DynamicTreeNode = _arg1.parent; var _local3:b2DynamicTreeNode = _local2.parent; if (_local2.child1 == _arg1){ _local4 = _local2.child2; } else { _local4 = _local2.child1; }; if (_local3){ if (_local3.child1 == _local2){ _local3.child1 = _local4; } else { _local3.child2 = _local4; }; _local4.parent = _local3; FreeNode(_local2); while (_local3) { _local5 = _local3.aabb; _local3.aabb = b2AABB.Combine(_local3.child1.aabb, _local3.child2.aabb); if (_local5.Contains(_local3.aabb)){ break; }; _local3 = _local3.parent; }; } else { m_root = _local4; _local4.parent = null; FreeNode(_local2); }; } } }//package Box2D.Collision
Section 15
//b2DynamicTreeBroadPhase (Box2D.Collision.b2DynamicTreeBroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; public class b2DynamicTreeBroadPhase implements IBroadPhase { private var m_tree:b2DynamicTree; private var m_proxyCount:int; private var m_moveBuffer:Array; private var m_pairBuffer:Array; private var m_pairCount:int;// = 0 public function b2DynamicTreeBroadPhase(){ m_tree = new b2DynamicTree(); m_moveBuffer = new Array(); m_pairBuffer = new Array(); super(); } public function CreateProxy(_arg1:b2AABB, _arg2){ var _local3:b2DynamicTreeNode = m_tree.CreateProxy(_arg1, _arg2); m_proxyCount++; BufferMove(_local3); return (_local3); } public function DestroyProxy(_arg1):void{ UnBufferMove(_arg1); m_proxyCount--; m_tree.DestroyProxy(_arg1); } public function MoveProxy(_arg1, _arg2:b2AABB, _arg3:b2Vec2):void{ var _local4:Boolean = m_tree.MoveProxy(_arg1, _arg2, _arg3); if (_local4){ BufferMove(_arg1); }; } public function TestOverlap(_arg1, _arg2):Boolean{ var _local3:b2AABB = m_tree.GetFatAABB(_arg1); var _local4:b2AABB = m_tree.GetFatAABB(_arg2); return (_local3.TestOverlap(_local4)); } public function GetUserData(_arg1){ return (m_tree.GetUserData(_arg1)); } public function GetFatAABB(_arg1):b2AABB{ return (m_tree.GetFatAABB(_arg1)); } public function GetProxyCount():int{ return (m_proxyCount); } public function UpdatePairs(_arg1:Function):void{ var queryProxy:b2DynamicTreeNode; var i:int; var fatAABB:b2AABB; var primaryPair:b2DynamicTreePair; var userDataA:*; var userDataB:*; var pair:b2DynamicTreePair; var callback = _arg1; m_pairCount = 0; for each (queryProxy in m_moveBuffer) { var QueryCallback:Function = function (_arg1:b2DynamicTreeNode):Boolean{ if (_arg1 == queryProxy){ return (true); }; if (m_pairCount == m_pairBuffer.length){ m_pairBuffer[m_pairCount] = new b2DynamicTreePair(); }; var _local2:b2DynamicTreePair = m_pairBuffer[m_pairCount]; _local2.proxyA = ((_arg1 < queryProxy)) ? _arg1 : queryProxy; _local2.proxyB = ((_arg1 >= queryProxy)) ? _arg1 : queryProxy; m_pairCount++; return (true); }; fatAABB = m_tree.GetFatAABB(queryProxy); m_tree.Query(QueryCallback, fatAABB); }; m_moveBuffer.length = 0; i = 0; while (i < m_pairCount) { primaryPair = m_pairBuffer[i]; userDataA = m_tree.GetUserData(primaryPair.proxyA); userDataB = m_tree.GetUserData(primaryPair.proxyB); callback(userDataA, userDataB); i = (i + 1); while (i < m_pairCount) { pair = m_pairBuffer[i]; if (((!((pair.proxyA == primaryPair.proxyA))) || (!((pair.proxyB == primaryPair.proxyB))))){ break; }; i = (i + 1); }; }; } public function Query(_arg1:Function, _arg2:b2AABB):void{ m_tree.Query(_arg1, _arg2); } public function RayCast(_arg1:Function, _arg2:b2RayCastInput):void{ m_tree.RayCast(_arg1, _arg2); } public function Validate():void{ } public function Rebalance(_arg1:int):void{ m_tree.Rebalance(_arg1); } private function BufferMove(_arg1:b2DynamicTreeNode):void{ m_moveBuffer[m_moveBuffer.length] = _arg1; } private function UnBufferMove(_arg1:b2DynamicTreeNode):void{ var _local2:int = m_moveBuffer.indexOf(_arg1); m_moveBuffer.splice(_local2, 1); } private function ComparePairs(_arg1:b2DynamicTreePair, _arg2:b2DynamicTreePair):int{ return (0); } } }//package Box2D.Collision
Section 16
//b2DynamicTreeNode (Box2D.Collision.b2DynamicTreeNode) package Box2D.Collision { public class b2DynamicTreeNode { public var userData; public var aabb:b2AABB; public var parent:b2DynamicTreeNode; public var child1:b2DynamicTreeNode; public var child2:b2DynamicTreeNode; public function b2DynamicTreeNode(){ aabb = new b2AABB(); super(); } public function IsLeaf():Boolean{ return ((child1 == null)); } } }//package Box2D.Collision
Section 17
//b2DynamicTreePair (Box2D.Collision.b2DynamicTreePair) package Box2D.Collision { public class b2DynamicTreePair { public var proxyA:b2DynamicTreeNode; public var proxyB:b2DynamicTreeNode; } }//package Box2D.Collision
Section 18
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var m_points:Array; public var m_localPlaneNormal:b2Vec2; public var m_localPoint:b2Vec2; public var m_type:int; public var m_pointCount:int;// = 0 public static const e_circles:int = 1; public static const e_faceA:int = 2; public static const e_faceB:int = 4; public function b2Manifold(){ m_points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { m_points[_local1] = new b2ManifoldPoint(); _local1++; }; m_localPlaneNormal = new b2Vec2(); m_localPoint = new b2Vec2(); } public function Reset():void{ var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { (m_points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; m_localPlaneNormal.SetZero(); m_localPoint.SetZero(); m_type = 0; m_pointCount = 0; } public function Set(_arg1:b2Manifold):void{ m_pointCount = _arg1.m_pointCount; var _local2:int; while (_local2 < b2Settings.b2_maxManifoldPoints) { (m_points[_local2] as b2ManifoldPoint).Set(_arg1.m_points[_local2]); _local2++; }; m_localPlaneNormal.SetV(_arg1.m_localPlaneNormal); m_localPoint.SetV(_arg1.m_localPoint); m_type = _arg1.m_type; } public function Copy():b2Manifold{ var _local1:b2Manifold = new b2Manifold(); _local1.Set(this); return (_local1); } } }//package Box2D.Collision
Section 19
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var m_localPoint:b2Vec2; public var m_normalImpulse:Number; public var m_tangentImpulse:Number; public var m_id:b2ContactID; public function b2ManifoldPoint(){ m_localPoint = new b2Vec2(); m_id = new b2ContactID(); super(); Reset(); } public function Reset():void{ m_localPoint.SetZero(); m_normalImpulse = 0; m_tangentImpulse = 0; m_id.key = 0; } public function Set(_arg1:b2ManifoldPoint):void{ m_localPoint.SetV(_arg1.m_localPoint); m_normalImpulse = _arg1.m_normalImpulse; m_tangentImpulse = _arg1.m_tangentImpulse; m_id.Set(_arg1.m_id); } } }//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
//b2RayCastInput (Box2D.Collision.b2RayCastInput) package Box2D.Collision { import Box2D.Common.Math.*; public class b2RayCastInput { public var p1:b2Vec2; public var p2:b2Vec2; public var maxFraction:Number; public function b2RayCastInput(_arg1:b2Vec2=null, _arg2:b2Vec2=null, _arg3:Number=1){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); if (_arg1){ this.p1.SetV(_arg1); }; if (_arg2){ this.p2.SetV(_arg2); }; this.maxFraction = _arg3; } } }//package Box2D.Collision
Section 22
//b2RayCastOutput (Box2D.Collision.b2RayCastOutput) package Box2D.Collision { import Box2D.Common.Math.*; public class b2RayCastOutput { public var normal:b2Vec2; public var fraction:Number; public function b2RayCastOutput(){ normal = new b2Vec2(); super(); } } }//package Box2D.Collision
Section 23
//b2SeparationFunction (Box2D.Collision.b2SeparationFunction) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; class b2SeparationFunction { public var m_proxyA:b2DistanceProxy; public var m_proxyB:b2DistanceProxy; public var m_type:int; public var m_localPoint:b2Vec2; public var m_axis:b2Vec2; public static const e_points:int = 1; public static const e_faceA:int = 2; public static const e_faceB:int = 4; function b2SeparationFunction(){ m_localPoint = new b2Vec2(); m_axis = new b2Vec2(); super(); } public function Initialize(_arg1:b2SimplexCache, _arg2:b2DistanceProxy, _arg3:b2Transform, _arg4:b2DistanceProxy, _arg5:b2Transform):void{ var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:b2Mat22; var _local20:b2Vec2; var _local21:Number; var _local22:Number; var _local23:b2Vec2; var _local24:b2Vec2; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:Number; var _local28:Number; var _local29:b2Vec2; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; m_proxyA = _arg2; m_proxyB = _arg4; var _local6:int = _arg1.count; b2Settings.b2Assert((((0 < _local6)) && ((_local6 < 3)))); if (_local6 == 1){ m_type = e_points; _local7 = m_proxyA.GetVertex(_arg1.indexA[0]); _local10 = m_proxyB.GetVertex(_arg1.indexB[0]); _local20 = _local7; _local19 = _arg3.R; _local13 = (_arg3.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local14 = (_arg3.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local20 = _local10; _local19 = _arg5.R; _local15 = (_arg5.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local16 = (_arg5.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); m_axis.x = (_local15 - _local13); m_axis.y = (_local16 - _local14); m_axis.Normalize(); } else { if (_arg1.indexB[0] == _arg1.indexB[1]){ m_type = e_faceA; _local8 = m_proxyA.GetVertex(_arg1.indexA[0]); _local9 = m_proxyA.GetVertex(_arg1.indexA[1]); _local10 = m_proxyB.GetVertex(_arg1.indexB[0]); m_localPoint.x = (0.5 * (_local8.x + _local9.x)); m_localPoint.y = (0.5 * (_local8.y + _local9.y)); m_axis = b2Math.CrossVF(b2Math.SubtractVV(_local9, _local8), 1); m_axis.Normalize(); _local20 = m_axis; _local19 = _arg3.R; _local17 = ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y)); _local18 = ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y)); _local20 = m_localPoint; _local19 = _arg3.R; _local13 = (_arg3.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local14 = (_arg3.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local20 = _local10; _local19 = _arg5.R; _local15 = (_arg5.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local16 = (_arg5.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local21 = (((_local15 - _local13) * _local17) + ((_local16 - _local14) * _local18)); if (_local21 < 0){ m_axis.NegativeSelf(); }; } else { if (_arg1.indexA[0] == _arg1.indexA[0]){ m_type = e_faceB; _local11 = m_proxyB.GetVertex(_arg1.indexB[0]); _local12 = m_proxyB.GetVertex(_arg1.indexB[1]); _local7 = m_proxyA.GetVertex(_arg1.indexA[0]); m_localPoint.x = (0.5 * (_local11.x + _local12.x)); m_localPoint.y = (0.5 * (_local11.y + _local12.y)); m_axis = b2Math.CrossVF(b2Math.SubtractVV(_local12, _local11), 1); m_axis.Normalize(); _local20 = m_axis; _local19 = _arg5.R; _local17 = ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y)); _local18 = ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y)); _local20 = m_localPoint; _local19 = _arg5.R; _local15 = (_arg5.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local16 = (_arg5.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local20 = _local7; _local19 = _arg3.R; _local13 = (_arg3.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local14 = (_arg3.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local21 = (((_local13 - _local15) * _local17) + ((_local14 - _local16) * _local18)); if (_local21 < 0){ m_axis.NegativeSelf(); }; } else { _local8 = m_proxyA.GetVertex(_arg1.indexA[0]); _local9 = m_proxyA.GetVertex(_arg1.indexA[1]); _local11 = m_proxyB.GetVertex(_arg1.indexB[0]); _local12 = m_proxyB.GetVertex(_arg1.indexB[1]); _local23 = b2Math.MulX(_arg3, _local7); _local24 = b2Math.MulMV(_arg3.R, b2Math.SubtractVV(_local9, _local8)); _local25 = b2Math.MulX(_arg5, _local10); _local26 = b2Math.MulMV(_arg5.R, b2Math.SubtractVV(_local12, _local11)); _local27 = ((_local24.x * _local24.x) + (_local24.y * _local24.y)); _local28 = ((_local26.x * _local26.x) + (_local26.y * _local26.y)); _local29 = b2Math.SubtractVV(_local26, _local24); _local30 = ((_local24.x * _local29.x) + (_local24.y * _local29.y)); _local31 = ((_local26.x * _local29.x) + (_local26.y * _local29.y)); _local32 = ((_local24.x * _local26.x) + (_local24.y * _local26.y)); _local33 = ((_local27 * _local28) - (_local32 * _local32)); _local21 = 0; if (_local33 != 0){ _local21 = b2Math.Clamp((((_local32 * _local31) - (_local30 * _local28)) / _local33), 0, 1); }; _local34 = (((_local32 * _local21) + _local31) / _local28); if (_local34 < 0){ _local34 = 0; _local21 = b2Math.Clamp(((_local32 - _local30) / _local27), 0, 1); }; _local7 = new b2Vec2(); _local7.x = (_local8.x + (_local21 * (_local9.x - _local8.x))); _local7.y = (_local8.y + (_local21 * (_local9.y - _local8.y))); _local10 = new b2Vec2(); _local10.x = (_local11.x + (_local21 * (_local12.x - _local11.x))); _local10.y = (_local11.y + (_local21 * (_local12.y - _local11.y))); if ((((_local21 == 0)) || ((_local21 == 1)))){ m_type = e_faceB; m_axis = b2Math.CrossVF(b2Math.SubtractVV(_local12, _local11), 1); m_localPoint = _local10; _local20 = m_axis; _local19 = _arg5.R; _local17 = ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y)); _local18 = ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y)); _local20 = m_localPoint; _local19 = _arg5.R; _local15 = (_arg5.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local16 = (_arg5.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local20 = _local7; _local19 = _arg3.R; _local13 = (_arg3.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local14 = (_arg3.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local22 = (((_local13 - _local15) * _local17) + ((_local14 - _local16) * _local18)); if (_local21 < 0){ m_axis.NegativeSelf(); }; } else { m_type = e_faceA; m_axis = b2Math.CrossVF(b2Math.SubtractVV(_local9, _local8), 1); m_localPoint = _local7; _local20 = m_axis; _local19 = _arg3.R; _local17 = ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y)); _local18 = ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y)); _local20 = m_localPoint; _local19 = _arg3.R; _local13 = (_arg3.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local14 = (_arg3.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local20 = _local10; _local19 = _arg5.R; _local15 = (_arg5.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local16 = (_arg5.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local22 = (((_local15 - _local13) * _local17) + ((_local16 - _local14) * _local18)); if (_local21 < 0){ m_axis.NegativeSelf(); }; }; }; }; }; } public function Evaluate(_arg1:b2Transform, _arg2:b2Transform):Number{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2Vec2; var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local10:b2Vec2; switch (m_type){ case e_points: _local3 = b2Math.MulTMV(_arg1.R, m_axis); _local4 = b2Math.MulTMV(_arg2.R, m_axis.GetNegative()); _local5 = m_proxyA.GetSupportVertex(_local3); _local6 = m_proxyB.GetSupportVertex(_local4); _local7 = b2Math.MulX(_arg1, _local5); _local8 = b2Math.MulX(_arg2, _local6); _local9 = (((_local8.x - _local7.x) * m_axis.x) + ((_local8.y - _local7.y) * m_axis.y)); return (_local9); case e_faceA: _local10 = b2Math.MulMV(_arg1.R, m_axis); _local7 = b2Math.MulX(_arg1, m_localPoint); _local4 = b2Math.MulTMV(_arg2.R, _local10.GetNegative()); _local6 = m_proxyB.GetSupportVertex(_local4); _local8 = b2Math.MulX(_arg2, _local6); _local9 = (((_local8.x - _local7.x) * _local10.x) + ((_local8.y - _local7.y) * _local10.y)); return (_local9); case e_faceB: _local10 = b2Math.MulMV(_arg2.R, m_axis); _local8 = b2Math.MulX(_arg2, m_localPoint); _local3 = b2Math.MulTMV(_arg1.R, _local10.GetNegative()); _local5 = m_proxyA.GetSupportVertex(_local3); _local7 = b2Math.MulX(_arg1, _local5); _local9 = (((_local7.x - _local8.x) * _local10.x) + ((_local7.y - _local8.y) * _local10.y)); return (_local9); default: b2Settings.b2Assert(false); return (0); }; } } }//package Box2D.Collision
Section 24
//b2Simplex (Box2D.Collision.b2Simplex) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; class b2Simplex { public var m_v1:b2SimplexVertex; public var m_v2:b2SimplexVertex; public var m_v3:b2SimplexVertex; public var m_vertices:Array; public var m_count:int; function b2Simplex(){ m_v1 = new b2SimplexVertex(); m_v2 = new b2SimplexVertex(); m_v3 = new b2SimplexVertex(); m_vertices = new Array(3); super(); m_vertices[0] = m_v1; m_vertices[1] = m_v2; m_vertices[2] = m_v3; } public function ReadCache(_arg1:b2SimplexCache, _arg2:b2DistanceProxy, _arg3:b2Transform, _arg4:b2DistanceProxy, _arg5:b2Transform):void{ var _local6:b2Vec2; var _local7:b2Vec2; var _local10:b2SimplexVertex; var _local11:Number; var _local12:Number; b2Settings.b2Assert((((0 <= _arg1.count)) && ((_arg1.count <= 3)))); m_count = _arg1.count; var _local8:Array = m_vertices; var _local9:int; while (_local9 < m_count) { _local10 = _local8[_local9]; _local10.indexA = _arg1.indexA[_local9]; _local10.indexB = _arg1.indexB[_local9]; _local6 = _arg2.GetVertex(_local10.indexA); _local7 = _arg4.GetVertex(_local10.indexB); _local10.wA = b2Math.MulX(_arg3, _local6); _local10.wB = b2Math.MulX(_arg5, _local6); _local10.w = b2Math.SubtractVV(_local10.wB, _local10.wA); _local10.a = 0; _local9++; }; if (m_count > 1){ _local11 = _arg1.metric; _local12 = GetMetric(); if ((((((_local12 < (0.5 * _local11))) || (((2 * _local11) < _local12)))) || ((_local12 < Number.MIN_VALUE)))){ m_count = 0; }; }; if (m_count == 0){ _local10 = _local8[0]; _local10.indexA = 0; _local10.indexB = 0; _local6 = _arg2.GetVertex(0); _local7 = _arg4.GetVertex(0); _local10.wA = b2Math.MulX(_arg3, _local6); _local10.wB = b2Math.MulX(_arg5, _local7); _local10.w = b2Math.SubtractVV(_local10.wB, _local10.wA); m_count = 1; }; } public function WriteCache(_arg1:b2SimplexCache):void{ _arg1.metric = GetMetric(); _arg1.count = uint(m_count); var _local2:Array = m_vertices; var _local3:int; while (_local3 < m_count) { _arg1.indexA[_local3] = uint(_local2[_local3].indexA); _arg1.indexB[_local3] = uint(_local2[_local3].indexB); _local3++; }; } public function GetSearchDirection():b2Vec2{ var _local1:b2Vec2; var _local2:Number; switch (m_count){ case 1: return (m_v1.w.GetNegative()); case 2: _local1 = b2Math.SubtractVV(m_v2.w, m_v1.w); _local2 = b2Math.CrossVV(_local1, m_v1.w.GetNegative()); if (_local2 > 0){ return (b2Math.CrossFV(1, _local1)); }; return (b2Math.CrossVF(_local1, 1)); default: b2Settings.b2Assert(false); return (new b2Vec2()); }; } public function GetClosestPoint():b2Vec2{ switch (m_count){ case 0: b2Settings.b2Assert(false); return (new b2Vec2()); case 1: return (m_v1.w); case 2: return (new b2Vec2(((m_v1.a * m_v1.w.x) + (m_v2.a * m_v2.w.x)), ((m_v1.a * m_v1.w.y) + (m_v2.a * m_v2.w.y)))); default: b2Settings.b2Assert(false); return (new b2Vec2()); }; } public function GetWitnessPoints(_arg1:b2Vec2, _arg2:b2Vec2):void{ switch (m_count){ case 0: b2Settings.b2Assert(false); break; case 1: _arg1.SetV(m_v1.wA); _arg2.SetV(m_v1.wB); break; case 2: _arg1.x = ((m_v1.a * m_v1.wA.x) + (m_v2.a * m_v2.wA.x)); _arg1.y = ((m_v1.a * m_v1.wA.y) + (m_v2.a * m_v2.wA.y)); _arg2.x = ((m_v1.a * m_v1.wB.x) + (m_v2.a * m_v2.wB.x)); _arg2.y = ((m_v1.a * m_v1.wB.y) + (m_v2.a * m_v2.wB.y)); break; case 3: _arg2.x = (_arg1.x = (((m_v1.a * m_v1.wA.x) + (m_v2.a * m_v2.wA.x)) + (m_v3.a * m_v3.wA.x))); _arg2.y = (_arg1.y = (((m_v1.a * m_v1.wA.y) + (m_v2.a * m_v2.wA.y)) + (m_v3.a * m_v3.wA.y))); break; default: b2Settings.b2Assert(false); break; }; } public function GetMetric():Number{ switch (m_count){ case 0: b2Settings.b2Assert(false); return (0); case 1: return (0); case 2: return (b2Math.SubtractVV(m_v1.w, m_v2.w).Length()); case 3: return (b2Math.CrossVV(b2Math.SubtractVV(m_v2.w, m_v1.w), b2Math.SubtractVV(m_v3.w, m_v1.w))); default: b2Settings.b2Assert(false); return (0); }; } public function Solve2():void{ var _local1:b2Vec2 = m_v1.w; var _local2:b2Vec2 = m_v2.w; var _local3:b2Vec2 = b2Math.SubtractVV(_local2, _local1); var _local4:Number = -(((_local1.x * _local3.x) + (_local1.y * _local3.y))); if (_local4 <= 0){ m_v1.a = 1; m_count = 1; return; }; var _local5:Number = ((_local2.x * _local3.x) + (_local2.y * _local3.y)); if (_local5 <= 0){ m_v2.a = 1; m_count = 1; m_v1.Set(m_v2); return; }; var _local6:Number = (1 / (_local5 + _local4)); m_v1.a = (_local5 * _local6); m_v2.a = (_local4 * _local6); m_count = 2; } public function Solve3():void{ var _local24:Number; var _local25:Number; var _local26:Number; var _local1:b2Vec2 = m_v1.w; var _local2:b2Vec2 = m_v2.w; var _local3:b2Vec2 = m_v3.w; var _local4:b2Vec2 = b2Math.SubtractVV(_local2, _local1); var _local5:Number = b2Math.Dot(_local1, _local4); var _local6:Number = b2Math.Dot(_local2, _local4); var _local7:Number = _local6; var _local8:Number = -(_local5); var _local9:b2Vec2 = b2Math.SubtractVV(_local3, _local1); var _local10:Number = b2Math.Dot(_local1, _local9); var _local11:Number = b2Math.Dot(_local3, _local9); var _local12:Number = _local11; var _local13:Number = -(_local10); var _local14:b2Vec2 = b2Math.SubtractVV(_local3, _local2); var _local15:Number = b2Math.Dot(_local2, _local14); var _local16:Number = b2Math.Dot(_local3, _local14); var _local17:Number = _local16; var _local18:Number = -(_local15); var _local19:Number = b2Math.CrossVV(_local4, _local9); var _local20:Number = (_local19 * b2Math.CrossVV(_local2, _local3)); var _local21:Number = (_local19 * b2Math.CrossVV(_local3, _local1)); var _local22:Number = (_local19 * b2Math.CrossVV(_local1, _local2)); if ((((_local8 <= 0)) && ((_local13 <= 0)))){ m_v1.a = 1; m_count = 1; return; }; if ((((((_local7 > 0)) && ((_local8 > 0)))) && ((_local22 <= 0)))){ _local24 = (1 / (_local7 + _local8)); m_v1.a = (_local7 * _local24); m_v2.a = (_local8 * _local24); m_count = 2; return; }; if ((((((_local12 > 0)) && ((_local13 > 0)))) && ((_local21 <= 0)))){ _local25 = (1 / (_local12 + _local13)); m_v1.a = (_local12 * _local25); m_v3.a = (_local13 * _local25); m_count = 2; m_v2.Set(m_v3); return; }; if ((((_local7 <= 0)) && ((_local18 <= 0)))){ m_v2.a = 1; m_count = 1; m_v1.Set(m_v2); return; }; if ((((_local12 <= 0)) && ((_local17 <= 0)))){ m_v3.a = 1; m_count = 1; m_v1.Set(m_v3); return; }; if ((((((_local17 > 0)) && ((_local18 > 0)))) && ((_local20 <= 0)))){ _local26 = (1 / (_local17 + _local18)); m_v2.a = (_local17 * _local26); m_v3.a = (_local18 * _local26); m_count = 2; m_v1.Set(m_v3); return; }; var _local23:Number = (1 / ((_local20 + _local21) + _local22)); m_v1.a = (_local20 * _local23); m_v2.a = (_local21 * _local23); m_v3.a = (_local22 * _local23); m_count = 3; } } }//package Box2D.Collision
Section 25
//b2SimplexCache (Box2D.Collision.b2SimplexCache) package Box2D.Collision { public class b2SimplexCache { public var metric:Number; public var count:uint; public var indexA:Array; public var indexB:Array; public function b2SimplexCache(){ indexA = new Array(3); indexB = new Array(3); super(); } } }//package Box2D.Collision
Section 26
//b2SimplexVertex (Box2D.Collision.b2SimplexVertex) package Box2D.Collision { import Box2D.Common.Math.*; class b2SimplexVertex { public var wA:b2Vec2; public var wB:b2Vec2; public var w:b2Vec2; public var a:Number; public var indexA:int; public var indexB:int; public function Set(_arg1:b2SimplexVertex):void{ wA.SetV(_arg1.wA); wB.SetV(_arg1.wB); w.SetV(_arg1.w); a = _arg1.a; indexA = _arg1.indexA; indexB = _arg1.indexB; } } }//package Box2D.Collision
Section 27
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2TimeOfImpact { private static var b2_toiCalls:int = 0; private static var b2_toiIters:int = 0; private static var b2_toiMaxIters:int = 0; private static var b2_toiRootIters:int = 0; private static var b2_toiMaxRootIters:int = 0; private static var s_cache:b2SimplexCache = new b2SimplexCache(); private static var s_distanceInput:b2DistanceInput = new b2DistanceInput(); private static var s_xfA:b2Transform = new b2Transform(); private static var s_xfB:b2Transform = new b2Transform(); private static var s_fcn:b2SeparationFunction = new b2SeparationFunction(); private static var s_distanceOutput:b2DistanceOutput = new b2DistanceOutput(); public static function TimeOfImpact(_arg1:b2TOIInput):Number{ var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:Number; var _local20:Number; b2_toiCalls++; var _local2:b2DistanceProxy = _arg1.proxyA; var _local3:b2DistanceProxy = _arg1.proxyB; var _local4:b2Sweep = _arg1.sweepA; var _local5:b2Sweep = _arg1.sweepB; b2Settings.b2Assert((_local4.t0 == _local5.t0)); b2Settings.b2Assert(((1 - _local4.t0) > Number.MIN_VALUE)); var _local6:Number = (_local2.m_radius + _local3.m_radius); var _local7:Number = _arg1.tolerance; var _local8:Number = 0; var _local9 = 1000; var _local10:int; var _local11:Number = 0; s_cache.count = 0; s_distanceInput.useRadii = false; while (true) { _local4.GetTransform(s_xfA, _local8); _local5.GetTransform(s_xfB, _local8); s_distanceInput.proxyA = _local2; s_distanceInput.proxyB = _local3; s_distanceInput.transformA = s_xfA; s_distanceInput.transformB = s_xfB; b2Distance.Distance(s_distanceOutput, s_cache, s_distanceInput); if (s_distanceOutput.distance <= 0){ _local8 = 1; break; }; s_fcn.Initialize(s_cache, _local2, s_xfA, _local3, s_xfB); _local12 = s_fcn.Evaluate(s_xfA, s_xfB); if (_local12 <= 0){ _local8 = 1; break; }; if (_local10 == 0){ if (_local12 > _local6){ _local11 = b2Math.Max((_local6 - _local7), (0.75 * _local6)); } else { _local11 = b2Math.Max((_local12 - _local7), (0.02 * _local6)); }; }; if ((_local12 - _local11) < (0.5 * _local7)){ if (_local10 == 0){ _local8 = 1; break; }; break; }; _local13 = _local8; _local14 = _local8; _local15 = 1; _local16 = _local12; _local4.GetTransform(s_xfA, _local15); _local5.GetTransform(s_xfB, _local15); _local17 = s_fcn.Evaluate(s_xfA, s_xfB); if (_local17 >= _local11){ _local8 = 1; break; }; _local18 = 0; while (true) { if ((_local18 & 1)){ _local19 = (_local14 + (((_local11 - _local16) * (_local15 - _local14)) / (_local17 - _local16))); } else { _local19 = (0.5 * (_local14 + _local15)); }; _local4.GetTransform(s_xfA, _local19); _local5.GetTransform(s_xfB, _local19); _local20 = s_fcn.Evaluate(s_xfA, s_xfB); if (b2Math.Abs((_local20 - _local11)) < (0.025 * _local7)){ _local13 = _local19; break; }; if (_local20 > _local11){ _local14 = _local19; _local16 = _local20; } else { _local15 = _local19; _local17 = _local20; }; _local18++; b2_toiRootIters++; if (_local18 == 50){ break; }; }; b2_toiMaxRootIters = b2Math.Max(b2_toiMaxRootIters, _local18); if (_local13 < ((1 + (100 * Number.MIN_VALUE)) * _local8)){ break; }; _local8 = _local13; _local10++; b2_toiIters++; if (_local10 == _local9){ break; }; }; b2_toiMaxIters = b2Math.Max(b2_toiMaxIters, _local10); return (_local8); } } }//package Box2D.Collision
Section 28
//b2TOIInput (Box2D.Collision.b2TOIInput) package Box2D.Collision { import Box2D.Common.Math.*; public class b2TOIInput { public var proxyA:b2DistanceProxy; public var proxyB:b2DistanceProxy; public var sweepA:b2Sweep; public var sweepB:b2Sweep; public var tolerance:Number; public function b2TOIInput(){ proxyA = new b2DistanceProxy(); proxyB = new b2DistanceProxy(); sweepA = new b2Sweep(); sweepB = new b2Sweep(); super(); } } }//package Box2D.Collision
Section 29
//b2WorldManifold (Box2D.Collision.b2WorldManifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2WorldManifold { public var m_normal:b2Vec2; public var m_points:Array; public function b2WorldManifold(){ m_normal = new b2Vec2(); super(); m_points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { m_points[_local1] = new b2Vec2(); _local1++; }; } public function Initialize(_arg1:b2Manifold, _arg2:b2Transform, _arg3:Number, _arg4:b2Transform, _arg5:Number):void{ var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; if (_arg1.m_pointCount == 0){ return; }; switch (_arg1.m_type){ case b2Manifold.e_circles: _local8 = _arg2.R; _local7 = _arg1.m_localPoint; _local15 = ((_arg2.position.x + (_local8.col1.x * _local7.x)) + (_local8.col2.x * _local7.y)); _local16 = ((_arg2.position.y + (_local8.col1.y * _local7.x)) + (_local8.col2.y * _local7.y)); _local8 = _arg4.R; _local7 = _arg1.m_points[0].m_localPoint; _local17 = ((_arg4.position.x + (_local8.col1.x * _local7.x)) + (_local8.col2.x * _local7.y)); _local18 = ((_arg4.position.y + (_local8.col1.y * _local7.x)) + (_local8.col2.y * _local7.y)); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local21 = ((_local19 * _local19) + (_local20 * _local20)); if (_local21 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local26 = Math.sqrt(_local21); m_normal.x = (_local19 / _local26); m_normal.y = (_local20 / _local26); } else { m_normal.x = 1; m_normal.y = 0; }; _local22 = (_local15 + (_arg3 * m_normal.x)); _local23 = (_local16 + (_arg3 * m_normal.y)); _local24 = (_local17 - (_arg5 * m_normal.x)); _local25 = (_local18 - (_arg5 * m_normal.y)); m_points[0].x = (0.5 * (_local22 + _local24)); m_points[0].y = (0.5 * (_local23 + _local25)); break; case b2Manifold.e_faceA: _local8 = _arg2.R; _local7 = _arg1.m_localPlaneNormal; _local9 = ((_local8.col1.x * _local7.x) + (_local8.col2.x * _local7.y)); _local10 = ((_local8.col1.y * _local7.x) + (_local8.col2.y * _local7.y)); _local8 = _arg2.R; _local7 = _arg1.m_localPoint; _local11 = ((_arg2.position.x + (_local8.col1.x * _local7.x)) + (_local8.col2.x * _local7.y)); _local12 = ((_arg2.position.y + (_local8.col1.y * _local7.x)) + (_local8.col2.y * _local7.y)); m_normal.x = _local9; m_normal.y = _local10; _local6 = 0; while (_local6 < _arg1.m_pointCount) { _local8 = _arg4.R; _local7 = _arg1.m_points[_local6].m_localPoint; _local13 = ((_arg4.position.x + (_local8.col1.x * _local7.x)) + (_local8.col2.x * _local7.y)); _local14 = ((_arg4.position.y + (_local8.col1.y * _local7.x)) + (_local8.col2.y * _local7.y)); m_points[_local6].x = (_local13 + ((0.5 * (((_arg3 - ((_local13 - _local11) * _local9)) - ((_local14 - _local12) * _local10)) - _arg5)) * _local9)); m_points[_local6].y = (_local14 + ((0.5 * (((_arg3 - ((_local13 - _local11) * _local9)) - ((_local14 - _local12) * _local10)) - _arg5)) * _local10)); _local6++; }; break; case b2Manifold.e_faceB: _local8 = _arg4.R; _local7 = _arg1.m_localPlaneNormal; _local9 = ((_local8.col1.x * _local7.x) + (_local8.col2.x * _local7.y)); _local10 = ((_local8.col1.y * _local7.x) + (_local8.col2.y * _local7.y)); _local8 = _arg4.R; _local7 = _arg1.m_localPoint; _local11 = ((_arg4.position.x + (_local8.col1.x * _local7.x)) + (_local8.col2.x * _local7.y)); _local12 = ((_arg4.position.y + (_local8.col1.y * _local7.x)) + (_local8.col2.y * _local7.y)); m_normal.x = -(_local9); m_normal.y = -(_local10); _local6 = 0; while (_local6 < _arg1.m_pointCount) { _local8 = _arg2.R; _local7 = _arg1.m_points[_local6].m_localPoint; _local13 = ((_arg2.position.x + (_local8.col1.x * _local7.x)) + (_local8.col2.x * _local7.y)); _local14 = ((_arg2.position.y + (_local8.col1.y * _local7.x)) + (_local8.col2.y * _local7.y)); m_points[_local6].x = (_local13 + ((0.5 * (((_arg5 - ((_local13 - _local11) * _local9)) - ((_local14 - _local12) * _local10)) - _arg3)) * _local9)); m_points[_local6].y = (_local14 + ((0.5 * (((_arg5 - ((_local13 - _local11) * _local9)) - ((_local14 - _local12) * _local10)) - _arg3)) * _local10)); _local6++; }; break; }; } } }//package Box2D.Collision
Section 30
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var v:b2Vec2; public var id:b2ContactID; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } public function Set(_arg1:ClipVertex):void{ v.SetV(_arg1.v); id.Set(_arg1.id); } } }//package Box2D.Collision
Section 31
//Features (Box2D.Collision.Features) package Box2D.Collision { import Box2D.Common.*; public class Features { b2internal var _referenceEdge:int; b2internal var _incidentEdge:int; b2internal var _incidentVertex:int; b2internal var _flip:int; b2internal var _m_id:b2ContactID; public function get referenceEdge():int{ return (_referenceEdge); } public function set referenceEdge(_arg1:int):void{ _referenceEdge = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF)); } public function get incidentEdge():int{ return (_incidentEdge); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } public function get incidentVertex():int{ return (_incidentVertex); } 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 set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } } }//package Box2D.Collision
Section 32
//IBroadPhase (Box2D.Collision.IBroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; public interface IBroadPhase { function CreateProxy(_arg1:b2AABB, _arg2); function DestroyProxy(_arg1):void; function MoveProxy(_arg1, _arg2:b2AABB, _arg3:b2Vec2):void; function TestOverlap(_arg1, _arg2):Boolean; function GetUserData(_arg1); function GetFatAABB(_arg1):b2AABB; function GetProxyCount():int; function UpdatePairs(_arg1:Function):void; function Query(_arg1:Function, _arg2:b2AABB):void; function RayCast(_arg1:Function, _arg2:b2RayCastInput):void; function Validate():void; function Rebalance(_arg1:int):void; } }//package Box2D.Collision
Section 33
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(){ col1 = new b2Vec2(); col2 = new b2Vec2(); super(); col1.x = (col2.y = 1); } public function Set(_arg1:Number):void{ var _local2:Number; _local2 = Math.cos(_arg1); var _local3:Number = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function Copy():b2Mat22{ var _local1:b2Mat22 = new b2Mat22(); _local1.SetM(this); return (_local1); } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function GetInverse(_arg1:b2Mat22):b2Mat22{ var _local3:Number; var _local6:Number; var _local2:Number = col1.x; _local3 = col2.x; var _local4:Number = col1.y; var _local5:Number = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); if (_local6 != 0){ _local6 = (1 / _local6); }; _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number = col1.x; var _local5:Number = col2.x; var _local6:Number = col1.y; var _local7:Number = col2.y; var _local8:Number = ((_local4 * _local7) - (_local5 * _local6)); if (_local8 != 0){ _local8 = (1 / _local8); }; _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } public function Abs():void{ col1.Abs(); col2.Abs(); } public static function FromAngle(_arg1:Number):b2Mat22{ var _local2:b2Mat22 = new (b2Mat22); _local2.Set(_arg1); return (_local2); } public static function FromVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Mat22{ var _local3:b2Mat22 = new (b2Mat22); _local3.SetVV(_arg1, _arg2); return (_local3); } } }//package Box2D.Common.Math
Section 34
//b2Mat33 (Box2D.Common.Math.b2Mat33) package Box2D.Common.Math { public class b2Mat33 { public var col1:b2Vec3; public var col2:b2Vec3; public var col3:b2Vec3; public function b2Mat33(_arg1:b2Vec3=null, _arg2:b2Vec3=null, _arg3:b2Vec3=null){ col1 = new b2Vec3(); col2 = new b2Vec3(); col3 = new b2Vec3(); super(); if (((((!(_arg1)) && (!(_arg2)))) && (!(_arg3)))){ col1.SetZero(); col2.SetZero(); col3.SetZero(); } else { col1.SetV(_arg1); col2.SetV(_arg2); col3.SetV(_arg3); }; } public function SetVVV(_arg1:b2Vec3, _arg2:b2Vec3, _arg3:b2Vec3):void{ col1.SetV(_arg1); col2.SetV(_arg2); col3.SetV(_arg3); } public function Copy():b2Mat33{ return (new b2Mat33(col1, col2, col3)); } public function SetM(_arg1:b2Mat33):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); col3.SetV(_arg1.col3); } public function AddM(_arg1:b2Mat33):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col1.z = (col1.z + _arg1.col1.z); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); col2.z = (col2.z + _arg1.col2.z); col3.x = (col3.x + _arg1.col3.x); col3.y = (col3.y + _arg1.col3.y); col3.z = (col3.z + _arg1.col3.z); } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col3.x = 0; col1.y = 0; col2.y = 1; col3.y = 0; col1.z = 0; col2.z = 0; col3.z = 1; } public function SetZero():void{ col1.x = 0; col2.x = 0; col3.x = 0; col1.y = 0; col2.y = 0; col3.y = 0; col1.z = 0; col2.z = 0; col3.z = 0; } public function Solve22(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number; var _local6:Number; _local4 = col1.x; var _local5:Number = col2.x; _local6 = col1.y; var _local7:Number = col2.y; var _local8:Number = ((_local4 * _local7) - (_local5 * _local6)); if (_local8 != 0){ _local8 = (1 / _local8); }; _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } public function Solve33(_arg1:b2Vec3, _arg2:Number, _arg3:Number, _arg4:Number):b2Vec3{ var _local5:Number = col1.x; var _local6:Number = col1.y; var _local7:Number = col1.z; var _local8:Number = col2.x; var _local9:Number = col2.y; var _local10:Number = col2.z; var _local11:Number = col3.x; var _local12:Number = col3.y; var _local13:Number = col3.z; var _local14:Number = (((_local5 * ((_local9 * _local13) - (_local10 * _local12))) + (_local6 * ((_local10 * _local11) - (_local8 * _local13)))) + (_local7 * ((_local8 * _local12) - (_local9 * _local11)))); if (_local14 != 0){ _local14 = (1 / _local14); }; _arg1.x = (_local14 * (((_arg2 * ((_local9 * _local13) - (_local10 * _local12))) + (_arg3 * ((_local10 * _local11) - (_local8 * _local13)))) + (_arg4 * ((_local8 * _local12) - (_local9 * _local11))))); _arg1.y = (_local14 * (((_local5 * ((_arg3 * _local13) - (_arg4 * _local12))) + (_local6 * ((_arg4 * _local11) - (_arg2 * _local13)))) + (_local7 * ((_arg2 * _local12) - (_arg3 * _local11))))); _arg1.z = (_local14 * (((_local5 * ((_local9 * _arg4) - (_local10 * _arg3))) + (_local6 * ((_local10 * _arg2) - (_local8 * _arg4)))) + (_local7 * ((_local8 * _arg3) - (_local9 * _arg2))))); return (_arg1); } } }//package Box2D.Common.Math
Section 35
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static const b2Mat22_identity:b2Mat22 = b2Mat22.FromVV(new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2Transform_identity:b2Transform = new b2Transform(b2Vec2_zero, b2Mat22_identity); public static function IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } public static function MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(Dot(_arg2, _arg1.col1), Dot(_arg2, _arg1.col2)); return (_local3); } public static function MulX(_arg1:b2Transform, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = MulMV(_arg1.R, _arg2); _local3.x = (_local3.x + _arg1.position.x); _local3.y = (_local3.y + _arg1.position.y); return (_local3); } public static function MulXT(_arg1:b2Transform, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; var _local4:Number; _local3 = SubtractVV(_arg2, _arg1.position); _local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y)); _local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y)); _local3.x = _local4; return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function Distance(_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 DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = b2Mat22.FromVV(AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = b2Mat22.FromVV(MulMV(_arg1, _arg2.col1), MulMV(_arg1, _arg2.col2)); return (_local3); } public static function MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2 = new b2Vec2(Dot(_arg1.col1, _arg2.col1), Dot(_arg1.col2, _arg2.col1)); var _local4:b2Vec2 = new b2Vec2(Dot(_arg1.col1, _arg2.col2), Dot(_arg1.col2, _arg2.col2)); var _local5:b2Mat22 = b2Mat22.FromVV(_local3, _local4); return (_local5); } public static function Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2 = new b2Vec2(Abs(_arg1.x), Abs(_arg1.y)); return (_local2); } public static function AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22 = b2Mat22.FromVV(AbsV(_arg1.col1), AbsV(_arg1.col2)); return (_local2); } public static function Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(Min(_arg1.x, _arg2.x), Min(_arg1.y, _arg2.y)); return (_local3); } public static function Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(Max(_arg1.x, _arg2.x), Max(_arg1.y, _arg2.y)); return (_local3); } public static function Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (((_arg1 < _arg2)) ? _arg2 : ((_arg1 > _arg3)) ? _arg3 : _arg1); } public static function ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (MaxV(_arg2, MinV(_arg1, _arg3))); } public static function Swap(_arg1:Array, _arg2:Array):void{ var _local3:* = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function Random():Number{ return (((Math.random() * 2) - 1)); } public static function RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function NextPowerOfTwo(_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 IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } } }//package Box2D.Common.Math
Section 36
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var c0:b2Vec2; public var c:b2Vec2; public var a0:Number; public var a:Number; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } public function Set(_arg1:b2Sweep):void{ localCenter.SetV(_arg1.localCenter); c0.SetV(_arg1.c0); c.SetV(_arg1.c); a0 = _arg1.a0; a = _arg1.a; t0 = _arg1.t0; } public function Copy():b2Sweep{ var _local1:b2Sweep = new b2Sweep(); _local1.localCenter.SetV(localCenter); _local1.c0.SetV(c0); _local1.c.SetV(c); _local1.a0 = a0; _local1.a = a; _local1.t0 = t0; return (_local1); } public function GetTransform(_arg1:b2Transform, _arg2:Number):void{ _arg1.position.x = (((1 - _arg2) * c0.x) + (_arg2 * c.x)); _arg1.position.y = (((1 - _arg2) * c0.y) + (_arg2 * c.y)); var _local3:Number = (((1 - _arg2) * a0) + (_arg2 * a)); _arg1.R.Set(_local3); var _local4:b2Mat22 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local4.col1.x * localCenter.x) + (_local4.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local4.col1.y * localCenter.x) + (_local4.col2.y * localCenter.y))); } public function Advance(_arg1:Number):void{ var _local2:Number; if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){ _local2 = ((_arg1 - t0) / (1 - t0)); c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x)); c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y)); a0 = (((1 - _local2) * a0) + (_local2 * a)); t0 = _arg1; }; } } }//package Box2D.Common.Math
Section 37
//b2Transform (Box2D.Common.Math.b2Transform) package Box2D.Common.Math { public class b2Transform { public var position:b2Vec2; public var R:b2Mat22; public function b2Transform(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } public function Set(_arg1:b2Transform):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function GetAngle():Number{ return (Math.atan2(R.col1.y, R.col1.x)); } } }//package Box2D.Common.Math
Section 38
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { import Utils.*; public class b2Vec2 { public var x:Number; public var y:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function SetZero():void{ x = 0; y = 0; } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function GetNegative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function NegativeSelf():void{ x = -(x); y = -(y); } public function toString():String{ return (((("b2Vec2 x=" + x) + " y=") + y)); } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function SubstractedCopy(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((x - _arg1.x), (y - _arg1.y))); } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function MulM(_arg1:b2Mat22):void{ var _local2:Number = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number = b2Math.Dot(this, _arg1.col1); y = b2Math.Dot(this, _arg1.col2); x = _local2; } public function CrossVF(_arg1:Number):void{ var _local2:Number = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function CrossFV(_arg1:Number):void{ var _local2:Number = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function MaxV(_arg1:b2Vec2):void{ x = ((x > _arg1.x)) ? x : _arg1.x; y = ((y > _arg1.y)) ? y : _arg1.y; } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function Normalize():Number{ var _local1:Number = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; var _local2:Number = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function IsValid():Boolean{ return (((b2Math.IsValid(x)) && (b2Math.IsValid(y)))); } public function toVector3():Vector3{ return (new Vector3(x, y, 0)); } public function rotatedCopy(_arg1:Number):b2Vec2{ var _local2:b2Vec2 = new b2Vec2(x, y); var _local3:b2Mat22 = new b2Mat22(); _local3.Set(_arg1); _local2.MulTM(_local3); return (_local2); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 39
//b2Vec3 (Box2D.Common.Math.b2Vec3) package Box2D.Common.Math { public class b2Vec3 { public var x:Number; public var y:Number; public var z:Number; public function b2Vec3(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; } public function SetZero():void{ x = (y = (z = 0)); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ this.x = _arg1; this.y = _arg2; this.z = _arg3; } public function SetV(_arg1:b2Vec3):void{ x = _arg1.x; y = _arg1.y; z = _arg1.z; } public function GetNegative():b2Vec3{ return (new b2Vec3(-(x), -(y), -(z))); } public function NegativeSelf():void{ x = -(x); y = -(y); z = -(z); } public function Copy():b2Vec3{ return (new b2Vec3(x, y, z)); } public function Add(_arg1:b2Vec3):void{ x = (x + _arg1.x); y = (y + _arg1.y); z = (z + _arg1.z); } public function Subtract(_arg1:b2Vec3):void{ x = (x - _arg1.x); y = (y - _arg1.y); z = (z - _arg1.z); } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); z = (z * _arg1); } } }//package Box2D.Common.Math
Section 40
//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.Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.Clamp(_arg3, 0, 1))); } public function set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.Clamp(_arg1, 0, 1))); } public function set g(_arg1:Number):void{ _g = uint((0xFF * b2Math.Clamp(_arg1, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.Clamp(_arg1, 0, 1))); } public function get color():uint{ return ((((_r << 16) | (_g << 8)) | _b)); } } }//package Box2D.Common
Section 41
//b2internal (Box2D.Common.b2internal) package Box2D.Common { public namespace b2internal = "http://www.box2d.org/ns/b2internal"; }//package Box2D.Common
Section 42
//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { public class b2Settings { public static const VERSION:String = "2.1alpha"; public static const USHRT_MAX:int = 0xFFFF; public static const b2_pi:Number = 3.14159265358979; public static const b2_maxManifoldPoints:int = 2; public static const b2_aabbExtension:Number = 0.1; public static const b2_aabbMultiplier:Number = 2; public static const b2_polygonRadius:Number = (2 * b2_linearSlop); public static const b2_linearSlop:Number = 0.005; public static const b2_angularSlop:Number = 0.0349065850398866; public static const b2_toiSlop:Number = 0.04; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_maxTOIJointsPerIsland:int = 32; public static const b2_velocityThreshold:Number = 1; public static const b2_maxLinearCorrection:Number = 0.2; public static const b2_maxAngularCorrection:Number = 0.139626340159546; public static const b2_maxTranslation:Number = 2; public static const b2_maxTranslationSquared:Number = 4; public static const b2_maxRotation:Number = 1.5707963267949; public static const b2_maxRotationSquared:Number = 2.46740110027234; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_timeToSleep:Number = 0.2; public static const b2_linearSleepTolerance:Number = 0.03; public static const b2_angularSleepTolerance:Number = 0.0872664625997165; public static function b2MixFriction(_arg1:Number, _arg2:Number):Number{ return (Math.sqrt((_arg1 * _arg2))); } public static function b2MixRestitution(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2Assert(_arg1:Boolean, _arg2:String=""):void{ if (!_arg1){ throw (("Assertion Failed " + _arg2)); }; } } }//package Box2D.Common
Section 43
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleContact extends b2Contact { public function Reset(_arg1:b2Fixture, _arg2:b2Fixture):void{ super.Reset(_arg1, _arg2); } override b2internal function Evaluate():void{ var _local1:b2Body = m_fixtureA.GetBody(); var _local2:b2Body = m_fixtureB.GetBody(); b2Collision.CollideCircles(m_manifold, (m_fixtureA.GetShape() as b2CircleShape), _local1.m_xf, (m_fixtureB.GetShape() as b2CircleShape), _local2.m_xf); } public static function Create(_arg1):b2Contact{ return (new (b2CircleContact)); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } } }//package Box2D.Dynamics.Contacts
Section 44
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Contact { b2internal var m_flags:uint; b2internal var m_prev:b2Contact; b2internal var m_next:b2Contact; b2internal var m_nodeA:b2ContactEdge; b2internal var m_nodeB:b2ContactEdge; b2internal var m_fixtureA:b2Fixture; b2internal var m_fixtureB:b2Fixture; b2internal var m_manifold:b2Manifold; b2internal var m_oldManifold:b2Manifold; b2internal var m_toi:Number; b2internal static var e_sensorFlag:uint = 1; b2internal static var e_continuousFlag:uint = 2; b2internal static var e_islandFlag:uint = 4; b2internal static var e_toiFlag:uint = 8; b2internal static var e_touchingFlag:uint = 16; b2internal static var e_enabledFlag:uint = 32; b2internal static var e_filterFlag:uint = 64; private static var s_input:b2TOIInput = new b2TOIInput(); public function b2Contact(){ m_nodeA = new b2ContactEdge(); m_nodeB = new b2ContactEdge(); m_manifold = new b2Manifold(); m_oldManifold = new b2Manifold(); super(); } public function GetManifold():b2Manifold{ return (m_manifold); } public function GetWorldManifold(_arg1:b2WorldManifold):void{ var _local2:b2Body = m_fixtureA.GetBody(); var _local3:b2Body = m_fixtureB.GetBody(); var _local4:b2Shape = m_fixtureA.GetShape(); var _local5:b2Shape = m_fixtureB.GetShape(); _arg1.Initialize(m_manifold, _local2.GetTransform(), _local4.m_radius, _local3.GetTransform(), _local5.m_radius); } public function IsTouching():Boolean{ return (((m_flags & e_touchingFlag) == e_touchingFlag)); } public function IsContinuous():Boolean{ return (((m_flags & e_continuousFlag) == e_continuousFlag)); } public function SetSensor(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_sensorFlag); } else { m_flags = (m_flags & ~(e_sensorFlag)); }; } public function IsSensor():Boolean{ return (((m_flags & e_sensorFlag) == e_sensorFlag)); } public function SetEnabled(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_enabledFlag); } else { m_flags = (m_flags & ~(e_enabledFlag)); }; } public function IsEnabled():Boolean{ return (((m_flags & e_enabledFlag) == e_enabledFlag)); } public function GetNext():b2Contact{ return (m_next); } public function GetFixtureA():b2Fixture{ return (m_fixtureA); } public function GetFixtureB():b2Fixture{ return (m_fixtureB); } public function FlagForFiltering():void{ m_flags = (m_flags | e_filterFlag); } b2internal function Reset(_arg1:b2Fixture=null, _arg2:b2Fixture=null):void{ m_flags = e_enabledFlag; if (((!(_arg1)) || (!(_arg2)))){ m_fixtureA = null; m_fixtureB = null; return; }; if (((_arg1.IsSensor()) || (_arg2.IsSensor()))){ m_flags = (m_flags | e_sensorFlag); }; var _local3:b2Body = _arg1.GetBody(); var _local4:b2Body = _arg2.GetBody(); if (((((((!((_local3.GetType() == b2Body.b2_dynamicBody))) || (_local3.IsBullet()))) || (!((_local4.GetType() == b2Body.b2_dynamicBody))))) || (_local4.IsBullet()))){ m_flags = (m_flags | e_continuousFlag); }; m_fixtureA = _arg1; m_fixtureB = _arg2; m_manifold.m_pointCount = 0; m_prev = null; m_next = null; m_nodeA.contact = null; m_nodeA.prev = null; m_nodeA.next = null; m_nodeA.other = null; m_nodeB.contact = null; m_nodeB.prev = null; m_nodeB.next = null; m_nodeB.other = null; } b2internal function Update(_arg1:b2ContactListener):void{ var _local8:b2Shape; var _local9:b2Shape; var _local10:b2Transform; var _local11:b2Transform; var _local12:int; var _local13:b2ManifoldPoint; var _local14:b2ContactID; var _local15:int; var _local16:b2ManifoldPoint; var _local2:b2Manifold = m_oldManifold; m_oldManifold = m_manifold; m_manifold = _local2; m_flags = (m_flags | e_enabledFlag); var _local3:Boolean; var _local4 = ((m_flags & e_touchingFlag) == e_touchingFlag); var _local5:b2Body = m_fixtureA.m_body; var _local6:b2Body = m_fixtureB.m_body; var _local7:Boolean = m_fixtureA.m_aabb.TestOverlap(m_fixtureB.m_aabb); if ((m_flags & e_sensorFlag)){ if (_local7){ _local8 = m_fixtureA.GetShape(); _local9 = m_fixtureB.GetShape(); _local10 = _local5.GetTransform(); _local11 = _local6.GetTransform(); _local3 = b2Shape.TestOverlap(_local8, _local10, _local9, _local11); }; m_manifold.m_pointCount = 0; } else { if (((((((!((_local5.GetType() == b2Body.b2_dynamicBody))) || (_local5.IsBullet()))) || (!((_local6.GetType() == b2Body.b2_dynamicBody))))) || (_local6.IsBullet()))){ m_flags = (m_flags | e_continuousFlag); } else { m_flags = (m_flags & ~(e_continuousFlag)); }; if (_local7){ Evaluate(); _local3 = (m_manifold.m_pointCount > 0); _local12 = 0; while (_local12 < m_manifold.m_pointCount) { _local13 = m_manifold.m_points[_local12]; _local13.m_normalImpulse = 0; _local13.m_tangentImpulse = 0; _local14 = _local13.m_id; _local15 = 0; while (_local15 < m_oldManifold.m_pointCount) { _local16 = m_oldManifold.m_points[_local15]; if (_local16.m_id.key == _local14.key){ _local13.m_normalImpulse = _local16.m_normalImpulse; _local13.m_tangentImpulse = _local16.m_tangentImpulse; break; }; _local15++; }; _local12++; }; } else { m_manifold.m_pointCount = 0; }; if (_local3 != _local4){ _local5.SetAwake(true); _local6.SetAwake(true); }; }; if (_local3){ m_flags = (m_flags | e_touchingFlag); } else { m_flags = (m_flags & ~(e_touchingFlag)); }; if ((((_local4 == false)) && ((_local3 == true)))){ _arg1.BeginContact(this); }; if ((((_local4 == true)) && ((_local3 == false)))){ _arg1.EndContact(this); }; if ((m_flags & e_sensorFlag) == 0){ _arg1.PreSolve(this, m_oldManifold); }; } b2internal function Evaluate():void{ } b2internal function ComputeTOI(_arg1:b2Sweep, _arg2:b2Sweep):Number{ s_input.proxyA.Set(m_fixtureA.GetShape()); s_input.proxyB.Set(m_fixtureB.GetShape()); s_input.sweepA = _arg1; s_input.sweepB = _arg2; s_input.tolerance = b2Settings.b2_linearSlop; return (b2TimeOfImpact.TimeOfImpact(s_input)); } } }//package Box2D.Dynamics.Contacts
Section 45
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var localPlaneNormal:b2Vec2; public var localPoint:b2Vec2; public var normal:b2Vec2; public var normalMass:b2Mat22; public var K:b2Mat22; public var bodyA:b2Body; public var bodyB:b2Body; public var type:int; public var radius:Number; public var friction:Number; public var restitution:Number; public var pointCount:int; public var manifold:b2Manifold; public function b2ContactConstraint(){ localPlaneNormal = new b2Vec2(); localPoint = new b2Vec2(); normal = new b2Vec2(); normalMass = new b2Mat22(); K = new b2Mat22(); 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 46
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var localPoint:b2Vec2; public var rA:b2Vec2; public var rB:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var normalMass:Number; public var tangentMass:Number; public var equalizedMass:Number; public var velocityBias:Number; public function b2ContactConstraintPoint(){ localPoint = new b2Vec2(); rA = new b2Vec2(); rB = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 47
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var other:b2Body; public var contact:b2Contact; public var prev:b2ContactEdge; public var next:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 48
//b2ContactFactory (Box2D.Dynamics.Contacts.b2ContactFactory) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactFactory { private var m_registers:Array; private var m_allocator; public function b2ContactFactory(_arg1){ m_allocator = _arg1; InitializeRegisters(); } b2internal function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{ m_registers[_arg3][_arg4].createFcn = _arg1; m_registers[_arg3][_arg4].destroyFcn = _arg2; m_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ m_registers[_arg4][_arg3].createFcn = _arg1; m_registers[_arg4][_arg3].destroyFcn = _arg2; m_registers[_arg4][_arg3].primary = false; }; } b2internal function InitializeRegisters():void{ var _local2:int; m_registers = new Array(b2Shape.e_shapeTypeCount); var _local1:int; while (_local1 < b2Shape.e_shapeTypeCount) { m_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { m_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); AddType(b2EdgeAndCircleContact.Create, b2EdgeAndCircleContact.Destroy, b2Shape.e_edgeShape, b2Shape.e_circleShape); AddType(b2PolyAndEdgeContact.Create, b2PolyAndEdgeContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_edgeShape); } public function Create(_arg1:b2Fixture, _arg2:b2Fixture):b2Contact{ var _local6:b2Contact; var _local3:int = _arg1.GetType(); var _local4:int = _arg2.GetType(); var _local5:b2ContactRegister = m_registers[_local3][_local4]; if (_local5.pool){ _local6 = _local5.pool; _local5.pool = _local6.m_next; _local5.poolCount--; _local6.Reset(_arg1, _arg2); return (_local6); }; var _local7:Function = _local5.createFcn; if (_local7 != null){ if (_local5.primary){ _local6 = _local7(m_allocator); _local6.Reset(_arg1, _arg2); return (_local6); }; _local6 = _local7(m_allocator); _local6.Reset(_arg2, _arg1); return (_local6); //unresolved jump }; return (null); } public function Destroy(_arg1:b2Contact):void{ if (_arg1.m_manifold.m_pointCount > 0){ _arg1.m_fixtureA.m_body.SetAwake(true); _arg1.m_fixtureB.m_body.SetAwake(true); }; var _local2:int = _arg1.m_fixtureA.GetType(); var _local3:int = _arg1.m_fixtureB.GetType(); var _local4:b2ContactRegister = m_registers[_local2][_local3]; _local4.poolCount++; _arg1.m_next = _local4.pool; _local4.pool = _arg1; var _local5:Function = _local4.destroyFcn; _local5(_arg1, m_allocator); } } }//package Box2D.Dynamics.Contacts
Section 49
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var createFcn:Function; public var destroyFcn:Function; public var primary:Boolean; public var pool:b2Contact; public var poolCount:int; } }//package Box2D.Dynamics.Contacts
Section 50
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactSolver { private var m_step:b2TimeStep; private var m_allocator; b2internal var m_constraints:Array; private var m_constraintCount:int; private static var s_worldManifold:b2WorldManifold = new b2WorldManifold(); private static var s_psm:b2PositionSolverManifold = new b2PositionSolverManifold(); public function b2ContactSolver(){ m_step = new b2TimeStep(); m_constraints = new Array(); super(); } public function Initialize(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4):void{ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local9:b2Fixture; var _local10:b2Fixture; var _local11:b2Shape; var _local12:b2Shape; var _local13:Number; var _local14:Number; var _local15:b2Body; var _local16:b2Body; var _local17:b2Manifold; 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:b2ContactConstraint; var _local29:uint; var _local30:b2ManifoldPoint; var _local31:b2ContactConstraintPoint; 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; var _local48:b2ContactConstraintPoint; var _local49:b2ContactConstraintPoint; var _local50:Number; var _local51:Number; var _local52:Number; var _local53:Number; var _local54:Number; var _local55:Number; var _local56:Number; var _local57:Number; var _local58:Number; var _local59:Number; var _local60:Number; var _local61:Number; m_step.Set(_arg1); m_allocator = _arg4; m_constraintCount = _arg3; while (m_constraints.length < m_constraintCount) { m_constraints[m_constraints.length] = new b2ContactConstraint(); }; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local9 = _local5.m_fixtureA; _local10 = _local5.m_fixtureB; _local11 = _local9.m_shape; _local12 = _local10.m_shape; _local13 = _local11.m_radius; _local14 = _local12.m_radius; _local15 = _local9.m_body; _local16 = _local10.m_body; _local17 = _local5.GetManifold(); _local18 = b2Settings.b2MixFriction(_local9.GetFriction(), _local10.GetFriction()); _local19 = b2Settings.b2MixRestitution(_local9.GetRestitution(), _local10.GetRestitution()); _local20 = _local15.m_linearVelocity.x; _local21 = _local15.m_linearVelocity.y; _local22 = _local16.m_linearVelocity.x; _local23 = _local16.m_linearVelocity.y; _local24 = _local15.m_angularVelocity; _local25 = _local16.m_angularVelocity; b2Settings.b2Assert((_local17.m_pointCount > 0)); s_worldManifold.Initialize(_local17, _local15.m_xf, _local13, _local16.m_xf, _local14); _local26 = s_worldManifold.m_normal.x; _local27 = s_worldManifold.m_normal.y; _local28 = m_constraints[_local6]; _local28.bodyA = _local15; _local28.bodyB = _local16; _local28.manifold = _local17; _local28.normal.x = _local26; _local28.normal.y = _local27; _local28.pointCount = _local17.m_pointCount; _local28.friction = _local18; _local28.restitution = _local19; _local28.localPlaneNormal.x = _local17.m_localPlaneNormal.x; _local28.localPlaneNormal.y = _local17.m_localPlaneNormal.y; _local28.localPoint.x = _local17.m_localPoint.x; _local28.localPoint.y = _local17.m_localPoint.y; _local28.radius = (_local13 + _local14); _local28.type = _local17.m_type; _local29 = 0; while (_local29 < _local28.pointCount) { _local30 = _local17.m_points[_local29]; _local31 = _local28.points[_local29]; _local31.normalImpulse = _local30.m_normalImpulse; _local31.tangentImpulse = _local30.m_tangentImpulse; _local31.localPoint.SetV(_local30.m_localPoint); _local32 = (_local31.rA.x = (s_worldManifold.m_points[_local29].x - _local15.m_sweep.c.x)); _local33 = (_local31.rA.y = (s_worldManifold.m_points[_local29].y - _local15.m_sweep.c.y)); _local34 = (_local31.rB.x = (s_worldManifold.m_points[_local29].x - _local16.m_sweep.c.x)); _local35 = (_local31.rB.y = (s_worldManifold.m_points[_local29].y - _local16.m_sweep.c.y)); _local36 = ((_local32 * _local27) - (_local33 * _local26)); _local37 = ((_local34 * _local27) - (_local35 * _local26)); _local36 = (_local36 * _local36); _local37 = (_local37 * _local37); _local38 = (((_local15.m_invMass + _local16.m_invMass) + (_local15.m_invI * _local36)) + (_local16.m_invI * _local37)); _local31.normalMass = (1 / _local38); _local39 = ((_local15.m_mass * _local15.m_invMass) + (_local16.m_mass * _local16.m_invMass)); _local39 = (_local39 + (((_local15.m_mass * _local15.m_invI) * _local36) + ((_local16.m_mass * _local16.m_invI) * _local37))); _local31.equalizedMass = (1 / _local39); _local40 = _local27; _local41 = -(_local26); _local42 = ((_local32 * _local41) - (_local33 * _local40)); _local43 = ((_local34 * _local41) - (_local35 * _local40)); _local42 = (_local42 * _local42); _local43 = (_local43 * _local43); _local44 = (((_local15.m_invMass + _local16.m_invMass) + (_local15.m_invI * _local42)) + (_local16.m_invI * _local43)); _local31.tangentMass = (1 / _local44); _local31.velocityBias = 0; _local45 = (((_local22 + (-(_local25) * _local35)) - _local20) - (-(_local24) * _local33)); _local46 = (((_local23 + (_local25 * _local34)) - _local21) - (_local24 * _local32)); _local47 = ((_local28.normal.x * _local45) + (_local28.normal.y * _local46)); if (_local47 < -(b2Settings.b2_velocityThreshold)){ _local31.velocityBias = (_local31.velocityBias + (-(_local28.restitution) * _local47)); }; _local29++; }; if (_local28.pointCount == 2){ _local48 = _local28.points[0]; _local49 = _local28.points[1]; _local50 = _local15.m_invMass; _local51 = _local15.m_invI; _local52 = _local16.m_invMass; _local53 = _local16.m_invI; _local54 = ((_local48.rA.x * _local27) - (_local48.rA.y * _local26)); _local55 = ((_local48.rB.x * _local27) - (_local48.rB.y * _local26)); _local56 = ((_local49.rA.x * _local27) - (_local49.rA.y * _local26)); _local57 = ((_local49.rB.x * _local27) - (_local49.rB.y * _local26)); _local58 = (((_local50 + _local52) + ((_local51 * _local54) * _local54)) + ((_local53 * _local55) * _local55)); _local59 = (((_local50 + _local52) + ((_local51 * _local56) * _local56)) + ((_local53 * _local57) * _local57)); _local60 = (((_local50 + _local52) + ((_local51 * _local54) * _local56)) + ((_local53 * _local55) * _local57)); _local61 = 100; if ((_local58 * _local58) < (_local61 * ((_local58 * _local59) - (_local60 * _local60)))){ _local28.K.col1.Set(_local58, _local60); _local28.K.col2.Set(_local60, _local59); _local28.K.GetInverse(_local28.normalMass); } else { _local28.pointCount = 1; }; }; _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.bodyA; _local8 = _local6.bodyB; _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.rA.x * _local22) - (_local20.rA.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.rB.x * _local22) - (_local20.rB.y * _local21)))); _local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21)); _local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22)); _local18++; }; } else { _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local23 = _local6.points[_local18]; _local23.normalImpulse = 0; _local23.tangentImpulse = 0; _local18++; }; }; _local5++; }; } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:b2Mat22; var _local23:b2Vec2; var _local25:b2ContactConstraint; var _local26:b2Body; var _local27:b2Body; var _local28:Number; var _local29:Number; var _local30:b2Vec2; var _local31:b2Vec2; 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:int; var _local43:b2ContactConstraintPoint; var _local44:b2ContactConstraintPoint; var _local45:Number; var _local46:Number; var _local47:Number; var _local48:Number; var _local49:Number; var _local50:Number; var _local51:Number; var _local52:Number; var _local53:Number; var _local54:Number; var _local55:Number; var _local56:Number; var _local57:Number; var _local24:int; while (_local24 < m_constraintCount) { _local25 = m_constraints[_local24]; _local26 = _local25.bodyA; _local27 = _local25.bodyB; _local28 = _local26.m_angularVelocity; _local29 = _local27.m_angularVelocity; _local30 = _local26.m_linearVelocity; _local31 = _local27.m_linearVelocity; _local32 = _local26.m_invMass; _local33 = _local26.m_invI; _local34 = _local27.m_invMass; _local35 = _local27.m_invI; _local36 = _local25.normal.x; _local37 = _local25.normal.y; _local38 = _local37; _local39 = -(_local36); _local40 = _local25.friction; _local1 = 0; while (_local1 < _local25.pointCount) { _local2 = _local25.points[_local1]; _local7 = (((_local31.x - (_local29 * _local2.rB.y)) - _local30.x) + (_local28 * _local2.rA.y)); _local8 = (((_local31.y + (_local29 * _local2.rB.x)) - _local30.y) - (_local28 * _local2.rA.x)); _local10 = ((_local7 * _local38) + (_local8 * _local39)); _local11 = (_local2.tangentMass * -(_local10)); _local12 = (_local40 * _local2.normalImpulse); _local13 = b2Math.Clamp((_local2.tangentImpulse + _local11), -(_local12), _local12); _local11 = (_local13 - _local2.tangentImpulse); _local14 = (_local11 * _local38); _local15 = (_local11 * _local39); _local30.x = (_local30.x - (_local32 * _local14)); _local30.y = (_local30.y - (_local32 * _local15)); _local28 = (_local28 - (_local33 * ((_local2.rA.x * _local15) - (_local2.rA.y * _local14)))); _local31.x = (_local31.x + (_local34 * _local14)); _local31.y = (_local31.y + (_local34 * _local15)); _local29 = (_local29 + (_local35 * ((_local2.rB.x * _local15) - (_local2.rB.y * _local14)))); _local2.tangentImpulse = _local13; _local1++; }; _local42 = _local25.pointCount; if (_local25.pointCount == 1){ _local2 = _local25.points[0]; _local7 = (((_local31.x + (-(_local29) * _local2.rB.y)) - _local30.x) - (-(_local28) * _local2.rA.y)); _local8 = (((_local31.y + (_local29 * _local2.rB.x)) - _local30.y) - (_local28 * _local2.rA.x)); _local9 = ((_local7 * _local36) + (_local8 * _local37)); _local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias)); _local13 = (_local2.normalImpulse + _local11); _local13 = ((_local13 > 0)) ? _local13 : 0; _local11 = (_local13 - _local2.normalImpulse); _local14 = (_local11 * _local36); _local15 = (_local11 * _local37); _local30.x = (_local30.x - (_local32 * _local14)); _local30.y = (_local30.y - (_local32 * _local15)); _local28 = (_local28 - (_local33 * ((_local2.rA.x * _local15) - (_local2.rA.y * _local14)))); _local31.x = (_local31.x + (_local34 * _local14)); _local31.y = (_local31.y + (_local34 * _local15)); _local29 = (_local29 + (_local35 * ((_local2.rB.x * _local15) - (_local2.rB.y * _local14)))); _local2.normalImpulse = _local13; } else { _local43 = _local25.points[0]; _local44 = _local25.points[1]; _local45 = _local43.normalImpulse; _local46 = _local44.normalImpulse; _local47 = (((_local31.x - (_local29 * _local43.rB.y)) - _local30.x) + (_local28 * _local43.rA.y)); _local48 = (((_local31.y + (_local29 * _local43.rB.x)) - _local30.y) - (_local28 * _local43.rA.x)); _local49 = (((_local31.x - (_local29 * _local44.rB.y)) - _local30.x) + (_local28 * _local44.rA.y)); _local50 = (((_local31.y + (_local29 * _local44.rB.x)) - _local30.y) - (_local28 * _local44.rA.x)); _local51 = ((_local47 * _local36) + (_local48 * _local37)); _local52 = ((_local49 * _local36) + (_local50 * _local37)); _local53 = (_local51 - _local43.velocityBias); _local54 = (_local52 - _local44.velocityBias); _local22 = _local25.K; _local53 = (_local53 - ((_local22.col1.x * _local45) + (_local22.col2.x * _local46))); _local54 = (_local54 - ((_local22.col1.y * _local45) + (_local22.col2.y * _local46))); _local55 = 0.001; while (true) { _local22 = _local25.normalMass; _local56 = -(((_local22.col1.x * _local53) + (_local22.col2.x * _local54))); _local57 = -(((_local22.col1.y * _local53) + (_local22.col2.y * _local54))); if ((((_local56 >= 0)) && ((_local57 >= 0)))){ _local16 = (_local56 - _local45); _local17 = (_local57 - _local46); _local18 = (_local16 * _local36); _local19 = (_local16 * _local37); _local20 = (_local17 * _local36); _local21 = (_local17 * _local37); _local30.x = (_local30.x - (_local32 * (_local18 + _local20))); _local30.y = (_local30.y - (_local32 * (_local19 + _local21))); _local28 = (_local28 - (_local33 * ((((_local43.rA.x * _local19) - (_local43.rA.y * _local18)) + (_local44.rA.x * _local21)) - (_local44.rA.y * _local20)))); _local31.x = (_local31.x + (_local34 * (_local18 + _local20))); _local31.y = (_local31.y + (_local34 * (_local19 + _local21))); _local29 = (_local29 + (_local35 * ((((_local43.rB.x * _local19) - (_local43.rB.y * _local18)) + (_local44.rB.x * _local21)) - (_local44.rB.y * _local20)))); _local43.normalImpulse = _local56; _local44.normalImpulse = _local57; break; }; _local56 = (-(_local43.normalMass) * _local53); _local57 = 0; _local51 = 0; _local52 = ((_local25.K.col1.y * _local56) + _local54); if ((((_local56 >= 0)) && ((_local52 >= 0)))){ _local16 = (_local56 - _local45); _local17 = (_local57 - _local46); _local18 = (_local16 * _local36); _local19 = (_local16 * _local37); _local20 = (_local17 * _local36); _local21 = (_local17 * _local37); _local30.x = (_local30.x - (_local32 * (_local18 + _local20))); _local30.y = (_local30.y - (_local32 * (_local19 + _local21))); _local28 = (_local28 - (_local33 * ((((_local43.rA.x * _local19) - (_local43.rA.y * _local18)) + (_local44.rA.x * _local21)) - (_local44.rA.y * _local20)))); _local31.x = (_local31.x + (_local34 * (_local18 + _local20))); _local31.y = (_local31.y + (_local34 * (_local19 + _local21))); _local29 = (_local29 + (_local35 * ((((_local43.rB.x * _local19) - (_local43.rB.y * _local18)) + (_local44.rB.x * _local21)) - (_local44.rB.y * _local20)))); _local43.normalImpulse = _local56; _local44.normalImpulse = _local57; break; }; _local56 = 0; _local57 = (-(_local44.normalMass) * _local54); _local51 = ((_local25.K.col2.x * _local57) + _local53); _local52 = 0; if ((((_local57 >= 0)) && ((_local51 >= 0)))){ _local16 = (_local56 - _local45); _local17 = (_local57 - _local46); _local18 = (_local16 * _local36); _local19 = (_local16 * _local37); _local20 = (_local17 * _local36); _local21 = (_local17 * _local37); _local30.x = (_local30.x - (_local32 * (_local18 + _local20))); _local30.y = (_local30.y - (_local32 * (_local19 + _local21))); _local28 = (_local28 - (_local33 * ((((_local43.rA.x * _local19) - (_local43.rA.y * _local18)) + (_local44.rA.x * _local21)) - (_local44.rA.y * _local20)))); _local31.x = (_local31.x + (_local34 * (_local18 + _local20))); _local31.y = (_local31.y + (_local34 * (_local19 + _local21))); _local29 = (_local29 + (_local35 * ((((_local43.rB.x * _local19) - (_local43.rB.y * _local18)) + (_local44.rB.x * _local21)) - (_local44.rB.y * _local20)))); _local43.normalImpulse = _local56; _local44.normalImpulse = _local57; break; }; _local56 = 0; _local57 = 0; _local51 = _local53; _local52 = _local54; if ((((_local51 >= 0)) && ((_local52 >= 0)))){ _local16 = (_local56 - _local45); _local17 = (_local57 - _local46); _local18 = (_local16 * _local36); _local19 = (_local16 * _local37); _local20 = (_local17 * _local36); _local21 = (_local17 * _local37); _local30.x = (_local30.x - (_local32 * (_local18 + _local20))); _local30.y = (_local30.y - (_local32 * (_local19 + _local21))); _local28 = (_local28 - (_local33 * ((((_local43.rA.x * _local19) - (_local43.rA.y * _local18)) + (_local44.rA.x * _local21)) - (_local44.rA.y * _local20)))); _local31.x = (_local31.x + (_local34 * (_local18 + _local20))); _local31.y = (_local31.y + (_local34 * (_local19 + _local21))); _local29 = (_local29 + (_local35 * ((((_local43.rB.x * _local19) - (_local43.rB.y * _local18)) + (_local44.rB.x * _local21)) - (_local44.rB.y * _local20)))); _local43.normalImpulse = _local56; _local44.normalImpulse = _local57; break; }; break; }; }; _local26.m_angularVelocity = _local28; _local27.m_angularVelocity = _local29; _local24++; }; } 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.m_points[_local4]; _local6 = _local2.points[_local4]; _local5.m_normalImpulse = _local6.normalImpulse; _local5.m_tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local4:b2ContactConstraint; var _local5:b2Body; var _local6:b2Body; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:int; var _local13:b2ContactConstraintPoint; var _local14:b2Vec2; 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 _local2:Number = 0; var _local3:int; while (_local3 < m_constraintCount) { _local4 = m_constraints[_local3]; _local5 = _local4.bodyA; _local6 = _local4.bodyB; _local7 = (_local5.m_mass * _local5.m_invMass); _local8 = (_local5.m_mass * _local5.m_invI); _local9 = (_local6.m_mass * _local6.m_invMass); _local10 = (_local6.m_mass * _local6.m_invI); s_psm.Initialize(_local4); _local11 = s_psm.m_normal; _local12 = 0; while (_local12 < _local4.pointCount) { _local13 = _local4.points[_local12]; _local14 = s_psm.m_points[_local12]; _local15 = s_psm.m_separations[_local12]; _local16 = (_local14.x - _local5.m_sweep.c.x); _local17 = (_local14.y - _local5.m_sweep.c.y); _local18 = (_local14.x - _local6.m_sweep.c.x); _local19 = (_local14.y - _local6.m_sweep.c.y); _local2 = ((_local2 < _local15)) ? _local2 : _local15; _local20 = b2Math.Clamp((_arg1 * (_local15 + b2Settings.b2_linearSlop)), -(b2Settings.b2_maxLinearCorrection), 0); _local21 = (-(_local13.equalizedMass) * _local20); _local22 = (_local21 * _local11.x); _local23 = (_local21 * _local11.y); _local5.m_sweep.c.x = (_local5.m_sweep.c.x - (_local7 * _local22)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y - (_local7 * _local23)); _local5.m_sweep.a = (_local5.m_sweep.a - (_local8 * ((_local16 * _local23) - (_local17 * _local22)))); _local5.SynchronizeTransform(); _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_local9 * _local22)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_local9 * _local23)); _local6.m_sweep.a = (_local6.m_sweep.a + (_local10 * ((_local18 * _local23) - (_local19 * _local22)))); _local6.SynchronizeTransform(); _local12++; }; _local3++; }; return ((_local2 > (-1.5 * b2Settings.b2_linearSlop))); } } }//package Box2D.Dynamics.Contacts
Section 51
//b2EdgeAndCircleContact (Box2D.Dynamics.Contacts.b2EdgeAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2EdgeAndCircleContact extends b2Contact { public function Reset(_arg1:b2Fixture, _arg2:b2Fixture):void{ super.Reset(_arg1, _arg2); } override b2internal function Evaluate():void{ var _local1:b2Body = m_fixtureA.GetBody(); var _local2:b2Body = m_fixtureB.GetBody(); b2CollideEdgeAndCircle(m_manifold, (m_fixtureA.GetShape() as b2EdgeShape), _local1.m_xf, (m_fixtureB.GetShape() as b2CircleShape), _local2.m_xf); } private function b2CollideEdgeAndCircle(_arg1:b2Manifold, _arg2:b2EdgeShape, _arg3:b2Transform, _arg4:b2CircleShape, _arg5:b2Transform):void{ } public static function Create(_arg1):b2Contact{ return (new (b2EdgeAndCircleContact)); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } } }//package Box2D.Dynamics.Contacts
Section 52
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { public function Reset(_arg1:b2Fixture, _arg2:b2Fixture):void{ super.Reset(_arg1, _arg2); b2Settings.b2Assert((_arg1.GetType() == b2Shape.e_polygonShape)); b2Settings.b2Assert((_arg2.GetType() == b2Shape.e_circleShape)); } override b2internal function Evaluate():void{ var _local1:b2Body = m_fixtureA.m_body; var _local2:b2Body = m_fixtureB.m_body; b2Collision.CollidePolygonAndCircle(m_manifold, (m_fixtureA.GetShape() as b2PolygonShape), _local1.m_xf, (m_fixtureB.GetShape() as b2CircleShape), _local2.m_xf); } public static function Create(_arg1):b2Contact{ return (new (b2PolyAndCircleContact)); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } } }//package Box2D.Dynamics.Contacts
Section 53
//b2PolyAndEdgeContact (Box2D.Dynamics.Contacts.b2PolyAndEdgeContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolyAndEdgeContact extends b2Contact { public function Reset(_arg1:b2Fixture, _arg2:b2Fixture):void{ super.Reset(_arg1, _arg2); b2Settings.b2Assert((_arg1.GetType() == b2Shape.e_polygonShape)); b2Settings.b2Assert((_arg2.GetType() == b2Shape.e_edgeShape)); } override b2internal function Evaluate():void{ var _local1:b2Body = m_fixtureA.GetBody(); var _local2:b2Body = m_fixtureB.GetBody(); b2CollidePolyAndEdge(m_manifold, (m_fixtureA.GetShape() as b2PolygonShape), _local1.m_xf, (m_fixtureB.GetShape() as b2EdgeShape), _local2.m_xf); } private function b2CollidePolyAndEdge(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2Transform, _arg4:b2EdgeShape, _arg5:b2Transform):void{ } public static function Create(_arg1):b2Contact{ return (new (b2PolyAndEdgeContact)); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } } }//package Box2D.Dynamics.Contacts
Section 54
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonContact extends b2Contact { public function Reset(_arg1:b2Fixture, _arg2:b2Fixture):void{ super.Reset(_arg1, _arg2); } override b2internal function Evaluate():void{ var _local1:b2Body = m_fixtureA.GetBody(); var _local2:b2Body = m_fixtureB.GetBody(); b2Collision.CollidePolygons(m_manifold, (m_fixtureA.GetShape() as b2PolygonShape), _local1.m_xf, (m_fixtureB.GetShape() as b2PolygonShape), _local2.m_xf); } public static function Create(_arg1):b2Contact{ return (new (b2PolygonContact)); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } } }//package Box2D.Dynamics.Contacts
Section 55
//b2PositionSolverManifold (Box2D.Dynamics.Contacts.b2PositionSolverManifold) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; class b2PositionSolverManifold { public var m_normal:b2Vec2; public var m_points:Array; public var m_separations:Array; private static var circlePointA:b2Vec2 = new b2Vec2(); private static var circlePointB:b2Vec2 = new b2Vec2(); function b2PositionSolverManifold(){ m_normal = new b2Vec2(); m_separations = new Array(b2Settings.b2_maxManifoldPoints); m_points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { m_points[_local1] = new b2Vec2(); _local1++; }; } public function Initialize(_arg1:b2ContactConstraint):void{ var _local2:int; var _local3:Number; var _local4:Number; var _local5:b2Mat22; var _local6:b2Vec2; 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; b2Settings.b2Assert((_arg1.pointCount > 0)); switch (_arg1.type){ case b2Manifold.e_circles: _local5 = _arg1.bodyA.m_xf.R; _local6 = _arg1.localPoint; _local9 = (_arg1.bodyA.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y))); _local10 = (_arg1.bodyA.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y))); _local5 = _arg1.bodyB.m_xf.R; _local6 = _arg1.points[0].localPoint; _local11 = (_arg1.bodyB.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y))); _local12 = (_arg1.bodyB.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y))); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = ((_local13 * _local13) + (_local14 * _local14)); if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local16 = Math.sqrt(_local15); m_normal.x = (_local13 / _local16); m_normal.y = (_local14 / _local16); } else { m_normal.x = 1; m_normal.y = 0; }; m_points[0].x = (0.5 * (_local9 + _local11)); m_points[0].y = (0.5 * (_local10 + _local12)); m_separations[0] = (((_local13 * m_normal.x) + (_local14 * m_normal.y)) - _arg1.radius); break; case b2Manifold.e_faceA: _local5 = _arg1.bodyA.m_xf.R; _local6 = _arg1.localPlaneNormal; m_normal.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_normal.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); _local5 = _arg1.bodyA.m_xf.R; _local6 = _arg1.localPoint; _local7 = (_arg1.bodyA.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y))); _local8 = (_arg1.bodyA.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y))); _local5 = _arg1.bodyB.m_xf.R; _local2 = 0; while (_local2 < _arg1.pointCount) { _local6 = _arg1.points[_local2].localPoint; _local3 = (_arg1.bodyB.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y))); _local4 = (_arg1.bodyB.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y))); m_separations[_local2] = ((((_local3 - _local7) * m_normal.x) + ((_local4 - _local8) * m_normal.y)) - _arg1.radius); m_points[_local2].x = _local3; m_points[_local2].y = _local4; _local2++; }; break; case b2Manifold.e_faceB: _local5 = _arg1.bodyB.m_xf.R; _local6 = _arg1.localPlaneNormal; m_normal.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_normal.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); _local5 = _arg1.bodyB.m_xf.R; _local6 = _arg1.localPoint; _local7 = (_arg1.bodyB.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y))); _local8 = (_arg1.bodyB.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y))); _local5 = _arg1.bodyA.m_xf.R; _local2 = 0; while (_local2 < _arg1.pointCount) { _local6 = _arg1.points[_local2].localPoint; _local3 = (_arg1.bodyA.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y))); _local4 = (_arg1.bodyA.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y))); m_separations[_local2] = ((((_local3 - _local7) * m_normal.x) + ((_local4 - _local8) * m_normal.y)) - _arg1.radius); m_points[_local2].Set(_local3, _local4); _local2++; }; m_normal.x = (m_normal.x * -1); m_normal.y = (m_normal.y * -1); break; }; } } }//package Box2D.Dynamics.Contacts
Section 56
//b2Controller (Box2D.Dynamics.Controllers.b2Controller) package Box2D.Dynamics.Controllers { import Box2D.Dynamics.*; import Box2D.Common.*; public class b2Controller { b2internal var m_next:b2Controller; b2internal var m_prev:b2Controller; protected var m_bodyList:b2ControllerEdge; protected var m_bodyCount:int; b2internal var m_world:b2World; public function Step(_arg1:b2TimeStep):void{ } public function Draw(_arg1:b2DebugDraw):void{ } public function AddBody(_arg1:b2Body):void{ var _local2:b2ControllerEdge = new b2ControllerEdge(); _local2.controller = this; _local2.body = _arg1; _local2.nextBody = m_bodyList; _local2.prevBody = null; m_bodyList = _local2; if (_local2.nextBody){ _local2.nextBody.prevBody = _local2; }; m_bodyCount++; _local2.nextController = _arg1.m_controllerList; _local2.prevController = null; _arg1.m_controllerList = _local2; if (_local2.nextController){ _local2.nextController.prevController = _local2; }; _arg1.m_controllerCount++; } public function RemoveBody(_arg1:b2Body):void{ var _local2:b2ControllerEdge = _arg1.m_controllerList; while (((_local2) && (!((_local2.controller == this))))) { _local2 = _local2.nextController; }; if (_local2.prevBody){ _local2.prevBody.nextBody = _local2.nextBody; }; if (_local2.nextBody){ _local2.nextBody.prevBody = _local2.prevBody; }; if (_local2.nextController){ _local2.nextController.prevController = _local2.prevController; }; if (_local2.prevController){ _local2.prevController.nextController = _local2.nextController; }; if (m_bodyList == _local2){ m_bodyList = _local2.nextBody; }; if (_arg1.m_controllerList == _local2){ _arg1.m_controllerList = _local2.nextController; }; _arg1.m_controllerCount--; m_bodyCount--; } public function Clear():void{ while (m_bodyList) { RemoveBody(m_bodyList.body); }; } public function GetNext():b2Controller{ return (m_next); } public function GetWorld():b2World{ return (m_world); } public function GetBodyList():b2ControllerEdge{ return (m_bodyList); } } }//package Box2D.Dynamics.Controllers
Section 57
//b2ControllerEdge (Box2D.Dynamics.Controllers.b2ControllerEdge) package Box2D.Dynamics.Controllers { import Box2D.Dynamics.*; public class b2ControllerEdge { public var controller:b2Controller; public var body:b2Body; public var prevBody:b2ControllerEdge; public var nextBody:b2ControllerEdge; public var prevController:b2ControllerEdge; public var nextController:b2ControllerEdge; } }//package Box2D.Dynamics.Controllers
Section 58
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { private var m_localAnchor1:b2Vec2; private var m_localAnchor2:b2Vec2; private var m_u:b2Vec2; private var m_frequencyHz:Number; private var m_dampingRatio:Number; private var m_gamma:Number; private var m_bias:Number; private var m_impulse:Number; private var m_mass:Number; private 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.localAnchorA); m_localAnchor2.SetV(_arg1.localAnchorB); m_length = _arg1.length; m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_impulse = 0; m_gamma = 0; m_bias = 0; } override public function GetAnchorA():b2Vec2{ return (m_bodyA.GetWorldPoint(m_localAnchor1)); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2(((_arg1 * m_impulse) * m_u.x), ((_arg1 * m_impulse) * m_u.y))); } override public function GetReactionTorque(_arg1:Number):Number{ return (0); } public function GetLength():Number{ return (m_length); } public function SetLength(_arg1:Number):void{ m_length = _arg1; } public function GetFrequency():Number{ return (m_frequencyHz); } public function SetFrequency(_arg1:Number):void{ m_frequencyHz = _arg1; } public function GetDampingRatio():Number{ return (m_dampingRatio); } public function SetDampingRatio(_arg1:Number):void{ m_dampingRatio = _arg1; } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local7:Number; var _local9:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; _local4 = m_bodyA; _local5 = m_bodyB; _local2 = _local4.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local7 = (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; var _local8:Number = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (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 = ((_local13)!=0) ? (1 / _local13) : 0; 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 = (_arg1.dt * (_local16 + (_arg1.dt * _local17))); m_gamma = ((m_gamma)!=0) ? (1 / m_gamma) : 0; m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (_local13 + m_gamma); m_mass = ((m_mass)!=0) ? (1 / m_mass) : 0; }; 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 b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body = m_bodyA; var _local4:b2Body = m_bodyB; _local2 = _local3.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local7:Number = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); var _local11:Number = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); var _local12:Number = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); var _local13:Number = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); var _local14:Number = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); var _local15:Number = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); var _local16:Number = (_local15 * m_u.x); var _local17:Number = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:b2Mat22; if (m_frequencyHz > 0){ return (true); }; var _local3:b2Body = m_bodyA; var _local4:b2Body = m_bodyB; _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 = (((_local4.m_sweep.c.x + _local8) - _local3.m_sweep.c.x) - _local5); var _local11:Number = (((_local4.m_sweep.c.y + _local9) - _local3.m_sweep.c.y) - _local6); var _local12:Number = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local12); _local11 = (_local11 / _local12); var _local13:Number = (_local12 - m_length); _local13 = b2Math.Clamp(_local13, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local14:Number = (-(m_mass) * _local13); m_u.Set(_local10, _local11); var _local15:Number = (_local14 * m_u.x); var _local16:Number = (_local14 * m_u.y); _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local15)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local16)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local5 * _local16) - (_local6 * _local15)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local15)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local16)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); return ((b2Math.Abs(_local13) < b2Settings.b2_linearSlop)); } } }//package Box2D.Dynamics.Joints
Section 59
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2DistanceJointDef extends b2JointDef { public var localAnchorA:b2Vec2; public var localAnchorB:b2Vec2; public var length:Number; public var frequencyHz:Number; public var dampingRatio:Number; public function b2DistanceJointDef(){ localAnchorA = new b2Vec2(); localAnchorB = 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{ bodyA = _arg1; bodyB = _arg2; localAnchorA.SetV(bodyA.GetLocalPoint(_arg3)); localAnchorB.SetV(bodyB.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 60
//b2FrictionJoint (Box2D.Dynamics.Joints.b2FrictionJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2FrictionJoint extends b2Joint { private var m_localAnchorA:b2Vec2; private var m_localAnchorB:b2Vec2; public var m_linearMass:b2Mat22; public var m_angularMass:Number; private var m_linearImpulse:b2Vec2; private var m_angularImpulse:Number; private var m_maxForce:Number; private var m_maxTorque:Number; public function b2FrictionJoint(_arg1:b2FrictionJointDef){ m_localAnchorA = new b2Vec2(); m_localAnchorB = new b2Vec2(); m_linearMass = new b2Mat22(); m_linearImpulse = new b2Vec2(); super(_arg1); m_localAnchorA.SetV(_arg1.localAnchorA); m_localAnchorB.SetV(_arg1.localAnchorB); m_linearMass.SetZero(); m_angularMass = 0; m_linearImpulse.SetZero(); m_angularImpulse = 0; m_maxForce = _arg1.maxForce; m_maxTorque = _arg1.maxTorque; } override public function GetAnchorA():b2Vec2{ return (m_bodyA.GetWorldPoint(m_localAnchorA)); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchorB)); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2((_arg1 * m_linearImpulse.x), (_arg1 * m_linearImpulse.y))); } override public function GetReactionTorque(_arg1:Number):Number{ return ((_arg1 * m_angularImpulse)); } public function SetMaxForce(_arg1:Number):void{ m_maxForce = _arg1; } public function GetMaxForce():Number{ return (m_maxForce); } public function SetMaxTorque(_arg1:Number):void{ m_maxTorque = _arg1; } public function GetMaxTorque():Number{ return (m_maxTorque); } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local8:Number; var _local10:Number; var _local12:Number; var _local13:Number; var _local14:b2Mat22; var _local15:b2Vec2; _local4 = m_bodyA; _local5 = m_bodyB; _local2 = _local4.m_xf.R; _local6 = (m_localAnchorA.x - _local4.m_sweep.localCenter.x); var _local7:Number = (m_localAnchorA.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_localAnchorB.x - _local5.m_sweep.localCenter.x); var _local9:Number = (m_localAnchorB.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; _local10 = _local4.m_invMass; var _local11:Number = _local5.m_invMass; _local12 = _local4.m_invI; _local13 = _local5.m_invI; _local14 = new b2Mat22(); _local14.col1.x = (_local10 + _local11); _local14.col2.x = 0; _local14.col1.y = 0; _local14.col2.y = (_local10 + _local11); _local14.col1.x = (_local14.col1.x + ((_local12 * _local7) * _local7)); _local14.col2.x = (_local14.col2.x + ((-(_local12) * _local6) * _local7)); _local14.col1.y = (_local14.col1.y + ((-(_local12) * _local6) * _local7)); _local14.col2.y = (_local14.col2.y + ((_local12 * _local6) * _local6)); _local14.col1.x = (_local14.col1.x + ((_local13 * _local9) * _local9)); _local14.col2.x = (_local14.col2.x + ((-(_local13) * _local8) * _local9)); _local14.col1.y = (_local14.col1.y + ((-(_local13) * _local8) * _local9)); _local14.col2.y = (_local14.col2.y + ((_local13 * _local8) * _local8)); _local14.GetInverse(m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > 0){ m_angularMass = (1 / m_angularMass); }; if (_arg1.warmStarting){ m_linearImpulse.x = (m_linearImpulse.x * _arg1.dtRatio); m_linearImpulse.y = (m_linearImpulse.y * _arg1.dtRatio); m_angularImpulse = (m_angularImpulse * _arg1.dtRatio); _local15 = m_linearImpulse; _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local10 * _local15.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local10 * _local15.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local12 * (((_local6 * _local15.y) - (_local7 * _local15.x)) + m_angularImpulse))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local11 * _local15.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local11 * _local15.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local13 * (((_local8 * _local15.y) - (_local9 * _local15.x)) + m_angularImpulse))); } else { m_linearImpulse.SetZero(); m_angularImpulse = 0; }; } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local18:Number; var _local4:b2Body = m_bodyA; var _local5:b2Body = m_bodyB; var _local6:b2Vec2 = _local4.m_linearVelocity; var _local7:Number = _local4.m_angularVelocity; var _local8:b2Vec2 = _local5.m_linearVelocity; var _local9:Number = _local5.m_angularVelocity; var _local10:Number = _local4.m_invMass; var _local11:Number = _local5.m_invMass; var _local12:Number = _local4.m_invI; var _local13:Number = _local5.m_invI; _local2 = _local4.m_xf.R; var _local14:Number = (m_localAnchorA.x - _local4.m_sweep.localCenter.x); var _local15:Number = (m_localAnchorA.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local14) + (_local2.col2.x * _local15)); _local15 = ((_local2.col1.y * _local14) + (_local2.col2.y * _local15)); _local14 = _local3; _local2 = _local5.m_xf.R; var _local16:Number = (m_localAnchorB.x - _local5.m_sweep.localCenter.x); var _local17:Number = (m_localAnchorB.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local16) + (_local2.col2.x * _local17)); _local17 = ((_local2.col1.y * _local16) + (_local2.col2.y * _local17)); _local16 = _local3; var _local19:Number = (_local9 - _local7); var _local20:Number = (-(m_angularMass) * _local19); var _local21:Number = m_angularImpulse; _local18 = (_arg1.dt * m_maxTorque); m_angularImpulse = b2Math.Clamp((m_angularImpulse + _local20), -(_local18), _local18); _local20 = (m_angularImpulse - _local21); _local7 = (_local7 - (_local12 * _local20)); _local9 = (_local9 + (_local13 * _local20)); var _local22:Number = (((_local8.x - (_local9 * _local17)) - _local6.x) + (_local7 * _local15)); var _local23:Number = (((_local8.y + (_local9 * _local16)) - _local6.y) - (_local7 * _local14)); var _local24:b2Vec2 = b2Math.MulMV(m_linearMass, new b2Vec2(-(_local22), -(_local23))); var _local25:b2Vec2 = m_linearImpulse.Copy(); m_linearImpulse.Add(_local24); _local18 = (_arg1.dt * m_maxForce); if (m_linearImpulse.LengthSquared() > (_local18 * _local18)){ m_linearImpulse.Normalize(); m_linearImpulse.Multiply(_local18); }; _local24 = b2Math.SubtractVV(m_linearImpulse, _local25); _local6.x = (_local6.x - (_local10 * _local24.x)); _local6.y = (_local6.y - (_local10 * _local24.y)); _local7 = (_local7 - (_local12 * ((_local14 * _local24.y) - (_local15 * _local24.x)))); _local8.x = (_local8.x + (_local11 * _local24.x)); _local8.y = (_local8.y + (_local11 * _local24.y)); _local9 = (_local9 + (_local13 * ((_local16 * _local24.y) - (_local17 * _local24.x)))); _local4.m_angularVelocity = _local7; _local5.m_angularVelocity = _local9; } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ return (true); } } }//package Box2D.Dynamics.Joints
Section 61
//b2FrictionJointDef (Box2D.Dynamics.Joints.b2FrictionJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2FrictionJointDef extends b2JointDef { public var localAnchorA:b2Vec2; public var localAnchorB:b2Vec2; public var maxForce:Number; public var maxTorque:Number; public function b2FrictionJointDef(){ localAnchorA = new b2Vec2(); localAnchorB = new b2Vec2(); super(); type = b2Joint.e_frictionJoint; maxForce = 0; maxTorque = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ bodyA = _arg1; bodyB = _arg2; localAnchorA.SetV(bodyA.GetLocalPoint(_arg3)); localAnchorB.SetV(bodyB.GetLocalPoint(_arg3)); } } }//package Box2D.Dynamics.Joints
Section 62
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { private var m_ground1:b2Body; private var m_ground2:b2Body; private var m_revolute1:b2RevoluteJoint; private var m_prismatic1:b2PrismaticJoint; private var m_revolute2:b2RevoluteJoint; private var m_prismatic2:b2PrismaticJoint; private var m_groundAnchor1:b2Vec2; private var m_groundAnchor2:b2Vec2; private var m_localAnchor1:b2Vec2; private var m_localAnchor2:b2Vec2; private var m_J:b2Jacobian; private var m_constant:Number; private var m_ratio:Number; private var m_mass:Number; private var m_impulse:Number; public function b2GearJoint(_arg1:b2GearJointDef){ var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); var _local2:int = _arg1.joint1.m_type; var _local3:int = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.GetBodyA(); m_bodyA = _arg1.joint1.GetBodyB(); 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.GetBodyA(); m_bodyB = _arg1.joint2.GetBodyB(); 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_impulse = 0; } override public function GetAnchorA():b2Vec2{ return (m_bodyA.GetWorldPoint(m_localAnchor1)); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2(((_arg1 * m_impulse) * m_J.linearB.x), ((_arg1 * m_impulse) * m_J.linearB.y))); } override public function GetReactionTorque(_arg1:Number):Number{ var _local2:b2Mat22 = m_bodyB.m_xf.R; var _local3:Number = (m_localAnchor1.x - m_bodyB.m_sweep.localCenter.x); var _local4:Number = (m_localAnchor1.y - m_bodyB.m_sweep.localCenter.y); var _local5:Number = ((_local2.col1.x * _local3) + (_local2.col2.x * _local4)); _local4 = ((_local2.col1.y * _local3) + (_local2.col2.y * _local4)); _local3 = _local5; var _local6:Number = (m_impulse * m_J.linearB.x); var _local7:Number = (m_impulse * m_J.linearB.y); return ((_arg1 * (((m_impulse * m_J.angularB) - (_local3 * _local7)) + (_local4 * _local6)))); } public function GetRatio():Number{ return (m_ratio); } public function SetRatio(_arg1:Number):void{ m_ratio = _arg1; } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Body; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local2:b2Body = m_ground1; var _local3:b2Body = m_ground2; _local4 = m_bodyA; var _local5:b2Body = m_bodyB; var _local14:Number = 0; m_J.SetZero(); if (m_revolute1){ m_J.angularA = -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.linearA.Set(-(_local6), -(_local7)); m_J.angularA = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angularB = -(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.linearB.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angularB = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = ((_local14 > 0)) ? (1 / _local14) : 0; if (_arg1.warmStarting){ _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * m_impulse) * m_J.linearA.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * m_impulse) * m_J.linearA.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * m_impulse) * m_J.angularA)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * m_impulse) * m_J.linearB.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * m_impulse) * m_J.linearB.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * m_impulse) * m_J.angularB)); } else { m_impulse = 0; }; } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body = m_bodyA; var _local3:b2Body = m_bodyB; var _local4:Number = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local5:Number = (-(m_mass) * _local4); m_impulse = (m_impulse + _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local5) * m_J.linearA.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local5) * m_J.linearA.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local5) * m_J.angularA)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local5) * m_J.linearB.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local5) * m_J.linearB.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local5) * m_J.angularB)); } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ var _local5:Number; var _local6:Number; var _local2:Number = 0; var _local3:b2Body = m_bodyA; var _local4:b2Body = m_bodyB; if (m_revolute1){ _local5 = m_revolute1.GetJointAngle(); } else { _local5 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local6 = m_revolute2.GetJointAngle(); } else { _local6 = m_prismatic2.GetJointTranslation(); }; var _local7:Number = (m_constant - (_local5 + (m_ratio * _local6))); var _local8:Number = (-(m_mass) * _local7); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local8) * m_J.linearA.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local8) * m_J.linearA.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local8) * m_J.angularA)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local4.m_invMass * _local8) * m_J.linearB.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local4.m_invMass * _local8) * m_J.linearB.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local4.m_invI * _local8) * m_J.angularB)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); return ((_local2 < b2Settings.b2_linearSlop)); } } }//package Box2D.Dynamics.Joints
Section 63
//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 64
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linearA:b2Vec2; public var angularA:Number; public var linearB:b2Vec2; public var angularB:Number; public function b2Jacobian(){ linearA = new b2Vec2(); linearB = new b2Vec2(); super(); } public function SetZero():void{ linearA.SetZero(); angularA = 0; linearB.SetZero(); angularB = 0; } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linearA.SetV(_arg1); angularA = _arg2; linearB.SetV(_arg3); angularB = _arg4; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linearA.x * _arg1.x) + (linearA.y * _arg1.y)) + (angularA * _arg2)) + ((linearB.x * _arg3.x) + (linearB.y * _arg3.y))) + (angularB * _arg4))); } } }//package Box2D.Dynamics.Joints
Section 65
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Joint { b2internal var m_type:int; b2internal var m_prev:b2Joint; b2internal var m_next:b2Joint; b2internal var m_edgeA:b2JointEdge; b2internal var m_edgeB:b2JointEdge; b2internal var m_bodyA:b2Body; b2internal var m_bodyB:b2Body; b2internal var m_islandFlag:Boolean; b2internal var m_collideConnected:Boolean; private var m_userData; b2internal var m_localCenterA:b2Vec2; b2internal var m_localCenterB:b2Vec2; b2internal var m_invMassA:Number; b2internal var m_invMassB:Number; b2internal var m_invIA:Number; b2internal var m_invIB:Number; b2internal static const e_unknownJoint:int = 0; b2internal static const e_revoluteJoint:int = 1; b2internal static const e_prismaticJoint:int = 2; b2internal static const e_distanceJoint:int = 3; b2internal static const e_pulleyJoint:int = 4; b2internal static const e_mouseJoint:int = 5; b2internal static const e_gearJoint:int = 6; b2internal static const e_lineJoint:int = 7; b2internal static const e_weldJoint:int = 8; b2internal static const e_frictionJoint:int = 9; b2internal static const e_inactiveLimit:int = 0; b2internal static const e_atLowerLimit:int = 1; b2internal static const e_atUpperLimit:int = 2; b2internal static const e_equalLimits:int = 3; public function b2Joint(_arg1:b2JointDef){ m_edgeA = new b2JointEdge(); m_edgeB = new b2JointEdge(); m_localCenterA = new b2Vec2(); m_localCenterB = new b2Vec2(); super(); b2Settings.b2Assert(!((_arg1.bodyA == _arg1.bodyB))); m_type = _arg1.type; m_prev = null; m_next = null; m_bodyA = _arg1.bodyA; m_bodyB = _arg1.bodyB; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } public function GetType():int{ return (m_type); } public function GetAnchorA():b2Vec2{ return (null); } public function GetAnchorB():b2Vec2{ return (null); } public function GetReactionForce(_arg1:Number):b2Vec2{ return (null); } public function GetReactionTorque(_arg1:Number):Number{ return (0); } public function GetBodyA():b2Body{ return (m_bodyA); } public function GetBodyB():b2Body{ return (m_bodyB); } public function GetNext():b2Joint{ return (m_next); } public function GetUserData(){ return (m_userData); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function IsActive():Boolean{ return (((m_bodyA.IsActive()) && (m_bodyB.IsActive()))); } b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ } b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } b2internal function FinalizeVelocityConstraints():void{ } b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ return (false); } b2internal 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; case e_lineJoint: _local3 = new b2LineJoint((_arg1 as b2LineJointDef)); break; case e_weldJoint: _local3 = new b2WeldJoint((_arg1 as b2WeldJointDef)); break; case e_frictionJoint: _local3 = new b2FrictionJoint((_arg1 as b2FrictionJointDef)); break; default: break; }; return (_local3); } b2internal static function Destroy(_arg1:b2Joint, _arg2):void{ } } }//package Box2D.Dynamics.Joints
Section 66
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var type:int; public var userData; public var bodyA:b2Body; public var bodyB:b2Body; public var collideConnected:Boolean; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; bodyA = null; bodyB = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 67
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var other:b2Body; public var joint:b2Joint; public var prev:b2JointEdge; public var next:b2JointEdge; } }//package Box2D.Dynamics.Joints
Section 68
//b2LineJoint (Box2D.Dynamics.Joints.b2LineJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2LineJoint extends b2Joint { b2internal var m_localAnchor1:b2Vec2; b2internal var m_localAnchor2:b2Vec2; b2internal var m_localXAxis1:b2Vec2; private var m_localYAxis1:b2Vec2; private var m_axis:b2Vec2; private var m_perp:b2Vec2; private var m_s1:Number; private var m_s2:Number; private var m_a1:Number; private var m_a2:Number; private var m_K:b2Mat22; private var m_impulse:b2Vec2; private var m_motorMass:Number; private var m_motorImpulse:Number; private var m_lowerTranslation:Number; private var m_upperTranslation:Number; private var m_maxMotorForce:Number; private var m_motorSpeed:Number; private var m_enableLimit:Boolean; private var m_enableMotor:Boolean; private var m_limitState:int; public function b2LineJoint(_arg1:b2LineJointDef){ 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_axis = new b2Vec2(); m_perp = new b2Vec2(); m_K = new b2Mat22(); m_impulse = new b2Vec2(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchorA); m_localAnchor2.SetV(_arg1.localAnchorB); m_localXAxis1.SetV(_arg1.localAxisA); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_impulse.SetZero(); m_motorMass = 0; m_motorImpulse = 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; m_limitState = e_inactiveLimit; m_axis.SetZero(); m_perp.SetZero(); } override public function GetAnchorA():b2Vec2{ return (m_bodyA.GetWorldPoint(m_localAnchor1)); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2((_arg1 * ((m_impulse.x * m_perp.x) + ((m_motorImpulse + m_impulse.y) * m_axis.x))), (_arg1 * ((m_impulse.x * m_perp.y) + ((m_motorImpulse + m_impulse.y) * m_axis.y))))); } override public function GetReactionTorque(_arg1:Number):Number{ return ((_arg1 * m_impulse.y)); } public function GetJointTranslation():Number{ var _local3:b2Mat22; var _local1:b2Body = m_bodyA; var _local2:b2Body = m_bodyB; var _local4:b2Vec2 = _local1.GetWorldPoint(m_localAnchor1); var _local5:b2Vec2 = _local2.GetWorldPoint(m_localAnchor2); var _local6:Number = (_local5.x - _local4.x); var _local7:Number = (_local5.y - _local4.y); var _local8:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local9:Number = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function GetJointSpeed():Number{ var _local3:b2Mat22; var _local1:b2Body = m_bodyA; var _local2:b2Body = m_bodyB; _local3 = _local1.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; var _local9:Number = (_local1.m_sweep.c.x + _local4); var _local10:Number = (_local1.m_sweep.c.y + _local5); var _local11:Number = (_local2.m_sweep.c.x + _local7); var _local12:Number = (_local2.m_sweep.c.y + _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local16:b2Vec2 = _local1.m_linearVelocity; var _local17:b2Vec2 = _local2.m_linearVelocity; var _local18:Number = _local1.m_angularVelocity; var _local19:Number = _local2.m_angularVelocity; var _local20:Number = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function EnableLimit(_arg1:Boolean):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_enableLimit = _arg1; } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function EnableMotor(_arg1:Boolean):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_enableMotor = _arg1; } public function SetMotorSpeed(_arg1:Number):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_motorSpeed = _arg1; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } public function SetMaxMotorForce(_arg1:Number):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_maxMotorForce = _arg1; } public function GetMaxMotorForce():Number{ return (m_maxMotorForce); } public function GetMotorForce():Number{ return (m_motorImpulse); } override b2internal 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 _local2:b2Body = m_bodyA; var _local3:b2Body = m_bodyB; m_localCenterA.SetV(_local2.GetLocalCenter()); m_localCenterB.SetV(_local3.GetLocalCenter()); var _local6:b2Transform = _local2.GetTransform(); var _local7:b2Transform = _local3.GetTransform(); _local4 = _local2.m_xf.R; var _local8:Number = (m_localAnchor1.x - m_localCenterA.x); var _local9:Number = (m_localAnchor1.y - m_localCenterA.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local4 = _local3.m_xf.R; var _local10:Number = (m_localAnchor2.x - m_localCenterB.x); var _local11:Number = (m_localAnchor2.y - m_localCenterB.y); _local5 = ((_local4.col1.x * _local10) + (_local4.col2.x * _local11)); _local11 = ((_local4.col1.y * _local10) + (_local4.col2.y * _local11)); _local10 = _local5; var _local12:Number = (((_local3.m_sweep.c.x + _local10) - _local2.m_sweep.c.x) - _local8); var _local13:Number = (((_local3.m_sweep.c.y + _local11) - _local2.m_sweep.c.y) - _local9); m_invMassA = _local2.m_invMass; m_invMassB = _local3.m_invMass; m_invIA = _local2.m_invI; m_invIB = _local3.m_invI; m_axis.SetV(b2Math.MulMV(_local6.R, m_localXAxis1)); m_a1 = (((_local12 + _local8) * m_axis.y) - ((_local13 + _local9) * m_axis.x)); m_a2 = ((_local10 * m_axis.y) - (_local11 * m_axis.x)); m_motorMass = (((m_invMassA + m_invMassB) + ((m_invIA * m_a1) * m_a1)) + ((m_invIB * m_a2) * m_a2)); m_motorMass = ((m_motorMass > Number.MIN_VALUE)) ? (1 / m_motorMass) : 0; m_perp.SetV(b2Math.MulMV(_local6.R, m_localYAxis1)); m_s1 = (((_local12 + _local8) * m_perp.y) - ((_local13 + _local9) * m_perp.x)); m_s2 = ((_local10 * m_perp.y) - (_local11 * m_perp.x)); var _local14:Number = m_invMassA; var _local15:Number = m_invMassB; var _local16:Number = m_invIA; var _local17:Number = m_invIB; m_K.col1.x = (((_local14 + _local15) + ((_local16 * m_s1) * m_s1)) + ((_local17 * m_s2) * m_s2)); m_K.col1.y = (((_local16 * m_s1) * m_a1) + ((_local17 * m_s2) * m_a2)); m_K.col2.x = m_K.col1.y; m_K.col2.y = (((_local14 + _local15) + ((_local16 * m_a1) * m_a1)) + ((_local17 * m_a2) * m_a2)); if (m_enableLimit){ _local18 = ((m_axis.x * _local12) + (m_axis.y * _local13)); if (b2Math.Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local18 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitState = e_atLowerLimit; m_impulse.y = 0; }; } else { if (_local18 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitState = e_atUpperLimit; m_impulse.y = 0; }; } else { m_limitState = e_inactiveLimit; m_impulse.y = 0; }; }; }; } else { m_limitState = e_inactiveLimit; }; if (m_enableMotor == false){ m_motorImpulse = 0; }; if (_arg1.warmStarting){ m_impulse.x = (m_impulse.x * _arg1.dtRatio); m_impulse.y = (m_impulse.y * _arg1.dtRatio); m_motorImpulse = (m_motorImpulse * _arg1.dtRatio); _local19 = ((m_impulse.x * m_perp.x) + ((m_motorImpulse + m_impulse.y) * m_axis.x)); _local20 = ((m_impulse.x * m_perp.y) + ((m_motorImpulse + m_impulse.y) * m_axis.y)); _local21 = ((m_impulse.x * m_s1) + ((m_motorImpulse + m_impulse.y) * m_a1)); _local22 = ((m_impulse.x * m_s2) + ((m_motorImpulse + m_impulse.y) * m_a2)); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (m_invMassA * _local19)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (m_invMassA * _local20)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (m_invIA * _local21)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (m_invMassB * _local19)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (m_invMassB * _local20)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (m_invIB * _local22)); } else { m_impulse.SetZero(); m_motorImpulse = 0; }; } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:b2Vec2; var _local19:b2Vec2; var _local20:Number; var _local21:Number; var _local22:Number; var _local2:b2Body = m_bodyA; var _local3:b2Body = m_bodyB; var _local4:b2Vec2 = _local2.m_linearVelocity; var _local5:Number = _local2.m_angularVelocity; var _local6:b2Vec2 = _local3.m_linearVelocity; var _local7:Number = _local3.m_angularVelocity; if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local13 = ((((m_axis.x * (_local6.x - _local4.x)) + (m_axis.y * (_local6.y - _local4.y))) + (m_a2 * _local7)) - (m_a1 * _local5)); _local14 = (m_motorMass * (m_motorSpeed - _local13)); _local15 = m_motorImpulse; _local16 = (_arg1.dt * m_maxMotorForce); m_motorImpulse = b2Math.Clamp((m_motorImpulse + _local14), -(_local16), _local16); _local14 = (m_motorImpulse - _local15); _local8 = (_local14 * m_axis.x); _local9 = (_local14 * m_axis.y); _local10 = (_local14 * m_a1); _local11 = (_local14 * m_a2); _local4.x = (_local4.x - (m_invMassA * _local8)); _local4.y = (_local4.y - (m_invMassA * _local9)); _local5 = (_local5 - (m_invIA * _local10)); _local6.x = (_local6.x + (m_invMassB * _local8)); _local6.y = (_local6.y + (m_invMassB * _local9)); _local7 = (_local7 + (m_invIB * _local11)); }; var _local12:Number = ((((m_perp.x * (_local6.x - _local4.x)) + (m_perp.y * (_local6.y - _local4.y))) + (m_s2 * _local7)) - (m_s1 * _local5)); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local17 = ((((m_axis.x * (_local6.x - _local4.x)) + (m_axis.y * (_local6.y - _local4.y))) + (m_a2 * _local7)) - (m_a1 * _local5)); _local18 = m_impulse.Copy(); _local19 = m_K.Solve(new b2Vec2(), -(_local12), -(_local17)); m_impulse.Add(_local19); if (m_limitState == e_atLowerLimit){ m_impulse.y = b2Math.Max(m_impulse.y, 0); } else { if (m_limitState == e_atUpperLimit){ m_impulse.y = b2Math.Min(m_impulse.y, 0); }; }; _local20 = (-(_local12) - ((m_impulse.y - _local18.y) * m_K.col2.x)); if (m_K.col1.x != 0){ _local21 = ((_local20 / m_K.col1.x) + _local18.x); } else { _local21 = _local18.x; }; m_impulse.x = _local21; _local19.x = (m_impulse.x - _local18.x); _local19.y = (m_impulse.y - _local18.y); _local8 = ((_local19.x * m_perp.x) + (_local19.y * m_axis.x)); _local9 = ((_local19.x * m_perp.y) + (_local19.y * m_axis.y)); _local10 = ((_local19.x * m_s1) + (_local19.y * m_a1)); _local11 = ((_local19.x * m_s2) + (_local19.y * m_a2)); _local4.x = (_local4.x - (m_invMassA * _local8)); _local4.y = (_local4.y - (m_invMassA * _local9)); _local5 = (_local5 - (m_invIA * _local10)); _local6.x = (_local6.x + (m_invMassB * _local8)); _local6.y = (_local6.y + (m_invMassB * _local9)); _local7 = (_local7 + (m_invIB * _local11)); } else { if (m_K.col1.x != 0){ _local22 = (-(_local12) / m_K.col1.x); } else { _local22 = 0; }; m_impulse.x = (m_impulse.x + _local22); _local8 = (_local22 * m_perp.x); _local9 = (_local22 * m_perp.y); _local10 = (_local22 * m_s1); _local11 = (_local22 * m_s2); _local4.x = (_local4.x - (m_invMassA * _local8)); _local4.y = (_local4.y - (m_invMassA * _local9)); _local5 = (_local5 - (m_invIA * _local10)); _local6.x = (_local6.x + (m_invMassB * _local8)); _local6.y = (_local6.y + (m_invMassB * _local9)); _local7 = (_local7 + (m_invIB * _local11)); }; _local2.m_linearVelocity.SetV(_local4); _local2.m_angularVelocity = _local5; _local3.m_linearVelocity.SetV(_local6); _local3.m_angularVelocity = _local7; } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:Number; var _local3:Number; var _local10:b2Mat22; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local4:b2Body = m_bodyA; var _local5:b2Body = m_bodyB; var _local6:b2Vec2 = _local4.m_sweep.c; var _local7:Number = _local4.m_sweep.a; var _local8:b2Vec2 = _local5.m_sweep.c; var _local9:Number = _local5.m_sweep.a; var _local16:Number = 0; var _local17:Number = 0; var _local18:Boolean; var _local19:Number = 0; var _local20:b2Mat22 = b2Mat22.FromAngle(_local7); var _local21:b2Mat22 = b2Mat22.FromAngle(_local9); _local10 = _local20; var _local22:Number = (m_localAnchor1.x - m_localCenterA.x); var _local23:Number = (m_localAnchor1.y - m_localCenterA.y); _local11 = ((_local10.col1.x * _local22) + (_local10.col2.x * _local23)); _local23 = ((_local10.col1.y * _local22) + (_local10.col2.y * _local23)); _local22 = _local11; _local10 = _local21; var _local24:Number = (m_localAnchor2.x - m_localCenterB.x); var _local25:Number = (m_localAnchor2.y - m_localCenterB.y); _local11 = ((_local10.col1.x * _local24) + (_local10.col2.x * _local25)); _local25 = ((_local10.col1.y * _local24) + (_local10.col2.y * _local25)); _local24 = _local11; var _local26:Number = (((_local8.x + _local24) - _local6.x) - _local22); var _local27:Number = (((_local8.y + _local25) - _local6.y) - _local23); if (m_enableLimit){ m_axis = b2Math.MulMV(_local20, m_localXAxis1); m_a1 = (((_local26 + _local22) * m_axis.y) - ((_local27 + _local23) * m_axis.x)); m_a2 = ((_local24 * m_axis.y) - (_local25 * m_axis.x)); _local34 = ((m_axis.x * _local26) + (m_axis.y * _local27)); if (b2Math.Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ _local19 = b2Math.Clamp(_local34, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local16 = b2Math.Abs(_local34); _local18 = true; } else { if (_local34 <= m_lowerTranslation){ _local19 = b2Math.Clamp(((_local34 - m_lowerTranslation) + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local16 = (m_lowerTranslation - _local34); _local18 = true; } else { if (_local34 >= m_upperTranslation){ _local19 = b2Math.Clamp(((_local34 - m_upperTranslation) + b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local16 = (_local34 - m_upperTranslation); _local18 = true; }; }; }; }; m_perp = b2Math.MulMV(_local20, m_localYAxis1); m_s1 = (((_local26 + _local22) * m_perp.y) - ((_local27 + _local23) * m_perp.x)); m_s2 = ((_local24 * m_perp.y) - (_local25 * m_perp.x)); var _local28:b2Vec2 = new b2Vec2(); var _local29:Number = ((m_perp.x * _local26) + (m_perp.y * _local27)); _local16 = b2Math.Max(_local16, b2Math.Abs(_local29)); _local17 = 0; if (_local18){ _local12 = m_invMassA; _local13 = m_invMassB; _local14 = m_invIA; _local15 = m_invIB; m_K.col1.x = (((_local12 + _local13) + ((_local14 * m_s1) * m_s1)) + ((_local15 * m_s2) * m_s2)); m_K.col1.y = (((_local14 * m_s1) * m_a1) + ((_local15 * m_s2) * m_a2)); m_K.col2.x = m_K.col1.y; m_K.col2.y = (((_local12 + _local13) + ((_local14 * m_a1) * m_a1)) + ((_local15 * m_a2) * m_a2)); m_K.Solve(_local28, -(_local29), -(_local19)); } else { _local12 = m_invMassA; _local13 = m_invMassB; _local14 = m_invIA; _local15 = m_invIB; _local35 = (((_local12 + _local13) + ((_local14 * m_s1) * m_s1)) + ((_local15 * m_s2) * m_s2)); if (_local35 != 0){ _local36 = (-(_local29) / _local35); } else { _local36 = 0; }; _local28.x = _local36; _local28.y = 0; }; var _local30:Number = ((_local28.x * m_perp.x) + (_local28.y * m_axis.x)); var _local31:Number = ((_local28.x * m_perp.y) + (_local28.y * m_axis.y)); var _local32:Number = ((_local28.x * m_s1) + (_local28.y * m_a1)); var _local33:Number = ((_local28.x * m_s2) + (_local28.y * m_a2)); _local6.x = (_local6.x - (m_invMassA * _local30)); _local6.y = (_local6.y - (m_invMassA * _local31)); _local7 = (_local7 - (m_invIA * _local32)); _local8.x = (_local8.x + (m_invMassB * _local30)); _local8.y = (_local8.y + (m_invMassB * _local31)); _local9 = (_local9 + (m_invIB * _local33)); _local4.m_sweep.a = _local7; _local5.m_sweep.a = _local9; _local4.SynchronizeTransform(); _local5.SynchronizeTransform(); return ((((_local16 <= b2Settings.b2_linearSlop)) && ((_local17 <= b2Settings.b2_angularSlop)))); } } }//package Box2D.Dynamics.Joints
Section 69
//b2LineJointDef (Box2D.Dynamics.Joints.b2LineJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2LineJointDef extends b2JointDef { public var localAnchorA:b2Vec2; public var localAnchorB:b2Vec2; public var localAxisA:b2Vec2; public var enableLimit:Boolean; public var lowerTranslation:Number; public var upperTranslation:Number; public var enableMotor:Boolean; public var maxMotorForce:Number; public var motorSpeed:Number; public function b2LineJointDef(){ localAnchorA = new b2Vec2(); localAnchorB = new b2Vec2(); localAxisA = new b2Vec2(); super(); type = b2Joint.e_lineJoint; localAxisA.Set(1, 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{ bodyA = _arg1; bodyB = _arg2; localAnchorA = bodyA.GetLocalPoint(_arg3); localAnchorB = bodyB.GetLocalPoint(_arg3); localAxisA = bodyA.GetLocalVector(_arg4); } } }//package Box2D.Dynamics.Joints
Section 70
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { private var K:b2Mat22; private var K1:b2Mat22; private var K2:b2Mat22; private var m_localAnchor:b2Vec2; private var m_target:b2Vec2; private var m_impulse:b2Vec2; private var m_mass:b2Mat22; private var m_C:b2Vec2; private var m_maxForce:Number; private var m_frequencyHz:Number; private var m_dampingRatio:Number; private var m_beta:Number; private var m_gamma:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local2:Number; var _local4:b2Mat22; 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); _local2 = (m_target.x - m_bodyB.m_xf.position.x); var _local3:Number = (m_target.y - m_bodyB.m_xf.position.y); _local4 = m_bodyB.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(); m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_beta = 0; m_gamma = 0; } override public function GetAnchorA():b2Vec2{ return (m_target); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchor)); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2((_arg1 * m_impulse.x), (_arg1 * m_impulse.y))); } override public function GetReactionTorque(_arg1:Number):Number{ return (0); } public function GetTarget():b2Vec2{ return (m_target); } public function SetTarget(_arg1:b2Vec2):void{ if (m_bodyB.IsAwake() == false){ m_bodyB.SetAwake(true); }; m_target = _arg1; } public function GetMaxForce():Number{ return (m_maxForce); } public function SetMaxForce(_arg1:Number):void{ m_maxForce = _arg1; } public function GetFrequency():Number{ return (m_frequencyHz); } public function SetFrequency(_arg1:Number):void{ m_frequencyHz = _arg1; } public function GetDampingRatio():Number{ return (m_dampingRatio); } public function SetDampingRatio(_arg1:Number):void{ m_dampingRatio = _arg1; } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local7:b2Mat22; var _local11:Number; var _local12:Number; var _local2:b2Body = m_bodyB; var _local3:Number = _local2.GetMass(); var _local4:Number = ((2 * Math.PI) * m_frequencyHz); var _local5:Number = (((2 * _local3) * m_dampingRatio) * _local4); var _local6:Number = ((_local3 * _local4) * _local4); m_gamma = (_arg1.dt * (_local5 + (_arg1.dt * _local6))); m_gamma = ((m_gamma)!=0) ? (1 / m_gamma) : 0; m_beta = ((_arg1.dt * _local6) * m_gamma); _local7 = _local2.m_xf.R; var _local8:Number = (m_localAnchor.x - _local2.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor.y - _local2.m_sweep.localCenter.y); var _local10:Number = ((_local7.col1.x * _local8) + (_local7.col2.x * _local9)); _local9 = ((_local7.col1.y * _local8) + (_local7.col2.y * _local9)); _local8 = _local10; _local11 = _local2.m_invMass; _local12 = _local2.m_invI; K1.col1.x = _local11; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local11; K2.col1.x = ((_local12 * _local9) * _local9); K2.col2.x = ((-(_local12) * _local8) * _local9); K2.col1.y = ((-(_local12) * _local8) * _local9); K2.col2.y = ((_local12 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.GetInverse(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local8) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local9) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); m_impulse.x = (m_impulse.x * _arg1.dtRatio); m_impulse.y = (m_impulse.y * _arg1.dtRatio); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local11 * m_impulse.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local11 * m_impulse.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * ((_local8 * m_impulse.y) - (_local9 * m_impulse.x)))); } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local2:b2Body = m_bodyB; _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 * m_C.x)) + (m_gamma * m_impulse.x)); _local5 = ((_local9 + (m_beta * m_C.y)) + (m_gamma * m_impulse.y)); var _local10:Number = -(((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); var _local11:Number = -(((_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 = (_arg1.dt * m_maxForce); if (m_impulse.LengthSquared() > (_local14 * _local14)){ m_impulse.Multiply((_local14 / m_impulse.Length())); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local10)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local11)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local11) - (_local7 * _local10)))); } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ return (true); } } }//package Box2D.Dynamics.Joints
Section 71
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var target:b2Vec2; public var maxForce:Number; public var frequencyHz:Number; public var dampingRatio:Number; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; } } }//package Box2D.Dynamics.Joints
Section 72
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PrismaticJoint extends b2Joint { b2internal var m_localAnchor1:b2Vec2; b2internal var m_localAnchor2:b2Vec2; b2internal var m_localXAxis1:b2Vec2; private var m_localYAxis1:b2Vec2; private var m_refAngle:Number; private var m_axis:b2Vec2; private var m_perp:b2Vec2; private var m_s1:Number; private var m_s2:Number; private var m_a1:Number; private var m_a2:Number; private var m_K:b2Mat33; private var m_impulse:b2Vec3; private var m_motorMass:Number; private var m_motorImpulse:Number; private var m_lowerTranslation:Number; private var m_upperTranslation:Number; private var m_maxMotorForce:Number; private var m_motorSpeed:Number; private var m_enableLimit:Boolean; private var m_enableMotor:Boolean; private var m_limitState:int; public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_localXAxis1 = new b2Vec2(); m_localYAxis1 = new b2Vec2(); m_axis = new b2Vec2(); m_perp = new b2Vec2(); m_K = new b2Mat33(); m_impulse = new b2Vec3(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchorA); m_localAnchor2.SetV(_arg1.localAnchorB); m_localXAxis1.SetV(_arg1.localAxisA); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_refAngle = _arg1.referenceAngle; m_impulse.SetZero(); m_motorMass = 0; m_motorImpulse = 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; m_limitState = e_inactiveLimit; m_axis.SetZero(); m_perp.SetZero(); } override public function GetAnchorA():b2Vec2{ return (m_bodyA.GetWorldPoint(m_localAnchor1)); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2((_arg1 * ((m_impulse.x * m_perp.x) + ((m_motorImpulse + m_impulse.z) * m_axis.x))), (_arg1 * ((m_impulse.x * m_perp.y) + ((m_motorImpulse + m_impulse.z) * m_axis.y))))); } override public function GetReactionTorque(_arg1:Number):Number{ return ((_arg1 * m_impulse.y)); } public function GetJointTranslation():Number{ var _local3:b2Mat22; var _local1:b2Body = m_bodyA; var _local2:b2Body = m_bodyB; var _local4:b2Vec2 = _local1.GetWorldPoint(m_localAnchor1); var _local5:b2Vec2 = _local2.GetWorldPoint(m_localAnchor2); var _local6:Number = (_local5.x - _local4.x); var _local7:Number = (_local5.y - _local4.y); var _local8:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local9:Number = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function GetJointSpeed():Number{ var _local3:b2Mat22; var _local1:b2Body = m_bodyA; var _local2:b2Body = m_bodyB; _local3 = _local1.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; var _local9:Number = (_local1.m_sweep.c.x + _local4); var _local10:Number = (_local1.m_sweep.c.y + _local5); var _local11:Number = (_local2.m_sweep.c.x + _local7); var _local12:Number = (_local2.m_sweep.c.y + _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local16:b2Vec2 = _local1.m_linearVelocity; var _local17:b2Vec2 = _local2.m_linearVelocity; var _local18:Number = _local1.m_angularVelocity; var _local19:Number = _local2.m_angularVelocity; var _local20:Number = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function EnableLimit(_arg1:Boolean):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_enableLimit = _arg1; } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function EnableMotor(_arg1:Boolean):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_enableMotor = _arg1; } public function SetMotorSpeed(_arg1:Number):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_motorSpeed = _arg1; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } public function SetMaxMotorForce(_arg1:Number):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_maxMotorForce = _arg1; } public function GetMotorForce():Number{ return (m_motorImpulse); } override b2internal 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 _local2:b2Body = m_bodyA; var _local3:b2Body = m_bodyB; m_localCenterA.SetV(_local2.GetLocalCenter()); m_localCenterB.SetV(_local3.GetLocalCenter()); var _local6:b2Transform = _local2.GetTransform(); var _local7:b2Transform = _local3.GetTransform(); _local4 = _local2.m_xf.R; var _local8:Number = (m_localAnchor1.x - m_localCenterA.x); var _local9:Number = (m_localAnchor1.y - m_localCenterA.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local4 = _local3.m_xf.R; var _local10:Number = (m_localAnchor2.x - m_localCenterB.x); var _local11:Number = (m_localAnchor2.y - m_localCenterB.y); _local5 = ((_local4.col1.x * _local10) + (_local4.col2.x * _local11)); _local11 = ((_local4.col1.y * _local10) + (_local4.col2.y * _local11)); _local10 = _local5; var _local12:Number = (((_local3.m_sweep.c.x + _local10) - _local2.m_sweep.c.x) - _local8); var _local13:Number = (((_local3.m_sweep.c.y + _local11) - _local2.m_sweep.c.y) - _local9); m_invMassA = _local2.m_invMass; m_invMassB = _local3.m_invMass; m_invIA = _local2.m_invI; m_invIB = _local3.m_invI; m_axis.SetV(b2Math.MulMV(_local6.R, m_localXAxis1)); m_a1 = (((_local12 + _local8) * m_axis.y) - ((_local13 + _local9) * m_axis.x)); m_a2 = ((_local10 * m_axis.y) - (_local11 * m_axis.x)); m_motorMass = (((m_invMassA + m_invMassB) + ((m_invIA * m_a1) * m_a1)) + ((m_invIB * m_a2) * m_a2)); if (m_motorMass > Number.MIN_VALUE){ m_motorMass = (1 / m_motorMass); }; m_perp.SetV(b2Math.MulMV(_local6.R, m_localYAxis1)); m_s1 = (((_local12 + _local8) * m_perp.y) - ((_local13 + _local9) * m_perp.x)); m_s2 = ((_local10 * m_perp.y) - (_local11 * m_perp.x)); var _local14:Number = m_invMassA; var _local15:Number = m_invMassB; var _local16:Number = m_invIA; var _local17:Number = m_invIB; m_K.col1.x = (((_local14 + _local15) + ((_local16 * m_s1) * m_s1)) + ((_local17 * m_s2) * m_s2)); m_K.col1.y = ((_local16 * m_s1) + (_local17 * m_s2)); m_K.col1.z = (((_local16 * m_s1) * m_a1) + ((_local17 * m_s2) * m_a2)); m_K.col2.x = m_K.col1.y; m_K.col2.y = (_local16 + _local17); m_K.col2.z = ((_local16 * m_a1) + (_local17 * m_a2)); m_K.col3.x = m_K.col1.z; m_K.col3.y = m_K.col2.z; m_K.col3.z = (((_local14 + _local15) + ((_local16 * m_a1) * m_a1)) + ((_local17 * m_a2) * m_a2)); if (m_enableLimit){ _local18 = ((m_axis.x * _local12) + (m_axis.y * _local13)); if (b2Math.Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local18 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitState = e_atLowerLimit; m_impulse.z = 0; }; } else { if (_local18 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitState = e_atUpperLimit; m_impulse.z = 0; }; } else { m_limitState = e_inactiveLimit; m_impulse.z = 0; }; }; }; } else { m_limitState = e_inactiveLimit; }; if (m_enableMotor == false){ m_motorImpulse = 0; }; if (_arg1.warmStarting){ m_impulse.x = (m_impulse.x * _arg1.dtRatio); m_impulse.y = (m_impulse.y * _arg1.dtRatio); m_motorImpulse = (m_motorImpulse * _arg1.dtRatio); _local19 = ((m_impulse.x * m_perp.x) + ((m_motorImpulse + m_impulse.z) * m_axis.x)); _local20 = ((m_impulse.x * m_perp.y) + ((m_motorImpulse + m_impulse.z) * m_axis.y)); _local21 = (((m_impulse.x * m_s1) + m_impulse.y) + ((m_motorImpulse + m_impulse.z) * m_a1)); _local22 = (((m_impulse.x * m_s2) + m_impulse.y) + ((m_motorImpulse + m_impulse.z) * m_a2)); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (m_invMassA * _local19)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (m_invMassA * _local20)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (m_invIA * _local21)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (m_invMassB * _local19)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (m_invMassB * _local20)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (m_invIB * _local22)); } else { m_impulse.SetZero(); m_motorImpulse = 0; }; } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:b2Vec3; var _local20:b2Vec3; var _local21:Number; var _local22:Number; var _local23:b2Vec2; var _local24:b2Vec2; var _local2:b2Body = m_bodyA; var _local3:b2Body = m_bodyB; var _local4:b2Vec2 = _local2.m_linearVelocity; var _local5:Number = _local2.m_angularVelocity; var _local6:b2Vec2 = _local3.m_linearVelocity; var _local7:Number = _local3.m_angularVelocity; if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local14 = ((((m_axis.x * (_local6.x - _local4.x)) + (m_axis.y * (_local6.y - _local4.y))) + (m_a2 * _local7)) - (m_a1 * _local5)); _local15 = (m_motorMass * (m_motorSpeed - _local14)); _local16 = m_motorImpulse; _local17 = (_arg1.dt * m_maxMotorForce); m_motorImpulse = b2Math.Clamp((m_motorImpulse + _local15), -(_local17), _local17); _local15 = (m_motorImpulse - _local16); _local8 = (_local15 * m_axis.x); _local9 = (_local15 * m_axis.y); _local10 = (_local15 * m_a1); _local11 = (_local15 * m_a2); _local4.x = (_local4.x - (m_invMassA * _local8)); _local4.y = (_local4.y - (m_invMassA * _local9)); _local5 = (_local5 - (m_invIA * _local10)); _local6.x = (_local6.x + (m_invMassB * _local8)); _local6.y = (_local6.y + (m_invMassB * _local9)); _local7 = (_local7 + (m_invIB * _local11)); }; var _local12:Number = ((((m_perp.x * (_local6.x - _local4.x)) + (m_perp.y * (_local6.y - _local4.y))) + (m_s2 * _local7)) - (m_s1 * _local5)); var _local13:Number = (_local7 - _local5); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = ((((m_axis.x * (_local6.x - _local4.x)) + (m_axis.y * (_local6.y - _local4.y))) + (m_a2 * _local7)) - (m_a1 * _local5)); _local19 = m_impulse.Copy(); _local20 = m_K.Solve33(new b2Vec3(), -(_local12), -(_local13), -(_local18)); m_impulse.Add(_local20); if (m_limitState == e_atLowerLimit){ m_impulse.z = b2Math.Max(m_impulse.z, 0); } else { if (m_limitState == e_atUpperLimit){ m_impulse.z = b2Math.Min(m_impulse.z, 0); }; }; _local21 = (-(_local12) - ((m_impulse.z - _local19.z) * m_K.col3.x)); _local22 = (-(_local13) - ((m_impulse.z - _local19.z) * m_K.col3.y)); _local23 = m_K.Solve22(new b2Vec2(), _local21, _local22); m_K.Solve22(new b2Vec2(), _local21, _local22).x = (_local23.x + _local19.x); _local23.y = (_local23.y + _local19.y); m_impulse.x = _local23.x; m_impulse.y = _local23.y; _local20.x = (m_impulse.x - _local19.x); _local20.y = (m_impulse.y - _local19.y); _local20.z = (m_impulse.z - _local19.z); _local8 = ((_local20.x * m_perp.x) + (_local20.z * m_axis.x)); _local9 = ((_local20.x * m_perp.y) + (_local20.z * m_axis.y)); _local10 = (((_local20.x * m_s1) + _local20.y) + (_local20.z * m_a1)); _local11 = (((_local20.x * m_s2) + _local20.y) + (_local20.z * m_a2)); _local4.x = (_local4.x - (m_invMassA * _local8)); _local4.y = (_local4.y - (m_invMassA * _local9)); _local5 = (_local5 - (m_invIA * _local10)); _local6.x = (_local6.x + (m_invMassB * _local8)); _local6.y = (_local6.y + (m_invMassB * _local9)); _local7 = (_local7 + (m_invIB * _local11)); } else { _local24 = m_K.Solve22(new b2Vec2(), -(_local12), -(_local13)); m_impulse.x = (m_impulse.x + _local24.x); m_impulse.y = (m_impulse.y + _local24.y); _local8 = (_local24.x * m_perp.x); _local9 = (_local24.x * m_perp.y); _local10 = ((_local24.x * m_s1) + _local24.y); _local11 = ((_local24.x * m_s2) + _local24.y); _local4.x = (_local4.x - (m_invMassA * _local8)); _local4.y = (_local4.y - (m_invMassA * _local9)); _local5 = (_local5 - (m_invIA * _local10)); _local6.x = (_local6.x + (m_invMassB * _local8)); _local6.y = (_local6.y + (m_invMassB * _local9)); _local7 = (_local7 + (m_invIB * _local11)); }; _local2.m_linearVelocity.SetV(_local4); _local2.m_angularVelocity = _local5; _local3.m_linearVelocity.SetV(_local6); _local3.m_angularVelocity = _local7; } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:Number; var _local3:Number; var _local10:b2Mat22; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:b2Vec2; var _local4:b2Body = m_bodyA; var _local5:b2Body = m_bodyB; var _local6:b2Vec2 = _local4.m_sweep.c; var _local7:Number = _local4.m_sweep.a; var _local8:b2Vec2 = _local5.m_sweep.c; var _local9:Number = _local5.m_sweep.a; var _local16:Number = 0; var _local17:Number = 0; var _local18:Boolean; var _local19:Number = 0; var _local20:b2Mat22 = b2Mat22.FromAngle(_local7); var _local21:b2Mat22 = b2Mat22.FromAngle(_local9); _local10 = _local20; var _local22:Number = (m_localAnchor1.x - m_localCenterA.x); var _local23:Number = (m_localAnchor1.y - m_localCenterA.y); _local11 = ((_local10.col1.x * _local22) + (_local10.col2.x * _local23)); _local23 = ((_local10.col1.y * _local22) + (_local10.col2.y * _local23)); _local22 = _local11; _local10 = _local21; var _local24:Number = (m_localAnchor2.x - m_localCenterB.x); var _local25:Number = (m_localAnchor2.y - m_localCenterB.y); _local11 = ((_local10.col1.x * _local24) + (_local10.col2.x * _local25)); _local25 = ((_local10.col1.y * _local24) + (_local10.col2.y * _local25)); _local24 = _local11; var _local26:Number = (((_local8.x + _local24) - _local6.x) - _local22); var _local27:Number = (((_local8.y + _local25) - _local6.y) - _local23); if (m_enableLimit){ m_axis = b2Math.MulMV(_local20, m_localXAxis1); m_a1 = (((_local26 + _local22) * m_axis.y) - ((_local27 + _local23) * m_axis.x)); m_a2 = ((_local24 * m_axis.y) - (_local25 * m_axis.x)); _local35 = ((m_axis.x * _local26) + (m_axis.y * _local27)); if (b2Math.Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ _local19 = b2Math.Clamp(_local35, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local16 = b2Math.Abs(_local35); _local18 = true; } else { if (_local35 <= m_lowerTranslation){ _local19 = b2Math.Clamp(((_local35 - m_lowerTranslation) + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local16 = (m_lowerTranslation - _local35); _local18 = true; } else { if (_local35 >= m_upperTranslation){ _local19 = b2Math.Clamp(((_local35 - m_upperTranslation) + b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local16 = (_local35 - m_upperTranslation); _local18 = true; }; }; }; }; m_perp = b2Math.MulMV(_local20, m_localYAxis1); m_s1 = (((_local26 + _local22) * m_perp.y) - ((_local27 + _local23) * m_perp.x)); m_s2 = ((_local24 * m_perp.y) - (_local25 * m_perp.x)); var _local28:b2Vec3 = new b2Vec3(); var _local29:Number = ((m_perp.x * _local26) + (m_perp.y * _local27)); var _local30:Number = ((_local9 - _local7) - m_refAngle); _local16 = b2Math.Max(_local16, b2Math.Abs(_local29)); _local17 = b2Math.Abs(_local30); if (_local18){ _local12 = m_invMassA; _local13 = m_invMassB; _local14 = m_invIA; _local15 = m_invIB; m_K.col1.x = (((_local12 + _local13) + ((_local14 * m_s1) * m_s1)) + ((_local15 * m_s2) * m_s2)); m_K.col1.y = ((_local14 * m_s1) + (_local15 * m_s2)); m_K.col1.z = (((_local14 * m_s1) * m_a1) + ((_local15 * m_s2) * m_a2)); m_K.col2.x = m_K.col1.y; m_K.col2.y = (_local14 + _local15); m_K.col2.z = ((_local14 * m_a1) + (_local15 * m_a2)); m_K.col3.x = m_K.col1.z; m_K.col3.y = m_K.col2.z; m_K.col3.z = (((_local12 + _local13) + ((_local14 * m_a1) * m_a1)) + ((_local15 * m_a2) * m_a2)); m_K.Solve33(_local28, -(_local29), -(_local30), -(_local19)); } else { _local12 = m_invMassA; _local13 = m_invMassB; _local14 = m_invIA; _local15 = m_invIB; _local36 = (((_local12 + _local13) + ((_local14 * m_s1) * m_s1)) + ((_local15 * m_s2) * m_s2)); _local37 = ((_local14 * m_s1) + (_local15 * m_s2)); _local38 = (_local14 + _local15); m_K.col1.Set(_local36, _local37, 0); m_K.col2.Set(_local37, _local38, 0); _local39 = m_K.Solve22(new b2Vec2(), -(_local29), -(_local30)); _local28.x = _local39.x; _local28.y = _local39.y; _local28.z = 0; }; var _local31:Number = ((_local28.x * m_perp.x) + (_local28.z * m_axis.x)); var _local32:Number = ((_local28.x * m_perp.y) + (_local28.z * m_axis.y)); var _local33:Number = (((_local28.x * m_s1) + _local28.y) + (_local28.z * m_a1)); var _local34:Number = (((_local28.x * m_s2) + _local28.y) + (_local28.z * m_a2)); _local6.x = (_local6.x - (m_invMassA * _local31)); _local6.y = (_local6.y - (m_invMassA * _local32)); _local7 = (_local7 - (m_invIA * _local33)); _local8.x = (_local8.x + (m_invMassB * _local31)); _local8.y = (_local8.y + (m_invMassB * _local32)); _local9 = (_local9 + (m_invIB * _local34)); _local4.m_sweep.a = _local7; _local5.m_sweep.a = _local9; _local4.SynchronizeTransform(); _local5.SynchronizeTransform(); return ((((_local16 <= b2Settings.b2_linearSlop)) && ((_local17 <= b2Settings.b2_angularSlop)))); } } }//package Box2D.Dynamics.Joints
Section 73
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2PrismaticJointDef extends b2JointDef { public var localAnchorA:b2Vec2; public var localAnchorB:b2Vec2; public var localAxisA:b2Vec2; public var referenceAngle:Number; public var enableLimit:Boolean; public var lowerTranslation:Number; public var upperTranslation:Number; public var enableMotor:Boolean; public var maxMotorForce:Number; public var motorSpeed:Number; public function b2PrismaticJointDef(){ localAnchorA = new b2Vec2(); localAnchorB = new b2Vec2(); localAxisA = new b2Vec2(); super(); type = b2Joint.e_prismaticJoint; localAxisA.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{ bodyA = _arg1; bodyB = _arg2; localAnchorA = bodyA.GetLocalPoint(_arg3); localAnchorB = bodyB.GetLocalPoint(_arg3); localAxisA = bodyA.GetLocalVector(_arg4); referenceAngle = (bodyB.GetAngle() - bodyA.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 74
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { private var m_ground:b2Body; private var m_groundAnchor1:b2Vec2; private var m_groundAnchor2:b2Vec2; private var m_localAnchor1:b2Vec2; private var m_localAnchor2:b2Vec2; private var m_u1:b2Vec2; private var m_u2:b2Vec2; private var m_constant:Number; private var m_ratio:Number; private var m_maxLength1:Number; private var m_maxLength2:Number; private var m_pulleyMass:Number; private var m_limitMass1:Number; private var m_limitMass2:Number; private var m_impulse:Number; private var m_limitImpulse1:Number; private var m_limitImpulse2:Number; private var m_state:int; private var m_limitState1:int; private var m_limitState2:int; b2internal 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_bodyA.m_world.m_groundBody; m_groundAnchor1.x = (_arg1.groundAnchorA.x - m_ground.m_xf.position.x); m_groundAnchor1.y = (_arg1.groundAnchorA.y - m_ground.m_xf.position.y); m_groundAnchor2.x = (_arg1.groundAnchorB.x - m_ground.m_xf.position.x); m_groundAnchor2.y = (_arg1.groundAnchorB.y - m_ground.m_xf.position.y); m_localAnchor1.SetV(_arg1.localAnchorA); m_localAnchor2.SetV(_arg1.localAnchorB); m_ratio = _arg1.ratio; m_constant = (_arg1.lengthA + (m_ratio * _arg1.lengthB)); m_maxLength1 = b2Math.Min(_arg1.maxLengthA, (m_constant - (m_ratio * b2_minPulleyLength))); m_maxLength2 = b2Math.Min(_arg1.maxLengthB, ((m_constant - b2_minPulleyLength) / m_ratio)); m_impulse = 0; m_limitImpulse1 = 0; m_limitImpulse2 = 0; } override public function GetAnchorA():b2Vec2{ return (m_bodyA.GetWorldPoint(m_localAnchor1)); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2(((_arg1 * m_impulse) * m_u2.x), ((_arg1 * m_impulse) * m_u2.y))); } override public function GetReactionTorque(_arg1:Number):Number{ return (0); } public function GetGroundAnchorA():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } public function GetGroundAnchorB():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } public function GetLength1():Number{ var _local1:b2Vec2 = m_bodyA.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_bodyB.GetWorldPoint(m_localAnchor2); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetRatio():Number{ return (m_ratio); } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local6:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local2 = m_bodyA; _local3 = m_bodyB; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local6 = (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_impulse = 0; } else { m_state = e_atUpperLimit; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitImpulse1 = 0; } else { m_limitState1 = e_atUpperLimit; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitImpulse2 = 0; } else { m_limitState2 = e_atUpperLimit; }; 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){ m_impulse = (m_impulse * _arg1.dtRatio); m_limitImpulse1 = (m_limitImpulse1 * _arg1.dtRatio); m_limitImpulse2 = (m_limitImpulse2 * _arg1.dtRatio); _local23 = ((-(m_impulse) - m_limitImpulse1) * m_u1.x); _local24 = ((-(m_impulse) - m_limitImpulse1) * m_u1.y); _local25 = (((-(m_ratio) * m_impulse) - m_limitImpulse2) * m_u2.x); _local26 = (((-(m_ratio) * m_impulse) - m_limitImpulse2) * 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_impulse = 0; m_limitImpulse1 = 0; m_limitImpulse2 = 0; }; } override b2internal 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_bodyA; var _local3:b2Body = m_bodyB; _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 = (m_pulleyMass * -(_local18)); _local20 = m_impulse; m_impulse = b2Math.Max(0, (m_impulse + _local19)); _local19 = (m_impulse - _local20); _local14 = (-(_local19) * m_u1.x); _local15 = (-(_local19) * m_u1.y); _local16 = ((-(m_ratio) * _local19) * m_u2.x); _local17 = ((-(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 = (-(m_limitMass1) * _local18); _local20 = m_limitImpulse1; m_limitImpulse1 = b2Math.Max(0, (m_limitImpulse1 + _local19)); _local19 = (m_limitImpulse1 - _local20); _local14 = (-(_local19) * m_u1.x); _local15 = (-(_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 = (-(m_limitMass2) * _local18); _local20 = m_limitImpulse2; m_limitImpulse2 = b2Math.Max(0, (m_limitImpulse2 + _local19)); _local19 = (m_limitImpulse2 - _local20); _local16 = (-(_local19) * m_u2.x); _local17 = (-(_local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ var _local4:b2Mat22; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local2:b2Body = m_bodyA; var _local3:b2Body = m_bodyB; var _local5:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local6:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local7:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local8:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local24:Number = 0; if (m_state == e_atUpperLimit){ _local4 = _local2.m_xf.R; _local9 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local10 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local23 = ((_local4.col1.x * _local9) + (_local4.col2.x * _local10)); _local10 = ((_local4.col1.y * _local9) + (_local4.col2.y * _local10)); _local9 = _local23; _local4 = _local3.m_xf.R; _local11 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local23 = ((_local4.col1.x * _local11) + (_local4.col2.x * _local12)); _local12 = ((_local4.col1.y * _local11) + (_local4.col2.y * _local12)); _local11 = _local23; _local13 = (_local2.m_sweep.c.x + _local9); _local14 = (_local2.m_sweep.c.y + _local10); _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); m_u1.Set((_local13 - _local5), (_local14 - _local6)); m_u2.Set((_local15 - _local7), (_local16 - _local8)); _local17 = m_u1.Length(); _local18 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local17)); } else { m_u1.SetZero(); }; if (_local18 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local18)); } else { m_u2.SetZero(); }; _local19 = ((m_constant - _local17) - (m_ratio * _local18)); _local24 = b2Math.Max(_local24, -(_local19)); _local19 = b2Math.Clamp((_local19 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local20 = (-(m_pulleyMass) * _local19); _local13 = (-(_local20) * m_u1.x); _local14 = (-(_local20) * m_u1.y); _local15 = ((-(m_ratio) * _local20) * m_u2.x); _local16 = ((-(m_ratio) * _local20) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local13)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local14)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local9 * _local14) - (_local10 * _local13)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local15)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local16)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local11 * _local16) - (_local12 * _local15)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); }; if (m_limitState1 == e_atUpperLimit){ _local4 = _local2.m_xf.R; _local9 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local10 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local23 = ((_local4.col1.x * _local9) + (_local4.col2.x * _local10)); _local10 = ((_local4.col1.y * _local9) + (_local4.col2.y * _local10)); _local9 = _local23; _local13 = (_local2.m_sweep.c.x + _local9); _local14 = (_local2.m_sweep.c.y + _local10); m_u1.Set((_local13 - _local5), (_local14 - _local6)); _local17 = m_u1.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u1.x = (m_u1.x * (1 / _local17)); m_u1.y = (m_u1.y * (1 / _local17)); } else { m_u1.SetZero(); }; _local19 = (m_maxLength1 - _local17); _local24 = b2Math.Max(_local24, -(_local19)); _local19 = b2Math.Clamp((_local19 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local20 = (-(m_limitMass1) * _local19); _local13 = (-(_local20) * m_u1.x); _local14 = (-(_local20) * m_u1.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local13)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local14)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local9 * _local14) - (_local10 * _local13)))); _local2.SynchronizeTransform(); }; if (m_limitState2 == e_atUpperLimit){ _local4 = _local3.m_xf.R; _local11 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local23 = ((_local4.col1.x * _local11) + (_local4.col2.x * _local12)); _local12 = ((_local4.col1.y * _local11) + (_local4.col2.y * _local12)); _local11 = _local23; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); m_u2.Set((_local15 - _local7), (_local16 - _local8)); _local18 = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local18)); m_u2.y = (m_u2.y * (1 / _local18)); } else { m_u2.SetZero(); }; _local19 = (m_maxLength2 - _local18); _local24 = b2Math.Max(_local24, -(_local19)); _local19 = b2Math.Clamp((_local19 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local20 = (-(m_limitMass2) * _local19); _local15 = (-(_local20) * m_u2.x); _local16 = (-(_local20) * m_u2.y); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local15)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local16)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local11 * _local16) - (_local12 * _local15)))); _local3.SynchronizeTransform(); }; return ((_local24 < b2Settings.b2_linearSlop)); } } }//package Box2D.Dynamics.Joints
Section 75
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2PulleyJointDef extends b2JointDef { public var groundAnchorA:b2Vec2; public var groundAnchorB:b2Vec2; public var localAnchorA:b2Vec2; public var localAnchorB:b2Vec2; public var lengthA:Number; public var maxLengthA:Number; public var lengthB:Number; public var maxLengthB:Number; public var ratio:Number; public function b2PulleyJointDef(){ groundAnchorA = new b2Vec2(); groundAnchorB = new b2Vec2(); localAnchorA = new b2Vec2(); localAnchorB = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchorA.Set(-1, 1); groundAnchorB.Set(1, 1); localAnchorA.Set(-1, 0); localAnchorB.Set(1, 0); lengthA = 0; maxLengthA = 0; lengthB = 0; maxLengthB = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ bodyA = _arg1; bodyB = _arg2; groundAnchorA.SetV(_arg3); groundAnchorB.SetV(_arg4); localAnchorA = bodyA.GetLocalPoint(_arg5); localAnchorB = bodyB.GetLocalPoint(_arg6); var _local8:Number = (_arg5.x - _arg3.x); var _local9:Number = (_arg5.y - _arg3.y); lengthA = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); var _local10:Number = (_arg6.x - _arg4.x); var _local11:Number = (_arg6.y - _arg4.y); lengthB = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; var _local12:Number = (lengthA + (ratio * lengthB)); maxLengthA = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLengthB = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 76
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { private var K:b2Mat22; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; private var impulse3:b2Vec3; private var impulse2:b2Vec2; private var reduced:b2Vec2; b2internal var m_localAnchor1:b2Vec2; b2internal var m_localAnchor2:b2Vec2; private var m_impulse:b2Vec3; private var m_motorImpulse:Number; private var m_mass:b2Mat33; private var m_motorMass:Number; private var m_enableMotor:Boolean; private var m_maxMotorTorque:Number; private var m_motorSpeed:Number; private var m_enableLimit:Boolean; private var m_referenceAngle:Number; private var m_lowerAngle:Number; private var m_upperAngle:Number; private var m_limitState:int; private static var tImpulse:b2Vec2 = new b2Vec2(); public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){ K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); K3 = new b2Mat22(); impulse3 = new b2Vec3(); impulse2 = new b2Vec2(); reduced = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_impulse = new b2Vec3(); m_mass = new b2Mat33(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchorA); m_localAnchor2.SetV(_arg1.localAnchorB); m_referenceAngle = _arg1.referenceAngle; m_impulse.SetZero(); m_motorImpulse = 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; m_limitState = e_inactiveLimit; } override public function GetAnchorA():b2Vec2{ return (m_bodyA.GetWorldPoint(m_localAnchor1)); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2((_arg1 * m_impulse.x), (_arg1 * m_impulse.y))); } override public function GetReactionTorque(_arg1:Number):Number{ return ((_arg1 * m_impulse.z)); } public function GetJointAngle():Number{ return (((m_bodyB.m_sweep.a - m_bodyA.m_sweep.a) - m_referenceAngle)); } public function GetJointSpeed():Number{ return ((m_bodyB.m_angularVelocity - m_bodyA.m_angularVelocity)); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function GetUpperLimit():Number{ return (m_upperAngle); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } public function IsMotorEnabled():Boolean{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); return (m_enableMotor); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function SetMotorSpeed(_arg1:Number):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_motorSpeed = _arg1; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetMotorTorque():Number{ return (m_maxMotorTorque); } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local7:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local2 = m_bodyA; _local3 = m_bodyB; if (((m_enableMotor) || (m_enableLimit))){ }; _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; m_mass.col1.x = (((_local10 + _local11) + ((_local7 * _local7) * _local12)) + ((_local9 * _local9) * _local13)); m_mass.col2.x = (((-(_local7) * _local6) * _local12) - ((_local9 * _local8) * _local13)); m_mass.col3.x = ((-(_local7) * _local12) - (_local9 * _local13)); m_mass.col1.y = m_mass.col2.x; m_mass.col2.y = (((_local10 + _local11) + ((_local6 * _local6) * _local12)) + ((_local8 * _local8) * _local13)); m_mass.col3.y = ((_local6 * _local12) + (_local8 * _local13)); m_mass.col1.z = m_mass.col3.x; m_mass.col2.z = m_mass.col3.y; m_mass.col3.z = (_local12 + _local13); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorImpulse = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_impulse.z = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_impulse.z = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_impulse.z = 0; }; }; }; } else { m_limitState = e_inactiveLimit; }; if (_arg1.warmStarting){ m_impulse.x = (m_impulse.x * _arg1.dtRatio); m_impulse.y = (m_impulse.y * _arg1.dtRatio); m_motorImpulse = (m_motorImpulse * _arg1.dtRatio); _local15 = m_impulse.x; _local16 = m_impulse.y; _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local10 * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local10 * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local12 * ((((_local6 * _local16) - (_local7 * _local15)) + m_motorImpulse) + m_impulse.z))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * ((((_local8 * _local16) - (_local9 * _local15)) + m_motorImpulse) + m_impulse.z))); } else { m_impulse.SetZero(); m_motorImpulse = 0; }; } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10: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 _local2:b2Body = m_bodyA; var _local3:b2Body = m_bodyB; var _local11:b2Vec2 = _local2.m_linearVelocity; var _local12:Number = _local2.m_angularVelocity; var _local13:b2Vec2 = _local3.m_linearVelocity; var _local14:Number = _local3.m_angularVelocity; var _local15:Number = _local2.m_invMass; var _local16:Number = _local3.m_invMass; var _local17:Number = _local2.m_invI; var _local18:Number = _local3.m_invI; if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local19 = ((_local14 - _local12) - m_motorSpeed); _local20 = (m_motorMass * -(_local19)); _local21 = m_motorImpulse; _local22 = (_arg1.dt * m_maxMotorTorque); m_motorImpulse = b2Math.Clamp((m_motorImpulse + _local20), -(_local22), _local22); _local20 = (m_motorImpulse - _local21); _local12 = (_local12 - (_local17 * _local20)); _local14 = (_local14 + (_local18 * _local20)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local4 = _local2.m_xf.R; _local7 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local8 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local7) + (_local4.col2.x * _local8)); _local8 = ((_local4.col1.y * _local7) + (_local4.col2.y * _local8)); _local7 = _local5; _local4 = _local3.m_xf.R; _local9 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local10 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local9) + (_local4.col2.x * _local10)); _local10 = ((_local4.col1.y * _local9) + (_local4.col2.y * _local10)); _local9 = _local5; _local23 = (((_local13.x + (-(_local14) * _local10)) - _local11.x) - (-(_local12) * _local8)); _local24 = (((_local13.y + (_local14 * _local9)) - _local11.y) - (_local12 * _local7)); _local25 = (_local14 - _local12); m_mass.Solve33(impulse3, -(_local23), -(_local24), -(_local25)); if (m_limitState == e_equalLimits){ m_impulse.Add(impulse3); } else { if (m_limitState == e_atLowerLimit){ _local6 = (m_impulse.z + impulse3.z); if (_local6 < 0){ m_mass.Solve22(reduced, -(_local23), -(_local24)); impulse3.x = reduced.x; impulse3.y = reduced.y; impulse3.z = -(m_impulse.z); m_impulse.x = (m_impulse.x + reduced.x); m_impulse.y = (m_impulse.y + reduced.y); m_impulse.z = 0; }; } else { if (m_limitState == e_atUpperLimit){ _local6 = (m_impulse.z + impulse3.z); if (_local6 > 0){ m_mass.Solve22(reduced, -(_local23), -(_local24)); impulse3.x = reduced.x; impulse3.y = reduced.y; impulse3.z = -(m_impulse.z); m_impulse.x = (m_impulse.x + reduced.x); m_impulse.y = (m_impulse.y + reduced.y); m_impulse.z = 0; }; }; }; }; _local11.x = (_local11.x - (_local15 * impulse3.x)); _local11.y = (_local11.y - (_local15 * impulse3.y)); _local12 = (_local12 - (_local17 * (((_local7 * impulse3.y) - (_local8 * impulse3.x)) + impulse3.z))); _local13.x = (_local13.x + (_local16 * impulse3.x)); _local13.y = (_local13.y + (_local16 * impulse3.y)); _local14 = (_local14 + (_local18 * (((_local9 * impulse3.y) - (_local10 * impulse3.x)) + impulse3.z))); } else { _local4 = _local2.m_xf.R; _local7 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local8 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local7) + (_local4.col2.x * _local8)); _local8 = ((_local4.col1.y * _local7) + (_local4.col2.y * _local8)); _local7 = _local5; _local4 = _local3.m_xf.R; _local9 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local10 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local9) + (_local4.col2.x * _local10)); _local10 = ((_local4.col1.y * _local9) + (_local4.col2.y * _local10)); _local9 = _local5; _local26 = (((_local13.x + (-(_local14) * _local10)) - _local11.x) - (-(_local12) * _local8)); _local27 = (((_local13.y + (_local14 * _local9)) - _local11.y) - (_local12 * _local7)); m_mass.Solve22(impulse2, -(_local26), -(_local27)); m_impulse.x = (m_impulse.x + impulse2.x); m_impulse.y = (m_impulse.y + impulse2.y); _local11.x = (_local11.x - (_local15 * impulse2.x)); _local11.y = (_local11.y - (_local15 * impulse2.y)); _local12 = (_local12 - (_local17 * ((_local7 * impulse2.y) - (_local8 * impulse2.x)))); _local13.x = (_local13.x + (_local16 * impulse2.x)); _local13.y = (_local13.y + (_local16 * impulse2.y)); _local14 = (_local14 + (_local18 * ((_local9 * impulse2.y) - (_local10 * impulse2.x)))); }; _local2.m_linearVelocity.SetV(_local11); _local2.m_angularVelocity = _local12; _local3.m_linearVelocity.SetV(_local13); _local3.m_angularVelocity = _local14; } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:Number; var _local3:Number; var _local4:b2Mat22; var _local9:Number; var _local10:Number; var _local11:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local5:b2Body = m_bodyA; var _local6:b2Body = m_bodyB; var _local7:Number = 0; var _local8:Number = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local6.m_sweep.a - _local5.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local3 = b2Math.Clamp((_local25 - m_lowerAngle), -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local3); _local7 = b2Math.Abs(_local3); } else { if (m_limitState == e_atLowerLimit){ _local3 = (_local25 - m_lowerAngle); _local7 = -(_local3); _local3 = b2Math.Clamp((_local3 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local3); } else { if (m_limitState == e_atUpperLimit){ _local3 = (_local25 - m_upperAngle); _local7 = _local3; _local3 = b2Math.Clamp((_local3 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local3); }; }; }; _local5.m_sweep.a = (_local5.m_sweep.a - (_local5.m_invI * _local26)); _local6.m_sweep.a = (_local6.m_sweep.a + (_local6.m_invI * _local26)); _local5.SynchronizeTransform(); _local6.SynchronizeTransform(); }; _local4 = _local5.m_xf.R; var _local12:Number = (m_localAnchor1.x - _local5.m_sweep.localCenter.x); var _local13:Number = (m_localAnchor1.y - _local5.m_sweep.localCenter.y); _local9 = ((_local4.col1.x * _local12) + (_local4.col2.x * _local13)); _local13 = ((_local4.col1.y * _local12) + (_local4.col2.y * _local13)); _local12 = _local9; _local4 = _local6.m_xf.R; var _local14:Number = (m_localAnchor2.x - _local6.m_sweep.localCenter.x); var _local15:Number = (m_localAnchor2.y - _local6.m_sweep.localCenter.y); _local9 = ((_local4.col1.x * _local14) + (_local4.col2.x * _local15)); _local15 = ((_local4.col1.y * _local14) + (_local4.col2.y * _local15)); _local14 = _local9; var _local16:Number = (((_local6.m_sweep.c.x + _local14) - _local5.m_sweep.c.x) - _local12); var _local17:Number = (((_local6.m_sweep.c.y + _local15) - _local5.m_sweep.c.y) - _local13); var _local18:Number = ((_local16 * _local16) + (_local17 * _local17)); var _local19:Number = Math.sqrt(_local18); _local8 = _local19; var _local20:Number = _local5.m_invMass; var _local21:Number = _local6.m_invMass; var _local22:Number = _local5.m_invI; var _local23:Number = _local6.m_invI; var _local24:Number = (10 * b2Settings.b2_linearSlop); if (_local18 > (_local24 * _local24)){ _local27 = (_local16 / _local19); _local28 = (_local17 / _local19); _local29 = (_local20 + _local21); _local30 = (1 / _local29); _local10 = (_local30 * -(_local16)); _local11 = (_local30 * -(_local17)); _local31 = 0.5; _local5.m_sweep.c.x = (_local5.m_sweep.c.x - ((_local31 * _local20) * _local10)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y - ((_local31 * _local20) * _local11)); _local6.m_sweep.c.x = (_local6.m_sweep.c.x + ((_local31 * _local21) * _local10)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + ((_local31 * _local21) * _local11)); _local16 = (((_local6.m_sweep.c.x + _local14) - _local5.m_sweep.c.x) - _local12); _local17 = (((_local6.m_sweep.c.y + _local15) - _local5.m_sweep.c.y) - _local13); }; K1.col1.x = (_local20 + _local21); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local20 + _local21); K2.col1.x = ((_local22 * _local13) * _local13); K2.col2.x = ((-(_local22) * _local12) * _local13); K2.col1.y = ((-(_local22) * _local12) * _local13); K2.col2.y = ((_local22 * _local12) * _local12); K3.col1.x = ((_local23 * _local15) * _local15); K3.col2.x = ((-(_local23) * _local14) * _local15); K3.col1.y = ((-(_local23) * _local14) * _local15); K3.col2.y = ((_local23 * _local14) * _local14); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); _local10 = tImpulse.x; _local11 = tImpulse.y; _local5.m_sweep.c.x = (_local5.m_sweep.c.x - (_local5.m_invMass * _local10)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y - (_local5.m_invMass * _local11)); _local5.m_sweep.a = (_local5.m_sweep.a - (_local5.m_invI * ((_local12 * _local11) - (_local13 * _local10)))); _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_local6.m_invMass * _local10)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_local6.m_invMass * _local11)); _local6.m_sweep.a = (_local6.m_sweep.a + (_local6.m_invI * ((_local14 * _local11) - (_local15 * _local10)))); _local5.SynchronizeTransform(); _local6.SynchronizeTransform(); return ((((_local8 <= b2Settings.b2_linearSlop)) && ((_local7 <= b2Settings.b2_angularSlop)))); } } }//package Box2D.Dynamics.Joints
Section 77
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2RevoluteJointDef extends b2JointDef { public var localAnchorA:b2Vec2; public var localAnchorB:b2Vec2; public var referenceAngle:Number; public var enableLimit:Boolean; public var lowerAngle:Number; public var upperAngle:Number; public var enableMotor:Boolean; public var motorSpeed:Number; public var maxMotorTorque:Number; public function b2RevoluteJointDef(){ localAnchorA = new b2Vec2(); localAnchorB = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchorA.Set(0, 0); localAnchorB.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{ bodyA = _arg1; bodyB = _arg2; localAnchorA = bodyA.GetLocalPoint(_arg3); localAnchorB = bodyB.GetLocalPoint(_arg3); referenceAngle = (bodyB.GetAngle() - bodyA.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 78
//b2WeldJoint (Box2D.Dynamics.Joints.b2WeldJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2WeldJoint extends b2Joint { private var m_localAnchorA:b2Vec2; private var m_localAnchorB:b2Vec2; private var m_referenceAngle:Number; private var m_impulse:b2Vec3; private var m_mass:b2Mat33; public function b2WeldJoint(_arg1:b2WeldJointDef){ m_localAnchorA = new b2Vec2(); m_localAnchorB = new b2Vec2(); m_impulse = new b2Vec3(); m_mass = new b2Mat33(); super(_arg1); m_localAnchorA.SetV(_arg1.localAnchorA); m_localAnchorB.SetV(_arg1.localAnchorB); m_referenceAngle = _arg1.referenceAngle; m_impulse.SetZero(); m_mass = new b2Mat33(); } override public function GetAnchorA():b2Vec2{ return (m_bodyA.GetWorldPoint(m_localAnchorA)); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchorB)); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2((_arg1 * m_impulse.x), (_arg1 * m_impulse.y))); } override public function GetReactionTorque(_arg1:Number):Number{ return ((_arg1 * m_impulse.z)); } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; _local4 = m_bodyA; _local5 = m_bodyB; _local2 = _local4.m_xf.R; _local6 = (m_localAnchorA.x - _local4.m_sweep.localCenter.x); _local7 = (m_localAnchorA.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_localAnchorB.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchorB.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; _local10 = _local4.m_invMass; _local11 = _local5.m_invMass; _local12 = _local4.m_invI; _local13 = _local5.m_invI; m_mass.col1.x = (((_local10 + _local11) + ((_local7 * _local7) * _local12)) + ((_local9 * _local9) * _local13)); m_mass.col2.x = (((-(_local7) * _local6) * _local12) - ((_local9 * _local8) * _local13)); m_mass.col3.x = ((-(_local7) * _local12) - (_local9 * _local13)); m_mass.col1.y = m_mass.col2.x; m_mass.col2.y = (((_local10 + _local11) + ((_local6 * _local6) * _local12)) + ((_local8 * _local8) * _local13)); m_mass.col3.y = ((_local6 * _local12) + (_local8 * _local13)); m_mass.col1.z = m_mass.col3.x; m_mass.col2.z = m_mass.col3.y; m_mass.col3.z = (_local12 + _local13); if (_arg1.warmStarting){ m_impulse.x = (m_impulse.x * _arg1.dtRatio); m_impulse.y = (m_impulse.y * _arg1.dtRatio); m_impulse.z = (m_impulse.z * _arg1.dtRatio); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local10 * m_impulse.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local10 * m_impulse.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local12 * (((_local6 * m_impulse.y) - (_local7 * m_impulse.x)) + m_impulse.z))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local11 * m_impulse.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local11 * m_impulse.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local13 * (((_local8 * m_impulse.y) - (_local9 * m_impulse.x)) + m_impulse.z))); } else { m_impulse.SetZero(); }; } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body = m_bodyA; var _local5:b2Body = m_bodyB; var _local6:b2Vec2 = _local4.m_linearVelocity; var _local7:Number = _local4.m_angularVelocity; var _local8:b2Vec2 = _local5.m_linearVelocity; var _local9:Number = _local5.m_angularVelocity; var _local10:Number = _local4.m_invMass; var _local11:Number = _local5.m_invMass; var _local12:Number = _local4.m_invI; var _local13:Number = _local5.m_invI; _local2 = _local4.m_xf.R; var _local14:Number = (m_localAnchorA.x - _local4.m_sweep.localCenter.x); var _local15:Number = (m_localAnchorA.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local14) + (_local2.col2.x * _local15)); _local15 = ((_local2.col1.y * _local14) + (_local2.col2.y * _local15)); _local14 = _local3; _local2 = _local5.m_xf.R; var _local16:Number = (m_localAnchorB.x - _local5.m_sweep.localCenter.x); var _local17:Number = (m_localAnchorB.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local16) + (_local2.col2.x * _local17)); _local17 = ((_local2.col1.y * _local16) + (_local2.col2.y * _local17)); _local16 = _local3; var _local18:Number = (((_local8.x - (_local9 * _local17)) - _local6.x) + (_local7 * _local15)); var _local19:Number = (((_local8.y + (_local9 * _local16)) - _local6.y) - (_local7 * _local14)); var _local20:Number = (_local9 - _local7); var _local21:b2Vec3 = new b2Vec3(); m_mass.Solve33(_local21, -(_local18), -(_local19), -(_local20)); m_impulse.Add(_local21); _local6.x = (_local6.x - (_local10 * _local21.x)); _local6.y = (_local6.y - (_local10 * _local21.y)); _local7 = (_local7 - (_local12 * (((_local14 * _local21.y) - (_local15 * _local21.x)) + _local21.z))); _local8.x = (_local8.x + (_local11 * _local21.x)); _local8.y = (_local8.y + (_local11 * _local21.y)); _local9 = (_local9 + (_local13 * (((_local16 * _local21.y) - (_local17 * _local21.x)) + _local21.z))); _local4.m_angularVelocity = _local7; _local5.m_angularVelocity = _local9; } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body = m_bodyA; var _local5:b2Body = m_bodyB; _local2 = _local4.m_xf.R; var _local6:Number = (m_localAnchorA.x - _local4.m_sweep.localCenter.x); var _local7:Number = (m_localAnchorA.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; var _local8:Number = (m_localAnchorB.x - _local5.m_sweep.localCenter.x); var _local9:Number = (m_localAnchorB.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; var _local10:Number = _local4.m_invMass; var _local11:Number = _local5.m_invMass; var _local12:Number = _local4.m_invI; var _local13:Number = _local5.m_invI; var _local14:Number = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6); var _local15:Number = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7); var _local16:Number = ((_local5.m_sweep.a - _local4.m_sweep.a) - m_referenceAngle); var _local17:Number = (10 * b2Settings.b2_linearSlop); var _local18:Number = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); var _local19:Number = b2Math.Abs(_local16); if (_local18 > _local17){ _local12 = (_local12 * 1); _local13 = (_local13 * 1); }; m_mass.col1.x = (((_local10 + _local11) + ((_local7 * _local7) * _local12)) + ((_local9 * _local9) * _local13)); m_mass.col2.x = (((-(_local7) * _local6) * _local12) - ((_local9 * _local8) * _local13)); m_mass.col3.x = ((-(_local7) * _local12) - (_local9 * _local13)); m_mass.col1.y = m_mass.col2.x; m_mass.col2.y = (((_local10 + _local11) + ((_local6 * _local6) * _local12)) + ((_local8 * _local8) * _local13)); m_mass.col3.y = ((_local6 * _local12) + (_local8 * _local13)); m_mass.col1.z = m_mass.col3.x; m_mass.col2.z = m_mass.col3.y; m_mass.col3.z = (_local12 + _local13); var _local20:b2Vec3 = new b2Vec3(); m_mass.Solve33(_local20, -(_local14), -(_local15), -(_local16)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x - (_local10 * _local20.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y - (_local10 * _local20.y)); _local4.m_sweep.a = (_local4.m_sweep.a - (_local12 * (((_local6 * _local20.y) - (_local7 * _local20.x)) + _local20.z))); _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_local11 * _local20.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_local11 * _local20.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_local13 * (((_local8 * _local20.y) - (_local9 * _local20.x)) + _local20.z))); _local4.SynchronizeTransform(); _local5.SynchronizeTransform(); return ((((_local18 <= b2Settings.b2_linearSlop)) && ((_local19 <= b2Settings.b2_angularSlop)))); } } }//package Box2D.Dynamics.Joints
Section 79
//b2WeldJointDef (Box2D.Dynamics.Joints.b2WeldJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2WeldJointDef extends b2JointDef { public var localAnchorA:b2Vec2; public var localAnchorB:b2Vec2; public var referenceAngle:Number; public function b2WeldJointDef(){ localAnchorA = new b2Vec2(); localAnchorB = new b2Vec2(); super(); type = b2Joint.e_weldJoint; referenceAngle = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ bodyA = _arg1; bodyB = _arg2; localAnchorA.SetV(bodyA.GetLocalPoint(_arg3)); localAnchorB.SetV(bodyB.GetLocalPoint(_arg3)); referenceAngle = (bodyB.GetAngle() - bodyA.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 80
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Controllers.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; public class b2Body { b2internal var m_flags:uint; b2internal var m_type:int; b2internal var m_islandIndex:int; b2internal var m_xf:b2Transform; b2internal var m_sweep:b2Sweep; b2internal var m_linearVelocity:b2Vec2; b2internal var m_angularVelocity:Number; b2internal var m_force:b2Vec2; b2internal var m_torque:Number; b2internal var m_world:b2World; b2internal var m_prev:b2Body; b2internal var m_next:b2Body; b2internal var m_fixtureList:b2Fixture; b2internal var m_fixtureCount:int; b2internal var m_controllerList:b2ControllerEdge; b2internal var m_controllerCount:int; b2internal var m_jointList:b2JointEdge; b2internal var m_contactList:b2ContactEdge; b2internal var m_mass:Number; b2internal var m_invMass:Number; b2internal var m_I:Number; b2internal var m_invI:Number; b2internal var m_inertiaScale:Number; b2internal var m_linearDamping:Number; b2internal var m_angularDamping:Number; b2internal var m_sleepTime:Number; private var m_userData; private static var s_xf1:b2Transform = new b2Transform(); b2internal static var e_islandFlag:uint = 1; b2internal static var e_awakeFlag:uint = 2; b2internal static var e_allowSleepFlag:uint = 4; b2internal static var e_bulletFlag:uint = 8; b2internal static var e_fixedRotationFlag:uint = 16; b2internal static var e_activeFlag:uint = 32; public static var b2_staticBody:uint = 0; public static var b2_kinematicBody:uint = 1; public static var b2_dynamicBody:uint = 2; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ m_xf = new b2Transform(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.bullet){ 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.awake){ m_flags = (m_flags | e_awakeFlag); }; if (_arg1.active){ m_flags = (m_flags | e_activeFlag); }; m_world = _arg2; m_xf.position.SetV(_arg1.position); m_xf.R.Set(_arg1.angle); m_sweep.localCenter.SetZero(); 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_controllerList = null; m_contactList = null; m_controllerCount = 0; m_prev = null; m_next = null; m_linearVelocity.SetV(_arg1.linearVelocity); m_angularVelocity = _arg1.angularVelocity; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_sleepTime = 0; m_type = _arg1.type; if (m_type == b2_dynamicBody){ m_mass = 1; m_invMass = 1; } else { m_mass = 0; m_invMass = 0; }; m_I = 0; m_invI = 0; m_inertiaScale = _arg1.inertiaScale; m_userData = _arg1.userData; m_fixtureList = null; m_fixtureCount = 0; } private function connectEdges(_arg1:b2EdgeShape, _arg2:b2EdgeShape, _arg3:Number):Number{ var _local4:Number = Math.atan2(_arg2.GetDirectionVector().y, _arg2.GetDirectionVector().x); var _local5:Number = Math.tan(((_local4 - _arg3) * 0.5)); var _local6:b2Vec2 = b2Math.MulFV(_local5, _arg2.GetDirectionVector()); _local6 = b2Math.SubtractVV(_local6, _arg2.GetNormalVector()); _local6 = b2Math.MulFV(b2Settings.b2_toiSlop, _local6); _local6 = b2Math.AddVV(_local6, _arg2.GetVertex1()); var _local7:b2Vec2 = b2Math.AddVV(_arg1.GetDirectionVector(), _arg2.GetDirectionVector()); _local7.Normalize(); var _local8 = (b2Math.Dot(_arg1.GetDirectionVector(), _arg2.GetNormalVector()) > 0); _arg1.SetNextEdge(_arg2, _local6, _local7, _local8); _arg2.SetPrevEdge(_arg1, _local6, _local7, _local8); return (_local4); } public function CreateFixture(_arg1:b2FixtureDef):b2Fixture{ var _local3:IBroadPhase; if (m_world.IsLocked() == true){ return (null); }; var _local2:b2Fixture = new b2Fixture(); _local2.Create(this, m_xf, _arg1); if ((m_flags & e_activeFlag)){ _local3 = m_world.m_contactManager.m_broadPhase; _local2.CreateProxy(_local3, m_xf); }; _local2.m_next = m_fixtureList; m_fixtureList = _local2; m_fixtureCount++; _local2.m_body = this; if (_local2.m_density > 0){ ResetMassData(); }; m_world.m_flags = (m_world.m_flags | b2World.e_newFixture); return (_local2); } public function CreateFixture2(_arg1:b2Shape, _arg2:Number=0):b2Fixture{ var _local3:b2FixtureDef = new b2FixtureDef(); _local3.shape = _arg1; _local3.density = _arg2; return (CreateFixture(_local3)); } public function DestroyFixture(_arg1:b2Fixture):void{ var _local6:b2Contact; var _local7:b2Fixture; var _local8:b2Fixture; var _local9:IBroadPhase; if (m_world.IsLocked() == true){ return; }; var _local2:b2Fixture = m_fixtureList; var _local3:b2Fixture; var _local4:Boolean; while (_local2 != null) { if (_local2 == _arg1){ if (_local3){ _local3.m_next = _arg1.m_next; } else { m_fixtureList = _arg1.m_next; }; _local4 = true; break; }; _local3 = _local2; _local2 = _local2.m_next; }; var _local5:b2ContactEdge = m_contactList; while (_local5) { _local6 = _local5.contact; _local5 = _local5.next; _local7 = _local6.GetFixtureA(); _local8 = _local6.GetFixtureB(); if ((((_arg1 == _local7)) || ((_arg1 == _local8)))){ m_world.m_contactManager.Destroy(_local6); }; }; if ((m_flags & e_activeFlag)){ _local9 = m_world.m_contactManager.m_broadPhase; _arg1.DestroyProxy(_local9); }; _arg1.Destroy(); _arg1.m_body = null; _arg1.m_next = null; m_fixtureCount--; ResetMassData(); } public function SetPositionAndAngle(_arg1:b2Vec2, _arg2:Number):void{ var _local3:b2Fixture; if (m_world.IsLocked() == true){ return; }; 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:IBroadPhase = m_world.m_contactManager.m_broadPhase; _local3 = m_fixtureList; while (_local3) { _local3.Synchronize(_local6, m_xf, m_xf); _local3 = _local3.m_next; }; m_world.m_contactManager.FindNewContacts(); } public function SetTransform(_arg1:b2Transform):void{ SetPositionAndAngle(_arg1.position, _arg1.GetAngle()); } public function GetTransform():b2Transform{ return (m_xf); } public function GetPosition():b2Vec2{ return (m_xf.position); } public function SetPosition(_arg1:b2Vec2):void{ SetPositionAndAngle(_arg1, GetAngle()); } public function GetAngle():Number{ return (m_sweep.a); } public function SetAngle(_arg1:Number):void{ SetPositionAndAngle(GetPosition(), _arg1); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function SetLinearVelocity(_arg1:b2Vec2):void{ if (m_type == b2_staticBody){ return; }; m_linearVelocity.SetV(_arg1); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function SetAngularVelocity(_arg1:Number):void{ if (m_type == b2_staticBody){ return; }; m_angularVelocity = _arg1; } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function GetDefinition():b2BodyDef{ var _local1:b2BodyDef = new b2BodyDef(); _local1.type = GetType(); _local1.allowSleep = ((m_flags & e_allowSleepFlag) == e_allowSleepFlag); _local1.angle = GetAngle(); _local1.angularDamping = m_angularDamping; _local1.angularVelocity = m_angularVelocity; _local1.fixedRotation = ((m_flags & e_fixedRotationFlag) == e_fixedRotationFlag); _local1.bullet = ((m_flags & e_bulletFlag) == e_bulletFlag); _local1.awake = ((m_flags & e_awakeFlag) == e_awakeFlag); _local1.linearDamping = m_linearDamping; _local1.linearVelocity.SetV(GetLinearVelocity()); _local1.position = GetPosition(); _local1.userData = GetUserData(); return (_local1); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (m_type != b2_dynamicBody){ return; }; if (IsAwake() == false){ SetAwake(true); }; m_force.x = (m_force.x + _arg1.x); m_force.y = (m_force.y + _arg1.y); m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))); } public function ApplyTorque(_arg1:Number):void{ if (m_type != b2_dynamicBody){ return; }; if (IsAwake() == false){ SetAwake(true); }; m_torque = (m_torque + _arg1); } public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (m_type != b2_dynamicBody){ return; }; if (IsAwake() == false){ SetAwake(true); }; 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 Split(_arg1:Function):b2Body{ var _local7:b2Fixture; var _local13:b2Fixture; var _local2:b2Vec2 = GetLinearVelocity().Copy(); var _local3:Number = GetAngularVelocity(); var _local4:b2Vec2 = GetWorldCenter(); var _local5:b2Body = this; var _local6:b2Body = m_world.CreateBody(GetDefinition()); var _local8:b2Fixture = _local5.m_fixtureList; while (_local8) { if (_arg1(_local8)){ _local13 = _local8.m_next; if (_local7){ _local7.m_next = _local13; } else { _local5.m_fixtureList = _local13; }; _local5.m_fixtureCount--; _local8.m_next = _local6.m_fixtureList; _local6.m_fixtureList = _local8; _local6.m_fixtureCount++; _local8.m_body = _local6; _local8 = _local13; } else { _local7 = _local8; _local8 = _local8.m_next; }; }; _local5.ResetMassData(); _local6.ResetMassData(); var _local9:b2Vec2 = _local5.GetWorldCenter(); var _local10:b2Vec2 = _local6.GetWorldCenter(); var _local11:b2Vec2 = b2Math.AddVV(_local2, b2Math.CrossFV(_local3, b2Math.SubtractVV(_local9, _local4))); var _local12:b2Vec2 = b2Math.AddVV(_local2, b2Math.CrossFV(_local3, b2Math.SubtractVV(_local10, _local4))); _local5.SetLinearVelocity(_local11); _local6.SetLinearVelocity(_local12); _local5.SetAngularVelocity(_local3); _local6.SetAngularVelocity(_local3); _local5.SynchronizeFixtures(); _local6.SynchronizeFixtures(); return (_local6); } public function Merge(_arg1:b2Body):void{ var _local2:b2Fixture; var _local3:b2Body; var _local4:b2Body; var _local11:b2Fixture; _local2 = _arg1.m_fixtureList; while (_local2) { _local11 = _local2.m_next; _arg1.m_fixtureCount--; _local2.m_next = m_fixtureList; m_fixtureList = _local2; m_fixtureCount++; _local2.m_body = _local4; _local2 = _local11; }; _local3.m_fixtureCount = 0; _local3 = this; _local4 = _arg1; var _local5:b2Vec2 = _local3.GetWorldCenter(); var _local6:b2Vec2 = _local4.GetWorldCenter(); var _local7:b2Vec2 = _local3.GetLinearVelocity().Copy(); var _local8:b2Vec2 = _local4.GetLinearVelocity().Copy(); var _local9:Number = _local3.GetAngularVelocity(); var _local10:Number = _local4.GetAngularVelocity(); _local3.ResetMassData(); SynchronizeFixtures(); } public function GetMass():Number{ return (m_mass); } public function GetInertia():Number{ return (m_I); } public function GetMassData(_arg1:b2MassData):void{ _arg1.mass = m_mass; _arg1.I = m_I; _arg1.center.SetV(m_sweep.localCenter); } public function SetMassData(_arg1:b2MassData):void{ b2Settings.b2Assert((m_world.IsLocked() == false)); if (m_world.IsLocked() == true){ return; }; if (m_type != b2_dynamicBody){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass <= 0){ m_mass = 1; }; m_invMass = (1 / m_mass); if ((((_arg1.I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (_arg1.I - (m_mass * ((_arg1.center.x * _arg1.center.x) + (_arg1.center.y * _arg1.center.y)))); m_invI = (1 / m_I); }; var _local2:b2Vec2 = m_sweep.c.Copy(); m_sweep.localCenter.SetV(_arg1.center); m_sweep.c0.SetV(b2Math.MulX(m_xf, m_sweep.localCenter)); m_sweep.c.SetV(m_sweep.c0); m_linearVelocity.x = (m_linearVelocity.x + (m_angularVelocity * -((m_sweep.c.y - _local2.y)))); m_linearVelocity.y = (m_linearVelocity.y + (m_angularVelocity * (m_sweep.c.x - _local2.x))); } public function ResetMassData():void{ var _local4:b2MassData; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_sweep.localCenter.SetZero(); if ((((m_type == b2_staticBody)) || ((m_type == b2_kinematicBody)))){ return; }; var _local1:b2Vec2 = b2Vec2.Make(0, 0); var _local2:b2Fixture = m_fixtureList; while (_local2) { if (_local2.m_density == 0){ } else { _local4 = _local2.GetMassData(); m_mass = (m_mass + _local4.mass); _local1.x = (_local1.x + (_local4.center.x * _local4.mass)); _local1.y = (_local1.y + (_local4.center.y * _local4.mass)); m_I = (m_I + _local4.I); }; _local2 = _local2.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local1.x = (_local1.x * m_invMass); _local1.y = (_local1.y * m_invMass); } else { m_mass = 1; m_invMass = 1; }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local1.x * _local1.x) + (_local1.y * _local1.y)))); m_I = (m_I * m_inertiaScale); b2Settings.b2Assert((m_I > 0)); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; var _local3:b2Vec2 = m_sweep.c.Copy(); m_sweep.localCenter.SetV(_local1); m_sweep.c0.SetV(b2Math.MulX(m_xf, m_sweep.localCenter)); m_sweep.c.SetV(m_sweep.c0); m_linearVelocity.x = (m_linearVelocity.x + (m_angularVelocity * -((m_sweep.c.y - _local3.y)))); m_linearVelocity.y = (m_linearVelocity.y + (m_angularVelocity * (m_sweep.c.x - _local3.x))); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.MulMV(m_xf.R, _arg1)); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.MulXT(m_xf, _arg1)); } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.MulTMV(m_xf.R, _arg1)); } public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((m_linearVelocity.x - (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.y + (m_angularVelocity * (_arg1.x - m_sweep.c.x))))); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x - (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.y + (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function GetLinearDamping():Number{ return (m_linearDamping); } public function SetLinearDamping(_arg1:Number):void{ m_linearDamping = _arg1; } public function GetAngularDamping():Number{ return (m_angularDamping); } public function SetAngularDamping(_arg1:Number):void{ m_angularDamping = _arg1; } public function SetType(_arg1:uint):void{ if (m_type == _arg1){ return; }; m_type = _arg1; ResetMassData(); if (m_type == b2_staticBody){ m_linearVelocity.SetZero(); m_angularVelocity = 0; }; SetAwake(true); m_force.SetZero(); m_torque = 0; var _local2:b2ContactEdge = m_contactList; while (_local2) { _local2.contact.FlagForFiltering(); _local2 = _local2.next; }; } public function GetType():uint{ return (m_type); } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function SetSleepingAllowed(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); SetAwake(true); }; } public function SetAwake(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_awakeFlag); m_sleepTime = 0; } else { m_flags = (m_flags & ~(e_awakeFlag)); m_sleepTime = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_force.SetZero(); m_torque = 0; }; } public function IsAwake():Boolean{ return (((m_flags & e_awakeFlag) == e_awakeFlag)); } public function SetFixedRotation(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_fixedRotationFlag); } else { m_flags = (m_flags & ~(e_fixedRotationFlag)); }; ResetMassData(); } public function IsFixedRotation():Boolean{ return (((m_flags & e_fixedRotationFlag) == e_fixedRotationFlag)); } public function SetActive(_arg1:Boolean):void{ var _local2:IBroadPhase; var _local3:b2Fixture; var _local4:b2ContactEdge; var _local5:b2ContactEdge; if (_arg1 == IsActive()){ return; }; if (_arg1){ m_flags = (m_flags | e_activeFlag); _local2 = m_world.m_contactManager.m_broadPhase; _local3 = m_fixtureList; while (_local3) { _local3.CreateProxy(_local2, m_xf); _local3 = _local3.m_next; }; } else { m_flags = (m_flags & ~(e_activeFlag)); _local2 = m_world.m_contactManager.m_broadPhase; _local3 = m_fixtureList; while (_local3) { _local3.DestroyProxy(_local2); _local3 = _local3.m_next; }; _local4 = m_contactList; while (_local4) { _local5 = _local4; _local4 = _local4.next; m_world.m_contactManager.Destroy(_local5.contact); }; m_contactList = null; }; } public function IsActive():Boolean{ return (((m_flags & e_activeFlag) == e_activeFlag)); } public function IsSleepingAllowed():Boolean{ return (((m_flags & e_allowSleepFlag) == e_allowSleepFlag)); } public function GetFixtureList():b2Fixture{ return (m_fixtureList); } public function GetJointList():b2JointEdge{ return (m_jointList); } public function GetControllerList():b2ControllerEdge{ return (m_controllerList); } public function GetContactList():b2ContactEdge{ return (m_contactList); } public function GetNext():b2Body{ return (m_next); } public function GetUserData(){ return (m_userData); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetWorld():b2World{ return (m_world); } b2internal function SynchronizeFixtures():void{ var _local4:b2Fixture; var _local1:b2Transform = 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:IBroadPhase = m_world.m_contactManager.m_broadPhase; _local4 = m_fixtureList; while (_local4) { _local4.Synchronize(_local5, _local1, m_xf); _local4 = _local4.m_next; }; } b2internal 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))); } b2internal function ShouldCollide(_arg1:b2Body):Boolean{ if (((!((m_type == b2_dynamicBody))) && (!((_arg1.m_type == b2_dynamicBody))))){ return (false); }; var _local2:b2JointEdge = m_jointList; while (_local2) { if (_local2.other == _arg1){ if (_local2.joint.m_collideConnected == false){ return (false); }; }; _local2 = _local2.next; }; return (true); } b2internal function Advance(_arg1:Number):void{ m_sweep.Advance(_arg1); m_sweep.c.SetV(m_sweep.c0); m_sweep.a = m_sweep.a0; SynchronizeTransform(); } } }//package Box2D.Dynamics
Section 81
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Common.Math.*; public class b2BodyDef { public var type:uint; public var position:b2Vec2; public var angle:Number; public var linearVelocity:b2Vec2; public var angularVelocity:Number; public var linearDamping:Number; public var angularDamping:Number; public var allowSleep:Boolean; public var awake:Boolean; public var fixedRotation:Boolean; public var bullet:Boolean; public var active:Boolean; public var userData; public var inertiaScale:Number; public function b2BodyDef(){ position = new b2Vec2(); linearVelocity = new b2Vec2(); super(); userData = null; position.Set(0, 0); angle = 0; linearVelocity.Set(0, 0); angularVelocity = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; awake = true; fixedRotation = false; bullet = false; type = b2Body.b2_staticBody; active = true; inertiaScale = 1; } } }//package Box2D.Dynamics
Section 82
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Common.*; public class b2ContactFilter { b2internal static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function ShouldCollide(_arg1:b2Fixture, _arg2:b2Fixture):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); } public function RayCollide(_arg1, _arg2:b2Fixture):Boolean{ if (!_arg1){ return (true); }; return (ShouldCollide((_arg1 as b2Fixture), _arg2)); } } }//package Box2D.Dynamics
Section 83
//b2ContactImpulse (Box2D.Dynamics.b2ContactImpulse) package Box2D.Dynamics { import Box2D.Common.*; public class b2ContactImpulse { public var normalImpulses:Array; public var tangentImpulses:Array; public function b2ContactImpulse(){ normalImpulses = new Array(b2Settings.b2_maxManifoldPoints); tangentImpulses = new Array(b2Settings.b2_maxManifoldPoints); super(); } } }//package Box2D.Dynamics
Section 84
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; public class b2ContactListener { b2internal static var b2_defaultListener:b2ContactListener = new (b2ContactListener); ; public function BeginContact(_arg1:b2Contact):void{ } public function EndContact(_arg1:b2Contact):void{ } public function PreSolve(_arg1:b2Contact, _arg2:b2Manifold):void{ } public function PostSolve(_arg1:b2Contact, _arg2:b2ContactImpulse):void{ } } }//package Box2D.Dynamics
Section 85
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; public class b2ContactManager { b2internal var m_world:b2World; b2internal var m_broadPhase:IBroadPhase; b2internal var m_contactList:b2Contact; b2internal var m_contactCount:int; b2internal var m_contactFilter:b2ContactFilter; b2internal var m_contactListener:b2ContactListener; b2internal var m_contactFactory:b2ContactFactory; b2internal var m_allocator; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2ContactManager(){ m_world = null; m_contactCount = 0; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = b2ContactListener.b2_defaultListener; m_contactFactory = new b2ContactFactory(m_allocator); m_broadPhase = new b2DynamicTreeBroadPhase(); } public function AddPair(_arg1, _arg2):void{ var _local9:b2Fixture; var _local10:b2Fixture; var _local3:b2Fixture = (_arg1 as b2Fixture); var _local4:b2Fixture = (_arg2 as b2Fixture); var _local5:b2Body = _local3.GetBody(); var _local6:b2Body = _local4.GetBody(); if (_local5 == _local6){ return; }; var _local7:b2ContactEdge = _local6.GetContactList(); while (_local7) { if (_local7.other == _local5){ _local9 = _local7.contact.GetFixtureA(); _local10 = _local7.contact.GetFixtureB(); if ((((_local9 == _local3)) && ((_local10 == _local4)))){ return; }; if ((((_local9 == _local4)) && ((_local10 == _local3)))){ return; }; }; _local7 = _local7.next; }; if (_local6.ShouldCollide(_local5) == false){ return; }; if (m_contactFilter.ShouldCollide(_local3, _local4) == false){ return; }; var _local8:b2Contact = m_contactFactory.Create(_local3, _local4); _local3 = _local8.GetFixtureA(); _local4 = _local8.GetFixtureB(); _local5 = _local3.m_body; _local6 = _local4.m_body; _local8.m_prev = null; _local8.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local8; }; m_world.m_contactList = _local8; _local8.m_nodeA.contact = _local8; _local8.m_nodeA.other = _local6; _local8.m_nodeA.prev = null; _local8.m_nodeA.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local8.m_nodeA; }; _local5.m_contactList = _local8.m_nodeA; _local8.m_nodeB.contact = _local8; _local8.m_nodeB.other = _local5; _local8.m_nodeB.prev = null; _local8.m_nodeB.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local8.m_nodeB; }; _local6.m_contactList = _local8.m_nodeB; m_world.m_contactCount++; } public function FindNewContacts():void{ m_broadPhase.UpdatePairs(AddPair); } public function Destroy(_arg1:b2Contact):void{ var _local2:b2Fixture = _arg1.GetFixtureA(); var _local3:b2Fixture = _arg1.GetFixtureB(); var _local4:b2Body = _local2.GetBody(); var _local5:b2Body = _local3.GetBody(); if (_arg1.m_manifold.m_pointCount > 0){ m_contactListener.EndContact(_arg1); }; 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; }; if (_arg1.m_nodeA.prev){ _arg1.m_nodeA.prev.next = _arg1.m_nodeA.next; }; if (_arg1.m_nodeA.next){ _arg1.m_nodeA.next.prev = _arg1.m_nodeA.prev; }; if (_arg1.m_nodeA == _local4.m_contactList){ _local4.m_contactList = _arg1.m_nodeA.next; }; if (_arg1.m_nodeB.prev){ _arg1.m_nodeB.prev.next = _arg1.m_nodeB.next; }; if (_arg1.m_nodeB.next){ _arg1.m_nodeB.next.prev = _arg1.m_nodeB.prev; }; if (_arg1.m_nodeB == _local5.m_contactList){ _local5.m_contactList = _arg1.m_nodeB.next; }; m_contactFactory.Destroy(_arg1); m_contactCount--; } public function Collide():void{ var _local2:b2Fixture; var _local3:b2Fixture; var _local4:b2Body; var _local5:b2Body; var _local6:*; var _local7:*; var _local8:Boolean; var _local9:b2Contact; var _local1:b2Contact = m_world.m_contactList; while (_local1) { _local2 = _local1.GetFixtureA(); _local3 = _local1.GetFixtureB(); _local4 = _local2.GetBody(); _local5 = _local3.GetBody(); if ((((_local4.IsAwake() == false)) && ((_local5.IsAwake() == false)))){ _local1 = _local1.GetNext(); } else { if ((_local1.m_flags & b2Contact.e_filterFlag)){ if (_local5.ShouldCollide(_local4) == false){ _local9 = _local1; _local1 = _local9.GetNext(); Destroy(_local9); continue; }; if (m_contactFilter.ShouldCollide(_local2, _local3) == false){ _local9 = _local1; _local1 = _local9.GetNext(); Destroy(_local9); continue; }; _local1.m_flags = (_local1.m_flags & ~(b2Contact.e_filterFlag)); }; _local6 = _local2.m_proxy; _local7 = _local3.m_proxy; _local8 = m_broadPhase.TestOverlap(_local6, _local7); if (_local8 == false){ _local9 = _local1; _local1 = _local9.GetNext(); Destroy(_local9); } else { _local1.Update(m_contactListener); _local1 = _local1.GetNext(); }; }; }; } } }//package Box2D.Dynamics
Section 86
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; import flash.display.*; public class b2DebugDraw { private var m_drawFlags:uint; b2internal var m_sprite:Sprite; private var m_drawScale:Number;// = 1 private var m_lineThickness:Number;// = 1 private var m_alpha:Number;// = 1 private var m_fillAlpha:Number;// = 1 private var m_xformScale:Number;// = 1 public static var e_shapeBit:uint = 1; public static var e_jointBit:uint = 2; public static var e_aabbBit:uint = 4; public static var e_pairBit:uint = 8; public static var e_centerOfMassBit:uint = 16; public static var e_controllerBit:uint = 32; public function b2DebugDraw(){ m_drawFlags = 0; } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function GetFlags():uint{ return (m_drawFlags); } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function SetSprite(_arg1:Sprite):void{ m_sprite = _arg1; } public function GetSprite():Sprite{ return (m_sprite); } public function SetDrawScale(_arg1:Number):void{ m_drawScale = _arg1; } public function GetDrawScale():Number{ return (m_drawScale); } public function SetLineThickness(_arg1:Number):void{ m_lineThickness = _arg1; } public function GetLineThickness():Number{ return (m_lineThickness); } public function SetAlpha(_arg1:Number):void{ m_alpha = _arg1; } public function GetAlpha():Number{ return (m_alpha); } public function SetFillAlpha(_arg1:Number):void{ m_fillAlpha = _arg1; } public function GetFillAlpha():Number{ return (m_fillAlpha); } public function SetXFormScale(_arg1:Number):void{ m_xformScale = _arg1; } public function GetXFormScale():Number{ return (m_xformScale); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo(0, 0); m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); m_sprite.graphics.endFill(); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale)); } public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale)); } public function DrawTransform(_arg1:b2Transform):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 87
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Dynamics.Joints.*; public class b2DestructionListener { public function SayGoodbyeJoint(_arg1:b2Joint):void{ } public function SayGoodbyeFixture(_arg1:b2Fixture):void{ } } }//package Box2D.Dynamics
Section 88
//b2FilterData (Box2D.Dynamics.b2FilterData) package Box2D.Dynamics { public class b2FilterData { public var categoryBits:uint;// = 1 public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public function Copy():b2FilterData{ var _local1:b2FilterData = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Dynamics
Section 89
//b2Fixture (Box2D.Dynamics.b2Fixture) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; public class b2Fixture { private var m_massData:b2MassData; b2internal var m_aabb:b2AABB; b2internal var m_density:Number; b2internal var m_next:b2Fixture; b2internal var m_body:b2Body; b2internal var m_shape:b2Shape; b2internal var m_friction:Number; b2internal var m_restitution:Number; b2internal var m_proxy; b2internal var m_filter:b2FilterData; b2internal var m_isSensor:Boolean; b2internal var m_userData; public function b2Fixture(){ m_filter = new b2FilterData(); super(); m_aabb = new b2AABB(); m_userData = null; m_body = null; m_next = null; m_shape = null; m_density = 0; m_friction = 0; m_restitution = 0; } public function GetType():int{ return (m_shape.GetType()); } public function GetShape():b2Shape{ return (m_shape); } public function SetSensor(_arg1:Boolean):void{ var _local3:b2Contact; var _local4:b2Fixture; var _local5:b2Fixture; if (m_isSensor == _arg1){ return; }; m_isSensor = _arg1; if (m_body == null){ return; }; var _local2:b2ContactEdge = m_body.GetContactList(); while (_local2) { _local3 = _local2.contact; _local4 = _local3.GetFixtureA(); _local5 = _local3.GetFixtureB(); if ((((_local4 == this)) || ((_local5 == this)))){ _local3.SetSensor(((_local4.IsSensor()) || (_local5.IsSensor()))); }; _local2 = _local2.next; }; } public function IsSensor():Boolean{ return (m_isSensor); } public function SetFilterData(_arg1:b2FilterData):void{ var _local3:b2Contact; var _local4:b2Fixture; var _local5:b2Fixture; m_filter = _arg1.Copy(); if (m_body){ return; }; var _local2:b2ContactEdge = m_body.GetContactList(); while (_local2) { _local3 = _local2.contact; _local4 = _local3.GetFixtureA(); _local5 = _local3.GetFixtureB(); if ((((_local4 == this)) || ((_local5 == this)))){ _local3.FlagForFiltering(); }; _local2 = _local2.next; }; } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function GetBody():b2Body{ return (m_body); } public function GetNext():b2Fixture{ return (m_next); } public function GetUserData(){ return (m_userData); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function TestPoint(_arg1:b2Vec2):Boolean{ return (m_shape.TestPoint(m_body.GetTransform(), _arg1)); } public function RayCast(_arg1:b2RayCastOutput, _arg2:b2RayCastInput):Boolean{ return (m_shape.RayCast(_arg1, _arg2, m_body.GetTransform())); } public function GetMassData(_arg1:b2MassData=null):b2MassData{ if (_arg1 == null){ _arg1 = new b2MassData(); }; m_shape.ComputeMass(_arg1, m_density); return (_arg1); } public function SetDensity(_arg1:Number):void{ m_density = _arg1; } public function GetDensity():Number{ return (m_density); } public function GetFriction():Number{ return (m_friction); } public function SetFriction(_arg1:Number):void{ m_friction = _arg1; } public function GetRestitution():Number{ return (m_restitution); } public function SetRestitution(_arg1:Number):void{ m_restitution = _arg1; } public function GetAABB():b2AABB{ return (m_aabb); } b2internal function Create(_arg1:b2Body, _arg2:b2Transform, _arg3:b2FixtureDef):void{ m_userData = _arg3.userData; m_friction = _arg3.friction; m_restitution = _arg3.restitution; m_body = _arg1; m_next = null; m_filter = _arg3.filter.Copy(); m_isSensor = _arg3.isSensor; m_shape = _arg3.shape.Copy(); m_density = _arg3.density; } b2internal function Destroy():void{ m_shape = null; } b2internal function CreateProxy(_arg1:IBroadPhase, _arg2:b2Transform):void{ m_shape.ComputeAABB(m_aabb, _arg2); m_proxy = _arg1.CreateProxy(m_aabb, this); } b2internal function DestroyProxy(_arg1:IBroadPhase):void{ if (m_proxy == null){ return; }; _arg1.DestroyProxy(m_proxy); m_proxy = null; } b2internal function Synchronize(_arg1:IBroadPhase, _arg2:b2Transform, _arg3:b2Transform):void{ if (!m_proxy){ return; }; var _local4:b2AABB = new b2AABB(); var _local5:b2AABB = new b2AABB(); m_shape.ComputeAABB(_local4, _arg2); m_shape.ComputeAABB(_local5, _arg3); m_aabb.Combine(_local4, _local5); var _local6:b2Vec2 = b2Math.SubtractVV(_arg3.position, _arg2.position); _arg1.MoveProxy(m_proxy, m_aabb, _local6); } } }//package Box2D.Dynamics
Section 90
//b2FixtureDef (Box2D.Dynamics.b2FixtureDef) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; public class b2FixtureDef { public var shape:b2Shape; public var userData; public var friction:Number; public var restitution:Number; public var density:Number; public var isSensor:Boolean; public var filter:b2FilterData; public function b2FixtureDef(){ filter = new b2FilterData(); super(); shape = null; userData = null; friction = 0.2; restitution = 0; density = 0; filter.categoryBits = 1; filter.maskBits = 0xFFFF; filter.groupIndex = 0; isSensor = false; } } }//package Box2D.Dynamics
Section 91
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; public class b2Island { private var m_allocator; private var m_listener:b2ContactListener; private var m_contactSolver:b2ContactSolver; b2internal var m_bodies:Array; b2internal var m_contacts:Array; b2internal var m_joints:Array; b2internal var m_bodyCount:int; b2internal var m_jointCount:int; b2internal var m_contactCount:int; private var m_bodyCapacity:int; b2internal var m_contactCapacity:int; b2internal var m_jointCapacity:int; private static var s_impulse:b2ContactImpulse = new b2ContactImpulse(); public function b2Island(){ m_bodies = new Array(); m_contacts = new Array(); m_joints = new Array(); } public function Initialize(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener, _arg6:b2ContactSolver):void{ var _local7:int; m_bodyCapacity = _arg1; m_contactCapacity = _arg2; m_jointCapacity = _arg3; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_allocator = _arg4; m_listener = _arg5; m_contactSolver = _arg6; _local7 = m_bodies.length; while (_local7 < _arg1) { m_bodies[_local7] = null; _local7++; }; _local7 = m_contacts.length; while (_local7 < _arg2) { m_contacts[_local7] = null; _local7++; }; _local7 = m_joints.length; while (_local7 < _arg3) { m_joints[_local7] = null; _local7++; }; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean):void{ var _local4:int; var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Boolean; var _local13:Boolean; var _local14:Boolean; var _local15:Number; var _local16:Number; var _local17:Number; _local4 = 0; while (_local4 < m_bodyCount) { _local6 = m_bodies[_local4]; if (_local6.GetType() != b2Body.b2_dynamicBody){ } 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_linearVelocity.Multiply(b2Math.Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); }; _local4++; }; m_contactSolver.Initialize(_arg1, m_contacts, m_contactCount, m_allocator); var _local8:b2ContactSolver = m_contactSolver; _local8.InitVelocityConstraints(_arg1); _local4 = 0; while (_local4 < m_jointCount) { _local7 = m_joints[_local4]; _local7.InitVelocityConstraints(_arg1); _local4++; }; _local4 = 0; while (_local4 < _arg1.velocityIterations) { _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.SolveVelocityConstraints(_arg1); _local5++; }; _local8.SolveVelocityConstraints(); _local4++; }; _local4 = 0; while (_local4 < m_jointCount) { _local7 = m_joints[_local4]; _local7.FinalizeVelocityConstraints(); _local4++; }; _local8.FinalizeVelocityConstraints(); _local4 = 0; while (_local4 < m_bodyCount) { _local6 = m_bodies[_local4]; if (_local6.GetType() == b2Body.b2_staticBody){ } else { _local9 = (_arg1.dt * _local6.m_linearVelocity.x); _local10 = (_arg1.dt * _local6.m_linearVelocity.y); if (((_local9 * _local9) + (_local10 * _local10)) > b2Settings.b2_maxTranslationSquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * (b2Settings.b2_maxTranslation * _arg1.inv_dt)); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * (b2Settings.b2_maxTranslation * _arg1.inv_dt)); }; _local11 = (_arg1.dt * _local6.m_angularVelocity); if (((_arg1.dt * _local6.m_angularVelocity) * _local11) > b2Settings.b2_maxRotationSquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = (-(b2Settings.b2_maxRotation) * _arg1.inv_dt); } else { _local6.m_angularVelocity = (b2Settings.b2_maxRotation * _arg1.inv_dt); }; }; _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(); }; _local4++; }; _local4 = 0; while (_local4 < _arg1.positionIterations) { _local12 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local13 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local14 = _local7.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local13 = ((_local13) && (_local14)); _local5++; }; if (((_local12) && (_local13))){ break; }; _local4++; }; Report(_local8.m_constraints); if (_arg3){ _local15 = Number.MAX_VALUE; _local16 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local17 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local4 = 0; while (_local4 < m_bodyCount) { _local6 = m_bodies[_local4]; if (_local6.GetType() == b2Body.b2_staticBody){ } else { if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){ _local6.m_sleepTime = 0; _local15 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local17)))) || ((b2Math.Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local16)))){ _local6.m_sleepTime = 0; _local15 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local15 = b2Math.Min(_local15, _local6.m_sleepTime); }; }; _local4++; }; if (_local15 >= b2Settings.b2_timeToSleep){ _local4 = 0; while (_local4 < m_bodyCount) { _local6 = m_bodies[_local4]; _local6.SetAwake(false); _local4++; }; }; }; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local3:int; var _local6:b2Body; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; m_contactSolver.Initialize(_arg1, m_contacts, m_contactCount, m_allocator); var _local4:b2ContactSolver = m_contactSolver; _local2 = 0; while (_local2 < m_jointCount) { m_joints[_local2].InitVelocityConstraints(_arg1); _local2++; }; _local2 = 0; while (_local2 < _arg1.velocityIterations) { _local4.SolveVelocityConstraints(); _local3 = 0; while (_local3 < m_jointCount) { m_joints[_local3].SolveVelocityConstraints(_arg1); _local3++; }; _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local6 = m_bodies[_local2]; if (_local6.GetType() == b2Body.b2_staticBody){ } else { _local7 = (_arg1.dt * _local6.m_linearVelocity.x); _local8 = (_arg1.dt * _local6.m_linearVelocity.y); if (((_local7 * _local7) + (_local8 * _local8)) > b2Settings.b2_maxTranslationSquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * (b2Settings.b2_maxTranslation * _arg1.inv_dt)); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * (b2Settings.b2_maxTranslation * _arg1.inv_dt)); }; _local9 = (_arg1.dt * _local6.m_angularVelocity); if (((_arg1.dt * _local6.m_angularVelocity) * _local9) > b2Settings.b2_maxRotationSquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = (-(b2Settings.b2_maxRotation) * _arg1.inv_dt); } else { _local6.m_angularVelocity = (b2Settings.b2_maxRotation * _arg1.inv_dt); }; }; _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(); }; _local2++; }; var _local5:Number = 0.75; _local2 = 0; while (_local2 < _arg1.positionIterations) { _local10 = _local4.SolvePositionConstraints(_local5); _local11 = true; _local3 = 0; while (_local3 < m_jointCount) { _local12 = m_joints[_local3].SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local11 = ((_local11) && (_local12)); _local3++; }; if (((_local10) && (_local11))){ break; }; _local2++; }; Report(_local4.m_constraints); } public function Report(_arg1:Array):void{ var _local3:b2Contact; var _local4:b2ContactConstraint; var _local5:int; if (m_listener == null){ return; }; var _local2:int; while (_local2 < m_contactCount) { _local3 = m_contacts[_local2]; _local4 = _arg1[_local2]; _local5 = 0; while (_local5 < _local4.pointCount) { s_impulse.normalImpulses[_local5] = _local4.points[_local5].normalImpulse; s_impulse.tangentImpulses[_local5] = _local4.points[_local5].tangentImpulse; _local5++; }; m_listener.PostSolve(_local3, s_impulse); _local2++; }; } public function AddBody(_arg1:b2Body):void{ _arg1.m_islandIndex = m_bodyCount; var _local2 = m_bodyCount++; m_bodies[_local2] = _arg1; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function AddJoint(_arg1:b2Joint):void{ var _local2 = m_jointCount++; m_joints[_local2] = _arg1; } } }//package Box2D.Dynamics
Section 92
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var dt:Number; public var inv_dt:Number; public var dtRatio:Number; public var velocityIterations:int; public var positionIterations:int; public var warmStarting:Boolean; public function Set(_arg1:b2TimeStep):void{ dt = _arg1.dt; inv_dt = _arg1.inv_dt; positionIterations = _arg1.positionIterations; velocityIterations = _arg1.velocityIterations; warmStarting = _arg1.warmStarting; } } }//package Box2D.Dynamics
Section 93
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Controllers.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; public class b2World { private var s_stack:Array; b2internal var m_flags:int; b2internal var m_contactManager:b2ContactManager; private var m_contactSolver:b2ContactSolver; private var m_island:b2Island; b2internal var m_bodyList:b2Body; private var m_jointList:b2Joint; b2internal var m_contactList:b2Contact; private var m_bodyCount:int; b2internal var m_contactCount:int; private var m_jointCount:int; private var m_controllerList:b2Controller; private var m_controllerCount:int; private var m_gravity:b2Vec2; private var m_allowSleep:Boolean; b2internal var m_groundBody:b2Body; private var m_destructionListener:b2DestructionListener; private var m_debugDraw:b2DebugDraw; private var m_inv_dt0:Number; public static const e_newFixture:int = 1; public static const e_locked:int = 2; private static var s_timestep2:b2TimeStep = new b2TimeStep(); private static var s_xf:b2Transform = new b2Transform(); private static var s_backupA:b2Sweep = new b2Sweep(); private static var s_backupB:b2Sweep = new b2Sweep(); private static var s_timestep:b2TimeStep = new b2TimeStep(); private static var s_queue:Array = new Array(); private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); private static var m_warmStarting:Boolean; private static var m_continuousPhysics:Boolean; public function b2World(_arg1:b2Vec2, _arg2:Boolean){ s_stack = new Array(); m_contactManager = new b2ContactManager(); m_contactSolver = new b2ContactSolver(); m_island = new b2Island(); super(); m_destructionListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_controllerList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_controllerCount = 0; m_warmStarting = true; m_continuousPhysics = true; m_allowSleep = _arg2; m_gravity = _arg1; m_inv_dt0 = 0; m_contactManager.m_world = this; var _local3:b2BodyDef = new b2BodyDef(); m_groundBody = CreateBody(_local3); } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactManager.m_contactFilter = _arg1; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactManager.m_contactListener = _arg1; } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetBroadPhase(_arg1:IBroadPhase):void{ var _local4:b2Fixture; var _local2:IBroadPhase = m_contactManager.m_broadPhase; m_contactManager.m_broadPhase = _arg1; var _local3:b2Body = m_bodyList; while (_local3) { _local4 = _local3.m_fixtureList; while (_local4) { _local4.m_proxy = _arg1.CreateProxy(_local2.GetFatAABB(_local4.m_proxy), _local4); _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; } public function Validate():void{ m_contactManager.m_broadPhase.Validate(); } public function GetProxyCount():int{ return (m_contactManager.m_broadPhase.GetProxyCount()); } public function CreateBody(_arg1:b2BodyDef):b2Body{ if (IsLocked() == true){ return (null); }; var _local2:b2Body = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function DestroyBody(_arg1:b2Body):void{ var _local6:b2JointEdge; var _local7:b2ControllerEdge; var _local8:b2ContactEdge; var _local9:b2Fixture; if (IsLocked() == true){ return; }; var _local2:b2JointEdge = _arg1.m_jointList; while (_local2) { _local6 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local6.joint); }; DestroyJoint(_local6.joint); }; var _local3:b2ControllerEdge = _arg1.m_controllerList; while (_local3) { _local7 = _local3; _local3 = _local3.nextController; _local7.controller.RemoveBody(_arg1); }; var _local4:b2ContactEdge = _arg1.m_contactList; while (_local4) { _local8 = _local4; _local4 = _local4.next; m_contactManager.Destroy(_local8.contact); }; _arg1.m_contactList = null; var _local5:b2Fixture = _arg1.m_fixtureList; while (_local5) { _local9 = _local5; _local5 = _local5.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeFixture(_local9); }; _local9.DestroyProxy(m_contactManager.m_broadPhase); _local9.Destroy(); }; _arg1.m_fixtureList = null; _arg1.m_fixtureCount = 0; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function CreateJoint(_arg1:b2JointDef):b2Joint{ var _local5:b2ContactEdge; var _local2:b2Joint = b2Joint.Create(_arg1, null); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_edgeA.joint = _local2; _local2.m_edgeA.other = _local2.m_bodyB; _local2.m_edgeA.prev = null; _local2.m_edgeA.next = _local2.m_bodyA.m_jointList; if (_local2.m_bodyA.m_jointList){ _local2.m_bodyA.m_jointList.prev = _local2.m_edgeA; }; _local2.m_bodyA.m_jointList = _local2.m_edgeA; _local2.m_edgeB.joint = _local2; _local2.m_edgeB.other = _local2.m_bodyA; _local2.m_edgeB.prev = null; _local2.m_edgeB.next = _local2.m_bodyB.m_jointList; if (_local2.m_bodyB.m_jointList){ _local2.m_bodyB.m_jointList.prev = _local2.m_edgeB; }; _local2.m_bodyB.m_jointList = _local2.m_edgeB; var _local3:b2Body = _arg1.bodyA; var _local4:b2Body = _arg1.bodyB; if (_arg1.collideConnected == false){ _local5 = _local4.GetContactList(); while (_local5) { if (_local5.other == _local3){ _local5.contact.FlagForFiltering(); }; _local5 = _local5.next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local5:b2ContactEdge; 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_bodyA; var _local4:b2Body = _arg1.m_bodyB; _local3.SetAwake(true); _local4.SetAwake(true); if (_arg1.m_edgeA.prev){ _arg1.m_edgeA.prev.next = _arg1.m_edgeA.next; }; if (_arg1.m_edgeA.next){ _arg1.m_edgeA.next.prev = _arg1.m_edgeA.prev; }; if (_arg1.m_edgeA == _local3.m_jointList){ _local3.m_jointList = _arg1.m_edgeA.next; }; _arg1.m_edgeA.prev = null; _arg1.m_edgeA.next = null; if (_arg1.m_edgeB.prev){ _arg1.m_edgeB.prev.next = _arg1.m_edgeB.next; }; if (_arg1.m_edgeB.next){ _arg1.m_edgeB.next.prev = _arg1.m_edgeB.prev; }; if (_arg1.m_edgeB == _local4.m_jointList){ _local4.m_jointList = _arg1.m_edgeB.next; }; _arg1.m_edgeB.prev = null; _arg1.m_edgeB.next = null; b2Joint.Destroy(_arg1, null); m_jointCount--; if (_local2 == false){ _local5 = _local4.GetContactList(); while (_local5) { if (_local5.other == _local3){ _local5.contact.FlagForFiltering(); }; _local5 = _local5.next; }; }; } public function AddController(_arg1:b2Controller):b2Controller{ _arg1.m_next = m_controllerList; _arg1.m_prev = null; m_controllerList = _arg1; _arg1.m_world = this; m_controllerCount++; return (_arg1); } public function RemoveController(_arg1:b2Controller):void{ 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 (m_controllerList == _arg1){ m_controllerList = _arg1.m_next; }; m_controllerCount--; } public function CreateController(_arg1:b2Controller):b2Controller{ if (_arg1.m_world != this){ throw (new Error("Controller can only be a member of one world")); }; _arg1.m_next = m_controllerList; _arg1.m_prev = null; if (m_controllerList){ m_controllerList.m_prev = _arg1; }; m_controllerList = _arg1; m_controllerCount++; _arg1.m_world = this; return (_arg1); } public function DestroyController(_arg1:b2Controller):void{ _arg1.Clear(); if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1 == m_controllerList){ m_controllerList = _arg1.m_next; }; m_controllerCount--; } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } public function GetContactCount():int{ return (m_contactCount); } public function SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } public function GetGravity():b2Vec2{ return (m_gravity); } public function GetGroundBody():b2Body{ return (m_groundBody); } public function Step(_arg1:Number, _arg2:int, _arg3:int):void{ if ((m_flags & e_newFixture)){ m_contactManager.FindNewContacts(); m_flags = (m_flags & ~(e_newFixture)); }; m_flags = (m_flags | e_locked); var _local4:b2TimeStep = s_timestep2; _local4.dt = _arg1; _local4.velocityIterations = _arg2; _local4.positionIterations = _arg3; if (_arg1 > 0){ _local4.inv_dt = (1 / _arg1); } else { _local4.inv_dt = 0; }; _local4.dtRatio = (m_inv_dt0 * _arg1); _local4.warmStarting = m_warmStarting; m_contactManager.Collide(); if (_local4.dt > 0){ Solve(_local4); }; if (((m_continuousPhysics) && ((_local4.dt > 0)))){ SolveTOI(_local4); }; if (_local4.dt > 0){ m_inv_dt0 = _local4.inv_dt; }; m_flags = (m_flags & ~(e_locked)); } public function ClearForces():void{ var _local1:b2Body = m_bodyList; while (_local1) { _local1.m_force.SetZero(); _local1.m_torque = 0; _local1 = _local1.m_next; }; } public function DrawDebugData():void{ var _local2:int; var _local3:b2Body; var _local4:b2Fixture; var _local5:b2Shape; var _local6:b2Joint; var _local7:IBroadPhase; var _local11:b2Transform; var _local16:b2Controller; var _local17:b2Contact; var _local18:b2Fixture; var _local19:b2Fixture; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2AABB; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); var _local1:uint = m_debugDraw.GetFlags(); var _local8:b2Vec2 = new b2Vec2(); var _local9:b2Vec2 = new b2Vec2(); var _local10:b2Vec2 = new b2Vec2(); var _local12:b2AABB = new b2AABB(); var _local13:b2AABB = new b2AABB(); var _local14:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; var _local15:b2Color = new b2Color(0, 0, 0); if ((_local1 & b2DebugDraw.e_shapeBit)){ _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetFixtureList(); while (_local4) { _local5 = _local4.GetShape(); if (_local3.IsActive() == false){ _local15.Set(0.5, 0.5, 0.3); DrawShape(_local5, _local11, _local15); } else { if (_local3.GetType() == b2Body.b2_staticBody){ _local15.Set(0.5, 0.9, 0.5); DrawShape(_local5, _local11, _local15); } else { if (_local3.GetType() == b2Body.b2_kinematicBody){ _local15.Set(0.5, 0.5, 0.9); DrawShape(_local5, _local11, _local15); } else { if (_local3.IsAwake() == false){ _local15.Set(0.6, 0.6, 0.6); DrawShape(_local5, _local11, _local15); } else { _local15.Set(0.9, 0.7, 0.7); DrawShape(_local5, _local11, _local15); }; }; }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local6 = m_jointList; while (_local6) { DrawJoint(_local6); _local6 = _local6.m_next; }; }; if ((_local1 & b2DebugDraw.e_controllerBit)){ _local16 = m_controllerList; while (_local16) { _local16.Draw(m_debugDraw); _local16 = _local16.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local15.Set(0.3, 0.9, 0.9); _local17 = m_contactManager.m_contactList; while (_local17) { _local18 = _local17.GetFixtureA(); _local19 = _local17.GetFixtureB(); _local20 = _local18.GetAABB().GetCenter(); _local21 = _local19.GetAABB().GetCenter(); m_debugDraw.DrawSegment(_local20, _local21, _local15); _local17 = _local17.GetNext(); }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local7 = m_contactManager.m_broadPhase; _local14 = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; _local3 = m_bodyList; while (_local3) { if (_local3.IsActive() == false){ } else { _local4 = _local3.GetFixtureList(); while (_local4) { _local22 = _local7.GetFatAABB(_local4.m_proxy); _local14[0].Set(_local22.lowerBound.x, _local22.lowerBound.y); _local14[1].Set(_local22.upperBound.x, _local22.lowerBound.y); _local14[2].Set(_local22.upperBound.x, _local22.upperBound.y); _local14[3].Set(_local22.lowerBound.x, _local22.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local15); _local4 = _local4.GetNext(); }; }; _local3 = _local3.GetNext(); }; }; 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.DrawTransform(_local11); _local3 = _local3.m_next; }; }; } public function QueryAABB(_arg1:Function, _arg2:b2AABB):void{ var broadPhase:IBroadPhase; var WorldQueryWrapper:Function; var callback = _arg1; var aabb = _arg2; WorldQueryWrapper = function (_arg1):Boolean{ return (callback(broadPhase.GetUserData(_arg1))); }; broadPhase = m_contactManager.m_broadPhase; broadPhase.Query(WorldQueryWrapper, aabb); } public function QueryShape(_arg1:Function, _arg2:b2Shape, _arg3:b2Transform=null):void{ var broadPhase:IBroadPhase; var WorldQueryWrapper:Function; var callback = _arg1; var shape = _arg2; var transform = _arg3; WorldQueryWrapper = function (_arg1):Boolean{ var _local2:b2Fixture = (broadPhase.GetUserData(_arg1) as b2Fixture); if (b2Shape.TestOverlap(shape, transform, _local2.GetShape(), _local2.GetBody().GetTransform())){ return (callback(_local2)); }; return (true); }; if (transform == null){ transform = new b2Transform(); transform.SetIdentity(); }; broadPhase = m_contactManager.m_broadPhase; var aabb:b2AABB = new b2AABB(); shape.ComputeAABB(aabb, transform); broadPhase.Query(WorldQueryWrapper, aabb); } public function QueryPoint(_arg1:Function, _arg2:b2Vec2):void{ var broadPhase:IBroadPhase; var WorldQueryWrapper:Function; var callback = _arg1; var p = _arg2; WorldQueryWrapper = function (_arg1):Boolean{ var _local2:b2Fixture = (broadPhase.GetUserData(_arg1) as b2Fixture); if (_local2.TestPoint(p)){ return (callback(_local2)); }; return (true); }; broadPhase = m_contactManager.m_broadPhase; var aabb:b2AABB = new b2AABB(); aabb.lowerBound.Set((p.x - b2Settings.b2_linearSlop), (p.y - b2Settings.b2_linearSlop)); aabb.upperBound.Set((p.x + b2Settings.b2_linearSlop), (p.y + b2Settings.b2_linearSlop)); broadPhase.Query(WorldQueryWrapper, aabb); } public function RayCast(_arg1:Function, _arg2:b2Vec2, _arg3:b2Vec2):void{ var broadPhase:IBroadPhase; var output:b2RayCastOutput; var RayCastWrapper:Function; var callback = _arg1; var point1 = _arg2; var point2 = _arg3; RayCastWrapper = function (_arg1:b2RayCastInput, _arg2):Number{ var _local6:Number; var _local7:b2Vec2; var _local3:* = broadPhase.GetUserData(_arg2); var _local4:b2Fixture = (_local3 as b2Fixture); var _local5:Boolean = _local4.RayCast(output, _arg1); if (_local5){ _local6 = output.fraction; _local7 = new b2Vec2((((1 - _local6) * point1.x) + (_local6 * point2.x)), (((1 - _local6) * point1.y) + (_local6 * point2.y))); return (callback(_local4, _local7, output.normal, _local6)); }; return (_arg1.maxFraction); }; broadPhase = m_contactManager.m_broadPhase; output = new b2RayCastOutput(); var input:b2RayCastInput = new b2RayCastInput(point1, point2); broadPhase.RayCast(RayCastWrapper, input); } public function RayCastOne(_arg1:b2Vec2, _arg2:b2Vec2):b2Fixture{ var result:b2Fixture; var RayCastOneWrapper:Function; var point1 = _arg1; var point2 = _arg2; RayCastOneWrapper = function (_arg1:b2Fixture, _arg2:b2Vec2, _arg3:b2Vec2, _arg4:Number):Number{ result = _arg1; return (_arg4); }; RayCast(RayCastOneWrapper, point1, point2); return (result); } public function RayCastAll(_arg1:b2Vec2, _arg2:b2Vec2):Array{ var result:Array; var RayCastAllWrapper:Function; var point1 = _arg1; var point2 = _arg2; RayCastAllWrapper = function (_arg1:b2Fixture, _arg2:b2Vec2, _arg3:b2Vec2, _arg4:Number):Number{ result[result.length] = _arg1; return (1); }; result = new Array(); RayCast(RayCastAllWrapper, point1, point2); return (result); } public function GetBodyList():b2Body{ return (m_bodyList); } public function GetJointList():b2Joint{ return (m_jointList); } public function GetContactList():b2Contact{ return (m_contactList); } public function IsLocked():Boolean{ return (((m_flags & e_locked) > 0)); } b2internal function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local10:int; var _local11:int; var _local12:b2Body; var _local13:b2ContactEdge; var _local14:b2JointEdge; var _local3:b2Controller = m_controllerList; while (_local3) { _local3.Step(_arg1); _local3 = _local3.m_next; }; var _local4:b2Island = m_island; _local4.Initialize(m_bodyCount, m_contactCount, m_jointCount, null, m_contactManager.m_contactListener, m_contactSolver); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; var _local5:b2Contact = m_contactList; while (_local5) { _local5.m_flags = (_local5.m_flags & ~(b2Contact.e_islandFlag)); _local5 = _local5.m_next; }; var _local6:b2Joint = m_jointList; while (_local6) { _local6.m_islandFlag = false; _local6 = _local6.m_next; }; var _local7:int = m_bodyCount; var _local8:Array = s_stack; var _local9:b2Body = m_bodyList; while (_local9) { if ((_local9.m_flags & b2Body.e_islandFlag)){ } else { if ((((_local9.IsAwake() == false)) || ((_local9.IsActive() == false)))){ } else { if (_local9.GetType() == b2Body.b2_staticBody){ } else { _local4.Clear(); _local10 = 0; var _temp1 = _local10; _local10 = (_local10 + 1); var _local15 = _temp1; _local8[_local15] = _local9; _local9.m_flags = (_local9.m_flags | b2Body.e_islandFlag); while (_local10 > 0) { --_local10; _local2 = _local8[_local10]; _local4.AddBody(_local2); if (_local2.IsAwake() == false){ _local2.SetAwake(true); }; if (_local2.GetType() == b2Body.b2_staticBody){ } else { _local13 = _local2.m_contactList; while (_local13) { if ((_local13.contact.m_flags & b2Contact.e_islandFlag)){ } else { if ((((((_local13.contact.IsSensor() == true)) || ((_local13.contact.IsEnabled() == false)))) || ((_local13.contact.IsTouching() == false)))){ } else { _local4.AddContact(_local13.contact); _local13.contact.m_flags = (_local13.contact.m_flags | b2Contact.e_islandFlag); _local12 = _local13.other; if ((_local12.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local10; _local10 = (_local10 + 1); var _local16 = _temp2; _local8[_local16] = _local12; _local12.m_flags = (_local12.m_flags | b2Body.e_islandFlag); }; }; }; _local13 = _local13.next; }; _local14 = _local2.m_jointList; while (_local14) { if (_local14.joint.m_islandFlag == true){ } else { _local12 = _local14.other; if (_local12.IsActive() == false){ } else { _local4.AddJoint(_local14.joint); _local14.joint.m_islandFlag = true; if ((_local12.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local10; _local10 = (_local10 + 1); _local16 = _temp3; _local8[_local16] = _local12; _local12.m_flags = (_local12.m_flags | b2Body.e_islandFlag); }; }; }; _local14 = _local14.next; }; }; }; _local4.Solve(_arg1, m_gravity, m_allowSleep); _local11 = 0; while (_local11 < _local4.m_bodyCount) { _local2 = _local4.m_bodies[_local11]; if (_local2.GetType() == b2Body.b2_staticBody){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local11++; }; }; }; }; _local9 = _local9.m_next; }; _local11 = 0; while (_local11 < _local8.length) { if (!_local8[_local11]){ break; }; _local8[_local11] = null; _local11++; }; _local2 = m_bodyList; while (_local2) { if ((((_local2.IsAwake() == false)) || ((_local2.IsActive() == false)))){ } else { if (_local2.GetType() == b2Body.b2_staticBody){ } else { _local2.SynchronizeFixtures(); }; }; _local2 = _local2.m_next; }; m_contactManager.FindNewContacts(); } b2internal function SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Fixture; var _local4:b2Fixture; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; var _local8:b2Joint; var _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:int; var _local17:b2JointEdge; var _local18:b2TimeStep; var _local19:int; var _local20:Number; var _local21:Number; var _local22:b2Body; var _local9:b2Island = m_island; _local9.Initialize(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, b2Settings.b2_maxTOIJointsPerIsland, null, m_contactManager.m_contactListener, m_contactSolver); var _local10:Array = s_queue; _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; }; _local8 = m_jointList; while (_local8) { _local8.m_islandFlag = false; _local8 = _local8.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((((((_local11.IsSensor() == true)) || ((_local11.IsEnabled() == false)))) || ((_local11.IsContinuous() == false)))){ } else { _local20 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local20 = _local11.m_toi; } else { _local3 = _local11.m_fixtureA; _local4 = _local11.m_fixtureB; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((!((_local5.GetType() == b2Body.b2_dynamicBody))) || ((_local5.IsAwake() == false)))) && (((!((_local6.GetType() == b2Body.b2_dynamicBody))) || ((_local6.IsAwake() == false)))))){ continue; }; _local21 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local21 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local21); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local21 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local21); }; }; _local20 = _local11.ComputeTOI(_local5.m_sweep, _local6.m_sweep); b2Settings.b2Assert((((0 <= _local20)) && ((_local20 <= 1)))); if ((((_local20 > 0)) && ((_local20 < 1)))){ _local20 = (((1 - _local20) * _local21) + _local20); if (_local20 > 1){ _local20 = 1; }; }; _local11.m_toi = _local20; _local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local20)) && ((_local20 < _local13)))){ _local12 = _local11; _local13 = _local20; }; }; }; if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){ break; }; _local3 = _local12.m_fixtureA; _local4 = _local12.m_fixtureB; _local5 = _local3.m_body; _local6 = _local4.m_body; s_backupA.Set(_local5.m_sweep); s_backupB.Set(_local6.m_sweep); _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactManager.m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if ((((_local12.IsSensor() == true)) || ((_local12.IsEnabled() == false)))){ _local5.m_sweep.Set(s_backupA); _local6.m_sweep.Set(s_backupB); _local5.SynchronizeTransform(); _local6.SynchronizeTransform(); } else { if (_local12.IsTouching() == false){ } else { _local14 = _local5; if (_local14.GetType() != b2Body.b2_dynamicBody){ _local14 = _local6; }; _local9.Clear(); _local15 = 0; _local16 = 0; var _temp1 = _local16; _local16 = (_local16 + 1); _local10[(_local15 + _temp1)] = _local14; _local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag); while (_local16 > 0) { var _temp2 = _local15; _local15 = (_local15 + 1); _local2 = _local10[_temp2]; _local16--; _local9.AddBody(_local2); if (_local2.IsAwake() == false){ _local2.SetAwake(true); }; if (_local2.GetType() != b2Body.b2_dynamicBody){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local9.m_contactCount == _local9.m_contactCapacity){ break; }; if ((_local7.contact.m_flags & b2Contact.e_islandFlag)){ } else { if ((((((_local7.contact.IsSensor() == true)) || ((_local7.contact.IsEnabled() == false)))) || ((_local7.contact.IsTouching() == false)))){ } else { _local9.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local22 = _local7.other; if ((_local22.m_flags & b2Body.e_islandFlag)){ } else { if (_local22.GetType() != b2Body.b2_staticBody){ _local22.Advance(_local13); _local22.SetAwake(true); }; _local10[(_local15 + _local16)] = _local22; _local16++; _local22.m_flags = (_local22.m_flags | b2Body.e_islandFlag); }; }; }; _local7 = _local7.next; }; }; }; _local17 = _local2.m_jointList; while (_local17) { if (_local9.m_jointCount == _local9.m_jointCapacity){ } else { if (_local17.joint.m_islandFlag == true){ } else { _local22 = _local17.other; if (_local22.IsActive() == false){ } else { _local9.AddJoint(_local17.joint); _local17.joint.m_islandFlag = true; if ((_local22.m_flags & b2Body.e_islandFlag)){ } else { if (_local22.GetType() != b2Body.b2_staticBody){ _local22.Advance(_local13); _local22.SetAwake(true); }; _local10[(_local15 + _local16)] = _local22; _local16++; _local22.m_flags = (_local22.m_flags | b2Body.e_islandFlag); }; }; }; }; _local17 = _local17.next; }; _local18 = s_timestep; _local18.warmStarting = false; _local18.dt = ((1 - _local13) * _arg1.dt); _local18.inv_dt = (1 / _local18.dt); _local18.dtRatio = 0; _local18.velocityIterations = _arg1.velocityIterations; _local18.positionIterations = _arg1.positionIterations; _local9.SolveTOI(_local18); _local19 = 0; while (_local19 < _local9.m_bodyCount) { _local2 = _local9.m_bodies[_local19]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if (_local2.IsAwake() == false){ } else { if (_local2.GetType() != b2Body.b2_dynamicBody){ } else { _local2.SynchronizeFixtures(); _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local19++; }; _local19 = 0; while (_local19 < _local9.m_contactCount) { _local11 = _local9.m_contacts[_local19]; _local9.m_contacts[_local19].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local19++; }; _local19 = 0; while (_local19 < _local9.m_jointCount) { _local8 = _local9.m_joints[_local19]; _local8.m_islandFlag = false; _local19++; }; m_contactManager.FindNewContacts(); }; }; }; } b2internal function DrawJoint(_arg1:b2Joint):void{ var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; var _local2:b2Body = _arg1.GetBodyA(); var _local3:b2Body = _arg1.GetBodyB(); var _local4:b2Transform = _local2.m_xf; var _local5:b2Transform = _local3.m_xf; var _local6:b2Vec2 = _local4.position; var _local7:b2Vec2 = _local5.position; var _local8:b2Vec2 = _arg1.GetAnchorA(); var _local9:b2Vec2 = _arg1.GetAnchorB(); 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.GetGroundAnchorA(); _local13 = _local11.GetGroundAnchorB(); 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); }; }; } b2internal function DrawShape(_arg1:b2Shape, _arg2:b2Transform, _arg3:b2Color):void{ var _local4:b2CircleShape; var _local5:b2Vec2; var _local6:Number; var _local7:b2Vec2; var _local8:int; var _local9:b2PolygonShape; var _local10:int; var _local11:Array; var _local12:Array; var _local13:b2EdgeShape; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local4 = (_arg1 as b2CircleShape); _local5 = b2Math.MulX(_arg2, _local4.m_p); _local6 = _local4.m_radius; _local7 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local5, _local6, _local7, _arg3); break; case b2Shape.e_polygonShape: _local9 = (_arg1 as b2PolygonShape); _local10 = _local9.GetVertexCount(); _local11 = _local9.GetVertices(); _local12 = new Array(_local10); _local8 = 0; while (_local8 < _local10) { _local12[_local8] = b2Math.MulX(_arg2, _local11[_local8]); _local8++; }; m_debugDraw.DrawSolidPolygon(_local12, _local10, _arg3); break; case b2Shape.e_edgeShape: _local13 = (_arg1 as b2EdgeShape); m_debugDraw.DrawSegment(b2Math.MulX(_arg2, _local13.GetVertex1()), b2Math.MulX(_arg2, _local13.GetVertex2()), _arg3); break; }; } } }//package Box2D.Dynamics
Section 94
//AuxFunctions (caurina.transitions.AuxFunctions) package caurina.transitions { public class AuxFunctions { public static function numberToR(_arg1:Number):Number{ return (((_arg1 & 0xFF0000) >> 16)); } public static function numberToG(_arg1:Number):Number{ return (((_arg1 & 0xFF00) >> 8)); } public static function numberToB(_arg1:Number):Number{ return ((_arg1 & 0xFF)); } public static function getObjectLength(_arg1:Object):uint{ var _local3:String; var _local2:uint; for (_local3 in _arg1) { _local2++; }; return (_local2); } public static function concatObjects(... _args):Object{ var _local3:Object; var _local5:String; var _local2:Object = {}; var _local4:int; while (_local4 < _args.length) { _local3 = _args[_local4]; for (_local5 in _local3) { if (_local3[_local5] == null){ delete _local2[_local5]; } else { _local2[_local5] = _local3[_local5]; }; }; _local4++; }; return (_local2); } } }//package caurina.transitions
Section 95
//Equations (caurina.transitions.Equations) package caurina.transitions { public class Equations { public function Equations(){ trace("Equations is a static class and should not be instantiated."); } public static function init():void{ Tweener.registerTransition("easenone", easeNone); Tweener.registerTransition("linear", easeNone); Tweener.registerTransition("easeinquad", easeInQuad); Tweener.registerTransition("easeoutquad", easeOutQuad); Tweener.registerTransition("easeinoutquad", easeInOutQuad); Tweener.registerTransition("easeoutinquad", easeOutInQuad); Tweener.registerTransition("easeincubic", easeInCubic); Tweener.registerTransition("easeoutcubic", easeOutCubic); Tweener.registerTransition("easeinoutcubic", easeInOutCubic); Tweener.registerTransition("easeoutincubic", easeOutInCubic); Tweener.registerTransition("easeinquart", easeInQuart); Tweener.registerTransition("easeoutquart", easeOutQuart); Tweener.registerTransition("easeinoutquart", easeInOutQuart); Tweener.registerTransition("easeoutinquart", easeOutInQuart); Tweener.registerTransition("easeinquint", easeInQuint); Tweener.registerTransition("easeoutquint", easeOutQuint); Tweener.registerTransition("easeinoutquint", easeInOutQuint); Tweener.registerTransition("easeoutinquint", easeOutInQuint); Tweener.registerTransition("easeinsine", easeInSine); Tweener.registerTransition("easeoutsine", easeOutSine); Tweener.registerTransition("easeinoutsine", easeInOutSine); Tweener.registerTransition("easeoutinsine", easeOutInSine); Tweener.registerTransition("easeincirc", easeInCirc); Tweener.registerTransition("easeoutcirc", easeOutCirc); Tweener.registerTransition("easeinoutcirc", easeInOutCirc); Tweener.registerTransition("easeoutincirc", easeOutInCirc); Tweener.registerTransition("easeinexpo", easeInExpo); Tweener.registerTransition("easeoutexpo", easeOutExpo); Tweener.registerTransition("easeinoutexpo", easeInOutExpo); Tweener.registerTransition("easeoutinexpo", easeOutInExpo); Tweener.registerTransition("easeinelastic", easeInElastic); Tweener.registerTransition("easeoutelastic", easeOutElastic); Tweener.registerTransition("easeinoutelastic", easeInOutElastic); Tweener.registerTransition("easeoutinelastic", easeOutInElastic); Tweener.registerTransition("easeinback", easeInBack); Tweener.registerTransition("easeoutback", easeOutBack); Tweener.registerTransition("easeinoutback", easeInOutBack); Tweener.registerTransition("easeoutinback", easeOutInBack); Tweener.registerTransition("easeinbounce", easeInBounce); Tweener.registerTransition("easeoutbounce", easeOutBounce); Tweener.registerTransition("easeinoutbounce", easeInOutBounce); Tweener.registerTransition("easeoutinbounce", easeOutInBounce); } public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((_arg3 * _arg1) * _arg1) + _arg2)); } public static function easeOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } public static function easeInOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2)); }; --_arg1; return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2)); } public static function easeOutInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuad((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInQuad(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeInOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((_arg1 * _arg1) * _arg1) + 2)) + _arg2)); } public static function easeOutInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutCubic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInCubic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((-(_arg3) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 1)) + _arg2)); } public static function easeInOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((-(_arg3) / 2) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 2)) + _arg2)); } public static function easeOutInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuart((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInQuart(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeInOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2)); } public static function easeOutInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuint((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInQuint(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((-(_arg3) * Math.cos(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg3) + _arg2)); } public static function easeOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg3 * Math.sin(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg2)); } public static function easeInOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((-(_arg3) / 2) * (Math.cos(((Math.PI * _arg1) / _arg4)) - 1)) + _arg2)); } public static function easeOutInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutSine((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInSine(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg1)==0) ? _arg2 : (((_arg3 * Math.pow(2, (10 * ((_arg1 / _arg4) - 1)))) + _arg2) - (_arg3 * 0.001))); } public static function easeOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg1)==_arg4) ? (_arg2 + _arg3) : (((_arg3 * 1.001) * (-(Math.pow(2, ((-10 * _arg1) / _arg4))) + 1)) + _arg2)); } public static function easeInOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 == 0){ return (_arg2); }; if (_arg1 == _arg4){ return ((_arg2 + _arg3)); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * Math.pow(2, (10 * (_arg1 - 1)))) + _arg2) - (_arg3 * 0.0005))); }; --_arg1; return (((((_arg3 / 2) * 1.0005) * (-(Math.pow(2, (-10 * _arg1))) + 2)) + _arg2)); } public static function easeOutInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutExpo((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInExpo(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return (((-(_arg3) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); } public static function easeOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * Math.sqrt((1 - (_arg1 * _arg1)))) + _arg2)); } public static function easeInOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((-(_arg3) / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) + 1)) + _arg2)); } public static function easeOutInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutCirc((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInCirc(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period; var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude; if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){ _local8 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8))); }; --_arg1; return ((-(((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2)); } public static function easeOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period; var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude; if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){ _local8 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8))); }; return (((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) + _arg3) + _arg2)); } public static function easeInOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 == 2){ return ((_arg2 + _arg3)); }; var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * (0.3 * 1.5)) : _arg5.period; var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude; if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){ _local8 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8))); }; if (_arg1 < 1){ --_arg1; return (((-0.5 * ((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2)); }; --_arg1; return ((((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) * 0.5) + _arg3) + _arg2)); } public static function easeOutInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutElastic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInElastic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot; _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * (((_local6 + 1) * _arg1) - _local6)) + _arg2)); } public static function easeOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot; _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 1)) + _arg2)); } public static function easeInOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ _local6 = (_local6 * 1.525); return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_local6 + 1) * _arg1) - _local6))) + _arg2)); }; _arg1 = (_arg1 - 2); _local6 = (_local6 * 1.525); return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 2)) + _arg2)); } public static function easeOutInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutBack((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInBack(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg3 - easeOutBounce((_arg4 - _arg1), 0, _arg3, _arg4)) + _arg2)); } public static function easeOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); if (_arg1 < (1 / 2.75)){ return (((_arg3 * ((7.5625 * _arg1) * _arg1)) + _arg2)); }; if (_arg1 < (2 / 2.75)){ _arg1 = (_arg1 - (1.5 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.75)) + _arg2)); }; if (_arg1 < (2.5 / 2.75)){ _arg1 = (_arg1 - (2.25 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.9375)) + _arg2)); }; _arg1 = (_arg1 - (2.625 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.984375)) + _arg2)); } public static function easeInOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (((easeInBounce((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2)); }; return ((((easeOutBounce(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2)); } public static function easeOutInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutBounce((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInBounce(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } } }//package caurina.transitions
Section 96
//PropertyInfoObj (caurina.transitions.PropertyInfoObj) package caurina.transitions { public class PropertyInfoObj { public var valueStart:Number; public var valueComplete:Number; public var originalValueComplete:Object; public var arrayIndex:Number; public var extra:Object; public var isSpecialProperty:Boolean; public var hasModifier:Boolean; public var modifierFunction:Function; public var modifierParameters:Array; public function PropertyInfoObj(_arg1:Number, _arg2:Number, _arg3:Object, _arg4:Number, _arg5:Object, _arg6:Boolean, _arg7:Function, _arg8:Array){ valueStart = _arg1; valueComplete = _arg2; originalValueComplete = _arg3; arrayIndex = _arg4; extra = _arg5; isSpecialProperty = _arg6; hasModifier = Boolean(_arg7); modifierFunction = _arg7; modifierParameters = _arg8; } public function clone():PropertyInfoObj{ var _local1:PropertyInfoObj = new PropertyInfoObj(valueStart, valueComplete, originalValueComplete, arrayIndex, extra, isSpecialProperty, modifierFunction, modifierParameters); return (_local1); } public function toString():String{ var _local1 = "\n[PropertyInfoObj "; _local1 = (_local1 + ("valueStart:" + String(valueStart))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("valueComplete:" + String(valueComplete))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("originalValueComplete:" + String(originalValueComplete))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("arrayIndex:" + String(arrayIndex))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("extra:" + String(extra))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("isSpecialProperty:" + String(isSpecialProperty))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("hasModifier:" + String(hasModifier))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("modifierFunction:" + String(modifierFunction))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("modifierParameters:" + String(modifierParameters))); _local1 = (_local1 + "]\n"); return (_local1); } } }//package caurina.transitions
Section 97
//SpecialProperty (caurina.transitions.SpecialProperty) package caurina.transitions { public class SpecialProperty { public var getValue:Function; public var setValue:Function; public var parameters:Array; public var preProcess:Function; public function SpecialProperty(_arg1:Function, _arg2:Function, _arg3:Array=null, _arg4:Function=null){ getValue = _arg1; setValue = _arg2; parameters = _arg3; preProcess = _arg4; } public function toString():String{ var _local1 = ""; _local1 = (_local1 + "[SpecialProperty "); _local1 = (_local1 + ("getValue:" + String(getValue))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("setValue:" + String(setValue))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("parameters:" + String(parameters))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("preProcess:" + String(preProcess))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 98
//SpecialPropertyModifier (caurina.transitions.SpecialPropertyModifier) package caurina.transitions { public class SpecialPropertyModifier { public var modifyValues:Function; public var getValue:Function; public function SpecialPropertyModifier(_arg1:Function, _arg2:Function){ modifyValues = _arg1; getValue = _arg2; } public function toString():String{ var _local1 = ""; _local1 = (_local1 + "[SpecialPropertyModifier "); _local1 = (_local1 + ("modifyValues:" + String(modifyValues))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("getValue:" + String(getValue))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 99
//SpecialPropertySplitter (caurina.transitions.SpecialPropertySplitter) package caurina.transitions { public class SpecialPropertySplitter { public var parameters:Array; public var splitValues:Function; public function SpecialPropertySplitter(_arg1:Function, _arg2:Array){ splitValues = _arg1; parameters = _arg2; } public function toString():String{ var _local1 = ""; _local1 = (_local1 + "[SpecialPropertySplitter "); _local1 = (_local1 + ("splitValues:" + String(splitValues))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("parameters:" + String(parameters))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 100
//Tweener (caurina.transitions.Tweener) package caurina.transitions { import flash.events.*; import flash.display.*; import flash.utils.*; public class Tweener { private static var __tweener_controller__:MovieClip; private static var _engineExists:Boolean = false; private static var _inited:Boolean = false; private static var _currentTime:Number; private static var _currentTimeFrame:Number; private static var _tweenList:Array; private static var _timeScale:Number = 1; private static var _transitionList:Object; private static var _specialPropertyList:Object; private static var _specialPropertyModifierList:Object; private static var _specialPropertySplitterList:Object; public static var autoOverwrite:Boolean = true; public function Tweener(){ trace("Tweener is a static class and should not be instantiated."); } public static function addTween(_arg1:Object=null, _arg2:Object=null):Boolean{ var _local3:Number; var _local4:Number; var _local5:String; var _local6:Array; var _local13:Function; var _local14:Object; var _local15:TweenListObj; var _local16:Number; var _local17:Array; var _local18:Array; var _local19:Array; var _local20:String; if (!Boolean(_arg1)){ return (false); }; if ((_arg1 is Array)){ _local6 = _arg1.concat(); } else { _local6 = [_arg1]; }; var _local7:Object = TweenListObj.makePropertiesChain(_arg2); if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; var _local8:Number = (isNaN(_local7.time)) ? 0 : _local7.time; var _local9:Number = (isNaN(_local7.delay)) ? 0 : _local7.delay; var _local10:Array = new Array(); var _local11:Object = {overwrite:true, time:true, delay:true, useFrames:true, skipUpdates:true, transition:true, transitionParams:true, onStart:true, onUpdate:true, onComplete:true, onOverwrite:true, onError:true, rounded:true, onStartParams:true, onUpdateParams:true, onCompleteParams:true, onOverwriteParams:true, onStartScope:true, onUpdateScope:true, onCompleteScope:true, onOverwriteScope:true, onErrorScope:true}; var _local12:Object = new Object(); for (_local5 in _local7) { if (!_local11[_local5]){ if (_specialPropertySplitterList[_local5]){ _local17 = _specialPropertySplitterList[_local5].splitValues(_local7[_local5], _specialPropertySplitterList[_local5].parameters); _local3 = 0; while (_local3 < _local17.length) { if (_specialPropertySplitterList[_local17[_local3].name]){ _local18 = _specialPropertySplitterList[_local17[_local3].name].splitValues(_local17[_local3].value, _specialPropertySplitterList[_local17[_local3].name].parameters); _local4 = 0; while (_local4 < _local18.length) { _local10[_local18[_local4].name] = {valueStart:undefined, valueComplete:_local18[_local4].value, arrayIndex:_local18[_local4].arrayIndex, isSpecialProperty:false}; _local4++; }; } else { _local10[_local17[_local3].name] = {valueStart:undefined, valueComplete:_local17[_local3].value, arrayIndex:_local17[_local3].arrayIndex, isSpecialProperty:false}; }; _local3++; }; } else { if (_specialPropertyModifierList[_local5] != undefined){ _local19 = _specialPropertyModifierList[_local5].modifyValues(_local7[_local5]); _local3 = 0; while (_local3 < _local19.length) { _local12[_local19[_local3].name] = {modifierParameters:_local19[_local3].parameters, modifierFunction:_specialPropertyModifierList[_local5].getValue}; _local3++; }; } else { _local10[_local5] = {valueStart:undefined, valueComplete:_local7[_local5]}; }; }; }; }; for (_local5 in _local10) { if (_specialPropertyList[_local5] != undefined){ _local10[_local5].isSpecialProperty = true; } else { if (_local6[0][_local5] == undefined){ printError((((("The property '" + _local5) + "' doesn't seem to be a normal object property of ") + String(_local6[0])) + " or a registered special property.")); }; }; }; for (_local5 in _local12) { if (_local10[_local5] != undefined){ _local10[_local5].modifierParameters = _local12[_local5].modifierParameters; _local10[_local5].modifierFunction = _local12[_local5].modifierFunction; }; }; if (typeof(_local7.transition) == "string"){ _local20 = _local7.transition.toLowerCase(); _local13 = _transitionList[_local20]; } else { _local13 = _local7.transition; }; if (!Boolean(_local13)){ _local13 = _transitionList["easeoutexpo"]; }; _local3 = 0; while (_local3 < _local6.length) { _local14 = new Object(); for (_local5 in _local10) { _local14[_local5] = new PropertyInfoObj(_local10[_local5].valueStart, _local10[_local5].valueComplete, _local10[_local5].valueComplete, _local10[_local5].arrayIndex, {}, _local10[_local5].isSpecialProperty, _local10[_local5].modifierFunction, _local10[_local5].modifierParameters); }; if (_local7.useFrames == true){ _local15 = new TweenListObj(_local6[_local3], (_currentTimeFrame + (_local9 / _timeScale)), (_currentTimeFrame + ((_local9 + _local8) / _timeScale)), true, _local13, _local7.transitionParams); } else { _local15 = new TweenListObj(_local6[_local3], (_currentTime + ((_local9 * 1000) / _timeScale)), (_currentTime + (((_local9 * 1000) + (_local8 * 1000)) / _timeScale)), false, _local13, _local7.transitionParams); }; _local15.properties = _local14; _local15.onStart = _local7.onStart; _local15.onUpdate = _local7.onUpdate; _local15.onComplete = _local7.onComplete; _local15.onOverwrite = _local7.onOverwrite; _local15.onError = _local7.onError; _local15.onStartParams = _local7.onStartParams; _local15.onUpdateParams = _local7.onUpdateParams; _local15.onCompleteParams = _local7.onCompleteParams; _local15.onOverwriteParams = _local7.onOverwriteParams; _local15.onStartScope = _local7.onStartScope; _local15.onUpdateScope = _local7.onUpdateScope; _local15.onCompleteScope = _local7.onCompleteScope; _local15.onOverwriteScope = _local7.onOverwriteScope; _local15.onErrorScope = _local7.onErrorScope; _local15.rounded = _local7.rounded; _local15.skipUpdates = _local7.skipUpdates; if (((_local7.overwrite == undefined)) ? autoOverwrite : _local7.overwrite){ removeTweensByTime(_local15.scope, _local15.properties, _local15.timeStart, _local15.timeComplete); }; _tweenList.push(_local15); if ((((_local8 == 0)) && ((_local9 == 0)))){ _local16 = (_tweenList.length - 1); updateTweenByIndex(_local16); removeTweenByIndex(_local16); }; _local3++; }; return (true); } public static function addCaller(_arg1:Object=null, _arg2:Object=null):Boolean{ var _local3:Number; var _local4:Array; var _local8:Function; var _local9:TweenListObj; var _local10:Number; var _local11:String; if (!Boolean(_arg1)){ return (false); }; if ((_arg1 is Array)){ _local4 = _arg1.concat(); } else { _local4 = [_arg1]; }; var _local5:Object = _arg2; if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; var _local6:Number = (isNaN(_local5.time)) ? 0 : _local5.time; var _local7:Number = (isNaN(_local5.delay)) ? 0 : _local5.delay; if (typeof(_local5.transition) == "string"){ _local11 = _local5.transition.toLowerCase(); _local8 = _transitionList[_local11]; } else { _local8 = _local5.transition; }; if (!Boolean(_local8)){ _local8 = _transitionList["easeoutexpo"]; }; _local3 = 0; while (_local3 < _local4.length) { if (_local5.useFrames == true){ _local9 = new TweenListObj(_local4[_local3], (_currentTimeFrame + (_local7 / _timeScale)), (_currentTimeFrame + ((_local7 + _local6) / _timeScale)), true, _local8, _local5.transitionParams); } else { _local9 = new TweenListObj(_local4[_local3], (_currentTime + ((_local7 * 1000) / _timeScale)), (_currentTime + (((_local7 * 1000) + (_local6 * 1000)) / _timeScale)), false, _local8, _local5.transitionParams); }; _local9.properties = null; _local9.onStart = _local5.onStart; _local9.onUpdate = _local5.onUpdate; _local9.onComplete = _local5.onComplete; _local9.onOverwrite = _local5.onOverwrite; _local9.onStartParams = _local5.onStartParams; _local9.onUpdateParams = _local5.onUpdateParams; _local9.onCompleteParams = _local5.onCompleteParams; _local9.onOverwriteParams = _local5.onOverwriteParams; _local9.onStartScope = _local5.onStartScope; _local9.onUpdateScope = _local5.onUpdateScope; _local9.onCompleteScope = _local5.onCompleteScope; _local9.onOverwriteScope = _local5.onOverwriteScope; _local9.onErrorScope = _local5.onErrorScope; _local9.isCaller = true; _local9.count = _local5.count; _local9.waitFrames = _local5.waitFrames; _tweenList.push(_local9); if ((((_local6 == 0)) && ((_local7 == 0)))){ _local10 = (_tweenList.length - 1); updateTweenByIndex(_local10); removeTweenByIndex(_local10); }; _local3++; }; return (true); } public static function removeTweensByTime(_arg1:Object, _arg2:Object, _arg3:Number, _arg4:Number):Boolean{ var removedLocally:Boolean; var i:uint; var pName:String; var eventScope:Object; var p_scope = _arg1; var p_properties = _arg2; var p_timeStart = _arg3; var p_timeComplete = _arg4; var removed:Boolean; var tl:uint = _tweenList.length; i = 0; while (i < tl) { if (((Boolean(_tweenList[i])) && ((p_scope == _tweenList[i].scope)))){ if ((((p_timeComplete > _tweenList[i].timeStart)) && ((p_timeStart < _tweenList[i].timeComplete)))){ removedLocally = false; for (pName in _tweenList[i].properties) { if (Boolean(p_properties[pName])){ if (Boolean(_tweenList[i].onOverwrite)){ eventScope = (Boolean(_tweenList[i].onOverwriteScope)) ? _tweenList[i].onOverwriteScope : _tweenList[i].scope; try { _tweenList[i].onOverwrite.apply(eventScope, _tweenList[i].onOverwriteParams); } catch(e:Error) { handleError(_tweenList[i], e, "onOverwrite"); }; }; _tweenList[i].properties[pName] = undefined; delete _tweenList[i].properties[pName]; removedLocally = true; removed = true; }; }; if (removedLocally){ if (AuxFunctions.getObjectLength(_tweenList[i].properties) == 0){ removeTweenByIndex(i); }; }; }; }; i = (i + 1); }; return (removed); } public static function removeTweens(_arg1:Object, ... _args):Boolean{ var _local4:uint; var _local5:SpecialPropertySplitter; var _local6:Array; var _local7:uint; var _local3:Array = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){ if (_specialPropertySplitterList[_args[_local4]]){ _local5 = _specialPropertySplitterList[_args[_local4]]; _local6 = _local5.splitValues(_arg1, null); _local7 = 0; while (_local7 < _local6.length) { _local3.push(_local6[_local7].name); _local7++; }; } else { _local3.push(_args[_local4]); }; }; _local4++; }; return (affectTweens(removeTweenByIndex, _arg1, _local3)); } public static function removeAllTweens():Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; var _local1:Boolean; _local2 = 0; while (_local2 < _tweenList.length) { removeTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } public static function pauseTweens(_arg1:Object, ... _args):Boolean{ var _local4:uint; var _local3:Array = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(pauseTweenByIndex, _arg1, _local3)); } public static function pauseAllTweens():Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; var _local1:Boolean; _local2 = 0; while (_local2 < _tweenList.length) { pauseTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } public static function resumeTweens(_arg1:Object, ... _args):Boolean{ var _local4:uint; var _local3:Array = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(resumeTweenByIndex, _arg1, _local3)); } public static function resumeAllTweens():Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; var _local1:Boolean; _local2 = 0; while (_local2 < _tweenList.length) { resumeTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } private static function affectTweens(_arg1:Function, _arg2:Object, _arg3:Array):Boolean{ var _local5:uint; var _local6:Array; var _local7:uint; var _local8:uint; var _local9:uint; var _local4:Boolean; if (!Boolean(_tweenList)){ return (false); }; _local5 = 0; while (_local5 < _tweenList.length) { if (((_tweenList[_local5]) && ((_tweenList[_local5].scope == _arg2)))){ if (_arg3.length == 0){ _arg1(_local5); _local4 = true; } else { _local6 = new Array(); _local7 = 0; while (_local7 < _arg3.length) { if (Boolean(_tweenList[_local5].properties[_arg3[_local7]])){ _local6.push(_arg3[_local7]); }; _local7++; }; if (_local6.length > 0){ _local8 = AuxFunctions.getObjectLength(_tweenList[_local5].properties); if (_local8 == _local6.length){ _arg1(_local5); _local4 = true; } else { _local9 = splitTweens(_local5, _local6); _arg1(_local9); _local4 = true; }; }; }; }; _local5++; }; return (_local4); } public static function splitTweens(_arg1:Number, _arg2:Array):uint{ var _local5:uint; var _local6:String; var _local7:Boolean; var _local3:TweenListObj = _tweenList[_arg1]; var _local4:TweenListObj = _local3.clone(false); _local5 = 0; while (_local5 < _arg2.length) { _local6 = _arg2[_local5]; if (Boolean(_local3.properties[_local6])){ _local3.properties[_local6] = undefined; delete _local3.properties[_local6]; }; _local5++; }; for (_local6 in _local4.properties) { _local7 = false; _local5 = 0; while (_local5 < _arg2.length) { if (_arg2[_local5] == _local6){ _local7 = true; break; }; _local5++; }; if (!_local7){ _local4.properties[_local6] = undefined; delete _local4.properties[_local6]; }; }; _tweenList.push(_local4); return ((_tweenList.length - 1)); } private static function updateTweens():Boolean{ var _local1:int; if (_tweenList.length == 0){ return (false); }; _local1 = 0; while (_local1 < _tweenList.length) { if ((((_tweenList[_local1] == undefined)) || (!(_tweenList[_local1].isPaused)))){ if (!updateTweenByIndex(_local1)){ removeTweenByIndex(_local1); }; if (_tweenList[_local1] == null){ removeTweenByIndex(_local1, true); _local1--; }; }; _local1++; }; return (true); } public static function removeTweenByIndex(_arg1:Number, _arg2:Boolean=false):Boolean{ _tweenList[_arg1] = null; if (_arg2){ _tweenList.splice(_arg1, 1); }; return (true); } public static function pauseTweenByIndex(_arg1:Number):Boolean{ var _local2:TweenListObj = _tweenList[_arg1]; if ((((_local2 == null)) || (_local2.isPaused))){ return (false); }; _local2.timePaused = getCurrentTweeningTime(_local2); _local2.isPaused = true; return (true); } public static function resumeTweenByIndex(_arg1:Number):Boolean{ var _local2:TweenListObj = _tweenList[_arg1]; if ((((_local2 == null)) || (!(_local2.isPaused)))){ return (false); }; var _local3:Number = getCurrentTweeningTime(_local2); _local2.timeStart = (_local2.timeStart + (_local3 - _local2.timePaused)); _local2.timeComplete = (_local2.timeComplete + (_local3 - _local2.timePaused)); _local2.timePaused = undefined; _local2.isPaused = false; return (true); } private static function updateTweenByIndex(_arg1:Number):Boolean{ var tTweening:TweenListObj; var mustUpdate:Boolean; var nv:Number; var t:Number; var b:Number; var c:Number; var d:Number; var pName:String; var eventScope:Object; var tScope:Object; var tProperty:Object; var pv:Number; var i = _arg1; tTweening = _tweenList[i]; if ((((tTweening == null)) || (!(Boolean(tTweening.scope))))){ return (false); }; var isOver:Boolean; var cTime:Number = getCurrentTweeningTime(tTweening); if (cTime >= tTweening.timeStart){ tScope = tTweening.scope; if (tTweening.isCaller){ do { t = (((tTweening.timeComplete - tTweening.timeStart) / tTweening.count) * (tTweening.timesCalled + 1)); b = tTweening.timeStart; c = (tTweening.timeComplete - tTweening.timeStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, b, c, d); } while (!(cTime >= nv)); } else { mustUpdate = (((((tTweening.skipUpdates < 1)) || (!(tTweening.skipUpdates)))) || ((tTweening.updatesSkipped >= tTweening.skipUpdates))); if (cTime >= tTweening.timeComplete){ isOver = true; mustUpdate = true; }; if (!tTweening.hasStarted){ if (Boolean(tTweening.onStart)){ eventScope = (Boolean(tTweening.onStartScope)) ? tTweening.onStartScope : tScope; try { tTweening.onStart.apply(eventScope, tTweening.onStartParams); } catch(e2:Error) { handleError(tTweening, e2, "onStart"); }; }; for (pName in tTweening.properties) { if (tTweening.properties[pName].isSpecialProperty){ if (Boolean(_specialPropertyList[pName].preProcess)){ tTweening.properties[pName].valueComplete = _specialPropertyList[pName].preProcess(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].originalValueComplete, tTweening.properties[pName].extra); }; pv = _specialPropertyList[pName].getValue(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra); } else { pv = tScope[pName]; }; tTweening.properties[pName].valueStart = (isNaN(pv)) ? tTweening.properties[pName].valueComplete : pv; }; mustUpdate = true; tTweening.hasStarted = true; }; if (mustUpdate){ for (pName in tTweening.properties) { tProperty = tTweening.properties[pName]; if (isOver){ nv = tProperty.valueComplete; } else { if (tProperty.hasModifier){ t = (cTime - tTweening.timeStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, 0, 1, d, tTweening.transitionParams); nv = tProperty.modifierFunction(tProperty.valueStart, tProperty.valueComplete, nv, tProperty.modifierParameters); } else { t = (cTime - tTweening.timeStart); b = tProperty.valueStart; c = (tProperty.valueComplete - tProperty.valueStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, b, c, d, tTweening.transitionParams); }; }; if (tTweening.rounded){ nv = Math.round(nv); }; if (tProperty.isSpecialProperty){ _specialPropertyList[pName].setValue(tScope, nv, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra); } else { tScope[pName] = nv; }; }; tTweening.updatesSkipped = 0; if (Boolean(tTweening.onUpdate)){ eventScope = (Boolean(tTweening.onUpdateScope)) ? tTweening.onUpdateScope : tScope; try { tTweening.onUpdate.apply(eventScope, tTweening.onUpdateParams); } catch(e3:Error) { handleError(tTweening, e3, "onUpdate"); }; }; } else { tTweening.updatesSkipped++; }; }; if (((isOver) && (Boolean(tTweening.onComplete)))){ eventScope = (Boolean(tTweening.onCompleteScope)) ? tTweening.onCompleteScope : tScope; try { tTweening.onComplete.apply(eventScope, tTweening.onCompleteParams); } catch(e4:Error) { handleError(tTweening, e4, "onComplete"); }; }; return (!(isOver)); }; return (true); } public static function init(... _args):void{ _inited = true; _transitionList = new Object(); Equations.init(); _specialPropertyList = new Object(); _specialPropertyModifierList = new Object(); _specialPropertySplitterList = new Object(); } public static function registerTransition(_arg1:String, _arg2:Function):void{ if (!_inited){ init(); }; _transitionList[_arg1] = _arg2; } public static function registerSpecialProperty(_arg1:String, _arg2:Function, _arg3:Function, _arg4:Array=null, _arg5:Function=null):void{ if (!_inited){ init(); }; var _local6:SpecialProperty = new SpecialProperty(_arg2, _arg3, _arg4, _arg5); _specialPropertyList[_arg1] = _local6; } public static function registerSpecialPropertyModifier(_arg1:String, _arg2:Function, _arg3:Function):void{ if (!_inited){ init(); }; var _local4:SpecialPropertyModifier = new SpecialPropertyModifier(_arg2, _arg3); _specialPropertyModifierList[_arg1] = _local4; } public static function registerSpecialPropertySplitter(_arg1:String, _arg2:Function, _arg3:Array=null):void{ if (!_inited){ init(); }; var _local4:SpecialPropertySplitter = new SpecialPropertySplitter(_arg2, _arg3); _specialPropertySplitterList[_arg1] = _local4; } private static function startEngine():void{ _engineExists = true; _tweenList = new Array(); __tweener_controller__ = new MovieClip(); __tweener_controller__.addEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame); _currentTimeFrame = 0; updateTime(); } private static function stopEngine():void{ _engineExists = false; _tweenList = null; _currentTime = 0; _currentTimeFrame = 0; __tweener_controller__.removeEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame); __tweener_controller__ = null; } public static function updateTime():void{ _currentTime = getTimer(); } public static function updateFrame():void{ _currentTimeFrame++; } public static function onEnterFrame(_arg1:Event):void{ updateTime(); updateFrame(); var _local2:Boolean; _local2 = updateTweens(); if (!_local2){ stopEngine(); }; } public static function setTimeScale(_arg1:Number):void{ var _local2:Number; var _local3:Number; if (isNaN(_arg1)){ _arg1 = 1; }; if (_arg1 < 1E-5){ _arg1 = 1E-5; }; if (_arg1 != _timeScale){ if (_tweenList != null){ _local2 = 0; while (_local2 < _tweenList.length) { _local3 = getCurrentTweeningTime(_tweenList[_local2]); _tweenList[_local2].timeStart = (_local3 - (((_local3 - _tweenList[_local2].timeStart) * _timeScale) / _arg1)); _tweenList[_local2].timeComplete = (_local3 - (((_local3 - _tweenList[_local2].timeComplete) * _timeScale) / _arg1)); if (_tweenList[_local2].timePaused != undefined){ _tweenList[_local2].timePaused = (_local3 - (((_local3 - _tweenList[_local2].timePaused) * _timeScale) / _arg1)); }; _local2++; }; }; _timeScale = _arg1; }; } public static function isTweening(_arg1:Object):Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local2 = 0; while (_local2 < _tweenList.length) { if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){ return (true); }; _local2++; }; return (false); } public static function getTweens(_arg1:Object):Array{ var _local2:uint; var _local3:String; if (!Boolean(_tweenList)){ return ([]); }; var _local4:Array = new Array(); _local2 = 0; while (_local2 < _tweenList.length) { if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){ for (_local3 in _tweenList[_local2].properties) { _local4.push(_local3); }; }; _local2++; }; return (_local4); } public static function getTweenCount(_arg1:Object):Number{ var _local2:uint; if (!Boolean(_tweenList)){ return (0); }; var _local3:Number = 0; _local2 = 0; while (_local2 < _tweenList.length) { if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){ _local3 = (_local3 + AuxFunctions.getObjectLength(_tweenList[_local2].properties)); }; _local2++; }; return (_local3); } private static function handleError(_arg1:TweenListObj, _arg2:Error, _arg3:String):void{ var eventScope:Object; var pTweening = _arg1; var pError = _arg2; var pCallBackName = _arg3; if (((Boolean(pTweening.onError)) && ((pTweening.onError is Function)))){ eventScope = (Boolean(pTweening.onErrorScope)) ? pTweening.onErrorScope : pTweening.scope; try { pTweening.onError.apply(eventScope, [pTweening.scope, pError]); } catch(metaError:Error) { printError(((((String(pTweening.scope) + " raised an error while executing the 'onError' handler. Original error:\n ") + pError.getStackTrace()) + "\nonError error: ") + metaError.getStackTrace())); }; } else { if (!Boolean(pTweening.onError)){ printError(((((String(pTweening.scope) + " raised an error while executing the '") + pCallBackName) + "'handler. \n") + pError.getStackTrace())); }; }; } public static function getCurrentTweeningTime(_arg1:Object):Number{ return ((_arg1.useFrames) ? _currentTimeFrame : _currentTime); } public static function getVersion():String{ return ("AS3 1.33.74"); } public static function printError(_arg1:String):void{ trace(("## [Tweener] Error: " + _arg1)); } } }//package caurina.transitions
Section 101
//TweenListObj (caurina.transitions.TweenListObj) package caurina.transitions { public class TweenListObj { public var scope:Object; public var properties:Object; public var timeStart:Number; public var timeComplete:Number; public var useFrames:Boolean; public var transition:Function; public var transitionParams:Object; public var onStart:Function; public var onUpdate:Function; public var onComplete:Function; public var onOverwrite:Function; public var onError:Function; public var onStartParams:Array; public var onUpdateParams:Array; public var onCompleteParams:Array; public var onOverwriteParams:Array; public var onStartScope:Object; public var onUpdateScope:Object; public var onCompleteScope:Object; public var onOverwriteScope:Object; public var onErrorScope:Object; public var rounded:Boolean; public var isPaused:Boolean; public var timePaused:Number; public var isCaller:Boolean; public var count:Number; public var timesCalled:Number; public var waitFrames:Boolean; public var skipUpdates:Number; public var updatesSkipped:Number; public var hasStarted:Boolean; public function TweenListObj(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Boolean, _arg5:Function, _arg6:Object){ scope = _arg1; timeStart = _arg2; timeComplete = _arg3; useFrames = _arg4; transition = _arg5; transitionParams = _arg6; properties = new Object(); isPaused = false; timePaused = undefined; isCaller = false; updatesSkipped = 0; timesCalled = 0; skipUpdates = 0; hasStarted = false; } public function clone(_arg1:Boolean):TweenListObj{ var _local3:String; var _local2:TweenListObj = new TweenListObj(scope, timeStart, timeComplete, useFrames, transition, transitionParams); _local2.properties = new Array(); for (_local3 in properties) { _local2.properties[_local3] = properties[_local3].clone(); }; _local2.skipUpdates = skipUpdates; _local2.updatesSkipped = updatesSkipped; if (!_arg1){ _local2.onStart = onStart; _local2.onUpdate = onUpdate; _local2.onComplete = onComplete; _local2.onOverwrite = onOverwrite; _local2.onError = onError; _local2.onStartParams = onStartParams; _local2.onUpdateParams = onUpdateParams; _local2.onCompleteParams = onCompleteParams; _local2.onOverwriteParams = onOverwriteParams; _local2.onStartScope = onStartScope; _local2.onUpdateScope = onUpdateScope; _local2.onCompleteScope = onCompleteScope; _local2.onOverwriteScope = onOverwriteScope; _local2.onErrorScope = onErrorScope; }; _local2.rounded = rounded; _local2.isPaused = isPaused; _local2.timePaused = timePaused; _local2.isCaller = isCaller; _local2.count = count; _local2.timesCalled = timesCalled; _local2.waitFrames = waitFrames; _local2.hasStarted = hasStarted; return (_local2); } public function toString():String{ var _local3:String; var _local1 = "\n[TweenListObj "; _local1 = (_local1 + ("scope:" + String(scope))); _local1 = (_local1 + ", properties:"); var _local2:Boolean; for (_local3 in properties) { if (!_local2){ _local1 = (_local1 + ","); }; _local1 = (_local1 + ("[name:" + properties[_local3].name)); _local1 = (_local1 + (",valueStart:" + properties[_local3].valueStart)); _local1 = (_local1 + (",valueComplete:" + properties[_local3].valueComplete)); _local1 = (_local1 + "]"); _local2 = false; }; _local1 = (_local1 + (", timeStart:" + String(timeStart))); _local1 = (_local1 + (", timeComplete:" + String(timeComplete))); _local1 = (_local1 + (", useFrames:" + String(useFrames))); _local1 = (_local1 + (", transition:" + String(transition))); _local1 = (_local1 + (", transitionParams:" + String(transitionParams))); if (skipUpdates){ _local1 = (_local1 + (", skipUpdates:" + String(skipUpdates))); }; if (updatesSkipped){ _local1 = (_local1 + (", updatesSkipped:" + String(updatesSkipped))); }; if (Boolean(onStart)){ _local1 = (_local1 + (", onStart:" + String(onStart))); }; if (Boolean(onUpdate)){ _local1 = (_local1 + (", onUpdate:" + String(onUpdate))); }; if (Boolean(onComplete)){ _local1 = (_local1 + (", onComplete:" + String(onComplete))); }; if (Boolean(onOverwrite)){ _local1 = (_local1 + (", onOverwrite:" + String(onOverwrite))); }; if (Boolean(onError)){ _local1 = (_local1 + (", onError:" + String(onError))); }; if (onStartParams){ _local1 = (_local1 + (", onStartParams:" + String(onStartParams))); }; if (onUpdateParams){ _local1 = (_local1 + (", onUpdateParams:" + String(onUpdateParams))); }; if (onCompleteParams){ _local1 = (_local1 + (", onCompleteParams:" + String(onCompleteParams))); }; if (onOverwriteParams){ _local1 = (_local1 + (", onOverwriteParams:" + String(onOverwriteParams))); }; if (onStartScope){ _local1 = (_local1 + (", onStartScope:" + String(onStartScope))); }; if (onUpdateScope){ _local1 = (_local1 + (", onUpdateScope:" + String(onUpdateScope))); }; if (onCompleteScope){ _local1 = (_local1 + (", onCompleteScope:" + String(onCompleteScope))); }; if (onOverwriteScope){ _local1 = (_local1 + (", onOverwriteScope:" + String(onOverwriteScope))); }; if (onErrorScope){ _local1 = (_local1 + (", onErrorScope:" + String(onErrorScope))); }; if (rounded){ _local1 = (_local1 + (", rounded:" + String(rounded))); }; if (isPaused){ _local1 = (_local1 + (", isPaused:" + String(isPaused))); }; if (timePaused){ _local1 = (_local1 + (", timePaused:" + String(timePaused))); }; if (isCaller){ _local1 = (_local1 + (", isCaller:" + String(isCaller))); }; if (count){ _local1 = (_local1 + (", count:" + String(count))); }; if (timesCalled){ _local1 = (_local1 + (", timesCalled:" + String(timesCalled))); }; if (waitFrames){ _local1 = (_local1 + (", waitFrames:" + String(waitFrames))); }; if (hasStarted){ _local1 = (_local1 + (", hasStarted:" + String(hasStarted))); }; _local1 = (_local1 + "]\n"); return (_local1); } public static function makePropertiesChain(_arg1:Object):Object{ var _local3:Object; var _local4:Object; var _local5:Object; var _local6:Number; var _local7:Number; var _local8:Number; var _local2:Object = _arg1.base; if (_local2){ _local3 = {}; if ((_local2 is Array)){ _local4 = []; _local8 = 0; while (_local8 < _local2.length) { _local4.push(_local2[_local8]); _local8++; }; } else { _local4 = [_local2]; }; _local4.push(_arg1); _local6 = _local4.length; _local7 = 0; while (_local7 < _local6) { if (_local4[_local7]["base"]){ _local5 = AuxFunctions.concatObjects(makePropertiesChain(_local4[_local7]["base"]), _local4[_local7]); } else { _local5 = _local4[_local7]; }; _local3 = AuxFunctions.concatObjects(_local3, _local5); _local7++; }; if (_local3["base"]){ delete _local3["base"]; }; return (_local3); //unresolved jump }; return (_arg1); } } }//package caurina.transitions
Section 102
//allAchiev_288 (collapse_it_fla.allAchiev_288) package collapse_it_fla { import flash.display.*; public dynamic class allAchiev_288 extends MovieClip { public var BRONSE_CUP:BronseCup; public var DYNAMITE:Dynamite; public var SILVER_CUP:SilverCup; public function allAchiev_288(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package collapse_it_fla
Section 103
//BombButton_437 (collapse_it_fla.BombButton_437) package collapse_it_fla { import flash.display.*; public dynamic class BombButton_437 extends MovieClip { public function BombButton_437(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package collapse_it_fla
Section 104
//EyeLeft_104 (collapse_it_fla.EyeLeft_104) package collapse_it_fla { import flash.display.*; public dynamic class EyeLeft_104 extends MovieClip { public function EyeLeft_104(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package collapse_it_fla
Section 105
//EyeRight_103 (collapse_it_fla.EyeRight_103) package collapse_it_fla { import flash.display.*; public dynamic class EyeRight_103 extends MovieClip { public function EyeRight_103(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package collapse_it_fla
Section 106
//figures_116 (collapse_it_fla.figures_116) package collapse_it_fla { import flash.display.*; public dynamic class figures_116 extends MovieClip { public function figures_116(){ addFrameScript(27, frame28); } function frame28(){ stop(); } } }//package collapse_it_fla
Section 107
//fitil_389 (collapse_it_fla.fitil_389) package collapse_it_fla { import flash.display.*; public dynamic class fitil_389 extends MovieClip { public var m_wickEnd:MovieClip; public function fitil_389(){ addFrameScript(298, frame299); } function frame299(){ stop(); } } }//package collapse_it_fla
Section 108
//GoAchivOver_357 (collapse_it_fla.GoAchivOver_357) package collapse_it_fla { import flash.display.*; public dynamic class GoAchivOver_357 extends MovieClip { public function GoAchivOver_357(){ addFrameScript(5, frame6); } function frame6(){ stop(); } } }//package collapse_it_fla
Section 109
//HrenMain_407 (collapse_it_fla.HrenMain_407) package collapse_it_fla { import flash.display.*; public dynamic class HrenMain_407 extends MovieClip { public function HrenMain_407(){ addFrameScript(24, frame25); } function frame25(){ stop(); } } }//package collapse_it_fla
Section 110
//MainMenuButtonAnim_416 (collapse_it_fla.MainMenuButtonAnim_416) package collapse_it_fla { import flash.display.*; public dynamic class MainMenuButtonAnim_416 extends MovieClip { public var m_buttonPlay:SimpleButton; public var m_buttonHighScore:SimpleButton; public var m_buttonOptions:SimpleButton; public var m_buttonMoreGames:SimpleButton; public function MainMenuButtonAnim_416(){ addFrameScript(19, frame20); } function frame20(){ stop(); } } }//package collapse_it_fla
Section 111
//MMPanelAnim_412 (collapse_it_fla.MMPanelAnim_412) package collapse_it_fla { import flash.display.*; public dynamic class MMPanelAnim_412 extends MovieClip { public function MMPanelAnim_412(){ addFrameScript(19, frame20); } function frame20(){ stop(); } } }//package collapse_it_fla
Section 112
//PreloaderPlayButton_30 (collapse_it_fla.PreloaderPlayButton_30) package collapse_it_fla { import flash.display.*; public dynamic class PreloaderPlayButton_30 extends MovieClip { public function PreloaderPlayButton_30(){ addFrameScript(8, frame9); } function frame9(){ stop(); } } }//package collapse_it_fla
Section 113
//SunEmotion_70 (collapse_it_fla.SunEmotion_70) package collapse_it_fla { import flash.display.*; public dynamic class SunEmotion_70 extends MovieClip { public function SunEmotion_70(){ addFrameScript(10, frame11); } function frame11(){ stop(); } } }//package collapse_it_fla
Section 114
//Symbol35_447 (collapse_it_fla.Symbol35_447) package collapse_it_fla { import flash.display.*; public dynamic class Symbol35_447 extends MovieClip { public function Symbol35_447(){ addFrameScript(249, frame250); } function frame250(){ stop(); } } }//package collapse_it_fla
Section 115
//CurrentStateManager (Main.CurrentStateManager) package Main { import flash.events.*; import States.*; import flash.ui.*; public class CurrentStateManager extends StateManager { public var m_preloaderClip:CurrentPreloaderState; private static var m_instance:CurrentStateManager = null; public function CurrentStateManager(){ m_instance = this; customizeContextMenu(); pushState(m_preloaderClip); new Mask1(this, Constant.WINDOW_WIDTH, Constant.WINDOW_HEIGHT, 0); } private function customizeContextMenu():void{ var _local1:ContextMenu = new ContextMenu(); _local1.hideBuiltInItems(); var _local2:ContextMenuBuiltInItems = _local1.builtInItems; _local2.print = true; _local2.quality = true; _local1.builtInItems = _local2; var _local3:ContextMenuItem = new ContextMenuItem("More games", true); _local3.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, goKongregate); var _local4:ContextMenuItem = new ContextMenuItem("www.armorgames.com", false); _local4.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, goKongregate); var _local5:ContextMenuItem = new ContextMenuItem("Video Walkthrough", true); _local5.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, goWalkthrough); _local1.customItems = [_local3, _local4, _local5]; contextMenu = _local1; } private function goKongregate(_arg1:ContextMenuEvent):void{ LinksManager.goURL(LinksManager.MAIN_PAGE_URL); } private function goWalkthrough(_arg1:ContextMenuEvent):void{ LinksManager.goURL(LinksManager.WALKROUTGH_URL); } override protected function onTimerFunc(_arg1:int):void{ if (getSeconds() >= (60 * 30)){ GameData.giveAchievement(Achievements.TNT); }; } public function coolChangeState(_arg1:GameState):void{ var _local2:ShadeInState = new ShadeInState(); pushState(_local2); _local2.setNextState(_arg1); } public static function getInstance():CurrentStateManager{ return (m_instance); } } }//package Main
Section 116
//FPSCounter (Main.FPSCounter) package Main { import flash.events.*; import flash.utils.*; public class FPSCounter { private var m_fps:int;// = 0 private var m_framesFromLastSecond:int;// = 0 private var m_timer:Timer; public function FPSCounter(){ m_timer = new Timer(1000); super(); m_timer.addEventListener(TimerEvent.TIMER, onTick); m_timer.start(); } public function addFrame():void{ m_framesFromLastSecond++; } public function onTick(_arg1:TimerEvent):void{ m_fps = m_framesFromLastSecond; m_framesFromLastSecond = 0; } public function getFPS():int{ return (m_fps); } } }//package Main
Section 117
//GameState (Main.GameState) package Main { import flash.events.*; import flash.display.*; public class GameState extends MovieClip { private var m_isInitiliazed:Boolean;// = false protected var m_liveTime:Number;// = 0 protected var m_forsedLiveTime:Number;// = 0 protected var m_view:MovieClip; private var m_isMouseDown:Boolean;// = false public function isMouseDown():Boolean{ return (m_isMouseDown); } public function handleKeyDown(_arg1:KeyboardEvent):void{ } public function handleKeyUp(_arg1:KeyboardEvent):void{ } public function handleMouseClick(_arg1:MouseEvent):void{ } public function handleMouseDown(_arg1:MouseEvent):void{ m_isMouseDown = true; } public function handleMouseUp(_arg1:MouseEvent):void{ m_isMouseDown = false; } public function handleMouseMove(_arg1:MouseEvent):void{ } public function getViewClip():MovieClip{ return (null); } public function InternalInit():void{ m_liveTime = 0; onInit(); } final public function internalUpdate(_arg1:Number):void{ m_liveTime = (m_liveTime + _arg1); update(_arg1); } public function update(_arg1:Number):void{ } final public function internalForsedUpdate(_arg1:Number):void{ m_forsedLiveTime = (m_forsedLiveTime + _arg1); forsedUpdate(_arg1); } public function forsedUpdate(_arg1:Number):void{ } public function onResume():void{ } public function onInit():void{ } public function onCleanup():void{ if (m_view){ while (m_view.numChildren != 0) { m_view.removeChildAt(0); }; m_view = null; }; while (numChildren) { removeChildAt(0); }; } public function onStop():void{ } public function onPreInit():void{ } } }//package Main
Section 118
//Mask1 (Main.Mask1) package Main { import flash.display.*; public class Mask1 extends Sprite { private const RECT_SIZE:int = 200; public function Mask1(_arg1:Sprite, _arg2:Number=0, _arg3:Number=0, _arg4:uint=0xFFFFFF, _arg5:Number=0, _arg6:Number=0){ addRectanglesOutStage(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); } private function addRectanglesOutStage(_arg1:Sprite, _arg2:Number, _arg3:Number, _arg4:uint, _arg5:Number, _arg6:Number):void{ graphics.beginFill(_arg4, 1); graphics.drawRect((_arg5 - RECT_SIZE), (_arg6 - RECT_SIZE), ((2 * RECT_SIZE) + _arg2), RECT_SIZE); graphics.drawRect((_arg5 - RECT_SIZE), _arg6, RECT_SIZE, _arg3); graphics.drawRect((_arg5 + _arg2), _arg6, RECT_SIZE, _arg3); graphics.drawRect((_arg5 - RECT_SIZE), (_arg6 + _arg3), ((2 * RECT_SIZE) + _arg2), RECT_SIZE); graphics.endFill(); cacheAsBitmap = true; _arg1.parent.addChild(this); } } }//package Main
Section 119
//PhysGameState (Main.PhysGameState) package Main { import flash.events.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import Utils.*; import flash.display.*; import States.PlayState.*; import flash.ui.*; public class PhysGameState extends GameState { protected var m_mapObjects:Array; protected var m_debugSprite:Sprite; protected var m_world:b2World; protected var m_physScale:Number;// = 30 protected var m_gravity:b2Vec2; private var m_mouseJoint:b2MouseJoint; protected var m_mouseDragEnabled:Boolean;// = false private var m_accumulateTime:Number;// = 0 public function PhysGameState(){ m_mapObjects = new Array(); m_debugSprite = new Sprite(); m_gravity = new b2Vec2(0, 10); super(); } public function getMousePhysPos():b2Vec2{ return (new b2Vec2(((stage.mouseX / m_physScale) / scaleX), ((stage.mouseY / m_physScale) / scaleY))); } override public function onInit():void{ super.onInit(); if (!Fixtures.inited()){ Fixtures.init(); }; m_world = new b2World(m_gravity, true); m_world.SetWarmStarting(true); if (Constant.PHYSICS_POSITIONS_ITERATION_COUNT != 1){ m_world.SetContinuousPhysics(false); } else { m_world.SetContinuousPhysics(true); }; } public function initDebugDraw():void{ var _local1:b2DebugDraw; if (Constant.m_debugMode){ _local1 = new b2DebugDraw(); _local1.SetSprite(m_debugSprite); _local1.SetDrawScale(m_physScale); _local1.SetFillAlpha(0.8); _local1.SetLineThickness(1); _local1.SetFlags((b2DebugDraw.e_shapeBit | b2DebugDraw.e_jointBit)); m_world.SetDebugDraw(_local1); addChild(m_debugSprite); m_debugSprite.visible = false; }; } override public function onCleanup():void{ var _local2:b2Body; var _local1:Array = new Array(); _local2 = m_world.GetBodyList(); while (_local2) { _local1.push(_local2); _local2 = _local2.GetNext(); }; for each (_local2 in _local1) { m_world.DestroyBody(_local2); }; m_world = null; m_debugSprite = null; m_gravity = null; m_mouseJoint = null; super.onCleanup(); } override public function update(_arg1:Number):void{ var _local3:DisplayObject; m_accumulateTime = (m_accumulateTime + _arg1); while (m_accumulateTime > Constant.TIME_STEP) { m_accumulateTime = (m_accumulateTime - Constant.TIME_STEP); m_world.Step(Constant.TIME_STEP, Constant.PHYSICS_VELOCITY_ITERATION_COUNT, Constant.PHYSICS_POSITIONS_ITERATION_COUNT); }; m_world.ClearForces(); var _local2:b2Body = m_world.GetBodyList(); while (_local2) { if ((_local2.GetUserData() is DisplayObject)){ _local3 = (_local2.GetUserData() as DisplayObject); _local3.x = (_local2.GetPosition().x * m_physScale); _local3.y = (_local2.GetPosition().y * m_physScale); _local3.rotation = MathUtils.RadToGrad(_local2.GetAngle()); }; _local2 = _local2.GetNext(); }; if (Constant.m_debugMode){ m_world.DrawDebugData(); }; updateMapObjects(_arg1); } override public function handleKeyDown(_arg1:KeyboardEvent):void{ super.handleKeyDown(_arg1); if (Constant.m_debugMode){ if (_arg1.keyCode == Keyboard.UP){ m_debugSprite.visible = !(m_debugSprite.visible); }; }; } private function updateMapObjects(_arg1:Number):void{ var _local3:MapObject; var _local2:Array = new Array(); for each (_local3 in m_mapObjects) { _local3.update(_arg1); if (!_local3.isDead()){ _local2.push(_local3); } else { _local3.onDead(m_world); }; }; m_mapObjects = _local2; } public function addMapObject(_arg1:MapObject, _arg2:DisplayObjectContainer):void{ if (_arg1 == null){ trace(new Error().getStackTrace()); }; if (_arg2 != null){ _arg2.addChild(_arg1); }; m_mapObjects.push(_arg1); } protected function addMapObjectAt(_arg1:MapObject, _arg2:DisplayObjectContainer, _arg3:Number, _arg4:Number):void{ _arg2.addChild(_arg1); m_mapObjects.push(_arg1); _arg1.x = _arg3; _arg1.y = _arg4; } public function getBodyAtMouse():b2Body{ var mouse_pos:b2Vec2; var fixture:b2Fixture; var GetBodyCallback:Function; GetBodyCallback = function (_arg1:b2Fixture):Boolean{ var _local3:Boolean; var _local2:b2Shape = _arg1.GetShape(); if (_arg1.GetBody().GetType() != b2Body.b2_staticBody){ _local3 = _local2.TestPoint(_arg1.GetBody().GetTransform(), mouse_pos); if (_local3){ body = _arg1.GetBody(); return (false); }; }; return (true); }; mouse_pos = getMousePhysPos(); var aabb:b2AABB = new b2AABB(); aabb.lowerBound.Set((mouse_pos.x - 0.001), (mouse_pos.y - 0.001)); aabb.upperBound.Set((mouse_pos.x + 0.001), (mouse_pos.y + 0.001)); var body:b2Body; m_world.QueryAABB(GetBodyCallback, aabb); return (body); } public function getNotSensoredBodyAt(_arg1:b2Vec2):b2Body{ var body:b2Body; var fixture:b2Fixture; var GetBodyCallback:Function; var pos = _arg1; GetBodyCallback = function (_arg1:b2Fixture):Boolean{ var _local3:Boolean; var _local2:b2Shape = _arg1.GetShape(); if (_arg1.GetBody().GetType() != b2Body.b2_staticBody){ _local3 = _local2.TestPoint(_arg1.GetBody().GetTransform(), pos); if (((_local3) && (!(_arg1.IsSensor())))){ body = _arg1.GetBody(); return (false); }; }; return (true); }; var aabb:b2AABB = new b2AABB(); aabb.lowerBound.Set((pos.x - 0.001), (pos.y - 0.001)); aabb.upperBound.Set((pos.x + 0.001), (pos.y + 0.001)); m_world.QueryAABB(GetBodyCallback, aabb); return (body); } public function getBodyAt(_arg1:b2Vec2):b2Body{ var fixture:b2Fixture; var GetBodyCallback:Function; var pos = _arg1; GetBodyCallback = function (_arg1:b2Fixture):Boolean{ var _local3:Boolean; var _local2:b2Shape = _arg1.GetShape(); if (_arg1.GetBody().GetType() != b2Body.b2_staticBody){ _local3 = _local2.TestPoint(_arg1.GetBody().GetTransform(), pos); if (_local3){ body = _arg1.GetBody(); return (false); }; }; return (true); }; var aabb:b2AABB = new b2AABB(); aabb.lowerBound.Set((pos.x - 0.001), (pos.y - 0.001)); aabb.upperBound.Set((pos.x + 0.001), (pos.y + 0.001)); var body:b2Body; m_world.QueryAABB(GetBodyCallback, aabb); return (body); } public function getFixtureAt(_arg1:b2Vec2):b2Fixture{ var fixture_to_return:b2Fixture; var QueryPointCallback:Function; var pos = _arg1; QueryPointCallback = function (_arg1:b2Fixture):Boolean{ var _local2:b2Shape = _arg1.GetShape(); var _local3:Boolean = _local2.TestPoint(_arg1.GetBody().GetTransform(), pos); if (_local3){ fixture_to_return = _arg1; return (false); }; return (true); }; m_world.QueryPoint(QueryPointCallback, pos); return (fixture_to_return); } public function createDynamicBoxFromClip(_arg1:DisplayObject, _arg2:Sprite, _arg3:b2FixtureDef):b2Body{ if (_arg1.parent != _arg2){ _arg2.addChild(_arg1); }; var _local4:Number = _arg1.rotation; _arg1.rotation = 0; var _local5:b2BodyDef = new b2BodyDef(); _local5.type = b2Body.b2_dynamicBody; _local5.position = new b2Vec2((_arg1.x / m_physScale), (_arg1.y / m_physScale)); _local5.angle = MathUtils.GradToRad(_local4); var _local6:b2Body = m_world.CreateBody(_local5); var _local7:b2PolygonShape = new b2PolygonShape(); _local7.SetAsBox(((_arg1.width / m_physScale) / 2), ((_arg1.height / m_physScale) / 2)); _arg3.shape = _local7; _local6.CreateFixture(_arg3); _local6.SetUserData(_arg1); _arg1.rotation = _local4; return (_local6); } public function createStaticBoxFromClip(_arg1:DisplayObject, _arg2:Sprite, _arg3:b2FixtureDef):b2Fixture{ if (_arg1.parent != _arg2){ _arg2.addChild(_arg1); }; var _local4:Number = _arg1.rotation; _arg1.rotation = 0; var _local5:b2BodyDef = new b2BodyDef(); _local5.position = new b2Vec2((_arg1.x / m_physScale), (_arg1.y / m_physScale)); _local5.angle = MathUtils.GradToRad(_local4); var _local6:b2Body = m_world.CreateBody(_local5); var _local7:b2PolygonShape = new b2PolygonShape(); _local7.SetAsBox(((_arg1.width / m_physScale) / 2), ((_arg1.height / m_physScale) / 2)); _arg3.shape = _local7; var _local8:b2Fixture = _local6.CreateFixture(_arg3); _local6.SetUserData(_arg1); _arg1.rotation = _local4; return (_local8); } public function createDynamicCircleFromClip(_arg1:DisplayObject, _arg2:Sprite, _arg3:b2FixtureDef):b2Body{ if (_arg1.parent != _arg2){ _arg2.addChild(_arg1); }; var _local4:Number = _arg1.rotation; _arg1.rotation = 0; var _local5:b2BodyDef = new b2BodyDef(); _local5.position = new b2Vec2((_arg1.x / m_physScale), (_arg1.y / m_physScale)); _local5.type = b2Body.b2_dynamicBody; _local5.angle = MathUtils.GradToRad(_local4); var _local6:b2Body = m_world.CreateBody(_local5); var _local7:b2CircleShape = new b2CircleShape(((_arg1.width / 2) / m_physScale)); _arg3.shape = _local7; var _local8:b2Fixture = _local6.CreateFixture(_arg3); _local6.SetUserData(_arg1); _arg1.rotation = _local4; return (_local6); } public function createStaticBox(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Number):b2Body{ var _local4:b2BodyDef = new b2BodyDef(); _local4.position = _arg2.Copy(); _local4.angle = MathUtils.GradToRad(_arg3); var _local5:b2Body = m_world.CreateBody(_local4); var _local6:b2PolygonShape = new b2PolygonShape(); _local6.SetAsBox((_arg1.x / 2), (_arg1.y / 2)); var _local7:b2FixtureDef = new b2FixtureDef(); _local7.shape = _local6; _local5.CreateFixture(_local7); return (_local5); } override public function handleMouseMove(_arg1:MouseEvent):void{ if (m_mouseDragEnabled){ if (m_mouseJoint){ m_mouseJoint.SetTarget(getMousePhysPos()); }; }; } override public function handleMouseDown(_arg1:MouseEvent):void{ var _local2:b2Body; var _local3:b2MouseJointDef; super.handleMouseDown(_arg1); if (m_mouseDragEnabled){ if (!m_mouseJoint){ _local2 = getBodyAtMouse(); if (_local2){ _local3 = new b2MouseJointDef(); _local3.bodyA = m_world.GetGroundBody(); _local3.bodyB = _local2; _local3.target.SetV(getMousePhysPos()); _local3.collideConnected = true; _local3.maxForce = (300 * _local2.GetMass()); m_mouseJoint = (m_world.CreateJoint(_local3) as b2MouseJoint); }; }; }; } override public function handleMouseUp(_arg1:MouseEvent):void{ super.handleMouseUp(_arg1); if (m_mouseDragEnabled){ if (m_mouseJoint){ m_world.DestroyJoint(m_mouseJoint); m_mouseJoint = null; }; }; } public function parseShapeVectorFromClip(_arg1:Sprite, _arg2:String):Array{ var _local3:Array = new Array(); var _local4:DisplayObject = new MovieClip(); var _local5:int; while (_local4) { _local4 = _arg1.getChildByName((_arg2 + _local5)); if (_local4){ _local3.push(new b2Vec2((_local4.x / m_physScale), (_local4.y / m_physScale))); }; _local5++; }; return (_local3); } protected function createStaticShapeFromClip(_arg1:Sprite, _arg2:Sprite):b2Body{ if (!_arg1){ trace(new Error().getStackTrace()); return (null); }; var _local3:Array = parseShapeVectorFromClip(_arg1, "vertex"); var _local4:b2BodyDef = new b2BodyDef(); _local4.position = new b2Vec2((_arg1.x / m_physScale), (_arg1.y / m_physScale)); _local4.angle = MathUtils.GradToRad(rotation); var _local5:b2Body = m_world.CreateBody(_local4); var _local6:b2PolygonShape = new b2PolygonShape(); _local6.SetAsArray(_local3, _local3.length); var _local7:b2FixtureDef = new b2FixtureDef(); _local7.shape = _local6; _local5.CreateFixture(_local7); _arg2.addChild(_arg1); return (_local5); } protected function createDynamicShapeFromClip(_arg1:Sprite, _arg2:Sprite, _arg3:b2FixtureDef):b2Body{ if (!_arg1){ trace(new Error().getStackTrace()); return (null); }; var _local4:Array = parseShapeVectorFromClip(_arg1, "vertex"); var _local5:b2BodyDef = new b2BodyDef(); _local5.type = b2Body.b2_dynamicBody; _local5.position = new b2Vec2((_arg1.x / m_physScale), (_arg1.y / m_physScale)); _local5.angle = MathUtils.GradToRad(_arg1.rotation); var _local6:b2Body = m_world.CreateBody(_local5); var _local7:b2PolygonShape = new b2PolygonShape(); _local7.SetAsArray(_local4, _local4.length); _arg3.shape = _local7; _local6.CreateFixture(_arg3); _local6.SetUserData(_arg1); _arg2.addChild(_arg1); return (_local6); } protected function createKinematicShapeFromClip(_arg1:Sprite, _arg2:Sprite, _arg3:b2FixtureDef):b2Body{ if (!_arg1){ trace(new Error().getStackTrace()); return (null); }; var _local4:Array = parseShapeVectorFromClip(_arg1, "vertex"); var _local5:b2BodyDef = new b2BodyDef(); _local5.type = b2Body.b2_kinematicBody; _local5.position = new b2Vec2((_arg1.x / m_physScale), (_arg1.y / m_physScale)); _local5.angle = MathUtils.GradToRad(_arg1.rotation); var _local6:b2Body = m_world.CreateBody(_local5); var _local7:b2PolygonShape = new b2PolygonShape(); _local7.SetAsArray(_local4, _local4.length); _arg3.shape = _local7; _local6.CreateFixture(_arg3); _local6.SetUserData(_arg1); _arg2.addChild(_arg1); return (_local6); } } }//package Main
Section 120
//PreloaderState (Main.PreloaderState) package Main { import flash.events.*; import flash.display.*; public class PreloaderState extends GameState { protected var m_loaderInfo:LoaderInfo;// = null private var m_isLoadingFinished:Boolean;// = false private var m_minimalLoadTime:Number;// = 50 protected var m_bytesTotal:Number;// = 100 protected var m_bytesLoaded:Number;// = 100 private var m_percent:Number;// = 0 private var m_isEnded:Boolean;// = false protected var m_scene:MovieClip; public function getPercent():Number{ return (m_percent); } public function setMinimalLoadTime(_arg1:Number):void{ m_minimalLoadTime = _arg1; } override public function onInit():void{ m_scene = CurrentStateManager.getInstance(); m_loaderInfo = CurrentStateManager.getInstance().loaderInfo; if (m_loaderInfo.bytesLoaded >= m_loaderInfo.bytesTotal){ m_isLoadingFinished = true; } else { m_loaderInfo.addEventListener(ProgressEvent.PROGRESS, onLoadProgress); m_loaderInfo.addEventListener(Event.COMPLETE, onLoadComplete); }; } override public function update(_arg1:Number):void{ m_liveTime = (m_liveTime + _arg1); if (!m_isEnded){ m_percent = Math.min((m_bytesLoaded / m_bytesTotal), (m_liveTime / m_minimalLoadTime)); if (((m_isLoadingFinished) && ((m_liveTime >= m_minimalLoadTime)))){ CurrentStateManager.getInstance().gotoAndStop(2); onFinishLoading(); m_isEnded = true; }; }; } public function onFinishLoading():void{ } private function onLoadProgress(_arg1:ProgressEvent):void{ m_bytesTotal = _arg1.bytesTotal; m_bytesLoaded = _arg1.bytesLoaded; } private function onLoadComplete(_arg1:Event):void{ m_loaderInfo.removeEventListener(ProgressEvent.PROGRESS, onLoadProgress); m_loaderInfo.removeEventListener(Event.COMPLETE, onLoadComplete); m_isLoadingFinished = true; } } }//package Main
Section 121
//StateManager (Main.StateManager) package Main { import flash.events.*; import flash.display.*; import flash.utils.*; import States.*; public class StateManager extends MovieClip { private var m_states:Array; private var m_lastState:GameState;// = null private var m_overlay:DisplayObject;// = null private var m_fpsCounter:FPSCounter; private var m_timer:Timer; private var m_seconds:int;// = 0 public function StateManager(){ m_states = new Array(); m_fpsCounter = new FPSCounter(); m_timer = new Timer(1000); super(); stop(); addEventListener(Event.ENTER_FRAME, update); stage.addEventListener(MouseEvent.CLICK, handleMouseClick); stage.addEventListener(MouseEvent.MOUSE_UP, handleMouseUp); stage.addEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown); stage.addEventListener(MouseEvent.MOUSE_MOVE, handleMouseMove); stage.addEventListener(KeyboardEvent.KEY_DOWN, onKey); stage.addEventListener(KeyboardEvent.KEY_UP, handleKeyUp); m_timer.addEventListener(TimerEvent.TIMER, onTimer); m_timer.start(); stage.focus = stage; stage.tabChildren = false; } protected function onTimer(_arg1:TimerEvent):void{ m_seconds++; onTimerFunc(m_seconds); } protected function onTimerFunc(_arg1:int):void{ } public function getSeconds():int{ return (m_seconds); } public function getFPS():Number{ return (m_fpsCounter.getFPS()); } private function onKey(_arg1:KeyboardEvent):void{ if (m_states.length != 0){ m_states[(m_states.length - 1)].handleKeyDown(_arg1); }; } private function handleMouseMove(_arg1:MouseEvent):void{ if (m_states.length != 0){ m_states[(m_states.length - 1)].handleMouseMove(_arg1); }; } private function handleKeyUp(_arg1:KeyboardEvent):void{ if (m_states.length != 0){ m_states[(m_states.length - 1)].handleKeyUp(_arg1); }; } private function handleMouseClick(_arg1:MouseEvent):void{ if (m_states.length != 0){ m_states[(m_states.length - 1)].handleMouseClick(_arg1); }; } private function handleMouseUp(_arg1:MouseEvent):void{ if (m_states.length != 0){ m_states[(m_states.length - 1)].handleMouseUp(_arg1); }; } private function handleMouseDown(_arg1:MouseEvent):void{ if (m_states.length != 0){ m_states[(m_states.length - 1)].handleMouseDown(_arg1); }; } private function update(_arg1:Event):void{ var _local3:GameState; var _local2:Number = (1 / stage.frameRate); if (m_states.length != 0){ m_states[(m_states.length - 1)].internalUpdate(_local2); }; for each (_local3 in m_states) { _local3.internalForsedUpdate(_local2); }; if (Constant.m_debugMode){ m_fpsCounter.addFrame(); }; SoundManager.update(_local2); } private function onStateChanging():void{ if (m_overlay != null){ addChild(m_overlay); }; } public function haveOverlay():Boolean{ return (!((m_overlay == null))); } public function setOverlay(_arg1:DisplayObject):void{ if (_arg1){ m_overlay = _arg1; addChild(m_overlay); } else { trace(new Error().getStackTrace()); }; } public function hitTestOverlays(_arg1:Number, _arg2:Number):Boolean{ return (((m_overlay) && (m_overlay.hitTestPoint(_arg1, _arg2, true)))); } public function pushState(_arg1:GameState):void{ if (m_states.length != 0){ m_lastState = m_states[(m_states.length - 1)]; m_lastState.onStop(); } else { m_lastState = _arg1; }; m_states.push(_arg1); addChild(_arg1); _arg1.InternalInit(); onStateChanging(); } public function popState():void{ if (m_states.length != 0){ m_lastState = m_states[(m_states.length - 1)]; m_lastState.onCleanup(); m_states.pop(); removeChild(m_lastState); if (m_states.length != 0){ m_states[(m_states.length - 1)].onResume(); }; }; onStateChanging(); } public function getLastState():GameState{ return (m_lastState); } public function changeState(_arg1:GameState):void{ if (m_states.length != 0){ m_lastState = m_states[(m_states.length - 1)]; }; while (m_states.length != 0) { popState(); }; pushState(_arg1); } public function getTopState():GameState{ return (m_states[(m_states.length - 1)]); } } }//package Main
Section 122
//HumanRagdoll (Ragdoll.HumanRagdoll) package Ragdoll { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; import Utils.*; import flash.display.*; import States.PlayState.*; import flash.utils.*; public class HumanRagdoll extends MapObject { private var m_leftHandJoint:b2Joint; private var m_rightHandJoint:b2Joint; private var m_leftLegJoint:b2Joint; private var m_rightLegJoint:b2Joint; private var m_headJoint:b2Joint; private var m_openWounds:Array; protected var m_nameBodyPath:Dictionary; private var m_allPaths:Array; private var m_persID:int;// = -1 private var m_world:b2World; private var m_isKilled:Boolean;// = false var m_leftHandWound:MovieClip; var m_leftLegWound:MovieClip; var m_rightHandWound:MovieClip; var m_rightLegWound:MovieClip; var m_headWound:MovieClip; var m_destroyedPaths:Array; private var m_contactFixtures:Array; public static const HEAD:String = "HEAD"; public static const TORSO:String = "TORSO"; public static const LEFT_UPPER_HAND:String = "LEFT_UPPER_HAND"; public static const RIGHT_UPPER_HAND:String = "RIGHT_UPPER_HAND"; public static const LEFT_UPPER_LEG:String = "LEFT_UPPER_LEG"; public static const RIGHT_UPPER_LEG:String = "RIGHT_UPPER_LEG"; public static const ALL_PATHS:Array = [HEAD, TORSO, LEFT_UPPER_HAND, RIGHT_UPPER_HAND, LEFT_UPPER_LEG, RIGHT_UPPER_LEG]; public function HumanRagdoll(_arg1:b2Vec2, _arg2:b2World, _arg3:int){ var _local19:b2Body; var _local20:b2Body; var _local21:MovieClip; m_openWounds = new Array(); m_nameBodyPath = new Dictionary(); m_allPaths = new Array(); m_destroyedPaths = new Array(); m_contactFixtures = new Array(); super(); m_world = _arg2; m_persID = _arg3; var _local4:HumanTemplate = new HumanTemplate(); var _local5:Number = (new Torso_0().width / Constant.PHYS_SCALE); var _local6:Number = (new Torso_0().height / Constant.PHYS_SCALE); var _local7:Number = (new LeftHand_0().width / Constant.PHYS_SCALE); var _local8:Number = (new LeftHand_0().height / Constant.PHYS_SCALE); var _local9:Number = (new Leg_0().width / Constant.PHYS_SCALE); var _local10:Number = (new Leg_0().height / Constant.PHYS_SCALE); var _local11:Number = ((new Face_0().height / Constant.PHYS_SCALE) / 2); var _local12:b2Body = createCircleBody(new b2Vec2((_arg1.x + (_local4.m_head.x / Constant.PHYS_SCALE)), (_arg1.y + (_local4.m_head.y / Constant.PHYS_SCALE))), _local11, "Face"); var _local13:b2Body = createBoxBody(new b2Vec2((_arg1.x + (_local4.m_torso.x / Constant.PHYS_SCALE)), (_arg1.y + (_local4.m_torso.y / Constant.PHYS_SCALE))), _local5, _local6, "Torso"); var _local14:b2Body = createBoxBody(new b2Vec2((_arg1.x + (_local4.m_leftHand.x / Constant.PHYS_SCALE)), (_arg1.y + (_local4.m_leftHand.y / Constant.PHYS_SCALE))), _local7, _local8, "LeftHand", _local4.m_leftHand.rotation); var _local15:b2Body = createBoxBody(new b2Vec2((_arg1.x + (_local4.m_rightHand.x / Constant.PHYS_SCALE)), (_arg1.y + (_local4.m_rightHand.y / Constant.PHYS_SCALE))), _local7, _local8, "RightHand", _local4.m_rightHand.rotation); var _local16:b2Body = createBoxBody(new b2Vec2((_arg1.x + (_local4.m_leftLeg.x / Constant.PHYS_SCALE)), (_arg1.y + (_local4.m_leftLeg.y / Constant.PHYS_SCALE))), _local9, _local10, "Leg"); var _local17:b2Body = createBoxBody(new b2Vec2((_arg1.x + (_local4.m_rightLeg.x / Constant.PHYS_SCALE)), (_arg1.y + (_local4.m_rightLeg.y / Constant.PHYS_SCALE))), _local9, _local10, "Leg"); m_headJoint = createJoint(_local13, _local12, new b2Vec2((_arg1.x + (_local4.m_headToTorso.x / Constant.PHYS_SCALE)), (_arg1.y + (_local4.m_headToTorso.y / Constant.PHYS_SCALE))), -3, 3); m_leftHandJoint = createJoint(_local13, _local14, new b2Vec2((_arg1.x + (_local4.m_leftHandToTorso.x / Constant.PHYS_SCALE)), (_arg1.y + (_local4.m_leftHandToTorso.y / Constant.PHYS_SCALE))), -85, 130); m_rightHandJoint = createJoint(_local13, _local15, new b2Vec2((_arg1.x + (_local4.m_rightHandToTorso.x / Constant.PHYS_SCALE)), (_arg1.y + (_local4.m_rightHandToTorso.y / Constant.PHYS_SCALE))), -130, 85); m_leftLegJoint = createJoint(_local13, _local16, new b2Vec2((_arg1.x + (_local4.m_leftLegToTorso.x / Constant.PHYS_SCALE)), (_arg1.y + (_local4.m_leftLegToTorso.y / Constant.PHYS_SCALE))), -35, 60); m_rightLegJoint = createJoint(_local13, _local17, new b2Vec2((_arg1.x + (_local4.m_rightLegToTorso.x / Constant.PHYS_SCALE)), (_arg1.y + (_local4.m_rightLegToTorso.y / Constant.PHYS_SCALE))), -60, 35); m_allPaths = new Array(); var _local18:Array = [_local16, _local17, _local13, _local14, _local15, _local12]; for each (_local19 in _local18) { m_allPaths.push(_local19); }; m_nameBodyPath[HEAD] = _local12; m_nameBodyPath[TORSO] = _local13; m_nameBodyPath[LEFT_UPPER_HAND] = _local14; m_nameBodyPath[RIGHT_UPPER_HAND] = _local15; m_nameBodyPath[LEFT_UPPER_LEG] = _local16; m_nameBodyPath[RIGHT_UPPER_LEG] = _local17; for each (_local20 in m_allPaths) { _local21 = (_local20.GetUserData() as MovieClip); addChild(_local21); }; } public function isWoman():Boolean{ return ((((m_persID == 3)) || ((m_persID == 6)))); } public function getBodyByName(_arg1:String):b2Body{ return (m_nameBodyPath[_arg1]); } private function createBoxBody(_arg1:b2Vec2, _arg2:Number, _arg3:Number, _arg4:String, _arg5:Number=0):b2Body{ var _local6:MovieClip = (new ((getDefinitionByName(((_arg4 + "_") + m_persID)) as Class)) as MovieClip); if (_arg4 == "Torso"){ m_leftHandWound = _local6.m_leftHandWound; m_leftLegWound = _local6.m_leftLegWound; m_rightHandWound = _local6.m_rightHandWound; m_rightLegWound = _local6.m_rightLegWound; m_headWound = _local6.m_headWound; }; _arg5 = MathUtils.GradToRad(_arg5); _local6.stop(); var _local7:b2PolygonShape = new b2PolygonShape(); _local7.SetAsBox((_arg2 / 2), (_arg3 / 2)); var _local8:b2FixtureDef = Fixtures.HUMAN_FIXTURE; _local8.shape = _local7; var _local9:b2BodyDef = new b2BodyDef(); _local9.position = _arg1; _local9.type = b2Body.b2_dynamicBody; var _local10:b2Body = m_world.CreateBody(_local9); _local10.CreateFixture(_local8); _local10.SetUserData(_local6); _local10.SetAngle(_arg5); return (_local10); } private function createCircleBody(_arg1:b2Vec2, _arg2:Number, _arg3:String):b2Body{ var _local4:MovieClip = (new ((getDefinitionByName(((_arg3 + "_") + m_persID)) as Class)) as MovieClip); _local4.stop(); var _local5:b2CircleShape = new b2CircleShape(_arg2); var _local6:b2FixtureDef = Fixtures.HUMAN_HEAD_FIXTURE; _local6.shape = _local5; var _local7:b2BodyDef = new b2BodyDef(); _local7.type = b2Body.b2_dynamicBody; _local7.position = _arg1; var _local8:b2Body = m_world.CreateBody(_local7); _local8.CreateFixture(_local6); _local8.SetUserData(_local4); return (_local8); } private function createJoint(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:Number, _arg5:Number):b2Joint{ var _local6:b2RevoluteJointDef = new b2RevoluteJointDef(); _local6.enableLimit = true; _local6.lowerAngle = (_arg4 / (180 / Math.PI)); _local6.upperAngle = (_arg5 / (180 / Math.PI)); _local6.Initialize(_arg1, _arg2, _arg3); return (m_world.CreateJoint(_local6)); } override public function update(_arg1:Number):void{ var _local3:b2Fixture; var _local4:String; var _local5:b2Body; var _local6:OpenWound; super.update(_arg1); if (m_contactFixtures.length != 0){ for each (_local3 in m_contactFixtures) { for each (_local4 in ALL_PATHS) { _local5 = getBodyByName(_local4); if (((_local5) && ((_local5 == _local3.GetBody())))){ onDestruct(_local5, _local4); break; }; }; }; m_contactFixtures.length = 0; }; if (getBodyByName(TORSO)){ for each (_local6 in m_openWounds) { _local6.update(_arg1); }; }; var _local2:b2Body = getBodyByName(HEAD); if (((_local2) && ((_local2.GetPosition().y > (480 / Constant.PHYS_SCALE))))){ if (!m_isKilled){ m_isKilled = true; PlayState.getInstance().onHumanKill(this, 300); }; }; } public function setLinearVelocity(_arg1:b2Vec2):void{ var _local2:String; for each (_local2 in ALL_PATHS) { getBodyByName(_local2).SetLinearVelocity(_arg1); }; } public function getAllPaths():Array{ return (m_allPaths); } override public function isItYourFixture(_arg1:b2Fixture):Boolean{ if (_arg1 == null){ return (false); }; return (!((m_allPaths.indexOf(_arg1.GetBody()) == -1))); } private function setHeavy():void{ var _local1:String; var _local2:b2Body; var _local3:b2Vec2; var _local4:b2MassData; for each (_local1 in ALL_PATHS) { _local2 = getBodyByName(_local1); _local3 = _local2.GetPosition(); if (_local2){ _local4 = new b2MassData(); _local2.GetMassData(_local4); _local4.mass = (_local4.mass * 20); _local2.SetMassData(_local4); _local2.GetFixtureList().SetRestitution(0.1); }; }; } public function onDestruct(_arg1:b2Body, _arg2:String):void{ var _local4:MovieClip; var _local5:int; var _local6:b2Body; var _local7:MovieClip; var _local8:MovieClip; var _local9:MovieClip; if (m_destroyedPaths.indexOf(_arg2) != -1){ PlayState.getInstance().createBlood(_arg1.GetPosition(), (Constant.BLOOD_FOUNTAIN_COUNT * 4), ((-(Math.PI) / 2) + MathUtils.RandomRange((-(Math.PI) / 2), (Math.PI / 2))), Constant.BLOOD_FOUNTAIN_SCATTER, (Constant.BLOOD_SPEED * MathUtils.RandomRange(0.5, 1.5)), true); m_nameBodyPath[_arg2] = null; _local4 = (_arg1.GetUserData() as MovieClip); m_world.DestroyBody(_arg1); PlayState.getInstance().addMapObject(new ConcealingClip(_local4), PlayState.getInstance().m_dynamicLayer); SoundManager.play(MathUtils.anyOfString(SoundConst.BODY_DIE_1, SoundConst.BODY_DIE_2)); return; }; m_destroyedPaths.push(_arg2); var _local3:MovieClip = (_arg1.GetUserData() as MovieClip); _local3.gotoAndStop(MathUtils.anyOfNumber(2, 3)); PlayState.getInstance().createBlood(_arg1.GetPosition(), Constant.BLOOD_FOUNTAIN_COUNT, ((-(Math.PI) / 2) + MathUtils.RandomRange((-(Math.PI) / 2), (Math.PI / 2))), MathUtils.GradToRad(170), (Constant.BLOOD_SPEED * MathUtils.RandomRange(0.5, 1.5)), true); if (Math.random() < 0.2){ switch (_arg2){ case LEFT_UPPER_HAND: if (m_leftHandJoint){ m_world.DestroyJoint(m_leftHandJoint); m_leftHandJoint = null; m_openWounds.push(new OpenWound(m_leftHandWound)); }; break; case LEFT_UPPER_LEG: if (m_leftLegJoint){ m_world.DestroyJoint(m_leftLegJoint); m_leftLegJoint = null; m_openWounds.push(new OpenWound(m_leftLegWound)); }; break; case RIGHT_UPPER_HAND: if (m_rightHandJoint){ m_world.DestroyJoint(m_rightHandJoint); m_rightHandJoint = null; m_openWounds.push(new OpenWound(m_rightHandWound)); }; break; case RIGHT_UPPER_LEG: if (m_rightLegJoint){ m_world.DestroyJoint(m_rightLegJoint); m_rightLegJoint = null; m_openWounds.push(new OpenWound(m_rightLegWound)); }; break; case HEAD: if (m_headJoint){ m_world.DestroyJoint(m_headJoint); m_headJoint = null; m_openWounds.push(new OpenWound(m_headWound)); }; break; }; }; if (!m_isKilled){ if (!isWoman()){ SoundManager.play(MathUtils.anyOfString(SoundConst.MAN_CRY_1, SoundConst.MAN_CRY_2, SoundConst.MAN_CRY_3, SoundConst.MAN_CRY_4)); } else { SoundManager.play(MathUtils.anyOfString(SoundConst.WOMAN_CRY_1, SoundConst.WOMAN_CRY_2, SoundConst.WOMAN_CRY_3, SoundConst.WOMAN_CRY_4)); }; _local5 = 0; switch (_arg2){ case HEAD: _local5 = 1000; break; case TORSO: _local5 = 500; break; case LEFT_UPPER_HAND: case RIGHT_UPPER_HAND: _local5 = 200; break; case LEFT_UPPER_LEG: case RIGHT_UPPER_LEG: _local5 = 300; break; }; _local6 = getBodyByName(HEAD); if (_local6){ _local7 = (_local6.GetUserData() as MovieClip); _local8 = (_local7.getChildByName("m_leftEye") as MovieClip); if (_local8){ _local8.gotoAndStop(2); }; _local9 = (_local7.getChildByName("m_rightEye") as MovieClip); if (_local9){ _local9.gotoAndStop(2); }; }; m_isKilled = true; PlayState.getInstance().onHumanKill(this, _local5); setHeavy(); }; } public function onContact(_arg1:b2Fixture, _arg2:b2Vec2):void{ m_contactFixtures.push(_arg1); } override public function testDestruct(_arg1:Exploisonable):void{ var _local4:String; var _local5:b2Body; var _local6:b2Vec2; var _local2:Number = (_arg1.getDistance() * _arg1.getDistance()); var _local3:b2Vec2 = _arg1.body.GetPosition(); for each (_local4 in ALL_PATHS) { _local5 = getBodyByName(_local4); if (_local5){ _local6 = _local5.GetPosition(); if (_local6.SubstractedCopy(_local3).LengthSquared() < _local2){ onDestruct(_local5, _local4); }; }; }; } } }//package Ragdoll
Section 123
//AddPointsEffect (States.PlayState.AddPointsEffect) package States.PlayState { import Box2D.Dynamics.*; import flash.text.*; public class AddPointsEffect extends MapObject { public var m_label:TextField; private var m_startX:Number; public function AddPointsEffect(_arg1:int, _arg2:int, _arg3:Number, _arg4:Number, _arg5=""){ m_label.text = (("+" + _arg1.toString()) + _arg5); this.x = _arg3; this.y = _arg4; m_startX = _arg3; } override public function update(_arg1:Number):void{ var _local3:Number; var _local4:Number; m_liveTime = (m_liveTime + _arg1); y = (y - (_arg1 * 65)); x = (m_startX + (Math.sin((m_liveTime * 4)) * (10 + (m_liveTime * 4)))); var _local2:Number = 0.5; _local3 = 1.6; if ((((m_liveTime > _local2)) && ((m_liveTime < _local3)))){ alpha = (1 - ((m_liveTime - _local2) / (_local3 - _local2))); _local4 = (1 + ((0.4 * (m_liveTime - _local2)) / (_local3 - _local2))); scaleX = _local4; scaleY = _local4; }; } override public function isDead():Boolean{ return ((m_liveTime > 1.7)); } override public function onDead(_arg1:b2World):void{ parent.removeChild(this); } } }//package States.PlayState
Section 124
//Bird (States.PlayState.Bird) package States.PlayState { import Utils.*; public class Bird extends MapObject { private var m_speed:Number; private var m_ySpeed:Number; private var m_x:int;// = 0 private var m_iSpeed:Number; public function Bird(){ m_speed = -((50 + (Math.random() * 15))); m_ySpeed = MathUtils.RandomRange(-2, 2); gotoAndPlay(MathUtils.RandomRangeInt(1, this.totalFrames)); } override public function update(_arg1:Number):void{ x = (x + (m_speed * _arg1)); y = (y + (m_ySpeed * _arg1)); if (x < -20){ x = (Constant.WINDOW_WIDTH + MathUtils.RandomRange(20, Constant.WINDOW_WIDTH)); y = MathUtils.RandomRange(50, 250); m_speed = -((50 + (Math.random() * 15))); m_ySpeed = MathUtils.RandomRange(-2, 2); }; } override public function onPause():void{ stop(); } override public function onResume():void{ play(); } } }//package States.PlayState
Section 125
//BloodPoint (States.PlayState.BloodPoint) package States.PlayState { import Box2D.Dynamics.*; import Utils.*; import flash.display.*; import flash.geom.*; import flash.utils.*; public class BloodPoint extends MapObject { private const m_acc:Point; private var m_speed:Point; private var m_isBlob:Boolean; public function BloodPoint(_arg1:Point, _arg2:Boolean){ var base:String; var types_count:int; var particle:MovieClip; var speed = _arg1; var is_blob = _arg2; m_acc = new Point(0, 300); super(); scaleX = MathUtils.RandomRange((1 - Constant.BLOOD_SIZE_DEVIATION), (1 + Constant.BLOOD_SIZE_DEVIATION)); scaleY = MathUtils.RandomRange((1 - Constant.BLOOD_SIZE_DEVIATION), (1 + Constant.BLOOD_SIZE_DEVIATION)); m_isBlob = is_blob; cacheAsBitmap = true; m_speed = speed; try { if (is_blob){ types_count = 1; base = "BloodBlob"; } else { types_count = 1; rotation = MathUtils.RandomRange(0, 360); base = "BloodPoint"; }; particle = (new ((getDefinitionByName((base + MathUtils.RandomRangeInt(0, (types_count - 1)))) as Class)) as MovieClip); addChild(particle); } catch(e:Error) { trace(e); }; } override public function update(_arg1:Number):void{ m_liveTime = (m_liveTime + _arg1); x = (x + (m_speed.x * _arg1)); y = (y + (m_speed.y * _arg1)); m_speed.x = (m_speed.x + (m_acc.x * _arg1)); m_speed.y = (m_speed.y + (m_acc.y * _arg1)); if (m_liveTime > Constant.BLOOD_LIVE_TIME){ alpha = (alpha - (Constant.BLOOD_ALPHA_SPEED * _arg1)); }; if (m_isBlob){ rotation = new Vector3(m_speed.x, m_speed.y, 0).get2DRotation(); }; } override public function isDead():Boolean{ return ((alpha <= 0)); } override public function onDead(_arg1:b2World):void{ parent.removeChild(this); } } }//package States.PlayState
Section 126
//Bomb (States.PlayState.Bomb) package States.PlayState { import Box2D.Dynamics.Joints.*; import flash.display.*; public class Bomb extends Exploisonable { public var vertex0:MovieClip; public var vertex1:MovieClip; public var vertex2:MovieClip; public var vertex3:MovieClip; public var vertex4:MovieClip; public var vertex5:MovieClip; private var m_wall:DestroyableWall; public var m_trajectory:MovieClip; public var m_redCrossClip:MovieClip; public var m_greenCrossClip:MovieClip; public var m_bombClip:MovieClip; public var m_bombCounter:MovieClip; private var m_id:int; protected var m_joint:b2Joint; public function Bomb(){ buttonMode = true; m_redCrossClip.mouseChildren = false; m_redCrossClip.mouseEnabled = false; m_greenCrossClip.mouseChildren = false; m_greenCrossClip.mouseEnabled = false; m_bombCounter.stop(); } public function blink():void{ m_bombCounter.gotoAndPlay(11); } public function setCounter(_arg1:int):void{ m_bombCounter.gotoAndStop((_arg1 + 1)); } public function isFalling():Boolean{ return (false); } public function setId(_arg1:int):void{ m_id = _arg1; } public function getId():int{ return (m_id); } public function goRemoveState():void{ m_redCrossClip.visible = true; m_greenCrossClip.visible = false; m_bombClip.visible = false; m_bombCounter.visible = false; if (m_trajectory){ m_trajectory.visible = false; }; } public function goSetState():void{ m_redCrossClip.visible = false; m_greenCrossClip.visible = true; m_bombClip.visible = true; m_bombCounter.visible = true; if (m_trajectory){ m_trajectory.visible = true; }; } public function goMoveState():void{ m_redCrossClip.visible = false; m_greenCrossClip.visible = false; m_bombClip.visible = true; m_bombCounter.visible = true; if (m_trajectory){ m_trajectory.visible = false; }; } public function goHideState():void{ m_redCrossClip.visible = false; m_greenCrossClip.visible = false; m_bombClip.visible = false; m_bombCounter.visible = false; if (m_trajectory){ m_trajectory.visible = false; }; } public function goOnWallState():void{ m_redCrossClip.visible = false; m_greenCrossClip.visible = false; m_bombClip.visible = true; m_bombCounter.visible = false; if (m_trajectory){ m_trajectory.visible = true; }; } public function setWall(_arg1:DestroyableWall, _arg2:b2Joint):void{ if (m_joint){ PlayState.getInstance().getWorld().DestroyJoint(m_joint); }; m_wall = _arg1; m_joint = _arg2; } public function getWall():DestroyableWall{ return (m_wall); } } }//package States.PlayState
Section 127
//Bomb1 (States.PlayState.Bomb1) package States.PlayState { import Utils.*; public class Bomb1 extends Bomb { override public function getBoomAnim():Smoke{ return (new LittleBoom()); } override public function getImpulse():Number{ return (0.5); } override public function getDistance():Number{ return ((Constant.DESTRUCTION_DISTANCE / 5)); } override public function detonate():void{ super.detonate(); SoundManager.play(SoundConst.BOOM_1); } } }//package States.PlayState
Section 128
//Bomb2 (States.PlayState.Bomb2) package States.PlayState { public class Bomb2 extends Bomb { override public function getImpulse():Number{ return (5); } override public function getDistance():Number{ return ((Constant.DESTRUCTION_DISTANCE * 1.35)); } override public function detonate():void{ super.detonate(); SoundManager.play(SoundConst.BOOM_2); } } }//package States.PlayState
Section 129
//Bomb3 (States.PlayState.Bomb3) package States.PlayState { public class Bomb3 extends Bomb { override public function getImpulse():Number{ return (10); } override public function getDistance():Number{ return ((Constant.DESTRUCTION_DISTANCE * 1.6)); } override public function detonate():void{ super.detonate(); SoundManager.play(SoundConst.BOOM_3); } } }//package States.PlayState
Section 130
//Bomb4 (States.PlayState.Bomb4) package States.PlayState { import Utils.*; public class Bomb4 extends Bomb { override public function getBoomAnim():Smoke{ return (new BigBoom()); } override public function getImpulse():Number{ return (15); } override public function getDistance():Number{ return ((Constant.DESTRUCTION_DISTANCE * 1.5)); } override public function detonate():void{ super.detonate(); SoundManager.play(SoundConst.BOOM_4); } } }//package States.PlayState
Section 131
//Bomb5 (States.PlayState.Bomb5) package States.PlayState { public class Bomb5 extends FallingBomb { override public function getImpulse():Number{ return (6); } override public function detonate():void{ if (!m_joint){ SoundManager.play(SoundConst.BOOM_2); }; super.detonate(); } } }//package States.PlayState
Section 132
//Bomb6 (States.PlayState.Bomb6) package States.PlayState { public class Bomb6 extends FallingBomb { override public function getImpulse():Number{ return (15); } override public function getDistance():Number{ return ((Constant.DESTRUCTION_DISTANCE * 1.4)); } override public function detonate():void{ if (!m_joint){ SoundManager.play(SoundConst.BOOM_4); }; super.detonate(); } } }//package States.PlayState
Section 133
//BombDetonator (States.PlayState.BombDetonator) package States.PlayState { import Box2D.Dynamics.*; public class BombDetonator extends MapObject { private var m_delay:Number; private var m_bomb:Exploisonable; public function BombDetonator(_arg1:Exploisonable, _arg2:Number){ m_delay = _arg2; m_bomb = _arg1; } override public function update(_arg1:Number):void{ if ((m_delay = (m_delay - _arg1)) <= 0){ m_bomb.detonate(); kill(); }; } override public function onDead(_arg1:b2World):void{ m_bomb = null; } } }//package States.PlayState
Section 134
//BombsPanel (States.PlayState.BombsPanel) package States.PlayState { import flash.events.*; import Utils.*; import flash.display.*; public class BombsPanel extends MapObject { public var m_bomb1:SimpleButton; public var m_bomb2:SimpleButton; public var m_bomb3:SimpleButton; public var m_bomb4:SimpleButton; public var m_bomb5:SimpleButton; public var m_bomb6:SimpleButton; public var m_bomb1Counter:MovieClip; public var m_bomb2Counter:MovieClip; public var m_bomb3Counter:MovieClip; public var m_bomb4Counter:MovieClip; public var m_bomb5Counter:MovieClip; public var m_bomb6Counter:MovieClip; public var m_allCounters:Array; public var m_bombIcon:MovieClip; public function BombsPanel(){ m_allCounters = ["m_bomb1Counter", "m_bomb2Counter", "m_bomb3Counter", "m_bomb4Counter", "m_bomb5Counter", "m_bomb6Counter"]; super(); addEventListener(MouseEvent.MOUSE_OVER, handleMouseOver); addEventListener(MouseEvent.MOUSE_OUT, handleMouseOut); addEventListener(MouseEvent.CLICK, handleMouseClick); addEventListener(Event.REMOVED_FROM_STAGE, onRemoveFromStage); stop(); } public function setBombIcon(_arg1:int):void{ m_bombIcon.gotoAndStop(_arg1); } public function recalcBombCount(_arg1:Array):void{ var _local2:int; while (_local2 < m_allCounters.length) { (CommonUtils.findChildByName(this, m_allCounters[_local2]) as MovieClip).gotoAndStop((_arg1[_local2] + 1)); _local2++; }; } public function setAviableBombs(_arg1:Array):void{ var _local2:int; while (_local2 < _arg1.length) { if (_arg1[_local2] == 0){ CommonUtils.findChildByName(this, ("m_bomb" + (_local2 + 1))).visible = false; (CommonUtils.findChildByName(this, m_allCounters[_local2]) as MovieClip).visible = false; }; _local2++; }; } public function handleMouseOver(_arg1:MouseEvent):void{ if (PlayState.getInstance().isStateSetBombs()){ if (currentFrame == 1){ play(); }; }; } public function handleMouseOut(_arg1:MouseEvent):void{ } public function handleMouseClick(_arg1:MouseEvent):void{ if ((_arg1.target is DisplayObject)){ switch ((_arg1.target as DisplayObject).name){ case "m_bomb1": PlayState.getInstance().createBombInHand(1); m_bombIcon.gotoAndStop(1); gotoAndStop(1); break; case "m_bomb2": PlayState.getInstance().createBombInHand(2); m_bombIcon.gotoAndStop(2); gotoAndStop(1); break; case "m_bomb3": PlayState.getInstance().createBombInHand(3); m_bombIcon.gotoAndStop(3); gotoAndStop(1); break; case "m_bomb4": PlayState.getInstance().createBombInHand(4); m_bombIcon.gotoAndStop(4); gotoAndStop(1); break; case "m_bomb5": PlayState.getInstance().createBombInHand(5); m_bombIcon.gotoAndStop(5); gotoAndStop(1); break; case "m_bomb6": PlayState.getInstance().createBombInHand(6); m_bombIcon.gotoAndStop(6); gotoAndStop(1); break; }; }; } override public function update(_arg1:Number):void{ if (currentFrame == totalFrames){ stop(); }; if (PlayState.getInstance()){ if (((!((currentFrame == 1))) || (!(PlayState.getInstance().isStateSetBombs())))){ if ((((stage.mouseY < 335)) || ((stage.mouseX > 174)))){ gotoAndStop(1); }; }; }; } private function onRemoveFromStage(_arg1:Event):void{ removeEventListener(MouseEvent.MOUSE_OVER, handleMouseOver); removeEventListener(MouseEvent.MOUSE_OUT, handleMouseOut); removeEventListener(MouseEvent.CLICK, handleMouseClick); removeEventListener(Event.REMOVED_FROM_STAGE, onRemoveFromStage); } } }//package States.PlayState
Section 135
//BrickParticle (States.PlayState.BrickParticle) package States.PlayState { import Box2D.Dynamics.*; import Utils.*; import flash.display.*; import flash.geom.*; import flash.utils.*; public class BrickParticle extends MapObject { private const m_acc:Point; private var m_speed:Point; private var m_angularSpeed:Number; public function BrickParticle(_arg1:Point){ var base:String; var types_count:int; var particle:MovieClip; var speed = _arg1; m_acc = new Point(0, 300); m_angularSpeed = MathUtils.RandomRange(-360, 360); super(); var sz:Number = MathUtils.RandomRange(0.9, 1.1); scaleX = sz; scaleY = sz; cacheAsBitmap = true; m_speed = speed; try { particle = (new ((getDefinitionByName(("SingleBrick" + CommonUtils.AnyOf([0, 1]))) as Class)) as MovieClip); addChild(particle); } catch(e:Error) { trace(e); }; } override public function update(_arg1:Number):void{ m_liveTime = (m_liveTime + _arg1); x = (x + (m_speed.x * _arg1)); y = (y + (m_speed.y * _arg1)); m_speed.x = (m_speed.x + (m_acc.x * _arg1)); m_speed.y = (m_speed.y + (m_acc.y * _arg1)); rotation = (rotation + (m_angularSpeed * _arg1)); if (m_liveTime > 1.2){ alpha = (alpha - (Constant.BLOOD_ALPHA_SPEED * _arg1)); }; } override public function isDead():Boolean{ return ((alpha <= 0)); } override public function onDead(_arg1:b2World):void{ parent.removeChild(this); } } }//package States.PlayState
Section 136
//BrickWall (States.PlayState.BrickWall) package States.PlayState { public class BrickWall extends DestroyableWall { } }//package States.PlayState
Section 137
//Car (States.PlayState.Car) package States.PlayState { import flash.geom.*; import flash.display.*; import Utils.*; import Box2D.Common.Math.*; public class Car extends DestroyableBackground { override public function testDestruct(_arg1:Exploisonable):void{ var _local2:Number; var _local3:int; var _local4:DisplayObject; var _local5:Point; var _local6:*; var _local7:GlassPartice; if (!m_isDestroyed){ _local2 = (Constant.MAX_BOOM_DISTANCE * 1.3); if (_arg1.getPhysPos().SubstractedCopy(new b2Vec2((x / Constant.PHYS_SCALE), (y / Constant.PHYS_SCALE))).LengthSquared() < (_local2 * _local2)){ _local3 = 0; while (_local3 < numChildren) { _local4 = getChildAt(_local3); if ((_local4 is VertexMarker)){ _local5 = _local4.localToGlobal(new Point()); _local6 = 0; while (_local6 < 3) { _local7 = new GlassPartice(new Point(MathUtils.RandomRange(-150, 150), MathUtils.RandomRange(-150, 0))); _local7.x = _local5.x; _local7.y = _local5.y; PlayState.getInstance().addMapObject(_local7, PlayState.getInstance().m_dynamicLayer); _local6++; }; }; _local3++; }; gotoAndStop(2); m_isDestroyed = true; }; }; } } }//package States.PlayState
Section 138
//Cloud (States.PlayState.Cloud) package States.PlayState { public class Cloud extends MapObject { private var m_speed:Number; private var m_x:int;// = 0 public function Cloud(){ mouseEnabled = false; mouseChildren = false; this.cacheAsBitmap = true; m_speed = Math.round((15 + (Math.random() * 15))); m_speed = (m_speed * (width / 80)); scaleX = 1.001; } override public function update(_arg1:Number):void{ x = (x + (m_speed * _arg1)); if ((x - width) > 640){ x = -(width); m_speed = (15 + (Math.random() * 15)); m_speed = (m_speed * (width / 80)); }; } } }//package States.PlayState
Section 139
//ConcealingClip (States.PlayState.ConcealingClip) package States.PlayState { import Box2D.Dynamics.*; import flash.display.*; public class ConcealingClip extends MapObject { public function ConcealingClip(_arg1:MovieClip){ addChild(_arg1); } override public function update(_arg1:Number):void{ alpha = (alpha - (3 * _arg1)); if (alpha <= 0){ alpha = 0; kill(); }; } override public function onDead(_arg1:b2World):void{ parent.removeChild(this); } override public function onPause():void{ } override public function onResume():void{ } } }//package States.PlayState
Section 140
//DangerBarrel (States.PlayState.DangerBarrel) package States.PlayState { import Box2D.Dynamics.*; import Utils.*; import flash.display.*; public class DangerBarrel extends Exploisonable { public var vertex0:MovieClip; public var vertex1:MovieClip; public var vertex2:MovieClip; public var vertex3:MovieClip; override public function testDestruct(_arg1:Exploisonable):void{ var _local2:Number; if (!m_isDead){ _local2 = _arg1.getDistance(); if (_arg1.getPhysPos().SubstractedCopy(body.GetPosition()).LengthSquared() < (_local2 * _local2)){ PlayState.getInstance().addMapObject(new BombDetonator(this, 0), null); }; }; } override public function getImpulse():Number{ return (13); } override public function onDead(_arg1:b2World):void{ _arg1.DestroyBody(m_body); parent.removeChild(this); } override public function getBoomAnim():Smoke{ return (new BigBoom()); } override public function getDistance():Number{ return ((Constant.DESTRUCTION_DISTANCE * 2)); } } }//package States.PlayState
Section 141
//DestroyableBackground (States.PlayState.DestroyableBackground) package States.PlayState { import Box2D.Common.Math.*; public class DestroyableBackground extends MapObject { protected var m_isDestroyed:Boolean;// = false public function DestroyableBackground(){ stop(); } override public function testDestruct(_arg1:Exploisonable):void{ var _local2:Number; if (!m_isDestroyed){ _local2 = (Constant.MAX_BOOM_DISTANCE * 1.6); if (_arg1.getPhysPos().SubstractedCopy(new b2Vec2((x / Constant.PHYS_SCALE), (y / Constant.PHYS_SCALE))).LengthSquared() < (_local2 * _local2)){ gotoAndStop(2); m_isDestroyed = true; }; }; } } }//package States.PlayState
Section 142
//DestroyableWall (States.PlayState.DestroyableWall) package States.PlayState { import Box2D.Dynamics.*; public class DestroyableWall extends Wall { private var m_power:int;// = 1 public function killNow(_arg1:b2World):void{ kill(); if (m_body){ _arg1.DestroyBody(m_body); }; } public function getPower():int{ return (m_power); } public function setPower(_arg1:int):void{ m_power = _arg1; } override public function onDead(_arg1:b2World):void{ if (m_body){ _arg1.DestroyBody(m_body); }; parent.removeChild(this); } } }//package States.PlayState
Section 143
//DevidableWall (States.PlayState.DevidableWall) package States.PlayState { public class DevidableWall extends DestroyableWall { private var m_clipName:String; public function setClipName(_arg1:String):void{ m_clipName = _arg1; } public function getClipName():String{ return (m_clipName); } override public function update(_arg1:Number):void{ super.update(_arg1); if (y > 500){ kill(); }; } } }//package States.PlayState
Section 144
//Exploisonable (States.PlayState.Exploisonable) package States.PlayState { import Box2D.Dynamics.*; import Utils.*; public class Exploisonable extends MapObject { public function getDistance():Number{ return (Constant.DESTRUCTION_DISTANCE); } public function getImpulse():Number{ return (0.3); } public function detonate():void{ PlayState.getInstance().boom(this); } override public function onDead(_arg1:b2World):void{ _arg1.DestroyBody(m_body); parent.removeChild(this); } public function getBoomAnim():Smoke{ var _local1:Smoke; switch (MathUtils.RandomRangeInt(0, 2)){ case 0: _local1 = new Boom1(); break; case 1: _local1 = new Boom2(); break; case 2: _local1 = new Boom3(); break; }; _local1.rotation = MathUtils.RandomRange(0, 360); return (_local1); } } }//package States.PlayState
Section 145
//FallingBomb (States.PlayState.FallingBomb) package States.PlayState { import Box2D.Dynamics.*; import Utils.*; public class FallingBomb extends Bomb { public function FallingBomb(){ m_trajectory.mouseEnabled = false; m_trajectory.mouseChildren = false; } override public function getBoomAnim():Smoke{ return (new FountainBoom()); } override public function onDead(_arg1:b2World):void{ _arg1.DestroyBody(m_body); parent.removeChild(this); } override public function isFalling():Boolean{ return (true); } override public function isItYourFixture(_arg1:b2Fixture):Boolean{ return ((body.GetFixtureList() == _arg1)); } override public function detonate():void{ if (m_joint){ SoundManager.play(SoundConst.BOMB_FALL); m_trajectory.visible = false; PlayState.getInstance().getWorld().DestroyJoint(m_joint); m_joint = null; body.GetFixtureList().SetSensor(false); } else { PlayState.getInstance().boom(this); }; } } }//package States.PlayState
Section 146
//Fixtures (States.PlayState.Fixtures) package States.PlayState { import Box2D.Dynamics.*; public class Fixtures { public static var STANDART_FIXTURE:b2FixtureDef = new b2FixtureDef(); public static var HUMAN_FIXTURE:b2FixtureDef = new b2FixtureDef(); public static var HUMAN_HEAD_FIXTURE:b2FixtureDef = new b2FixtureDef(); public static var BOMB_FIXTURE:b2FixtureDef = new b2FixtureDef(); public static var LETTERS_FIXTURE:b2FixtureDef = new b2FixtureDef(); public static var STEEL_BLOCK_FIXTURE:b2FixtureDef = new b2FixtureDef(); public static var CONCRETE_BLOCK_FIXTURE:b2FixtureDef = new b2FixtureDef(); public static var BRICK_BLOCK_FIXTURE:b2FixtureDef = new b2FixtureDef(); public static var BARREL_FIXTURE:b2FixtureDef = new b2FixtureDef(); private static var m_isInited:Boolean = false; public static function init():void{ BARREL_FIXTURE.density = 1; BARREL_FIXTURE.friction = 0.4; BARREL_FIXTURE.restitution = 0.25; STANDART_FIXTURE.density = 1; STANDART_FIXTURE.friction = 0.4; STANDART_FIXTURE.restitution = 0.25; HUMAN_FIXTURE.density = 1.2; HUMAN_FIXTURE.friction = 1; HUMAN_FIXTURE.restitution = 0.2; HUMAN_HEAD_FIXTURE.density = 1.2; HUMAN_HEAD_FIXTURE.friction = 1; HUMAN_HEAD_FIXTURE.restitution = 0.7; BOMB_FIXTURE.density = 0.01; BOMB_FIXTURE.friction = 0; BOMB_FIXTURE.restitution = 0; LETTERS_FIXTURE.density = 0.2; LETTERS_FIXTURE.friction = 0.8; LETTERS_FIXTURE.restitution = 0.1; STEEL_BLOCK_FIXTURE.density = 2; STEEL_BLOCK_FIXTURE.friction = 0.3; STEEL_BLOCK_FIXTURE.restitution = 0.1; CONCRETE_BLOCK_FIXTURE.density = 1.3; CONCRETE_BLOCK_FIXTURE.friction = 0.3; CONCRETE_BLOCK_FIXTURE.restitution = 0.1; BRICK_BLOCK_FIXTURE.density = 1.3; BRICK_BLOCK_FIXTURE.friction = 0.3; BRICK_BLOCK_FIXTURE.restitution = 0.1; m_isInited = true; } public static function inited():Boolean{ return (m_isInited); } } }//package States.PlayState
Section 147
//GlassPartice (States.PlayState.GlassPartice) package States.PlayState { import flash.geom.*; import Box2D.Dynamics.*; import flash.display.*; import Utils.*; public class GlassPartice extends MapObject { private const m_acc:Point; private var m_speed:Point; private var m_angularSpeed:Number; public function GlassPartice(_arg1:Point){ m_acc = new Point(0, 300); m_angularSpeed = MathUtils.RandomRange(-360, 360); super(); var _local2:Number = MathUtils.RandomRange(0.9, 1.1); scaleX = _local2; scaleY = _local2; cacheAsBitmap = true; m_speed = _arg1; var _local3:MovieClip = new GlassParticleClip(); addChild(_local3); } override public function update(_arg1:Number):void{ m_liveTime = (m_liveTime + _arg1); x = (x + (m_speed.x * _arg1)); y = (y + (m_speed.y * _arg1)); m_speed.x = (m_speed.x + (m_acc.x * _arg1)); m_speed.y = (m_speed.y + (m_acc.y * _arg1)); rotation = (rotation + (m_angularSpeed * _arg1)); if (m_liveTime > 1){ alpha = (alpha - ((Constant.BLOOD_ALPHA_SPEED * _arg1) * 1.5)); }; } override public function isDead():Boolean{ return ((alpha <= 0)); } override public function onDead(_arg1:b2World):void{ parent.removeChild(this); } } }//package States.PlayState
Section 148
//HumanTemplate (States.PlayState.HumanTemplate) package States.PlayState { import flash.display.*; public class HumanTemplate extends MovieClip { public var m_head:MovieClip; public var m_leftHand:MovieClip; public var m_rightHand:MovieClip; public var m_torso:MovieClip; public var m_leftLeg:MovieClip; public var m_rightLeg:MovieClip; public var m_headToTorso:VertexMarker; public var m_leftHandToTorso:VertexMarker; public var m_rightHandToTorso:VertexMarker; public var m_leftLegToTorso:VertexMarker; public var m_rightLegToTorso:VertexMarker; } }//package States.PlayState
Section 149
//InteractiveBomj (States.PlayState.InteractiveBomj) package States.PlayState { import Box2D.Common.Math.*; import flash.display.*; public class InteractiveBomj extends DestroyableBackground { private var m_anim:MovieClip; public function InteractiveBomj(){ m_anim = new BomjMarker(); super(); addChild(m_anim); } override public function testDestruct(_arg1:Exploisonable):void{ var _local2:Number; if (!m_isDestroyed){ _local2 = Math.max((_arg1.getDistance() * 15), Constant.MAX_BOOM_DISTANCE); if (_arg1.getPhysPos().SubstractedCopy(new b2Vec2((x / Constant.PHYS_SCALE), (y / Constant.PHYS_SCALE))).LengthSquared() < (_local2 * _local2)){ removeChild(m_anim); m_anim = new BomjSurprise(); addChild(m_anim); m_isDestroyed = true; }; }; } override public function onPause():void{ m_anim.stop(); } override public function onResume():void{ m_anim.play(); } } }//package States.PlayState
Section 150
//MapObject (States.PlayState.MapObject) package States.PlayState { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import flash.display.*; public class MapObject extends MovieClip { protected var m_body:b2Body;// = null protected var m_liveTime:Number;// = 0 protected var m_isDead:Boolean;// = false public function goTop(_arg1:Sprite, _arg2:Sprite, _arg3:Sprite, _arg4:Sprite, _arg5:Sprite):void{ } public function get body():b2Body{ return (m_body); } public function set body(_arg1:b2Body):void{ m_body = _arg1; } public function onClick():void{ } public function isItYourFixture(_arg1:b2Fixture):Boolean{ if (!_arg1){ return (false); }; return ((_arg1.GetBody() == m_body)); } public function update(_arg1:Number):void{ } public function connectWithBody(_arg1:b2Body):void{ this.body = _arg1; m_body.SetUserData(this); } public function isDead():Boolean{ return (m_isDead); } public function onDead(_arg1:b2World):void{ } public function onExplosion():void{ } public function kill():void{ m_isDead = true; } final public function getPhysPos():b2Vec2{ return (new b2Vec2((x / Constant.PHYS_SCALE), (y / Constant.PHYS_SCALE))); } public function testDestruct(_arg1:Exploisonable):void{ } public function onPause():void{ } public function onResume():void{ } } }//package States.PlayState
Section 151
//OpenWound (States.PlayState.OpenWound) package States.PlayState { import Box2D.Common.Math.*; import Utils.*; import flash.display.*; import flash.geom.*; public class OpenWound extends MapObject { var m_dir:MovieClip; var m_power:Number;// = 40 var m_counter:int; public function OpenWound(_arg1:MovieClip){ m_dir = _arg1; } override public function update(_arg1:Number):void{ var _local2:Point = m_dir.localToGlobal(new Point()); var _local3:* = MathUtils.GradToRad(m_dir.rotation); m_counter++; if (m_power > 0){ m_power = (m_power - Constant.BLOOD_WOUND_DIE_SPEED); PlayState.getInstance().createBlood(new b2Vec2((_local2.x / Constant.PHYS_SCALE), (_local2.y / Constant.PHYS_SCALE)), 1, _local3, MathUtils.GradToRad(Constant.BLOOD_WOUND_ANGLE_DEVIATION), m_power, false); }; } } }//package States.PlayState
Section 152
//PlayState (States.PlayState.PlayState) package States.PlayState { import flash.events.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; import Utils.*; import flash.display.*; import Main.*; import flash.geom.*; import caurina.transitions.*; import Ragdoll.*; import flash.utils.*; import States.*; import flash.ui.*; import flash.filters.*; public class PlayState extends PhysGameState { private const STATE_SET_BOMBS:int = 2; private const STATE_BOOM:int = 3; private var m_tmpScores:int;// = 0 private var m_turtorialFrames:Array; private var m_guiLayer:Sprite; private var m_layersContainer:Sprite; private var m_skyLayer:Sprite; private var m_backgroundLayer:Sprite; private var m_cloudsLayer:Sprite; private var m_staticLayer:Sprite; public var m_dynamicLayer:Sprite; private var m_frontLayer:Sprite; private var m_bombInHand:Bomb; private var m_state:int;// = 2 private var m_killsLeft:int; private var m_totalKillsNeed:int; private var m_contactListener:b2ContactListener; private var m_nextState:GameState;// = null private var m_nextStateTimer:Timer; private var m_ragdolls:Array; private var m_bombs:Array; private var m_bombsCounts:Array; private var m_bombsLeftForCup:Array; private var m_bombsOnField:int;// = 0 private var m_wasCup:Boolean;// = false private var m_boomCounter:int;// = 0 public static var m_currentScores:int = 0; public static var m_curLevel:int = 0; public static var m_bombsUsed:int = 0; public static var m_deadID:int; public static var m_bombsLeft:int; private static var m_instance:PlayState = null; public function PlayState(_arg1:int){ m_turtorialFrames = new Array(); m_guiLayer = new Sprite(); m_layersContainer = new Sprite(); m_skyLayer = new Sprite(); m_backgroundLayer = new Sprite(); m_cloudsLayer = new Sprite(); m_staticLayer = new Sprite(); m_dynamicLayer = new Sprite(); m_frontLayer = new Sprite(); m_contactListener = new MyContactListener(); m_nextStateTimer = new Timer(2500, 1); m_ragdolls = new Array(); m_bombs = new Array(); m_bombsCounts = [0, 0, 0, 0, 0, 0]; m_bombsLeftForCup = [0, 1, 1, 1, 0, 2, 2, 0, 1, 1, 2, 1, 2, 0, 0, 2, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0]; super(); m_curLevel = _arg1; m_instance = this; } public function isStateSetBombs():Boolean{ return ((m_state == STATE_SET_BOMBS)); } private function setState(_arg1:int):void{ m_state = _arg1; } override public function handleKeyDown(_arg1:KeyboardEvent):void{ super.handleKeyDown(_arg1); if (((Constant.m_debugMode) && ((_arg1.keyCode == Keyboard.DOWN)))){ m_debugSprite.visible = !(m_debugSprite.visible); }; if (_arg1.keyCode == 32){ onBoomClick(null); }; if (_arg1.keyCode == 82){ onRestartClick(null); }; if (((Constant.m_debugMode) && ((_arg1.keyCode == Keyboard.LEFT)))){ CurrentStateManager.getInstance().pushState(new WinState(true)); }; if (((Constant.m_debugMode) && ((_arg1.keyCode == Keyboard.RIGHT)))){ CurrentStateManager.getInstance().pushState(new LoseState()); }; } public function onBeginContact(_arg1:b2Contact):void{ var _local5:HumanRagdoll; var _local6:Bomb; var _local7:Boolean; var _local8:Boolean; var _local2:b2Fixture = _arg1.GetFixtureA(); var _local3:b2Fixture = _arg1.GetFixtureB(); var _local4:b2Vec2 = new b2Vec2(); _local4.Add(_local2.GetBody().GetLinearVelocity()); _local4.Add(_local3.GetBody().GetLinearVelocity()); if (_local4.LengthSquared() < (Constant.MIN_DAMAGE_SPEED * Constant.MIN_DAMAGE_SPEED)){ return; }; for each (_local5 in m_ragdolls) { _local7 = _local5.isItYourFixture(_local2); _local8 = _local5.isItYourFixture(_local3); if (((_local7) && (!(_local8)))){ _local5.onContact(_local2, _local4); } else { if (((_local8) && (!(_local7)))){ _local5.onContact(_local3, _local4); }; }; }; for each (_local6 in m_bombs) { if (((!(_local6.isDead())) && (_local6.isFalling()))){ if (_local6.isItYourFixture(_local2)){ if ((_local3.GetBody().GetUserData() is BrickWall)){ _local6.setWall((_local3.GetBody().GetUserData() as BrickWall), null); }; m_mapObjects.push(new BombDetonator(_local6, 0)); } else { if (_local6.isItYourFixture(_local3)){ if ((_local2.GetBody().GetUserData() is BrickWall)){ _local6.setWall((_local2.GetBody().GetUserData() as BrickWall), null); }; m_mapObjects.push(new BombDetonator(_local6, 0)); }; }; }; }; } private function onMenuClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); CurrentStateManager.getInstance().coolChangeState(GameData.getSelectLevelScreen()); } private function onMoreGamesClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.MAIN_PAGE_URL); } private function onWalkthroughClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.WALKROUTGH_URL); } override public function getViewClip():MovieClip{ return (m_view); } override public function onCleanup():void{ m_view.m_buttonMenu.removeEventListener(MouseEvent.CLICK, onMenuClick); m_view.m_buttonRestart.removeEventListener(MouseEvent.CLICK, onRestartClick); m_view.m_buttonBoom.removeEventListener(MouseEvent.CLICK, onBoomClick); m_view.m_buttonMoreGames.removeEventListener(MouseEvent.CLICK, onMoreGamesClick); m_view.m_buttonWalkthrough.removeEventListener(MouseEvent.CLICK, onWalkthroughClick); m_nextStateTimer.stop(); m_nextStateTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, onNextStateTimer); m_nextStateTimer = null; m_turtorialFrames = null; m_guiLayer = null; m_layersContainer = null; m_skyLayer = null; m_backgroundLayer = null; m_cloudsLayer = null; m_staticLayer = null; m_dynamicLayer = null; m_frontLayer = null; m_bombInHand = null; m_contactListener = null; m_nextState = null; m_ragdolls = null; m_bombs = null; m_bombsCounts = null; m_bombsLeftForCup = null; m_instance = null; super.onCleanup(); } override public function onInit():void{ m_instance = this; if ((int((m_curLevel / 2)) % 2) == 0){ SoundManager.playLoop(SoundConst.HAPPY_SONG_1); } else { SoundManager.playLoop(SoundConst.HAPPY_SONG_2); }; if (Constant.m_debugMode){ m_mouseDragEnabled = true; }; super.onInit(); m_view = new PlayStateView(); m_view.m_timer.visible = false; m_view.m_timer.stop(); if (!Constant.m_debugMode){ m_view.m_fps.visible = false; }; m_view.m_buttonMenu.addEventListener(MouseEvent.CLICK, onMenuClick); m_view.m_buttonRestart.addEventListener(MouseEvent.CLICK, onRestartClick); m_view.m_buttonBoom.addEventListener(MouseEvent.CLICK, onBoomClick); m_view.m_buttonMoreGames.addEventListener(MouseEvent.CLICK, onMoreGamesClick); m_view.m_buttonWalkthrough.addEventListener(MouseEvent.CLICK, onWalkthroughClick); m_nextStateTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onNextStateTimer); m_currentScores = 0; m_bombsUsed = 0; addChild(m_layersContainer); m_layersContainer.addChild(m_skyLayer); m_layersContainer.addChild(m_cloudsLayer); m_layersContainer.addChild(m_backgroundLayer); m_layersContainer.addChild(m_staticLayer); m_layersContainer.addChild(m_dynamicLayer); m_layersContainer.addChild(m_frontLayer); addChild(m_debugSprite); addChild(m_guiLayer); m_world.SetContactListener(m_contactListener); if (m_curLevel < 10){ parseLevel(new ((getDefinitionByName(("Level0" + m_curLevel)) as Class))); } else { parseLevel(new ((getDefinitionByName(("Level" + m_curLevel)) as Class))); }; recalcGui(); m_guiLayer.addChild(m_view); if (Constant.m_debugMode){ super.initDebugDraw(); }; m_mapObjects.push(m_view.m_bombsPanel); m_view.m_bombsPanel.recalcBombCount(m_bombsCounts); if (((!(GameData.isAlreadyPlayed(m_curLevel))) && (GameData.isHintsOn()))){ switch (m_curLevel){ case 0: m_turtorialFrames.push({clip:new TurtorialBoom(), position:new Point(600, 465)}); m_turtorialFrames.push({clip:new Turtorial2(), position:new Point(313, 383)}); m_turtorialFrames.push({clip:new Turtorial1(), position:new Point(273, 298)}); m_turtorialFrames.push({clip:new Turtorial0(), position:new Point(313, 240)}); break; case 2: m_turtorialFrames.push({clip:new TurtorialCup(), position:new Point(45, 470)}); break; case 3: m_turtorialFrames.push({clip:new Turtorial4(), position:new Point(45, 470)}); break; case 5: m_turtorialFrames.push({clip:new Turtorial5(), position:new Point(225, 334)}); break; }; }; GameData.onStartLevel(m_curLevel); m_view.m_lockedBomb.visible = false; m_view.m_lockedBoomButton.visible = false; if (m_curLevel == 0){ CommonUtils.findChildByName(m_layersContainer, "m_firstStep").visible = false; CommonUtils.findChildByName(m_layersContainer, "m_secondStep").visible = false; if (((((GameData.isHintsOn()) && (GameData.isAlreadyPlayed(0)))) && ((m_turtorialFrames.length == 0)))){ CommonUtils.findChildByName(m_layersContainer, "m_firstStep").visible = true; }; }; var _local1:int; while (_local1 < 100) { update(Constant.TIME_STEP); _local1++; }; checkTurtorialFrames(); setFirstWeapon(); m_view.m_bombsPanel.setAviableBombs(m_bombsCounts); m_bombsLeft = totalBombsCount(); } private function setFirstWeapon():void{ var _local1:int; while (_local1 < m_bombsCounts.length) { if (m_bombsCounts[_local1] != 0){ createBombInHand((_local1 + 1)); m_view.m_bombsPanel.setBombIcon((_local1 + 1)); return; }; _local1++; }; m_bombsCounts = [8, 8, 8, 8, 8, 8]; setFirstWeapon(); } private function parseLevel(_arg1:MovieClip):void{ var _local3:DisplayObject; var _local2:int = (_arg1.numChildren - 1); while (_local2 >= 0) { _local3 = _arg1.getChildAt(_local2); if ((_local3 is StaticShape)){ createStaticShapeFromClip((_local3 as Sprite), m_staticLayer); } else { if ((_local3 is Cloud)){ createCloud(_local3); } else { if ((_local3 is Bird)){ createBird(_local3); } else { if ((_local3 is DevidableWall)){ createDevidableWall(_local3); } else { if ((_local3 is BrickWall)){ createBrickWall(_local3); } else { if ((_local3 is SteelCircle)){ createUnDestroyableCircle(_local3); } else { if ((_local3 is UndestroyableWall)){ createUnDestroyableWall(_local3); } else { if ((_local3 is BrickWall)){ createBrickWall(_local3); } else { if ((_local3 is Pers0Marker)){ createHuman(_local3, 0); } else { if ((_local3 is Pers1Marker)){ createHuman(_local3, 1); } else { if ((_local3 is Pers2Marker)){ createHuman(_local3, 2); } else { if ((_local3 is Pers3Marker)){ createHuman(_local3, 3); } else { if ((_local3 is Pers4Marker)){ createHuman(_local3, 4); } else { if ((_local3 is Pers5Marker)){ createHuman(_local3, 5); } else { if ((_local3 is Pers6Marker)){ createHuman(_local3, 6); } else { if ((_local3 is DangerBarrel)){ createDangerBarrel(_local3); } else { if ((_local3 is DestroyableBackground)){ addMapObject((_local3 as DestroyableBackground), m_backgroundLayer); } else { if ((_local3 is SkyLayerObject)){ m_skyLayer.addChildAt(_local3, 0); } else { if ((_local3 is Bomb1)){ var _local4 = m_bombsCounts; var _local5:int; var _local6 = (_local4[_local5] + 1); _local4[_local5] = _local6; } else { if ((_local3 is Bomb2)){ _local4 = m_bombsCounts; _local5 = 1; _local6 = (_local4[_local5] + 1); _local4[_local5] = _local6; } else { if ((_local3 is Bomb3)){ _local4 = m_bombsCounts; _local5 = 2; _local6 = (_local4[_local5] + 1); _local4[_local5] = _local6; } else { if ((_local3 is Bomb4)){ _local4 = m_bombsCounts; _local5 = 3; _local6 = (_local4[_local5] + 1); _local4[_local5] = _local6; } else { if ((_local3 is Bomb5)){ _local4 = m_bombsCounts; _local5 = 4; _local6 = (_local4[_local5] + 1); _local4[_local5] = _local6; } else { if ((_local3 is Bomb6)){ _local4 = m_bombsCounts; _local5 = 5; _local6 = (_local4[_local5] + 1); _local4[_local5] = _local6; } else { if ((((_local3 is Bomj)) || ((_local3 is BomjMarker)))){ createBomj(_local3); } else { if ((_local3 is Sun)){ createSun((_local3 as Sun)); } else { m_backgroundLayer.addChildAt(_local3, 0); }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; _local2--; }; } private function createSun(_arg1:Sun):void{ addMapObject(_arg1, m_backgroundLayer); } private function createBomj(_arg1:DisplayObject):void{ var _local2:InteractiveBomj = new InteractiveBomj(); _local2.x = _arg1.x; _local2.y = _arg1.y; addMapObject(_local2, m_staticLayer); } private function createBombAt(_arg1:Bomb, _arg2:b2Body):void{ var _local3:b2Body; var _local5 = m_bombsCounts; var _local6 = (_arg1.getId() - 1); var _local7 = (_local5[_local6] - 1); _local5[_local6] = _local7; m_view.m_bombsPanel.recalcBombCount(m_bombsCounts); _arg1.goOnWallState(); if (_arg1.isFalling()){ _local3 = createDynamicShapeFromClip(_arg1, m_frontLayer, Fixtures.BOMB_FIXTURE); } else { _local3 = createKinematicShapeFromClip(_arg1, m_frontLayer, Fixtures.BOMB_FIXTURE); }; _arg1.connectWithBody(_local3); _local3.ApplyTorque(MathUtils.RandomRange(-0.003, 0.003)); m_mapObjects.push(_arg1); m_frontLayer.addChild(_arg1); var _local4:b2RevoluteJointDef = new b2RevoluteJointDef(); _local4.enableLimit = true; _local3.GetFixtureList().SetSensor(true); if (!_arg1.isFalling()){ _local4.lowerAngle = (-5 / (180 / Math.PI)); _local4.upperAngle = (5 / (180 / Math.PI)); _local4.Initialize(_arg2, _local3, _local3.GetPosition()); _arg1.setWall((_arg2.GetUserData() as DestroyableWall), m_world.CreateJoint(_local4)); } else { _local4.lowerAngle = 0; _local4.upperAngle = 0; _local4.Initialize(_arg2, _local3, _local3.GetPosition()); _arg1.setWall(null, m_world.CreateJoint(_local4)); }; m_bombs.push(_arg1); if ((((m_curLevel == 0)) && (GameData.isHintsOn()))){ CommonUtils.findChildByName(m_layersContainer, "m_firstStep").visible = false; CommonUtils.findChildByName(m_layersContainer, "m_secondStep").visible = true; }; } private function createDevidableWall(_arg1:DisplayObject):void{ var _local2:b2Body; if ((_arg1 as MovieClip).getChildByName("vertex0") == null){ _local2 = createDynamicBoxFromClip(_arg1, m_dynamicLayer, Fixtures.CONCRETE_BLOCK_FIXTURE); } else { _local2 = createDynamicShapeFromClip((_arg1 as Sprite), m_dynamicLayer, Fixtures.CONCRETE_BLOCK_FIXTURE); }; var _local3:DevidableWall = (_arg1 as DevidableWall); _local3.connectWithBody(_local2); _local3.setClipName(getQualifiedClassName(_arg1)); _local3.filters = getGlow(); m_mapObjects.push(_local3); } private function createDangerBarrel(_arg1:DisplayObject):void{ var _local2:b2Body = createDynamicShapeFromClip((_arg1 as Sprite), m_dynamicLayer, Fixtures.BARREL_FIXTURE); var _local3:DangerBarrel = (_arg1 as DangerBarrel); _local3.connectWithBody(_local2); m_mapObjects.push(_local3); } private function createUnDestroyableWall(_arg1:DisplayObject):void{ var _local2:b2Body = createDynamicBoxFromClip(_arg1, m_dynamicLayer, Fixtures.STEEL_BLOCK_FIXTURE); var _local3:UndestroyableWall = (_arg1 as UndestroyableWall); _local3.connectWithBody(_local2); m_mapObjects.push(_local3); } private function createUnDestroyableCircle(_arg1:DisplayObject):void{ var _local2:b2Body = createDynamicCircleFromClip(_arg1, m_dynamicLayer, Fixtures.STEEL_BLOCK_FIXTURE); var _local3:UndestroyableWall = (_arg1 as UndestroyableWall); _local3.connectWithBody(_local2); m_mapObjects.push(_local3); } private function createBrickWall(_arg1:DisplayObject):void{ var _local2:b2Body = createDynamicBoxFromClip(_arg1, m_dynamicLayer, Fixtures.STEEL_BLOCK_FIXTURE); var _local3:BrickWall = (_arg1 as BrickWall); _local3.connectWithBody(_local2); _local3.filters = getGlow(); m_mapObjects.push(_local3); } private function onRestartClick(_arg1:MouseEvent):void{ m_nextStateTimer.stop(); SoundManager.play(SoundConst.CLICK); CurrentStateManager.getInstance().coolChangeState(GameData.getNextState(PlayState.m_curLevel)); GameData.onRestart(); } private function onBoomClick(_arg1:MouseEvent):void{ var _local2:MapObject; var _local3:Number; var _local4:MapObject; var _local5:Bomb; if (m_bombs.length == 0){ return; }; if ((((m_curLevel == 0)) && (GameData.isHintsOn()))){ CommonUtils.findChildByName(m_layersContainer, "m_firstStep").visible = false; CommonUtils.findChildByName(m_layersContainer, "m_secondStep").visible = false; }; if (m_bombInHand){ m_bombInHand.goHideState(); }; for each (_local2 in m_mapObjects) { if ((((_local2 is Bomb)) && (!(_local2.isDead())))){ m_bombsOnField++; }; }; m_view.m_lockedBomb.visible = true; m_view.m_lockedBomb.alpha = 0; Tweener.addTween(m_view.m_lockedBomb, {alpha:1, time:0.5, transition:"linear"}); m_view.m_lockedBoomButton.visible = true; m_view.m_lockedBoomButton.alpha = 0; Tweener.addTween(m_view.m_lockedBoomButton, {alpha:1, time:0.5, transition:"linear"}); m_liveTime = 0; _local3 = 0.8; if (m_state == STATE_SET_BOMBS){ for each (_local5 in m_bombs) { if (!_local5.isDead()){ m_mapObjects.push(new BombDetonator(_local5, _local3)); _local3 = (_local3 + 0.25); }; }; m_state = STATE_BOOM; }; } private function recalcGui():void{ var _local1:String = m_currentScores.toString(); switch (m_tmpScores.toString().length){ case 4: _local1 = ("0" + m_tmpScores.toString()); break; case 3: _local1 = ("00" + m_tmpScores.toString()); break; case 2: _local1 = ("000" + m_tmpScores.toString()); break; case 1: _local1 = ("0000" + m_tmpScores.toString()); break; }; m_view.m_score.text = ("SCORE: " + _local1); m_view.m_level.text = ("LEVEL: " + (m_curLevel + 1).toString()); m_view.m_killsLeft.text = ("KILLS LEFT: " + m_killsLeft); } override public function handleMouseUp(_arg1:MouseEvent):void{ super.handleMouseUp(_arg1); } public function findBombFixtureAt(_arg1:b2Vec2):b2Fixture{ var fixture_to_return:b2Fixture; var QueryPointCallback:Function; var pos = _arg1; QueryPointCallback = function (_arg1:b2Fixture):Boolean{ var _local2:b2Shape = _arg1.GetShape(); var _local3:Boolean = _local2.TestPoint(_arg1.GetBody().GetTransform(), pos); if (((((_local3) && (_arg1.GetBody()))) && ((_arg1.GetBody().GetUserData() is Bomb)))){ fixture_to_return = _arg1; return (false); }; return (true); }; m_world.QueryPoint(QueryPointCallback, pos); return (fixture_to_return); } override public function handleMouseMove(_arg1:MouseEvent):void{ var _local2:b2Fixture; var _local3:b2Fixture; super.handleMouseMove(_arg1); if (!m_bombInHand){ return; }; switch (m_state){ case STATE_SET_BOMBS: _local2 = getFixtureAt(new b2Vec2((_arg1.stageX / m_physScale), (_arg1.stageY / m_physScale))); _local3 = findBombFixtureAt(new b2Vec2((_arg1.stageX / m_physScale), (_arg1.stageY / m_physScale))); if (hitTestGui(_arg1.stageX, _arg1.stageY)){ m_bombInHand.goHideState(); } else { if (!m_bombInHand.isFalling()){ m_bombInHand.x = _arg1.stageX; m_bombInHand.y = (_arg1.stageY - 7); if (_local3){ m_bombInHand.goRemoveState(); } else { if (((((_local2) && (_local2.GetBody()))) && ((_local2.GetBody().GetUserData() is DestroyableWall)))){ m_bombInHand.goSetState(); } else { m_bombInHand.goMoveState(); }; }; } else { m_bombInHand.x = _arg1.stageX; if (_local3){ m_bombInHand.y = _arg1.stageY; m_bombInHand.goRemoveState(); } else { m_bombInHand.y = 50; m_bombInHand.goSetState(); }; }; }; break; }; } private function showAwesome(_arg1:Number, _arg2:Number):void{ var clip:MovieClip; var x = _arg1; var y = _arg2; addScores(2000); clip = new Awesome(); clip.x = x; clip.y = y; addChild(clip); var complete_func:* = function ():void{ if (clip.parent){ removeChild(clip); }; }; Tweener.addTween(clip, {y:(clip.y - 50), time:1, transition:"easeInOutBack"}); Tweener.addTween(clip, {alpha:0, delay:0.5, time:1, transition:"easeInQuint", onComplete:complete_func}); } private function showPoints(_arg1:Number, _arg2:Number, _arg3:int):void{ var clip:MovieClip; var x = _arg1; var y = _arg2; var points = _arg3; clip = new PointsClip(); clip.m_label.text = ("+" + points); clip.x = x; clip.y = y; addChild(clip); var complete_func:* = function ():void{ if (clip.parent){ removeChild(clip); }; }; Tweener.addTween(clip, {y:(clip.y - 70), time:MathUtils.RandomRange(1, 1.2), transition:"easeInCubic"}); Tweener.addTween(clip, {x:(clip.x + MathUtils.RandomRange(-30, 30)), time:1, transition:"easeInOutBack"}); Tweener.addTween(clip, {alpha:0, delay:0.5, time:0.5, transition:"linear", onComplete:complete_func}); } public function onHumanKill(_arg1:HumanRagdoll, _arg2:int):void{ showPoints((_arg1.getBodyByName(HumanRagdoll.HEAD).GetPosition().x * m_physScale), (_arg1.getBodyByName(HumanRagdoll.HEAD).GetPosition().y * m_physScale), _arg2); addScores(_arg2); if (--m_killsLeft == 0){ win(); }; } private function totalBombsCount():int{ var _local2:int; var _local1:int; for each (_local2 in m_bombsCounts) { _local1 = (_local1 + _local2); }; return (_local1); } override public function handleMouseDown(_arg1:MouseEvent):void{ var _local2:b2Fixture; var _local3:b2Fixture; var _local4:Bomb; var _local5:int; super.handleMouseDown(_arg1); if (!m_bombInHand){ return; }; switch (m_state){ case STATE_SET_BOMBS: if (hitTestGui(_arg1.stageX, _arg1.stageY)){ break; }; _local2 = findBombFixtureAt(new b2Vec2((_arg1.stageX / m_physScale), (_arg1.stageY / m_physScale))); _local3 = getFixtureAt(new b2Vec2((_arg1.stageX / m_physScale), (_arg1.stageY / m_physScale))); if (_local2){ _local4 = (_local2.GetBody().GetUserData() as Bomb); _local4.kill(); var _local6 = m_bombsCounts; var _local7 = (_local4.getId() - 1); var _local8 = (_local6[_local7] + 1); _local6[_local7] = _local8; m_view.m_bombsPanel.recalcBombCount(m_bombsCounts); m_bombInHand.setCounter(m_bombsCounts[(m_bombInHand.getId() - 1)]); m_bombInHand.goHideState(); if ((((m_curLevel == 0)) && (GameData.isHintsOn()))){ CommonUtils.findChildByName(m_layersContainer, "m_firstStep").visible = true; CommonUtils.findChildByName(m_layersContainer, "m_secondStep").visible = false; }; } else { if (m_bombsCounts[(m_bombInHand.getId() - 1)] == 0){ m_bombInHand.blink(); SoundManager.play(SoundConst.NO_BOMBS); break; }; _local5 = m_bombInHand.getId(); if (!m_bombInHand.isFalling()){ if (((((_local3) && (_local3.GetBody()))) && ((((_local3.GetBody().GetUserData() is DestroyableWall)) || ((_local3.GetBody().GetUserData() is BrickWall)))))){ createBombAt(m_bombInHand, _local3.GetBody()); if ((((m_bombsCounts[(m_bombInHand.getId() - 1)] == 0)) && (!((totalBombsCount() == 0))))){ m_bombInHand = null; setFirstWeapon(); } else { m_bombInHand = null; createBombInHand(_local5); }; m_bombInHand.goRemoveState(); }; } else { if (!hitTestGui(_arg1.stageX, _arg1.stageY)){ createBombAt(m_bombInHand, m_world.GetGroundBody()); if ((((m_bombsCounts[(m_bombInHand.getId() - 1)] == 0)) && (!((totalBombsCount() == 0))))){ m_bombInHand = null; setFirstWeapon(); } else { m_bombInHand = null; createBombInHand(_local5); }; m_bombInHand.goRemoveState(); }; }; }; break; }; } private function hitTestGui(_arg1:Number, _arg2:Number):Boolean{ if (m_view.m_bombsPanel.hitTestPoint(_arg1, _arg2)){ return (true); }; if (m_view.m_topPanel.hitTestPoint(_arg1, _arg2, true)){ return (true); }; if (m_view.m_bottomPanel.hitTestPoint(_arg1, _arg2, true)){ return (true); }; if (m_view.m_buttonBoom.hitTestPoint(_arg1, _arg2)){ return (true); }; return (false); } private function createNewBombFromID(_arg1:int):Bomb{ switch (_arg1){ case 1: return (new Bomb1()); case 2: return (new Bomb2()); case 3: return (new Bomb3()); case 4: return (new Bomb4()); case 5: return (new Bomb5()); case 6: return (new Bomb6()); }; return (null); } public function createBombInHand(_arg1:int):void{ if (((m_bombInHand) && (m_bombInHand.parent))){ m_frontLayer.removeChild(m_bombInHand); }; m_bombInHand = createNewBombFromID(_arg1); m_bombInHand.setId(_arg1); if (_arg1 > 4){ m_bombInHand.x = stage.mouseX; m_bombInHand.y = 50; m_bombInHand.goSetState(); }; m_frontLayer.addChild(m_bombInHand); m_bombInHand.setCounter(m_bombsCounts[(_arg1 - 1)]); } private function updateBombs():void{ var _local2:Bomb; var _local1:Array = new Array(); for each (_local2 in m_bombs) { if (!_local2.isDead()){ _local1.push(_local2); }; }; m_bombs = _local1; } override public function update(_arg1:Number):void{ super.update(_arg1); updateBombs(); updateScores(); recalcGui(); checkLose(); if (Constant.m_debugMode){ m_view.m_fps.text = CurrentStateManager.getInstance().getFPS().toString(); }; } private function updateScores():void{ if (m_tmpScores < m_currentScores){ m_tmpScores = (m_tmpScores + 31); if (m_tmpScores > m_currentScores){ m_tmpScores = m_currentScores; }; }; } private function addScores(_arg1:int):void{ m_currentScores = (m_currentScores + _arg1); } private function lose():void{ if (m_nextState == null){ GameData.onLoseLevel(m_curLevel); m_nextStateTimer.delay = 10; m_nextState = new LoseState(); m_nextStateTimer.start(); Tweener.addTween(m_view.m_timer, {alpha:0, time:0.3, transition:"linear"}); }; } private function checkLose():void{ var _local1:Bomb; var _local2:b2Body; if (m_state != STATE_BOOM){ return; }; if ((((m_state == STATE_BOOM)) && ((m_liveTime > 8)))){ lose(); return; }; for each (_local1 in m_bombs) { if (!_local1.isDead()){ return; }; }; _local2 = m_world.GetBodyList(); while (_local2) { if (((_local2.IsAwake()) && ((_local2.GetType() == b2Body.b2_dynamicBody)))){ return; }; _local2 = _local2.GetNext(); }; if (m_killsLeft == 0){ return; }; lose(); } public function win():void{ if (m_nextState == null){ m_bombsLeft = totalBombsCount(); if (totalBombsCount() >= m_bombsLeftForCup[m_curLevel]){ m_wasCup = true; }; GameData.onWinLevel(m_curLevel, m_currentScores, m_wasCup, m_totalKillsNeed); m_nextState = new WinState(m_wasCup); m_nextStateTimer.start(); Tweener.addTween(m_view.m_timer, {alpha:0, time:0.3, transition:"linear"}); }; } private function onNextStateTimer(_arg1:TimerEvent):void{ m_tmpScores = m_currentScores; recalcGui(); CurrentStateManager.getInstance().pushState(m_nextState); } private function checkTurtorialFrames():void{ var _local1:Object; if (m_turtorialFrames.length != 0){ _local1 = m_turtorialFrames.pop(); CurrentStateManager.getInstance().pushState(new TurtorialState(_local1.clip, _local1.position)); }; } public function resetTurtorialFrames():void{ m_turtorialFrames.length = 0; } public function addPointsAt(_arg1:b2Vec2, _arg2:int):void{ addScores(_arg2); var _local3:AddPointsEffect = new AddPointsEffect(_arg2, 1, (_arg1.x * m_physScale), (_arg1.y * m_physScale)); addMapObject(_local3, this); } public function createCloud(_arg1:DisplayObject):void{ addMapObject((_arg1 as Cloud), m_cloudsLayer); } public function createBird(_arg1:DisplayObject):void{ addMapObject((_arg1 as Bird), m_cloudsLayer); } public function createHuman(_arg1:DisplayObject, _arg2:int):void{ var ragdoll:HumanRagdoll; var clip = _arg1; var pers_id = _arg2; m_totalKillsNeed++; m_killsLeft++; try { ragdoll = new HumanRagdoll(new b2Vec2((clip.x / m_physScale), (clip.y / m_physScale)), m_world, pers_id); } catch(e:Error) { trace(e); }; addMapObject(ragdoll, m_dynamicLayer); m_ragdolls.push(ragdoll); } public function createBlood(_arg1:b2Vec2, _arg2:int, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Boolean):void{ var _local7:int; var _local8:*; var _local9:Number; var _local10:BloodPoint; if (GameData.m_isBloodDisabled){ return; }; while (_local7 < _arg2) { _local8 = (_arg3 + MathUtils.RandomRange(-(_arg4), _arg4)); _local9 = (_arg5 * MathUtils.RandomRange(0.8, 1.2)); _local10 = new BloodPoint(new Point((Math.cos(_local8) * _local9), (Math.sin(_local8) * _local9)), _arg6); _local10.x = (_arg1.x * m_physScale); _local10.y = (_arg1.y * m_physScale); addMapObject(_local10, m_dynamicLayer); _local7++; }; } public function boom(_arg1:Exploisonable):void{ var _local3:MapObject; var _local7:Array; var _local8:int; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:Number; if (_arg1.isDead()){ return; }; m_boomCounter++; if (m_boomCounter == m_bombsOnField){ m_view.m_timer.visible = true; m_view.m_timer.alpha = 0; m_view.m_timer.play(); Tweener.addTween(m_view.m_timer, {alpha:1, time:0.3, transition:"linear"}); }; m_liveTime = 0; m_bombsUsed++; if ((_arg1 is Bomb)){ if (((((_arg1 as Bomb).getId() == 6)) || (((_arg1 as Bomb).getId() == 4)))){ m_mapObjects.push(new Shaker(m_layersContainer)); }; if (_arg1){ destroyBlock((_arg1 as Bomb)); }; }; if ((_arg1 is DangerBarrel)){ m_mapObjects.push(new Shaker(m_layersContainer)); }; var _local2:int = m_killsLeft; for each (_local3 in m_mapObjects) { if (_local3 != _arg1){ _local3.testDestruct(_arg1); }; }; if ((_local2 - m_killsLeft) > 1){ showAwesome(_arg1.x, _arg1.y); }; var _local4:b2Body = _arg1.body; var _local5:b2SimplexCache = new b2SimplexCache(); var _local6:b2Body = m_world.GetBodyList(); while (_local6) { if ((((_local4 == _local6)) || ((_local6.GetUserData() is Bomb)))){ } else { if (((_local6.GetFixtureList()) && ((_local6.GetFixtureList().GetShape() is b2PolygonShape)))){ _local7 = (_local6.GetFixtureList().GetShape() as b2PolygonShape).GetVertices(); _local8 = 0; while (_local8 < _local7.length) { _local9 = _local7[_local8]; _local10 = _local4.GetPosition(); _local11 = new b2Vec2((_local6.GetPosition().x + _local9.x), (_local6.GetPosition().y + _local9.y)); _local12 = _local11.SubstractedCopy(_local10); _local13 = _local12.Length(); if (_local13 > Constant.MAX_BOOM_DISTANCE){ } else { if (_local13 < Constant.MIN_BOOM_DISTANCE){ _local13 = Constant.MIN_BOOM_DISTANCE; }; _local12.Multiply(((_arg1.getImpulse() / _local7.length) / (_local13 * _local13))); _local6.ApplyImpulse(_local12, _local11); }; _local8++; }; } else { if (((_local6.GetFixtureList()) && ((_local6.GetFixtureList().GetShape() is b2CircleShape)))){ _local10 = _local4.GetPosition(); _local11 = _local6.GetPosition(); _local12 = _local11.SubstractedCopy(_local10); _local13 = _local12.Length(); if (_local13 > Constant.MAX_BOOM_DISTANCE){ } else { if (_local13 < Constant.MIN_BOOM_DISTANCE){ _local13 = Constant.MIN_BOOM_DISTANCE; }; _local12.Multiply((_arg1.getImpulse() / (_local13 * _local13))); _local6.ApplyImpulse(_local12, _local11); }; }; }; }; _local6 = _local6.GetNext(); }; addMapObjectAt(_arg1.getBoomAnim(), m_frontLayer, _arg1.x, _arg1.y); _arg1.kill(); } private function devideVertices(_arg1:Array, _arg2:b2Vec2, _arg3:Array):Array{ var _local8:int; var _local9:Array; var _local10:int; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:int; var _local14:Array; var _local4:Array = new Array(); var _local5:Array = new Array(); var _local6:int; while (_local6 < _arg1.length) { _local8 = MathUtils.RandomRangeInt(2, 5); _arg3.push((_local6 + _local8)); _local9 = new Array(); _local10 = 1; while (_local10 < (_local8 + 1)) { _local9.push((_local10 / (_local8 + 1))); _local10++; }; _local11 = _arg1[_local6]; _local12 = _arg1[((_local6 + 1) % _arg1.length)]; if ((((_local11.x - _local12.x) * (_local11.x - _local12.x)) + ((_local11.y - _local12.y) * (_local11.y - _local12.y))) > (((15 / m_physScale) * 15) / m_physScale)){ _local13 = 0; while (_local13 < _local8) { _local5.push(new b2Vec2((_local11.x + ((_local12.x - _local11.x) * _local9[_local13])), (_local11.y + ((_local12.y - _local11.y) * _local9[_local13])))); _local13++; }; }; _local5.push(_local12); _local6++; }; var _local7:int; while (_local7 < _local5.length) { _local14 = [_arg2, _local5[_local7], _local5[((_local7 + 1) % _local5.length)]]; _local4.push(_local14); _local7++; }; return (_local4); } public function destroyBlock(_arg1:Bomb):void{ var bomb = _arg1; var wall:DestroyableWall = bomb.getWall(); if (!wall){ return; }; if (wall.body.GetFixtureList() == null){ trace("zalupa"); return; }; if ((wall is DevidableWall)){ try { devideBlock((wall as DevidableWall), bomb); } catch(e:Error) { trace(e); }; }; if ((wall is BrickWall)){ ruinBlock((wall as BrickWall)); }; } private function ruinBlock(_arg1:BrickWall):void{ var _local4:DisplayObject; var _local5:Point; var _local6:BrickParticle; var _local2:DisplayObject = new MovieClip(); SoundManager.play(MathUtils.anyOfString(SoundConst.BRICKS_FALL_1, SoundConst.BRICKS_FALL_3)); var _local3:int; while (_local3 < _arg1.numChildren) { _local4 = _arg1.getChildAt(_local3); if ((_local4 is VertexMarker)){ _local5 = _local4.localToGlobal(new Point()); _local6 = new BrickParticle(new Point(MathUtils.RandomRange(-80, 80), MathUtils.RandomRange(-120, 50))); _local6.x = _local5.x; _local6.y = _local5.y; addMapObject(_local6, m_dynamicLayer); }; _local3++; }; _arg1.kill(); } private function applyVerticesRotation(_arg1:Array, _arg2:Number):Array{ var _local3:Array = new Array(); var _local4:int; while (_local4 < _arg1.length) { _local3.push(_arg1[_local4].rotatedCopy(_arg2)); _local4++; }; return (_local3); } private function devideBlock(_arg1:DevidableWall, _arg2:Bomb):void{ var _local8:*; var _local9:int; var _local10:b2BodyDef; var _local11:b2Body; var _local12:Shape; var _local13:Array; var _local14:DevidableWall; var _local15:MovieClip; var _local16:b2PolygonShape; var _local17:b2FixtureDef; var _local18:int; var _local19:Array; var _local20:b2PolygonShape; var _local21:b2FixtureDef; var _local3:Array = new Array(); var _local4:Array = devideVertices(applyVerticesRotation((_arg1.body.GetFixtureList().GetShape() as b2PolygonShape).GetVertices(), MathUtils.GradToRad(_arg1.rotation)), new b2Vec2((_arg2.body.GetPosition().x - _arg1.body.GetPosition().x), (_arg2.body.GetPosition().y - _arg1.body.GetPosition().y)), _local3); var _local5:Number = (_arg1.body.GetPosition().x * m_physScale); var _local6:Number = (_arg1.body.GetPosition().y * m_physScale); var _local7:int; while (_local7 < _local4.length) { _local8 = Math.min((_local4.length - _local7), MathUtils.RandomRangeInt(1, 4)); _local9 = (_local7 + _local8); if (_local3.indexOf(_local9) != -1){ _local8 = Math.min((_local4.length - _local7), MathUtils.RandomRangeInt(1, 4)); }; _local10 = new b2BodyDef(); _local10.position = _arg1.body.GetPosition(); _local10.type = b2Body.b2_dynamicBody; _local11 = m_world.CreateBody(_local10); _local12 = new Shape(); _local12.x = -(_arg1.x); _local12.y = -(_arg1.y); _local13 = tryMerge(_local4, _local7, _local8); _local14 = new DevidableWall(); if (_local13){ _local16 = new b2PolygonShape(); _local16.SetAsArray(_local13, _local13.length); _local17 = Fixtures.CONCRETE_BLOCK_FIXTURE; _local17.shape = _local16; _local11.CreateFixture(_local17); drawShape(_local12, _local13, _local5, _local6, MathUtils.GradToRad(_arg1.rotation)); } else { _local18 = 0; while (_local18 < _local8) { _local19 = _local4[(_local7 + _local18)]; _local20 = new b2PolygonShape(); _local20.SetAsArray(_local19, _local19.length); _local21 = Fixtures.CONCRETE_BLOCK_FIXTURE; _local21.shape = _local20; _local11.CreateFixture(_local21); drawShape(_local12, _local19, _local5, _local6, MathUtils.GradToRad(_arg1.rotation)); _local18++; }; _local14.setPower(_local8); }; _local15 = (new ((getDefinitionByName(_arg1.getClipName()) as Class)) as MovieClip); _local14.addChild(_local15); _local14.setClipName(_arg1.getClipName()); _local15.rotation = _arg1.rotation; _local15.mask = _local12; _local15.addChild(_local12); _local14.connectWithBody(_local11); _local14.x = (_local11.GetPosition().x * m_physScale); _local14.y = (_local11.GetPosition().y * m_physScale); _local14.rotation = MathUtils.RadToGrad(_local11.GetAngle()); addMapObject(_local14, m_dynamicLayer); _local15.filters = getGlow(); _local7 = (_local7 + _local8); }; _arg1.killNow(m_world); recalcBombsJoints(_arg1, _arg2); } private function drawShape(_arg1:Shape, _arg2:Array, _arg3:Number, _arg4:Number, _arg5:Number):void{ var _local7:b2Vec2; var _local8:b2Vec2; _arg1.graphics.beginFill(0, 1); var _local6:b2Vec2 = _arg2[0].rotatedCopy(_arg5); _arg1.graphics.moveTo(((_local6.x * m_physScale) + _arg3), ((_local6.y * m_physScale) + _arg4)); for each (_local7 in _arg2) { _local8 = _local7.rotatedCopy(_arg5); _arg1.graphics.lineTo(((_local8.x * m_physScale) + _arg3), ((_local8.y * m_physScale) + _arg4)); }; _arg1.graphics.lineTo(((_local6.x * m_physScale) + _arg3), ((_local6.y * m_physScale) + _arg4)); _arg1.graphics.endFill(); } private function tryMerge(_arg1:Array, _arg2:int, _arg3:int):Array{ var _local8:Array; var _local9:int; var _local4:Array = [_arg1[_arg2][0]]; var _local5:int; while (_local5 < _arg3) { _local4.push(_arg1[(_arg2 + _local5)][1]); _local5++; }; _local4.push(_arg1[((_arg2 + _arg3) - 1)][2]); var _local6:Array = new Array(); var _local7:int; while (_local7 < _local4.length) { _local6.push(false); _local7++; }; if (isConvex(_local4, _local6)){ _local8 = new Array(); _local9 = 0; while (_local9 < _local4.length) { if (!_local6[_local9]){ _local8.push(_local4[_local9]); }; _local9++; }; return (_local8); }; return (null); } private function isConvex(_arg1:Array, _arg2:Array):Boolean{ var _local4:b2Vec2; var _local5:b2Vec2; var _local6:b2Vec2; var _local7:Number; var _local3:int; while (_local3 < _arg1.length) { _local4 = _arg1[_local3]; _local5 = _arg1[((_local3 + 1) % _arg1.length)]; _local6 = _arg1[((_local3 + 2) % _arg1.length)]; _local7 = new Vector3((_local4.x - _local5.x), (_local4.y - _local5.y), 0).crossProduct(new Vector3((_local5.x - _local6.x), (_local5.y - _local6.y), 0)).z; if (_local7 < 0){ return (false); }; if (_local7 == 0){ _arg2[((_local3 + 1) % _arg1.length)] = true; }; _local3++; }; return (true); } private function recalcBombsJoints(_arg1:Wall, _arg2:Bomb):void{ var _local3:Bomb; var _local4:b2Body; var _local5:b2RevoluteJointDef; var _local6:b2Joint; for each (_local3 in m_bombs) { if (((((!((_local3 == _arg2))) && ((_local3.getWall() == _arg1)))) && (!(_local3.isFalling())))){ _local4 = getNotSensoredBodyAt(_local3.body.GetPosition()); if (_local4){ if ((((((_local4.GetUserData() is DevidableWall)) && (!((_local4.GetUserData() as DevidableWall).isDead())))) && (((_local4.GetUserData() as DevidableWall).getPower() == 1)))){ _local5 = new b2RevoluteJointDef(); _local5.enableLimit = true; _local5.lowerAngle = (-5 / (180 / Math.PI)); _local5.upperAngle = (5 / (180 / Math.PI)); _local5.Initialize(_local4, _local3.body, _local3.body.GetPosition()); _local6 = m_world.CreateJoint(_local5); _local3.setWall((_local4.GetUserData() as DestroyableWall), _local6); } else { trace("strange", _local4.GetUserData()); _local3.setWall(null, null); _local3.body.GetFixtureList().SetSensor(false); }; } else { trace("nothing find at"); }; }; }; } private function getGlow():Array{ return ([new GlowFilter(0, 1, 3, 3, 2)]); } public function getWorld():b2World{ return (m_world); } override public function onStop():void{ var _local1:MapObject; for each (_local1 in m_mapObjects) { _local1.onPause(); }; } override public function onResume():void{ var _local1:MapObject; for each (_local1 in m_mapObjects) { _local1.onResume(); }; checkTurtorialFrames(); if ((((((((m_curLevel == 0)) && ((m_turtorialFrames.length == 0)))) && ((CurrentStateManager.getInstance().getLastState() is TurtorialState)))) && (GameData.isHintsOn()))){ CommonUtils.findChildByName(m_layersContainer, "m_firstStep").visible = true; }; } public static function getInstance():PlayState{ return (m_instance); } } }//package States.PlayState import Box2D.Dynamics.*; import Box2D.Dynamics.Contacts.*; class MyContactListener extends b2ContactListener { private function MyContactListener(){ } override public function BeginContact(_arg1:b2Contact):void{ PlayState.getInstance().onBeginContact(_arg1); } }
Section 153
//Shaker (States.PlayState.Shaker) package States.PlayState { import Box2D.Dynamics.*; import Utils.*; import flash.display.*; public class Shaker extends MapObject { private var m_layer:DisplayObject; private var m_counter:int; public function Shaker(_arg1:DisplayObject):void{ m_layer = _arg1; } override public function update(_arg1:Number):void{ m_layer.x = MathUtils.RandomRangeInt(-4, 4); m_layer.y = MathUtils.RandomRangeInt(-4, 4); if (++m_counter == 11){ kill(); }; } override public function onDead(_arg1:b2World):void{ m_layer.x = 0; m_layer.y = 0; m_layer = null; } } }//package States.PlayState
Section 154
//SkyLayerObject (States.PlayState.SkyLayerObject) package States.PlayState { import flash.display.*; public class SkyLayerObject extends MovieClip { } }//package States.PlayState
Section 155
//StaticShape (States.PlayState.StaticShape) package States.PlayState { import flash.display.*; public class StaticShape extends MovieClip { } }//package States.PlayState
Section 156
//Sun (States.PlayState.Sun) package States.PlayState { import flash.display.*; public class Sun extends MapObject { private var m_isActivated:Boolean;// = false public var m_rays:MovieClip; public function Sun(){ addFrameScript(0, frame1); } override public function onPause():void{ m_rays.stop(); } override public function onResume():void{ m_rays.play(); } override public function testDestruct(_arg1:Exploisonable):void{ var _local2:Bomb; if (m_isActivated){ return; }; if ((_arg1 is Bomb)){ _local2 = (_arg1 as Bomb); if ((((_local2.getId() == 6)) || ((((_local2.getId() == 4)) && ((Math.random() < 0.4)))))){ m_isActivated = true; gotoAndStop(2); return; }; }; if (Math.random() < 0.04){ gotoAndStop(3); m_isActivated = true; }; } function frame1(){ stop(); } } }//package States.PlayState
Section 157
//UndestroyableWall (States.PlayState.UndestroyableWall) package States.PlayState { public class UndestroyableWall extends Wall { } }//package States.PlayState
Section 158
//Wall (States.PlayState.Wall) package States.PlayState { public class Wall extends MapObject { } }//package States.PlayState
Section 159
//AchievementsState (States.AchievementsState) package States { import flash.events.*; import flash.display.*; import Main.*; import States.PlayState.*; import flash.utils.*; public class AchievementsState extends PhysGameState { public var m_buttonMenu:MovieClip; public var CROWN:MovieClip; public var BRONSE_BOMB_WITH_WINGS:MovieClip; public var SILVER_BOMB_WITH_WINGS:MovieClip; public var GOLD_BOMB_WITH_WINGS:MovieClip; public var BRONSE_CUP:MovieClip; public var SILVER_CUP:MovieClip; public var GOLD_CUP:MovieClip; public var DYNAMITE:MovieClip; public var TNT:MovieClip; public var GOLD_GRENADE:MovieClip; public var TWENTY:MovieClip; public var FIFTY:MovieClip; public var HUNDRED:MovieClip; override public function onInit():void{ var _local2:String; var _local3:int; var _local4:Achievement; var _local5:Hint; var _local6:DisplayObject; super.onInit(); var _local1:Dictionary = new Dictionary(); _local1[Achievements.CROWN] = new CrownHint(); _local1[Achievements.BRONSE_BOMB_WITH_WINGS] = new BronsebombWithWingsHint(); _local1[Achievements.SILVER_BOMB_WITH_WINGS] = new SilverBombWithWingsHint(); _local1[Achievements.GOLD_BOMB_WITH_WINGS] = new GoldBombWithWingsHint(); _local1[Achievements.BRONSE_CUP] = new BronseCupHint(); _local1[Achievements.SILVER_CUP] = new SilverCupHint(); _local1[Achievements.GOLD_CUP] = new GoldCupHint(); _local1[Achievements.DYNAMITE] = new DynamiteHint(); _local1[Achievements.TNT] = new TNTHint(); _local1[Achievements.GOLD_GRENADE] = new GoldGrenadeHint(); _local1[Achievements.TWENTY] = new TwentyHint(); _local1[Achievements.FIFTY] = new FiftyHint(); _local1[Achievements.HUNDRED] = new HundredHint(); for each (_local2 in Achievements.ALL) { _local4 = (getChildByName(_local2) as Achievement); if (_local4){ if (!GameData.haveAchievement(_local2)){ _local4.alpha = 0; } else { _local4.alpha = 1; }; _local5 = _local1[_local2]; _local4.setHint(_local5); addChild(_local5); }; }; m_buttonMenu.addEventListener(MouseEvent.CLICK, onMenuClick); SoundManager.playLoop(SoundConst.MAIN_MENU_MUSIC); _local3 = 0; while (_local3 < numChildren) { _local6 = getChildAt(_local3); if ((_local6 is Cloud)){ m_mapObjects.push((_local6 as Cloud)); }; _local3++; }; } override public function onCleanup():void{ m_buttonMenu.removeEventListener(MouseEvent.CLICK, onMenuClick); super.onCleanup(); } private function onMenuClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); CurrentStateManager.getInstance().coolChangeState(GameData.getSelectLevelScreen()); } } }//package States
Section 160
//CreditsState (States.CreditsState) package States { import flash.events.*; import flash.display.*; import Main.*; import States.PlayState.*; import flash.net.*; public class CreditsState extends GameState { public var m_buttonMenu:MovieClip; public var m_programmerMail:SimpleButton; public var m_artMail:SimpleButton; public var m_musicMail:SimpleButton; private var m_mapObjects:Array; public function CreditsState(){ m_mapObjects = new Array(); super(); } override public function onInit():void{ var _local2:DisplayObject; super.onInit(); var _local1:int; while (_local1 < numChildren) { _local2 = getChildAt(_local1); if ((_local2 is Cloud)){ m_mapObjects.push((_local2 as Cloud)); }; if ((_local2 is Bird)){ m_mapObjects.push((_local2 as Bird)); }; _local1++; }; } override public function handleMouseClick(_arg1:MouseEvent):void{ if ((_arg1.target is DisplayObject)){ switch (_arg1.target.name){ case "m_buttonMenu": SoundManager.play(SoundConst.CLICK); CurrentStateManager.getInstance().coolChangeState(new MainMenuState()); break; case "m_programmerMail": SoundManager.play(SoundConst.CLICK); navigateToURL(new URLRequest("mailto:shotfirerfeedback@gmail.com"), "_blank"); break; case "m_artMail": SoundManager.play(SoundConst.CLICK); navigateToURL(new URLRequest("mailto:shotfirer.art@gmail.com"), "_blank"); break; case "m_musicMail": SoundManager.play(SoundConst.CLICK); navigateToURL(new URLRequest("mailto:gogodilla@gmail.com"), "_blank"); break; }; }; } override public function update(_arg1:Number):void{ var _local2:MapObject; super.update(_arg1); for each (_local2 in m_mapObjects) { _local2.update(_arg1); }; } } }//package States
Section 161
//CurrentPreloaderState (States.CurrentPreloaderState) package States { import flash.events.*; import flash.display.*; import Main.*; import States.PlayState.*; import flash.text.*; import flash.system.*; import flash.net.*; public class CurrentPreloaderState extends PreloaderState { private var m_mapObjects:Array; public var m_scrollBar:ScrollBar; public var m_bombPicture:MovieClip; public var m_loadingLabel:TextField; public var m_loadingBar:MovieClip; public var m_playButton:MovieClip; public var m_logo:SimpleButton; private var m_mochibotCalled:Boolean;// = false public function CurrentPreloaderState(){ m_mapObjects = new Array(); super(); } override public function update(_arg1:Number):void{ var _local2:MapObject; super.update(_arg1); for each (_local2 in m_mapObjects) { _local2.update(_arg1); }; m_loadingLabel.text = (("LOADING: " + int(((getPercent() * 100) + 0.5))) + "%"); m_loadingBar.gotoAndStop(Math.round((m_loadingBar.totalFrames * getPercent()))); } override public function onInit():void{ var _local2:DisplayObject; GameData.hideAds(); super.onInit(); setMinimalLoadTime(5.1); m_playButton.visible = false; m_playButton.addEventListener(MouseEvent.CLICK, onPlayClick); GameData.initAgi(); var _local1:int; while (_local1 < numChildren) { _local2 = getChildAt(_local1); if ((_local2 is PreloaderClouds)){ m_mapObjects.push((_local2 as PreloaderClouds)); }; _local1++; }; } override public function onCleanup():void{ m_playButton.removeEventListener(MouseEvent.CLICK, onPlayClick); super.onCleanup(); } override public function onFinishLoading():void{ m_playButton.visible = true; m_playButton.gotoAndPlay(1); m_loadingBar.visible = false; m_loadingLabel.visible = false; } override public function handleMouseClick(_arg1:MouseEvent):void{ if ((((_arg1.target is DisplayObject)) && (((_arg1.target as DisplayObject).name == "m_logo")))){ SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.MAIN_PAGE_URL); }; } private function onPlayClick(_arg1:MouseEvent):void{ CurrentStateManager.getInstance().gotoAndStop(2); GameData.init(); GameData.load(); SoundManager.play(SoundConst.CLICK); if (m_loaderInfo.url.indexOf("armorgames.com") != -1){ CurrentStateManager.getInstance().changeState(new SponsorIntroState()); } else { CurrentStateManager.getInstance().changeState(new UrlLockedState()); }; } public function initKongregateAPI():void{ var paramObj:Object; var apiPath:String; var request:URLRequest; var loader:Loader; try { paramObj = LoaderInfo(root.loaderInfo).parameters; apiPath = ((paramObj.kongregate_api_path) || ("http://www.kongregate.com/flash/API_AS3_Local.swf")); trace("api path:", apiPath); Security.allowDomain(apiPath); request = new URLRequest(apiPath); loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); loader.load(request); CurrentStateManager.getInstance().addChild(loader); } catch(e:Error) { trace(e, e.getStackTrace()); }; } private function loadComplete(_arg1:Event):void{ var event = _arg1; try { GameData.kongregate = event.target.content; GameData.kongregate.services.connect(); } catch(e:Error) { trace(e, e.getStackTrace()); }; } } }//package States
Section 162
//GameCompleteState (States.GameCompleteState) package States { import flash.events.*; import Utils.*; import flash.display.*; import Main.*; import States.PlayState.*; public class GameCompleteState extends PhysGameState { public var m_buttonAchiemvements:SimpleButton; public var m_logo:SimpleButton; override public function onInit():void{ var _local2:DisplayObject; super.onInit(); var _local1:int; while (_local1 < numChildren) { _local2 = getChildAt(_local1); if ((_local2 is Cloud)){ m_mapObjects.push((_local2 as Cloud)); }; _local1++; }; SoundManager.playLoop(SoundConst.MAIN_MENU_MUSIC); if (!GameData.canSubmitScore()){ CommonUtils.findChildByName(this, "m_buttonSubmit").visible = false; }; } override public function handleMouseClick(_arg1:MouseEvent):void{ if ((_arg1.target is DisplayObject)){ switch ((_arg1.target as DisplayObject).name){ case "m_buttonMenu": SoundManager.play(SoundConst.CLICK); CurrentStateManager.getInstance().coolChangeState(new MainMenuState()); break; case "m_buttonSubmit": SoundManager.play(SoundConst.CLICK); CurrentStateManager.getInstance().pushState(new SubmitScoreState()); break; case "m_buttonMoreGames": SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.MAIN_PAGE_URL); break; case "m_buttonAchiemvements": SoundManager.play(SoundConst.CLICK); CurrentStateManager.getInstance().coolChangeState(new AchievementsState()); break; }; }; } override public function onCleanup():void{ super.onCleanup(); } override public function update(_arg1:Number):void{ var _local2:MapObject; super.update(_arg1); for each (_local2 in m_mapObjects) { _local2.update(_arg1); }; } } }//package States
Section 163
//HighScoreState (States.HighScoreState) package States { import flash.events.*; import flash.display.*; import Main.*; import States.PlayState.*; import flash.text.*; public class HighScoreState extends PhysGameState { public var m_logo:SimpleButton; public var m_buttonMenu:MovieClip; public var m_scores:Array; public var m_score0:TextField; public var m_score1:TextField; public var m_score2:TextField; public var m_score3:TextField; public var m_score4:TextField; public var m_score5:TextField; public var m_score6:TextField; public var m_score7:TextField; public var m_score8:TextField; public var m_score9:TextField; public var m_score10:TextField; public var m_score11:TextField; public var m_score12:TextField; public var m_score13:TextField; public var m_score14:TextField; public var m_score15:TextField; public var m_score16:TextField; public var m_score17:TextField; public var m_score18:TextField; public var m_score19:TextField; public var m_points0:TextField; public var m_points1:TextField; public var m_points2:TextField; public var m_points3:TextField; public var m_points4:TextField; public var m_points5:TextField; public var m_points6:TextField; public var m_points7:TextField; public var m_points8:TextField; public var m_points9:TextField; public var m_points10:TextField; public var m_points11:TextField; public var m_points12:TextField; public var m_points13:TextField; public var m_points14:TextField; public var m_points15:TextField; public var m_points16:TextField; public var m_points17:TextField; public var m_points18:TextField; public var m_points19:TextField; public var m_totalScore:TextField; public var m_youAreNotInTop:TextField; public function HighScoreState(_arg1:Array){ m_scores = _arg1; } override public function onInit():void{ var _local6:DisplayObject; super.onInit(); var _local1:int; while (_local1 < numChildren) { _local6 = getChildAt(_local1); if ((_local6 is Cloud)){ m_mapObjects.push((_local6 as Cloud)); }; _local1++; }; SoundManager.playLoop(SoundConst.MAIN_MENU_MUSIC); m_totalScore.text = GameData.totalScore.toString(); var _local2:Array = [m_score0, m_score1, m_score2, m_score3, m_score4, m_score5, m_score6, m_score7, m_score8, m_score9, m_score10, m_score11, m_score12, m_score13, m_score14, m_score15, m_score16, m_score17, m_score18, m_score19]; var _local3:Array = [m_points0, m_points1, m_points2, m_points3, m_points4, m_points5, m_points6, m_points7, m_points8, m_points9, m_points10, m_points11, m_points12, m_points13, m_points14, m_points15, m_points16, m_points17, m_points18, m_points19]; var _local4:int = Math.min(20, m_scores.length); var _local5:Boolean; if (_local5){ m_youAreNotInTop.visible = true; return; }; } override public function handleMouseClick(_arg1:MouseEvent):void{ if ((_arg1.target is DisplayObject)){ switch ((_arg1.target as DisplayObject).name){ case "m_buttonMenu": SoundManager.play(SoundConst.CLICK); CurrentStateManager.getInstance().coolChangeState(new MainMenuState()); break; case "m_logo": SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.MAIN_PAGE_URL); break; }; }; } override public function update(_arg1:Number):void{ var _local2:MapObject; super.update(_arg1); for each (_local2 in m_mapObjects) { _local2.update(_arg1); }; } } }//package States
Section 164
//LoseState (States.LoseState) package States { import Main.*; import States.PlayState.*; public class LoseState extends PopupState { override public function onInit():void{ m_panel = new LoseStateView(); super.onInit(); SoundManager.playFadeOut(SoundConst.LOSE); addChild(PlayState.getInstance().getViewClip().m_buttonWalkthrough); addChild(PlayState.getInstance().getViewClip().m_buttonMoreGames); } override protected function processClick(_arg1:String):void{ switch (_arg1){ case "m_buttonMenu": SoundManager.play(SoundConst.CLICK); CurrentStateManager.getInstance().coolChangeState(new SelectLevelState()); break; case "m_buttonMoreGames": LinksManager.goURL(LinksManager.MAIN_PAGE_URL); SoundManager.play(SoundConst.CLICK); break; case "m_buttonRestart": SoundManager.play(SoundConst.CLICK); CurrentStateManager.getInstance().coolChangeState(GameData.getNextState(PlayState.m_curLevel)); break; }; } } }//package States
Section 165
//MainMenuLetter (States.MainMenuLetter) package States { import flash.display.*; public class MainMenuLetter extends MovieClip { } }//package States
Section 166
//MainMenuState (States.MainMenuState) package States { import flash.events.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Utils.*; import flash.display.*; import Main.*; import States.PlayState.*; import flash.utils.*; import Box2D.*; public class MainMenuState extends PhysGameState { public var m_wall:MovieClip; public var m_shelf:MovieClip; public var m_bomb:MovieClip; public var m_lettersTimer:Timer; public var m_lettersClip:MovieClip; public var m_cloudsPanel:MovieClip; public var m_mainMenuButtonsPanel:MovieClip; public var m_facebook:SimpleButton; public var m_twitter:SimpleButton; public var m_logo:SimpleButton; public function MainMenuState(){ m_lettersTimer = new Timer(1200, 1); super(); addFrameScript(80, frame81); } public function createBombBodyFromClip(_arg1:DisplayObject, _arg2:Sprite, _arg3:b2FixtureDef):b2Body{ var _local4:Number; var _local5:b2BodyDef; if (_arg1.parent != _arg2){ _arg2.addChild(_arg1); }; _local4 = _arg1.rotation; _arg1.rotation = 0; _local5 = new b2BodyDef(); _local5.position = new b2Vec2((_arg1.x / m_physScale), (_arg1.y / m_physScale)); _local5.type = b2Body.b2_dynamicBody; _local5.angle = MathUtils.GradToRad(_local4); var _local6:b2Body = m_world.CreateBody(_local5); var _local7:b2CircleShape = new b2CircleShape(((77 / 2) / m_physScale)); _arg3.shape = _local7; var _local8:b2Fixture = _local6.CreateFixture(_arg3); _local6.SetUserData(_arg1); _arg1.rotation = _local4; return (_local6); } override public function handleMouseClick(_arg1:MouseEvent):void{ if (_arg1.target == m_bomb){ boom(); return; }; if ((_arg1.target is DisplayObject)){ switch ((_arg1.target as DisplayObject).name){ case "m_buttonPlay": SoundManager.play(SoundConst.CLICK); CurrentStateManager.getInstance().coolChangeState(new SelectLevelState()); break; case "m_buttonMoreGames": SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.MAIN_PAGE_URL); break; case "m_buttonHighScore": SoundManager.play(SoundConst.CLICK); CurrentStateManager.getInstance().addChild((GameData.m_agi as DisplayObject)); GameData.m_agi.showScoreboardList(); break; case "m_buttonOptions": CurrentStateManager.getInstance().pushState(new OptionsState()); SoundManager.play(SoundConst.CLICK); break; case "m_buttonCredits": SoundManager.play(SoundConst.CLICK); CurrentStateManager.getInstance().coolChangeState(new CreditsState()); break; case "m_twitter": SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.TWITTER); break; case "m_facebook": SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.FACEBOOK); break; case "m_logo": SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.MAIN_PAGE_URL); break; }; }; } private function onShowHighScoreCompleted(_arg1:Array, _arg2:int, _arg3:Object):void{ if (_arg3.Success){ CurrentStateManager.getInstance().coolChangeState(new HighScoreState(_arg1)); } else { trace(_arg3.ErrorCode); }; } private function clearDynamicsBodies():void{ var _local3:b2Body; var _local1:Array = new Array(); var _local2:b2Body = m_world.GetBodyList(); while (_local2) { if (_local2.GetType() == b2Body.b2_dynamicBody){ _local1.push(_local2); }; _local2 = _local2.GetNext(); }; for each (_local3 in _local1) { removeChild(_local3.GetUserData()); m_world.DestroyBody(_local3); }; } private function boom():void{ var _local3:Object; var _local4:b2Vec2; var _local5:b2Vec2; var _local6:b2Vec2; var _local7:Number; var _local8:Number; SoundManager.play(SoundConst.BOOM_4); var _local1:Smoke = new Boom1(); _local1.rotation = MathUtils.RandomRange(0, 360); addMapObjectAt(_local1, this, m_bomb.x, m_bomb.y); m_bomb.visible = false; m_bomb.y = 200; var _local2:b2Body = m_world.GetBodyList(); while (_local2) { _local3 = _local2.GetUserData(); _local4 = new b2Vec2((m_bomb.x / m_physScale), (m_bomb.y / m_physScale)); _local5 = _local2.GetPosition(); _local6 = _local5.SubstractedCopy(_local4); _local7 = _local6.Length(); _local8 = _local7; if (_local8 < Constant.MIN_BOOM_DISTANCE){ _local8 = Constant.MIN_BOOM_DISTANCE; }; _local6.Multiply((130 / ((_local7 * _local8) * _local8))); _local2.ApplyImpulse(_local6, _local2.GetPosition()); _local2 = _local2.GetNext(); }; m_lettersTimer.delay = 3000; m_lettersTimer.start(); } override public function onInit():void{ if (!CurrentStateManager.getInstance().haveOverlay()){ CurrentStateManager.getInstance().setOverlay(new SoundButton()); }; m_physScale = 40; super.onInit(); SoundManager.playLoop(SoundConst.MAIN_MENU_MUSIC); m_shelf.visible = false; initDebugDraw(); m_lettersTimer.addEventListener(TimerEvent.TIMER, onLettersTimerTick); m_lettersTimer.start(); createStaticBoxFromClip(m_shelf, this, Fixtures.LETTERS_FIXTURE); var _local1:b2Fixture = createStaticBoxFromClip(m_wall, this, Fixtures.LETTERS_FIXTURE); m_wall.visible = false; var _local2:b2FilterData = new b2FilterData(); _local2.categoryBits = 4; _local2.maskBits = 1; _local1.SetFilterData(_local2); } private function onLettersTimerTick(_arg1:TimerEvent):void{ createLetters(); } private function createLetters():void{ var _local3:DisplayObject; var _local4:DisplayObject; var _local5:b2Body; var _local6:b2FilterData; clearDynamicsBodies(); var _local1:MovieClip = new MainMenuLettersClip(); while (_local1.numChildren != 0) { _local3 = _local1.getChildAt(0); addChild(_local3); if ((_local3 is MainMenuBomb)){ m_bomb = (_local3 as MainMenuBomb); }; _local3.y = (_local3.y + m_lettersClip.x); _local3.y = (_local3.y + m_lettersClip.y); }; m_bomb.rotation = 115; createBombBodyFromClip(m_bomb, this, Fixtures.LETTERS_FIXTURE).ApplyTorque(-100); m_bomb.buttonMode = true; var _local2:int; while (_local2 < numChildren) { _local4 = getChildAt(_local2); if ((_local4 is MainMenuLetter)){ _local5 = createDynamicBoxFromClip2(_local4, this, Fixtures.LETTERS_FIXTURE); _local6 = new b2FilterData(); if ((_local4 is MainMenuBomb)){ _local6.categoryBits = 1; } else { _local6.categoryBits = 2; }; _local5.GetFixtureList().SetFilterData(_local6); }; _local2++; }; } public function createDynamicBoxFromClip2(_arg1:DisplayObject, _arg2:Sprite, _arg3:b2FixtureDef):b2Body{ if (_arg1.parent != _arg2){ _arg2.addChild(_arg1); }; var _local4:Number = _arg1.rotation; _arg1.rotation = 0; var _local5:b2BodyDef = new b2BodyDef(); _local5.type = b2Body.b2_dynamicBody; _local5.position = new b2Vec2((_arg1.x / m_physScale), (_arg1.y / m_physScale)); _local5.angle = MathUtils.GradToRad(_local4); var _local6:b2Body = m_world.CreateBody(_local5); var _local7:b2PolygonShape = new b2PolygonShape(); _local7.SetAsBox((((_arg1.width + 5) / m_physScale) / 2), (((_arg1.height + 5) / m_physScale) / 2)); _arg3.shape = _local7; _local6.CreateFixture(_arg3); _local6.SetUserData(_arg1); _arg1.rotation = _local4; return (_local6); } override public function update(_arg1:Number):void{ var _local2:*; var _local3:int; var _local4:DisplayObject; super.update(_arg1); if (currentFrame == (totalFrames - 1)){ _local2 = (getChildByName("m_cloudsPanel") as MovieClip); _local3 = 0; while (_local3 < _local2.numChildren) { _local4 = _local2.getChildAt(_local3); if ((_local4 is Cloud)){ m_mapObjects.push((_local4 as Cloud)); }; _local3++; }; }; if (((m_bomb) && ((m_bomb.m_wick.currentFrame == m_bomb.m_wick.totalFrames)))){ boom(); m_bomb = null; }; } override public function onCleanup():void{ m_mapObjects = null; m_lettersTimer.removeEventListener(TimerEvent.TIMER, onLettersTimerTick); super.onCleanup(); } function frame81(){ stop(); } } }//package States
Section 167
//OptionsState (States.OptionsState) package States { import flash.events.*; import flash.display.*; import Main.*; public class OptionsState extends PopupState { override public function onInit():void{ m_panel = new OptionsStateView(); m_panel.m_panel.m_panel.m_musicVolume.setProgress(SoundManager.getMusicVolume()); m_panel.m_panel.m_panel.m_soundVolume.setProgress(SoundManager.getSoundVolume()); m_panel.m_panel.m_panel.m_musicVolume.addEventListener(ScrollBar.EVENT_CHANGE, onMusicVolumeChange); m_panel.m_panel.m_panel.m_soundVolume.addEventListener(ScrollBar.EVENT_CHANGE, onSoundVolumeChange); m_panel.m_panel.m_panel.m_checkBox.setChecked(!(GameData.isHintsOn())); m_panel.m_panel.m_panel.m_checkBox.addEventListener(CheckBox.EVENT_CHANGE, onCheckBoxChange); super.onInit(); } private function onCheckBoxChange(_arg1:Event):void{ SoundManager.play(SoundConst.CLICK); GameData.setHideTips((_arg1.target as CheckBox).isChecked()); } override public function handleMouseDown(_arg1:MouseEvent):void{ if ((_arg1.target is DisplayObject)){ switch ((_arg1.target as DisplayObject).name){ case "m_buttonOk": GameData.save(); SoundManager.play(SoundConst.CLICK); hide(); break; case "m_buttonResetGame": SoundManager.play(SoundConst.CLICK); CurrentStateManager.getInstance().pushState(new YesNoState()); break; }; }; } private function onMusicVolumeChange(_arg1:Event):void{ SoundManager.setMusicVolume((_arg1.target as ScrollBar).getProgress()); } private function onSoundVolumeChange(_arg1:Event):void{ SoundManager.play(SoundConst.CLICK); SoundManager.setSoundVolume((_arg1.target as ScrollBar).getProgress()); } private function onHideTipsChange(_arg1:Event):void{ var _local2:CheckBox = (_arg1.target as CheckBox); GameData.setHideTips(_local2.isChecked()); SoundManager.play(SoundConst.CLICK); } override public function onCleanup():void{ m_panel.m_panel.m_panel.m_musicVolume.removeEventListener(ScrollBar.EVENT_CHANGE, onMusicVolumeChange); m_panel.m_panel.m_panel.m_soundVolume.removeEventListener(ScrollBar.EVENT_CHANGE, onSoundVolumeChange); m_panel.m_panel.m_panel.m_checkBox.removeEventListener(CheckBox.EVENT_CHANGE, onCheckBoxChange); super.onCleanup(); } } }//package States
Section 168
//PopupState (States.PopupState) package States { import flash.events.*; import flash.display.*; import Main.*; import caurina.transitions.*; public class PopupState extends GameState { protected var m_panel:MovieClip; private var m_shader:MovieClip; public function PopupState(){ m_shader = new black_square(); super(); } override public function onInit():void{ addChildAt(m_shader, 0); m_shader.alpha = 0; Tweener.addTween(m_shader, {alpha:0.45, delay:0.4, time:0.6, transition:"linear"}); addChild(m_panel); m_panel.y = (-(m_panel.height) / 2); m_panel.x = (Constant.WINDOW_WIDTH / 2); Tweener.addTween(m_panel, {y:210, time:0.75, transition:"easeOutBack"}); } private function onHideComplete():void{ CurrentStateManager.getInstance().popState(); } protected function hide():void{ Tweener.addTween(m_shader, {alpha:0, time:0.45, transition:"linear", onComplete:onHideComplete}); Tweener.addTween(m_panel, {y:(-(m_panel.height) / 2), time:0.45, transition:"easeInBack"}); Tweener.addTween(m_panel, {alpha:0.5, delay:0.1, time:0.3, transition:"linear"}); } override public function handleMouseClick(_arg1:MouseEvent):void{ if ((_arg1.target is DisplayObject)){ processClick((_arg1.target as DisplayObject).name); }; } protected function processClick(_arg1:String):void{ } override public function onCleanup():void{ m_panel = null; m_shader = null; super.onCleanup(); } } }//package States
Section 169
//PreloaderClouds (States.PreloaderClouds) package States { import Utils.*; import States.PlayState.*; public class PreloaderClouds extends MapObject { private var m_speed:Number; private var m_y:int;// = 0 private var m_iSpeed:Number; public function PreloaderClouds(){ this.cacheAsBitmap = true; m_speed = MathUtils.RandomRange(150, 300); m_speed = (m_speed * (width / 80)); mouseEnabled = false; mouseChildren = false; } override public function update(_arg1:Number):void{ y = (y - (m_speed * _arg1)); if (y < -100){ y = 550; m_speed = MathUtils.RandomRange(150, 300); m_speed = (m_speed * (width / 80)); }; } } }//package States
Section 170
//SelectLevelButton (States.SelectLevelButton) package States { import flash.events.*; import flash.display.*; import flash.text.*; public class SelectLevelButton extends MovieClip { private var m_state:String;// = "up" private var m_isShowStar:Boolean;// = false private var m_cupUp:MovieClip; private var m_frontUp:MovieClip; private var m_textUp:TextField; private var m_backUp:MovieClip; private var m_cupOver:MovieClip; private var m_frontOver:MovieClip; private var m_textOver:TextField; private var m_backOver:MovieClip; private var m_cupDown:MovieClip; private var m_frontDown:MovieClip; private var m_textDown:TextField; private var m_backDown:MovieClip; private var m_unenable:MovieClip; public static const UP:String = "up"; public static const OVER:String = "over"; public static const DOWN:String = "down"; public static const UNENABLE:String = "unenable"; public function SelectLevelButton(){ m_cupUp = (getChildByName("m_cupUp") as MovieClip); m_frontUp = (getChildByName("m_frontUp") as MovieClip); m_textUp = (getChildByName("m_textUp") as TextField); m_backUp = (getChildByName("m_backUp") as MovieClip); m_cupOver = (getChildByName("m_cupOver") as MovieClip); m_frontOver = (getChildByName("m_frontOver") as MovieClip); m_textOver = (getChildByName("m_textOver") as TextField); m_backOver = (getChildByName("m_backOver") as MovieClip); m_cupDown = (getChildByName("m_cupDown") as MovieClip); m_frontDown = (getChildByName("m_frontDown") as MovieClip); m_textDown = (getChildByName("m_textDown") as TextField); m_backDown = (getChildByName("m_backDown") as MovieClip); m_unenable = (getChildByName("m_unenable") as MovieClip); buttonMode = true; this.mouseChildren = false; addEventListener(Event.REMOVED_FROM_STAGE, handleRemoveFromStage); addEventListener(MouseEvent.MOUSE_OVER, handleMouseOver); addEventListener(MouseEvent.MOUSE_OUT, handleMouseOut); addEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown); addEventListener(MouseEvent.MOUSE_UP, handleMouseUp); setState(UP); } private function setVisible(_arg1:DisplayObject, _arg2:Boolean):void{ if (_arg1){ _arg1.visible = _arg2; }; } private function hide():void{ setVisible(m_cupUp, false); setVisible(m_frontUp, false); setVisible(m_textUp, false); setVisible(m_backUp, false); setVisible(m_cupOver, false); setVisible(m_frontOver, false); setVisible(m_textOver, false); setVisible(m_backOver, false); setVisible(m_cupDown, false); setVisible(m_frontDown, false); setVisible(m_textDown, false); setVisible(m_backDown, false); setVisible(m_unenable, false); } public function setText(_arg1:String):void{ if (m_textUp){ m_textUp.text = _arg1; }; if (m_textOver){ m_textOver.text = _arg1; }; if (m_textDown){ m_textDown.text = _arg1; }; setState(UP); } public function showStar():void{ m_isShowStar = true; setState(m_state); } public function hideStar():void{ m_isShowStar = false; setState(m_state); } private function handleRemoveFromStage(_arg1:Event):void{ removeEventListener(Event.REMOVED_FROM_STAGE, handleRemoveFromStage); removeEventListener(MouseEvent.MOUSE_OVER, handleMouseOver); removeEventListener(MouseEvent.MOUSE_OUT, handleMouseOut); removeEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown); removeEventListener(MouseEvent.MOUSE_UP, handleMouseUp); m_cupUp = null; m_frontUp = null; m_textUp = null; m_backUp = null; m_cupOver = null; m_frontOver = null; m_textOver = null; m_backOver = null; m_cupDown = null; m_frontDown = null; m_textDown = null; m_backDown = null; m_unenable = null; } private function handleMouseOver(_arg1:MouseEvent):void{ if (m_state != UNENABLE){ setState(OVER); }; } private function handleMouseOut(_arg1:MouseEvent):void{ if (m_state != UNENABLE){ setState(UP); }; } private function handleMouseDown(_arg1:MouseEvent):void{ if (m_state != UNENABLE){ setState(DOWN); }; } private function handleMouseUp(_arg1:MouseEvent):void{ if (m_state != UNENABLE){ setState(OVER); }; } public function unenable():void{ setState(UNENABLE); } public function setState(_arg1:String):void{ hide(); buttonMode = true; switch (_arg1){ case UNENABLE: buttonMode = false; setVisible(m_unenable, true); break; case UP: setVisible(m_frontUp, true); setVisible(m_textUp, true); setVisible(m_backUp, true); if (m_isShowStar){ setVisible(m_cupUp, true); }; break; case DOWN: setVisible(m_frontDown, true); setVisible(m_textDown, true); setVisible(m_backDown, true); if (m_isShowStar){ setVisible(m_cupDown, true); }; break; case OVER: setVisible(m_frontOver, true); setVisible(m_textOver, true); setVisible(m_backOver, true); if (m_isShowStar){ setVisible(m_cupOver, true); }; break; }; m_state = _arg1; } } }//package States
Section 171
//SelectLevelState (States.SelectLevelState) package States { import flash.events.*; import flash.display.*; import Main.*; import States.PlayState.*; import flash.text.*; public class SelectLevelState extends GameState { public var m_level0:LevelButton; public var m_level1:LevelButton; public var m_level2:LevelButton; public var m_level3:LevelButton; public var m_level4:LevelButton; public var m_level5:LevelButton; public var m_level6:LevelButton; public var m_level7:LevelButton; public var m_level8:LevelButton; public var m_level9:LevelButton; public var m_level10:LevelButton; public var m_level11:LevelButton; public var m_level12:LevelButton; public var m_level13:LevelButton; public var m_level14:LevelButton; public var m_level15:LevelButton; public var m_level16:LevelButton; public var m_level17:LevelButton; public var m_level18:LevelButton; public var m_level19:LevelButton; public var m_level20:LevelButton; public var m_level21:LevelButton; public var m_level22:LevelButton; public var m_level23:LevelButton; public var m_level24:LevelButton; public var m_level25:LevelButton; public var m_level26:LevelButton; public var m_level27:LevelButton; public var m_level28:LevelButton; public var m_level29:LevelButton; public var m_level30:LevelButton; public var m_level31:LevelButton; public var m_level32:LevelButton; public var m_level33:LevelButton; public var m_totalScore:TextField; public var m_buttonMenu:MovieClip; public var m_buttonSubmit:MovieClip; public var m_buttonAchiemvements:SimpleButton; public var m_buttonWalkthrough:SimpleButton; public var m_buttonMoreGames:SimpleButton; public var m_logo:SimpleButton; private var m_mapObjects:Array; public function SelectLevelState(){ m_mapObjects = new Array(); super(); } private function onMenuClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); CurrentStateManager.getInstance().coolChangeState(new MainMenuState()); } override public function onInit():void{ var _local2:SelectLevelButton; SoundManager.playLoop(SoundConst.MAIN_MENU_MUSIC); m_totalScore.text = GameData.totalScore.toString(); m_buttonMenu.addEventListener(MouseEvent.CLICK, onMenuClick); m_buttonSubmit.addEventListener(MouseEvent.CLICK, onSubmitClick); m_buttonAchiemvements.addEventListener(MouseEvent.CLICK, onAchievementsClick); var _local1:int; while (_local1 < GameData.totalLevelsCount) { _local2 = (getChildByName(("m_level" + _local1)) as SelectLevelButton); if (_local1 <= GameData.levelsCompleted){ _local2.setText((_local1 + 1).toString()); if (GameData.isLevelWithStar(_local1)){ _local2.showStar(); } else { _local2.hideStar(); }; } else { _local2.unenable(); }; _local1++; }; parseClouds(); } private function parseClouds():void{ var _local2:DisplayObject; var _local1:int; while (_local1 < numChildren) { _local2 = getChildAt(_local1); if ((_local2 is Cloud)){ m_mapObjects.push((_local2 as Cloud)); }; _local1++; }; } private function onSubmitClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); if (GameData.m_agi){ CurrentStateManager.getInstance().pushState(new SubmitScoreState()); }; } private function prepareLevelsList(_arg1:MovieClip):void{ var _local3:SelectLevelButton; var _local4:int; var _local2:int; while (_local2 < GameData.totalLevelsCount) { _local3 = (_arg1.getChildByName(("m_level" + _local2)) as SelectLevelButton); _local4 = _local2; if (_local4 <= GameData.levelsCompleted){ _local3.setText((_local4 + 1).toString()); } else { _local3.unenable(); }; if (GameData.isLevelWithStar(_local4)){ _local3.showStar(); } else { _local3.hideStar(); }; _local2++; }; } override public function handleMouseClick(_arg1:MouseEvent):void{ if ((_arg1.target is DisplayObject)){ switch ((_arg1.target as DisplayObject).name){ case "m_buttonWalkthrough": SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.WALKROUTGH_URL); break; case "m_buttonMoreGames": SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.MAIN_PAGE_URL); break; case "m_logo": SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.MAIN_PAGE_URL); break; }; }; var _local2:int = GameData.levelsCompleted; var _local3:int; while (_local3 < GameData.totalLevelsCount) { if (getChildByName(("m_level" + _local3)).hitTestPoint(_arg1.stageX, _arg1.stageY)){ if (_local3 <= _local2){ SoundManager.play(SoundConst.CLICK); CurrentStateManager.getInstance().coolChangeState(GameData.getNextState(_local3)); return; }; }; _local3++; }; } private function onAchievementsClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); CurrentStateManager.getInstance().coolChangeState(new AchievementsState()); } override public function onCleanup():void{ m_buttonMenu.removeEventListener(MouseEvent.CLICK, onMenuClick); m_buttonSubmit.removeEventListener(MouseEvent.CLICK, onSubmitClick); m_buttonAchiemvements.removeEventListener(MouseEvent.CLICK, onAchievementsClick); m_mapObjects = null; super.onCleanup(); } override public function update(_arg1:Number):void{ var _local2:MapObject; for each (_local2 in m_mapObjects) { _local2.update(_arg1); }; } } }//package States
Section 172
//ShadeInState (States.ShadeInState) package States { import flash.display.*; import Main.*; import caurina.transitions.*; public class ShadeInState extends GameState { private var m_blackClip:MovieClip; private var m_nextState:GameState;// = null public function ShadeInState(){ m_blackClip = new black_square(); super(); } public function setNextState(_arg1:GameState):void{ m_nextState = _arg1; } override public function onInit():void{ addChild(m_blackClip); m_blackClip.alpha = 0; Tweener.addTween(m_blackClip, {alpha:1, time:0.3, transition:"linear", onComplete:onComplete}); } private function onComplete():void{ if (m_nextState != null){ CurrentStateManager.getInstance().changeState(m_nextState); CurrentStateManager.getInstance().pushState(new ShadeOutState()); }; } override public function onCleanup():void{ m_nextState = null; m_blackClip = null; super.onCleanup(); } } }//package States
Section 173
//ShadeOutState (States.ShadeOutState) package States { import flash.display.*; import Main.*; import caurina.transitions.*; public class ShadeOutState extends GameState { private var m_blackClip:MovieClip; public function ShadeOutState(){ m_blackClip = new black_square(); super(); } override public function onInit():void{ addChild(m_blackClip); Tweener.addTween(m_blackClip, {alpha:0, time:0.3, transition:"linear", onComplete:onComplete}); } private function onComplete():void{ CurrentStateManager.getInstance().popState(); } override public function onCleanup():void{ m_blackClip = null; super.onCleanup(); } } }//package States
Section 174
//SponsorIntroState (States.SponsorIntroState) package States { import flash.events.*; import Main.*; public class SponsorIntroState extends GameState { override public function onInit():void{ super.onInit(); x = (width / 2); y = (height / 2); } override public function handleMouseDown(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.MAIN_PAGE_URL); } override public function update(_arg1:Number):void{ if (currentFrame == totalFrames){ stop(); CurrentStateManager.getInstance().changeState(new MainMenuState()); }; } } }//package States
Section 175
//SubmitScoreState (States.SubmitScoreState) package States { import flash.display.*; import Main.*; public class SubmitScoreState extends PopupState { override public function onInit():void{ m_panel = new MovieClip(); super.onInit(); CurrentStateManager.getInstance().addChild((GameData.m_agi as DisplayObject)); GameData.m_agi.showScoreboardSubmit(GameData.totalScore); } override public function update(_arg1:Number):void{ if (!GameData.m_agi.isAGUIVisible()){ CurrentStateManager.getInstance().popState(); }; } } }//package States
Section 176
//TurtorialState (States.TurtorialState) package States { import flash.events.*; import flash.display.*; import Main.*; import flash.geom.*; import States.PlayState.*; public class TurtorialState extends GameState { private const STATE_SHOW:int = 0; private const STATE_NORMAL:int = 1; private const STATE_HIDE:int = 2; private const m_endScale:Number = 2; private const m_startScale:Number = 9; private const m_maxShowTime:Number = 0.5; private const m_maxHideTime:Number = 0.2; private var m_state:int;// = 0 private var m_clip:MovieClip; private var m_highlightPoint:Point; private var m_clickToContinue:MovieClip; private var m_checkBox:CheckBox; private var m_checkSigh:MovieClip; private var m_frame:MovieClip; public function TurtorialState(_arg1:MovieClip, _arg2:Point){ m_clickToContinue = new ClickToContinue(); m_checkBox = new LightCheckBox(); m_checkSigh = new HideTips(); m_frame = new TurtorialFrame(); super(); addChild(m_frame); m_frame.x = _arg2.x; m_frame.y = _arg2.y; m_frame.buttonMode = true; m_clip = _arg1; m_highlightPoint = _arg2; m_clip.buttonMode = true; addChild(m_clip); addChild(m_checkBox); m_checkBox.x = 150; m_checkBox.y = 447; m_checkBox.setChecked(!(GameData.isHintsOn())); m_checkBox.addEventListener(CheckBox.EVENT_CHANGE, onCheckBoxChange); m_checkSigh.buttonMode = true; m_checkSigh.x = 185; m_checkSigh.y = 444; addChild(m_checkSigh); m_clickToContinue.buttonMode = true; m_clickToContinue.x = 400; m_clickToContinue.y = 460; addChild(m_clickToContinue); update(0); } override public function handleMouseDown(_arg1:MouseEvent):void{ if (m_state == STATE_NORMAL){ if (!(_arg1.target is black_square)){ m_state = STATE_HIDE; m_liveTime = 0; }; }; } override public function update(_arg1:Number):void{ var _local2:Number; var _local3:Number; m_clickToContinue.scaleX = ((Math.sin((m_liveTime * 6)) * 0.03) + 1); m_clickToContinue.scaleY = ((Math.sin((m_liveTime * 6)) * 0.03) + 1); switch (m_state){ case STATE_SHOW: _local2 = (m_liveTime / m_maxShowTime); if (_local2 > 1){ _local2 = 1; m_state = STATE_NORMAL; }; m_frame.alpha = (0.6 * _local2); m_clickToContinue.scaleX = _local2; m_clickToContinue.scaleY = _local2; m_clip.alpha = _local2; m_checkBox.alpha = _local2; m_checkSigh.alpha = _local2; _local3 = (m_startScale + ((m_endScale - m_startScale) * _local2)); m_frame.scaleX = _local3; m_frame.scaleY = _local3; break; case STATE_HIDE: _local2 = (m_liveTime / m_maxHideTime); if (_local2 > 1){ CurrentStateManager.getInstance().popState(); return; }; m_frame.alpha = (0.6 * (1 - _local2)); _local3 = (m_endScale + (2 * _local2)); m_frame.scaleX = _local3; m_frame.scaleY = _local3; m_clickToContinue.alpha = (1 - _local2); m_clip.alpha = (1 - _local2); m_checkBox.alpha = (1 - _local2); m_checkSigh.alpha = (1 - _local2); break; }; } private function onCheckBoxChange(_arg1:Event):void{ SoundManager.play(SoundConst.CLICK); GameData.setHideTips((_arg1.target as CheckBox).isChecked()); } override public function onCleanup():void{ m_checkBox.removeEventListener(CheckBox.EVENT_CHANGE, onCheckBoxChange); if (!GameData.isHintsOn()){ PlayState.getInstance().resetTurtorialFrames(); }; super.onCleanup(); } } }//package States
Section 177
//UrlLockedState (States.UrlLockedState) package States { import Main.*; public class UrlLockedState extends GameState { } }//package States
Section 178
//WinState (States.WinState) package States { import flash.events.*; import flash.display.*; import Main.*; import caurina.transitions.*; import States.PlayState.*; import flash.utils.*; public class WinState extends PopupState { private var m_newAchievementTimer:Timer; private var m_cup:MovieClip; private var m_wasCup:Boolean; public function WinState(_arg1:Boolean){ m_newAchievementTimer = new Timer(1100, 1); super(); m_wasCup = _arg1; } override public function onInit():void{ m_panel = new WinStateView(); m_newAchievementTimer.addEventListener(TimerEvent.TIMER_COMPLETE, showNewAchievement); if (GameData.wasNewAchievements()){ m_newAchievementTimer.start(); }; super.onInit(); m_panel.m_panel.m_panel.m_level.text = (PlayState.m_curLevel + 1).toString(); m_panel.m_panel.m_panel.m_bombsUsed.text = PlayState.m_bombsUsed.toString(); m_panel.m_panel.m_panel.m_currentScore.text = PlayState.m_currentScores; m_panel.m_panel.m_panel.m_bestScore.text = GameData.getBestScore(PlayState.m_curLevel).toString(); m_panel.m_panel.m_panel.m_bombsLeft.text = PlayState.m_bombsLeft.toString(); m_cup = m_panel.m_panel.m_panel.m_cup; if (m_wasCup){ m_cup.alpha = 0; Tweener.addTween(m_cup, {alpha:1, delay:0.7, time:0.6, transition:"linear"}); m_cup.scaleX = 0.4; m_cup.scaleY = 0.4; Tweener.addTween(m_cup, {scaleX:1, delay:0.4, time:0.9, transition:"linear"}); Tweener.addTween(m_cup, {scaleY:1, delay:0.4, time:0.9, transition:"linear"}); } else { m_cup.visible = false; }; SoundManager.playFadeOut(SoundConst.WIN); addChild(PlayState.getInstance().getViewClip().m_buttonWalkthrough); addChild(PlayState.getInstance().getViewClip().m_buttonMoreGames); } override public function update(_arg1:Number):void{ super.update(_arg1); m_cup.rotation = (Math.sin((m_liveTime * 6)) * 6); } private function showNewAchievement(_arg1:TimerEvent):void{ var _local2:NewAchievementStateView = new NewAchievementStateView(); _local2.m_panel.m_icon.gotoAndStop(GameData.getNewAchievement()); _local2.m_panel.m_name.text = Achievements.AchievementToDescription(GameData.getNewAchievement()); addChild(_local2); _local2.m_panel.m_icon.stop(); } override protected function processClick(_arg1:String):void{ switch (_arg1){ case "m_buttonMenu": SoundManager.play(SoundConst.CLICK); CurrentStateManager.getInstance().coolChangeState(new SelectLevelState()); break; case "m_buttonNext": SoundManager.play(SoundConst.CLICK); CurrentStateManager.getInstance().coolChangeState(GameData.getNextState((PlayState.m_curLevel + 1))); break; case "m_buttonMoreGames": SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.MAIN_PAGE_URL); break; case "m_buttonShow": SoundManager.play(SoundConst.CLICK); CurrentStateManager.getInstance().coolChangeState(new AchievementsState()); break; }; } private function onAchievementsClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); CurrentStateManager.getInstance().coolChangeState(new AchievementsState()); } override public function onCleanup():void{ m_newAchievementTimer.stop(); m_newAchievementTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, showNewAchievement); m_newAchievementTimer = null; m_cup = null; super.onCleanup(); } } }//package States
Section 179
//YesNoState (States.YesNoState) package States { public class YesNoState extends PopupState { override public function onInit():void{ m_panel = new YesNoStateView(); super.onInit(); } override protected function processClick(_arg1:String):void{ switch (_arg1){ case "m_buttonNo": SoundManager.play(SoundConst.CLICK); hide(); break; case "m_buttonYes": SoundManager.play(SoundConst.CLICK); GameData.resetGame(); hide(); break; }; } } }//package States
Section 180
//AutoreleaseClip (Utils.AutoreleaseClip) package Utils { import Box2D.Dynamics.*; import States.PlayState.*; public class AutoreleaseClip extends MapObject { override public function update(_arg1:Number):void{ if (currentFrame == totalFrames){ kill(); }; } override public function onDead(_arg1:b2World):void{ parent.removeChild(this); } override public function onPause():void{ stop(); } override public function onResume():void{ play(); } } }//package Utils
Section 181
//CommonUtils (Utils.CommonUtils) package Utils { import flash.display.*; import flash.geom.*; public class CommonUtils { public static function AnyOf(_arg1:Array){ return (_arg1[int((Math.random() * _arg1.length))]); } public static function Sign(_arg1:Number):Number{ if (_arg1 == 0){ return (0); }; return (((_arg1 < 0)) ? -1 : 1); } public static function SetPosition(_arg1:DisplayObject, _arg2:Point):void{ _arg1.x = _arg2.x; _arg1.y = _arg2.y; } public static function InRange(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ return ((((_arg1 >= _arg2)) && ((_arg1 <= _arg3)))); } public static function RandomRange(_arg1:Number, _arg2:Number):Number{ return ((_arg1 + (Math.random() * (_arg2 - _arg1)))); } public static function RandomRangeInt(_arg1:int, _arg2:int):int{ return (Math.round((_arg1 + (Math.random() * (_arg2 - _arg1))))); } public static function IntToTimeString(_arg1:int):String{ var _local3:String; var _local5:String; var _local2:int = (_arg1 / 60); if (_local2 < 10){ _local3 = ("0" + _local2); } else { _local3 = _local2.toString(); }; var _local4:int = (_arg1 % 60); if (_local4 < 10){ _local5 = ("0" + _local4); } else { _local5 = _local4.toString(); }; return (((_local3 + ":") + _local5)); } public static function findChildByName(_arg1:DisplayObjectContainer, _arg2:String):DisplayObject{ var _local5:DisplayObject; var _local3:DisplayObject = _arg1.getChildByName(_arg2); if (_local3){ return (_local3); }; var _local4:int; while (_local4 < _arg1.numChildren) { _local3 = _arg1.getChildAt(_local4); if ((_local3 is DisplayObjectContainer)){ _local5 = findChildByName((_local3 as DisplayObjectContainer), _arg2); if (_local5){ return (_local5); }; }; _local4++; }; return (null); } } }//package Utils
Section 182
//MathUtils (Utils.MathUtils) package Utils { import Box2D.Common.Math.*; public class MathUtils { private static const m_radToGradKoef:Number = (180 / Math.PI); private static const m_gradToRadKoef:Number = (Math.PI / 180); public static function RandomRangeInt(_arg1:int, _arg2:Number):int{ return (Round((_arg1 + ((_arg2 - _arg1) * Math.random())))); } public static function RandomRange(_arg1:Number, _arg2:Number):Number{ return ((_arg1 + ((_arg2 - _arg1) * Math.random()))); } public static function RadToGrad(_arg1:Number):Number{ return ((_arg1 * m_radToGradKoef)); } public static function GradToRad(_arg1:Number):Number{ return ((_arg1 * m_gradToRadKoef)); } public static function Sign(_arg1:Number):Number{ if (_arg1 > 0){ return (1); }; if (_arg1 < 0){ return (-1); }; return (0); } public static function Round(_arg1:Number):int{ return (int((_arg1 + 0.5))); } public static function anyOfString(... _args):String{ return ((_args[int((_args.length * Math.random()))] as String)); } public static function anyOfNumber(... _args):Number{ return ((_args[int((_args.length * Math.random()))] as Number)); } public static function triangleArea(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):Number{ return ((Math.abs((((_arg2.x - _arg1.x) * (_arg3.y - _arg1.y)) - ((_arg3.x - _arg1.x) * (_arg2.y - _arg1.y)))) / 2)); } public static function rangeToInt(... _args):int{ var _local2:* = _args[0]; var _local3:int = _args.length; while (_local3 > 0) { trace(_local2, _args[_local3]); if (_local2 > _args[_local3]){ return ((_local3 - 1)); }; _local3--; }; return (-2); } } }//package Utils
Section 183
//Smoke (Utils.Smoke) package Utils { public class Smoke extends AutoreleaseClip { private var m_isSecondPart:Number; override public function update(_arg1:Number):void{ if (currentFrame == totalFrames){ stop(); alpha = (alpha - (_arg1 * 2.5)); if (alpha <= 0){ kill(); }; }; } override public function onPause():void{ stop(); } override public function onResume():void{ play(); } } }//package Utils
Section 184
//Vector3 (Utils.Vector3) package Utils { import Box2D.Common.Math.*; import flash.geom.*; public final class Vector3 { public var x:Number; public var y:Number; public var z:Number; public function Vector3(_arg1:Number, _arg2:Number, _arg3:Number){ this.x = _arg1; this.y = _arg2; this.z = _arg3; } final public function killNaN():void{ if (isNaN(x)){ x = 0; }; if (isNaN(y)){ y = 0; }; if (isNaN(z)){ z = 0; }; } final public function isEqual(_arg1:Vector3):Boolean{ return ((((((x == _arg1.x)) && ((y == _arg1.y)))) && ((z == _arg1.z)))); } final public function haveNaN():Boolean{ return (((((isNaN(z)) || (isNaN(y)))) || (isNaN(z)))); } final public function clone():Vector3{ return (new Vector3(x, y, z)); } final public function normalizedCopy():Vector3{ var _local1:Number = (1 / length()); if (_local1 != 0){ return (new Vector3((x * _local1), (y * _local1), (z * _local1))); }; return (zero()); } public function toPoint():Point{ return (new Point(x, y)); } final public function dotProduct(_arg1:Vector3):Number{ return ((((x * _arg1.x) + (y * _arg1.y)) + (z * _arg1.z))); } final public function crossProduct(_arg1:Vector3):Vector3{ return (new Vector3(((y * _arg1.z) - (z * _arg1.y)), ((z * _arg1.x) - (x * _arg1.z)), ((x * _arg1.y) - (y * _arg1.x)))); } final public function normalize():Vector3{ var _local1:Number = (1 / length()); x = (x * _local1); y = (y * _local1); z = (z * _local1); return (this); } final public function get2DRotation():Number{ var _local1:Number = ((180 * getAngleWith(new Vector3(0, -1, 0))) / Math.PI); if (this.x < 0){ _local1 = (_local1 * -1); }; return (_local1); } final public function getAngleWith(_arg1:Vector3):Number{ var _local2:Number = (((x * _arg1.x) + (y * _arg1.y)) / (length() * _arg1.length())); if (_local2 > 1){ _local2 = 1; }; if (_local2 < -1){ _local2 = -1; }; return (Math.acos(_local2)); } final public function length():Number{ return (Math.sqrt(squaredLength())); } final public function squaredLength():Number{ return ((((x * x) + (y * y)) + (z * z))); } final public function sub(_arg1:Vector3):Vector3{ return (new Vector3((x - _arg1.x), (y - _arg1.y), (z - _arg1.z))); } final public function add(_arg1:Vector3):Vector3{ return (new Vector3((x + _arg1.x), (y + _arg1.y), (z + _arg1.z))); } final public function mul(_arg1:Number):Vector3{ return (new Vector3((x * _arg1), (y * _arg1), (z * _arg1))); } final public function negate():Vector3{ return (new Vector3(-(x), -(y), -(z))); } final public function isLengthLess(_arg1:Number):Boolean{ return ((squaredLength() < (_arg1 * _arg1))); } final public function toString():String{ return ((((((((("v: " + "x=") + x.toFixed(3)) + ", ") + "y=") + y.toFixed(3)) + ", ") + "z=") + z.toFixed(3))); } public static function fromPoint(_arg1:Point):Vector3{ return (new Vector3(_arg1.x, _arg1.y, 0)); } public static function fromb2Vec2(_arg1:b2Vec2):Vector3{ return (new Vector3(_arg1.x, _arg1.y, 0)); } public static function getProjection(_arg1:Vector3, _arg2:Vector3):Vector3{ return (_arg1.mul((_arg1.dotProduct(_arg2) / _arg1.squaredLength()))); } public static function zero():Vector3{ return (new Vector3(0, 0, 0)); } } }//package Utils
Section 185
//A (A) package { import States.*; public dynamic class A extends MainMenuLetter { } }//package
Section 186
//Achievement (Achievement) package { import flash.events.*; import flash.display.*; public class Achievement extends MovieClip { private var m_hint:Hint;// = null public function Achievement(){ buttonMode = true; addEventListener(Event.REMOVED_FROM_STAGE, onRemoveFromStage); addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); addEventListener(MouseEvent.MOUSE_OUT, onMouseOut); addEventListener(Event.ENTER_FRAME, update); addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); } private function update(_arg1:Event):void{ if (m_hint){ m_hint.update(); }; } private function onMouseMove(_arg1:MouseEvent):void{ if (m_hint){ m_hint.x = _arg1.stageX; m_hint.y = _arg1.stageY; }; } private function onRemoveFromStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, onRemoveFromStage); removeEventListener(MouseEvent.MOUSE_OVER, onMouseOver); removeEventListener(MouseEvent.MOUSE_OUT, onMouseOut); removeEventListener(Event.ENTER_FRAME, update); removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); } public function setHint(_arg1:Hint):void{ m_hint = _arg1; m_hint.x = x; m_hint.y = y; } private function onMouseOver(_arg1:MouseEvent):void{ if (m_hint){ m_hint.show(); }; } private function onMouseOut(_arg1:MouseEvent):void{ if (m_hint){ m_hint.hide(); }; } } }//package
Section 187
//Achievements (Achievements) package { public class Achievements { public static const CROWN:String = "CROWN"; public static const BRONSE_BOMB_WITH_WINGS:String = "BRONSE_BOMB_WITH_WINGS"; public static const SILVER_BOMB_WITH_WINGS:String = "SILVER_BOMB_WITH_WINGS"; public static const GOLD_BOMB_WITH_WINGS:String = "GOLD_BOMB_WITH_WINGS"; public static const BRONSE_CUP:String = "BRONSE_CUP"; public static const SILVER_CUP:String = "SILVER_CUP"; public static const GOLD_CUP:String = "GOLD_CUP"; public static const DYNAMITE:String = "DYNAMITE"; public static const TNT:String = "TNT"; public static const GOLD_GRENADE:String = "GOLD_GRENADE"; public static const TWENTY:String = "TWENTY"; public static const FIFTY:String = "FIFTY"; public static const HUNDRED:String = "HUNDRED"; public static const LEVEL_FOR_GOLD_GRENADE:int = 15; public static const ALL:Array = [CROWN, BRONSE_BOMB_WITH_WINGS, SILVER_BOMB_WITH_WINGS, GOLD_BOMB_WITH_WINGS, BRONSE_CUP, SILVER_CUP, GOLD_CUP, DYNAMITE, TNT, GOLD_GRENADE, TWENTY, FIFTY, HUNDRED]; public static function AchievementToDescription(_arg1:String):String{ switch (_arg1){ case DYNAMITE: return ("First blood"); case GOLD_GRENADE: return ("Grenade"); case TWENTY: return ("Twenty kills"); case FIFTY: return ("Fifty kills"); case HUNDRED: return ("Hundred kills"); case CROWN: return ("Crown"); case BRONSE_BOMB_WITH_WINGS: return ("Bronze bomb"); case SILVER_BOMB_WITH_WINGS: return ("Silver bomb"); case GOLD_BOMB_WITH_WINGS: return ("Golden bomb"); case BRONSE_CUP: return ("Bronze cup"); case SILVER_CUP: return ("Silver cup"); case GOLD_CUP: return ("Golden cup"); case TNT: return ("TNT"); }; return (_arg1); } } }//package
Section 188
//Awesome (Awesome) package { import flash.display.*; public dynamic class Awesome extends MovieClip { } }//package
Section 189
//Banner1 (Banner1) package { import flash.display.*; public dynamic class Banner1 extends SimpleButton { } }//package
Section 190
//Banner2 (Banner2) package { import flash.display.*; public dynamic class Banner2 extends SimpleButton { } }//package
Section 191
//BigBoom (BigBoom) package { import Utils.*; public dynamic class BigBoom extends Smoke { } }//package
Section 192
//Bird (Bird) package { import States.PlayState.*; public dynamic class Bird extends Bird { } }//package
Section 193
//black_square (black_square) package { import flash.display.*; public dynamic class black_square extends MovieClip { } }//package
Section 194
//BloodBlob0 (BloodBlob0) package { import flash.display.*; public dynamic class BloodBlob0 extends MovieClip { } }//package
Section 195
//BloodPoint0 (BloodPoint0) package { import flash.display.*; public dynamic class BloodPoint0 extends MovieClip { } }//package
Section 196
//body_die_1 (body_die_1) package { import flash.media.*; public dynamic class body_die_1 extends Sound { } }//package
Section 197
//body_die_2 (body_die_2) package { import flash.media.*; public dynamic class body_die_2 extends Sound { } }//package
Section 198
//bomb_fall (bomb_fall) package { import flash.media.*; public dynamic class bomb_fall extends Sound { } }//package
Section 199
//Bomb1Shape (Bomb1Shape) package { import flash.display.*; public dynamic class Bomb1Shape extends MovieClip { public var vertex0:VertexMarker; public var vertex1:VertexMarker; public var vertex2:VertexMarker; public var vertex3:VertexMarker; public var m_bombClip:MovieClip; } }//package
Section 200
//BombTrajectory (BombTrajectory) package { import flash.display.*; public dynamic class BombTrajectory extends MovieClip { } }//package
Section 201
//Bomj (Bomj) package { import flash.display.*; public dynamic class Bomj extends MovieClip { } }//package
Section 202
//BomjMarker (BomjMarker) package { import flash.display.*; public dynamic class BomjMarker extends MovieClip { } }//package
Section 203
//BomjSurprise (BomjSurprise) package { import flash.display.*; public dynamic class BomjSurprise extends MovieClip { } }//package
Section 204
//boom_1 (boom_1) package { import flash.media.*; public dynamic class boom_1 extends Sound { } }//package
Section 205
//boom_2 (boom_2) package { import flash.media.*; public dynamic class boom_2 extends Sound { } }//package
Section 206
//boom_3 (boom_3) package { import flash.media.*; public dynamic class boom_3 extends Sound { } }//package
Section 207
//boom_4 (boom_4) package { import flash.media.*; public dynamic class boom_4 extends Sound { } }//package
Section 208
//Boom1 (Boom1) package { import Utils.*; public dynamic class Boom1 extends Smoke { } }//package
Section 209
//Boom2 (Boom2) package { import Utils.*; public dynamic class Boom2 extends Smoke { } }//package
Section 210
//Boom3 (Boom3) package { import Utils.*; public dynamic class Boom3 extends Smoke { } }//package
Section 211
//BrickBlock1 (BrickBlock1) package { import States.PlayState.*; public dynamic class BrickBlock1 extends BrickWall { } }//package
Section 212
//BrickBlock10 (BrickBlock10) package { import States.PlayState.*; public dynamic class BrickBlock10 extends BrickWall { } }//package
Section 213
//BrickBlock2 (BrickBlock2) package { import States.PlayState.*; public dynamic class BrickBlock2 extends BrickWall { } }//package
Section 214
//BrickBlock3 (BrickBlock3) package { import States.PlayState.*; public dynamic class BrickBlock3 extends BrickWall { } }//package
Section 215
//BrickBlock4 (BrickBlock4) package { import States.PlayState.*; public dynamic class BrickBlock4 extends BrickWall { } }//package
Section 216
//BrickBlock5 (BrickBlock5) package { import States.PlayState.*; public dynamic class BrickBlock5 extends BrickWall { } }//package
Section 217
//BrickBlock6 (BrickBlock6) package { import States.PlayState.*; public dynamic class BrickBlock6 extends BrickWall { } }//package
Section 218
//BrickBlock7 (BrickBlock7) package { import States.PlayState.*; public dynamic class BrickBlock7 extends BrickWall { } }//package
Section 219
//BrickBlock8 (BrickBlock8) package { import States.PlayState.*; public dynamic class BrickBlock8 extends BrickWall { } }//package
Section 220
//BrickBlock9 (BrickBlock9) package { import States.PlayState.*; public dynamic class BrickBlock9 extends BrickWall { } }//package
Section 221
//bricks_fall_1 (bricks_fall_1) package { import flash.media.*; public dynamic class bricks_fall_1 extends Sound { } }//package
Section 222
//bricks_fall_2 (bricks_fall_2) package { import flash.media.*; public dynamic class bricks_fall_2 extends Sound { } }//package
Section 223
//bricks_fall_3 (bricks_fall_3) package { import flash.media.*; public dynamic class bricks_fall_3 extends Sound { } }//package
Section 224
//BronseBombWithWings (BronseBombWithWings) package { public dynamic class BronseBombWithWings extends Achievement { } }//package
Section 225
//BronsebombWithWingsHint (BronsebombWithWingsHint) package { public dynamic class BronsebombWithWingsHint extends Hint { } }//package
Section 226
//BronseCup (BronseCup) package { public dynamic class BronseCup extends Achievement { } }//package
Section 227
//BronseCupHint (BronseCupHint) package { public dynamic class BronseCupHint extends Hint { } }//package
Section 228
//C (C) package { import States.*; public dynamic class C extends MainMenuLetter { } }//package
Section 229
//Car2 (Car2) package { import States.PlayState.*; public dynamic class Car2 extends Car { } }//package
Section 230
//Car3 (Car3) package { import States.PlayState.*; public dynamic class Car3 extends Car { } }//package
Section 231
//Car4 (Car4) package { import States.PlayState.*; public dynamic class Car4 extends Car { } }//package
Section 232
//Car5 (Car5) package { import States.PlayState.*; public dynamic class Car5 extends Car { } }//package
Section 233
//CheckBox (CheckBox) package { import flash.events.*; import flash.display.*; public class CheckBox extends MovieClip { private var m_isChecked:Boolean;// = false public static const EVENT_CHANGE:String = "checkChange"; public function CheckBox(){ buttonMode = true; stop(); addEventListener(MouseEvent.CLICK, onClick); addEventListener(Event.REMOVED_FROM_STAGE, handleRemoveFromStage); } public function handleRemoveFromStage(_arg1:Event):void{ removeEventListener(MouseEvent.CLICK, onClick); removeEventListener(Event.REMOVED_FROM_STAGE, handleRemoveFromStage); } public function isChecked():Boolean{ return (m_isChecked); } public function setChecked(_arg1:Boolean):void{ m_isChecked = _arg1; if (m_isChecked){ gotoAndStop(2); } else { gotoAndStop(1); }; } private function onClick(_arg1:MouseEvent):void{ setChecked(!(m_isChecked)); dispatchEvent(new Event(EVENT_CHANGE)); } } }//package
Section 234
//CheckBoxBack (CheckBoxBack) package { import flash.display.*; public dynamic class CheckBoxBack extends MovieClip { } }//package
Section 235
//click (click) package { import flash.media.*; public dynamic class click extends Sound { } }//package
Section 236
//ClickToContinue (ClickToContinue) package { import flash.display.*; public dynamic class ClickToContinue extends MovieClip { } }//package
Section 237
//Cloud1 (Cloud1) package { import States.PlayState.*; public dynamic class Cloud1 extends Cloud { } }//package
Section 238
//Cloud2 (Cloud2) package { import States.PlayState.*; public dynamic class Cloud2 extends Cloud { } }//package
Section 239
//Cloud3 (Cloud3) package { import States.PlayState.*; public dynamic class Cloud3 extends Cloud { } }//package
Section 240
//Cloud4 (Cloud4) package { import States.PlayState.*; public dynamic class Cloud4 extends Cloud { } }//package
Section 241
//Cloud5 (Cloud5) package { import States.PlayState.*; public dynamic class Cloud5 extends Cloud { } }//package
Section 242
//Cloud6 (Cloud6) package { import States.PlayState.*; public dynamic class Cloud6 extends Cloud { } }//package
Section 243
//ConcreteBlock1 (ConcreteBlock1) package { import States.PlayState.*; public dynamic class ConcreteBlock1 extends DevidableWall { } }//package
Section 244
//ConcreteBlock2 (ConcreteBlock2) package { import States.PlayState.*; public dynamic class ConcreteBlock2 extends DevidableWall { } }//package
Section 245
//ConcreteBlock3 (ConcreteBlock3) package { import States.PlayState.*; public dynamic class ConcreteBlock3 extends DevidableWall { } }//package
Section 246
//ConcreteBlock4 (ConcreteBlock4) package { import States.PlayState.*; public dynamic class ConcreteBlock4 extends DevidableWall { } }//package
Section 247
//ConcreteBlockBig (ConcreteBlockBig) package { import States.PlayState.*; public dynamic class ConcreteBlockBig extends DevidableWall { } }//package
Section 248
//ConcreteBlockBigHalf (ConcreteBlockBigHalf) package { import States.PlayState.*; public dynamic class ConcreteBlockBigHalf extends DevidableWall { } }//package
Section 249
//ConcreteBlockBigHalfLong (ConcreteBlockBigHalfLong) package { import States.PlayState.*; public dynamic class ConcreteBlockBigHalfLong extends DevidableWall { } }//package
Section 250
//ConcreteBlockBigLong (ConcreteBlockBigLong) package { import States.PlayState.*; public dynamic class ConcreteBlockBigLong extends DevidableWall { } }//package
Section 251
//ConcreteBlockBigTriangle (ConcreteBlockBigTriangle) package { import States.PlayState.*; public dynamic class ConcreteBlockBigTriangle extends DevidableWall { } }//package
Section 252
//ConcreteTriangle (ConcreteTriangle) package { import States.PlayState.*; public dynamic class ConcreteTriangle extends DevidableWall { } }//package
Section 253
//Constant (Constant) package { import Utils.*; public class Constant { public static const WINDOW_WIDTH:Number = 640; public static const WINDOW_HEIGHT:Number = 480; public static const DESTRUCTION_WAVE_SPEED:Number = (300 / PHYS_SCALE); public static const DESTRUCTION_WAVE_MAX_RADIUS:Number = (200 / PHYS_SCALE); public static const BOMB_IMPULSE:Number = 3; public static const DESTRUCTION_DISTANCE:Number = (50 / PHYS_SCALE); public static const SQR_DESTRUCTION_DISTANCE:Number = (DESTRUCTION_DISTANCE * DESTRUCTION_DISTANCE); public static const PHYSICS_POSITIONS_ITERATION_COUNT:int = 1; public static const PHYSICS_VELOCITY_ITERATION_COUNT:int = 8; public static const TIME_STEP:Number = 0.025; public static const PHYS_SCALE:Number = 30; public static const SHARED_OBJECT_NAME:String = "collapse_it_so_name"; public static const MIN_BOOM_DISTANCE:Number = 0.35; public static const MAX_BOOM_DISTANCE:Number = 3; public static const MIN_DAMAGE_SPEED:Number = 3.33333333333333; public static const BLOOD_SIZE_DEVIATION:Number = 0.4; public static const BLOOD_LIVE_TIME:Number = 0.6; public static const BLOOD_ALPHA_SPEED:Number = 2.5; public static const BLOOD_WOUND_ANGLE_DEVIATION:Number = 20; public static const BLOOD_WOUND_SPEED:Number = 40; public static const BLOOD_WOUND_DIE_SPEED:Number = 0.45; public static const AGI_DEVELOPER_KEY:String = "f890223d577ebf906b907e1ced7c917e"; public static const AGI_GAME_KEY:String = "collapse-it"; public static const BLOOD_FOUNTAIN_COUNT:Number = 4; public static const BLOOD_SPEED:Number = 100; public static const BLOOD_FOUNTAIN_SCATTER:Number = MathUtils.GradToRad(20); public static var m_debugMode:Boolean = false; } }//package
Section 254
//Crown (Crown) package { public dynamic class Crown extends Achievement { } }//package
Section 255
//CrownHint (CrownHint) package { public dynamic class CrownHint extends Hint { } }//package
Section 256
//DirectionMarker (DirectionMarker) package { public dynamic class DirectionMarker extends InvisibleClip { } }//package
Section 257
//Dynamite (Dynamite) package { public dynamic class Dynamite extends Achievement { } }//package
Section 258
//DynamiteHint (DynamiteHint) package { public dynamic class DynamiteHint extends Hint { } }//package
Section 259
//E (E) package { import States.*; public dynamic class E extends MainMenuLetter { } }//package
Section 260
//Face_0 (Face_0) package { import flash.display.*; public dynamic class Face_0 extends MovieClip { public function Face_0(){ addFrameScript(1, frame2); } function frame2(){ stop(); } } }//package
Section 261
//Face_1 (Face_1) package { import flash.display.*; public dynamic class Face_1 extends MovieClip { public function Face_1(){ addFrameScript(1, frame2); } function frame2(){ stop(); } } }//package
Section 262
//Face_2 (Face_2) package { import flash.display.*; public dynamic class Face_2 extends MovieClip { public function Face_2(){ addFrameScript(1, frame2); } function frame2(){ stop(); } } }//package
Section 263
//Face_3 (Face_3) package { import flash.display.*; public dynamic class Face_3 extends MovieClip { public function Face_3(){ addFrameScript(1, frame2); } function frame2(){ stop(); } } }//package
Section 264
//Face_4 (Face_4) package { import flash.display.*; public dynamic class Face_4 extends MovieClip { public function Face_4(){ addFrameScript(1, frame2); } function frame2(){ stop(); } } }//package
Section 265
//Face_5 (Face_5) package { import flash.display.*; public dynamic class Face_5 extends MovieClip { public function Face_5(){ addFrameScript(1, frame2); } function frame2(){ stop(); } } }//package
Section 266
//Face_6 (Face_6) package { import flash.display.*; public dynamic class Face_6 extends MovieClip { public function Face_6(){ addFrameScript(1, frame2); } function frame2(){ stop(); } } }//package
Section 267
//Fifty (Fifty) package { public dynamic class Fifty extends Achievement { } }//package
Section 268
//FiftyHint (FiftyHint) package { public dynamic class FiftyHint extends Hint { } }//package
Section 269
//FirstStepArrow (FirstStepArrow) package { import flash.display.*; public dynamic class FirstStepArrow extends MovieClip { } }//package
Section 270
//Flower (Flower) package { import States.PlayState.*; public dynamic class Flower extends DestroyableBackground { } }//package
Section 271
//FountainBoom (FountainBoom) package { import Utils.*; public dynamic class FountainBoom extends Smoke { } }//package
Section 272
//GameCompleteState (GameCompleteState) package { import States.*; public dynamic class GameCompleteState extends GameCompleteState { } }//package
Section 273
//GameData (GameData) package { import flash.events.*; import flash.display.*; import Main.*; import States.PlayState.*; import States.*; import flash.system.*; import flash.net.*; public class GameData { public static const totalLevelsCount:int = 34; public static var m_invertedControl:Boolean = false; public static var m_isBloodDisabled:Boolean = false; private static var m_scorePerLevel:Array = new Array(); private static var m_levelsWithStar:Array = new Array(); private static var m_levelsCompleted:int = 0; private static var m_alreadyPlayed:Array = new Array(); private static var m_achievements:Array = new Array(); private static var m_killedCount:int = 0; private static var m_levelsInRaw:int = 0; public static var m_isHintsOn:Boolean = true; private static var m_haveAds:Boolean = false; private static var m_newAchievement:String = ""; private static var m_lastPlayedLevelNum:int = -1; private static var m_oldAchiemeventCount:int; public static var m_isKongregate:Boolean = false; public static var kongregate; public static var m_agi:Object = null; public static function isHintsOn():Boolean{ return (m_isHintsOn); } public static function setHideTips(_arg1:Boolean):void{ if (_arg1){ hideTips(); } else { showTips(); }; } public static function get levelsCompleted():int{ return (m_levelsCompleted); } public static function get totalScore():int{ var _local2:int; var _local1:int; for each (_local2 in m_scorePerLevel) { _local1 = (_local1 + _local2); }; return (_local1); } public static function getBestScore(_arg1:int):int{ return (m_scorePerLevel[_arg1]); } public static function getBestScoreOnLevel(_arg1:int):int{ return (m_scorePerLevel[_arg1]); } public static function onLoseLevel(_arg1:int):void{ m_levelsInRaw = 0; save(); } public static function onRestart():void{ m_levelsInRaw = 0; } public static function onWinLevel(_arg1:int, _arg2:int, _arg3:Boolean, _arg4:int):void{ m_killedCount = (m_killedCount + _arg4); if ((((_arg1 == Achievements.LEVEL_FOR_GOLD_GRENADE)) && ((PlayState.m_bombsUsed <= 4)))){ giveAchievement(Achievements.GOLD_GRENADE); }; if (_arg1 == 0){ giveAchievement(Achievements.DYNAMITE); }; if (m_killedCount >= 20){ giveAchievement(Achievements.TWENTY); }; if (m_killedCount >= 50){ giveAchievement(Achievements.FIFTY); }; if (m_killedCount >= 100){ giveAchievement(Achievements.HUNDRED); }; if (_arg1 == m_levelsCompleted){ m_levelsCompleted++; if (m_levelsCompleted == 10){ giveAchievement(Achievements.BRONSE_CUP); }; if (m_levelsCompleted == 20){ giveAchievement(Achievements.SILVER_CUP); }; if (m_levelsCompleted == 30){ giveAchievement(Achievements.GOLD_CUP); }; }; if (_arg3){ m_levelsWithStar[_arg1] = true; }; var _local5:int; var _local6:int; while (_local6 < totalLevelsCount) { if (isLevelWithStar(_local6)){ _local5++; }; _local6++; }; if (_local5 >= 10){ giveAchievement(Achievements.BRONSE_BOMB_WITH_WINGS); }; if (_local5 >= 20){ giveAchievement(Achievements.SILVER_BOMB_WITH_WINGS); }; if (_local5 >= 30){ giveAchievement(Achievements.GOLD_BOMB_WITH_WINGS); }; m_scorePerLevel[_arg1] = Math.max(m_scorePerLevel[_arg1], _arg2); save(); m_lastPlayedLevelNum = _arg1; submitKongregateLevel(); submitKongregateScore(); } public static function save():void{ var _local1:SharedObject = SharedObject.getLocal(Constant.SHARED_OBJECT_NAME, "/"); _local1.data.m_levelsCompleted = m_levelsCompleted; _local1.data.m_scorePerLevel = m_scorePerLevel; _local1.data.m_levelsWithStar = m_levelsWithStar; _local1.data.m_achievements = m_achievements; _local1.data.m_soundVolume = SoundManager.getSoundVolume(); _local1.data.m_musicVolume = SoundManager.getMusicVolume(); _local1.data.m_killedCount = m_killedCount; _local1.data.m_isHintsOn = m_isHintsOn; _local1.data.m_invertedControl = m_invertedControl; _local1.flush(); _local1.close(); } public static function init():void{ var _local1:int; while (_local1 < totalLevelsCount) { m_alreadyPlayed.push(false); _local1++; }; } public static function isAlreadyPlayed(_arg1):Boolean{ return (m_alreadyPlayed[_arg1]); } public static function load():void{ var _local1:int; var _local2:SharedObject = SharedObject.getLocal(Constant.SHARED_OBJECT_NAME, "/", false); if (_local2.size != 0){ m_levelsCompleted = _local2.data.m_levelsCompleted; m_scorePerLevel = _local2.data.m_scorePerLevel; m_levelsWithStar = _local2.data.m_levelsWithStar; m_achievements = _local2.data.m_achievements; m_killedCount = _local2.data.m_killedCount; m_isHintsOn = _local2.data.m_isHintsOn; m_invertedControl = _local2.data.m_invertedControl; SoundManager.setSoundVolume(_local2.data.m_soundVolume); SoundManager.setMusicVolume(_local2.data.m_musicVolume); } else { m_scorePerLevel = new Array(); _local1 = 0; while (_local1 < totalLevelsCount) { m_scorePerLevel.push(0); _local1++; }; m_levelsWithStar = new Array(); _local1 = 0; while (_local1 < totalLevelsCount) { m_levelsWithStar.push(false); _local1++; }; }; if (m_achievements == null){ m_achievements = new Array(); }; } public static function isLevelWithStar(_arg1):Boolean{ return (m_levelsWithStar[_arg1]); } public static function resetGame():void{ var _local1:int; m_killedCount = 0; m_levelsInRaw = 0; m_scorePerLevel = new Array(); _local1 = 0; while (_local1 < totalLevelsCount) { m_scorePerLevel.push(0); _local1++; }; m_levelsWithStar = new Array(); _local1 = 0; while (_local1 < totalLevelsCount) { m_levelsWithStar.push(false); _local1++; }; m_levelsCompleted = 0; m_achievements = new Array(); save(); } public static function onStartLevel(_arg1:int):void{ m_alreadyPlayed[_arg1] = true; m_oldAchiemeventCount = m_achievements.length; } public static function wasNewAchievements():Boolean{ return (!((m_oldAchiemeventCount == m_achievements.length))); } public static function getSelectLevelScreen():GameState{ return (new SelectLevelState()); } public static function getNextState(_arg1:int):GameState{ if (_arg1 >= totalLevelsCount){ return (new GameCompleteState()); }; return (new PlayState(_arg1)); } public static function haveAchievement(_arg1:String):Boolean{ return (!((m_achievements.indexOf(_arg1) == -1))); } public static function giveAchievement(_arg1:String):void{ if (Constant.m_debugMode){ trace("try to give", _arg1); }; if (!haveAchievement(_arg1)){ if (Constant.m_debugMode){ trace("give", _arg1); }; m_achievements.push(_arg1); m_newAchievement = _arg1; submitKongregateAchievements(_arg1); }; if (m_achievements.length == (Achievements.ALL.length - 1)){ if (!haveAchievement(Achievements.CROWN)){ giveAchievement(Achievements.CROWN); }; }; } public static function hideTips():void{ m_isHintsOn = false; save(); } public static function showTips():void{ var _local1:int; while (_local1 < m_alreadyPlayed.length) { m_alreadyPlayed[_local1] = false; _local1++; }; m_isHintsOn = true; save(); } public static function haveAds():Boolean{ return (m_haveAds); } public static function hideAds():void{ m_haveAds = false; } public static function canSubmitScore():Boolean{ return (true); } public static function hasKongregateAPI():Boolean{ return (m_isKongregate); } private static function submitKongregateAchievements(_arg1:String):void{ var achiv_name = _arg1; if (hasKongregateAPI()){ try { kongregate.stats.submit(achiv_name, 1); } catch(e:Error) { trace(e, e.getStackTrace()); }; }; } private static function submitKongregateScore():void{ if (hasKongregateAPI()){ try { kongregate.stats.submit("Score", totalScore); } catch(e:Error) { trace(e, e.getStackTrace()); }; }; } private static function submitKongregateLevel():void{ if (hasKongregateAPI()){ try { kongregate.stats.submit("LevelsCompleted", levelsCompleted); } catch(e:Error) { trace(e, e.getStackTrace()); }; }; } public static function getNewAchievement():String{ return (m_newAchievement); } public static function initAgi():void{ var _local1 = "http://agi.armorgames.com/assets/agi/AGI.swf"; Security.allowDomain(_local1); var _local2:URLRequest = new URLRequest(_local1); var _local3:Loader = new Loader(); _local3.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); _local3.load(_local2); } private static function loadComplete(_arg1:Event):void{ m_agi = _arg1.currentTarget.content; CurrentStateManager.getInstance().addChild((m_agi as DisplayObject)); m_agi.init(Constant.AGI_DEVELOPER_KEY, Constant.AGI_GAME_KEY); } } }//package
Section 274
//GlassParticleClip (GlassParticleClip) package { import flash.display.*; public dynamic class GlassParticleClip extends MovieClip { } }//package
Section 275
//GoldBombWithWings (GoldBombWithWings) package { public dynamic class GoldBombWithWings extends Achievement { } }//package
Section 276
//GoldBombWithWingsHint (GoldBombWithWingsHint) package { public dynamic class GoldBombWithWingsHint extends Hint { } }//package
Section 277
//GoldCup (GoldCup) package { public dynamic class GoldCup extends Achievement { } }//package
Section 278
//GoldCupHint (GoldCupHint) package { public dynamic class GoldCupHint extends Hint { } }//package
Section 279
//GoldGrenade (GoldGrenade) package { public dynamic class GoldGrenade extends Achievement { } }//package
Section 280
//GoldGrenadeHint (GoldGrenadeHint) package { public dynamic class GoldGrenadeHint extends Hint { } }//package
Section 281
//Ground (Ground) package { import States.PlayState.*; public dynamic class Ground extends StaticShape { } }//package
Section 282
//happy_song_1 (happy_song_1) package { import flash.media.*; public dynamic class happy_song_1 extends Sound { } }//package
Section 283
//happy_song_2 (happy_song_2) package { import flash.media.*; public dynamic class happy_song_2 extends Sound { } }//package
Section 284
//HideTips (HideTips) package { import flash.display.*; public dynamic class HideTips extends MovieClip { } }//package
Section 285
//Hint (Hint) package { import flash.display.*; import flash.text.*; public class Hint extends MovieClip { private const m_hideSpeed:Number = 0.3; private const m_showSpeed:Number = 0.2; public var m_text:TextField; private var m_isShow:Boolean;// = false public function Hint(){ mouseEnabled = false; mouseChildren = false; alpha = 0; } public function setText(_arg1:String):void{ m_text.autoSize = TextFieldAutoSize.CENTER; m_text.htmlText = _arg1; m_text.y = ((height / 2) - (m_text.height / 2)); } override public function set x(_arg1:Number):void{ super.x = _arg1; if (super.x < 0){ super.x = 0; }; if ((super.x + (width / 2)) > 640){ super.x = (640 - (width / 2)); }; } override public function set y(_arg1:Number):void{ super.y = _arg1; if (super.y < 0){ super.y = 0; }; if ((super.y + height) > 480){ super.y = (480 - height); }; } public function update():void{ if (m_isShow){ if ((alpha = (alpha + m_showSpeed)) > 1){ alpha = 1; }; } else { if ((alpha = (alpha - m_hideSpeed)) < 0){ alpha = 0; }; }; } public function isShow():Boolean{ return (m_isShow); } public function hide():void{ m_isShow = false; } public function show():void{ m_isShow = true; } } }//package
Section 286
//Hundred (Hundred) package { public dynamic class Hundred extends Achievement { } }//package
Section 287
//HundredHint (HundredHint) package { public dynamic class HundredHint extends Hint { } }//package
Section 288
//Hydrant (Hydrant) package { import States.PlayState.*; public dynamic class Hydrant extends DestroyableBackground { } }//package
Section 289
//I (I) package { import States.*; public dynamic class I extends MainMenuLetter { } }//package
Section 290
//InvisibleClip (InvisibleClip) package { import flash.display.*; public class InvisibleClip extends MovieClip { public function InvisibleClip(){ visible = false; } } }//package
Section 291
//L (L) package { import States.*; public dynamic class L extends MainMenuLetter { } }//package
Section 292
//Lamp (Lamp) package { import States.PlayState.*; public dynamic class Lamp extends DestroyableBackground { } }//package
Section 293
//LeftHand_0 (LeftHand_0) package { import flash.display.*; public dynamic class LeftHand_0 extends MovieClip { } }//package
Section 294
//LeftHand_1 (LeftHand_1) package { import flash.display.*; public dynamic class LeftHand_1 extends MovieClip { } }//package
Section 295
//LeftHand_2 (LeftHand_2) package { import flash.display.*; public dynamic class LeftHand_2 extends MovieClip { } }//package
Section 296
//LeftHand_3 (LeftHand_3) package { import flash.display.*; public dynamic class LeftHand_3 extends MovieClip { } }//package
Section 297
//LeftHand_4 (LeftHand_4) package { import flash.display.*; public dynamic class LeftHand_4 extends MovieClip { } }//package
Section 298
//LeftHand_5 (LeftHand_5) package { import flash.display.*; public dynamic class LeftHand_5 extends MovieClip { } }//package
Section 299
//LeftHand_6 (LeftHand_6) package { import flash.display.*; public dynamic class LeftHand_6 extends MovieClip { } }//package
Section 300
//Leg_0 (Leg_0) package { import flash.display.*; public dynamic class Leg_0 extends MovieClip { } }//package
Section 301
//Leg_1 (Leg_1) package { import flash.display.*; public dynamic class Leg_1 extends MovieClip { } }//package
Section 302
//Leg_2 (Leg_2) package { import flash.display.*; public dynamic class Leg_2 extends MovieClip { } }//package
Section 303
//Leg_3 (Leg_3) package { import flash.display.*; public dynamic class Leg_3 extends MovieClip { } }//package
Section 304
//Leg_4 (Leg_4) package { import flash.display.*; public dynamic class Leg_4 extends MovieClip { } }//package
Section 305
//Leg_5 (Leg_5) package { import flash.display.*; public dynamic class Leg_5 extends MovieClip { } }//package
Section 306
//Leg_6 (Leg_6) package { import flash.display.*; public dynamic class Leg_6 extends MovieClip { } }//package
Section 307
//Level00 (Level00) package { import flash.display.*; public dynamic class Level00 extends MovieClip { public var m_secondStep:MovieClip; public var m_firstStep:FirstStepArrow; } }//package
Section 308
//Level01 (Level01) package { import flash.display.*; public dynamic class Level01 extends MovieClip { } }//package
Section 309
//Level02 (Level02) package { import flash.display.*; public dynamic class Level02 extends MovieClip { } }//package
Section 310
//Level03 (Level03) package { import flash.display.*; public dynamic class Level03 extends MovieClip { } }//package
Section 311
//Level04 (Level04) package { import flash.display.*; public dynamic class Level04 extends MovieClip { } }//package
Section 312
//Level05 (Level05) package { import flash.display.*; public dynamic class Level05 extends MovieClip { } }//package
Section 313
//Level06 (Level06) package { import flash.display.*; public dynamic class Level06 extends MovieClip { } }//package
Section 314
//Level07 (Level07) package { import flash.display.*; public dynamic class Level07 extends MovieClip { } }//package
Section 315
//Level08 (Level08) package { import flash.display.*; public dynamic class Level08 extends MovieClip { } }//package
Section 316
//Level09 (Level09) package { import flash.display.*; public dynamic class Level09 extends MovieClip { } }//package
Section 317
//Level10 (Level10) package { import flash.display.*; public dynamic class Level10 extends MovieClip { } }//package
Section 318
//Level11 (Level11) package { import flash.display.*; public dynamic class Level11 extends MovieClip { } }//package
Section 319
//Level12 (Level12) package { import flash.display.*; public dynamic class Level12 extends MovieClip { } }//package
Section 320
//Level13 (Level13) package { import flash.display.*; public dynamic class Level13 extends MovieClip { } }//package
Section 321
//Level14 (Level14) package { import flash.display.*; public dynamic class Level14 extends MovieClip { } }//package
Section 322
//Level15 (Level15) package { import flash.display.*; public dynamic class Level15 extends MovieClip { } }//package
Section 323
//Level16 (Level16) package { import flash.display.*; public dynamic class Level16 extends MovieClip { } }//package
Section 324
//Level17 (Level17) package { import flash.display.*; public dynamic class Level17 extends MovieClip { } }//package
Section 325
//Level18 (Level18) package { import flash.display.*; public dynamic class Level18 extends MovieClip { } }//package
Section 326
//Level19 (Level19) package { import flash.display.*; public dynamic class Level19 extends MovieClip { } }//package
Section 327
//Level20 (Level20) package { import flash.display.*; public dynamic class Level20 extends MovieClip { } }//package
Section 328
//Level21 (Level21) package { import flash.display.*; public dynamic class Level21 extends MovieClip { } }//package
Section 329
//Level22 (Level22) package { import flash.display.*; public dynamic class Level22 extends MovieClip { } }//package
Section 330
//Level23 (Level23) package { import flash.display.*; public dynamic class Level23 extends MovieClip { } }//package
Section 331
//Level24 (Level24) package { import flash.display.*; public dynamic class Level24 extends MovieClip { } }//package
Section 332
//Level25 (Level25) package { import flash.display.*; public dynamic class Level25 extends MovieClip { } }//package
Section 333
//Level26 (Level26) package { import flash.display.*; public dynamic class Level26 extends MovieClip { } }//package
Section 334
//Level27 (Level27) package { import flash.display.*; public dynamic class Level27 extends MovieClip { } }//package
Section 335
//Level28 (Level28) package { import flash.display.*; public dynamic class Level28 extends MovieClip { } }//package
Section 336
//Level29 (Level29) package { import flash.display.*; public dynamic class Level29 extends MovieClip { } }//package
Section 337
//Level30 (Level30) package { import flash.display.*; public dynamic class Level30 extends MovieClip { } }//package
Section 338
//Level31 (Level31) package { import flash.display.*; public dynamic class Level31 extends MovieClip { } }//package
Section 339
//Level32 (Level32) package { import flash.display.*; public dynamic class Level32 extends MovieClip { } }//package
Section 340
//Level33 (Level33) package { import flash.display.*; public dynamic class Level33 extends MovieClip { } }//package
Section 341
//LevelButton (LevelButton) package { import States.*; public dynamic class LevelButton extends SelectLevelButton { } }//package
Section 342
//LevelPerfectButton (LevelPerfectButton) package { import flash.display.*; public dynamic class LevelPerfectButton extends SimpleButton { } }//package
Section 343
//LightCheckBox (LightCheckBox) package { public dynamic class LightCheckBox extends CheckBox { } }//package
Section 344
//LinksManager (LinksManager) package { import flash.net.*; public class LinksManager { public static const MAIN_PAGE_URL:String = "http://armorgames.com"; public static const WALKROUTGH_URL:String = "http://armorgames.com/guide/collapse-it-video-walk-through"; public static const TWITTER:String = "http://twitter.com/armorgames"; public static const FACEBOOK:String = "http://www.facebook.com/ArmorGames"; public static function goURL(_arg1:String, _arg2:String=""):void{ navigateToURL(new URLRequest(_arg1), "_blank"); } } }//package
Section 345
//LittleBoom (LittleBoom) package { import Utils.*; public dynamic class LittleBoom extends Smoke { } }//package
Section 346
//lose_sound (lose_sound) package { import flash.media.*; public dynamic class lose_sound extends Sound { } }//package
Section 347
//LoseStateView (LoseStateView) package { import flash.display.*; public dynamic class LoseStateView extends MovieClip { public var m_panel:MovieClip; } }//package
Section 348
//main_menu_song (main_menu_song) package { import flash.media.*; public dynamic class main_menu_song extends Sound { } }//package
Section 349
//MainMenuBomb (MainMenuBomb) package { import flash.display.*; public dynamic class MainMenuBomb extends MovieClip { public var m_wick:MovieClip; } }//package
Section 350
//MainMenuLettersClip (MainMenuLettersClip) package { import flash.display.*; public dynamic class MainMenuLettersClip extends MovieClip { public var m_bomb:MainMenuBomb; } }//package
Section 351
//man_cry_1 (man_cry_1) package { import flash.media.*; public dynamic class man_cry_1 extends Sound { } }//package
Section 352
//man_cry_2 (man_cry_2) package { import flash.media.*; public dynamic class man_cry_2 extends Sound { } }//package
Section 353
//man_cry_3 (man_cry_3) package { import flash.media.*; public dynamic class man_cry_3 extends Sound { } }//package
Section 354
//man_cry_4 (man_cry_4) package { import flash.media.*; public dynamic class man_cry_4 extends Sound { } }//package
Section 355
//NewAchievementStateView (NewAchievementStateView) package { import flash.display.*; public dynamic class NewAchievementStateView extends MovieClip { public var m_panel:MovieClip; public function NewAchievementStateView(){ addFrameScript(29, frame30); } function frame30(){ stop(); } } }//package
Section 356
//OptionsStateView (OptionsStateView) package { import flash.display.*; public dynamic class OptionsStateView extends MovieClip { public var m_panel:MovieClip; } }//package
Section 357
//P (P) package { import States.*; public dynamic class P extends MainMenuLetter { } }//package
Section 358
//Pers0Marker (Pers0Marker) package { import flash.display.*; public dynamic class Pers0Marker extends MovieClip { public var m_rightLegToTorso:VertexMarker; public var m_leftHandToTorso:VertexMarker; public var m_headToTorso:VertexMarker; public var m_torso:Torso_0; public var m_rightLeg:Leg_0; public var m_leftLegToTorso:VertexMarker; public var m_leftHand:LeftHand_0; public var m_rightHandToTorso:VertexMarker; public var m_head:Face_0; public var m_rightHand:RightHand_0; public var m_leftLeg:Leg_0; } }//package
Section 359
//Pers1Marker (Pers1Marker) package { import flash.display.*; public dynamic class Pers1Marker extends MovieClip { } }//package
Section 360
//Pers2Marker (Pers2Marker) package { import flash.display.*; public dynamic class Pers2Marker extends MovieClip { } }//package
Section 361
//Pers3Marker (Pers3Marker) package { import flash.display.*; public dynamic class Pers3Marker extends MovieClip { } }//package
Section 362
//Pers4Marker (Pers4Marker) package { import flash.display.*; public dynamic class Pers4Marker extends MovieClip { } }//package
Section 363
//Pers5Marker (Pers5Marker) package { import flash.display.*; public dynamic class Pers5Marker extends MovieClip { } }//package
Section 364
//Pers6Marker (Pers6Marker) package { import flash.display.*; public dynamic class Pers6Marker extends MovieClip { } }//package
Section 365
//PlayStateView (PlayStateView) package { import flash.display.*; import States.PlayState.*; import flash.text.*; public dynamic class PlayStateView extends MovieClip { public var m_score:TextField; public var m_topPanel:MovieClip; public var m_buttonMenu:MovieClip; public var m_buttonWalkthrough:SimpleButton; public var m_fps:TextField; public var m_buttonRestart:MovieClip; public var m_timer:MovieClip; public var m_lockedBoomButton:MovieClip; public var m_bombsPanel:BombsPanel; public var m_level:TextField; public var m_buttonBoom:SimpleButton; public var m_buttonMoreGames:SimpleButton; public var m_bottomPanel:SimpleButton; public var m_lockedBomb:MovieClip; public var m_killsLeft:TextField; } }//package
Section 366
//PointsClip (PointsClip) package { import flash.display.*; import flash.text.*; public dynamic class PointsClip extends MovieClip { public var m_label:TextField; } }//package
Section 367
//PreloaderCloud1 (PreloaderCloud1) package { import States.*; public dynamic class PreloaderCloud1 extends PreloaderClouds { } }//package
Section 368
//PreloaderCloud2 (PreloaderCloud2) package { import States.*; public dynamic class PreloaderCloud2 extends PreloaderClouds { } }//package
Section 369
//PreloaderCloud3 (PreloaderCloud3) package { import States.*; public dynamic class PreloaderCloud3 extends PreloaderClouds { } }//package
Section 370
//PreloaderCloud4 (PreloaderCloud4) package { import States.*; public dynamic class PreloaderCloud4 extends PreloaderClouds { } }//package
Section 371
//PreloaderCloud5 (PreloaderCloud5) package { import States.*; public dynamic class PreloaderCloud5 extends PreloaderClouds { } }//package
Section 372
//RightHand_0 (RightHand_0) package { import flash.display.*; public dynamic class RightHand_0 extends MovieClip { } }//package
Section 373
//RightHand_1 (RightHand_1) package { import flash.display.*; public dynamic class RightHand_1 extends MovieClip { } }//package
Section 374
//RightHand_2 (RightHand_2) package { import flash.display.*; public dynamic class RightHand_2 extends MovieClip { } }//package
Section 375
//RightHand_3 (RightHand_3) package { import flash.display.*; public dynamic class RightHand_3 extends MovieClip { } }//package
Section 376
//RightHand_4 (RightHand_4) package { import flash.display.*; public dynamic class RightHand_4 extends MovieClip { } }//package
Section 377
//RightHand_5 (RightHand_5) package { import flash.display.*; public dynamic class RightHand_5 extends MovieClip { } }//package
Section 378
//RightHand_6 (RightHand_6) package { import flash.display.*; public dynamic class RightHand_6 extends MovieClip { } }//package
Section 379
//Roof (Roof) package { import States.PlayState.*; public dynamic class Roof extends DevidableWall { } }//package
Section 380
//S (S) package { import States.*; public dynamic class S extends MainMenuLetter { } }//package
Section 381
//ScrollBar (ScrollBar) package { import flash.events.*; import flash.display.*; public class ScrollBar extends MovieClip { private var m_isMouseDown:Boolean;// = false public var m_slider:MovieClip; private var m_progress:Number; private var m_maxWidth:Number; public static const EVENT_CHANGE:String = "eventChange"; public function ScrollBar(){ buttonMode = true; mouseChildren = false; addEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown); addEventListener(MouseEvent.MOUSE_MOVE, handleMouseMove); addEventListener(Event.ADDED_TO_STAGE, handleAddToStage); addEventListener(Event.REMOVED_FROM_STAGE, handleRemoveFromStage); m_maxWidth = width; } public function getProgress():Number{ return (m_progress); } private function handleRemoveFromStage(_arg1:Event):void{ removeEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown); removeEventListener(MouseEvent.MOUSE_MOVE, handleMouseMove); removeEventListener(Event.ADDED_TO_STAGE, handleAddToStage); removeEventListener(Event.REMOVED_FROM_STAGE, handleRemoveFromStage); stage.removeEventListener(MouseEvent.MOUSE_UP, handleMouseUp); } private function handleAddToStage(_arg1:Event):void{ stage.addEventListener(MouseEvent.MOUSE_UP, handleMouseUp); } private function handleMouseDown(_arg1:MouseEvent):void{ m_isMouseDown = true; handleMouseMove(_arg1); } public function setProgress(_arg1:Number):void{ if (_arg1 < 0){ _arg1 = 0; }; if (_arg1 > 1){ _arg1 = 1; }; m_progress = _arg1; m_slider.x = (m_maxWidth * m_progress); } private function handleMouseMove(_arg1:MouseEvent):void{ if (m_isMouseDown){ setProgress((_arg1.localX / m_maxWidth)); dispatchEvent(new Event(EVENT_CHANGE)); }; } private function handleMouseUp(_arg1:MouseEvent):void{ m_isMouseDown = false; } } }//package
Section 382
//SilverBombWithWings (SilverBombWithWings) package { public dynamic class SilverBombWithWings extends Achievement { } }//package
Section 383
//SilverBombWithWingsHint (SilverBombWithWingsHint) package { public dynamic class SilverBombWithWingsHint extends Hint { } }//package
Section 384
//SilverCup (SilverCup) package { public dynamic class SilverCup extends Achievement { } }//package
Section 385
//SilverCupHint (SilverCupHint) package { public dynamic class SilverCupHint extends Hint { } }//package
Section 386
//SingleBrick0 (SingleBrick0) package { import flash.display.*; public dynamic class SingleBrick0 extends MovieClip { } }//package
Section 387
//SingleBrick1 (SingleBrick1) package { import flash.display.*; public dynamic class SingleBrick1 extends MovieClip { } }//package
Section 388
//Sky1 (Sky1) package { import States.PlayState.*; public dynamic class Sky1 extends SkyLayerObject { } }//package
Section 389
//SoundButton (SoundButton) package { import flash.events.*; import flash.display.*; public class SoundButton extends MovieClip { private var m_sound:DisplayObject;// = null private var m_isSoundOn:Boolean;// = false public function SoundButton(){ onSoundClick(null); } private function onSoundClick(_arg1:MouseEvent):void{ m_isSoundOn = !(m_isSoundOn); if (m_sound){ m_sound.removeEventListener(MouseEvent.CLICK, onSoundClick); removeChild(m_sound); }; if (m_isSoundOn){ m_sound = new SoundOn(); } else { m_sound = new SoundOff(); }; m_sound.x = 602; m_sound.y = 4; addChild(m_sound); m_sound.addEventListener(MouseEvent.CLICK, onSoundClick); SoundManager.setSoundEnable(m_isSoundOn); } } }//package
Section 390
//SoundConst (SoundConst) package { public class SoundConst { public static const NO_BOMBS:String = "no_bombs"; public static const BODY_DIE_1:String = "body_die_1"; public static const BODY_DIE_2:String = "body_die_2"; public static const BRICKS_FALL_1:String = "bricks_fall_1"; public static const BRICKS_FALL_3:String = "bricks_fall_3"; public static const MAN_CRY_1:String = "man_cry_1"; public static const MAN_CRY_2:String = "man_cry_2"; public static const MAN_CRY_3:String = "man_cry_3"; public static const MAN_CRY_4:String = "man_cry_4"; public static const WOMAN_CRY_1:String = "woman_cry_1"; public static const WOMAN_CRY_2:String = "woman_cry_2"; public static const WOMAN_CRY_3:String = "woman_cry_3"; public static const WOMAN_CRY_4:String = "woman_cry_4"; public static const CLICK:String = "click"; public static const HAPPY_SONG_1:String = "happy_song_1"; public static const HAPPY_SONG_2:String = "happy_song_2"; public static const MAIN_MENU_MUSIC:String = "main_menu_song"; public static const PERFECT_STAR:String = "perfect_star"; public static const WIN:String = "win_sound"; public static const LOSE:String = "lose_sound"; public static const BOOM_1:String = "boom_1"; public static const BOOM_2:String = "boom_2"; public static const BOOM_3:String = "boom_3"; public static const BOOM_4:String = "boom_4"; public static const BOMB_FALL:String = "bomb_fall"; public static const POINTS:String = "points"; } }//package
Section 391
//SoundManager (SoundManager) package { import flash.media.*; import flash.system.*; public class SoundManager { private static const vtFadeOut:int = 0; private static const vtFadeIn:int = 1; private static const vtNormal:int = 2; private static var m_isSoundEnable:Boolean = true; private static var m_currentLoop:SoundChannel; private static var m_currentLoopName:String; private static var m_soundVolume:Number = 1; private static var m_musicVolume:Number = 0.55; private static var m_liveTime:Number; private static var m_volumeType:int = 2; private static var m_soundAfterFade:String; private static var m_musicVolumeBackup:Number; public static function setSoundVolume(_arg1:Number):void{ m_soundVolume = _arg1; } public static function getMusicVolume():Number{ return (m_musicVolume); } public static function getSoundVolume():Number{ return (m_soundVolume); } public static function setMusicVolume(_arg1:Number):void{ var _local2:SoundTransform; if (_arg1 < 0.01){ _arg1 = 0; }; if (_arg1 > 1){ _arg1 = 1; }; m_musicVolume = _arg1; if (m_currentLoop){ _local2 = m_currentLoop.soundTransform; _local2.volume = _arg1; m_currentLoop.soundTransform = _local2; }; } public static function setSoundEnable(_arg1:Boolean):void{ var _local2:String; m_volumeType = vtNormal; m_isSoundEnable = _arg1; if (m_isSoundEnable){ _local2 = m_currentLoopName; m_currentLoopName = ""; playLoop(_local2); } else { if (m_currentLoop){ m_currentLoop.stop(); }; }; } public static function play(_arg1:String):SoundChannel{ var sound_class:Class; var sound:Sound; var channel:SoundChannel; var transform:SoundTransform; var name = _arg1; if (m_isSoundEnable){ try { sound_class = (ApplicationDomain.currentDomain.getDefinition(name) as Class); sound = new (sound_class); channel = sound.play(); transform = channel.soundTransform; transform.volume = m_soundVolume; channel.soundTransform = transform; return (channel); } catch(e:Error) { if (Constant.m_debugMode){ trace(e); }; }; }; return (null); } public static function forcedPlay(_arg1:String):void{ var sound_class:Class; var sound:Sound; var channel:SoundChannel; var transform:SoundTransform; var name = _arg1; try { sound_class = (ApplicationDomain.currentDomain.getDefinition(name) as Class); sound = new (sound_class); channel = sound.play(); transform = channel.soundTransform; transform.volume = m_soundVolume; channel.soundTransform = transform; } catch(e:Error) { if (Constant.m_debugMode){ trace(e); }; }; } public static function playLoop(_arg1:String):void{ var sound_class:Class; var sound:Sound; var transform:SoundTransform; var name = _arg1; try { if (m_isSoundEnable){ if (m_currentLoopName != name){ if (m_currentLoop != null){ m_currentLoop.stop(); }; sound_class = (ApplicationDomain.currentDomain.getDefinition(name) as Class); sound = new (sound_class); m_currentLoop = sound.play(0, int.MAX_VALUE); transform = m_currentLoop.soundTransform; transform.volume = m_musicVolume; m_currentLoop.soundTransform = transform; }; }; m_currentLoopName = name; } catch(e:Error) { if (Constant.m_debugMode){ trace("SoundManager::playLoop", e); }; }; } public static function update(_arg1:Number):void{ m_liveTime = (m_liveTime + _arg1); if (m_isSoundEnable){ switch (m_volumeType){ case vtFadeOut: setMusicVolume((m_musicVolume - (0.8 * _arg1))); if (m_musicVolume <= 0.15){ play(m_soundAfterFade); m_volumeType = vtNormal; m_liveTime = 0; }; break; case vtNormal: if ((((m_liveTime > 2.3)) && (m_soundAfterFade))){ m_soundAfterFade = null; m_volumeType = vtFadeIn; }; break; case vtFadeIn: setMusicVolume((m_musicVolume + (1.5 * _arg1))); if (m_musicVolume >= m_musicVolumeBackup){ setMusicVolume(m_musicVolumeBackup); m_volumeType = vtNormal; }; break; }; }; } public static function playFadeOut(_arg1:String):void{ m_musicVolumeBackup = m_musicVolume; m_volumeType = vtFadeOut; m_soundAfterFade = _arg1; } } }//package
Section 392
//SoundOff (SoundOff) package { import flash.display.*; public dynamic class SoundOff extends SimpleButton { } }//package
Section 393
//SoundOn (SoundOn) package { import flash.display.*; public dynamic class SoundOn extends SimpleButton { } }//package
Section 394
//SteelBlock1 (SteelBlock1) package { import States.PlayState.*; public dynamic class SteelBlock1 extends UndestroyableWall { } }//package
Section 395
//SteelBlock10 (SteelBlock10) package { import States.PlayState.*; public dynamic class SteelBlock10 extends UndestroyableWall { } }//package
Section 396
//SteelBlock2 (SteelBlock2) package { import States.PlayState.*; public dynamic class SteelBlock2 extends UndestroyableWall { } }//package
Section 397
//SteelBlock3 (SteelBlock3) package { import States.PlayState.*; public dynamic class SteelBlock3 extends UndestroyableWall { } }//package
Section 398
//SteelBlock4 (SteelBlock4) package { import States.PlayState.*; public dynamic class SteelBlock4 extends UndestroyableWall { } }//package
Section 399
//SteelBlock5 (SteelBlock5) package { import States.PlayState.*; public dynamic class SteelBlock5 extends UndestroyableWall { } }//package
Section 400
//SteelBlock6 (SteelBlock6) package { import States.PlayState.*; public dynamic class SteelBlock6 extends UndestroyableWall { } }//package
Section 401
//SteelBlock7 (SteelBlock7) package { import States.PlayState.*; public dynamic class SteelBlock7 extends UndestroyableWall { } }//package
Section 402
//SteelBlock8 (SteelBlock8) package { import States.PlayState.*; public dynamic class SteelBlock8 extends UndestroyableWall { } }//package
Section 403
//SteelBlock9 (SteelBlock9) package { import States.PlayState.*; public dynamic class SteelBlock9 extends UndestroyableWall { } }//package
Section 404
//SteelCircle (SteelCircle) package { import States.PlayState.*; public dynamic class SteelCircle extends UndestroyableWall { } }//package
Section 405
//SubmitScoreStateView (SubmitScoreStateView) package { import flash.display.*; import flash.text.*; public dynamic class SubmitScoreStateView extends MovieClip { public var m_name:TextField; public var m_failed:MovieClip; public var m_succes:MovieClip; } }//package
Section 406
//T (T) package { import States.*; public dynamic class T extends MainMenuLetter { } }//package
Section 407
//Telephone (Telephone) package { import States.PlayState.*; public dynamic class Telephone extends DestroyableBackground { } }//package
Section 408
//TNT (TNT) package { public dynamic class TNT extends Achievement { } }//package
Section 409
//TNTHint (TNTHint) package { public dynamic class TNTHint extends Hint { } }//package
Section 410
//Torso_0 (Torso_0) package { import flash.display.*; public dynamic class Torso_0 extends MovieClip { public var m_rightLegWound:DirectionMarker; public var m_leftHandWound:DirectionMarker; public var m_leftLegWound:DirectionMarker; public var m_headWound:DirectionMarker; public var m_rightHandWound:DirectionMarker; } }//package
Section 411
//Torso_1 (Torso_1) package { import flash.display.*; public dynamic class Torso_1 extends MovieClip { public var m_rightLegWound:DirectionMarker; public var m_leftHandWound:DirectionMarker; public var m_leftLegWound:DirectionMarker; public var m_headWound:DirectionMarker; public var m_rightHandWound:DirectionMarker; } }//package
Section 412
//Torso_2 (Torso_2) package { import flash.display.*; public dynamic class Torso_2 extends MovieClip { public var m_rightLegWound:DirectionMarker; public var m_leftHandWound:DirectionMarker; public var m_leftLegWound:DirectionMarker; public var m_headWound:DirectionMarker; public var m_rightHandWound:DirectionMarker; } }//package
Section 413
//Torso_3 (Torso_3) package { import flash.display.*; public dynamic class Torso_3 extends MovieClip { public var m_rightLegWound:DirectionMarker; public var m_leftHandWound:DirectionMarker; public var m_leftLegWound:DirectionMarker; public var m_headWound:DirectionMarker; public var m_rightHandWound:DirectionMarker; } }//package
Section 414
//Torso_4 (Torso_4) package { import flash.display.*; public dynamic class Torso_4 extends MovieClip { public var m_rightLegWound:DirectionMarker; public var m_leftHandWound:DirectionMarker; public var m_leftLegWound:DirectionMarker; public var m_headWound:DirectionMarker; public var m_rightHandWound:DirectionMarker; } }//package
Section 415
//Torso_5 (Torso_5) package { import flash.display.*; public dynamic class Torso_5 extends MovieClip { public var m_rightLegWound:DirectionMarker; public var m_leftHandWound:DirectionMarker; public var m_leftLegWound:DirectionMarker; public var m_headWound:DirectionMarker; public var m_rightHandWound:DirectionMarker; } }//package
Section 416
//Torso_6 (Torso_6) package { import flash.display.*; public dynamic class Torso_6 extends MovieClip { public var m_rightLegWound:DirectionMarker; public var m_leftHandWound:DirectionMarker; public var m_leftLegWound:DirectionMarker; public var m_headWound:DirectionMarker; public var m_rightHandWound:DirectionMarker; } }//package
Section 417
//Turtorial0 (Turtorial0) package { import flash.display.*; public dynamic class Turtorial0 extends MovieClip { } }//package
Section 418
//Turtorial1 (Turtorial1) package { import flash.display.*; public dynamic class Turtorial1 extends MovieClip { } }//package
Section 419
//Turtorial2 (Turtorial2) package { import flash.display.*; public dynamic class Turtorial2 extends MovieClip { } }//package
Section 420
//Turtorial4 (Turtorial4) package { import flash.display.*; public dynamic class Turtorial4 extends MovieClip { } }//package
Section 421
//Turtorial5 (Turtorial5) package { import flash.display.*; public dynamic class Turtorial5 extends MovieClip { } }//package
Section 422
//TurtorialBoom (TurtorialBoom) package { import flash.display.*; public dynamic class TurtorialBoom extends MovieClip { } }//package
Section 423
//TurtorialCup (TurtorialCup) package { import flash.display.*; public dynamic class TurtorialCup extends MovieClip { } }//package
Section 424
//TurtorialFrame (TurtorialFrame) package { import flash.display.*; public dynamic class TurtorialFrame extends MovieClip { } }//package
Section 425
//Twenty (Twenty) package { public dynamic class Twenty extends Achievement { } }//package
Section 426
//TwentyHint (TwentyHint) package { public dynamic class TwentyHint extends Hint { } }//package
Section 427
//UrlLockedState (UrlLockedState) package { import States.*; public dynamic class UrlLockedState extends UrlLockedState { } }//package
Section 428
//VertexMarker (VertexMarker) package { public dynamic class VertexMarker extends InvisibleClip { } }//package
Section 429
//win_sound (win_sound) package { import flash.media.*; public dynamic class win_sound extends Sound { } }//package
Section 430
//WinStateView (WinStateView) package { import flash.display.*; public dynamic class WinStateView extends MovieClip { public var m_panel:MovieClip; } }//package
Section 431
//woman_cry_1 (woman_cry_1) package { import flash.media.*; public dynamic class woman_cry_1 extends Sound { } }//package
Section 432
//woman_cry_2 (woman_cry_2) package { import flash.media.*; public dynamic class woman_cry_2 extends Sound { } }//package
Section 433
//woman_cry_3 (woman_cry_3) package { import flash.media.*; public dynamic class woman_cry_3 extends Sound { } }//package
Section 434
//woman_cry_4 (woman_cry_4) package { import flash.media.*; public dynamic class woman_cry_4 extends Sound { } }//package
Section 435
//YesNoStateView (YesNoStateView) package { import flash.display.*; public dynamic class YesNoStateView extends MovieClip { public var m_panel:MovieClip; } }//package

Library Items

Symbol 1 GraphicUsed by:2
Symbol 2 MovieClipUses:1Used by:66 428 567 580 597 689
Symbol 3 GraphicUsed by:66 597 689
Symbol 4 GraphicUsed by:5
Symbol 5 MovieClipUses:4Used by:66 567 580 597 689
Symbol 6 GraphicUsed by:7
Symbol 7 MovieClip {PreloaderCloud3}Uses:6Used by:66
Symbol 8 GraphicUsed by:23
Symbol 9 GraphicUsed by:12
Symbol 10 GraphicUsed by:11
Symbol 11 MovieClipUses:10Used by:12
Symbol 12 MovieClipUses:9 11Used by:23
Symbol 13 GraphicUsed by:16
Symbol 14 GraphicUsed by:15
Symbol 15 MovieClipUses:14Used by:16
Symbol 16 MovieClipUses:13 15Used by:23
Symbol 17 GraphicUsed by:18
Symbol 18 MovieClipUses:17Used by:19
Symbol 19 MovieClipUses:18Used by:23
Symbol 20 GraphicUsed by:22
Symbol 21 GraphicUsed by:22
Symbol 22 MovieClipUses:20 21Used by:23
Symbol 23 MovieClipUses:8 12 16 19 22Used by:24
Symbol 24 MovieClipUses:23Used by:25
Symbol 25 MovieClipUses:24Used by:26
Symbol 26 MovieClipUses:25Used by:66
Symbol 27 GraphicUsed by:28 391
Symbol 28 MovieClip {PreloaderCloud1}Uses:27Used by:66
Symbol 29 GraphicUsed by:30
Symbol 30 MovieClip {PreloaderCloud2}Uses:29Used by:66
Symbol 31 GraphicUsed by:32 386
Symbol 32 MovieClip {PreloaderCloud4}Uses:31Used by:66
Symbol 33 GraphicUsed by:34 385
Symbol 34 MovieClip {PreloaderCloud5}Uses:33Used by:66
Symbol 35 GraphicUsed by:44
Symbol 36 GraphicUsed by:44
Symbol 37 GraphicUsed by:42
Symbol 38 GraphicUsed by:42
Symbol 39 GraphicUsed by:40
Symbol 40 MovieClipUses:39Used by:41
Symbol 41 MovieClipUses:40Used by:42
Symbol 42 MovieClipUses:37 38 41Used by:44 59
Symbol 43 GraphicUsed by:44 59
Symbol 44 MovieClipUses:35 36 42 43Used by:66
Symbol 45 FontUsed by:46 58 62 63 91 93 95 97 99 101 103 107 110 113 114 115 116 119 120 121 122 125 126 127 132 133 134 135 138 139 140 143 144 161 168 169 170 171 173 174 175 181 182 184 186 189 194 195 196 199 200 225 237 238 239 240 241 242 243 244 245 246 247 248 256 257 258 259 260 263 264 265 269 273 275 278 282 285 286 287 296 299 309 310 311 316 317 318 319 322 323 330 331 332 424 425 439 444 446 448 481 488 489 490 492 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 585 586 587 590 591 592 593 594 595 596 599 600 602 603 605 606 608 609 611 612 614 615 617 618 620 621 623 624 626 627 629 630 632 633 635 636 693 695 696 715 1110 1112 1115
Symbol 46 EditableTextUses:45Used by:66
Symbol 47 GraphicUsed by:49 50 714
Symbol 48 GraphicUsed by:49 50 714
Symbol 49 MovieClipUses:47 48Used by:50
Symbol 50 ButtonUses:49 47 48Used by:66 428 714
Symbol 51 GraphicUsed by:52
Symbol 52 MovieClipUses:51Used by:53 520
Symbol 53 MovieClipUses:52Used by:66
Symbol 54 GraphicUsed by:55
Symbol 55 MovieClipUses:54Used by:56 519
Symbol 56 MovieClipUses:55Used by:66
Symbol 57 GraphicUsed by:59
Symbol 58 EditableTextUses:45Used by:59
Symbol 59 MovieClipUses:57 42 43 58Used by:65
Symbol 60 GraphicUsed by:61 64 172 197 201 320 324 697
Symbol 61 MovieClipUses:60Used by:64 172 197 201 320 324 697
Symbol 62 TextUses:45Used by:64
Symbol 63 TextUses:45Used by:64
Symbol 64 ButtonUses:61 62 63 60Used by:65 427
Symbol 65 MovieClip {collapse_it_fla.PreloaderPlayButton_30}Uses:59 64Used by:66
Symbol 66 MovieClip {States.CurrentPreloaderState}Uses:2 3 5 7 26 28 30 32 34 44 46 50 53 56 65Used by:Timeline
Symbol 67 Sound {woman_cry_4}
Symbol 68 Sound {woman_cry_3}
Symbol 69 Sound {woman_cry_2}
Symbol 70 Sound {woman_cry_1}
Symbol 71 Sound {win_sound}
Symbol 72 Sound {man_cry_4}
Symbol 73 Sound {man_cry_3}
Symbol 74 Sound {man_cry_2}
Symbol 75 Sound {man_cry_1}
Symbol 76 Sound {lose_sound}
Symbol 77 Sound {main_menu_song}
Symbol 78 Sound {happy_song_2}
Symbol 79 Sound {happy_song_1}
Symbol 80 Sound {click}
Symbol 81 Sound {bricks_fall_3}
Symbol 82 Sound {bricks_fall_2}
Symbol 83 Sound {bricks_fall_1}
Symbol 84 Sound {boom_4}
Symbol 85 Sound {boom_3}
Symbol 86 Sound {boom_2}
Symbol 87 Sound {boom_1}
Symbol 88 Sound {bomb_fall}
Symbol 89 Sound {body_die_2}
Symbol 90 Sound {body_die_1}
Symbol 91 TextUses:45Used by:92
Symbol 92 MovieClip {TurtorialCup}Uses:91
Symbol 93 TextUses:45Used by:94
Symbol 94 MovieClip {TurtorialBoom}Uses:93
Symbol 95 TextUses:45Used by:96
Symbol 96 MovieClip {Turtorial5}Uses:95
Symbol 97 TextUses:45Used by:98
Symbol 98 MovieClip {Turtorial4}Uses:97
Symbol 99 TextUses:45Used by:100
Symbol 100 MovieClip {Turtorial2}Uses:99
Symbol 101 TextUses:45Used by:102
Symbol 102 MovieClip {Turtorial1}Uses:101
Symbol 103 TextUses:45Used by:104
Symbol 104 MovieClip {Turtorial0}Uses:103
Symbol 105 GraphicUsed by:106
Symbol 106 MovieClip {TurtorialFrame}Uses:105
Symbol 107 TextUses:45Used by:108
Symbol 108 MovieClip {ClickToContinue}Uses:107
Symbol 109 GraphicUsed by:111
Symbol 110 EditableTextUses:45Used by:111
Symbol 111 MovieClipUses:109 110Used by:157
Symbol 112 GraphicUsed by:156
Symbol 113 TextUses:45Used by:156
Symbol 114 TextUses:45Used by:156
Symbol 115 TextUses:45Used by:156
Symbol 116 TextUses:45Used by:156
Symbol 117 GraphicUsed by:118
Symbol 118 MovieClipUses:117Used by:156
Symbol 119 EditableTextUses:45Used by:156
Symbol 120 EditableTextUses:45Used by:156
Symbol 121 EditableTextUses:45Used by:156
Symbol 122 EditableTextUses:45Used by:156
Symbol 123 GraphicUsed by:124 128 141 176 288
Symbol 124 MovieClipUses:123Used by:128 141 176 288
Symbol 125 EditableTextUses:45Used by:128
Symbol 126 EditableTextUses:45Used by:128
Symbol 127 EditableTextUses:45Used by:128
Symbol 128 ButtonUses:124 125 126 127 123Used by:129 177 284 493
Symbol 129 MovieClipUses:128Used by:156
Symbol 130 GraphicUsed by:131 136 426
Symbol 131 MovieClipUses:130Used by:136 426
Symbol 132 TextUses:45Used by:136
Symbol 133 TextUses:45Used by:136
Symbol 134 TextUses:45Used by:136
Symbol 135 TextUses:45Used by:136
Symbol 136 ButtonUses:131 132 133 134 135 130Used by:137 427 433
Symbol 137 MovieClipUses:136Used by:156
Symbol 138 EditableTextUses:45Used by:141
Symbol 139 EditableTextUses:45Used by:141
Symbol 140 EditableTextUses:45Used by:141
Symbol 141 ButtonUses:124 138 139 140 123Used by:142
Symbol 142 MovieClipUses:141Used by:156
Symbol 143 TextUses:45Used by:156
Symbol 144 EditableTextUses:45Used by:156
Symbol 145 GraphicUsed by:154
Symbol 146 GraphicUsed by:147
Symbol 147 MovieClipUses:146Used by:148 700
Symbol 148 MovieClipUses:147Used by:154
Symbol 149 GraphicUsed by:154
Symbol 150 GraphicUsed by:151
Symbol 151 MovieClipUses:150Used by:154 510
Symbol 152 GraphicUsed by:154
Symbol 153 GraphicUsed by:154
Symbol 154 MovieClipUses:145 148 149 151 152 153Used by:155
Symbol 155 MovieClipUses:154Used by:156
Symbol 156 MovieClipUses:112 113 114 115 116 118 119 120 121 122 129 137 142 143 144 155Used by:157
Symbol 157 MovieClipUses:111 156Used by:158
Symbol 158 MovieClip {WinStateView}Uses:157
Symbol 159 GraphicUsed by:160
Symbol 160 MovieClip {black_square}Uses:159Used by:162 312 714
Symbol 161 TextUses:45Used by:162
Symbol 162 MovieClip {UrlLockedState}Uses:160 161
Symbol 163 GraphicUsed by:164
Symbol 164 MovieClipUses:163Used by:179 436 578
Symbol 165 GraphicUsed by:178 435
Symbol 166 GraphicUsed by:167
Symbol 167 MovieClipUses:166Used by:178
Symbol 168 TextUses:45Used by:172
Symbol 169 TextUses:45Used by:172
Symbol 170 TextUses:45Used by:172
Symbol 171 TextUses:45Used by:172
Symbol 172 ButtonUses:61 168 169 170 171 60Used by:178 427
Symbol 173 EditableTextUses:45Used by:176
Symbol 174 EditableTextUses:45Used by:176
Symbol 175 EditableTextUses:45Used by:176
Symbol 176 ButtonUses:124 173 174 175 123Used by:178 494 577
Symbol 177 MovieClipUses:128Used by:178 435 577
Symbol 178 MovieClipUses:165 167 172 176 177Used by:179
Symbol 179 MovieClipUses:164 178Used by:180
Symbol 180 MovieClipUses:179Used by:187
Symbol 181 EditableTextUses:45Used by:187
Symbol 182 TextUses:45Used by:183
Symbol 183 MovieClipUses:182Used by:187
Symbol 184 TextUses:45Used by:185
Symbol 185 MovieClipUses:184Used by:187
Symbol 186 TextUses:45Used by:187
Symbol 187 MovieClip {SubmitScoreStateView}Uses:180 181 183 185 186
Symbol 188 GraphicUsed by:190
Symbol 189 EditableTextUses:45Used by:190
Symbol 190 MovieClipUses:188 189Used by:204
Symbol 191 GraphicUsed by:203
Symbol 192 GraphicUsed by:193
Symbol 193 MovieClipUses:192Used by:203
Symbol 194 TextUses:45Used by:203
Symbol 195 TextUses:45Used by:197
Symbol 196 TextUses:45Used by:197
Symbol 197 ButtonUses:61 195 196 60Used by:198
Symbol 198 MovieClipUses:197Used by:203
Symbol 199 TextUses:45Used by:201
Symbol 200 TextUses:45Used by:201
Symbol 201 ButtonUses:61 199 200 60Used by:202
Symbol 202 MovieClipUses:201Used by:203
Symbol 203 MovieClipUses:191 193 194 198 202Used by:204
Symbol 204 MovieClipUses:190 203Used by:205
Symbol 205 MovieClip {YesNoStateView}Uses:204
Symbol 206 GraphicUsed by:207
Symbol 207 MovieClipUses:206Used by:297 513
Symbol 208 GraphicUsed by:209
Symbol 209 ButtonUses:208Used by:297
Symbol 210 GraphicUsed by:211
Symbol 211 MovieClipUses:210Used by:255
Symbol 212 GraphicUsed by:255
Symbol 213 GraphicUsed by:214 227
Symbol 214 MovieClipUses:213Used by:227 254 255 763 851
Symbol 215 GraphicUsed by:216 231
Symbol 216 MovieClipUses:215Used by:231 254 255 1027
Symbol 217 GraphicUsed by:218 236
Symbol 218 MovieClipUses:217Used by:236 254 255 964
Symbol 219 GraphicUsed by:220 233
Symbol 220 MovieClipUses:219Used by:233 254 255 1024
Symbol 221 GraphicUsed by:222 229
Symbol 222 MovieClipUses:221Used by:229 254 255 852
Symbol 223 GraphicUsed by:224 234
Symbol 224 MovieClipUses:223Used by:234 254 255 1019
Symbol 225 TextUses:45Used by:255
Symbol 226 GraphicUsed by:227 234
Symbol 227 ButtonUses:214 226 213Used by:255
Symbol 228 GraphicUsed by:229
Symbol 229 ButtonUses:222 228 221Used by:255
Symbol 230 GraphicUsed by:231
Symbol 231 ButtonUses:216 230 215Used by:255
Symbol 232 GraphicUsed by:233
Symbol 233 ButtonUses:220 232 219Used by:255
Symbol 234 ButtonUses:224 226 223Used by:255
Symbol 235 GraphicUsed by:236
Symbol 236 ButtonUses:218 235 217Used by:255
Symbol 237 TextUses:45Used by:249
Symbol 238 TextUses:45Used by:249
Symbol 239 TextUses:45Used by:249
Symbol 240 TextUses:45Used by:249
Symbol 241 TextUses:45Used by:249
Symbol 242 TextUses:45Used by:249
Symbol 243 TextUses:45Used by:249
Symbol 244 TextUses:45Used by:249
Symbol 245 TextUses:45Used by:249
Symbol 246 TextUses:45Used by:249
Symbol 247 TextUses:45Used by:249
Symbol 248 TextUses:45Used by:249
Symbol 249 MovieClip {collapse_it_fla.figures_116}Uses:237 238 239 240 241 242 243 244 245 246 247 248Used by:255 851 852 964 1019 1024 1027
Symbol 250 GraphicUsed by:254
Symbol 251 GraphicUsed by:252
Symbol 252 MovieClipUses:251Used by:254 280
Symbol 253 GraphicUsed by:254
Symbol 254 MovieClip {collapse_it_fla.BombButton_437}Uses:250 252 214 253 222 216 224 220 218Used by:255
Symbol 255 MovieClip {States.PlayState.BombsPanel}Uses:211 212 214 216 218 220 222 224 225 227 229 231 233 234 236 249 254Used by:297
Symbol 256 EditableTextUses:45Used by:297
Symbol 257 EditableTextUses:45Used by:297
Symbol 258 TextUses:45Used by:262
Symbol 259 EditableTextUses:45Used by:262
Symbol 260 EditableTextUses:45Used by:262
Symbol 261 GraphicUsed by:262
Symbol 262 ButtonUses:258 259 260 261Used by:297 513
Symbol 263 TextUses:45Used by:267
Symbol 264 EditableTextUses:45Used by:267
Symbol 265 EditableTextUses:45Used by:267
Symbol 266 GraphicUsed by:267
Symbol 267 ButtonUses:263 264 265 266Used by:297 513
Symbol 268 GraphicUsed by:277
Symbol 269 EditableTextUses:45Used by:277
Symbol 270 GraphicUsed by:271
Symbol 271 MovieClipUses:270Used by:277 283
Symbol 272 GraphicUsed by:277
Symbol 273 EditableTextUses:45Used by:277
Symbol 274 GraphicUsed by:277
Symbol 275 EditableTextUses:45Used by:277
Symbol 276 GraphicUsed by:277
Symbol 277 ButtonUses:268 269 271 272 273 274 275 276Used by:297
Symbol 278 EditableTextUses:45Used by:297
Symbol 279 GraphicUsed by:280
Symbol 280 MovieClipUses:279 252Used by:297
Symbol 281 GraphicUsed by:283
Symbol 282 EditableTextUses:45Used by:283
Symbol 283 MovieClipUses:281 282 271Used by:297
Symbol 284 MovieClipUses:128Used by:297
Symbol 285 EditableTextUses:45Used by:288
Symbol 286 EditableTextUses:45Used by:288
Symbol 287 EditableTextUses:45Used by:288
Symbol 288 ButtonUses:124 285 286 287 123Used by:289 434
Symbol 289 MovieClipUses:288Used by:297
Symbol 290 GraphicUsed by:295
Symbol 291 GraphicUsed by:295
Symbol 292 GraphicUsed by:295
Symbol 293 GraphicUsed by:294
Symbol 294 MovieClipUses:293Used by:295
Symbol 295 MovieClip {collapse_it_fla.Symbol35_447}Uses:290 291 292 294Used by:297
Symbol 296 EditableTextUses:45Used by:297
Symbol 297 MovieClip {PlayStateView}Uses:207 209 255 256 257 262 267 277 278 280 283 284 289 295 296
Symbol 298 GraphicUsed by:300
Symbol 299 EditableTextUses:45Used by:300
Symbol 300 MovieClipUses:298 299Used by:327
Symbol 301 GraphicUsed by:326
Symbol 302 GraphicUsed by:303
Symbol 303 MovieClipUses:302Used by:326
Symbol 304 GraphicUsed by:305
Symbol 305 MovieClipUses:304Used by:308
Symbol 306 GraphicUsed by:307
Symbol 307 MovieClipUses:306Used by:308
Symbol 308 MovieClip {ScrollBar}Uses:305 307Used by:326
Symbol 309 TextUses:45Used by:326
Symbol 310 TextUses:45Used by:326
Symbol 311 EditableTextUses:45Used by:326
Symbol 312 MovieClip {CheckBoxBack}Uses:160Used by:315 1130
Symbol 313 GraphicUsed by:315
Symbol 314 GraphicUsed by:315
Symbol 315 MovieClip {CheckBox}Uses:312 313 314Used by:326
Symbol 316 TextUses:45Used by:320
Symbol 317 TextUses:45Used by:320
Symbol 318 TextUses:45Used by:320
Symbol 319 TextUses:45Used by:320
Symbol 320 ButtonUses:61 316 317 318 319 60Used by:321
Symbol 321 MovieClipUses:320Used by:326
Symbol 322 TextUses:45Used by:324
Symbol 323 TextUses:45Used by:324
Symbol 324 ButtonUses:61 322 323 60Used by:325
Symbol 325 MovieClipUses:324Used by:326
Symbol 326 MovieClipUses:301 303 308 309 310 311 315 321 325Used by:327
Symbol 327 MovieClipUses:300 326Used by:328
Symbol 328 MovieClip {OptionsStateView}Uses:327
Symbol 329 GraphicUsed by:335
Symbol 330 TextUses:45Used by:334
Symbol 331 TextUses:45Used by:334
Symbol 332 TextUses:45Used by:334
Symbol 333 GraphicUsed by:334
Symbol 334 ButtonUses:330 331 332 333Used by:335
Symbol 335 MovieClipUses:329 334Used by:428
Symbol 336 GraphicUsed by:337
Symbol 337 MovieClipUses:336Used by:428
Symbol 338 GraphicUsed by:339
Symbol 339 MovieClip {C}Uses:338Used by:365
Symbol 340 GraphicUsed by:341
Symbol 341 MovieClip {L}Uses:340Used by:365
Symbol 342 GraphicUsed by:343
Symbol 343 MovieClip {A}Uses:342Used by:365
Symbol 344 GraphicUsed by:345
Symbol 345 MovieClipUses:344Used by:352
Symbol 346 GraphicUsed by:352
Symbol 347 GraphicUsed by:351
Symbol 348 GraphicUsed by:351
Symbol 349 GraphicUsed by:351
Symbol 350 GraphicUsed by:351
Symbol 351 MovieClipUses:347 348 349 350Used by:352
Symbol 352 MovieClip {collapse_it_fla.fitil_389}Uses:345 346 351Used by:354
Symbol 353 GraphicUsed by:354
Symbol 354 MovieClip {MainMenuBomb}Uses:352 353Used by:365
Symbol 355 GraphicUsed by:356
Symbol 356 MovieClip {P}Uses:355Used by:365
Symbol 357 GraphicUsed by:358
Symbol 358 MovieClip {S}Uses:357Used by:365
Symbol 359 GraphicUsed by:360
Symbol 360 MovieClip {E}Uses:359Used by:365
Symbol 361 GraphicUsed by:362
Symbol 362 MovieClip {I}Uses:361Used by:365
Symbol 363 GraphicUsed by:364
Symbol 364 MovieClip {T}Uses:363Used by:365
Symbol 365 MovieClip {MainMenuLettersClip}Uses:339 341 343 354 356 358 360 362 364Used by:428
Symbol 366 GraphicUsed by:367 384
Symbol 367 MovieClipUses:366Used by:428
Symbol 368 BitmapUsed by:369
Symbol 369 GraphicUses:368Used by:370 371
Symbol 370 MovieClipUses:369Used by:371
Symbol 371 ButtonUses:370 369Used by:428
Symbol 372 BitmapUsed by:373
Symbol 373 GraphicUses:372Used by:374 375
Symbol 374 MovieClipUses:373Used by:375
Symbol 375 ButtonUses:374 373Used by:428
Symbol 376 GraphicUsed by:377
Symbol 377 MovieClipUses:376Used by:378
Symbol 378 MovieClipUses:377Used by:428
Symbol 379 GraphicUsed by:380
Symbol 380 MovieClipUses:379Used by:383
Symbol 381 GraphicUsed by:382
Symbol 382 MovieClipUses:381Used by:383
Symbol 383 MovieClip {collapse_it_fla.HrenMain_407}Uses:380 382Used by:428
Symbol 384 MovieClipUses:366Used by:428
Symbol 385 MovieClip {Cloud5}Uses:33Used by:392 513 567 580 597 689 853 965 984 1020 1025 1030 1033 1036 1037 1038 1045 1048 1056 1064 1068 1070 1076 1079 1083 1088 1089 1090 1091 1092 1094 1095 1096 1097 1098 1099 1100 1105 1106 1114
Symbol 386 MovieClip {Cloud4}Uses:31Used by:392 513 853 965 984 1020 1025 1030 1033 1036 1037 1038 1045 1048 1056 1064 1068 1070 1076 1079 1083 1088 1089 1090 1091 1092 1094 1095 1096 1097 1098 1099 1100 1105 1106 1114
Symbol 387 GraphicUsed by:388
Symbol 388 MovieClip {Cloud3}Uses:387Used by:392 513 567 580 597 689 853 965 984 1020 1025 1030 1033 1036 1037 1038 1045 1048 1056 1064 1068 1070 1076 1079 1083 1088 1089 1090 1091 1092 1094 1095 1096 1097 1098 1099 1100 1105 1106 1114
Symbol 389 GraphicUsed by:390
Symbol 390 MovieClip {Cloud2}Uses:389Used by:392 513 853 965 984 1020 1025 1030 1033 1036 1037 1038 1045 1048 1056 1064 1068 1070 1076 1079 1083 1088 1089 1090 1091 1092 1094 1095 1096 1097 1098 1099 1100 1105 1106 1114
Symbol 391 MovieClip {Cloud1}Uses:27Used by:392 567 580 597 689 853 965 984 1020 1025 1030 1033 1036 1037 1038 1045 1048 1056 1064 1068 1070 1076 1079 1083 1088 1089 1090 1091 1092 1094 1095 1096 1097 1098 1099 1100 1105 1106 1114
Symbol 392 MovieClipUses:385 386 388 390 391Used by:428
Symbol 393 GraphicUsed by:394
Symbol 394 MovieClipUses:393Used by:397
Symbol 395 GraphicUsed by:396
Symbol 396 MovieClipUses:395Used by:397
Symbol 397 MovieClip {collapse_it_fla.MMPanelAnim_412}Uses:394 396Used by:428
Symbol 398 GraphicUsed by:399
Symbol 399 MovieClipUses:398Used by:421 513 856 1033 1037 1038 1045 1056 1064 1070 1076 1089 1096 1098 1099 1100 1105 1106
Symbol 400 GraphicUsed by:401
Symbol 401 MovieClipUses:400Used by:421 513 853 984 1020 1025 1030 1033 1037 1038 1045 1048 1056 1064 1068 1070 1076 1079 1083 1088 1089 1090 1092 1094 1095 1096 1097 1098 1099 1100 1105 1106
Symbol 402 GraphicUsed by:403
Symbol 403 MovieClipUses:402Used by:421 513 1030 1033 1036 1038 1045 1056 1064 1070 1079 1083 1089 1090 1091 1094 1097
Symbol 404 GraphicUsed by:405
Symbol 405 MovieClipUses:404Used by:421 513 853 965 1025 1037 1038 1048 1056 1064 1068 1076 1089 1095 1098 1099 1100 1105 1114
Symbol 406 GraphicUsed by:407
Symbol 407 MovieClipUses:406Used by:421 513 1025 1030 1033 1037 1038 1045 1048 1056 1064 1076 1089 1094 1098 1099 1100 1105
Symbol 408 GraphicUsed by:409
Symbol 409 MovieClipUses:408Used by:421 513 853 1025 1033 1037 1038 1045 1048 1056 1064 1068 1076 1089 1090 1095 1097 1098 1099 1100 1105
Symbol 410 GraphicUsed by:411
Symbol 411 MovieClipUses:410Used by:421 513 853 965 984 1020 1030 1033 1036 1037 1038 1045 1056 1064 1068 1070 1076 1079 1083 1088 1089 1090 1091 1092 1094 1095 1096 1097 1098 1099 1100 1105 1106 1114
Symbol 412 GraphicUsed by:413
Symbol 413 MovieClipUses:412Used by:421 513 853 965 984 1020 1025 1030 1033 1036 1037 1045 1048 1064 1068 1070 1079 1083 1088 1089 1090 1091 1092 1094 1095 1096 1097 1098 1105 1106 1114
Symbol 414 GraphicUsed by:415
Symbol 415 MovieClipUses:414Used by:421 513 853 965 984 1020 1030 1033 1036 1037 1038 1045 1056 1064 1068 1070 1079 1083 1088 1089 1090 1091 1092 1094 1095 1096 1097 1098 1105 1106 1114
Symbol 416 GraphicUsed by:417
Symbol 417 MovieClipUses:416Used by:421 513 853 984 1020 1025 1036 1037 1048 1064 1068 1070 1076 1079 1083 1088 1089 1091 1092 1095 1096 1098 1099 1100 1105 1106
Symbol 418 GraphicUsed by:421
Symbol 419 GraphicUsed by:420
Symbol 420 MovieClipUses:419Used by:421 513 853 965 984 1020 1025 1036 1037 1048 1068 1076 1088 1090 1091 1092 1095 1097 1098 1099 1100 1105 1114
Symbol 421 MovieClipUses:399 401 403 405 407 409 411 413 415 417 418 420Used by:428
Symbol 422 GraphicUsed by:423
Symbol 423 MovieClipUses:422Used by:427
Symbol 424 TextUses:45Used by:426
Symbol 425 TextUses:45Used by:426
Symbol 426 ButtonUses:131 424 425 130Used by:427
Symbol 427 MovieClip {collapse_it_fla.MainMenuButtonAnim_416}Uses:423 64 136 172 426Used by:428
Symbol 428 MovieClip {States.MainMenuState}Uses:2 335 337 365 367 371 375 50 378 383 384 392 397 421 427
Symbol 429 GraphicUsed by:430
Symbol 430 MovieClipUses:429Used by:435
Symbol 431 GraphicUsed by:432
Symbol 432 MovieClip {Bomj}Uses:431Used by:435
Symbol 433 MovieClipUses:136Used by:435 577
Symbol 434 MovieClipUses:288Used by:435
Symbol 435 MovieClipUses:165 430 432 177 433 434Used by:436
Symbol 436 MovieClipUses:164 435Used by:437
Symbol 437 MovieClip {LoseStateView}Uses:436
Symbol 438 GraphicUsed by:449
Symbol 439 EditableTextUses:45Used by:449
Symbol 440 GraphicUsed by:449 485
Symbol 441 GraphicUsed by:442 449
Symbol 442 MovieClipUses:441Used by:449 491
Symbol 443 GraphicUsed by:449
Symbol 444 EditableTextUses:45Used by:449
Symbol 445 GraphicUsed by:449
Symbol 446 EditableTextUses:45Used by:449
Symbol 447 GraphicUsed by:449
Symbol 448 EditableTextUses:45Used by:449
Symbol 449 Button {LevelPerfectButton}Uses:438 439 440 442 443 444 445 446 447 448 441
Symbol 450 GraphicUsed by:451
Symbol 451 MovieClip {Sky1}Uses:450Used by:513 853 965 984 1020 1025 1030 1033 1036 1037 1038 1045 1048 1056 1064 1068 1070 1076 1079 1083 1088 1089 1090 1091 1092 1094 1095 1096 1097 1098 1099 1100 1105 1106 1114
Symbol 452 GraphicUsed by:453
Symbol 453 MovieClipUses:452Used by:513 853 1037 1038 1089 1090 1091 1097
Symbol 454 GraphicUsed by:455
Symbol 455 MovieClipUses:454Used by:513 965 984 1037 1098 1100 1114
Symbol 456 GraphicUsed by:459
Symbol 457 GraphicUsed by:458
Symbol 458 MovieClipUses:457Used by:459
Symbol 459 MovieClipUses:456 458Used by:513 1030 1090 1105 1106
Symbol 460 GraphicUsed by:464
Symbol 461 GraphicUsed by:462
Symbol 462 MovieClip {VertexMarker}Uses:461Used by:464 471 474 477 480 762 763 815 822 851 852 913 964 978 981 992 1018 1019 1023 1024 1027 1035 1041 1044 1051 1055 1075 1082
Symbol 463 GraphicUsed by:464
Symbol 464 MovieClip {Car3}Uses:460 462 463Used by:513 1020 1036 1037 1038 1091 1095 1096 1098 1100 1105
Symbol 465 GraphicUsed by:466
Symbol 466 MovieClipUses:465Used by:513 1036 1076 1079 1088 1092 1094 1096
Symbol 467 GraphicUsed by:468
Symbol 468 MovieClipUses:467Used by:513 1036 1076 1079 1088 1092 1094 1096
Symbol 469 GraphicUsed by:471
Symbol 470 GraphicUsed by:471
Symbol 471 MovieClip {Car5}Uses:469 462 470Used by:513 1020 1045 1088 1094
Symbol 472 GraphicUsed by:474
Symbol 473 GraphicUsed by:474
Symbol 474 MovieClip {Car2}Uses:472 462 473Used by:513 984 1036 1056 1070 1088 1095 1096
Symbol 475 GraphicUsed by:477
Symbol 476 GraphicUsed by:477
Symbol 477 MovieClip {Car4}Uses:475 462 476Used by:513 1037 1098 1106 1114
Symbol 478 GraphicUsed by:480
Symbol 479 GraphicUsed by:480
Symbol 480 MovieClip {Ground}Uses:478 462 479Used by:513 853 965 984 1020 1025 1030 1033 1036 1037 1038 1045 1048 1056 1064 1068 1070 1076 1079 1083 1088 1089 1090 1091 1092 1094 1095 1096 1097 1098 1099 1100 1105 1106 1114
Symbol 481 TextUses:45Used by:513 567
Symbol 482 GraphicUsed by:483
Symbol 483 MovieClipUses:482Used by:486 491
Symbol 484 GraphicUsed by:486
Symbol 485 MovieClipUses:440Used by:486 491
Symbol 486 MovieClipUses:483 484 485Used by:487
Symbol 487 MovieClipUses:486Used by:491
Symbol 488 EditableTextUses:45Used by:491
Symbol 489 EditableTextUses:45Used by:491
Symbol 490 EditableTextUses:45Used by:491
Symbol 491 MovieClip {LevelButton}Uses:487 483 488 485 442 489 490Used by:513
Symbol 492 EditableTextUses:45Used by:513
Symbol 493 MovieClipUses:128Used by:513 567 597 689
Symbol 494 MovieClipUses:176Used by:513
Symbol 495 GraphicUsed by:496
Symbol 496 MovieClipUses:495Used by:497
Symbol 497 MovieClipUses:496Used by:513
Symbol 498 GraphicUsed by:499
Symbol 499 MovieClipUses:498Used by:500 510 512
Symbol 500 MovieClipUses:499Used by:512
Symbol 501 GraphicUsed by:502
Symbol 502 MovieClipUses:501Used by:503
Symbol 503 MovieClipUses:502Used by:510 512
Symbol 504 GraphicUsed by:510
Symbol 505 GraphicUsed by:510
Symbol 506 GraphicUsed by:510
Symbol 507 GraphicUsed by:510
Symbol 508 GraphicUsed by:510
Symbol 509 GraphicUsed by:510
Symbol 510 MovieClip {collapse_it_fla.GoAchivOver_357}Uses:499 503 504 151 505 506 507 508 509Used by:512
Symbol 511 GraphicUsed by:512
Symbol 512 ButtonUses:500 503 510 499 511Used by:513 580
Symbol 513 MovieClip {States.SelectLevelState}Uses:451 385 386 388 420 399 401 403 405 407 409 411 413 415 417 453 455 459 464 466 468 471 474 477 390 480 207 481 491 492 493 494 497 512 262 267
Symbol 514 GraphicUsed by:567
Symbol 515 BitmapUsed by:516
Symbol 516 GraphicUses:515Used by:517 518
Symbol 517 MovieClipUses:516Used by:518
Symbol 518 ButtonUses:517 516Used by:567
Symbol 519 MovieClip {Cloud6}Uses:55Used by:567 580 597 689
Symbol 520 MovieClipUses:52Used by:567 580 597 689
Symbol 521 GraphicUsed by:522
Symbol 522 MovieClipUses:521Used by:567 597 689
Symbol 523 EditableTextUses:45Used by:567
Symbol 524 EditableTextUses:45Used by:567
Symbol 525 EditableTextUses:45Used by:567
Symbol 526 EditableTextUses:45Used by:567
Symbol 527 EditableTextUses:45Used by:567
Symbol 528 EditableTextUses:45Used by:567
Symbol 529 EditableTextUses:45Used by:567
Symbol 530 EditableTextUses:45Used by:567
Symbol 531 EditableTextUses:45Used by:567
Symbol 532 EditableTextUses:45Used by:567
Symbol 533 EditableTextUses:45Used by:567
Symbol 534 EditableTextUses:45Used by:567
Symbol 535 EditableTextUses:45Used by:567
Symbol 536 EditableTextUses:45Used by:567
Symbol 537 EditableTextUses:45Used by:567
Symbol 538 EditableTextUses:45Used by:567
Symbol 539 EditableTextUses:45Used by:567
Symbol 540 EditableTextUses:45Used by:567
Symbol 541 EditableTextUses:45Used by:567
Symbol 542 EditableTextUses:45Used by:567
Symbol 543 EditableTextUses:45Used by:567
Symbol 544 EditableTextUses:45Used by:567
Symbol 545 EditableTextUses:45Used by:567
Symbol 546 EditableTextUses:45Used by:567
Symbol 547 EditableTextUses:45Used by:567
Symbol 548 EditableTextUses:45Used by:567
Symbol 549 EditableTextUses:45Used by:567
Symbol 550 EditableTextUses:45Used by:567
Symbol 551 EditableTextUses:45Used by:567
Symbol 552 EditableTextUses:45Used by:567
Symbol 553 EditableTextUses:45Used by:567
Symbol 554 EditableTextUses:45Used by:567
Symbol 555 EditableTextUses:45Used by:567
Symbol 556 EditableTextUses:45Used by:567
Symbol 557 EditableTextUses:45Used by:567
Symbol 558 EditableTextUses:45Used by:567
Symbol 559 EditableTextUses:45Used by:567
Symbol 560 EditableTextUses:45Used by:567
Symbol 561 EditableTextUses:45Used by:567
Symbol 562 EditableTextUses:45Used by:567
Symbol 563 EditableTextUses:45Used by:567
Symbol 564 EditableTextUses:45Used by:567
Symbol 565 GraphicUsed by:566
Symbol 566 MovieClipUses:565Used by:567
Symbol 567 MovieClip {States.HighScoreState}Uses:514 2 5 391 388 385 518 519 520 522 493 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 481 564 566
Symbol 568 GraphicUsed by:580
Symbol 569 GraphicUsed by:580
Symbol 570 GraphicUsed by:571
Symbol 571 MovieClipUses:570Used by:580
Symbol 572 GraphicUsed by:577
Symbol 573 GraphicUsed by:574
Symbol 574 MovieClipUses:573Used by:577
Symbol 575 GraphicUsed by:576
Symbol 576 MovieClipUses:575Used by:577
Symbol 577 MovieClipUses:572 574 176 576 177 433Used by:578
Symbol 578 MovieClipUses:164 577Used by:579
Symbol 579 MovieClipUses:578Used by:580
Symbol 580 MovieClip {GameCompleteState}Uses:2 568 5 569 391 388 385 571 579 512 519 520
Symbol 581 GraphicUsed by:583
Symbol 582 GraphicUsed by:583
Symbol 583 MovieClip {Bird}Uses:581 582Used by:597 853 965 1020 1030 1036 1037 1038 1045 1056 1064 1068 1070 1076 1079 1088 1090 1091 1092 1094 1095 1096 1097 1098 1099 1100 1106 1114
Symbol 584 GraphicUsed by:597
Symbol 585 TextUses:45Used by:597
Symbol 586 TextUses:45Used by:597
Symbol 587 TextUses:45Used by:597
Symbol 588 GraphicUsed by:589
Symbol 589 ButtonUses:588Used by:597
Symbol 590 TextUses:45Used by:597
Symbol 591 TextUses:45Used by:597
Symbol 592 TextUses:45Used by:597
Symbol 593 TextUses:45Used by:597
Symbol 594 TextUses:45Used by:597
Symbol 595 TextUses:45Used by:597
Symbol 596 TextUses:45Used by:597
Symbol 597 MovieClip {States.CreditsState}Uses:2 3 5 391 388 385 522 583 493 584 585 586 587 589 590 591 592 593 594 595 596 519 520
Symbol 598 GraphicUsed by:601 604 607 610 613 616 619 622 625 628 631 634 637
Symbol 599 TextUses:45Used by:601
Symbol 600 TextUses:45Used by:601
Symbol 601 MovieClip {TwentyHint}Uses:598 599 600
Symbol 602 TextUses:45Used by:604
Symbol 603 TextUses:45Used by:604
Symbol 604 MovieClip {TNTHint}Uses:598 602 603
Symbol 605 TextUses:45Used by:607
Symbol 606 TextUses:45Used by:607
Symbol 607 MovieClip {SilverCupHint}Uses:598 605 606
Symbol 608 TextUses:45Used by:610
Symbol 609 TextUses:45Used by:610
Symbol 610 MovieClip {SilverBombWithWingsHint}Uses:598 608 609
Symbol 611 TextUses:45Used by:613
Symbol 612 TextUses:45Used by:613
Symbol 613 MovieClip {HundredHint}Uses:598 611 612
Symbol 614 TextUses:45Used by:616
Symbol 615 TextUses:45Used by:616
Symbol 616 MovieClip {GoldGrenadeHint}Uses:598 614 615
Symbol 617 TextUses:45Used by:619
Symbol 618 TextUses:45Used by:619
Symbol 619 MovieClip {GoldCupHint}Uses:598 617 618
Symbol 620 TextUses:45Used by:622
Symbol 621 TextUses:45Used by:622
Symbol 622 MovieClip {GoldBombWithWingsHint}Uses:598 620 621
Symbol 623 TextUses:45Used by:625
Symbol 624 TextUses:45Used by:625
Symbol 625 MovieClip {FiftyHint}Uses:598 623 624
Symbol 626 TextUses:45Used by:628
Symbol 627 TextUses:45Used by:628
Symbol 628 MovieClip {DynamiteHint}Uses:598 626 627
Symbol 629 TextUses:45Used by:631
Symbol 630 TextUses:45Used by:631
Symbol 631 MovieClip {CrownHint}Uses:598 629 630
Symbol 632 TextUses:45Used by:634
Symbol 633 TextUses:45Used by:634
Symbol 634 MovieClip {BronseCupHint}Uses:598 632 633
Symbol 635 TextUses:45Used by:637
Symbol 636 TextUses:45Used by:637
Symbol 637 MovieClip {BronsebombWithWingsHint}Uses:598 635 636
Symbol 638 GraphicUsed by:639
Symbol 639 MovieClipUses:638Used by:689
Symbol 640 GraphicUsed by:641
Symbol 641 MovieClipUses:640Used by:689
Symbol 642 GraphicUsed by:645 648 651 654 655 656 672 681
Symbol 643 GraphicUsed by:644
Symbol 644 MovieClipUses:643Used by:645
Symbol 645 MovieClip {GoldCup}Uses:642 644Used by:689 694
Symbol 646 GraphicUsed by:647
Symbol 647 MovieClipUses:646Used by:648
Symbol 648 MovieClip {BronseCup}Uses:642 647Used by:689 694
Symbol 649 GraphicUsed by:650
Symbol 650 MovieClipUses:649Used by:651
Symbol 651 MovieClip {SilverCup}Uses:642 650Used by:689 694
Symbol 652 GraphicUsed by:653
Symbol 653 MovieClipUses:652Used by:654 655 656
Symbol 654 MovieClip {GoldBombWithWings}Uses:642 653Used by:689 694
Symbol 655 MovieClip {SilverBombWithWings}Uses:642 653Used by:689 694
Symbol 656 MovieClip {BronseBombWithWings}Uses:642 653Used by:689 694
Symbol 657 GraphicUsed by:658
Symbol 658 MovieClip {GoldGrenade}Uses:657Used by:689 694
Symbol 659 GraphicUsed by:663
Symbol 660 GraphicUsed by:661
Symbol 661 MovieClipUses:660Used by:663
Symbol 662 GraphicUsed by:663
Symbol 663 MovieClip {TNT}Uses:659 661 662Used by:689 694
Symbol 664 GraphicUsed by:668
Symbol 665 GraphicUsed by:666
Symbol 666 MovieClipUses:665Used by:668
Symbol 667 GraphicUsed by:668
Symbol 668 MovieClip {Dynamite}Uses:664 666 667Used by:689 694
Symbol 669 GraphicUsed by:670
Symbol 670 MovieClipUses:669Used by:672
Symbol 671 GraphicUsed by:672
Symbol 672 MovieClip {Twenty}Uses:642 670 671Used by:689 694
Symbol 673 GraphicUsed by:677
Symbol 674 GraphicUsed by:675
Symbol 675 MovieClipUses:674Used by:677
Symbol 676 GraphicUsed by:677
Symbol 677 MovieClip {Fifty}Uses:673 675 676Used by:689 694
Symbol 678 GraphicUsed by:679
Symbol 679 MovieClipUses:678Used by:681
Symbol 680 GraphicUsed by:681
Symbol 681 MovieClip {Hundred}Uses:642 679 680Used by:689 694
Symbol 682 GraphicUsed by:686
Symbol 683 GraphicUsed by:684
Symbol 684 MovieClipUses:683Used by:686
Symbol 685 GraphicUsed by:686
Symbol 686 MovieClip {Crown}Uses:682 684 685Used by:689 694
Symbol 687 GraphicUsed by:688
Symbol 688 MovieClipUses:687Used by:689
Symbol 689 MovieClip {States.AchievementsState}Uses:2 3 5 391 388 385 522 639 641 645 648 651 654 655 656 658 663 668 672 677 681 686 493 688 519 520
Symbol 690 GraphicUsed by:699
Symbol 691 GraphicUsed by:692
Symbol 692 MovieClipUses:691Used by:699
Symbol 693 EditableTextUses:45Used by:699
Symbol 694 MovieClip {collapse_it_fla.allAchiev_288}Uses:672 677 681 668 663 658 648 651 645 656 655 654 686Used by:699
Symbol 695 TextUses:45Used by:697
Symbol 696 TextUses:45Used by:697
Symbol 697 ButtonUses:61 695 696 60Used by:698
Symbol 698 MovieClipUses:697Used by:699
Symbol 699 MovieClipUses:690 692 693 694 698Used by:700
Symbol 700 MovieClip {NewAchievementStateView}Uses:699 147
Symbol 701 SoundUsed by:714
Symbol 702 SoundUsed by:714
Symbol 703 GraphicUsed by:714
Symbol 704 GraphicUsed by:705
Symbol 705 MovieClipUses:704Used by:714
Symbol 706 SoundUsed by:714
Symbol 707 SoundUsed by:714
Symbol 708 SoundUsed by:714
Symbol 709 GraphicUsed by:714
Symbol 710 GraphicUsed by:711
Symbol 711 ButtonUses:710Used by:714
Symbol 712 SoundUsed by:714
Symbol 713 SoundUsed by:714
Symbol 714 MovieClip {States.SponsorIntroState}Uses:160 50 47 701 702 703 705 706 707 708 709 711 48 712 713
Symbol 715 EditableTextUses:45Used by:716
Symbol 716 MovieClip {PointsClip}Uses:715
Symbol 717 GraphicUsed by:718
Symbol 718 MovieClip {GlassParticleClip}Uses:717
Symbol 719 GraphicUsed by:720
Symbol 720 MovieClipUses:719Used by:731 1026
Symbol 721 GraphicUsed by:722
Symbol 722 MovieClipUses:721Used by:731 1026
Symbol 723 GraphicUsed by:724
Symbol 724 MovieClipUses:723Used by:731 1026
Symbol 725 GraphicUsed by:726
Symbol 726 MovieClipUses:725Used by:731 1026
Symbol 727 GraphicUsed by:731 1026
Symbol 728 GraphicUsed by:731 1026
Symbol 729 GraphicUsed by:731 1026
Symbol 730 GraphicUsed by:731
Symbol 731 MovieClip {BomjSurprise}Uses:720 722 724 726 727 728 729 730
Symbol 732 GraphicUsed by:737
Symbol 733 GraphicUsed by:737
Symbol 734 GraphicUsed by:737
Symbol 735 GraphicUsed by:737
Symbol 736 GraphicUsed by:737
Symbol 737 MovieClip {Leg_0}Uses:732 733 734 735 736Used by:762 822
Symbol 738 GraphicUsed by:743
Symbol 739 GraphicUsed by:740
Symbol 740 MovieClip {DirectionMarker}Uses:739Used by:743 832 880 898 933 948 1014
Symbol 741 GraphicUsed by:743
Symbol 742 GraphicUsed by:743
Symbol 743 MovieClip {Torso_0}Uses:738 740 741 742Used by:762 822
Symbol 744 GraphicUsed by:753
Symbol 745 GraphicUsed by:753
Symbol 746 GraphicUsed by:748 750
Symbol 747 GraphicUsed by:748
Symbol 748 MovieClip {collapse_it_fla.EyeRight_103}Uses:746 747Used by:753
Symbol 749 GraphicUsed by:750
Symbol 750 MovieClip {collapse_it_fla.EyeLeft_104}Uses:746 749Used by:753 1002
Symbol 751 GraphicUsed by:753
Symbol 752 GraphicUsed by:753
Symbol 753 MovieClip {Face_0}Uses:744 745 748 750 751 752Used by:762 822
Symbol 754 GraphicUsed by:757
Symbol 755 GraphicUsed by:757
Symbol 756 GraphicUsed by:757
Symbol 757 MovieClip {LeftHand_0}Uses:754 755 756Used by:762 822
Symbol 758 GraphicUsed by:761
Symbol 759 GraphicUsed by:761
Symbol 760 GraphicUsed by:761
Symbol 761 MovieClip {RightHand_0}Uses:758 759 760Used by:762 822
Symbol 762 MovieClip {States.PlayState.HumanTemplate}Uses:737 743 753 757 761 462
Symbol 763 MovieClip {Bomb1Shape}Uses:214 462
Symbol 764 GraphicUsed by:765
Symbol 765 MovieClip {BloodPoint0}Uses:764
Symbol 766 GraphicUsed by:767
Symbol 767 MovieClip {BloodBlob0}Uses:766
Symbol 768 GraphicUsed by:771
Symbol 769 GraphicUsed by:770
Symbol 770 MovieClipUses:769Used by:771 866 915 983 1029 1047 1072 1104
Symbol 771 MovieClip {SteelBlock3}Uses:768 770
Symbol 772 GraphicUsed by:773
Symbol 773 MovieClip {ConcreteBlock4}Uses:772
Symbol 774 GraphicUsed by:775
Symbol 775 MovieClip {ConcreteBlock3}Uses:774
Symbol 776 GraphicUsed by:777
Symbol 777 MovieClip {ConcreteBlock2}Uses:776
Symbol 778 GraphicUsed by:779
Symbol 779 MovieClipUses:778Used by:780
Symbol 780 MovieClip {SingleBrick1}Uses:779
Symbol 781 GraphicUsed by:782
Symbol 782 MovieClipUses:781Used by:783
Symbol 783 MovieClip {SingleBrick0}Uses:782
Symbol 784 GraphicUsed by:785
Symbol 785 MovieClipUses:784Used by:786
Symbol 786 MovieClipUses:785Used by:800
Symbol 787 GraphicUsed by:800
Symbol 788 GraphicUsed by:798
Symbol 789 GraphicUsed by:790
Symbol 790 MovieClipUses:789Used by:798
Symbol 791 GraphicUsed by:798
Symbol 792 GraphicUsed by:798
Symbol 793 GraphicUsed by:798
Symbol 794 GraphicUsed by:798
Symbol 795 GraphicUsed by:798
Symbol 796 GraphicUsed by:798
Symbol 797 GraphicUsed by:798
Symbol 798 MovieClip {collapse_it_fla.SunEmotion_70}Uses:788 790 791 792 793 794 795 796 797Used by:800
Symbol 799 GraphicUsed by:800
Symbol 800 MovieClip {States.PlayState.Sun}Uses:786 787 798 799Used by:853 965 984 1020 1025 1030 1033 1036 1037 1038 1045 1048 1056 1064 1068 1070 1076 1079 1083 1088 1089 1090 1091 1092 1094 1095 1096 1097 1098 1099 1100 1105 1106 1114
Symbol 801 GraphicUsed by:802
Symbol 802 MovieClipUses:801Used by:853 1033 1036 1045 1068 1079 1083 1090 1091 1095 1097
Symbol 803 GraphicUsed by:804
Symbol 804 MovieClipUses:803Used by:853 965 1020 1030 1033 1037 1038 1045 1056 1068 1092 1094 1095 1098 1105 1114
Symbol 805 GraphicUsed by:806
Symbol 806 MovieClipUses:805Used by:853 984 1025 1030 1036 1038 1048 1056 1064 1068 1070 1088 1089 1090 1091 1094 1095 1096 1097 1106
Symbol 807 GraphicUsed by:808
Symbol 808 MovieClipUses:807Used by:853 965 984 1025 1030 1033 1036 1038 1045 1048 1056 1064 1068 1070 1076 1088 1089 1090 1091 1094 1095 1096 1097 1099 1100 1106 1114
Symbol 809 GraphicUsed by:810
Symbol 810 MovieClipUses:809Used by:853 965 1020 1030 1033 1037 1038 1045 1056 1064 1068 1070 1079 1083 1089 1092 1094 1095 1096 1098 1105 1106 1114
Symbol 811 GraphicUsed by:813
Symbol 812 GraphicUsed by:813
Symbol 813 MovieClip {Flower}Uses:811 812Used by:853 965 1036 1048 1068 1076 1092 1114
Symbol 814 GraphicUsed by:815
Symbol 815 MovieClip {ConcreteTriangle}Uses:814 462Used by:853 1025 1033 1038 1064 1079
Symbol 816 GraphicUsed by:817
Symbol 817 MovieClip {ConcreteBlockBigHalfLong}Uses:816Used by:853 1036 1038 1064
Symbol 818 GraphicUsed by:819
Symbol 819 MovieClip {ConcreteBlockBigHalf}Uses:818Used by:853 1036 1038 1098
Symbol 820 GraphicUsed by:821
Symbol 821 MovieClip {ConcreteBlockBig}Uses:820Used by:853 1025 1033 1048 1064 1070 1092
Symbol 822 MovieClip {Pers0Marker}Uses:737 743 753 757 761 462Used by:853 965 984 1020 1025 1033 1036 1037 1038 1045 1056 1064 1068 1076 1083 1089 1090 1091 1094 1096 1098 1099 1100 1105 1114
Symbol 823 GraphicUsed by:828
Symbol 824 GraphicUsed by:828
Symbol 825 GraphicUsed by:828
Symbol 826 GraphicUsed by:828
Symbol 827 GraphicUsed by:828
Symbol 828 MovieClip {Leg_5}Uses:823 824 825 826 827Used by:845
Symbol 829 GraphicUsed by:832
Symbol 830 GraphicUsed by:832
Symbol 831 GraphicUsed by:832
Symbol 832 MovieClip {Torso_5}Uses:829 740 830 831Used by:845
Symbol 833 GraphicUsed by:836
Symbol 834 GraphicUsed by:836
Symbol 835 GraphicUsed by:836
Symbol 836 MovieClip {Face_5}Uses:833 834 835Used by:845
Symbol 837 GraphicUsed by:840
Symbol 838 GraphicUsed by:840
Symbol 839 GraphicUsed by:840
Symbol 840 MovieClip {LeftHand_5}Uses:837 838 839Used by:845
Symbol 841 GraphicUsed by:844
Symbol 842 GraphicUsed by:844
Symbol 843 GraphicUsed by:844
Symbol 844 MovieClip {RightHand_5}Uses:841 842 843Used by:845
Symbol 845 MovieClip {Pers5Marker}Uses:828 832 836 840 844Used by:853 965 984 1020 1033 1036 1038 1048 1056 1064 1068 1076 1083 1089 1090 1094 1095 1097 1100 1106
Symbol 846 GraphicUsed by:847
Symbol 847 MovieClipUses:846Used by:851 852 964 1019 1024 1027
Symbol 848 GraphicUsed by:849
Symbol 849 MovieClipUses:848Used by:851 852 964 1019 1024 1027
Symbol 850 GraphicUsed by:851 852 964 1019 1024 1027
Symbol 851 MovieClip {States.PlayState.Bomb1}Uses:214 847 849 462 249 850Used by:853 1038 1045 1070 1076 1089 1095 1096 1098 1099 1106 1114
Symbol 852 MovieClip {States.PlayState.Bomb2}Uses:222 847 849 462 249 850Used by:853 965 984 1033 1038 1056 1064 1068 1070 1079 1090 1092 1095 1097 1105
Symbol 853 MovieClip {Level33}Uses:451 800 385 386 388 390 391 401 411 405 409 413 802 804 420 417 806 808 810 415 583 813 453 480 815 817 819 821 822 845 851 852
Symbol 854 GraphicUsed by:965 1114
Symbol 855 GraphicUsed by:856
Symbol 856 MovieClipUses:399 855Used by:965 1020 1025 1030 1036 1048 1079 1083 1091 1092 1094 1114
Symbol 857 GraphicUsed by:858
Symbol 858 MovieClipUses:857Used by:965 984 1020 1076 1079 1083 1088 1092 1096 1099 1100 1106 1114
Symbol 859 GraphicUsed by:860
Symbol 860 MovieClipUses:859Used by:965 1068 1070 1088 1114
Symbol 861 GraphicUsed by:862
Symbol 862 MovieClipUses:861Used by:965 1020 1030 1037 1045 1070 1079 1088 1090 1106 1114
Symbol 863 GraphicUsed by:864
Symbol 864 MovieClipUses:863Used by:965 1056 1070 1094 1114
Symbol 865 GraphicUsed by:866
Symbol 866 MovieClip {SteelBlock2}Uses:865 770Used by:965 1097
Symbol 867 GraphicUsed by:872
Symbol 868 GraphicUsed by:872
Symbol 869 GraphicUsed by:872
Symbol 870 GraphicUsed by:872
Symbol 871 GraphicUsed by:872
Symbol 872 MovieClip {Leg_1}Uses:867 868 869 870 871Used by:889
Symbol 873 GraphicUsed by:876
Symbol 874 GraphicUsed by:876
Symbol 875 GraphicUsed by:876
Symbol 876 MovieClip {RightHand_1}Uses:873 874 875Used by:889
Symbol 877 GraphicUsed by:880 898
Symbol 878 GraphicUsed by:880
Symbol 879 GraphicUsed by:880
Symbol 880 MovieClip {Torso_1}Uses:877 740 878 879Used by:889
Symbol 881 GraphicUsed by:884
Symbol 882 GraphicUsed by:884
Symbol 883 GraphicUsed by:884
Symbol 884 MovieClip {LeftHand_1}Uses:881 882 883Used by:889
Symbol 885 GraphicUsed by:888
Symbol 886 GraphicUsed by:888
Symbol 887 GraphicUsed by:888
Symbol 888 MovieClip {Face_1}Uses:885 886 887Used by:889
Symbol 889 MovieClip {Pers1Marker}Uses:872 876 880 884 888Used by:965 984 1020 1025 1030 1033 1037 1045 1064 1068 1083 1089 1090 1091 1094 1095 1096 1097 1100 1106
Symbol 890 GraphicUsed by:895
Symbol 891 GraphicUsed by:895
Symbol 892 GraphicUsed by:895
Symbol 893 GraphicUsed by:895
Symbol 894 GraphicUsed by:895
Symbol 895 MovieClip {Leg_2}Uses:890 891 892 893 894Used by:911
Symbol 896 GraphicUsed by:898
Symbol 897 GraphicUsed by:898
Symbol 898 MovieClip {Torso_2}Uses:877 740 896 897Used by:911
Symbol 899 GraphicUsed by:902
Symbol 900 GraphicUsed by:902
Symbol 901 GraphicUsed by:902
Symbol 902 MovieClip {RightHand_2}Uses:899 900 901Used by:911
Symbol 903 GraphicUsed by:906
Symbol 904 GraphicUsed by:906
Symbol 905 GraphicUsed by:906
Symbol 906 MovieClip {LeftHand_2}Uses:903 904 905Used by:911
Symbol 907 GraphicUsed by:910
Symbol 908 GraphicUsed by:910
Symbol 909 GraphicUsed by:910
Symbol 910 MovieClip {Face_2}Uses:907 908 909Used by:911
Symbol 911 MovieClip {Pers2Marker}Uses:895 898 902 906 910Used by:965 1020 1033 1045 1048 1068 1076 1079 1088 1089 1090 1091 1092 1094 1096 1097 1106
Symbol 912 GraphicUsed by:913
Symbol 913 MovieClip {ConcreteBlockBigTriangle}Uses:912 462Used by:965 1036 1038 1048 1064 1070 1092
Symbol 914 GraphicUsed by:915
Symbol 915 MovieClip {SteelBlock5}Uses:914 770Used by:965 984 1033 1036 1037 1045 1079 1091 1095 1096 1099 1100 1114
Symbol 916 GraphicUsed by:921
Symbol 917 GraphicUsed by:921
Symbol 918 GraphicUsed by:921
Symbol 919 GraphicUsed by:921
Symbol 920 GraphicUsed by:921
Symbol 921 MovieClip {Leg_3}Uses:916 917 918 919 920Used by:938
Symbol 922 GraphicUsed by:925
Symbol 923 GraphicUsed by:925
Symbol 924 GraphicUsed by:925
Symbol 925 MovieClip {LeftHand_3}Uses:922 923 924Used by:938
Symbol 926 GraphicUsed by:929
Symbol 927 GraphicUsed by:929
Symbol 928 GraphicUsed by:929
Symbol 929 MovieClip {RightHand_3}Uses:926 927 928Used by:938
Symbol 930 GraphicUsed by:933
Symbol 931 GraphicUsed by:933
Symbol 932 GraphicUsed by:933
Symbol 933 MovieClip {Torso_3}Uses:930 740 931 932Used by:938
Symbol 934 GraphicUsed by:937
Symbol 935 GraphicUsed by:937
Symbol 936 GraphicUsed by:937
Symbol 937 MovieClip {Face_3}Uses:934 935 936Used by:938
Symbol 938 MovieClip {Pers3Marker}Uses:921 925 929 933 937Used by:965 984 1020 1030 1033 1036 1037 1045 1048 1056 1064 1068 1076 1079 1083 1089 1090 1092 1094 1095 1097 1099
Symbol 939 GraphicUsed by:944
Symbol 940 GraphicUsed by:944
Symbol 941 GraphicUsed by:944
Symbol 942 GraphicUsed by:944
Symbol 943 GraphicUsed by:944
Symbol 944 MovieClip {Leg_4}Uses:939 940 941 942 943Used by:961
Symbol 945 GraphicUsed by:948
Symbol 946 GraphicUsed by:948
Symbol 947 GraphicUsed by:948
Symbol 948 MovieClip {Torso_4}Uses:945 740 946 947Used by:961
Symbol 949 GraphicUsed by:952
Symbol 950 GraphicUsed by:952
Symbol 951 GraphicUsed by:952
Symbol 952 MovieClip {Face_4}Uses:949 950 951Used by:961
Symbol 953 GraphicUsed by:956
Symbol 954 GraphicUsed by:956
Symbol 955 GraphicUsed by:956
Symbol 956 MovieClip {LeftHand_4}Uses:953 954 955Used by:961
Symbol 957 GraphicUsed by:960
Symbol 958 GraphicUsed by:960
Symbol 959 GraphicUsed by:960
Symbol 960 MovieClip {RightHand_4}Uses:957 958 959Used by:961
Symbol 961 MovieClip {Pers4Marker}Uses:944 948 952 956 960Used by:965 984 1020 1025 1030 1037 1038 1048 1056 1068 1070 1076 1079 1083 1088 1089 1090 1092 1094 1096 1099 1106
Symbol 962 GraphicUsed by:963
Symbol 963 MovieClip {BombTrajectory}Uses:962Used by:964 1024
Symbol 964 MovieClip {States.PlayState.Bomb6}Uses:963 218 847 849 462 249 850Used by:965 1083 1089
Symbol 965 MovieClip {Level32}Uses:451 800 385 386 388 390 391 854 411 405 804 420 413 808 856 810 858 415 583 455 860 862 864 813 480 866 845 889 911 913 915 938 961 822 852 964
Symbol 966 GraphicUsed by:969
Symbol 967 GraphicUsed by:968
Symbol 968 MovieClipUses:967Used by:969 1102
Symbol 969 MovieClip {SteelBlock10}Uses:966 968Used by:984
Symbol 970 GraphicUsed by:971
Symbol 971 MovieClipUses:970Used by:984 1020 1056 1064 1068 1070 1100 1114
Symbol 972 GraphicUsed by:975
Symbol 973 GraphicUsed by:974
Symbol 974 MovieClipUses:973Used by:975
Symbol 975 MovieClip {SteelCircle}Uses:972 974Used by:984 1025 1096
Symbol 976 GraphicUsed by:978
Symbol 977 GraphicUsed by:978
Symbol 978 MovieClip {States.PlayState.DangerBarrel}Uses:976 462 977Used by:984 1045 1076
Symbol 979 GraphicUsed by:980
Symbol 980 MovieClipUses:979Used by:981
Symbol 981 MovieClip {BrickBlock10}Uses:980 462Used by:984 1030 1037 1095
Symbol 982 GraphicUsed by:983
Symbol 983 MovieClip {SteelBlock1}Uses:982 770Used by:984 1056 1068 1106
Symbol 984 MovieClip {Level31}Uses:451 800 385 386 388 390 391 401 411 858 415 417 420 806 413 808 455 971 474 480 889 961 915 975 845 978 981 969 983 938 822 852
Symbol 985 GraphicUsed by:987
Symbol 986 GraphicUsed by:987
Symbol 987 MovieClip {Lamp}Uses:985 986Used by:1020 1025 1045 1064 1076 1100
Symbol 988 GraphicUsed by:989
Symbol 989 MovieClipUses:988Used by:1020 1030 1045 1076 1079 1106
Symbol 990 GraphicUsed by:991
Symbol 991 MovieClipUses:990Used by:992
Symbol 992 MovieClip {BrickBlock7}Uses:991 462Used by:1020 1025 1105
Symbol 993 GraphicUsed by:998
Symbol 994 GraphicUsed by:998
Symbol 995 GraphicUsed by:998
Symbol 996 GraphicUsed by:998
Symbol 997 GraphicUsed by:998
Symbol 998 MovieClip {Leg_6}Uses:993 994 995 996 997Used by:1015
Symbol 999 GraphicUsed by:1002
Symbol 1000 GraphicUsed by:1002
Symbol 1001 GraphicUsed by:1002
Symbol 1002 MovieClip {Face_6}Uses:999 750 1000 1001Used by:1015
Symbol 1003 GraphicUsed by:1006
Symbol 1004 GraphicUsed by:1006
Symbol 1005 GraphicUsed by:1006
Symbol 1006 MovieClip {LeftHand_6}Uses:1003 1004 1005Used by:1015
Symbol 1007 GraphicUsed by:1010
Symbol 1008 GraphicUsed by:1010
Symbol 1009 GraphicUsed by:1010
Symbol 1010 MovieClip {RightHand_6}Uses:1007 1008 1009Used by:1015
Symbol 1011 GraphicUsed by:1014
Symbol 1012 GraphicUsed by:1014
Symbol 1013 GraphicUsed by:1014
Symbol 1014 MovieClip {Torso_6}Uses:1011 740 1012 1013Used by:1015
Symbol 1015 MovieClip {Pers6Marker}Uses:998 1002 1006 1010 1014Used by:1020 1025 1030 1033 1036 1038 1045 1048 1068 1076 1083 1088 1089 1090 1091 1094 1097 1099 1100 1105
Symbol 1016 GraphicUsed by:1017
Symbol 1017 MovieClipUses:1016Used by:1018
Symbol 1018 MovieClip {BrickBlock1}Uses:1017 462Used by:1020 1083 1088 1090 1095 1096 1106
Symbol 1019 MovieClip {States.PlayState.Bomb4}Uses:224 847 849 462 249 850Used by:1020 1030 1036 1048 1091
Symbol 1020 MovieClip {Level30}Uses:451 800 385 386 388 390 391 413 401 411 858 804 420 415 856 417 810 583 987 464 471 989 971 862 480 911 961 889 938 992 822 1015 845 1018 1019
Symbol 1021 GraphicUsed by:1022
Symbol 1022 MovieClipUses:1021Used by:1023
Symbol 1023 MovieClip {BrickBlock8}Uses:1022 462Used by:1025 1095 1105
Symbol 1024 MovieClip {States.PlayState.Bomb5}Uses:963 220 847 849 462 249 850Used by:1025 1045 1076 1083 1094 1100
Symbol 1025 MovieClip {Level29}Uses:451 800 385 386 388 390 391 401 405 407 409 417 420 806 808 856 413 987 480 821 961 975 992 815 1015 889 822 1023 1024
Symbol 1026 MovieClip {BomjMarker}Uses:720 722 724 726 727 728 729Used by:1030 1037 1068 1070 1079 1088 1090 1098 1106
Symbol 1027 MovieClip {States.PlayState.Bomb3}Uses:216 847 849 462 249 850Used by:1030 1033 1036 1037 1048 1056 1068 1088 1090 1091 1092 1094
Symbol 1028 GraphicUsed by:1029
Symbol 1029 MovieClip {SteelBlock4}Uses:1028 770Used by:1030 1056
Symbol 1030 MovieClip {Level28}Uses:451 800 385 386 388 390 391 411 413 401 407 403 804 806 808 856 810 415 583 862 989 459 1026 480 1027 1019 938 961 889 1015 981 1029
Symbol 1031 GraphicUsed by:1032
Symbol 1032 MovieClip {ConcreteBlockBigLong}Uses:1031Used by:1033
Symbol 1033 MovieClip {Level27}Uses:451 800 385 386 388 390 391 480 401 413 399 407 409 403 804 810 802 808 415 411 821 1032 889 822 938 845 911 815 915 1015 1027 852
Symbol 1034 GraphicUsed by:1035
Symbol 1035 MovieClip {Roof}Uses:1034 462Used by:1036 1079 1097 1098 1100
Symbol 1036 MovieClip {Level26}Uses:451 800 385 386 388 390 391 411 413 802 403 420 806 808 856 417 415 583 474 464 466 468 813 480 913 822 819 817 938 1015 915 845 1035 1019 1027
Symbol 1037 MovieClip {Level25}Uses:451 800 385 386 388 390 391 401 399 411 405 407 409 413 415 420 417 810 804 583 862 1026 453 455 464 477 480 1027 938 889 915 981 822 961
Symbol 1038 MovieClip {Level24}Uses:451 800 385 386 388 390 391 401 399 405 407 409 411 804 403 806 810 415 808 583 464 453 480 817 815 913 819 1015 961 822 845 851 852
Symbol 1039 GraphicUsed by:1040
Symbol 1040 MovieClipUses:1039Used by:1041
Symbol 1041 MovieClip {BrickBlock6}Uses:1040 462Used by:1045 1096
Symbol 1042 GraphicUsed by:1043
Symbol 1043 MovieClipUses:1042Used by:1044
Symbol 1044 MovieClip {BrickBlock4}Uses:1043 462Used by:1045 1048 1056 1076 1079 1094 1114
Symbol 1045 MovieClip {Level23}Uses:451 800 385 386 388 390 391 401 413 399 407 409 403 804 810 802 808 415 411 583 987 471 989 862 480 1024 851 938 889 822 911 978 915 1041 1044 1015
Symbol 1046 GraphicUsed by:1047
Symbol 1047 MovieClip {SteelBlock7}Uses:1046 770Used by:1048 1056 1088 1089 1099 1105 1114
Symbol 1048 MovieClip {Level22}Uses:451 800 385 386 388 390 391 401 405 407 409 417 420 806 808 856 413 480 813 821 913 911 938 961 845 1015 1047 1044 1019 1027
Symbol 1049 GraphicUsed by:1050
Symbol 1050 MovieClipUses:1049Used by:1051
Symbol 1051 MovieClip {BrickBlock3}Uses:1050 462Used by:1056
Symbol 1052 GraphicUsed by:1056
Symbol 1053 GraphicUsed by:1054
Symbol 1054 MovieClipUses:1053Used by:1055
Symbol 1055 MovieClip {BrickBlock2}Uses:1054 462Used by:1056 1068 1083 1094
Symbol 1056 MovieClip {Level21}Uses:451 800 385 386 388 390 391 1027 852 401 399 405 407 409 411 804 403 806 810 415 808 480 864 474 971 583 1052 938 845 961 1029 983 822 1044 1055 1051 1047
Symbol 1057 GraphicUsed by:1063
Symbol 1058 GraphicUsed by:1062
Symbol 1059 GraphicUsed by:1062
Symbol 1060 GraphicUsed by:1062
Symbol 1061 GraphicUsed by:1062
Symbol 1062 MovieClipUses:1058 1059 1060 1061Used by:1063
Symbol 1063 MovieClip {Hydrant}Uses:1057 1062Used by:1064 1068 1089 1091 1094 1097 1098 1099 1100 1105
Symbol 1064 MovieClip {Level20}Uses:451 800 385 386 388 390 391 401 399 411 405 407 409 806 413 415 810 808 403 417 583 971 987 1063 480 817 815 822 938 889 913 845 821 852
Symbol 1065 GraphicUsed by:1067
Symbol 1066 GraphicUsed by:1067
Symbol 1067 MovieClip {Telephone}Uses:1065 1066Used by:1068 1079 1090 1097
Symbol 1068 MovieClip {Level19}Uses:451 800 385 386 388 390 391 401 411 405 409 413 802 804 420 417 806 808 810 415 480 1063 860 1026 813 971 1067 583 852 1027 911 961 1055 889 1015 938 822 845 983
Symbol 1069 GraphicUsed by:1070
Symbol 1070 MovieClip {Level18}Uses:451 800 385 386 388 390 391 413 401 399 411 403 417 810 806 808 415 480 860 864 474 862 1026 971 583 1069 821 913 961 852 851
Symbol 1071 GraphicUsed by:1072
Symbol 1072 MovieClip {SteelBlock6}Uses:1071 770Used by:1076 1088
Symbol 1073 GraphicUsed by:1074
Symbol 1074 MovieClipUses:1073Used by:1075
Symbol 1075 MovieClip {BrickBlock9}Uses:1074 462Used by:1076 1091 1095 1099
Symbol 1076 MovieClip {Level17}Uses:451 800 385 386 388 390 391 851 1024 401 399 411 405 407 409 808 858 420 417 987 813 466 468 989 480 583 845 961 822 1072 978 1075 938 1015 911 1044
Symbol 1077 GraphicUsed by:1078
Symbol 1078 MovieClip {ConcreteBlock1}Uses:1077Used by:1079
Symbol 1079 MovieClip {Level16}Uses:451 800 385 386 388 390 391 413 401 411 802 403 856 417 810 858 415 583 466 468 989 1067 1026 862 480 911 938 961 1035 1078 1044 915 815 852
Symbol 1080 GraphicUsed by:1081
Symbol 1081 MovieClipUses:1080Used by:1082
Symbol 1082 MovieClip {BrickBlock5}Uses:1081 462Used by:1083 1088 1089
Symbol 1083 MovieClip {Level15}Uses:451 800 385 386 388 390 391 413 401 411 802 403 856 417 810 858 415 480 1024 964 961 845 822 1015 1018 1055 1082 889 938
Symbol 1084 GraphicUsed by:1085
Symbol 1085 MovieClipUses:1084Used by:1088 1089 1091 1099
Symbol 1086 GraphicUsed by:1087
Symbol 1087 MovieClipUses:1086Used by:1088 1089 1091 1099
Symbol 1088 MovieClip {Level14}Uses:451 800 385 386 388 390 391 1027 401 411 858 415 417 420 806 413 808 1085 1087 860 862 1026 474 471 466 468 480 1018 961 1072 1082 911 1047 1015 583
Symbol 1089 MovieClip {Level13}Uses:451 800 385 386 388 390 391 851 964 401 399 411 405 407 409 806 413 415 810 808 403 417 1087 1085 1063 453 480 845 1015 961 938 822 1082 889 911 1047
Symbol 1090 MovieClip {Level12}Uses:451 800 385 386 388 390 391 852 1027 411 401 409 413 802 403 420 806 808 415 453 1067 1026 862 459 480 583 1018 889 911 938 845 961 1015 822
Symbol 1091 MovieClip {Level11}Uses:451 800 385 386 388 390 391 411 413 802 403 420 806 808 856 417 415 583 1087 1085 1063 453 464 480 822 889 911 915 1075 1015 1027 1019
Symbol 1092 MovieClip {Level10}Uses:451 800 385 386 388 390 391 413 401 411 858 804 420 415 856 417 810 480 583 468 466 813 821 913 911 938 961 852 1027
Symbol 1093 GraphicUsed by:1094
Symbol 1094 MovieClip {Level09}Uses:451 800 385 386 388 390 391 411 413 401 407 403 804 806 808 856 810 415 583 864 468 466 471 1063 1093 480 1024 1027 1015 1044 961 1055 822 889 938 845 911
Symbol 1095 MovieClip {Level08}Uses:451 800 385 386 388 390 391 401 411 405 409 413 802 804 420 417 806 808 810 415 583 464 474 480 851 852 845 915 889 981 1023 1075 938 1018
Symbol 1096 MovieClip {Level07}Uses:451 800 385 386 388 390 391 413 399 401 411 858 808 415 417 810 806 583 474 464 466 468 480 961 915 975 822 1018 889 911 1041 851
Symbol 1097 MovieClip {Level06}Uses:451 800 385 386 388 390 391 411 401 409 413 802 403 420 806 808 415 583 1067 453 1063 480 1035 866 1015 911 938 889 845 852
Symbol 1098 MovieClip {Level05}Uses:451 800 385 386 388 390 391 401 399 411 405 407 409 413 415 420 417 810 804 455 583 464 477 1063 1026 480 822 1035 819 851
Symbol 1099 MovieClip {Level04}Uses:451 800 385 386 388 390 391 401 399 411 405 407 409 808 858 420 417 583 1085 1087 1063 480 851 822 938 1015 961 915 1047 1075
Symbol 1100 MovieClip {Level03}Uses:451 800 385 386 388 390 391 401 399 411 405 407 409 808 858 420 417 583 455 971 987 1063 464 480 1015 915 822 845 889 1035 1024
Symbol 1101 GraphicUsed by:1102
Symbol 1102 MovieClip {SteelBlock9}Uses:1101 968Used by:1105
Symbol 1103 GraphicUsed by:1104
Symbol 1104 MovieClip {SteelBlock8}Uses:1103 770Used by:1105
Symbol 1105 MovieClip {Level02}Uses:451 800 385 386 388 390 391 852 401 399 411 405 407 409 413 415 420 417 810 804 1063 464 459 480 822 1047 1104 992 1023 1102 1015
Symbol 1106 MovieClip {Level01}Uses:451 800 385 386 388 390 391 851 413 399 401 411 858 808 415 417 810 806 583 862 989 459 1026 477 1018 480 889 983 911 961 845
Symbol 1107 GraphicUsed by:1108
Symbol 1108 MovieClipUses:1107Used by:1109
Symbol 1109 MovieClipUses:1108Used by:1111 1113
Symbol 1110 TextUses:45Used by:1111
Symbol 1111 MovieClip {FirstStepArrow}Uses:1109 1110Used by:1114
Symbol 1112 TextUses:45Used by:1113
Symbol 1113 MovieClipUses:1109 1112Used by:1114
Symbol 1114 MovieClip {Level00}Uses:451 800 385 386 388 390 391 854 411 405 804 420 413 808 856 810 858 415 583 455 971 860 862 864 813 477 480 822 915 1044 1047 851 1111 1113
Symbol 1115 TextUses:45Used by:1116
Symbol 1116 MovieClip {HideTips}Uses:1115
Symbol 1117 GraphicUsed by:1118 1124 1127
Symbol 1118 MovieClipUses:1117Used by:1121 1122 1123 1127
Symbol 1119 GraphicUsed by:1120
Symbol 1120 MovieClipUses:1119Used by:1121 1122 1123 1127
Symbol 1121 MovieClipUses:1118 1120Used by:1124
Symbol 1122 MovieClipUses:1118 1120Used by:1124
Symbol 1123 MovieClipUses:1118 1120Used by:1124
Symbol 1124 Button {SoundOn}Uses:1121 1122 1123 1117
Symbol 1125 GraphicUsed by:1127
Symbol 1126 GraphicUsed by:1127
Symbol 1127 Button {SoundOff}Uses:1118 1120 1125 1126 1117
Symbol 1128 GraphicUsed by:1130
Symbol 1129 GraphicUsed by:1130
Symbol 1130 MovieClip {LightCheckBox}Uses:312 1128 1129
Symbol 1131 BitmapUsed by:1132
Symbol 1132 GraphicUses:1131Used by:1135 1140
Symbol 1133 GraphicUsed by:1134 1140 1146
Symbol 1134 MovieClipUses:1133Used by:1135 1143
Symbol 1135 MovieClipUses:1132 1134Used by:1140
Symbol 1136 GraphicUsed by:1137 1140 1146
Symbol 1137 MovieClipUses:1136Used by:1140 1146
Symbol 1138 GraphicUsed by:1139 1140
Symbol 1139 MovieClipUses:1138Used by:1140
Symbol 1140 Button {Banner2}Uses:1135 1137 1139 1132 1133 1136 1138
Symbol 1141 BitmapUsed by:1142
Symbol 1142 GraphicUses:1141Used by:1143 1146
Symbol 1143 MovieClipUses:1142 1134Used by:1146
Symbol 1144 GraphicUsed by:1145 1146
Symbol 1145 MovieClipUses:1144Used by:1146
Symbol 1146 Button {Banner1}Uses:1143 1137 1145 1142 1133 1136 1144
Symbol 1147 BitmapUsed by:1148
Symbol 1148 GraphicUses:1147Used by:1177
Symbol 1149 BitmapUsed by:1150
Symbol 1150 GraphicUses:1149Used by:1177
Symbol 1151 BitmapUsed by:1152
Symbol 1152 GraphicUses:1151Used by:1177
Symbol 1153 BitmapUsed by:1154
Symbol 1154 GraphicUses:1153Used by:1177
Symbol 1155 BitmapUsed by:1156
Symbol 1156 GraphicUses:1155Used by:1177
Symbol 1157 BitmapUsed by:1158
Symbol 1158 GraphicUses:1157Used by:1177
Symbol 1159 BitmapUsed by:1160
Symbol 1160 GraphicUses:1159Used by:1177
Symbol 1161 BitmapUsed by:1162
Symbol 1162 GraphicUses:1161Used by:1177
Symbol 1163 BitmapUsed by:1164
Symbol 1164 GraphicUses:1163Used by:1177
Symbol 1165 BitmapUsed by:1166
Symbol 1166 GraphicUses:1165Used by:1177
Symbol 1167 BitmapUsed by:1168
Symbol 1168 GraphicUses:1167Used by:1177
Symbol 1169 BitmapUsed by:1170
Symbol 1170 GraphicUses:1169Used by:1177
Symbol 1171 BitmapUsed by:1172
Symbol 1172 GraphicUses:1171Used by:1177
Symbol 1173 BitmapUsed by:1174
Symbol 1174 GraphicUses:1173Used by:1177
Symbol 1175 BitmapUsed by:1176
Symbol 1176 GraphicUses:1175Used by:1177
Symbol 1177 MovieClip {LittleBoom}Uses:1148 1150 1152 1154 1156 1158 1160 1162 1164 1166 1168 1170 1172 1174 1176
Symbol 1178 BitmapUsed by:1179
Symbol 1179 GraphicUses:1178Used by:1238
Symbol 1180 BitmapUsed by:1181
Symbol 1181 GraphicUses:1180Used by:1238
Symbol 1182 BitmapUsed by:1183
Symbol 1183 GraphicUses:1182Used by:1238
Symbol 1184 BitmapUsed by:1185
Symbol 1185 GraphicUses:1184Used by:1238
Symbol 1186 BitmapUsed by:1187
Symbol 1187 GraphicUses:1186Used by:1238
Symbol 1188 BitmapUsed by:1189
Symbol 1189 GraphicUses:1188Used by:1238
Symbol 1190 BitmapUsed by:1191
Symbol 1191 GraphicUses:1190Used by:1238
Symbol 1192 BitmapUsed by:1193
Symbol 1193 GraphicUses:1192Used by:1238
Symbol 1194 BitmapUsed by:1195
Symbol 1195 GraphicUses:1194Used by:1238
Symbol 1196 BitmapUsed by:1197
Symbol 1197 GraphicUses:1196Used by:1238
Symbol 1198 BitmapUsed by:1199
Symbol 1199 GraphicUses:1198Used by:1238
Symbol 1200 BitmapUsed by:1201
Symbol 1201 GraphicUses:1200Used by:1238
Symbol 1202 BitmapUsed by:1203
Symbol 1203 GraphicUses:1202Used by:1238
Symbol 1204 BitmapUsed by:1205
Symbol 1205 GraphicUses:1204Used by:1238
Symbol 1206 BitmapUsed by:1207
Symbol 1207 GraphicUses:1206Used by:1238
Symbol 1208 BitmapUsed by:1209
Symbol 1209 GraphicUses:1208Used by:1238
Symbol 1210 BitmapUsed by:1211
Symbol 1211 GraphicUses:1210Used by:1238
Symbol 1212 BitmapUsed by:1213
Symbol 1213 GraphicUses:1212Used by:1238
Symbol 1214 BitmapUsed by:1215
Symbol 1215 GraphicUses:1214Used by:1238
Symbol 1216 BitmapUsed by:1217
Symbol 1217 GraphicUses:1216Used by:1238
Symbol 1218 BitmapUsed by:1219
Symbol 1219 GraphicUses:1218Used by:1238
Symbol 1220 BitmapUsed by:1221
Symbol 1221 GraphicUses:1220Used by:1238
Symbol 1222 BitmapUsed by:1223
Symbol 1223 GraphicUses:1222Used by:1238
Symbol 1224 BitmapUsed by:1225
Symbol 1225 GraphicUses:1224Used by:1238
Symbol 1226 BitmapUsed by:1227
Symbol 1227 GraphicUses:1226Used by:1238
Symbol 1228 BitmapUsed by:1229
Symbol 1229 GraphicUses:1228Used by:1238
Symbol 1230 BitmapUsed by:1231
Symbol 1231 GraphicUses:1230Used by:1238
Symbol 1232 BitmapUsed by:1233
Symbol 1233 GraphicUses:1232Used by:1238
Symbol 1234 BitmapUsed by:1235
Symbol 1235 GraphicUses:1234Used by:1238
Symbol 1236 BitmapUsed by:1237
Symbol 1237 GraphicUses:1236Used by:1238
Symbol 1238 MovieClip {FountainBoom}Uses:1179 1181 1183 1185 1187 1189 1191 1193 1195 1197 1199 1201 1203 1205 1207 1209 1211 1213 1215 1217 1219 1221 1223 1225 1227 1229 1231 1233 1235 1237
Symbol 1239 BitmapUsed by:1240
Symbol 1240 GraphicUses:1239Used by:1277
Symbol 1241 BitmapUsed by:1242
Symbol 1242 GraphicUses:1241Used by:1277
Symbol 1243 BitmapUsed by:1244
Symbol 1244 GraphicUses:1243Used by:1277
Symbol 1245 BitmapUsed by:1246
Symbol 1246 GraphicUses:1245Used by:1277
Symbol 1247 BitmapUsed by:1248
Symbol 1248 GraphicUses:1247Used by:1277
Symbol 1249 BitmapUsed by:1250
Symbol 1250 GraphicUses:1249Used by:1277
Symbol 1251 BitmapUsed by:1252
Symbol 1252 GraphicUses:1251Used by:1277
Symbol 1253 BitmapUsed by:1254
Symbol 1254 GraphicUses:1253Used by:1277
Symbol 1255 BitmapUsed by:1256
Symbol 1256 GraphicUses:1255Used by:1277
Symbol 1257 BitmapUsed by:1258
Symbol 1258 GraphicUses:1257Used by:1277
Symbol 1259 BitmapUsed by:1260
Symbol 1260 GraphicUses:1259Used by:1277
Symbol 1261 BitmapUsed by:1262
Symbol 1262 GraphicUses:1261Used by:1277
Symbol 1263 BitmapUsed by:1264
Symbol 1264 GraphicUses:1263Used by:1277
Symbol 1265 BitmapUsed by:1266
Symbol 1266 GraphicUses:1265Used by:1277
Symbol 1267 BitmapUsed by:1268
Symbol 1268 GraphicUses:1267Used by:1277
Symbol 1269 BitmapUsed by:1270
Symbol 1270 GraphicUses:1269Used by:1277
Symbol 1271 BitmapUsed by:1272
Symbol 1272 GraphicUses:1271Used by:1277
Symbol 1273 BitmapUsed by:1274
Symbol 1274 GraphicUses:1273Used by:1277
Symbol 1275 BitmapUsed by:1276
Symbol 1276 GraphicUses:1275Used by:1277
Symbol 1277 MovieClip {Boom3}Uses:1240 1242 1244 1246 1248 1250 1252 1254 1256 1258 1260 1262 1264 1266 1268 1270 1272 1274 1276
Symbol 1278 BitmapUsed by:1279
Symbol 1279 GraphicUses:1278Used by:1340
Symbol 1280 BitmapUsed by:1281
Symbol 1281 GraphicUses:1280Used by:1340
Symbol 1282 BitmapUsed by:1283
Symbol 1283 GraphicUses:1282Used by:1340
Symbol 1284 BitmapUsed by:1285
Symbol 1285 GraphicUses:1284Used by:1340
Symbol 1286 BitmapUsed by:1287
Symbol 1287 GraphicUses:1286Used by:1340
Symbol 1288 BitmapUsed by:1289
Symbol 1289 GraphicUses:1288Used by:1340
Symbol 1290 BitmapUsed by:1291
Symbol 1291 GraphicUses:1290Used by:1340
Symbol 1292 BitmapUsed by:1293
Symbol 1293 GraphicUses:1292Used by:1340
Symbol 1294 BitmapUsed by:1295
Symbol 1295 GraphicUses:1294Used by:1340
Symbol 1296 BitmapUsed by:1297
Symbol 1297 GraphicUses:1296Used by:1340
Symbol 1298 BitmapUsed by:1299
Symbol 1299 GraphicUses:1298Used by:1340
Symbol 1300 BitmapUsed by:1301
Symbol 1301 GraphicUses:1300Used by:1340
Symbol 1302 BitmapUsed by:1303
Symbol 1303 GraphicUses:1302Used by:1340
Symbol 1304 BitmapUsed by:1305
Symbol 1305 GraphicUses:1304Used by:1340
Symbol 1306 BitmapUsed by:1307
Symbol 1307 GraphicUses:1306Used by:1340
Symbol 1308 BitmapUsed by:1309
Symbol 1309 GraphicUses:1308Used by:1340
Symbol 1310 BitmapUsed by:1311
Symbol 1311 GraphicUses:1310Used by:1340
Symbol 1312 BitmapUsed by:1313
Symbol 1313 GraphicUses:1312Used by:1340
Symbol 1314 BitmapUsed by:1315
Symbol 1315 GraphicUses:1314Used by:1340
Symbol 1316 BitmapUsed by:1317
Symbol 1317 GraphicUses:1316Used by:1340
Symbol 1318 BitmapUsed by:1319
Symbol 1319 GraphicUses:1318Used by:1340
Symbol 1320 BitmapUsed by:1321
Symbol 1321 GraphicUses:1320Used by:1340
Symbol 1322 BitmapUsed by:1323
Symbol 1323 GraphicUses:1322Used by:1340
Symbol 1324 BitmapUsed by:1325
Symbol 1325 GraphicUses:1324Used by:1340
Symbol 1326 BitmapUsed by:1327
Symbol 1327 GraphicUses:1326Used by:1340
Symbol 1328 BitmapUsed by:1329
Symbol 1329 GraphicUses:1328Used by:1340
Symbol 1330 BitmapUsed by:1331
Symbol 1331 GraphicUses:1330Used by:1340
Symbol 1332 BitmapUsed by:1333
Symbol 1333 GraphicUses:1332Used by:1340
Symbol 1334 BitmapUsed by:1335
Symbol 1335 GraphicUses:1334Used by:1340
Symbol 1336 BitmapUsed by:1337
Symbol 1337 GraphicUses:1336Used by:1340
Symbol 1338 BitmapUsed by:1339
Symbol 1339 GraphicUses:1338Used by:1340
Symbol 1340 MovieClip {Boom2}Uses:1279 1281 1283 1285 1287 1289 1291 1293 1295 1297 1299 1301 1303 1305 1307 1309 1311 1313 1315 1317 1319 1321 1323 1325 1327 1329 1331 1333 1335 1337 1339
Symbol 1341 BitmapUsed by:1342
Symbol 1342 GraphicUses:1341Used by:1383
Symbol 1343 BitmapUsed by:1344
Symbol 1344 GraphicUses:1343Used by:1383
Symbol 1345 BitmapUsed by:1346
Symbol 1346 GraphicUses:1345Used by:1383
Symbol 1347 BitmapUsed by:1348
Symbol 1348 GraphicUses:1347Used by:1383
Symbol 1349 BitmapUsed by:1350
Symbol 1350 GraphicUses:1349Used by:1383
Symbol 1351 BitmapUsed by:1352
Symbol 1352 GraphicUses:1351Used by:1383
Symbol 1353 BitmapUsed by:1354
Symbol 1354 GraphicUses:1353Used by:1383
Symbol 1355 BitmapUsed by:1356
Symbol 1356 GraphicUses:1355Used by:1383
Symbol 1357 BitmapUsed by:1358
Symbol 1358 GraphicUses:1357Used by:1383
Symbol 1359 BitmapUsed by:1360
Symbol 1360 GraphicUses:1359Used by:1383
Symbol 1361 BitmapUsed by:1362
Symbol 1362 GraphicUses:1361Used by:1383
Symbol 1363 BitmapUsed by:1364
Symbol 1364 GraphicUses:1363Used by:1383
Symbol 1365 BitmapUsed by:1366
Symbol 1366 GraphicUses:1365Used by:1383
Symbol 1367 BitmapUsed by:1368
Symbol 1368 GraphicUses:1367Used by:1383
Symbol 1369 BitmapUsed by:1370
Symbol 1370 GraphicUses:1369Used by:1383
Symbol 1371 BitmapUsed by:1372
Symbol 1372 GraphicUses:1371Used by:1383
Symbol 1373 BitmapUsed by:1374
Symbol 1374 GraphicUses:1373Used by:1383
Symbol 1375 BitmapUsed by:1376
Symbol 1376 GraphicUses:1375Used by:1383
Symbol 1377 BitmapUsed by:1378
Symbol 1378 GraphicUses:1377Used by:1383
Symbol 1379 BitmapUsed by:1380
Symbol 1380 GraphicUses:1379Used by:1383
Symbol 1381 BitmapUsed by:1382
Symbol 1382 GraphicUses:1381Used by:1383
Symbol 1383 MovieClip {Boom1}Uses:1342 1344 1346 1348 1350 1352 1354 1356 1358 1360 1362 1364 1366 1368 1370 1372 1374 1376 1378 1380 1382
Symbol 1384 BitmapUsed by:1385
Symbol 1385 GraphicUses:1384Used by:1450
Symbol 1386 BitmapUsed by:1387
Symbol 1387 GraphicUses:1386Used by:1450
Symbol 1388 BitmapUsed by:1389
Symbol 1389 GraphicUses:1388Used by:1450
Symbol 1390 BitmapUsed by:1391
Symbol 1391 GraphicUses:1390Used by:1450
Symbol 1392 BitmapUsed by:1393
Symbol 1393 GraphicUses:1392Used by:1450
Symbol 1394 BitmapUsed by:1395
Symbol 1395 GraphicUses:1394Used by:1450
Symbol 1396 BitmapUsed by:1397
Symbol 1397 GraphicUses:1396Used by:1450
Symbol 1398 BitmapUsed by:1399
Symbol 1399 GraphicUses:1398Used by:1450
Symbol 1400 BitmapUsed by:1401
Symbol 1401 GraphicUses:1400Used by:1450
Symbol 1402 BitmapUsed by:1403
Symbol 1403 GraphicUses:1402Used by:1450
Symbol 1404 BitmapUsed by:1405
Symbol 1405 GraphicUses:1404Used by:1450
Symbol 1406 BitmapUsed by:1407
Symbol 1407 GraphicUses:1406Used by:1450
Symbol 1408 BitmapUsed by:1409
Symbol 1409 GraphicUses:1408Used by:1450
Symbol 1410 BitmapUsed by:1411
Symbol 1411 GraphicUses:1410Used by:1450
Symbol 1412 BitmapUsed by:1413
Symbol 1413 GraphicUses:1412Used by:1450
Symbol 1414 BitmapUsed by:1415
Symbol 1415 GraphicUses:1414Used by:1450
Symbol 1416 BitmapUsed by:1417
Symbol 1417 GraphicUses:1416Used by:1450
Symbol 1418 BitmapUsed by:1419
Symbol 1419 GraphicUses:1418Used by:1450
Symbol 1420 BitmapUsed by:1421
Symbol 1421 GraphicUses:1420Used by:1450
Symbol 1422 BitmapUsed by:1423
Symbol 1423 GraphicUses:1422Used by:1450
Symbol 1424 BitmapUsed by:1425
Symbol 1425 GraphicUses:1424Used by:1450
Symbol 1426 BitmapUsed by:1427
Symbol 1427 GraphicUses:1426Used by:1450
Symbol 1428 BitmapUsed by:1429
Symbol 1429 GraphicUses:1428Used by:1450
Symbol 1430 BitmapUsed by:1431
Symbol 1431 GraphicUses:1430Used by:1450
Symbol 1432 BitmapUsed by:1433
Symbol 1433 GraphicUses:1432Used by:1450
Symbol 1434 BitmapUsed by:1435
Symbol 1435 GraphicUses:1434Used by:1450
Symbol 1436 BitmapUsed by:1437
Symbol 1437 GraphicUses:1436Used by:1450
Symbol 1438 BitmapUsed by:1439
Symbol 1439 GraphicUses:1438Used by:1450
Symbol 1440 BitmapUsed by:1441
Symbol 1441 GraphicUses:1440Used by:1450
Symbol 1442 BitmapUsed by:1443
Symbol 1443 GraphicUses:1442Used by:1450
Symbol 1444 BitmapUsed by:1445
Symbol 1445 GraphicUses:1444Used by:1450
Symbol 1446 BitmapUsed by:1447
Symbol 1447 GraphicUses:1446Used by:1450
Symbol 1448 BitmapUsed by:1449
Symbol 1449 GraphicUses:1448Used by:1450
Symbol 1450 MovieClip {BigBoom}Uses:1385 1387 1389 1391 1393 1395 1397 1399 1401 1403 1405 1407 1409 1411 1413 1415 1417 1419 1421 1423 1425 1427 1429 1431 1433 1435 1437 1439 1441 1443 1445 1447 1449
Symbol 1451 GraphicUsed by:1452
Symbol 1452 MovieClipUses:1451Used by:1453
Symbol 1453 MovieClip {Awesome}Uses:1452

Instance Names

"m_preloaderClip"Frame 1Symbol 66 MovieClip {States.CurrentPreloaderState}
"m_loadingBar"Symbol 66 MovieClip {States.CurrentPreloaderState} Frame 1Symbol 44 MovieClip
"m_loadingLabel"Symbol 66 MovieClip {States.CurrentPreloaderState} Frame 1Symbol 46 EditableText
"m_logo"Symbol 66 MovieClip {States.CurrentPreloaderState} Frame 1Symbol 50 Button
"m_playButton"Symbol 66 MovieClip {States.CurrentPreloaderState} Frame 1Symbol 65 MovieClip {collapse_it_fla.PreloaderPlayButton_30}
"m_buttonMenu"Symbol 129 MovieClip Frame 1Symbol 128 Button
"m_buttonMoreGames"Symbol 137 MovieClip Frame 1Symbol 136 Button
"m_buttonNext"Symbol 142 MovieClip Frame 1Symbol 141 Button
"m_level"Symbol 156 MovieClip Frame 1Symbol 119 EditableText
"m_bombsUsed"Symbol 156 MovieClip Frame 1Symbol 120 EditableText
"m_currentScore"Symbol 156 MovieClip Frame 1Symbol 121 EditableText
"m_bestScore"Symbol 156 MovieClip Frame 1Symbol 122 EditableText
"m_buttonMenu"Symbol 156 MovieClip Frame 1Symbol 129 MovieClip
"m_buttonMoreGames"Symbol 156 MovieClip Frame 1Symbol 137 MovieClip
"m_buttonNext"Symbol 156 MovieClip Frame 1Symbol 142 MovieClip
"m_bombsLeft"Symbol 156 MovieClip Frame 1Symbol 144 EditableText
"m_cup"Symbol 156 MovieClip Frame 1Symbol 155 MovieClip
"m_panel"Symbol 157 MovieClip Frame 1Symbol 156 MovieClip
"m_panel"Symbol 158 MovieClip {WinStateView} Frame 1Symbol 157 MovieClip
"m_buttonMenu"Symbol 177 MovieClip Frame 1Symbol 128 Button
"m_buttonHighScore"Symbol 178 MovieClip Frame 1Symbol 172 Button
"m_buttonSubmitScore"Symbol 178 MovieClip Frame 1Symbol 176 Button
"m_buttonMenu"Symbol 178 MovieClip Frame 1Symbol 177 MovieClip
"m_panel"Symbol 179 MovieClip Frame 1Symbol 178 MovieClip
"m_panel"Symbol 180 MovieClip Frame 1Symbol 179 MovieClip
"m_name"Symbol 187 MovieClip {SubmitScoreStateView} Frame 1Symbol 181 EditableText
"m_succes"Symbol 187 MovieClip {SubmitScoreStateView} Frame 1Symbol 183 MovieClip
"m_failed"Symbol 187 MovieClip {SubmitScoreStateView} Frame 1Symbol 185 MovieClip
"m_buttonYes"Symbol 198 MovieClip Frame 1Symbol 197 Button
"m_buttonNo"Symbol 202 MovieClip Frame 1Symbol 201 Button
"m_buttonYes"Symbol 203 MovieClip Frame 1Symbol 198 MovieClip
"m_buttonNo"Symbol 203 MovieClip Frame 1Symbol 202 MovieClip
"m_panel"Symbol 204 MovieClip Frame 1Symbol 203 MovieClip
"m_panel"Symbol 205 MovieClip {YesNoStateView} Frame 1Symbol 204 MovieClip
"m_bomb1"Symbol 255 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 227 Button
"m_bomb2"Symbol 255 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 229 Button
"m_bomb3"Symbol 255 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 231 Button
"m_bomb5"Symbol 255 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 233 Button
"m_bomb4"Symbol 255 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 234 Button
"m_bomb6"Symbol 255 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 236 Button
"m_bomb1Counter"Symbol 255 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 249 MovieClip {collapse_it_fla.figures_116}
"m_bomb3Counter"Symbol 255 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 249 MovieClip {collapse_it_fla.figures_116}
"m_bomb5Counter"Symbol 255 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 249 MovieClip {collapse_it_fla.figures_116}
"m_bomb2Counter"Symbol 255 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 249 MovieClip {collapse_it_fla.figures_116}
"m_bomb4Counter"Symbol 255 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 249 MovieClip {collapse_it_fla.figures_116}
"m_bomb6Counter"Symbol 255 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 249 MovieClip {collapse_it_fla.figures_116}
"m_bombIcon"Symbol 255 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 254 MovieClip {collapse_it_fla.BombButton_437}
"m_buttonMenu"Symbol 284 MovieClip Frame 1Symbol 128 Button
"m_buttonRestart"Symbol 289 MovieClip Frame 1Symbol 288 Button
"m_topPanel"Symbol 297 MovieClip {PlayStateView} Frame 1Symbol 207 MovieClip
"m_bottomPanel"Symbol 297 MovieClip {PlayStateView} Frame 1Symbol 209 Button
"m_bombsPanel"Symbol 297 MovieClip {PlayStateView} Frame 1Symbol 255 MovieClip {States.PlayState.BombsPanel}
"m_score"Symbol 297 MovieClip {PlayStateView} Frame 1Symbol 256 EditableText
"m_level"Symbol 297 MovieClip {PlayStateView} Frame 1Symbol 257 EditableText
"m_buttonWalkthrough"Symbol 297 MovieClip {PlayStateView} Frame 1Symbol 262 Button
"m_buttonMoreGames"Symbol 297 MovieClip {PlayStateView} Frame 1Symbol 267 Button
"m_buttonBoom"Symbol 297 MovieClip {PlayStateView} Frame 1Symbol 277 Button
"m_killsLeft"Symbol 297 MovieClip {PlayStateView} Frame 1Symbol 278 EditableText
"m_lockedBomb"Symbol 297 MovieClip {PlayStateView} Frame 1Symbol 280 MovieClip
"m_lockedBoomButton"Symbol 297 MovieClip {PlayStateView} Frame 1Symbol 283 MovieClip
"m_buttonMenu"Symbol 297 MovieClip {PlayStateView} Frame 1Symbol 284 MovieClip
"m_buttonRestart"Symbol 297 MovieClip {PlayStateView} Frame 1Symbol 289 MovieClip
"m_timer"Symbol 297 MovieClip {PlayStateView} Frame 1Symbol 295 MovieClip {collapse_it_fla.Symbol35_447}
"m_fps"Symbol 297 MovieClip {PlayStateView} Frame 1Symbol 296 EditableText
"m_slider"Symbol 308 MovieClip {ScrollBar} Frame 1Symbol 307 MovieClip
"m_buttonResetGame"Symbol 321 MovieClip Frame 1Symbol 320 Button
"m_buttonOk"Symbol 325 MovieClip Frame 1Symbol 324 Button
"m_musicVolume"Symbol 326 MovieClip Frame 1Symbol 308 MovieClip {ScrollBar}
"m_checkBox"Symbol 326 MovieClip Frame 1Symbol 315 MovieClip {CheckBox}
"m_soundVolume"Symbol 326 MovieClip Frame 1Symbol 308 MovieClip {ScrollBar}
"m_buttonResetGame"Symbol 326 MovieClip Frame 1Symbol 321 MovieClip
"m_buttonOk"Symbol 326 MovieClip Frame 1Symbol 325 MovieClip
"m_panel"Symbol 327 MovieClip Frame 1Symbol 326 MovieClip
"m_panel"Symbol 328 MovieClip {OptionsStateView} Frame 1Symbol 327 MovieClip
"m_buttonCredits"Symbol 335 MovieClip Frame 1Symbol 334 Button
"m_wickEnd"Symbol 352 MovieClip {collapse_it_fla.fitil_389} Frame 1Symbol 351 MovieClip
"m_wick"Symbol 354 MovieClip {MainMenuBomb} Frame 1Symbol 352 MovieClip {collapse_it_fla.fitil_389}
"m_bomb"Symbol 365 MovieClip {MainMenuLettersClip} Frame 1Symbol 354 MovieClip {MainMenuBomb}
"m_buttonPlay"Symbol 427 MovieClip {collapse_it_fla.MainMenuButtonAnim_416} Frame 1Symbol 64 Button
"m_buttonMoreGames"Symbol 427 MovieClip {collapse_it_fla.MainMenuButtonAnim_416} Frame 1Symbol 136 Button
"m_buttonHighScore"Symbol 427 MovieClip {collapse_it_fla.MainMenuButtonAnim_416} Frame 1Symbol 172 Button
"m_buttonOptions"Symbol 427 MovieClip {collapse_it_fla.MainMenuButtonAnim_416} Frame 1Symbol 426 Button
"m_shelf"Symbol 428 MovieClip {States.MainMenuState} Frame 1Symbol 337 MovieClip
"m_lettersClip"Symbol 428 MovieClip {States.MainMenuState} Frame 1Symbol 365 MovieClip {MainMenuLettersClip}
"m_wall"Symbol 428 MovieClip {States.MainMenuState} Frame 1Symbol 367 MovieClip
"m_facebook"Symbol 428 MovieClip {States.MainMenuState} Frame 1Symbol 371 Button
"m_twitter"Symbol 428 MovieClip {States.MainMenuState} Frame 1Symbol 375 Button
"m_logo"Symbol 428 MovieClip {States.MainMenuState} Frame 1Symbol 50 Button
"m_cloudsPanel"Symbol 428 MovieClip {States.MainMenuState} Frame 45Symbol 392 MovieClip
"m_mainMenuButtonsPanel"Symbol 428 MovieClip {States.MainMenuState} Frame 60Symbol 427 MovieClip {collapse_it_fla.MainMenuButtonAnim_416}
"m_buttonMoreGames"Symbol 433 MovieClip Frame 1Symbol 136 Button
"m_buttonRestart"Symbol 434 MovieClip Frame 1Symbol 288 Button
"m_buttonMenu"Symbol 435 MovieClip Frame 1Symbol 177 MovieClip
"m_buttonMoreGames"Symbol 435 MovieClip Frame 1Symbol 433 MovieClip
"m_buttonRestart"Symbol 435 MovieClip Frame 1Symbol 434 MovieClip
"m_panel"Symbol 436 MovieClip Frame 1Symbol 435 MovieClip
"m_panel"Symbol 437 MovieClip {LoseStateView} Frame 1Symbol 436 MovieClip
"vertex0"Symbol 480 MovieClip {Ground} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex1"Symbol 480 MovieClip {Ground} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex2"Symbol 480 MovieClip {Ground} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex3"Symbol 480 MovieClip {Ground} Frame 1Symbol 462 MovieClip {VertexMarker}
"m_backUp"Symbol 486 MovieClip Frame 1Symbol 483 MovieClip
"m_frontUp"Symbol 486 MovieClip Frame 1Symbol 485 MovieClip
"m_unenable"Symbol 491 MovieClip {LevelButton} Frame 1Symbol 487 MovieClip
"m_backDown"Symbol 491 MovieClip {LevelButton} Frame 1Symbol 483 MovieClip
"m_textDown"Symbol 491 MovieClip {LevelButton} Frame 1Symbol 488 EditableText
"m_frontDown"Symbol 491 MovieClip {LevelButton} Frame 1Symbol 485 MovieClip
"m_cupDown"Symbol 491 MovieClip {LevelButton} Frame 1Symbol 442 MovieClip
"m_backOver"Symbol 491 MovieClip {LevelButton} Frame 1Symbol 483 MovieClip
"m_textOver"Symbol 491 MovieClip {LevelButton} Frame 1Symbol 489 EditableText
"m_frontOver"Symbol 491 MovieClip {LevelButton} Frame 1Symbol 485 MovieClip
"m_cupOver"Symbol 491 MovieClip {LevelButton} Frame 1Symbol 442 MovieClip
"m_backUp"Symbol 491 MovieClip {LevelButton} Frame 1Symbol 483 MovieClip
"m_textUp"Symbol 491 MovieClip {LevelButton} Frame 1Symbol 490 EditableText
"m_frontUp"Symbol 491 MovieClip {LevelButton} Frame 1Symbol 485 MovieClip
"m_cupUp"Symbol 491 MovieClip {LevelButton} Frame 1Symbol 442 MovieClip
"m_buttonMenu"Symbol 493 MovieClip Frame 1Symbol 128 Button
"m_buttonSubmit"Symbol 494 MovieClip Frame 1Symbol 176 Button
"m_level0"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_totalScore"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 492 EditableText
"m_buttonMenu"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 493 MovieClip
"m_buttonSubmit"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 494 MovieClip
"m_level1"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level2"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level3"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level4"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level5"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level6"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level7"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level8"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level9"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level10"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level11"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level12"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level13"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level14"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level15"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level16"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level17"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level18"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level19"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level20"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level21"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level22"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level23"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level24"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level25"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level26"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level27"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_buttonAchiemvements"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 512 Button
"m_level28"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level29"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level30"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level31"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level32"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_level33"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 491 MovieClip {LevelButton}
"m_buttonWalkthrough"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 262 Button
"m_buttonMoreGames"Symbol 513 MovieClip {States.SelectLevelState} Frame 1Symbol 267 Button
"m_logo"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 518 Button
"m_buttonMenu"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 493 MovieClip
"m_score0"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 523 EditableText
"m_score1"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 524 EditableText
"m_score2"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 525 EditableText
"m_score3"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 526 EditableText
"m_score4"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 527 EditableText
"m_score5"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 528 EditableText
"m_score6"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 529 EditableText
"m_score7"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 530 EditableText
"m_score8"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 531 EditableText
"m_score9"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 532 EditableText
"m_points0"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 533 EditableText
"m_points1"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 534 EditableText
"m_points2"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 535 EditableText
"m_points3"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 536 EditableText
"m_points4"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 537 EditableText
"m_points5"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 538 EditableText
"m_points6"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 539 EditableText
"m_points7"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 540 EditableText
"m_points8"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 541 EditableText
"m_points9"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 542 EditableText
"m_score10"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 543 EditableText
"m_score11"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 544 EditableText
"m_score12"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 545 EditableText
"m_score13"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 546 EditableText
"m_score14"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 547 EditableText
"m_score15"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 548 EditableText
"m_score16"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 549 EditableText
"m_score17"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 550 EditableText
"m_score18"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 551 EditableText
"m_score19"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 552 EditableText
"m_points10"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 553 EditableText
"m_points11"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 554 EditableText
"m_points12"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 555 EditableText
"m_points13"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 556 EditableText
"m_points14"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 557 EditableText
"m_points15"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 558 EditableText
"m_points16"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 559 EditableText
"m_points17"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 560 EditableText
"m_points18"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 561 EditableText
"m_points19"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 562 EditableText
"m_youAreNotInTop"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 563 EditableText
"m_totalScore"Symbol 567 MovieClip {States.HighScoreState} Frame 1Symbol 564 EditableText
"m_buttonSubmit"Symbol 577 MovieClip Frame 1Symbol 176 Button
"m_buttonMenu"Symbol 577 MovieClip Frame 1Symbol 177 MovieClip
"m_buttonMoreGames"Symbol 577 MovieClip Frame 1Symbol 433 MovieClip
"m_panel"Symbol 578 MovieClip Frame 1Symbol 577 MovieClip
"m_panel"Symbol 579 MovieClip Frame 1Symbol 578 MovieClip
"m_buttonAchiemvements"Symbol 580 MovieClip {GameCompleteState} Frame 1Symbol 512 Button
"m_buttonMenu"Symbol 597 MovieClip {States.CreditsState} Frame 1Symbol 493 MovieClip
"m_programmerMail"Symbol 597 MovieClip {States.CreditsState} Frame 1Symbol 589 Button
"m_artMail"Symbol 597 MovieClip {States.CreditsState} Frame 1Symbol 589 Button
"m_musicMail"Symbol 597 MovieClip {States.CreditsState} Frame 1Symbol 589 Button
"GOLD_CUP"Symbol 689 MovieClip {States.AchievementsState} Frame 1Symbol 645 MovieClip {GoldCup}
"BRONSE_CUP"Symbol 689 MovieClip {States.AchievementsState} Frame 1Symbol 648 MovieClip {BronseCup}
"SILVER_CUP"Symbol 689 MovieClip {States.AchievementsState} Frame 1Symbol 651 MovieClip {SilverCup}
"GOLD_BOMB_WITH_WINGS"Symbol 689 MovieClip {States.AchievementsState} Frame 1Symbol 654 MovieClip {GoldBombWithWings}
"SILVER_BOMB_WITH_WINGS"Symbol 689 MovieClip {States.AchievementsState} Frame 1Symbol 655 MovieClip {SilverBombWithWings}
"BRONSE_BOMB_WITH_WINGS"Symbol 689 MovieClip {States.AchievementsState} Frame 1Symbol 656 MovieClip {BronseBombWithWings}
"GOLD_GRENADE"Symbol 689 MovieClip {States.AchievementsState} Frame 1Symbol 658 MovieClip {GoldGrenade}
"TNT"Symbol 689 MovieClip {States.AchievementsState} Frame 1Symbol 663 MovieClip {TNT}
"DYNAMITE"Symbol 689 MovieClip {States.AchievementsState} Frame 1Symbol 668 MovieClip {Dynamite}
"TWENTY"Symbol 689 MovieClip {States.AchievementsState} Frame 1Symbol 672 MovieClip {Twenty}
"FIFTY"Symbol 689 MovieClip {States.AchievementsState} Frame 1Symbol 677 MovieClip {Fifty}
"HUNDRED"Symbol 689 MovieClip {States.AchievementsState} Frame 1Symbol 681 MovieClip {Hundred}
"CROWN"Symbol 689 MovieClip {States.AchievementsState} Frame 1Symbol 686 MovieClip {Crown}
"m_buttonMenu"Symbol 689 MovieClip {States.AchievementsState} Frame 1Symbol 493 MovieClip
"DYNAMITE"Symbol 694 MovieClip {collapse_it_fla.allAchiev_288} Frame 4Symbol 668 MovieClip {Dynamite}
"BRONSE_CUP"Symbol 694 MovieClip {collapse_it_fla.allAchiev_288} Frame 7Symbol 648 MovieClip {BronseCup}
"SILVER_CUP"Symbol 694 MovieClip {collapse_it_fla.allAchiev_288} Frame 8Symbol 651 MovieClip {SilverCup}
"m_buttonShow"Symbol 698 MovieClip Frame 1Symbol 697 Button
"m_name"Symbol 699 MovieClip Frame 1Symbol 693 EditableText
"m_icon"Symbol 699 MovieClip Frame 1Symbol 694 MovieClip {collapse_it_fla.allAchiev_288}
"m_buttonShow"Symbol 699 MovieClip Frame 1Symbol 698 MovieClip
"m_panel"Symbol 700 MovieClip {NewAchievementStateView} Frame 1Symbol 699 MovieClip
"m_label"Symbol 716 MovieClip {PointsClip} Frame 1Symbol 715 EditableText
"m_rightHandWound"Symbol 743 MovieClip {Torso_0} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_rightLegWound"Symbol 743 MovieClip {Torso_0} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_leftHandWound"Symbol 743 MovieClip {Torso_0} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_leftLegWound"Symbol 743 MovieClip {Torso_0} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_headWound"Symbol 743 MovieClip {Torso_0} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_leftLeg"Symbol 762 MovieClip {States.PlayState.HumanTemplate} Frame 1Symbol 737 MovieClip {Leg_0}
"m_rightLeg"Symbol 762 MovieClip {States.PlayState.HumanTemplate} Frame 1Symbol 737 MovieClip {Leg_0}
"m_torso"Symbol 762 MovieClip {States.PlayState.HumanTemplate} Frame 1Symbol 743 MovieClip {Torso_0}
"m_head"Symbol 762 MovieClip {States.PlayState.HumanTemplate} Frame 1Symbol 753 MovieClip {Face_0}
"m_leftHand"Symbol 762 MovieClip {States.PlayState.HumanTemplate} Frame 1Symbol 757 MovieClip {LeftHand_0}
"m_rightHand"Symbol 762 MovieClip {States.PlayState.HumanTemplate} Frame 1Symbol 761 MovieClip {RightHand_0}
"m_headToTorso"Symbol 762 MovieClip {States.PlayState.HumanTemplate} Frame 1Symbol 462 MovieClip {VertexMarker}
"m_leftHandToTorso"Symbol 762 MovieClip {States.PlayState.HumanTemplate} Frame 1Symbol 462 MovieClip {VertexMarker}
"m_rightHandToTorso"Symbol 762 MovieClip {States.PlayState.HumanTemplate} Frame 1Symbol 462 MovieClip {VertexMarker}
"m_leftLegToTorso"Symbol 762 MovieClip {States.PlayState.HumanTemplate} Frame 1Symbol 462 MovieClip {VertexMarker}
"m_rightLegToTorso"Symbol 762 MovieClip {States.PlayState.HumanTemplate} Frame 1Symbol 462 MovieClip {VertexMarker}
"m_bombClip"Symbol 763 MovieClip {Bomb1Shape} Frame 1Symbol 214 MovieClip
"vertex0"Symbol 763 MovieClip {Bomb1Shape} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex1"Symbol 763 MovieClip {Bomb1Shape} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex2"Symbol 763 MovieClip {Bomb1Shape} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex3"Symbol 763 MovieClip {Bomb1Shape} Frame 1Symbol 462 MovieClip {VertexMarker}
"m_rays"Symbol 800 MovieClip {States.PlayState.Sun} Frame 1Symbol 786 MovieClip
"vertex0"Symbol 815 MovieClip {ConcreteTriangle} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex1"Symbol 815 MovieClip {ConcreteTriangle} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex2"Symbol 815 MovieClip {ConcreteTriangle} Frame 1Symbol 462 MovieClip {VertexMarker}
"m_leftLeg"Symbol 822 MovieClip {Pers0Marker} Frame 1Symbol 737 MovieClip {Leg_0}
"m_rightLeg"Symbol 822 MovieClip {Pers0Marker} Frame 1Symbol 737 MovieClip {Leg_0}
"m_torso"Symbol 822 MovieClip {Pers0Marker} Frame 1Symbol 743 MovieClip {Torso_0}
"m_head"Symbol 822 MovieClip {Pers0Marker} Frame 1Symbol 753 MovieClip {Face_0}
"m_leftHand"Symbol 822 MovieClip {Pers0Marker} Frame 1Symbol 757 MovieClip {LeftHand_0}
"m_rightHand"Symbol 822 MovieClip {Pers0Marker} Frame 1Symbol 761 MovieClip {RightHand_0}
"m_headToTorso"Symbol 822 MovieClip {Pers0Marker} Frame 1Symbol 462 MovieClip {VertexMarker}
"m_leftHandToTorso"Symbol 822 MovieClip {Pers0Marker} Frame 1Symbol 462 MovieClip {VertexMarker}
"m_rightHandToTorso"Symbol 822 MovieClip {Pers0Marker} Frame 1Symbol 462 MovieClip {VertexMarker}
"m_leftLegToTorso"Symbol 822 MovieClip {Pers0Marker} Frame 1Symbol 462 MovieClip {VertexMarker}
"m_rightLegToTorso"Symbol 822 MovieClip {Pers0Marker} Frame 1Symbol 462 MovieClip {VertexMarker}
"m_rightHandWound"Symbol 832 MovieClip {Torso_5} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_rightLegWound"Symbol 832 MovieClip {Torso_5} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_leftHandWound"Symbol 832 MovieClip {Torso_5} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_leftLegWound"Symbol 832 MovieClip {Torso_5} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_headWound"Symbol 832 MovieClip {Torso_5} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_bombClip"Symbol 851 MovieClip {States.PlayState.Bomb1} Frame 1Symbol 214 MovieClip
"m_greenCrossClip"Symbol 851 MovieClip {States.PlayState.Bomb1} Frame 1Symbol 847 MovieClip
"m_redCrossClip"Symbol 851 MovieClip {States.PlayState.Bomb1} Frame 1Symbol 849 MovieClip
"vertex0"Symbol 851 MovieClip {States.PlayState.Bomb1} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex1"Symbol 851 MovieClip {States.PlayState.Bomb1} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex2"Symbol 851 MovieClip {States.PlayState.Bomb1} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex3"Symbol 851 MovieClip {States.PlayState.Bomb1} Frame 1Symbol 462 MovieClip {VertexMarker}
"m_bombCounter"Symbol 851 MovieClip {States.PlayState.Bomb1} Frame 1Symbol 249 MovieClip {collapse_it_fla.figures_116}
"m_bombClip"Symbol 852 MovieClip {States.PlayState.Bomb2} Frame 1Symbol 222 MovieClip
"m_greenCrossClip"Symbol 852 MovieClip {States.PlayState.Bomb2} Frame 1Symbol 847 MovieClip
"m_redCrossClip"Symbol 852 MovieClip {States.PlayState.Bomb2} Frame 1Symbol 849 MovieClip
"vertex0"Symbol 852 MovieClip {States.PlayState.Bomb2} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex1"Symbol 852 MovieClip {States.PlayState.Bomb2} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex2"Symbol 852 MovieClip {States.PlayState.Bomb2} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex3"Symbol 852 MovieClip {States.PlayState.Bomb2} Frame 1Symbol 462 MovieClip {VertexMarker}
"m_bombCounter"Symbol 852 MovieClip {States.PlayState.Bomb2} Frame 1Symbol 249 MovieClip {collapse_it_fla.figures_116}
"m_rightHandWound"Symbol 880 MovieClip {Torso_1} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_rightLegWound"Symbol 880 MovieClip {Torso_1} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_leftHandWound"Symbol 880 MovieClip {Torso_1} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_leftLegWound"Symbol 880 MovieClip {Torso_1} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_headWound"Symbol 880 MovieClip {Torso_1} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_rightHandWound"Symbol 898 MovieClip {Torso_2} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_rightLegWound"Symbol 898 MovieClip {Torso_2} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_leftHandWound"Symbol 898 MovieClip {Torso_2} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_leftLegWound"Symbol 898 MovieClip {Torso_2} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_headWound"Symbol 898 MovieClip {Torso_2} Frame 1Symbol 740 MovieClip {DirectionMarker}
"vertex0"Symbol 913 MovieClip {ConcreteBlockBigTriangle} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex1"Symbol 913 MovieClip {ConcreteBlockBigTriangle} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex2"Symbol 913 MovieClip {ConcreteBlockBigTriangle} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex3"Symbol 913 MovieClip {ConcreteBlockBigTriangle} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex4"Symbol 913 MovieClip {ConcreteBlockBigTriangle} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex5"Symbol 913 MovieClip {ConcreteBlockBigTriangle} Frame 1Symbol 462 MovieClip {VertexMarker}
"m_rightHandWound"Symbol 933 MovieClip {Torso_3} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_rightLegWound"Symbol 933 MovieClip {Torso_3} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_leftHandWound"Symbol 933 MovieClip {Torso_3} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_leftLegWound"Symbol 933 MovieClip {Torso_3} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_headWound"Symbol 933 MovieClip {Torso_3} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_rightHandWound"Symbol 948 MovieClip {Torso_4} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_rightLegWound"Symbol 948 MovieClip {Torso_4} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_leftHandWound"Symbol 948 MovieClip {Torso_4} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_leftLegWound"Symbol 948 MovieClip {Torso_4} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_headWound"Symbol 948 MovieClip {Torso_4} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_trajectory"Symbol 964 MovieClip {States.PlayState.Bomb6} Frame 1Symbol 963 MovieClip {BombTrajectory}
"m_bombClip"Symbol 964 MovieClip {States.PlayState.Bomb6} Frame 1Symbol 218 MovieClip
"m_greenCrossClip"Symbol 964 MovieClip {States.PlayState.Bomb6} Frame 1Symbol 847 MovieClip
"m_redCrossClip"Symbol 964 MovieClip {States.PlayState.Bomb6} Frame 1Symbol 849 MovieClip
"vertex0"Symbol 964 MovieClip {States.PlayState.Bomb6} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex1"Symbol 964 MovieClip {States.PlayState.Bomb6} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex2"Symbol 964 MovieClip {States.PlayState.Bomb6} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex3"Symbol 964 MovieClip {States.PlayState.Bomb6} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex4"Symbol 964 MovieClip {States.PlayState.Bomb6} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex5"Symbol 964 MovieClip {States.PlayState.Bomb6} Frame 1Symbol 462 MovieClip {VertexMarker}
"m_bombCounter"Symbol 964 MovieClip {States.PlayState.Bomb6} Frame 1Symbol 249 MovieClip {collapse_it_fla.figures_116}
"vertex0"Symbol 978 MovieClip {States.PlayState.DangerBarrel} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex1"Symbol 978 MovieClip {States.PlayState.DangerBarrel} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex2"Symbol 978 MovieClip {States.PlayState.DangerBarrel} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex3"Symbol 978 MovieClip {States.PlayState.DangerBarrel} Frame 1Symbol 462 MovieClip {VertexMarker}
"point6"Symbol 981 MovieClip {BrickBlock10} Frame 1Symbol 462 MovieClip {VertexMarker}
"point7"Symbol 981 MovieClip {BrickBlock10} Frame 1Symbol 462 MovieClip {VertexMarker}
"point11"Symbol 981 MovieClip {BrickBlock10} Frame 1Symbol 462 MovieClip {VertexMarker}
"point0"Symbol 992 MovieClip {BrickBlock7} Frame 1Symbol 462 MovieClip {VertexMarker}
"point1"Symbol 992 MovieClip {BrickBlock7} Frame 1Symbol 462 MovieClip {VertexMarker}
"point2"Symbol 992 MovieClip {BrickBlock7} Frame 1Symbol 462 MovieClip {VertexMarker}
"point3"Symbol 992 MovieClip {BrickBlock7} Frame 1Symbol 462 MovieClip {VertexMarker}
"point4"Symbol 992 MovieClip {BrickBlock7} Frame 1Symbol 462 MovieClip {VertexMarker}
"point5"Symbol 992 MovieClip {BrickBlock7} Frame 1Symbol 462 MovieClip {VertexMarker}
"point6"Symbol 992 MovieClip {BrickBlock7} Frame 1Symbol 462 MovieClip {VertexMarker}
"point7"Symbol 992 MovieClip {BrickBlock7} Frame 1Symbol 462 MovieClip {VertexMarker}
"point8"Symbol 992 MovieClip {BrickBlock7} Frame 1Symbol 462 MovieClip {VertexMarker}
"point9"Symbol 992 MovieClip {BrickBlock7} Frame 1Symbol 462 MovieClip {VertexMarker}
"point10"Symbol 992 MovieClip {BrickBlock7} Frame 1Symbol 462 MovieClip {VertexMarker}
"point11"Symbol 992 MovieClip {BrickBlock7} Frame 1Symbol 462 MovieClip {VertexMarker}
"point12"Symbol 992 MovieClip {BrickBlock7} Frame 1Symbol 462 MovieClip {VertexMarker}
"point13"Symbol 992 MovieClip {BrickBlock7} Frame 1Symbol 462 MovieClip {VertexMarker}
"point10"Symbol 992 MovieClip {BrickBlock7} Frame 1Symbol 462 MovieClip {VertexMarker}
"m_rightHandWound"Symbol 1014 MovieClip {Torso_6} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_rightLegWound"Symbol 1014 MovieClip {Torso_6} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_leftHandWound"Symbol 1014 MovieClip {Torso_6} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_leftLegWound"Symbol 1014 MovieClip {Torso_6} Frame 1Symbol 740 MovieClip {DirectionMarker}
"m_headWound"Symbol 1014 MovieClip {Torso_6} Frame 1Symbol 740 MovieClip {DirectionMarker}
"point0"Symbol 1018 MovieClip {BrickBlock1} Frame 1Symbol 462 MovieClip {VertexMarker}
"point1"Symbol 1018 MovieClip {BrickBlock1} Frame 1Symbol 462 MovieClip {VertexMarker}
"point2"Symbol 1018 MovieClip {BrickBlock1} Frame 1Symbol 462 MovieClip {VertexMarker}
"point3"Symbol 1018 MovieClip {BrickBlock1} Frame 1Symbol 462 MovieClip {VertexMarker}
"point4"Symbol 1018 MovieClip {BrickBlock1} Frame 1Symbol 462 MovieClip {VertexMarker}
"point5"Symbol 1018 MovieClip {BrickBlock1} Frame 1Symbol 462 MovieClip {VertexMarker}
"point6"Symbol 1018 MovieClip {BrickBlock1} Frame 1Symbol 462 MovieClip {VertexMarker}
"point7"Symbol 1018 MovieClip {BrickBlock1} Frame 1Symbol 462 MovieClip {VertexMarker}
"point8"Symbol 1018 MovieClip {BrickBlock1} Frame 1Symbol 462 MovieClip {VertexMarker}
"point9"Symbol 1018 MovieClip {BrickBlock1} Frame 1Symbol 462 MovieClip {VertexMarker}
"point10"Symbol 1018 MovieClip {BrickBlock1} Frame 1Symbol 462 MovieClip {VertexMarker}
"point11"Symbol 1018 MovieClip {BrickBlock1} Frame 1Symbol 462 MovieClip {VertexMarker}
"point12"Symbol 1018 MovieClip {BrickBlock1} Frame 1Symbol 462 MovieClip {VertexMarker}
"point13"Symbol 1018 MovieClip {BrickBlock1} Frame 1Symbol 462 MovieClip {VertexMarker}
"point10"Symbol 1018 MovieClip {BrickBlock1} Frame 1Symbol 462 MovieClip {VertexMarker}
"m_bombClip"Symbol 1019 MovieClip {States.PlayState.Bomb4} Frame 1Symbol 224 MovieClip
"m_greenCrossClip"Symbol 1019 MovieClip {States.PlayState.Bomb4} Frame 1Symbol 847 MovieClip
"m_redCrossClip"Symbol 1019 MovieClip {States.PlayState.Bomb4} Frame 1Symbol 849 MovieClip
"vertex0"Symbol 1019 MovieClip {States.PlayState.Bomb4} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex1"Symbol 1019 MovieClip {States.PlayState.Bomb4} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex2"Symbol 1019 MovieClip {States.PlayState.Bomb4} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex3"Symbol 1019 MovieClip {States.PlayState.Bomb4} Frame 1Symbol 462 MovieClip {VertexMarker}
"m_bombCounter"Symbol 1019 MovieClip {States.PlayState.Bomb4} Frame 1Symbol 249 MovieClip {collapse_it_fla.figures_116}
"point0"Symbol 1023 MovieClip {BrickBlock8} Frame 1Symbol 462 MovieClip {VertexMarker}
"point1"Symbol 1023 MovieClip {BrickBlock8} Frame 1Symbol 462 MovieClip {VertexMarker}
"point2"Symbol 1023 MovieClip {BrickBlock8} Frame 1Symbol 462 MovieClip {VertexMarker}
"point3"Symbol 1023 MovieClip {BrickBlock8} Frame 1Symbol 462 MovieClip {VertexMarker}
"point4"Symbol 1023 MovieClip {BrickBlock8} Frame 1Symbol 462 MovieClip {VertexMarker}
"point5"Symbol 1023 MovieClip {BrickBlock8} Frame 1Symbol 462 MovieClip {VertexMarker}
"point6"Symbol 1023 MovieClip {BrickBlock8} Frame 1Symbol 462 MovieClip {VertexMarker}
"point8"Symbol 1023 MovieClip {BrickBlock8} Frame 1Symbol 462 MovieClip {VertexMarker}
"point9"Symbol 1023 MovieClip {BrickBlock8} Frame 1Symbol 462 MovieClip {VertexMarker}
"point10"Symbol 1023 MovieClip {BrickBlock8} Frame 1Symbol 462 MovieClip {VertexMarker}
"m_trajectory"Symbol 1024 MovieClip {States.PlayState.Bomb5} Frame 1Symbol 963 MovieClip {BombTrajectory}
"m_bombClip"Symbol 1024 MovieClip {States.PlayState.Bomb5} Frame 1Symbol 220 MovieClip
"m_greenCrossClip"Symbol 1024 MovieClip {States.PlayState.Bomb5} Frame 1Symbol 847 MovieClip
"m_redCrossClip"Symbol 1024 MovieClip {States.PlayState.Bomb5} Frame 1Symbol 849 MovieClip
"vertex0"Symbol 1024 MovieClip {States.PlayState.Bomb5} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex1"Symbol 1024 MovieClip {States.PlayState.Bomb5} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex2"Symbol 1024 MovieClip {States.PlayState.Bomb5} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex3"Symbol 1024 MovieClip {States.PlayState.Bomb5} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex4"Symbol 1024 MovieClip {States.PlayState.Bomb5} Frame 1Symbol 462 MovieClip {VertexMarker}
"m_bombCounter"Symbol 1024 MovieClip {States.PlayState.Bomb5} Frame 1Symbol 249 MovieClip {collapse_it_fla.figures_116}
"m_bombClip"Symbol 1027 MovieClip {States.PlayState.Bomb3} Frame 1Symbol 216 MovieClip
"m_greenCrossClip"Symbol 1027 MovieClip {States.PlayState.Bomb3} Frame 1Symbol 847 MovieClip
"m_redCrossClip"Symbol 1027 MovieClip {States.PlayState.Bomb3} Frame 1Symbol 849 MovieClip
"vertex0"Symbol 1027 MovieClip {States.PlayState.Bomb3} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex1"Symbol 1027 MovieClip {States.PlayState.Bomb3} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex2"Symbol 1027 MovieClip {States.PlayState.Bomb3} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex3"Symbol 1027 MovieClip {States.PlayState.Bomb3} Frame 1Symbol 462 MovieClip {VertexMarker}
"m_bombCounter"Symbol 1027 MovieClip {States.PlayState.Bomb3} Frame 1Symbol 249 MovieClip {collapse_it_fla.figures_116}
"vertex0"Symbol 1035 MovieClip {Roof} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex1"Symbol 1035 MovieClip {Roof} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex2"Symbol 1035 MovieClip {Roof} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex3"Symbol 1035 MovieClip {Roof} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex4"Symbol 1035 MovieClip {Roof} Frame 1Symbol 462 MovieClip {VertexMarker}
"vertex5"Symbol 1035 MovieClip {Roof} Frame 1Symbol 462 MovieClip {VertexMarker}
"point0"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point1"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point2"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point3"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point4"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point5"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point6"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point7"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point8"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point9"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point10"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point11"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point12"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point13"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point10"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point0"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point1"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point2"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point3"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point4"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point5"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point6"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point7"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point8"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point9"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point10"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point11"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point12"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point13"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point10"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point0"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point1"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point2"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point3"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point4"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point5"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point7"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point12"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point10"Symbol 1041 MovieClip {BrickBlock6} Frame 1Symbol 462 MovieClip {VertexMarker}
"point0"Symbol 1044 MovieClip {BrickBlock4} Frame 1Symbol 462 MovieClip {VertexMarker}
"point2"Symbol 1044 MovieClip {BrickBlock4} Frame 1Symbol 462 MovieClip {VertexMarker}
"point4"Symbol 1044 MovieClip {BrickBlock4} Frame 1Symbol 462 MovieClip {VertexMarker}
"point7"Symbol 1044 MovieClip {BrickBlock4} Frame 1Symbol 462 MovieClip {VertexMarker}
"point9"Symbol 1044 MovieClip {BrickBlock4} Frame 1Symbol 462 MovieClip {VertexMarker}
"point11"Symbol 1044 MovieClip {BrickBlock4} Frame 1Symbol 462 MovieClip {VertexMarker}
"point12"Symbol 1044 MovieClip {BrickBlock4} Frame 1Symbol 462 MovieClip {VertexMarker}
"point13"Symbol 1044 MovieClip {BrickBlock4} Frame 1Symbol 462 MovieClip {VertexMarker}
"point10"Symbol 1044 MovieClip {BrickBlock4} Frame 1Symbol 462 MovieClip {VertexMarker}
"point5"Symbol 1051 MovieClip {BrickBlock3} Frame 1Symbol 462 MovieClip {VertexMarker}
"point6"Symbol 1051 MovieClip {BrickBlock3} Frame 1Symbol 462 MovieClip {VertexMarker}
"point7"Symbol 1051 MovieClip {BrickBlock3} Frame 1Symbol 462 MovieClip {VertexMarker}
"point8"Symbol 1051 MovieClip {BrickBlock3} Frame 1Symbol 462 MovieClip {VertexMarker}
"point9"Symbol 1051 MovieClip {BrickBlock3} Frame 1Symbol 462 MovieClip {VertexMarker}
"point10"Symbol 1051 MovieClip {BrickBlock3} Frame 1Symbol 462 MovieClip {VertexMarker}
"point11"Symbol 1051 MovieClip {BrickBlock3} Frame 1Symbol 462 MovieClip {VertexMarker}
"point12"Symbol 1051 MovieClip {BrickBlock3} Frame 1Symbol 462 MovieClip {VertexMarker}
"point13"Symbol 1051 MovieClip {BrickBlock3} Frame 1Symbol 462 MovieClip {VertexMarker}
"point9"Symbol 1051 MovieClip {BrickBlock3} Frame 1Symbol 462 MovieClip {VertexMarker}
"point10"Symbol 1051 MovieClip {BrickBlock3} Frame 1Symbol 462 MovieClip {VertexMarker}
"point13"Symbol 1051 MovieClip {BrickBlock3} Frame 1Symbol 462 MovieClip {VertexMarker}
"point0"Symbol 1055 MovieClip {BrickBlock2} Frame 1Symbol 462 MovieClip {VertexMarker}
"point2"Symbol 1055 MovieClip {BrickBlock2} Frame 1Symbol 462 MovieClip {VertexMarker}
"point4"Symbol 1055 MovieClip {BrickBlock2} Frame 1Symbol 462 MovieClip {VertexMarker}
"point7"Symbol 1055 MovieClip {BrickBlock2} Frame 1Symbol 462 MovieClip {VertexMarker}
"point11"Symbol 1055 MovieClip {BrickBlock2} Frame 1Symbol 462 MovieClip {VertexMarker}
"point12"Symbol 1055 MovieClip {BrickBlock2} Frame 1Symbol 462 MovieClip {VertexMarker}
"point10"Symbol 1055 MovieClip {BrickBlock2} Frame 1Symbol 462 MovieClip {VertexMarker}
"point6"Symbol 1075 MovieClip {BrickBlock9} Frame 1Symbol 462 MovieClip {VertexMarker}
"point7"Symbol 1075 MovieClip {BrickBlock9} Frame 1Symbol 462 MovieClip {VertexMarker}
"point8"Symbol 1075 MovieClip {BrickBlock9} Frame 1Symbol 462 MovieClip {VertexMarker}
"point9"Symbol 1075 MovieClip {BrickBlock9} Frame 1Symbol 462 MovieClip {VertexMarker}
"point11"Symbol 1075 MovieClip {BrickBlock9} Frame 1Symbol 462 MovieClip {VertexMarker}
"point0"Symbol 1082 MovieClip {BrickBlock5} Frame 1Symbol 462 MovieClip {VertexMarker}
"point1"Symbol 1082 MovieClip {BrickBlock5} Frame 1Symbol 462 MovieClip {VertexMarker}
"point2"Symbol 1082 MovieClip {BrickBlock5} Frame 1Symbol 462 MovieClip {VertexMarker}
"point3"Symbol 1082 MovieClip {BrickBlock5} Frame 1Symbol 462 MovieClip {VertexMarker}
"point4"Symbol 1082 MovieClip {BrickBlock5} Frame 1Symbol 462 MovieClip {VertexMarker}
"point5"Symbol 1082 MovieClip {BrickBlock5} Frame 1Symbol 462 MovieClip {VertexMarker}
"point6"Symbol 1082 MovieClip {BrickBlock5} Frame 1Symbol 462 MovieClip {VertexMarker}
"point7"Symbol 1082 MovieClip {BrickBlock5} Frame 1Symbol 462 MovieClip {VertexMarker}
"point9"Symbol 1082 MovieClip {BrickBlock5} Frame 1Symbol 462 MovieClip {VertexMarker}
"point12"Symbol 1082 MovieClip {BrickBlock5} Frame 1Symbol 462 MovieClip {VertexMarker}
"point10"Symbol 1082 MovieClip {BrickBlock5} Frame 1Symbol 462 MovieClip {VertexMarker}
"m_firstStep"Symbol 1114 MovieClip {Level00} Frame 1Symbol 1111 MovieClip {FirstStepArrow}
"m_secondStep"Symbol 1114 MovieClip {Level00} Frame 1Symbol 1113 MovieClip

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.
Protect (24)Timeline Frame 10 bytes ""

Labels

"TWENTY"Symbol 694 MovieClip {collapse_it_fla.allAchiev_288} Frame 1
"FIFTY"Symbol 694 MovieClip {collapse_it_fla.allAchiev_288} Frame 2
"HUNDRED"Symbol 694 MovieClip {collapse_it_fla.allAchiev_288} Frame 3
"DYNAMITE"Symbol 694 MovieClip {collapse_it_fla.allAchiev_288} Frame 4
"TNT"Symbol 694 MovieClip {collapse_it_fla.allAchiev_288} Frame 5
"GOLD_GRENADE"Symbol 694 MovieClip {collapse_it_fla.allAchiev_288} Frame 6
"BRONSE_CUP"Symbol 694 MovieClip {collapse_it_fla.allAchiev_288} Frame 7
"SILVER_CUP"Symbol 694 MovieClip {collapse_it_fla.allAchiev_288} Frame 8
"GOLD_CUP"Symbol 694 MovieClip {collapse_it_fla.allAchiev_288} Frame 9
"BRONSE_BOMB_WITH_WINGS"Symbol 694 MovieClip {collapse_it_fla.allAchiev_288} Frame 10
"SILVER_BOMB_WITH_WINGS"Symbol 694 MovieClip {collapse_it_fla.allAchiev_288} Frame 11
"GOLD_BOMB_WITH_WINGS"Symbol 694 MovieClip {collapse_it_fla.allAchiev_288} Frame 12
"CROWN"Symbol 694 MovieClip {collapse_it_fla.allAchiev_288} Frame 13




https://swfchan.com/54/268339/info.shtml
Created: 16/6 -2026 17:10:50 Last modified: 16/6 -2026 17:10:50 Server time: 23/06 -2026 11:45:04