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

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

Collapse It - kill people in hilarious physics puzzle game.swf

This is the info page for
Flash #130382

(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

www.kongregate.com

<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

Host this game

Host this game

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

Requements:
kill 20 humans

TNT

Requements:
play 30 minutes for end

SILVER CUP

Requements:
pass 20 levels

SILVER BOMB

Requements:
pass 20 levels with a cup
rating

HUNDRED KILLS MEDAL

Requements:
kill 100 humans

GOLDEN GRENADE

Requements:
pass 16th level with only 4
bombs

GOLDEN CUP

Requements:
pass 30 levels

GOLDEN BOMB

Requements:
pass 30 levels with a cup
rating

FIFTY KILLS MEDAL

Requements:
kill 50 humans

FIRST BLOOD

Requements:
pass 1st level

CROWN

Requements:
get all achievements

BRONZE CUP

Requements:
pass 10 levels

BRONZE BOMB

Requements:
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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Controllers.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.*; 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.Dynamics.Contacts.*; import Box2D.Collision.*; 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.Dynamics.Contacts.*; import Box2D.Collision.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.*; 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.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Controllers.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.*; 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
//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.kongregate.com", false); _local4.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, goKongregate); var _local5:ContextMenuItem = new ContextMenuItem("Add Shotfirer to your site", true); _local5.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, goContentPage); var _local6:ContextMenuItem = new ContextMenuItem("Video Walkthrough", true); _local6.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, goWalkthrough); _local1.customItems = [_local5, _local3, _local4, _local6]; contextMenu = _local1; } private function goKongregate(_arg1:ContextMenuEvent):void{ LinksManager.goURL(LinksManager.MAIN_PAGE_URL); } private function goContentPage(_arg1:ContextMenuEvent):void{ LinksManager.goURL(LinksManager.GAMES_FOR_YOUR_SITE_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 103
//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 104
//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 105
//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 106
//PhysGameState (Main.PhysGameState) package Main { import flash.events.*; import Box2D.Common.Math.*; import Utils.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; 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 107
//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 108
//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 109
//Encode (Playtomic.Encode) package Playtomic { import flash.display.*; import flash.utils.*; public class Encode { private static const BASE64_CHARS:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; private static var crcTable:Array; private static var crcTableComputed:Boolean = false; private static var hex_chr:String = "0123456789abcdef"; public static function Base64(_arg1:ByteArray):String{ var _local3:Array; var _local5:uint; var _local6:uint; var _local7:uint; var _local2 = ""; var _local4:Array = new Array(4); _arg1.position = 0; while (_arg1.bytesAvailable > 0) { _local3 = new Array(); _local5 = 0; while ((((_local5 < 3)) && ((_arg1.bytesAvailable > 0)))) { _local3[_local5] = _arg1.readUnsignedByte(); _local5++; }; _local4[0] = ((_local3[0] & 252) >> 2); _local4[1] = (((_local3[0] & 3) << 4) | (_local3[1] >> 4)); _local4[2] = (((_local3[1] & 15) << 2) | (_local3[2] >> 6)); _local4[3] = (_local3[2] & 63); _local6 = _local3.length; while (_local6 < 3) { _local4[(_local6 + 1)] = 64; _local6++; }; _local7 = 0; while (_local7 < _local4.length) { _local2 = (_local2 + BASE64_CHARS.charAt(_local4[_local7])); _local7++; }; }; return (_local2); } public static function PNG(_arg1:BitmapData):ByteArray{ var _local5:uint; var _local6:int; var _local2:ByteArray = new ByteArray(); _local2.writeUnsignedInt(2303741511); _local2.writeUnsignedInt(218765834); var _local3:ByteArray = new ByteArray(); _local3.writeInt(_arg1.width); _local3.writeInt(_arg1.height); _local3.writeUnsignedInt(134610944); _local3.writeByte(0); writeChunk(_local2, 1229472850, _local3); var _local4:ByteArray = new ByteArray(); var _local7:int; while (_local7 < _arg1.height) { _local4.writeByte(0); if (!_arg1.transparent){ _local6 = 0; while (_local6 < _arg1.width) { _local5 = _arg1.getPixel(_local6, _local7); _local4.writeUnsignedInt(uint((((_local5 & 0xFFFFFF) << 8) | 0xFF))); _local6++; }; } else { _local6 = 0; while (_local6 < _arg1.width) { _local5 = _arg1.getPixel32(_local6, _local7); _local4.writeUnsignedInt(uint((((_local5 & 0xFFFFFF) << 8) | (_local5 >>> 24)))); _local6++; }; }; _local7++; }; _local4.compress(); writeChunk(_local2, 1229209940, _local4); writeChunk(_local2, 1229278788, null); return (_local2); } private static function writeChunk(_arg1:ByteArray, _arg2:uint, _arg3:ByteArray):void{ var _local8:uint; var _local9:uint; var _local10:uint; if (!crcTableComputed){ crcTableComputed = true; crcTable = []; _local9 = 0; while (_local9 < 0x0100) { _local8 = _local9; _local10 = 0; while (_local10 < 8) { if ((_local8 & 1)){ _local8 = uint((uint(3988292384) ^ uint((_local8 >>> 1)))); } else { _local8 = uint((_local8 >>> 1)); }; _local10++; }; crcTable[_local9] = _local8; _local9++; }; }; var _local4:uint; if (_arg3 != null){ _local4 = _arg3.length; }; _arg1.writeUnsignedInt(_local4); var _local5:uint = _arg1.position; _arg1.writeUnsignedInt(_arg2); if (_arg3 != null){ _arg1.writeBytes(_arg3); }; var _local6:uint = _arg1.position; _arg1.position = _local5; _local8 = 4294967295; var _local7:int; while (_local7 < (_local6 - _local5)) { _local8 = uint((crcTable[((_local8 ^ _arg1.readUnsignedByte()) & uint(0xFF))] ^ uint((_local8 >>> 8)))); _local7++; }; _local8 = uint((_local8 ^ uint(4294967295))); _arg1.position = _local6; _arg1.writeUnsignedInt(_local8); } private static function bitOR(_arg1:Number, _arg2:Number):Number{ var _local3:Number = ((_arg1 & 1) | (_arg2 & 1)); var _local4:Number = ((_arg1 >>> 1) | (_arg2 >>> 1)); return (((_local4 << 1) | _local3)); } private static function bitXOR(_arg1:Number, _arg2:Number):Number{ var _local3:Number = ((_arg1 & 1) ^ (_arg2 & 1)); var _local4:Number = ((_arg1 >>> 1) ^ (_arg2 >>> 1)); return (((_local4 << 1) | _local3)); } private static function bitAND(_arg1:Number, _arg2:Number):Number{ var _local3:Number = ((_arg1 & 1) & (_arg2 & 1)); var _local4:Number = ((_arg1 >>> 1) & (_arg2 >>> 1)); return (((_local4 << 1) | _local3)); } private static function addme(_arg1:Number, _arg2:Number):Number{ var _local3:Number = ((_arg1 & 0xFFFF) + (_arg2 & 0xFFFF)); var _local4:Number = (((_arg1 >> 16) + (_arg2 >> 16)) + (_local3 >> 16)); return (((_local4 << 16) | (_local3 & 0xFFFF))); } private static function rhex(_arg1:Number):String{ var _local3:int; var _local2 = ""; _local3 = 0; while (_local3 <= 3) { _local2 = (_local2 + (hex_chr.charAt(((_arg1 >> ((_local3 * 8) + 4)) & 15)) + hex_chr.charAt(((_arg1 >> (_local3 * 8)) & 15)))); _local3++; }; return (_local2); } private static function str2blks_MD5(_arg1:String):Array{ var _local4:int; var _local2:Number = (((_arg1.length + 8) >> 6) + 1); var _local3:Array = new Array((_local2 * 16)); _local4 = 0; while (_local4 < (_local2 * 16)) { _local3[_local4] = 0; _local4++; }; _local4 = 0; while (_local4 < _arg1.length) { _local3[(_local4 >> 2)] = (_local3[(_local4 >> 2)] | (_arg1.charCodeAt(_local4) << ((((_arg1.length * 8) + _local4) % 4) * 8))); _local4++; }; _local3[(_local4 >> 2)] = (_local3[(_local4 >> 2)] | (128 << ((((_arg1.length * 8) + _local4) % 4) * 8))); var _local5:int = (_arg1.length * 8); _local3[((_local2 * 16) - 2)] = (_local5 & 0xFF); _local3[((_local2 * 16) - 2)] = (_local3[((_local2 * 16) - 2)] | (((_local5 >>> 8) & 0xFF) << 8)); _local3[((_local2 * 16) - 2)] = (_local3[((_local2 * 16) - 2)] | (((_local5 >>> 16) & 0xFF) << 16)); _local3[((_local2 * 16) - 2)] = (_local3[((_local2 * 16) - 2)] | (((_local5 >>> 24) & 0xFF) << 24)); return (_local3); } private static function rol(_arg1:Number, _arg2:Number):Number{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } private static function cmn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Number{ return (addme(rol(addme(addme(_arg2, _arg1), addme(_arg4, _arg6)), _arg5), _arg3)); } private static function ff(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (cmn(bitOR(bitAND(_arg2, _arg3), bitAND(~(_arg2), _arg4)), _arg1, _arg2, _arg5, _arg6, _arg7)); } private static function gg(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (cmn(bitOR(bitAND(_arg2, _arg4), bitAND(_arg3, ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } private static function hh(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (cmn(bitXOR(bitXOR(_arg2, _arg3), _arg4), _arg1, _arg2, _arg5, _arg6, _arg7)); } private static function ii(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (cmn(bitXOR(_arg3, bitOR(_arg2, ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function MD5(_arg1:String):String{ var _local7:int; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local2:Array = str2blks_MD5(_arg1); var _local3:Number = 1732584193; var _local4:Number = -271733879; var _local5:Number = -1732584194; var _local6:Number = 271733878; _local7 = 0; while (_local7 < _local2.length) { _local8 = _local3; _local9 = _local4; _local10 = _local5; _local11 = _local6; _local3 = ff(_local3, _local4, _local5, _local6, _local2[(_local7 + 0)], 7, -680876936); _local6 = ff(_local6, _local3, _local4, _local5, _local2[(_local7 + 1)], 12, -389564586); _local5 = ff(_local5, _local6, _local3, _local4, _local2[(_local7 + 2)], 17, 606105819); _local4 = ff(_local4, _local5, _local6, _local3, _local2[(_local7 + 3)], 22, -1044525330); _local3 = ff(_local3, _local4, _local5, _local6, _local2[(_local7 + 4)], 7, -176418897); _local6 = ff(_local6, _local3, _local4, _local5, _local2[(_local7 + 5)], 12, 1200080426); _local5 = ff(_local5, _local6, _local3, _local4, _local2[(_local7 + 6)], 17, -1473231341); _local4 = ff(_local4, _local5, _local6, _local3, _local2[(_local7 + 7)], 22, -45705983); _local3 = ff(_local3, _local4, _local5, _local6, _local2[(_local7 + 8)], 7, 1770035416); _local6 = ff(_local6, _local3, _local4, _local5, _local2[(_local7 + 9)], 12, -1958414417); _local5 = ff(_local5, _local6, _local3, _local4, _local2[(_local7 + 10)], 17, -42063); _local4 = ff(_local4, _local5, _local6, _local3, _local2[(_local7 + 11)], 22, -1990404162); _local3 = ff(_local3, _local4, _local5, _local6, _local2[(_local7 + 12)], 7, 1804603682); _local6 = ff(_local6, _local3, _local4, _local5, _local2[(_local7 + 13)], 12, -40341101); _local5 = ff(_local5, _local6, _local3, _local4, _local2[(_local7 + 14)], 17, -1502002290); _local4 = ff(_local4, _local5, _local6, _local3, _local2[(_local7 + 15)], 22, 1236535329); _local3 = gg(_local3, _local4, _local5, _local6, _local2[(_local7 + 1)], 5, -165796510); _local6 = gg(_local6, _local3, _local4, _local5, _local2[(_local7 + 6)], 9, -1069501632); _local5 = gg(_local5, _local6, _local3, _local4, _local2[(_local7 + 11)], 14, 643717713); _local4 = gg(_local4, _local5, _local6, _local3, _local2[(_local7 + 0)], 20, -373897302); _local3 = gg(_local3, _local4, _local5, _local6, _local2[(_local7 + 5)], 5, -701558691); _local6 = gg(_local6, _local3, _local4, _local5, _local2[(_local7 + 10)], 9, 38016083); _local5 = gg(_local5, _local6, _local3, _local4, _local2[(_local7 + 15)], 14, -660478335); _local4 = gg(_local4, _local5, _local6, _local3, _local2[(_local7 + 4)], 20, -405537848); _local3 = gg(_local3, _local4, _local5, _local6, _local2[(_local7 + 9)], 5, 568446438); _local6 = gg(_local6, _local3, _local4, _local5, _local2[(_local7 + 14)], 9, -1019803690); _local5 = gg(_local5, _local6, _local3, _local4, _local2[(_local7 + 3)], 14, -187363961); _local4 = gg(_local4, _local5, _local6, _local3, _local2[(_local7 + 8)], 20, 1163531501); _local3 = gg(_local3, _local4, _local5, _local6, _local2[(_local7 + 13)], 5, -1444681467); _local6 = gg(_local6, _local3, _local4, _local5, _local2[(_local7 + 2)], 9, -51403784); _local5 = gg(_local5, _local6, _local3, _local4, _local2[(_local7 + 7)], 14, 1735328473); _local4 = gg(_local4, _local5, _local6, _local3, _local2[(_local7 + 12)], 20, -1926607734); _local3 = hh(_local3, _local4, _local5, _local6, _local2[(_local7 + 5)], 4, -378558); _local6 = hh(_local6, _local3, _local4, _local5, _local2[(_local7 + 8)], 11, -2022574463); _local5 = hh(_local5, _local6, _local3, _local4, _local2[(_local7 + 11)], 16, 1839030562); _local4 = hh(_local4, _local5, _local6, _local3, _local2[(_local7 + 14)], 23, -35309556); _local3 = hh(_local3, _local4, _local5, _local6, _local2[(_local7 + 1)], 4, -1530992060); _local6 = hh(_local6, _local3, _local4, _local5, _local2[(_local7 + 4)], 11, 1272893353); _local5 = hh(_local5, _local6, _local3, _local4, _local2[(_local7 + 7)], 16, -155497632); _local4 = hh(_local4, _local5, _local6, _local3, _local2[(_local7 + 10)], 23, -1094730640); _local3 = hh(_local3, _local4, _local5, _local6, _local2[(_local7 + 13)], 4, 681279174); _local6 = hh(_local6, _local3, _local4, _local5, _local2[(_local7 + 0)], 11, -358537222); _local5 = hh(_local5, _local6, _local3, _local4, _local2[(_local7 + 3)], 16, -722521979); _local4 = hh(_local4, _local5, _local6, _local3, _local2[(_local7 + 6)], 23, 76029189); _local3 = hh(_local3, _local4, _local5, _local6, _local2[(_local7 + 9)], 4, -640364487); _local6 = hh(_local6, _local3, _local4, _local5, _local2[(_local7 + 12)], 11, -421815835); _local5 = hh(_local5, _local6, _local3, _local4, _local2[(_local7 + 15)], 16, 530742520); _local4 = hh(_local4, _local5, _local6, _local3, _local2[(_local7 + 2)], 23, -995338651); _local3 = ii(_local3, _local4, _local5, _local6, _local2[(_local7 + 0)], 6, -198630844); _local6 = ii(_local6, _local3, _local4, _local5, _local2[(_local7 + 7)], 10, 1126891415); _local5 = ii(_local5, _local6, _local3, _local4, _local2[(_local7 + 14)], 15, -1416354905); _local4 = ii(_local4, _local5, _local6, _local3, _local2[(_local7 + 5)], 21, -57434055); _local3 = ii(_local3, _local4, _local5, _local6, _local2[(_local7 + 12)], 6, 1700485571); _local6 = ii(_local6, _local3, _local4, _local5, _local2[(_local7 + 3)], 10, -1894986606); _local5 = ii(_local5, _local6, _local3, _local4, _local2[(_local7 + 10)], 15, -1051523); _local4 = ii(_local4, _local5, _local6, _local3, _local2[(_local7 + 1)], 21, -2054922799); _local3 = ii(_local3, _local4, _local5, _local6, _local2[(_local7 + 8)], 6, 1873313359); _local6 = ii(_local6, _local3, _local4, _local5, _local2[(_local7 + 15)], 10, -30611744); _local5 = ii(_local5, _local6, _local3, _local4, _local2[(_local7 + 6)], 15, -1560198380); _local4 = ii(_local4, _local5, _local6, _local3, _local2[(_local7 + 13)], 21, 1309151649); _local3 = ii(_local3, _local4, _local5, _local6, _local2[(_local7 + 4)], 6, -145523070); _local6 = ii(_local6, _local3, _local4, _local5, _local2[(_local7 + 11)], 10, -1120210379); _local5 = ii(_local5, _local6, _local3, _local4, _local2[(_local7 + 2)], 15, 718787259); _local4 = ii(_local4, _local5, _local6, _local3, _local2[(_local7 + 9)], 21, -343485551); _local3 = addme(_local3, _local8); _local4 = addme(_local4, _local9); _local5 = addme(_local5, _local10); _local6 = addme(_local6, _local11); _local7 = (_local7 + 16); }; return ((((rhex(_local3) + rhex(_local4)) + rhex(_local5)) + rhex(_local6))); } } }//package Playtomic
Section 110
//Leaderboards (Playtomic.Leaderboards) package Playtomic { import flash.events.*; import flash.net.*; public class Leaderboards { public static function List(_arg1:String, _arg2:Function, _arg3:Object=null):void{ var sendaction:URLLoader; var handled:Boolean; var bridge:Function; var key:String; var table = _arg1; var callback = _arg2; var options = _arg3; if (options == null){ options = new Object(); }; var global:Boolean = (options.hasOwnProperty("global")) ? options["global"] : true; var highest:Boolean = (options.hasOwnProperty("highest")) ? options["highest"] : true; var mode:String = (options.hasOwnProperty("mode")) ? options["mode"] : "alltime"; var customfilters:Object = (options.hasOwnProperty("customfilters")) ? options["customfilters"] : {}; trace(("Custom filters are " + customfilters)); var page:int = (options.hasOwnProperty("page")) ? options["page"] : 1; var perpage:int = (options.hasOwnProperty("perpage")) ? options["perpage"] : 20; sendaction = new URLLoader(); handled = false; if (callback != null){ bridge = function ():void{ if ((((callback == null)) || (handled))){ return; }; handled = true; ProcessScores(sendaction, callback); }; sendaction.addEventListener(Event.COMPLETE, bridge); }; var fail:Function = function ():void{ if ((((callback == null)) || (handled))){ return; }; handled = true; callback([], 0, {Success:false, ErrorCode:1}); }; var httpstatusignore:Function = function ():void{ }; var postdata:URLVariables = new URLVariables(); var numcustomfilters:int; if (customfilters != null){ for (key in customfilters) { postdata[("ckey" + numcustomfilters)] = key; postdata[("cdata" + numcustomfilters)] = escape(customfilters[key]); numcustomfilters = (numcustomfilters + 1); }; }; var request:URLRequest = new URLRequest(((((((((((((((((((("http://g" + Log.GUID) + ".api.playtomic.com/leaderboards/list.aspx?swfid=") + Log.SWFID) + "&table=") + table) + "&mode=") + mode) + "&filters=") + numcustomfilters) + "&url=") + (((global) || ((Log.SourceUrl == null)))) ? "global" : Log.SourceUrl) + "&highest=") + (highest) ? "y" : "n") + "&page=") + page) + "&perpage=") + perpage) + "&") + Math.random())); request.data = postdata; request.method = URLRequestMethod.POST; sendaction.addEventListener(IOErrorEvent.IO_ERROR, fail, false, 0, true); sendaction.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpstatusignore, false, 0, true); sendaction.addEventListener(SecurityErrorEvent.SECURITY_ERROR, fail, false, 0, true); sendaction.load(request); } public static function ListFB(_arg1:String, _arg2:Function, _arg3:Object=null):void{ var sendaction:URLLoader; var handled:Boolean; var bridge:Function; var key:String; var table = _arg1; var callback = _arg2; var options = _arg3; if (options == null){ options = new Object(); }; var global:Boolean = (options.hasOwnProperty("global")) ? options["global"] : true; var highest:Boolean = (options.hasOwnProperty("highest")) ? options["highest"] : true; var friendslist:Array = (options.hasOwnProperty("friendslist")) ? options["friendslist"] : new Array(); var mode:String = (options.hasOwnProperty("mode")) ? options["mode"] : "alltime"; var customfilters:Object = (options.hasOwnProperty("customfilters")) ? options["customfilters"] : {}; var page:int = (options.hasOwnProperty("page")) ? options["page"] : 1; var perpage:int = (options.hasOwnProperty("perpage")) ? options["perpage"] : 20; sendaction = new URLLoader(); handled = false; if (callback != null){ bridge = function ():void{ if ((((callback == null)) || (handled))){ return; }; handled = true; ProcessScores(sendaction, callback); }; sendaction.addEventListener(Event.COMPLETE, bridge); }; var fail:Function = function ():void{ if ((((callback == null)) || (handled))){ return; }; handled = true; callback([], 0, {Success:false, ErrorCode:1}); }; var httpstatusignore:Function = function ():void{ }; var postdata:URLVariables = new URLVariables(); postdata["friendslist"] = friendslist.join(","); var numcustomfilters:int; if (customfilters != null){ for (key in customfilters) { postdata[("ckey" + numcustomfilters)] = key; postdata[("cdata" + numcustomfilters)] = escape(customfilters[key]); numcustomfilters = (numcustomfilters + 1); }; }; var request:URLRequest = new URLRequest(((((((((((((((((((("http://g" + Log.GUID) + ".api.playtomic.com/leaderboards/listfb.aspx?swfid=") + Log.SWFID) + "&table=") + table) + "&mode=") + mode) + "&filters=") + numcustomfilters) + "&url=") + (((global) || ((Log.SourceUrl == null)))) ? "global" : Log.SourceUrl) + "&highest=") + (highest) ? "y" : "n") + "&page=") + page) + "&perpage=") + perpage) + "&") + Math.random())); request.data = postdata; request.method = URLRequestMethod.POST; sendaction.addEventListener(IOErrorEvent.IO_ERROR, fail, false, 0, true); sendaction.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpstatusignore, false, 0, true); sendaction.addEventListener(SecurityErrorEvent.SECURITY_ERROR, fail, false, 0, true); sendaction.load(request); } public static function Save(_arg1:PlayerScore, _arg2:String, _arg3:Function=null, _arg4:Object=null):void{ var sendaction:URLLoader; var handled:Boolean; var bridge:Function; var key:String; var score = _arg1; var table = _arg2; var callback = _arg3; var options = _arg4; if (options == null){ options = new Object(); }; var facebook:Boolean = (options.hasOwnProperty("facebook")) ? options["facebook"] : false; var allowduplicates:Boolean = (options.hasOwnProperty("allowduplicates")) ? options["allowduplicates"] : false; var highest:Boolean = (options.hasOwnProperty("highest")) ? options["highest"] : true; sendaction = new URLLoader(); handled = false; if (callback != null){ bridge = function ():void{ if ((((callback == null)) || (handled))){ return; }; handled = true; var _local1:XML = XML(sendaction["data"]); var _local2:int = parseInt(_local1["status"]); if (_local2 == 1){ score.SDate = new Date(); score.RDate = "Just now"; }; callback(score, {Success:(_local2 == 1), ErrorCode:parseInt(_local1["errorcode"])}); }; sendaction.addEventListener(Event.COMPLETE, bridge); }; var fail:Function = function ():void{ if ((((callback == null)) || (handled))){ return; }; handled = true; callback(score, {Success:false, ErrorCode:1}); }; var httpstatusignore:Function = function ():void{ }; var s:String = score.Points.toString(); if (s.indexOf(".") > -1){ s = s.substring(0, s.indexOf(".")); }; var postdata:URLVariables = new URLVariables(); postdata["table"] = escape(table); postdata["highest"] = highest; postdata["name"] = escape(score.Name); postdata["points"] = s; postdata["allowduplicates"] = (allowduplicates) ? "y" : "n"; postdata["auth"] = Encode.MD5((Log.SourceUrl + s)); postdata["fb"] = (facebook) ? "y" : "n"; postdata["fbuserid"] = score.FBUserId; var customfields:int; if (score.CustomData != null){ for (key in score.CustomData) { postdata[("ckey" + customfields)] = key; postdata[("cdata" + customfields)] = escape(score.CustomData[key]); customfields = (customfields + 1); }; }; postdata["customfields"] = customfields; var request:URLRequest = new URLRequest(((((((("http://g" + Log.GUID) + ".api.playtomic.com/leaderboards/save.aspx?swfid=") + Log.SWFID) + "&url=") + Log.SourceUrl) + "&r=") + Math.random())); request.data = postdata; request.method = URLRequestMethod.POST; sendaction.addEventListener(IOErrorEvent.IO_ERROR, fail, false, 0, true); sendaction.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpstatusignore, false, 0, true); sendaction.addEventListener(SecurityErrorEvent.SECURITY_ERROR, fail, false, 0, true); sendaction.load(request); } private static function ProcessScores(_arg1:URLLoader, _arg2:Function):void{ var _local8:XMLList; var _local9:String; var _local10:int; var _local11:int; var _local12:int; var _local13:XML; var _local14:PlayerScore; var _local15:XMLList; var _local16:XML; var _local3:XML = XML(_arg1["data"]); var _local4:int = parseInt(_local3["status"]); var _local5:int = parseInt(_local3["errorcode"]); var _local6:int = parseInt(_local3["numscores"]); var _local7:Array = new Array(); if (_local4 == 1){ _local8 = _local3["score"]; for each (_local13 in _local8) { _local9 = _local13["sdate"]; _local10 = int(_local9.substring((_local9.lastIndexOf("/") + 1))); _local11 = int(_local9.substring(0, _local9.indexOf("/"))); _local12 = int(_local9.substring((_local9.indexOf("/") + 1)).substring(0, 2)); _local14 = new PlayerScore(); _local14.SDate = new Date(_local10, (_local11 - 1), _local12); _local14.RDate = _local13["rdate"]; _local14.Name = _local13["name"]; _local14.Points = _local13["points"]; _local14.Website = _local13["website"]; if (_local13["custom"]){ _local15 = _local13["custom"]; for each (_local16 in _local15.children()) { _local14.CustomData[_local16.name()] = _local16.text(); }; }; _local7.push(_local14); }; }; _arg2(_local7, _local6, {Success:(_local4 == 1), ErrorCode:_local5}); } } }//package Playtomic
Section 111
//Link (Playtomic.Link) package Playtomic { import flash.net.*; public final class Link { private static var Clicks:Array = new Array(); public static function Open(_arg1:String, _arg2:String, _arg3:String):Boolean{ var result:Boolean; var url = _arg1; var name = _arg2; var group = _arg3; var unique:int; var bunique:int; var total:int; var btotal:int; var fail:int; var bfail:int; var key:String = ((url + ".") + name); var baseurl:String = url; baseurl = baseurl.replace("http://", ""); if (baseurl.indexOf("/") > -1){ baseurl = baseurl.substring(0, baseurl.indexOf("/")); }; if (baseurl.indexOf("?") > -1){ baseurl = baseurl.substring(0, baseurl.indexOf("?")); }; baseurl = (("http://" + baseurl) + "/"); var baseurlname:String = baseurl; if (baseurlname.indexOf("//") > -1){ baseurlname = baseurlname.substring((baseurlname.indexOf("//") + 2)); }; baseurlname = baseurlname.replace("www.", ""); if (baseurlname.indexOf("/") > -1){ baseurlname = baseurlname.substring(0, baseurlname.indexOf("/")); }; try { navigateToURL(new URLRequest(url)); if (Clicks.indexOf(key) > -1){ total = 1; } else { total = 1; unique = 1; Clicks.push(key); }; if (Clicks.indexOf(baseurlname) > -1){ btotal = 1; } else { btotal = 1; bunique = 1; Clicks.push(baseurlname); }; result = true; } catch(err) { fail = 1; bfail = 1; result = false; }; Log.Link(baseurl, baseurlname.toLowerCase(), "DomainTotals", bunique, btotal, bfail); Log.Link(url, name, group, unique, total, fail); Log.ForceSend(); return (result); } } }//package Playtomic
Section 112
//Log (Playtomic.Log) package Playtomic { import flash.events.*; import flash.net.*; import flash.utils.*; import flash.system.*; import flash.external.*; public final class Log { private static const PingF:Timer = new Timer(60000); private static const PingR:Timer = new Timer(30000); public static var Enabled:Boolean = false; public static var Queue:Boolean = true; public static var SWFID:int = 0; public static var GUID:String = ""; public static var SourceUrl:String; public static var BaseUrl:String; public static var Cookie:SharedObject; public static var Request:LogRequest; private static var FirstPing:Boolean = true; private static var Pings:int = 0; private static var Plays:int = 0; private static var HighestGoal:int = 0; private static var Frozen:Boolean = false; private static var FrozenQueue:Array = new Array(); private static var Customs:Array = new Array(); private static var LevelCounters:Array = new Array(); private static var LevelAverages:Array = new Array(); private static var LevelRangeds:Array = new Array(); public static function View(_arg1:int=0, _arg2:String="", _arg3:String=""):void{ if (SWFID > 0){ return; }; SWFID = _arg1; GUID = _arg2; Enabled = true; if ((((SWFID == 0)) || ((GUID == "")))){ Enabled = false; return; }; if (((((!((_arg3.indexOf("http://") == 0))) && (!((Security.sandboxType == "localWithNetwork"))))) && (!((Security.sandboxType == "localTrusted"))))){ Enabled = false; return; }; SourceUrl = GetUrl(_arg3); if ((((((SourceUrl == null)) || ((SourceUrl == "")))) || ((SourceUrl.indexOf("https://") == 0)))){ Enabled = false; return; }; Security.allowDomain((("http://g" + Log.GUID) + ".api.playtomic.com/")); Security.allowInsecureDomain((("http://g" + Log.GUID) + ".api.playtomic.com/")); Security.loadPolicyFile((("http://g" + Log.GUID) + ".api.playtomic.com/crossdomain.xml")); Request = LogRequest.Create(); Cookie = SharedObject.getLocal("playtomic"); var _local4:int = GetCookie("views"); Send(("v/" + (_local4 + 1)), true); PingF.addEventListener(TimerEvent.TIMER, PingServer); PingF.start(); } public static function IncreaseViews():void{ var _local1:int = GetCookie("views"); _local1++; SaveCookie("views", _local1); } public static function IncreasePlays():void{ Plays++; } public static function Play():void{ if (!Enabled){ return; }; LevelCounters = new Array(); LevelAverages = new Array(); LevelRangeds = new Array(); Send(("p/" + (Plays + 1)), true); } private static function PingServer(... _args):void{ if (!Enabled){ return; }; Pings++; Send(((("t/" + (FirstPing) ? "y" : "n") + "/") + Pings), true); if (FirstPing){ PingF.stop(); PingR.addEventListener(TimerEvent.TIMER, PingServer); PingR.start(); FirstPing = false; }; } public static function CustomMetric(_arg1:String, _arg2:String=null, _arg3:Boolean=false):void{ if (!Enabled){ return; }; if (_arg2 == null){ _arg2 = ""; }; if (_arg3){ if (Customs.indexOf(_arg1) > -1){ return; }; Customs.push(_arg1); }; Send(((("c/" + Clean(_arg1)) + "/") + Clean(_arg2))); } public static function LevelCounterMetric(_arg1:String, _arg2, _arg3:Boolean=false):void{ if (!Enabled){ return; }; if (_arg3){ if (LevelCounters.indexOf(_arg1) > -1){ return; }; LevelCounters.push(_arg1); }; Send(((("lc/" + Clean(_arg1)) + "/") + Clean(_arg2))); } public static function LevelRangedMetric(_arg1:String, _arg2, _arg3:int, _arg4:Boolean=false):void{ if (!Enabled){ return; }; if (_arg4){ if (LevelRangeds.indexOf(_arg1) > -1){ return; }; LevelRangeds.push(_arg1); }; Send(((((("lr/" + Clean(_arg1)) + "/") + Clean(_arg2)) + "/") + _arg3)); } public static function LevelAverageMetric(_arg1:String, _arg2, _arg3:int, _arg4:Boolean=false):void{ if (!Enabled){ return; }; if (_arg4){ if (LevelAverages.indexOf(_arg1) > -1){ return; }; LevelAverages.push(_arg1); }; Send(((((("la/" + Clean(_arg1)) + "/") + Clean(_arg2)) + "/") + _arg3)); } public static function Link(_arg1:String, _arg2:String, _arg3:String, _arg4:int, _arg5:int, _arg6:int):void{ if (!Enabled){ return; }; Send(((((((((((("l/" + Clean(_arg2)) + "/") + Clean(_arg3)) + "/") + Clean(_arg1)) + "/") + _arg4) + "/") + _arg5) + "/") + _arg6)); } public static function Freeze():void{ Frozen = true; } public static function UnFreeze():void{ Frozen = false; Request.MassQueue(FrozenQueue); } public static function ForceSend():void{ if (!Enabled){ return; }; Request.Send(); Request = LogRequest.Create(); if (FrozenQueue.length > 0){ Request.MassQueue(FrozenQueue); }; } private static function Send(_arg1:String, _arg2:Boolean=false):void{ if (Frozen){ FrozenQueue.push(_arg1); return; }; Request.Queue(_arg1); if (((((Request.Ready) || (_arg2))) || (!(Queue)))){ Request.Send(); Request = LogRequest.Create(); }; } private static function Clean(_arg1:String):String{ while (_arg1.indexOf("/") > -1) { _arg1 = _arg1.replace("/", "\\"); }; while (_arg1.indexOf("~") > -1) { _arg1 = _arg1.replace("~", "-"); }; return (escape(_arg1)); } private static function GetCookie(_arg1:String):int{ if (Cookie.data[_arg1] == undefined){ return (0); }; return (int(Cookie.data[_arg1])); } private static function SaveCookie(_arg1:String, _arg2:int):void{ var _local3:SharedObject = SharedObject.getLocal("swfstats"); _local3.data[_arg1] = _arg2.toString(); _local3.flush(); } private static function GetUrl(_arg1:String):String{ var url:String; var defaulturl = _arg1; if (ExternalInterface.available){ try { url = String(ExternalInterface.call("window.location.href.toString")); } catch(s:Error) { url = defaulturl; }; } else { if ((((defaulturl.indexOf("http://") == 0)) || ((defaulturl.indexOf("https://") == 0)))){ url = defaulturl; }; }; if ((((((url == null)) || ((url == "")))) || ((url == "null")))){ if ((((Security.sandboxType == "localWithNetwork")) || ((Security.sandboxType == "localTrusted")))){ url = "http://local-testing/"; } else { url = null; }; }; return (escape(url)); } } }//package Playtomic
Section 113
//LogRequest (Playtomic.LogRequest) package Playtomic { import flash.events.*; import flash.net.*; public final class LogRequest { private var Sender:URLLoader; private var Target:URLRequest; private var Data:String;// = "" private var BaseUrl:String; public var Ready:Boolean;// = false private static var Failed:int = 0; private static var Pool:Array = new Array(); public function LogRequest(){ this.Sender = new URLLoader(); this.Sender.addEventListener(Event.COMPLETE, this.Complete, false, 1, false); this.Sender.addEventListener(IOErrorEvent.IO_ERROR, this.IOErrorHandler, false, 0, true); this.Sender.addEventListener(HTTPStatusEvent.HTTP_STATUS, this.StatusChange, false, 0, true); this.Sender.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.SecurityErrorHandler, false, 0, true); this.Target = new URLRequest(); this.BaseUrl = ((("http://g" + Log.GUID) + ".api.playtomic.com/tracker/q.aspx?swfid=") + Log.SWFID); } public function MassQueue(_arg1:Array):void{ var _local3:LogRequest; if (Failed > 3){ return; }; var _local2:int = (_arg1.length - 1); while (_local2 > -1) { this.Data = (this.Data + (((this.Data == "")) ? "" : "~" + _arg1[_local2])); _arg1.splice(_local2, 1); if (this.Data.length > 300){ _local3 = Create(); _local3.MassQueue(_arg1); this.Ready = true; this.Send(); return; }; _local2--; }; Log.Request = this; } public function Queue(_arg1:String):void{ if (Failed > 3){ return; }; this.Data = (this.Data + (((this.Data == "")) ? "" : "~" + _arg1)); if (this.Data.length > 300){ this.Ready = true; }; } public function Send():void{ this.Target.url = (((((((this.BaseUrl + "&q=") + this.Data) + "&url=") + Log.SourceUrl) + "&") + Math.random()) + "z"); this.Sender.load(this.Target); } private function Complete(_arg1:Event=null):void{ if ((((this.Data.indexOf("v/") == 0)) || ((this.Data.indexOf("~v/") > -1)))){ Log.IncreaseViews(); }; if ((((this.Data.indexOf("p/") == 0)) || ((this.Data.indexOf("~p/") > -1)))){ Log.IncreasePlays(); }; Pool.push(this); } private function IOErrorHandler(_arg1:IOErrorEvent):void{ Failed++; } private function SecurityErrorHandler(_arg1:SecurityErrorEvent):void{ } private function StatusChange(_arg1:HTTPStatusEvent):void{ } public static function Create():LogRequest{ var _local1:LogRequest = ((Pool.length > 0)) ? (Pool.pop() as LogRequest) : new (LogRequest); _local1.Data = ""; _local1.Ready = false; return (_local1); } } }//package Playtomic
Section 114
//PlayerScore (Playtomic.PlayerScore) package Playtomic { public final class PlayerScore { public var Name:String; public var FBUserId:String; public var Points:Number; public var Website:String; public var SDate:Date; public var RDate:String; public var CustomData:Object; public function PlayerScore(){ CustomData = {}; super(); } } }//package Playtomic
Section 115
//HumanRagdoll (Ragdoll.HumanRagdoll) package Ragdoll { import Box2D.Common.Math.*; import Utils.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.display.*; import flash.utils.*; import States.PlayState.*; 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 116
//allAchiev_288 (Shotfirer_fla.allAchiev_288) package Shotfirer_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 Shotfirer_fla
Section 117
//BombButton_434 (Shotfirer_fla.BombButton_434) package Shotfirer_fla { import flash.display.*; public dynamic class BombButton_434 extends MovieClip { public function BombButton_434(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package Shotfirer_fla
Section 118
//EyeLeft_107 (Shotfirer_fla.EyeLeft_107) package Shotfirer_fla { import flash.display.*; public dynamic class EyeLeft_107 extends MovieClip { public function EyeLeft_107(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package Shotfirer_fla
Section 119
//EyeRight_106 (Shotfirer_fla.EyeRight_106) package Shotfirer_fla { import flash.display.*; public dynamic class EyeRight_106 extends MovieClip { public function EyeRight_106(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package Shotfirer_fla
Section 120
//figures_119 (Shotfirer_fla.figures_119) package Shotfirer_fla { import flash.display.*; public dynamic class figures_119 extends MovieClip { public function figures_119(){ addFrameScript(27, frame28); } function frame28(){ stop(); } } }//package Shotfirer_fla
Section 121
//fitil_389 (Shotfirer_fla.fitil_389) package Shotfirer_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 Shotfirer_fla
Section 122
//GoAchivOver_357 (Shotfirer_fla.GoAchivOver_357) package Shotfirer_fla { import flash.display.*; public dynamic class GoAchivOver_357 extends MovieClip { public function GoAchivOver_357(){ addFrameScript(5, frame6); } function frame6(){ stop(); } } }//package Shotfirer_fla
Section 123
//HrenMain_404 (Shotfirer_fla.HrenMain_404) package Shotfirer_fla { import flash.display.*; public dynamic class HrenMain_404 extends MovieClip { public function HrenMain_404(){ addFrameScript(24, frame25); } function frame25(){ stop(); } } }//package Shotfirer_fla
Section 124
//MainMenuButtonAnim_413 (Shotfirer_fla.MainMenuButtonAnim_413) package Shotfirer_fla { import flash.display.*; public dynamic class MainMenuButtonAnim_413 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_413(){ addFrameScript(19, frame20); } function frame20(){ stop(); } } }//package Shotfirer_fla
Section 125
//MMPanelAnim_409 (Shotfirer_fla.MMPanelAnim_409) package Shotfirer_fla { import flash.display.*; public dynamic class MMPanelAnim_409 extends MovieClip { public function MMPanelAnim_409(){ addFrameScript(19, frame20); } function frame20(){ stop(); } } }//package Shotfirer_fla
Section 126
//PreloaderPlayButton_41 (Shotfirer_fla.PreloaderPlayButton_41) package Shotfirer_fla { import flash.display.*; public dynamic class PreloaderPlayButton_41 extends MovieClip { public function PreloaderPlayButton_41(){ addFrameScript(8, frame9); } function frame9(){ stop(); } } }//package Shotfirer_fla
Section 127
//SunEmotion_73 (Shotfirer_fla.SunEmotion_73) package Shotfirer_fla { import flash.display.*; public dynamic class SunEmotion_73 extends MovieClip { public function SunEmotion_73(){ addFrameScript(10, frame11); } function frame11(){ stop(); } } }//package Shotfirer_fla
Section 128
//Symbol35_444 (Shotfirer_fla.Symbol35_444) package Shotfirer_fla { import flash.display.*; public dynamic class Symbol35_444 extends MovieClip { public function Symbol35_444(){ addFrameScript(249, frame250); } function frame250(){ stop(); } } }//package Shotfirer_fla
Section 129
//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 130
//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 131
//BloodPoint (States.PlayState.BloodPoint) package States.PlayState { import Utils.*; import Box2D.Dynamics.*; 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 132
//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 133
//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 134
//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 135
//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 136
//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 137
//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 138
//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 139
//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 140
//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 141
//BrickParticle (States.PlayState.BrickParticle) package States.PlayState { import Utils.*; import Box2D.Dynamics.*; 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 142
//BrickWall (States.PlayState.BrickWall) package States.PlayState { public class BrickWall extends DestroyableWall { } }//package States.PlayState
Section 143
//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 144
//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 145
//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 146
//DangerBarrel (States.PlayState.DangerBarrel) package States.PlayState { import Utils.*; import Box2D.Dynamics.*; 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 147
//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 148
//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 149
//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 150
//Exploisonable (States.PlayState.Exploisonable) package States.PlayState { import Utils.*; import Box2D.Dynamics.*; 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 151
//FallingBomb (States.PlayState.FallingBomb) package States.PlayState { import Utils.*; import Box2D.Dynamics.*; 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 152
//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 153
//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 154
//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 155
//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 156
//MapObject (States.PlayState.MapObject) package States.PlayState { import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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 157
//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 158
//PlayState (States.PlayState.PlayState) package States.PlayState { import flash.events.*; import Box2D.Common.Math.*; import Utils.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.display.*; import Main.*; import flash.geom.*; import caurina.transitions.*; import Playtomic.*; import flash.utils.*; import Ragdoll.*; 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_view.m_logo.removeEventListener(MouseEvent.CLICK, onMoreGamesClick); 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_view.m_logo.addEventListener(MouseEvent.CLICK, onMoreGamesClick); 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(); Log.LevelCounterMetric("start_level", (m_curLevel + 1)); } 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); }; if (m_view.m_logo.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 159
//Shaker (States.PlayState.Shaker) package States.PlayState { import Utils.*; import Box2D.Dynamics.*; 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 160
//SkyLayerObject (States.PlayState.SkyLayerObject) package States.PlayState { import flash.display.*; public class SkyLayerObject extends MovieClip { } }//package States.PlayState
Section 161
//StaticShape (States.PlayState.StaticShape) package States.PlayState { import flash.display.*; public class StaticShape extends MovieClip { } }//package States.PlayState
Section 162
//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 163
//UndestroyableWall (States.PlayState.UndestroyableWall) package States.PlayState { public class UndestroyableWall extends Wall { } }//package States.PlayState
Section 164
//Wall (States.PlayState.Wall) package States.PlayState { public class Wall extends MapObject { } }//package States.PlayState
Section 165
//AchievementsState (States.AchievementsState) package States { import flash.events.*; import flash.display.*; import Main.*; import flash.utils.*; import States.PlayState.*; 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 166
//CreditsState (States.CreditsState) package States { import flash.events.*; import flash.display.*; import Main.*; import flash.net.*; import States.PlayState.*; 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; public var m_logo: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; 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 167
//CurrentPreloaderState (States.CurrentPreloaderState) package States { import flash.events.*; import flash.display.*; import Main.*; import Playtomic.*; import flash.net.*; import States.PlayState.*; import flash.text.*; import flash.system.*; 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; public var m_baloon1:MovieClip; public var m_baloon2:MovieClip; private var m_banner1:SimpleButton; private var m_banner2:SimpleButton; private var m_mochibotCalled:Boolean;// = false public function CurrentPreloaderState(){ m_mapObjects = new Array(); m_banner1 = new Banner1(); m_banner2 = new Banner2(); super(); } private function showAds():void{ } 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()))); m_baloon1.y = (m_baloon1.y - (32 * _arg1)); m_baloon2.y = (m_baloon2.y - (27 * _arg1)); if (m_baloon1.y < -(m_baloon1.height)){ m_baloon1.y = (Constant.WINDOW_HEIGHT + m_baloon1.height); }; if (m_baloon2.y < -(m_baloon2.height)){ m_baloon2.y = (Constant.WINDOW_HEIGHT + m_baloon2.height); }; if ((((m_liveTime > 1)) && (!(m_mochibotCalled)))){ MochiBot.track(this, "f694a865"); m_mochibotCalled = true; }; } override public function onInit():void{ var _local2:DisplayObject; GameData.hideAds(); super.onInit(); setMinimalLoadTime(5.1); m_playButton.visible = false; if (((((((((((((((!((m_loaderInfo.url.indexOf("addictinggames.com") == -1))) || (!((m_loaderInfo.url.indexOf("andkon.com") == -1))))) || (!((m_loaderInfo.url.indexOf("armorgames.com") == -1))))) || (!((m_loaderInfo.url.indexOf("agame.com") == -1))))) || (!((m_loaderInfo.url.indexOf("kongregate.com") == -1))))) || (!((m_loaderInfo.url.indexOf("maxgames.com") == -1))))) || (!((m_loaderInfo.url.indexOf("mofunzone.com") == -1))))) || (!((m_loaderInfo.url.indexOf("freeonlinegames.com") == -1))))){ GameData.hideAds(); }; if (m_loaderInfo.url.indexOf("kongregate.com") != -1){ GameData.m_isKongregate = true; }; m_playButton.addEventListener(MouseEvent.CLICK, onPlayClick); if (GameData.haveAds()){ showAds(); }; m_banner1 = new Banner1(); m_baloon1.m_placeholder.addChild(m_banner1); m_banner1.addEventListener(MouseEvent.CLICK, onBanner1Click); m_banner2 = new Banner2(); m_baloon2.m_placeholder.addChild(m_banner2); m_banner2.addEventListener(MouseEvent.CLICK, onBanner2Click); m_logo.addEventListener(MouseEvent.CLICK, onLogoClick); if (GameData.hasKongregateAPI()){ initKongregateAPI(); }; var _local1:int; while (_local1 < numChildren) { _local2 = getChildAt(_local1); if ((_local2 is PreloaderClouds)){ m_mapObjects.push((_local2 as PreloaderClouds)); }; _local1++; }; initPlaytomicAPI(); } private function onBanner1Click(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.GIBBETS_I_URL); } private function onBanner2Click(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.GIBBETS_II_URL); } private function onLogoClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.MAIN_PAGE_URL); } override public function onCleanup():void{ m_logo.removeEventListener(MouseEvent.CLICK, onLogoClick); m_playButton.removeEventListener(MouseEvent.CLICK, onPlayClick); m_banner1.removeEventListener(MouseEvent.CLICK, onBanner1Click); m_banner2.removeEventListener(MouseEvent.CLICK, onBanner2Click); super.onCleanup(); } override public function onFinishLoading():void{ m_playButton.visible = true; m_playButton.gotoAndPlay(1); m_loadingBar.visible = false; m_loadingLabel.visible = false; } private function onPlayClick(_arg1:MouseEvent):void{ CurrentStateManager.getInstance().gotoAndStop(2); GameData.init(); GameData.load(); SoundManager.play(SoundConst.CLICK); CurrentStateManager.getInstance().changeState(new SponsorIntroState()); } 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()); }; } private function initPlaytomicAPI():void{ Log.View(1846, "fdd4c5316602461c", m_loaderInfo.loaderURL); } } }//package States
Section 168
//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_logo": 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 169
//HighScoreState (States.HighScoreState) package States { import flash.events.*; import flash.display.*; import Main.*; import Playtomic.*; 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 _local7:DisplayObject; var _local8:PlayerScore; super.onInit(); var _local1:int; while (_local1 < numChildren) { _local7 = getChildAt(_local1); if ((_local7 is Cloud)){ m_mapObjects.push((_local7 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; var _local6:int; while (_local6 < 20) { if (_local6 < _local4){ _local8 = m_scores[_local6]; if (GameData.m_playerScore){ if ((((_local8.Name == GameData.m_playerScore.Name)) && ((_local8.Points == GameData.m_playerScore.Points)))){ _local2[_local6].textColor = 0xFF0000; _local3[_local6].textColor = 0xFF0000; _local5 = true; }; }; _local2[_local6].text = (((_local6 + 1) + ". ") + _local8.Name); _local3[_local6].text = _local8.Points.toString(); } else { _local2[_local6].visible = false; _local3[_local6].visible = false; }; _local6++; }; if (!GameData.m_playerScore){ m_youAreNotInTop.visible = false; return; }; 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 170
//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); addChild(PlayState.getInstance().getViewClip().m_logo); } 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 171
//MainMenuLetter (States.MainMenuLetter) package States { import flash.display.*; public class MainMenuLetter extends MovieClip { } }//package States
Section 172
//MainMenuState (States.MainMenuState) package States { import flash.events.*; import Box2D.Common.Math.*; import Utils.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import flash.display.*; import Main.*; import caurina.transitions.*; import Playtomic.*; import flash.utils.*; import States.PlayState.*; 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_banner1:SimpleButton; public var m_banner2:SimpleButton; public var m_logo:SimpleButton; public var m_hostThisGame: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": Log.Play(); 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); Leaderboards.List("highscores", onShowHighScoreCompleted); break; case "m_buttonOptions": CurrentStateManager.getInstance().pushState(new OptionsState()); SoundManager.play(SoundConst.CLICK); break; case "m_banner1": LinksManager.goURL(LinksManager.GIBBETS_I_URL); SoundManager.play(SoundConst.CLICK); break; case "m_banner2": LinksManager.goURL(LinksManager.GIBBETS_II_URL); SoundManager.play(SoundConst.CLICK); break; case "m_buttonCredits": SoundManager.play(SoundConst.CLICK); CurrentStateManager.getInstance().coolChangeState(new CreditsState()); break; case "m_logo": SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.MAIN_PAGE_URL); break; case "m_hostThisGame": SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.GAMES_FOR_YOUR_SITE_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); var _local3:Number = m_banner1.y; m_banner1.y = 560; Tweener.addTween(m_banner1, {y:_local3, delay:1.7, time:1, transition:"easeInOutBack"}); var _local4:Number = m_banner2.x; m_banner2.x = 750; Tweener.addTween(m_banner2, {x:_local4, delay:2.2, time:1, transition:"easeInOutBack"}); var _local5:Number = m_hostThisGame.x; m_hostThisGame.x = -((m_hostThisGame.width + 12)); Tweener.addTween(m_hostThisGame, {x:_local5, delay:2.2, time:0.5, transition:"easeInOutBack"}); } 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 173
//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 174
//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 175
//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 176
//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 177
//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); 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{ 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++; }; 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; }; }; } 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 178
//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 179
//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 180
//SponsorIntroState (States.SponsorIntroState) package States { import flash.events.*; import Main.*; public class SponsorIntroState extends GameState { override public function onInit():void{ super.onInit(); width = Constant.WINDOW_WIDTH; height = Constant.WINDOW_HEIGHT; 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 181
//SubmitScoreState (States.SubmitScoreState) package States { import Main.*; import Playtomic.*; import flash.text.*; public class SubmitScoreState extends PopupState { override public function onInit():void{ m_panel = new SubmitScoreStateView(); m_panel.m_succes.visible = false; m_panel.m_failed.visible = false; var _local1:TextField = m_panel.m_name; _local1.alwaysShowSelection = true; _local1.maxChars = 15; _local1.setSelection(0, _local1.text.length); stage.focus = _local1; super.onInit(); } override protected function processClick(_arg1:String):void{ switch (_arg1){ case "m_buttonMenu": SoundManager.play(SoundConst.CLICK); hide(); break; case "m_buttonHighScore": SoundManager.play(SoundConst.CLICK); Leaderboards.List("highscores", onShowHighScoreCompleted); break; case "m_buttonSubmitScore": SoundManager.play(SoundConst.CLICK); submitScore(); break; }; } private function submitScore():void{ var _local1:PlayerScore = new PlayerScore(); _local1.Name = m_panel.m_name.text; _local1.Points = GameData.totalScore; Leaderboards.Save(_local1, "highscores", onSubmitComplete); } private function onSubmitComplete(_arg1:PlayerScore, _arg2:Object):void{ if (_arg2.Success){ GameData.m_playerScore = _arg1; m_panel.m_succes.visible = true; m_panel.m_failed.visible = false; } else { m_panel.m_failed.visible = true; m_panel.m_succes.visible = false; trace(_arg2.ErrorCode); }; } private function onShowHighScoreCompleted(_arg1:Array, _arg2:int, _arg3:Object):void{ if (_arg3.Success){ CurrentStateManager.getInstance().coolChangeState(new HighScoreState(_arg1)); }; } } }//package States
Section 182
//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 183
//UrlLockedState (States.UrlLockedState) package States { import Main.*; public class UrlLockedState extends GameState { } }//package States
Section 184
//WinState (States.WinState) package States { import flash.events.*; import flash.display.*; import Main.*; import caurina.transitions.*; import flash.utils.*; import States.PlayState.*; 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); addChild(PlayState.getInstance().getViewClip().m_logo); } 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 185
//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 186
//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 187
//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 188
//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 189
//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 190
//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 191
//A (A) package { import States.*; public dynamic class A extends MainMenuLetter { } }//package
Section 192
//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 193
//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 ("Bronse bomb"); case SILVER_BOMB_WITH_WINGS: return ("Silver bomb"); case GOLD_BOMB_WITH_WINGS: return ("Golden bomb"); case BRONSE_CUP: return ("Bronse cup"); case SILVER_CUP: return ("Silver cup"); case GOLD_CUP: return ("Golden cup"); case TNT: return ("TNT"); }; return (_arg1); } } }//package
Section 194
//Awesome (Awesome) package { import flash.display.*; public dynamic class Awesome extends MovieClip { } }//package
Section 195
//Banner1 (Banner1) package { import flash.display.*; public dynamic class Banner1 extends SimpleButton { } }//package
Section 196
//Banner2 (Banner2) package { import flash.display.*; public dynamic class Banner2 extends SimpleButton { } }//package
Section 197
//BigBoom (BigBoom) package { import Utils.*; public dynamic class BigBoom extends Smoke { } }//package
Section 198
//Bird (Bird) package { import States.PlayState.*; public dynamic class Bird extends Bird { } }//package
Section 199
//black_square (black_square) package { import flash.display.*; public dynamic class black_square extends MovieClip { } }//package
Section 200
//BloodBlob0 (BloodBlob0) package { import flash.display.*; public dynamic class BloodBlob0 extends MovieClip { } }//package
Section 201
//BloodPoint0 (BloodPoint0) package { import flash.display.*; public dynamic class BloodPoint0 extends MovieClip { } }//package
Section 202
//body_die_1 (body_die_1) package { import flash.media.*; public dynamic class body_die_1 extends Sound { } }//package
Section 203
//body_die_2 (body_die_2) package { import flash.media.*; public dynamic class body_die_2 extends Sound { } }//package
Section 204
//bomb_fall (bomb_fall) package { import flash.media.*; public dynamic class bomb_fall extends Sound { } }//package
Section 205
//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 206
//BombTrajectory (BombTrajectory) package { import flash.display.*; public dynamic class BombTrajectory extends MovieClip { } }//package
Section 207
//Bomj (Bomj) package { import flash.display.*; public dynamic class Bomj extends MovieClip { } }//package
Section 208
//BomjMarker (BomjMarker) package { import flash.display.*; public dynamic class BomjMarker extends MovieClip { } }//package
Section 209
//BomjSurprise (BomjSurprise) package { import flash.display.*; public dynamic class BomjSurprise extends MovieClip { } }//package
Section 210
//boom_1 (boom_1) package { import flash.media.*; public dynamic class boom_1 extends Sound { } }//package
Section 211
//boom_2 (boom_2) package { import flash.media.*; public dynamic class boom_2 extends Sound { } }//package
Section 212
//boom_3 (boom_3) package { import flash.media.*; public dynamic class boom_3 extends Sound { } }//package
Section 213
//boom_4 (boom_4) package { import flash.media.*; public dynamic class boom_4 extends Sound { } }//package
Section 214
//Boom1 (Boom1) package { import Utils.*; public dynamic class Boom1 extends Smoke { } }//package
Section 215
//Boom2 (Boom2) package { import Utils.*; public dynamic class Boom2 extends Smoke { } }//package
Section 216
//Boom3 (Boom3) package { import Utils.*; public dynamic class Boom3 extends Smoke { } }//package
Section 217
//BrickBlock1 (BrickBlock1) package { import States.PlayState.*; public dynamic class BrickBlock1 extends BrickWall { } }//package
Section 218
//BrickBlock10 (BrickBlock10) package { import States.PlayState.*; public dynamic class BrickBlock10 extends BrickWall { } }//package
Section 219
//BrickBlock2 (BrickBlock2) package { import States.PlayState.*; public dynamic class BrickBlock2 extends BrickWall { } }//package
Section 220
//BrickBlock3 (BrickBlock3) package { import States.PlayState.*; public dynamic class BrickBlock3 extends BrickWall { } }//package
Section 221
//BrickBlock4 (BrickBlock4) package { import States.PlayState.*; public dynamic class BrickBlock4 extends BrickWall { } }//package
Section 222
//BrickBlock5 (BrickBlock5) package { import States.PlayState.*; public dynamic class BrickBlock5 extends BrickWall { } }//package
Section 223
//BrickBlock6 (BrickBlock6) package { import States.PlayState.*; public dynamic class BrickBlock6 extends BrickWall { } }//package
Section 224
//BrickBlock7 (BrickBlock7) package { import States.PlayState.*; public dynamic class BrickBlock7 extends BrickWall { } }//package
Section 225
//BrickBlock8 (BrickBlock8) package { import States.PlayState.*; public dynamic class BrickBlock8 extends BrickWall { } }//package
Section 226
//BrickBlock9 (BrickBlock9) package { import States.PlayState.*; public dynamic class BrickBlock9 extends BrickWall { } }//package
Section 227
//bricks_fall_1 (bricks_fall_1) package { import flash.media.*; public dynamic class bricks_fall_1 extends Sound { } }//package
Section 228
//bricks_fall_2 (bricks_fall_2) package { import flash.media.*; public dynamic class bricks_fall_2 extends Sound { } }//package
Section 229
//bricks_fall_3 (bricks_fall_3) package { import flash.media.*; public dynamic class bricks_fall_3 extends Sound { } }//package
Section 230
//BronseBombWithWings (BronseBombWithWings) package { public dynamic class BronseBombWithWings extends Achievement { } }//package
Section 231
//BronsebombWithWingsHint (BronsebombWithWingsHint) package { public dynamic class BronsebombWithWingsHint extends Hint { } }//package
Section 232
//BronseCup (BronseCup) package { public dynamic class BronseCup extends Achievement { } }//package
Section 233
//BronseCupHint (BronseCupHint) package { public dynamic class BronseCupHint extends Hint { } }//package
Section 234
//C (C) package { import States.*; public dynamic class C extends MainMenuLetter { } }//package
Section 235
//Car2 (Car2) package { import States.PlayState.*; public dynamic class Car2 extends Car { } }//package
Section 236
//Car3 (Car3) package { import States.PlayState.*; public dynamic class Car3 extends Car { } }//package
Section 237
//Car4 (Car4) package { import States.PlayState.*; public dynamic class Car4 extends Car { } }//package
Section 238
//Car5 (Car5) package { import States.PlayState.*; public dynamic class Car5 extends Car { } }//package
Section 239
//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 240
//CheckBoxBack (CheckBoxBack) package { import flash.display.*; public dynamic class CheckBoxBack extends MovieClip { } }//package
Section 241
//click (click) package { import flash.media.*; public dynamic class click extends Sound { } }//package
Section 242
//ClickToContinue (ClickToContinue) package { import flash.display.*; public dynamic class ClickToContinue extends MovieClip { } }//package
Section 243
//Cloud1 (Cloud1) package { import States.PlayState.*; public dynamic class Cloud1 extends Cloud { } }//package
Section 244
//Cloud2 (Cloud2) package { import States.PlayState.*; public dynamic class Cloud2 extends Cloud { } }//package
Section 245
//Cloud3 (Cloud3) package { import States.PlayState.*; public dynamic class Cloud3 extends Cloud { } }//package
Section 246
//Cloud4 (Cloud4) package { import States.PlayState.*; public dynamic class Cloud4 extends Cloud { } }//package
Section 247
//Cloud5 (Cloud5) package { import States.PlayState.*; public dynamic class Cloud5 extends Cloud { } }//package
Section 248
//Cloud6 (Cloud6) package { import States.PlayState.*; public dynamic class Cloud6 extends Cloud { } }//package
Section 249
//ConcreteBlock1 (ConcreteBlock1) package { import States.PlayState.*; public dynamic class ConcreteBlock1 extends DevidableWall { } }//package
Section 250
//ConcreteBlock2 (ConcreteBlock2) package { import States.PlayState.*; public dynamic class ConcreteBlock2 extends DevidableWall { } }//package
Section 251
//ConcreteBlock3 (ConcreteBlock3) package { import States.PlayState.*; public dynamic class ConcreteBlock3 extends DevidableWall { } }//package
Section 252
//ConcreteBlock4 (ConcreteBlock4) package { import States.PlayState.*; public dynamic class ConcreteBlock4 extends DevidableWall { } }//package
Section 253
//ConcreteBlockBig (ConcreteBlockBig) package { import States.PlayState.*; public dynamic class ConcreteBlockBig extends DevidableWall { } }//package
Section 254
//ConcreteBlockBigHalf (ConcreteBlockBigHalf) package { import States.PlayState.*; public dynamic class ConcreteBlockBigHalf extends DevidableWall { } }//package
Section 255
//ConcreteBlockBigHalfLong (ConcreteBlockBigHalfLong) package { import States.PlayState.*; public dynamic class ConcreteBlockBigHalfLong extends DevidableWall { } }//package
Section 256
//ConcreteBlockBigLong (ConcreteBlockBigLong) package { import States.PlayState.*; public dynamic class ConcreteBlockBigLong extends DevidableWall { } }//package
Section 257
//ConcreteBlockBigTriangle (ConcreteBlockBigTriangle) package { import States.PlayState.*; public dynamic class ConcreteBlockBigTriangle extends DevidableWall { } }//package
Section 258
//ConcreteTriangle (ConcreteTriangle) package { import States.PlayState.*; public dynamic class ConcreteTriangle extends DevidableWall { } }//package
Section 259
//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 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 260
//Crown (Crown) package { public dynamic class Crown extends Achievement { } }//package
Section 261
//CrownHint (CrownHint) package { public dynamic class CrownHint extends Hint { } }//package
Section 262
//DirectionMarker (DirectionMarker) package { public dynamic class DirectionMarker extends InvisibleClip { } }//package
Section 263
//Dynamite (Dynamite) package { public dynamic class Dynamite extends Achievement { } }//package
Section 264
//DynamiteHint (DynamiteHint) package { public dynamic class DynamiteHint extends Hint { } }//package
Section 265
//E (E) package { import States.*; public dynamic class E extends MainMenuLetter { } }//package
Section 266
//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 267
//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 268
//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 269
//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 270
//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 271
//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 272
//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 273
//Fifty (Fifty) package { public dynamic class Fifty extends Achievement { } }//package
Section 274
//FiftyHint (FiftyHint) package { public dynamic class FiftyHint extends Hint { } }//package
Section 275
//FirstStepArrow (FirstStepArrow) package { import flash.display.*; public dynamic class FirstStepArrow extends MovieClip { } }//package
Section 276
//Flower (Flower) package { import States.PlayState.*; public dynamic class Flower extends DestroyableBackground { } }//package
Section 277
//FountainBoom (FountainBoom) package { import Utils.*; public dynamic class FountainBoom extends Smoke { } }//package
Section 278
//GameCompleteState (GameCompleteState) package { import States.*; public dynamic class GameCompleteState extends GameCompleteState { } }//package
Section 279
//GameData (GameData) package { import Main.*; import Playtomic.*; import flash.net.*; import States.PlayState.*; import States.*; 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_playerScore:PlayerScore; 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); } } }//package
Section 280
//GlassParticleClip (GlassParticleClip) package { import flash.display.*; public dynamic class GlassParticleClip extends MovieClip { } }//package
Section 281
//GoldBombWithWings (GoldBombWithWings) package { public dynamic class GoldBombWithWings extends Achievement { } }//package
Section 282
//GoldBombWithWingsHint (GoldBombWithWingsHint) package { public dynamic class GoldBombWithWingsHint extends Hint { } }//package
Section 283
//GoldCup (GoldCup) package { public dynamic class GoldCup extends Achievement { } }//package
Section 284
//GoldCupHint (GoldCupHint) package { public dynamic class GoldCupHint extends Hint { } }//package
Section 285
//GoldGrenade (GoldGrenade) package { public dynamic class GoldGrenade extends Achievement { } }//package
Section 286
//GoldGrenadeHint (GoldGrenadeHint) package { public dynamic class GoldGrenadeHint extends Hint { } }//package
Section 287
//Ground (Ground) package { import States.PlayState.*; public dynamic class Ground extends StaticShape { } }//package
Section 288
//happy_song_1 (happy_song_1) package { import flash.media.*; public dynamic class happy_song_1 extends Sound { } }//package
Section 289
//happy_song_2 (happy_song_2) package { import flash.media.*; public dynamic class happy_song_2 extends Sound { } }//package
Section 290
//HideTips (HideTips) package { import flash.display.*; public dynamic class HideTips extends MovieClip { } }//package
Section 291
//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 292
//Hundred (Hundred) package { public dynamic class Hundred extends Achievement { } }//package
Section 293
//HundredHint (HundredHint) package { public dynamic class HundredHint extends Hint { } }//package
Section 294
//Hydrant (Hydrant) package { import States.PlayState.*; public dynamic class Hydrant extends DestroyableBackground { } }//package
Section 295
//I (I) package { import States.*; public dynamic class I extends MainMenuLetter { } }//package
Section 296
//InvisibleClip (InvisibleClip) package { import flash.display.*; public class InvisibleClip extends MovieClip { public function InvisibleClip(){ visible = false; } } }//package
Section 297
//L (L) package { import States.*; public dynamic class L extends MainMenuLetter { } }//package
Section 298
//Lamp (Lamp) package { import States.PlayState.*; public dynamic class Lamp extends DestroyableBackground { } }//package
Section 299
//LeftHand_0 (LeftHand_0) package { import flash.display.*; public dynamic class LeftHand_0 extends MovieClip { } }//package
Section 300
//LeftHand_1 (LeftHand_1) package { import flash.display.*; public dynamic class LeftHand_1 extends MovieClip { } }//package
Section 301
//LeftHand_2 (LeftHand_2) package { import flash.display.*; public dynamic class LeftHand_2 extends MovieClip { } }//package
Section 302
//LeftHand_3 (LeftHand_3) package { import flash.display.*; public dynamic class LeftHand_3 extends MovieClip { } }//package
Section 303
//LeftHand_4 (LeftHand_4) package { import flash.display.*; public dynamic class LeftHand_4 extends MovieClip { } }//package
Section 304
//LeftHand_5 (LeftHand_5) package { import flash.display.*; public dynamic class LeftHand_5 extends MovieClip { } }//package
Section 305
//LeftHand_6 (LeftHand_6) package { import flash.display.*; public dynamic class LeftHand_6 extends MovieClip { } }//package
Section 306
//Leg_0 (Leg_0) package { import flash.display.*; public dynamic class Leg_0 extends MovieClip { } }//package
Section 307
//Leg_1 (Leg_1) package { import flash.display.*; public dynamic class Leg_1 extends MovieClip { } }//package
Section 308
//Leg_2 (Leg_2) package { import flash.display.*; public dynamic class Leg_2 extends MovieClip { } }//package
Section 309
//Leg_3 (Leg_3) package { import flash.display.*; public dynamic class Leg_3 extends MovieClip { } }//package
Section 310
//Leg_4 (Leg_4) package { import flash.display.*; public dynamic class Leg_4 extends MovieClip { } }//package
Section 311
//Leg_5 (Leg_5) package { import flash.display.*; public dynamic class Leg_5 extends MovieClip { } }//package
Section 312
//Leg_6 (Leg_6) package { import flash.display.*; public dynamic class Leg_6 extends MovieClip { } }//package
Section 313
//Level00 (Level00) package { import flash.display.*; public dynamic class Level00 extends MovieClip { public var m_secondStep:MovieClip; public var m_firstStep:FirstStepArrow; } }//package
Section 314
//Level01 (Level01) package { import flash.display.*; public dynamic class Level01 extends MovieClip { } }//package
Section 315
//Level02 (Level02) package { import flash.display.*; public dynamic class Level02 extends MovieClip { } }//package
Section 316
//Level03 (Level03) package { import flash.display.*; public dynamic class Level03 extends MovieClip { } }//package
Section 317
//Level04 (Level04) package { import flash.display.*; public dynamic class Level04 extends MovieClip { } }//package
Section 318
//Level05 (Level05) package { import flash.display.*; public dynamic class Level05 extends MovieClip { } }//package
Section 319
//Level06 (Level06) package { import flash.display.*; public dynamic class Level06 extends MovieClip { } }//package
Section 320
//Level07 (Level07) package { import flash.display.*; public dynamic class Level07 extends MovieClip { } }//package
Section 321
//Level08 (Level08) package { import flash.display.*; public dynamic class Level08 extends MovieClip { } }//package
Section 322
//Level09 (Level09) package { import flash.display.*; public dynamic class Level09 extends MovieClip { } }//package
Section 323
//Level10 (Level10) package { import flash.display.*; public dynamic class Level10 extends MovieClip { } }//package
Section 324
//Level11 (Level11) package { import flash.display.*; public dynamic class Level11 extends MovieClip { } }//package
Section 325
//Level12 (Level12) package { import flash.display.*; public dynamic class Level12 extends MovieClip { } }//package
Section 326
//Level13 (Level13) package { import flash.display.*; public dynamic class Level13 extends MovieClip { } }//package
Section 327
//Level14 (Level14) package { import flash.display.*; public dynamic class Level14 extends MovieClip { } }//package
Section 328
//Level15 (Level15) package { import flash.display.*; public dynamic class Level15 extends MovieClip { } }//package
Section 329
//Level16 (Level16) package { import flash.display.*; public dynamic class Level16 extends MovieClip { } }//package
Section 330
//Level17 (Level17) package { import flash.display.*; public dynamic class Level17 extends MovieClip { } }//package
Section 331
//Level18 (Level18) package { import flash.display.*; public dynamic class Level18 extends MovieClip { } }//package
Section 332
//Level19 (Level19) package { import flash.display.*; public dynamic class Level19 extends MovieClip { } }//package
Section 333
//Level20 (Level20) package { import flash.display.*; public dynamic class Level20 extends MovieClip { } }//package
Section 334
//Level21 (Level21) package { import flash.display.*; public dynamic class Level21 extends MovieClip { } }//package
Section 335
//Level22 (Level22) package { import flash.display.*; public dynamic class Level22 extends MovieClip { } }//package
Section 336
//Level23 (Level23) package { import flash.display.*; public dynamic class Level23 extends MovieClip { } }//package
Section 337
//Level24 (Level24) package { import flash.display.*; public dynamic class Level24 extends MovieClip { } }//package
Section 338
//Level25 (Level25) package { import flash.display.*; public dynamic class Level25 extends MovieClip { } }//package
Section 339
//Level26 (Level26) package { import flash.display.*; public dynamic class Level26 extends MovieClip { } }//package
Section 340
//Level27 (Level27) package { import flash.display.*; public dynamic class Level27 extends MovieClip { } }//package
Section 341
//Level28 (Level28) package { import flash.display.*; public dynamic class Level28 extends MovieClip { } }//package
Section 342
//Level29 (Level29) package { import flash.display.*; public dynamic class Level29 extends MovieClip { } }//package
Section 343
//Level30 (Level30) package { import flash.display.*; public dynamic class Level30 extends MovieClip { } }//package
Section 344
//Level31 (Level31) package { import flash.display.*; public dynamic class Level31 extends MovieClip { } }//package
Section 345
//Level32 (Level32) package { import flash.display.*; public dynamic class Level32 extends MovieClip { } }//package
Section 346
//Level33 (Level33) package { import flash.display.*; public dynamic class Level33 extends MovieClip { } }//package
Section 347
//LevelButton (LevelButton) package { import States.*; public dynamic class LevelButton extends SelectLevelButton { } }//package
Section 348
//LevelPerfectButton (LevelPerfectButton) package { import flash.display.*; public dynamic class LevelPerfectButton extends SimpleButton { } }//package
Section 349
//LightCheckBox (LightCheckBox) package { public dynamic class LightCheckBox extends CheckBox { } }//package
Section 350
//LinksManager (LinksManager) package { import Playtomic.*; import flash.net.*; public class LinksManager { public static const GIBBETS_I_URL:String = "http://www.kongregate.com/games/Smrdis/gibbets/?gamereferral=collapse-it"; public static const GIBBETS_II_URL:String = "http://www.kongregate.com/games/Smrdis/gibbets-2/?gamereferral=collapse-it"; public static const MAIN_PAGE_URL:String = "http://www.kongregate.com/?gamereferral=collapse-it"; public static const WALKROUTGH_URL:String = "http://www.kongregate.com/pages/collapse-it-walkthrough"; public static const GAMES_FOR_YOUR_SITE_URL:String = "http://www.kongregate.com/games_for_your_site"; public static function goURL(_arg1:String, _arg2:String=""):void{ Link.Open(_arg1, _arg2, "Sponsor"); navigateToURL(new URLRequest(_arg1), "_blank"); } } }//package
Section 351
//LittleBoom (LittleBoom) package { import Utils.*; public dynamic class LittleBoom extends Smoke { } }//package
Section 352
//lose_sound (lose_sound) package { import flash.media.*; public dynamic class lose_sound extends Sound { } }//package
Section 353
//LoseStateView (LoseStateView) package { import flash.display.*; public dynamic class LoseStateView extends MovieClip { public var m_panel:MovieClip; } }//package
Section 354
//main_menu_song (main_menu_song) package { import flash.media.*; public dynamic class main_menu_song extends Sound { } }//package
Section 355
//MainMenuBomb (MainMenuBomb) package { import flash.display.*; public dynamic class MainMenuBomb extends MovieClip { public var m_wick:MovieClip; } }//package
Section 356
//MainMenuLettersClip (MainMenuLettersClip) package { import flash.display.*; public dynamic class MainMenuLettersClip extends MovieClip { public var m_bomb:MainMenuBomb; } }//package
Section 357
//man_cry_1 (man_cry_1) package { import flash.media.*; public dynamic class man_cry_1 extends Sound { } }//package
Section 358
//man_cry_2 (man_cry_2) package { import flash.media.*; public dynamic class man_cry_2 extends Sound { } }//package
Section 359
//man_cry_3 (man_cry_3) package { import flash.media.*; public dynamic class man_cry_3 extends Sound { } }//package
Section 360
//man_cry_4 (man_cry_4) package { import flash.media.*; public dynamic class man_cry_4 extends Sound { } }//package
Section 361
//MochiBot (MochiBot) package { import flash.display.*; import flash.net.*; import flash.system.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ if (Security.sandboxType == "localWithFile"){ return (null); }; var _local3:MochiBot = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); var _local4 = "http://core.mochibot.com/my/core.swf"; var _local5:URLVariables = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; var _local6:String = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; var _local7:URLRequest = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; var _local8:Loader = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package
Section 362
//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 363
//OptionsStateView (OptionsStateView) package { import flash.display.*; public dynamic class OptionsStateView extends MovieClip { public var m_panel:MovieClip; } }//package
Section 364
//P (P) package { import States.*; public dynamic class P extends MainMenuLetter { } }//package
Section 365
//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 366
//Pers1Marker (Pers1Marker) package { import flash.display.*; public dynamic class Pers1Marker extends MovieClip { } }//package
Section 367
//Pers2Marker (Pers2Marker) package { import flash.display.*; public dynamic class Pers2Marker extends MovieClip { } }//package
Section 368
//Pers3Marker (Pers3Marker) package { import flash.display.*; public dynamic class Pers3Marker extends MovieClip { } }//package
Section 369
//Pers4Marker (Pers4Marker) package { import flash.display.*; public dynamic class Pers4Marker extends MovieClip { } }//package
Section 370
//Pers5Marker (Pers5Marker) package { import flash.display.*; public dynamic class Pers5Marker extends MovieClip { } }//package
Section 371
//Pers6Marker (Pers6Marker) package { import flash.display.*; public dynamic class Pers6Marker extends MovieClip { } }//package
Section 372
//PlayStateView (PlayStateView) package { import flash.display.*; import States.PlayState.*; import flash.text.*; public dynamic class PlayStateView extends MovieClip { public var m_logo:SimpleButton; 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 373
//PointsClip (PointsClip) package { import flash.display.*; import flash.text.*; public dynamic class PointsClip extends MovieClip { public var m_label:TextField; } }//package
Section 374
//PreloaderCloud1 (PreloaderCloud1) package { import States.*; public dynamic class PreloaderCloud1 extends PreloaderClouds { } }//package
Section 375
//PreloaderCloud2 (PreloaderCloud2) package { import States.*; public dynamic class PreloaderCloud2 extends PreloaderClouds { } }//package
Section 376
//PreloaderCloud3 (PreloaderCloud3) package { import States.*; public dynamic class PreloaderCloud3 extends PreloaderClouds { } }//package
Section 377
//PreloaderCloud4 (PreloaderCloud4) package { import States.*; public dynamic class PreloaderCloud4 extends PreloaderClouds { } }//package
Section 378
//PreloaderCloud5 (PreloaderCloud5) package { import States.*; public dynamic class PreloaderCloud5 extends PreloaderClouds { } }//package
Section 379
//RightHand_0 (RightHand_0) package { import flash.display.*; public dynamic class RightHand_0 extends MovieClip { } }//package
Section 380
//RightHand_1 (RightHand_1) package { import flash.display.*; public dynamic class RightHand_1 extends MovieClip { } }//package
Section 381
//RightHand_2 (RightHand_2) package { import flash.display.*; public dynamic class RightHand_2 extends MovieClip { } }//package
Section 382
//RightHand_3 (RightHand_3) package { import flash.display.*; public dynamic class RightHand_3 extends MovieClip { } }//package
Section 383
//RightHand_4 (RightHand_4) package { import flash.display.*; public dynamic class RightHand_4 extends MovieClip { } }//package
Section 384
//RightHand_5 (RightHand_5) package { import flash.display.*; public dynamic class RightHand_5 extends MovieClip { } }//package
Section 385
//RightHand_6 (RightHand_6) package { import flash.display.*; public dynamic class RightHand_6 extends MovieClip { } }//package
Section 386
//Roof (Roof) package { import States.PlayState.*; public dynamic class Roof extends DevidableWall { } }//package
Section 387
//S (S) package { import States.*; public dynamic class S extends MainMenuLetter { } }//package
Section 388
//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 389
//SilverBombWithWings (SilverBombWithWings) package { public dynamic class SilverBombWithWings extends Achievement { } }//package
Section 390
//SilverBombWithWingsHint (SilverBombWithWingsHint) package { public dynamic class SilverBombWithWingsHint extends Hint { } }//package
Section 391
//SilverCup (SilverCup) package { public dynamic class SilverCup extends Achievement { } }//package
Section 392
//SilverCupHint (SilverCupHint) package { public dynamic class SilverCupHint extends Hint { } }//package
Section 393
//SingleBrick0 (SingleBrick0) package { import flash.display.*; public dynamic class SingleBrick0 extends MovieClip { } }//package
Section 394
//SingleBrick1 (SingleBrick1) package { import flash.display.*; public dynamic class SingleBrick1 extends MovieClip { } }//package
Section 395
//Sky1 (Sky1) package { import States.PlayState.*; public dynamic class Sky1 extends SkyLayerObject { } }//package
Section 396
//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 397
//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 398
//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 399
//SoundOff (SoundOff) package { import flash.display.*; public dynamic class SoundOff extends SimpleButton { } }//package
Section 400
//SoundOn (SoundOn) package { import flash.display.*; public dynamic class SoundOn extends SimpleButton { } }//package
Section 401
//SteelBlock1 (SteelBlock1) package { import States.PlayState.*; public dynamic class SteelBlock1 extends UndestroyableWall { } }//package
Section 402
//SteelBlock10 (SteelBlock10) package { import States.PlayState.*; public dynamic class SteelBlock10 extends UndestroyableWall { } }//package
Section 403
//SteelBlock2 (SteelBlock2) package { import States.PlayState.*; public dynamic class SteelBlock2 extends UndestroyableWall { } }//package
Section 404
//SteelBlock3 (SteelBlock3) package { import States.PlayState.*; public dynamic class SteelBlock3 extends UndestroyableWall { } }//package
Section 405
//SteelBlock4 (SteelBlock4) package { import States.PlayState.*; public dynamic class SteelBlock4 extends UndestroyableWall { } }//package
Section 406
//SteelBlock5 (SteelBlock5) package { import States.PlayState.*; public dynamic class SteelBlock5 extends UndestroyableWall { } }//package
Section 407
//SteelBlock6 (SteelBlock6) package { import States.PlayState.*; public dynamic class SteelBlock6 extends UndestroyableWall { } }//package
Section 408
//SteelBlock7 (SteelBlock7) package { import States.PlayState.*; public dynamic class SteelBlock7 extends UndestroyableWall { } }//package
Section 409
//SteelBlock8 (SteelBlock8) package { import States.PlayState.*; public dynamic class SteelBlock8 extends UndestroyableWall { } }//package
Section 410
//SteelBlock9 (SteelBlock9) package { import States.PlayState.*; public dynamic class SteelBlock9 extends UndestroyableWall { } }//package
Section 411
//SteelCircle (SteelCircle) package { import States.PlayState.*; public dynamic class SteelCircle extends UndestroyableWall { } }//package
Section 412
//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 413
//T (T) package { import States.*; public dynamic class T extends MainMenuLetter { } }//package
Section 414
//Telephone (Telephone) package { import States.PlayState.*; public dynamic class Telephone extends DestroyableBackground { } }//package
Section 415
//TNT (TNT) package { public dynamic class TNT extends Achievement { } }//package
Section 416
//TNTHint (TNTHint) package { public dynamic class TNTHint extends Hint { } }//package
Section 417
//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 418
//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 419
//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 420
//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 421
//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 422
//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 423
//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 424
//Turtorial0 (Turtorial0) package { import flash.display.*; public dynamic class Turtorial0 extends MovieClip { } }//package
Section 425
//Turtorial1 (Turtorial1) package { import flash.display.*; public dynamic class Turtorial1 extends MovieClip { } }//package
Section 426
//Turtorial2 (Turtorial2) package { import flash.display.*; public dynamic class Turtorial2 extends MovieClip { } }//package
Section 427
//Turtorial4 (Turtorial4) package { import flash.display.*; public dynamic class Turtorial4 extends MovieClip { } }//package
Section 428
//Turtorial5 (Turtorial5) package { import flash.display.*; public dynamic class Turtorial5 extends MovieClip { } }//package
Section 429
//TurtorialBoom (TurtorialBoom) package { import flash.display.*; public dynamic class TurtorialBoom extends MovieClip { } }//package
Section 430
//TurtorialCup (TurtorialCup) package { import flash.display.*; public dynamic class TurtorialCup extends MovieClip { } }//package
Section 431
//TurtorialFrame (TurtorialFrame) package { import flash.display.*; public dynamic class TurtorialFrame extends MovieClip { } }//package
Section 432
//Twenty (Twenty) package { public dynamic class Twenty extends Achievement { } }//package
Section 433
//TwentyHint (TwentyHint) package { public dynamic class TwentyHint extends Hint { } }//package
Section 434
//UrlLockedState (UrlLockedState) package { import States.*; public dynamic class UrlLockedState extends UrlLockedState { } }//package
Section 435
//VertexMarker (VertexMarker) package { public dynamic class VertexMarker extends InvisibleClip { } }//package
Section 436
//win_sound (win_sound) package { import flash.media.*; public dynamic class win_sound extends Sound { } }//package
Section 437
//WinStateView (WinStateView) package { import flash.display.*; public dynamic class WinStateView extends MovieClip { public var m_panel:MovieClip; } }//package
Section 438
//woman_cry_1 (woman_cry_1) package { import flash.media.*; public dynamic class woman_cry_1 extends Sound { } }//package
Section 439
//woman_cry_2 (woman_cry_2) package { import flash.media.*; public dynamic class woman_cry_2 extends Sound { } }//package
Section 440
//woman_cry_3 (woman_cry_3) package { import flash.media.*; public dynamic class woman_cry_3 extends Sound { } }//package
Section 441
//woman_cry_4 (woman_cry_4) package { import flash.media.*; public dynamic class woman_cry_4 extends Sound { } }//package
Section 442
//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:89 479 614 627 644 736
Symbol 3 GraphicUsed by:89 644 736
Symbol 4 GraphicUsed by:5
Symbol 5 MovieClipUses:4Used by:89 614 627 644 736
Symbol 6 BitmapUsed by:7
Symbol 7 GraphicUses:6Used by:10 15
Symbol 8 GraphicUsed by:9 15 21
Symbol 9 MovieClipUses:8Used by:10 18
Symbol 10 MovieClipUses:7 9Used by:15
Symbol 11 GraphicUsed by:12 15 21
Symbol 12 MovieClipUses:11Used by:15 21
Symbol 13 GraphicUsed by:14 15
Symbol 14 MovieClipUses:13Used by:15
Symbol 15 Button {Banner1}Uses:10 12 14 7 8 11 13Used by:89 479
Symbol 16 BitmapUsed by:17
Symbol 17 GraphicUses:16Used by:18 21
Symbol 18 MovieClipUses:17 9Used by:21
Symbol 19 GraphicUsed by:20 21
Symbol 20 MovieClipUses:19Used by:21
Symbol 21 Button {Banner2}Uses:18 12 20 17 8 11 19Used by:89 479
Symbol 22 GraphicUsed by:28
Symbol 23 GraphicUsed by:24 423 426 435
Symbol 24 MovieClipUses:23Used by:28
Symbol 25 GraphicUsed by:26
Symbol 26 MovieClipUses:25Used by:28
Symbol 27 GraphicUsed by:28
Symbol 28 MovieClipUses:22 24 26 27Used by:89
Symbol 29 GraphicUsed by:30
Symbol 30 MovieClip {PreloaderCloud3}Uses:29Used by:89
Symbol 31 GraphicUsed by:46
Symbol 32 GraphicUsed by:35
Symbol 33 GraphicUsed by:34
Symbol 34 MovieClipUses:33Used by:35
Symbol 35 MovieClipUses:32 34Used by:46
Symbol 36 GraphicUsed by:39
Symbol 37 GraphicUsed by:38
Symbol 38 MovieClipUses:37Used by:39
Symbol 39 MovieClipUses:36 38Used by:46
Symbol 40 GraphicUsed by:41
Symbol 41 MovieClipUses:40Used by:42
Symbol 42 MovieClipUses:41Used by:46
Symbol 43 GraphicUsed by:45
Symbol 44 GraphicUsed by:45
Symbol 45 MovieClipUses:43 44Used by:46
Symbol 46 MovieClipUses:31 35 39 42 45Used by:47
Symbol 47 MovieClipUses:46Used by:48
Symbol 48 MovieClipUses:47Used by:49
Symbol 49 MovieClipUses:48Used by:89
Symbol 50 GraphicUsed by:51 442
Symbol 51 MovieClip {PreloaderCloud1}Uses:50Used by:89
Symbol 52 GraphicUsed by:53
Symbol 53 MovieClip {PreloaderCloud2}Uses:52Used by:89
Symbol 54 GraphicUsed by:55 437
Symbol 55 MovieClip {PreloaderCloud4}Uses:54Used by:89
Symbol 56 GraphicUsed by:57 436
Symbol 57 MovieClip {PreloaderCloud5}Uses:56Used by:89
Symbol 58 GraphicUsed by:67
Symbol 59 GraphicUsed by:67
Symbol 60 GraphicUsed by:65
Symbol 61 GraphicUsed by:65
Symbol 62 GraphicUsed by:63
Symbol 63 MovieClipUses:62Used by:64
Symbol 64 MovieClipUses:63Used by:65
Symbol 65 MovieClipUses:60 61 64Used by:67 82
Symbol 66 GraphicUsed by:67 82
Symbol 67 MovieClipUses:58 59 65 66Used by:89
Symbol 68 FontUsed by:69 81 85 86 114 116 118 120 122 124 126 130 133 136 137 138 139 142 143 144 145 148 149 150 155 156 157 158 161 162 163 166 167 184 191 192 193 194 196 197 198 204 205 207 209 242 247 248 249 252 253 278 290 291 292 293 294 295 296 297 298 299 300 301 309 310 311 312 313 316 317 318 322 326 328 331 335 338 339 340 353 356 366 367 368 373 374 375 376 379 380 387 388 389 424 425 475 476 490 495 497 499 532 539 540 541 543 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 632 633 634 637 638 639 640 641 642 643 646 647 649 650 652 653 655 656 658 659 661 662 664 665 667 668 670 671 673 674 676 677 679 680 682 683 740 742 743 748 1143 1145 1148
Symbol 69 EditableTextUses:68Used by:89
Symbol 70 BitmapUsed by:71
Symbol 71 GraphicUses:70Used by:72 73
Symbol 72 MovieClipUses:71Used by:73
Symbol 73 ButtonUses:72 71Used by:89 479 614 627 644
Symbol 74 GraphicUsed by:75
Symbol 75 MovieClipUses:74Used by:76 567
Symbol 76 MovieClipUses:75Used by:89
Symbol 77 GraphicUsed by:78
Symbol 78 MovieClipUses:77Used by:79 566
Symbol 79 MovieClipUses:78Used by:89
Symbol 80 GraphicUsed by:82
Symbol 81 EditableTextUses:68Used by:82
Symbol 82 MovieClipUses:80 65 66 81Used by:88
Symbol 83 GraphicUsed by:84 87 195 250 254 377 381 744
Symbol 84 MovieClipUses:83Used by:87 195 250 254 377 381 744
Symbol 85 TextUses:68Used by:87
Symbol 86 TextUses:68Used by:87
Symbol 87 ButtonUses:84 85 86 83Used by:88 478
Symbol 88 MovieClip {Shotfirer_fla.PreloaderPlayButton_41}Uses:82 87Used by:89
Symbol 89 MovieClip {States.CurrentPreloaderState}Uses:2 3 5 15 21 28 30 49 51 53 55 57 67 69 73 76 79 88Used by:Timeline
Symbol 90 Sound {woman_cry_4}
Symbol 91 Sound {woman_cry_3}
Symbol 92 Sound {woman_cry_2}
Symbol 93 Sound {woman_cry_1}
Symbol 94 Sound {win_sound}
Symbol 95 Sound {man_cry_4}
Symbol 96 Sound {man_cry_3}
Symbol 97 Sound {man_cry_2}
Symbol 98 Sound {man_cry_1}
Symbol 99 Sound {lose_sound}
Symbol 100 Sound {main_menu_song}
Symbol 101 Sound {happy_song_2}
Symbol 102 Sound {happy_song_1}
Symbol 103 Sound {click}
Symbol 104 Sound {bricks_fall_3}
Symbol 105 Sound {bricks_fall_2}
Symbol 106 Sound {bricks_fall_1}
Symbol 107 Sound {boom_4}
Symbol 108 Sound {boom_3}
Symbol 109 Sound {boom_2}
Symbol 110 Sound {boom_1}
Symbol 111 Sound {bomb_fall}
Symbol 112 Sound {body_die_2}
Symbol 113 Sound {body_die_1}
Symbol 114 TextUses:68Used by:115
Symbol 115 MovieClip {TurtorialCup}Uses:114
Symbol 116 TextUses:68Used by:117
Symbol 117 MovieClip {TurtorialBoom}Uses:116
Symbol 118 TextUses:68Used by:119
Symbol 119 MovieClip {Turtorial5}Uses:118
Symbol 120 TextUses:68Used by:121
Symbol 121 MovieClip {Turtorial4}Uses:120
Symbol 122 TextUses:68Used by:123
Symbol 123 MovieClip {Turtorial2}Uses:122
Symbol 124 TextUses:68Used by:125
Symbol 125 MovieClip {Turtorial1}Uses:124
Symbol 126 TextUses:68Used by:127
Symbol 127 MovieClip {Turtorial0}Uses:126
Symbol 128 GraphicUsed by:129
Symbol 129 MovieClip {TurtorialFrame}Uses:128
Symbol 130 TextUses:68Used by:131
Symbol 131 MovieClip {ClickToContinue}Uses:130
Symbol 132 GraphicUsed by:134
Symbol 133 EditableTextUses:68Used by:134
Symbol 134 MovieClipUses:132 133Used by:180
Symbol 135 GraphicUsed by:179
Symbol 136 TextUses:68Used by:179
Symbol 137 TextUses:68Used by:179
Symbol 138 TextUses:68Used by:179
Symbol 139 TextUses:68Used by:179
Symbol 140 GraphicUsed by:141
Symbol 141 MovieClipUses:140Used by:179
Symbol 142 EditableTextUses:68Used by:179
Symbol 143 EditableTextUses:68Used by:179
Symbol 144 EditableTextUses:68Used by:179
Symbol 145 EditableTextUses:68Used by:179
Symbol 146 GraphicUsed by:147 151 164 199 341
Symbol 147 MovieClipUses:146Used by:151 164 199 341
Symbol 148 EditableTextUses:68Used by:151
Symbol 149 EditableTextUses:68Used by:151
Symbol 150 EditableTextUses:68Used by:151
Symbol 151 ButtonUses:147 148 149 150 146Used by:152 200 337 544
Symbol 152 MovieClipUses:151Used by:179
Symbol 153 GraphicUsed by:154 159 477
Symbol 154 MovieClipUses:153Used by:159 477
Symbol 155 TextUses:68Used by:159
Symbol 156 TextUses:68Used by:159
Symbol 157 TextUses:68Used by:159
Symbol 158 TextUses:68Used by:159
Symbol 159 ButtonUses:154 155 156 157 158 153Used by:160 478 484
Symbol 160 MovieClipUses:159Used by:179
Symbol 161 EditableTextUses:68Used by:164
Symbol 162 EditableTextUses:68Used by:164
Symbol 163 EditableTextUses:68Used by:164
Symbol 164 ButtonUses:147 161 162 163 146Used by:165
Symbol 165 MovieClipUses:164Used by:179
Symbol 166 TextUses:68Used by:179
Symbol 167 EditableTextUses:68Used by:179
Symbol 168 GraphicUsed by:177
Symbol 169 GraphicUsed by:170
Symbol 170 MovieClipUses:169Used by:171 747
Symbol 171 MovieClipUses:170Used by:177
Symbol 172 GraphicUsed by:177
Symbol 173 GraphicUsed by:174
Symbol 174 MovieClipUses:173Used by:177 561
Symbol 175 GraphicUsed by:177
Symbol 176 GraphicUsed by:177
Symbol 177 MovieClipUses:168 171 172 174 175 176Used by:178
Symbol 178 MovieClipUses:177Used by:179
Symbol 179 MovieClipUses:135 136 137 138 139 141 142 143 144 145 152 160 165 166 167 178Used by:180
Symbol 180 MovieClipUses:134 179Used by:181
Symbol 181 MovieClip {WinStateView}Uses:180
Symbol 182 GraphicUsed by:183 211 240
Symbol 183 MovieClip {black_square}Uses:182Used by:185 369
Symbol 184 TextUses:68Used by:185
Symbol 185 MovieClip {UrlLockedState}Uses:183 184
Symbol 186 GraphicUsed by:187
Symbol 187 MovieClipUses:186Used by:202 487 625
Symbol 188 GraphicUsed by:201 486
Symbol 189 GraphicUsed by:190
Symbol 190 MovieClipUses:189Used by:201
Symbol 191 TextUses:68Used by:195
Symbol 192 TextUses:68Used by:195
Symbol 193 TextUses:68Used by:195
Symbol 194 TextUses:68Used by:195
Symbol 195 ButtonUses:84 191 192 193 194 83Used by:201 478
Symbol 196 EditableTextUses:68Used by:199
Symbol 197 EditableTextUses:68Used by:199
Symbol 198 EditableTextUses:68Used by:199
Symbol 199 ButtonUses:147 196 197 198 146Used by:201 545 624
Symbol 200 MovieClipUses:151Used by:201 486 624
Symbol 201 MovieClipUses:188 190 195 199 200Used by:202
Symbol 202 MovieClipUses:187 201Used by:203
Symbol 203 MovieClipUses:202Used by:210
Symbol 204 EditableTextUses:68Used by:210
Symbol 205 TextUses:68Used by:206
Symbol 206 MovieClipUses:205Used by:210
Symbol 207 TextUses:68Used by:208
Symbol 208 MovieClipUses:207Used by:210
Symbol 209 TextUses:68Used by:210
Symbol 210 MovieClip {SubmitScoreStateView}Uses:203 204 206 208 209
Symbol 211 MovieClipUses:182Used by:240
Symbol 212 GraphicUsed by:213
Symbol 213 ButtonUses:212Used by:240
Symbol 214 GraphicUsed by:240
Symbol 215 GraphicUsed by:216
Symbol 216 MovieClipUses:215Used by:234 240
Symbol 217 GraphicUsed by:218
Symbol 218 MovieClipUses:217Used by:233 240
Symbol 219 GraphicUsed by:220
Symbol 220 MovieClipUses:219Used by:227 233 234 240
Symbol 221 GraphicUsed by:222
Symbol 222 MovieClipUses:221Used by:227 233 234 240
Symbol 223 GraphicUsed by:224
Symbol 224 MovieClipUses:223Used by:227 233 234 240
Symbol 225 GraphicUsed by:226
Symbol 226 MovieClipUses:225Used by:227 233 234 240
Symbol 227 MovieClipUses:220 222 224 226Used by:240
Symbol 228 GraphicUsed by:240
Symbol 229 GraphicUsed by:230 240
Symbol 230 MovieClipUses:229Used by:240
Symbol 231 GraphicUsed by:240
Symbol 232 GraphicUsed by:234
Symbol 233 MovieClipUses:218 220 222 224 226Used by:234
Symbol 234 MovieClipUses:232 216 233 220 222 224 226Used by:240
Symbol 235 GraphicUsed by:236
Symbol 236 MovieClipUses:235Used by:240
Symbol 237 FontUsed by:238
Symbol 238 TextUses:237Used by:239
Symbol 239 MovieClipUses:238Used by:240
Symbol 240 MovieClip {States.SponsorIntroState}Uses:182 211 213 214 216 218 227 228 230 231 220 222 224 226 234 236 229 239
Symbol 241 GraphicUsed by:243
Symbol 242 EditableTextUses:68Used by:243
Symbol 243 MovieClipUses:241 242Used by:257
Symbol 244 GraphicUsed by:256
Symbol 245 GraphicUsed by:246
Symbol 246 MovieClipUses:245Used by:256
Symbol 247 TextUses:68Used by:256
Symbol 248 TextUses:68Used by:250
Symbol 249 TextUses:68Used by:250
Symbol 250 ButtonUses:84 248 249 83Used by:251
Symbol 251 MovieClipUses:250Used by:256
Symbol 252 TextUses:68Used by:254
Symbol 253 TextUses:68Used by:254
Symbol 254 ButtonUses:84 252 253 83Used by:255
Symbol 255 MovieClipUses:254Used by:256
Symbol 256 MovieClipUses:244 246 247 251 255Used by:257
Symbol 257 MovieClipUses:243 256Used by:258
Symbol 258 MovieClip {YesNoStateView}Uses:257
Symbol 259 GraphicUsed by:260
Symbol 260 MovieClipUses:259Used by:354 564
Symbol 261 GraphicUsed by:262
Symbol 262 ButtonUses:261Used by:354
Symbol 263 GraphicUsed by:264
Symbol 264 MovieClipUses:263Used by:308
Symbol 265 GraphicUsed by:308
Symbol 266 GraphicUsed by:267 280
Symbol 267 MovieClipUses:266Used by:280 307 308 796 884
Symbol 268 GraphicUsed by:269 284
Symbol 269 MovieClipUses:268Used by:284 307 308 1060
Symbol 270 GraphicUsed by:271 289
Symbol 271 MovieClipUses:270Used by:289 307 308 997
Symbol 272 GraphicUsed by:273 286
Symbol 273 MovieClipUses:272Used by:286 307 308 1057
Symbol 274 GraphicUsed by:275 282
Symbol 275 MovieClipUses:274Used by:282 307 308 885
Symbol 276 GraphicUsed by:277 287
Symbol 277 MovieClipUses:276Used by:287 307 308 1052
Symbol 278 TextUses:68Used by:308
Symbol 279 GraphicUsed by:280 287
Symbol 280 ButtonUses:267 279 266Used by:308
Symbol 281 GraphicUsed by:282
Symbol 282 ButtonUses:275 281 274Used by:308
Symbol 283 GraphicUsed by:284
Symbol 284 ButtonUses:269 283 268Used by:308
Symbol 285 GraphicUsed by:286
Symbol 286 ButtonUses:273 285 272Used by:308
Symbol 287 ButtonUses:277 279 276Used by:308
Symbol 288 GraphicUsed by:289
Symbol 289 ButtonUses:271 288 270Used by:308
Symbol 290 TextUses:68Used by:302
Symbol 291 TextUses:68Used by:302
Symbol 292 TextUses:68Used by:302
Symbol 293 TextUses:68Used by:302
Symbol 294 TextUses:68Used by:302
Symbol 295 TextUses:68Used by:302
Symbol 296 TextUses:68Used by:302
Symbol 297 TextUses:68Used by:302
Symbol 298 TextUses:68Used by:302
Symbol 299 TextUses:68Used by:302
Symbol 300 TextUses:68Used by:302
Symbol 301 TextUses:68Used by:302
Symbol 302 MovieClip {Shotfirer_fla.figures_119}Uses:290 291 292 293 294 295 296 297 298 299 300 301Used by:308 884 885 997 1052 1057 1060
Symbol 303 GraphicUsed by:307
Symbol 304 GraphicUsed by:305
Symbol 305 MovieClipUses:304Used by:307 333
Symbol 306 GraphicUsed by:307
Symbol 307 MovieClip {Shotfirer_fla.BombButton_434}Uses:303 305 267 306 275 269 277 273 271Used by:308
Symbol 308 MovieClip {States.PlayState.BombsPanel}Uses:264 265 267 269 271 273 275 277 278 280 282 284 286 287 289 302 307Used by:354
Symbol 309 EditableTextUses:68Used by:354
Symbol 310 EditableTextUses:68Used by:354
Symbol 311 TextUses:68Used by:315
Symbol 312 EditableTextUses:68Used by:315
Symbol 313 EditableTextUses:68Used by:315
Symbol 314 GraphicUsed by:315
Symbol 315 ButtonUses:311 312 313 314Used by:354 564
Symbol 316 TextUses:68Used by:320
Symbol 317 EditableTextUses:68Used by:320
Symbol 318 EditableTextUses:68Used by:320
Symbol 319 GraphicUsed by:320
Symbol 320 ButtonUses:316 317 318 319Used by:354 564
Symbol 321 GraphicUsed by:330
Symbol 322 EditableTextUses:68Used by:330
Symbol 323 GraphicUsed by:324
Symbol 324 MovieClipUses:323Used by:330 336
Symbol 325 GraphicUsed by:330
Symbol 326 EditableTextUses:68Used by:330
Symbol 327 GraphicUsed by:330
Symbol 328 EditableTextUses:68Used by:330
Symbol 329 GraphicUsed by:330
Symbol 330 ButtonUses:321 322 324 325 326 327 328 329Used by:354
Symbol 331 EditableTextUses:68Used by:354
Symbol 332 GraphicUsed by:333
Symbol 333 MovieClipUses:332 305Used by:354
Symbol 334 GraphicUsed by:336
Symbol 335 EditableTextUses:68Used by:336
Symbol 336 MovieClipUses:334 335 324Used by:354
Symbol 337 MovieClipUses:151Used by:354
Symbol 338 EditableTextUses:68Used by:341
Symbol 339 EditableTextUses:68Used by:341
Symbol 340 EditableTextUses:68Used by:341
Symbol 341 ButtonUses:147 338 339 340 146Used by:342 485
Symbol 342 MovieClipUses:341Used by:354
Symbol 343 GraphicUsed by:348
Symbol 344 GraphicUsed by:348
Symbol 345 GraphicUsed by:348
Symbol 346 GraphicUsed by:347
Symbol 347 MovieClipUses:346Used by:348
Symbol 348 MovieClip {Shotfirer_fla.Symbol35_444}Uses:343 344 345 347Used by:354
Symbol 349 BitmapUsed by:350
Symbol 350 GraphicUses:349Used by:351 352
Symbol 351 MovieClipUses:350Used by:352
Symbol 352 ButtonUses:351 350Used by:354 564
Symbol 353 EditableTextUses:68Used by:354
Symbol 354 MovieClip {PlayStateView}Uses:260 262 308 309 310 315 320 330 331 333 336 337 342 348 352 353
Symbol 355 GraphicUsed by:357
Symbol 356 EditableTextUses:68Used by:357
Symbol 357 MovieClipUses:355 356Used by:384
Symbol 358 GraphicUsed by:383
Symbol 359 GraphicUsed by:360
Symbol 360 MovieClipUses:359Used by:383
Symbol 361 GraphicUsed by:362
Symbol 362 MovieClipUses:361Used by:365
Symbol 363 GraphicUsed by:364
Symbol 364 MovieClipUses:363Used by:365
Symbol 365 MovieClip {ScrollBar}Uses:362 364Used by:383
Symbol 366 TextUses:68Used by:383
Symbol 367 TextUses:68Used by:383
Symbol 368 EditableTextUses:68Used by:383
Symbol 369 MovieClip {CheckBoxBack}Uses:183Used by:372 1163
Symbol 370 GraphicUsed by:372
Symbol 371 GraphicUsed by:372
Symbol 372 MovieClip {CheckBox}Uses:369 370 371Used by:383
Symbol 373 TextUses:68Used by:377
Symbol 374 TextUses:68Used by:377
Symbol 375 TextUses:68Used by:377
Symbol 376 TextUses:68Used by:377
Symbol 377 ButtonUses:84 373 374 375 376 83Used by:378
Symbol 378 MovieClipUses:377Used by:383
Symbol 379 TextUses:68Used by:381
Symbol 380 TextUses:68Used by:381
Symbol 381 ButtonUses:84 379 380 83Used by:382
Symbol 382 MovieClipUses:381Used by:383
Symbol 383 MovieClipUses:358 360 365 366 367 368 372 378 382Used by:384
Symbol 384 MovieClipUses:357 383Used by:385
Symbol 385 MovieClip {OptionsStateView}Uses:384
Symbol 386 GraphicUsed by:392
Symbol 387 TextUses:68Used by:391
Symbol 388 TextUses:68Used by:391
Symbol 389 TextUses:68Used by:391
Symbol 390 GraphicUsed by:391
Symbol 391 ButtonUses:387 388 389 390Used by:392
Symbol 392 MovieClipUses:386 391Used by:479
Symbol 393 GraphicUsed by:394
Symbol 394 MovieClipUses:393Used by:479
Symbol 395 GraphicUsed by:396
Symbol 396 MovieClip {C}Uses:395Used by:422
Symbol 397 GraphicUsed by:398
Symbol 398 MovieClip {L}Uses:397Used by:422
Symbol 399 GraphicUsed by:400
Symbol 400 MovieClip {A}Uses:399Used by:422
Symbol 401 GraphicUsed by:402
Symbol 402 MovieClipUses:401Used by:409
Symbol 403 GraphicUsed by:409
Symbol 404 GraphicUsed by:408
Symbol 405 GraphicUsed by:408
Symbol 406 GraphicUsed by:408
Symbol 407 GraphicUsed by:408
Symbol 408 MovieClipUses:404 405 406 407Used by:409
Symbol 409 MovieClip {Shotfirer_fla.fitil_389}Uses:402 403 408Used by:411
Symbol 410 GraphicUsed by:411
Symbol 411 MovieClip {MainMenuBomb}Uses:409 410Used by:422
Symbol 412 GraphicUsed by:413
Symbol 413 MovieClip {P}Uses:412Used by:422
Symbol 414 GraphicUsed by:415
Symbol 415 MovieClip {S}Uses:414Used by:422
Symbol 416 GraphicUsed by:417
Symbol 417 MovieClip {E}Uses:416Used by:422
Symbol 418 GraphicUsed by:419
Symbol 419 MovieClip {I}Uses:418Used by:422
Symbol 420 GraphicUsed by:421
Symbol 421 MovieClip {T}Uses:420Used by:422
Symbol 422 MovieClip {MainMenuLettersClip}Uses:396 398 400 411 413 415 417 419 421Used by:479
Symbol 423 MovieClipUses:23Used by:479
Symbol 424 TextUses:68Used by:426
Symbol 425 TextUses:68Used by:426
Symbol 426 ButtonUses:424 425 23Used by:479
Symbol 427 GraphicUsed by:428
Symbol 428 MovieClipUses:427Used by:429
Symbol 429 MovieClipUses:428Used by:479
Symbol 430 GraphicUsed by:431
Symbol 431 MovieClipUses:430Used by:434
Symbol 432 GraphicUsed by:433
Symbol 433 MovieClipUses:432Used by:434
Symbol 434 MovieClip {Shotfirer_fla.HrenMain_404}Uses:431 433Used by:479
Symbol 435 MovieClipUses:23Used by:479
Symbol 436 MovieClip {Cloud5}Uses:56Used by:443 564 614 627 644 736 886 998 1017 1053 1058 1063 1066 1069 1070 1071 1078 1081 1089 1097 1101 1103 1109 1112 1116 1121 1122 1123 1124 1125 1127 1128 1129 1130 1131 1132 1133 1138 1139 1147
Symbol 437 MovieClip {Cloud4}Uses:54Used by:443 564 886 998 1017 1053 1058 1063 1066 1069 1070 1071 1078 1081 1089 1097 1101 1103 1109 1112 1116 1121 1122 1123 1124 1125 1127 1128 1129 1130 1131 1132 1133 1138 1139 1147
Symbol 438 GraphicUsed by:439
Symbol 439 MovieClip {Cloud3}Uses:438Used by:443 564 614 627 644 736 886 998 1017 1053 1058 1063 1066 1069 1070 1071 1078 1081 1089 1097 1101 1103 1109 1112 1116 1121 1122 1123 1124 1125 1127 1128 1129 1130 1131 1132 1133 1138 1139 1147
Symbol 440 GraphicUsed by:441
Symbol 441 MovieClip {Cloud2}Uses:440Used by:443 564 886 998 1017 1053 1058 1063 1066 1069 1070 1071 1078 1081 1089 1097 1101 1103 1109 1112 1116 1121 1122 1123 1124 1125 1127 1128 1129 1130 1131 1132 1133 1138 1139 1147
Symbol 442 MovieClip {Cloud1}Uses:50Used by:443 614 627 644 736 886 998 1017 1053 1058 1063 1066 1069 1070 1071 1078 1081 1089 1097 1101 1103 1109 1112 1116 1121 1122 1123 1124 1125 1127 1128 1129 1130 1131 1132 1133 1138 1139 1147
Symbol 443 MovieClipUses:436 437 439 441 442Used by:479
Symbol 444 GraphicUsed by:445
Symbol 445 MovieClipUses:444Used by:448
Symbol 446 GraphicUsed by:447
Symbol 447 MovieClipUses:446Used by:448
Symbol 448 MovieClip {Shotfirer_fla.MMPanelAnim_409}Uses:445 447Used by:479
Symbol 449 GraphicUsed by:450
Symbol 450 MovieClipUses:449Used by:472 564 889 1066 1070 1071 1078 1089 1097 1103 1109 1122 1129 1131 1132 1133 1138 1139
Symbol 451 GraphicUsed by:452
Symbol 452 MovieClipUses:451Used by:472 564 886 1017 1053 1058 1063 1066 1070 1071 1078 1081 1089 1097 1101 1103 1109 1112 1116 1121 1122 1123 1125 1127 1128 1129 1130 1131 1132 1133 1138 1139
Symbol 453 GraphicUsed by:454
Symbol 454 MovieClipUses:453Used by:472 564 1063 1066 1069 1071 1078 1089 1097 1103 1112 1116 1122 1123 1124 1127 1130
Symbol 455 GraphicUsed by:456
Symbol 456 MovieClipUses:455Used by:472 564 886 998 1058 1070 1071 1081 1089 1097 1101 1109 1122 1128 1131 1132 1133 1138 1147
Symbol 457 GraphicUsed by:458
Symbol 458 MovieClipUses:457Used by:472 564 1058 1063 1066 1070 1071 1078 1081 1089 1097 1109 1122 1127 1131 1132 1133 1138
Symbol 459 GraphicUsed by:460
Symbol 460 MovieClipUses:459Used by:472 564 886 1058 1066 1070 1071 1078 1081 1089 1097 1101 1109 1122 1123 1128 1130 1131 1132 1133 1138
Symbol 461 GraphicUsed by:462
Symbol 462 MovieClipUses:461Used by:472 564 886 998 1017 1053 1063 1066 1069 1070 1071 1078 1089 1097 1101 1103 1109 1112 1116 1121 1122 1123 1124 1125 1127 1128 1129 1130 1131 1132 1133 1138 1139 1147
Symbol 463 GraphicUsed by:464
Symbol 464 MovieClipUses:463Used by:472 564 886 998 1017 1053 1058 1063 1066 1069 1070 1078 1081 1097 1101 1103 1112 1116 1121 1122 1123 1124 1125 1127 1128 1129 1130 1131 1138 1139 1147
Symbol 465 GraphicUsed by:466
Symbol 466 MovieClipUses:465Used by:472 564 886 998 1017 1053 1063 1066 1069 1070 1071 1078 1089 1097 1101 1103 1112 1116 1121 1122 1123 1124 1125 1127 1128 1129 1130 1131 1138 1139 1147
Symbol 467 GraphicUsed by:468
Symbol 468 MovieClipUses:467Used by:472 564 886 1017 1053 1058 1069 1070 1081 1097 1101 1103 1109 1112 1116 1121 1122 1124 1125 1128 1129 1131 1132 1133 1138 1139
Symbol 469 GraphicUsed by:472
Symbol 470 GraphicUsed by:471
Symbol 471 MovieClipUses:470Used by:472 564 886 998 1017 1053 1058 1069 1070 1081 1101 1109 1121 1123 1124 1125 1128 1130 1131 1132 1133 1138 1147
Symbol 472 MovieClipUses:450 452 454 456 458 460 462 464 466 468 469 471Used by:479
Symbol 473 GraphicUsed by:474
Symbol 474 MovieClipUses:473Used by:478
Symbol 475 TextUses:68Used by:477
Symbol 476 TextUses:68Used by:477
Symbol 477 ButtonUses:154 475 476 153Used by:478
Symbol 478 MovieClip {Shotfirer_fla.MainMenuButtonAnim_413}Uses:474 87 159 195 477Used by:479
Symbol 479 MovieClip {States.MainMenuState}Uses:2 392 394 422 423 15 21 73 426 429 434 435 443 448 472 478
Symbol 480 GraphicUsed by:481
Symbol 481 MovieClipUses:480Used by:486
Symbol 482 GraphicUsed by:483
Symbol 483 MovieClip {Bomj}Uses:482Used by:486
Symbol 484 MovieClipUses:159Used by:486 624
Symbol 485 MovieClipUses:341Used by:486
Symbol 486 MovieClipUses:188 481 483 200 484 485Used by:487
Symbol 487 MovieClipUses:187 486Used by:488
Symbol 488 MovieClip {LoseStateView}Uses:487
Symbol 489 GraphicUsed by:500
Symbol 490 EditableTextUses:68Used by:500
Symbol 491 GraphicUsed by:500 536
Symbol 492 GraphicUsed by:493 500
Symbol 493 MovieClipUses:492Used by:500 542
Symbol 494 GraphicUsed by:500
Symbol 495 EditableTextUses:68Used by:500
Symbol 496 GraphicUsed by:500
Symbol 497 EditableTextUses:68Used by:500
Symbol 498 GraphicUsed by:500
Symbol 499 EditableTextUses:68Used by:500
Symbol 500 Button {LevelPerfectButton}Uses:489 490 491 493 494 495 496 497 498 499 492
Symbol 501 GraphicUsed by:502
Symbol 502 MovieClip {Sky1}Uses:501Used by:564 886 998 1017 1053 1058 1063 1066 1069 1070 1071 1078 1081 1089 1097 1101 1103 1109 1112 1116 1121 1122 1123 1124 1125 1127 1128 1129 1130 1131 1132 1133 1138 1139 1147
Symbol 503 GraphicUsed by:504
Symbol 504 MovieClipUses:503Used by:564 886 1070 1071 1122 1123 1124 1130
Symbol 505 GraphicUsed by:506
Symbol 506 MovieClipUses:505Used by:564 998 1017 1070 1131 1133 1147
Symbol 507 GraphicUsed by:510
Symbol 508 GraphicUsed by:509
Symbol 509 MovieClipUses:508Used by:510
Symbol 510 MovieClipUses:507 509Used by:564 1063 1123 1138 1139
Symbol 511 GraphicUsed by:515
Symbol 512 GraphicUsed by:513
Symbol 513 MovieClip {VertexMarker}Uses:512Used by:515 522 525 528 531 795 796 848 855 884 885 946 997 1011 1014 1025 1051 1052 1056 1057 1060 1068 1074 1077 1084 1088 1108 1115
Symbol 514 GraphicUsed by:515
Symbol 515 MovieClip {Car3}Uses:511 513 514Used by:564 1053 1069 1070 1071 1124 1128 1129 1131 1133 1138
Symbol 516 GraphicUsed by:517
Symbol 517 MovieClipUses:516Used by:564 1069 1109 1112 1121 1125 1127 1129
Symbol 518 GraphicUsed by:519
Symbol 519 MovieClipUses:518Used by:564 1069 1109 1112 1121 1125 1127 1129
Symbol 520 GraphicUsed by:522
Symbol 521 GraphicUsed by:522
Symbol 522 MovieClip {Car5}Uses:520 513 521Used by:564 1053 1078 1121 1127
Symbol 523 GraphicUsed by:525
Symbol 524 GraphicUsed by:525
Symbol 525 MovieClip {Car2}Uses:523 513 524Used by:564 1017 1069 1089 1103 1121 1128 1129
Symbol 526 GraphicUsed by:528
Symbol 527 GraphicUsed by:528
Symbol 528 MovieClip {Car4}Uses:526 513 527Used by:564 1070 1131 1139 1147
Symbol 529 GraphicUsed by:531
Symbol 530 GraphicUsed by:531
Symbol 531 MovieClip {Ground}Uses:529 513 530Used by:564 886 998 1017 1053 1058 1063 1066 1069 1070 1071 1078 1081 1089 1097 1101 1103 1109 1112 1116 1121 1122 1123 1124 1125 1127 1128 1129 1130 1131 1132 1133 1138 1139 1147
Symbol 532 TextUses:68Used by:564 614
Symbol 533 GraphicUsed by:534
Symbol 534 MovieClipUses:533Used by:537 542
Symbol 535 GraphicUsed by:537
Symbol 536 MovieClipUses:491Used by:537 542
Symbol 537 MovieClipUses:534 535 536Used by:538
Symbol 538 MovieClipUses:537Used by:542
Symbol 539 EditableTextUses:68Used by:542
Symbol 540 EditableTextUses:68Used by:542
Symbol 541 EditableTextUses:68Used by:542
Symbol 542 MovieClip {LevelButton}Uses:538 534 539 536 493 540 541Used by:564
Symbol 543 EditableTextUses:68Used by:564
Symbol 544 MovieClipUses:151Used by:564 614 644 736
Symbol 545 MovieClipUses:199Used by:564
Symbol 546 GraphicUsed by:547
Symbol 547 MovieClipUses:546Used by:548
Symbol 548 MovieClipUses:547Used by:564
Symbol 549 GraphicUsed by:550
Symbol 550 MovieClipUses:549Used by:551 561 563
Symbol 551 MovieClipUses:550Used by:563
Symbol 552 GraphicUsed by:553
Symbol 553 MovieClipUses:552Used by:554
Symbol 554 MovieClipUses:553Used by:561 563
Symbol 555 GraphicUsed by:561
Symbol 556 GraphicUsed by:561
Symbol 557 GraphicUsed by:561
Symbol 558 GraphicUsed by:561
Symbol 559 GraphicUsed by:561
Symbol 560 GraphicUsed by:561
Symbol 561 MovieClip {Shotfirer_fla.GoAchivOver_357}Uses:550 554 555 174 556 557 558 559 560Used by:563
Symbol 562 GraphicUsed by:563
Symbol 563 ButtonUses:551 554 561 550 562Used by:564 627
Symbol 564 MovieClip {States.SelectLevelState}Uses:502 436 437 439 471 450 452 454 456 458 460 462 464 466 468 504 506 510 515 517 519 522 525 528 441 531 352 260 532 542 543 544 545 548 563 315 320
Symbol 565 GraphicUsed by:614
Symbol 566 MovieClip {Cloud6}Uses:78Used by:614 627 644 736
Symbol 567 MovieClipUses:75Used by:614 627 644 736
Symbol 568 GraphicUsed by:569
Symbol 569 MovieClipUses:568Used by:614 644 736
Symbol 570 EditableTextUses:68Used by:614
Symbol 571 EditableTextUses:68Used by:614
Symbol 572 EditableTextUses:68Used by:614
Symbol 573 EditableTextUses:68Used by:614
Symbol 574 EditableTextUses:68Used by:614
Symbol 575 EditableTextUses:68Used by:614
Symbol 576 EditableTextUses:68Used by:614
Symbol 577 EditableTextUses:68Used by:614
Symbol 578 EditableTextUses:68Used by:614
Symbol 579 EditableTextUses:68Used by:614
Symbol 580 EditableTextUses:68Used by:614
Symbol 581 EditableTextUses:68Used by:614
Symbol 582 EditableTextUses:68Used by:614
Symbol 583 EditableTextUses:68Used by:614
Symbol 584 EditableTextUses:68Used by:614
Symbol 585 EditableTextUses:68Used by:614
Symbol 586 EditableTextUses:68Used by:614
Symbol 587 EditableTextUses:68Used by:614
Symbol 588 EditableTextUses:68Used by:614
Symbol 589 EditableTextUses:68Used by:614
Symbol 590 EditableTextUses:68Used by:614
Symbol 591 EditableTextUses:68Used by:614
Symbol 592 EditableTextUses:68Used by:614
Symbol 593 EditableTextUses:68Used by:614
Symbol 594 EditableTextUses:68Used by:614
Symbol 595 EditableTextUses:68Used by:614
Symbol 596 EditableTextUses:68Used by:614
Symbol 597 EditableTextUses:68Used by:614
Symbol 598 EditableTextUses:68Used by:614
Symbol 599 EditableTextUses:68Used by:614
Symbol 600 EditableTextUses:68Used by:614
Symbol 601 EditableTextUses:68Used by:614
Symbol 602 EditableTextUses:68Used by:614
Symbol 603 EditableTextUses:68Used by:614
Symbol 604 EditableTextUses:68Used by:614
Symbol 605 EditableTextUses:68Used by:614
Symbol 606 EditableTextUses:68Used by:614
Symbol 607 EditableTextUses:68Used by:614
Symbol 608 EditableTextUses:68Used by:614
Symbol 609 EditableTextUses:68Used by:614
Symbol 610 EditableTextUses:68Used by:614
Symbol 611 EditableTextUses:68Used by:614
Symbol 612 GraphicUsed by:613
Symbol 613 MovieClipUses:612Used by:614
Symbol 614 MovieClip {States.HighScoreState}Uses:565 2 5 442 439 436 73 566 567 569 544 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 532 611 613
Symbol 615 GraphicUsed by:627
Symbol 616 GraphicUsed by:627
Symbol 617 GraphicUsed by:618
Symbol 618 MovieClipUses:617Used by:627
Symbol 619 GraphicUsed by:624
Symbol 620 GraphicUsed by:621
Symbol 621 MovieClipUses:620Used by:624
Symbol 622 GraphicUsed by:623
Symbol 623 MovieClipUses:622Used by:624
Symbol 624 MovieClipUses:619 621 199 623 200 484Used by:625
Symbol 625 MovieClipUses:187 624Used by:626
Symbol 626 MovieClipUses:625Used by:627
Symbol 627 MovieClip {GameCompleteState}Uses:2 615 5 616 442 439 436 618 626 563 73 566 567
Symbol 628 GraphicUsed by:630
Symbol 629 GraphicUsed by:630
Symbol 630 MovieClip {Bird}Uses:628 629Used by:644 886 998 1053 1063 1069 1070 1071 1078 1089 1097 1101 1103 1109 1112 1121 1123 1124 1125 1127 1128 1129 1130 1131 1132 1133 1139 1147
Symbol 631 GraphicUsed by:644
Symbol 632 TextUses:68Used by:644
Symbol 633 TextUses:68Used by:644
Symbol 634 TextUses:68Used by:644
Symbol 635 GraphicUsed by:636
Symbol 636 ButtonUses:635Used by:644
Symbol 637 TextUses:68Used by:644
Symbol 638 TextUses:68Used by:644
Symbol 639 TextUses:68Used by:644
Symbol 640 TextUses:68Used by:644
Symbol 641 TextUses:68Used by:644
Symbol 642 TextUses:68Used by:644
Symbol 643 TextUses:68Used by:644
Symbol 644 MovieClip {States.CreditsState}Uses:2 3 5 442 439 436 569 630 544 631 632 633 634 636 637 638 639 640 641 642 643 73 566 567
Symbol 645 GraphicUsed by:648 651 654 657 660 663 666 669 672 675 678 681 684
Symbol 646 TextUses:68Used by:648
Symbol 647 TextUses:68Used by:648
Symbol 648 MovieClip {TwentyHint}Uses:645 646 647
Symbol 649 TextUses:68Used by:651
Symbol 650 TextUses:68Used by:651
Symbol 651 MovieClip {TNTHint}Uses:645 649 650
Symbol 652 TextUses:68Used by:654
Symbol 653 TextUses:68Used by:654
Symbol 654 MovieClip {SilverCupHint}Uses:645 652 653
Symbol 655 TextUses:68Used by:657
Symbol 656 TextUses:68Used by:657
Symbol 657 MovieClip {SilverBombWithWingsHint}Uses:645 655 656
Symbol 658 TextUses:68Used by:660
Symbol 659 TextUses:68Used by:660
Symbol 660 MovieClip {HundredHint}Uses:645 658 659
Symbol 661 TextUses:68Used by:663
Symbol 662 TextUses:68Used by:663
Symbol 663 MovieClip {GoldGrenadeHint}Uses:645 661 662
Symbol 664 TextUses:68Used by:666
Symbol 665 TextUses:68Used by:666
Symbol 666 MovieClip {GoldCupHint}Uses:645 664 665
Symbol 667 TextUses:68Used by:669
Symbol 668 TextUses:68Used by:669
Symbol 669 MovieClip {GoldBombWithWingsHint}Uses:645 667 668
Symbol 670 TextUses:68Used by:672
Symbol 671 TextUses:68Used by:672
Symbol 672 MovieClip {FiftyHint}Uses:645 670 671
Symbol 673 TextUses:68Used by:675
Symbol 674 TextUses:68Used by:675
Symbol 675 MovieClip {DynamiteHint}Uses:645 673 674
Symbol 676 TextUses:68Used by:678
Symbol 677 TextUses:68Used by:678
Symbol 678 MovieClip {CrownHint}Uses:645 676 677
Symbol 679 TextUses:68Used by:681
Symbol 680 TextUses:68Used by:681
Symbol 681 MovieClip {BronseCupHint}Uses:645 679 680
Symbol 682 TextUses:68Used by:684
Symbol 683 TextUses:68Used by:684
Symbol 684 MovieClip {BronsebombWithWingsHint}Uses:645 682 683
Symbol 685 GraphicUsed by:686
Symbol 686 MovieClipUses:685Used by:736
Symbol 687 GraphicUsed by:688
Symbol 688 MovieClipUses:687Used by:736
Symbol 689 GraphicUsed by:692 695 698 701 702 703 719 728
Symbol 690 GraphicUsed by:691
Symbol 691 MovieClipUses:690Used by:692
Symbol 692 MovieClip {GoldCup}Uses:689 691Used by:736 741
Symbol 693 GraphicUsed by:694
Symbol 694 MovieClipUses:693Used by:695
Symbol 695 MovieClip {BronseCup}Uses:689 694Used by:736 741
Symbol 696 GraphicUsed by:697
Symbol 697 MovieClipUses:696Used by:698
Symbol 698 MovieClip {SilverCup}Uses:689 697Used by:736 741
Symbol 699 GraphicUsed by:700
Symbol 700 MovieClipUses:699Used by:701 702 703
Symbol 701 MovieClip {GoldBombWithWings}Uses:689 700Used by:736 741
Symbol 702 MovieClip {SilverBombWithWings}Uses:689 700Used by:736 741
Symbol 703 MovieClip {BronseBombWithWings}Uses:689 700Used by:736 741
Symbol 704 GraphicUsed by:705
Symbol 705 MovieClip {GoldGrenade}Uses:704Used by:736 741
Symbol 706 GraphicUsed by:710
Symbol 707 GraphicUsed by:708
Symbol 708 MovieClipUses:707Used by:710
Symbol 709 GraphicUsed by:710
Symbol 710 MovieClip {TNT}Uses:706 708 709Used by:736 741
Symbol 711 GraphicUsed by:715
Symbol 712 GraphicUsed by:713
Symbol 713 MovieClipUses:712Used by:715
Symbol 714 GraphicUsed by:715
Symbol 715 MovieClip {Dynamite}Uses:711 713 714Used by:736 741
Symbol 716 GraphicUsed by:717
Symbol 717 MovieClipUses:716Used by:719
Symbol 718 GraphicUsed by:719
Symbol 719 MovieClip {Twenty}Uses:689 717 718Used by:736 741
Symbol 720 GraphicUsed by:724
Symbol 721 GraphicUsed by:722
Symbol 722 MovieClipUses:721Used by:724
Symbol 723 GraphicUsed by:724
Symbol 724 MovieClip {Fifty}Uses:720 722 723Used by:736 741
Symbol 725 GraphicUsed by:726
Symbol 726 MovieClipUses:725Used by:728
Symbol 727 GraphicUsed by:728
Symbol 728 MovieClip {Hundred}Uses:689 726 727Used by:736 741
Symbol 729 GraphicUsed by:733
Symbol 730 GraphicUsed by:731
Symbol 731 MovieClipUses:730Used by:733
Symbol 732 GraphicUsed by:733
Symbol 733 MovieClip {Crown}Uses:729 731 732Used by:736 741
Symbol 734 GraphicUsed by:735
Symbol 735 MovieClipUses:734Used by:736
Symbol 736 MovieClip {States.AchievementsState}Uses:2 3 5 442 439 436 569 686 688 692 695 698 701 702 703 705 710 715 719 724 728 733 544 735 566 567
Symbol 737 GraphicUsed by:746
Symbol 738 GraphicUsed by:739
Symbol 739 MovieClipUses:738Used by:746
Symbol 740 EditableTextUses:68Used by:746
Symbol 741 MovieClip {Shotfirer_fla.allAchiev_288}Uses:719 724 728 715 710 705 695 698 692 703 702 701 733Used by:746
Symbol 742 TextUses:68Used by:744
Symbol 743 TextUses:68Used by:744
Symbol 744 ButtonUses:84 742 743 83Used by:745
Symbol 745 MovieClipUses:744Used by:746
Symbol 746 MovieClipUses:737 739 740 741 745Used by:747
Symbol 747 MovieClip {NewAchievementStateView}Uses:746 170
Symbol 748 EditableTextUses:68Used by:749
Symbol 749 MovieClip {PointsClip}Uses:748
Symbol 750 GraphicUsed by:751
Symbol 751 MovieClip {GlassParticleClip}Uses:750
Symbol 752 GraphicUsed by:753
Symbol 753 MovieClipUses:752Used by:764 1059
Symbol 754 GraphicUsed by:755
Symbol 755 MovieClipUses:754Used by:764 1059
Symbol 756 GraphicUsed by:757
Symbol 757 MovieClipUses:756Used by:764 1059
Symbol 758 GraphicUsed by:759
Symbol 759 MovieClipUses:758Used by:764 1059
Symbol 760 GraphicUsed by:764 1059
Symbol 761 GraphicUsed by:764 1059
Symbol 762 GraphicUsed by:764 1059
Symbol 763 GraphicUsed by:764
Symbol 764 MovieClip {BomjSurprise}Uses:753 755 757 759 760 761 762 763
Symbol 765 GraphicUsed by:770
Symbol 766 GraphicUsed by:770
Symbol 767 GraphicUsed by:770
Symbol 768 GraphicUsed by:770
Symbol 769 GraphicUsed by:770
Symbol 770 MovieClip {Leg_0}Uses:765 766 767 768 769Used by:795 855
Symbol 771 GraphicUsed by:776
Symbol 772 GraphicUsed by:773
Symbol 773 MovieClip {DirectionMarker}Uses:772Used by:776 865 913 931 966 981 1047
Symbol 774 GraphicUsed by:776
Symbol 775 GraphicUsed by:776
Symbol 776 MovieClip {Torso_0}Uses:771 773 774 775Used by:795 855
Symbol 777 GraphicUsed by:786
Symbol 778 GraphicUsed by:786
Symbol 779 GraphicUsed by:781 783
Symbol 780 GraphicUsed by:781
Symbol 781 MovieClip {Shotfirer_fla.EyeRight_106}Uses:779 780Used by:786
Symbol 782 GraphicUsed by:783
Symbol 783 MovieClip {Shotfirer_fla.EyeLeft_107}Uses:779 782Used by:786 1035
Symbol 784 GraphicUsed by:786
Symbol 785 GraphicUsed by:786
Symbol 786 MovieClip {Face_0}Uses:777 778 781 783 784 785Used by:795 855
Symbol 787 GraphicUsed by:790
Symbol 788 GraphicUsed by:790
Symbol 789 GraphicUsed by:790
Symbol 790 MovieClip {LeftHand_0}Uses:787 788 789Used by:795 855
Symbol 791 GraphicUsed by:794
Symbol 792 GraphicUsed by:794
Symbol 793 GraphicUsed by:794
Symbol 794 MovieClip {RightHand_0}Uses:791 792 793Used by:795 855
Symbol 795 MovieClip {States.PlayState.HumanTemplate}Uses:770 776 786 790 794 513
Symbol 796 MovieClip {Bomb1Shape}Uses:267 513
Symbol 797 GraphicUsed by:798
Symbol 798 MovieClip {BloodPoint0}Uses:797
Symbol 799 GraphicUsed by:800
Symbol 800 MovieClip {BloodBlob0}Uses:799
Symbol 801 GraphicUsed by:804
Symbol 802 GraphicUsed by:803
Symbol 803 MovieClipUses:802Used by:804 899 948 1016 1062 1080 1105 1137
Symbol 804 MovieClip {SteelBlock3}Uses:801 803
Symbol 805 GraphicUsed by:806
Symbol 806 MovieClip {ConcreteBlock4}Uses:805
Symbol 807 GraphicUsed by:808
Symbol 808 MovieClip {ConcreteBlock3}Uses:807
Symbol 809 GraphicUsed by:810
Symbol 810 MovieClip {ConcreteBlock2}Uses:809
Symbol 811 GraphicUsed by:812
Symbol 812 MovieClipUses:811Used by:813
Symbol 813 MovieClip {SingleBrick1}Uses:812
Symbol 814 GraphicUsed by:815
Symbol 815 MovieClipUses:814Used by:816
Symbol 816 MovieClip {SingleBrick0}Uses:815
Symbol 817 GraphicUsed by:818
Symbol 818 MovieClipUses:817Used by:819
Symbol 819 MovieClipUses:818Used by:833
Symbol 820 GraphicUsed by:833
Symbol 821 GraphicUsed by:831
Symbol 822 GraphicUsed by:823
Symbol 823 MovieClipUses:822Used by:831
Symbol 824 GraphicUsed by:831
Symbol 825 GraphicUsed by:831
Symbol 826 GraphicUsed by:831
Symbol 827 GraphicUsed by:831
Symbol 828 GraphicUsed by:831
Symbol 829 GraphicUsed by:831
Symbol 830 GraphicUsed by:831
Symbol 831 MovieClip {Shotfirer_fla.SunEmotion_73}Uses:821 823 824 825 826 827 828 829 830Used by:833
Symbol 832 GraphicUsed by:833
Symbol 833 MovieClip {States.PlayState.Sun}Uses:819 820 831 832Used by:886 998 1017 1053 1058 1063 1066 1069 1070 1071 1078 1081 1089 1097 1101 1103 1109 1112 1116 1121 1122 1123 1124 1125 1127 1128 1129 1130 1131 1132 1133 1138 1139 1147
Symbol 834 GraphicUsed by:835
Symbol 835 MovieClipUses:834Used by:886 1066 1069 1078 1101 1112 1116 1123 1124 1128 1130
Symbol 836 GraphicUsed by:837
Symbol 837 MovieClipUses:836Used by:886 998 1053 1063 1066 1070 1071 1078 1089 1101 1125 1127 1128 1131 1138 1147
Symbol 838 GraphicUsed by:839
Symbol 839 MovieClipUses:838Used by:886 1017 1058 1063 1069 1071 1081 1089 1097 1101 1103 1121 1122 1123 1124 1127 1128 1129 1130 1139
Symbol 840 GraphicUsed by:841
Symbol 841 MovieClipUses:840Used by:886 998 1017 1058 1063 1066 1069 1071 1078 1081 1089 1097 1101 1103 1109 1121 1122 1123 1124 1127 1128 1129 1130 1132 1133 1139 1147
Symbol 842 GraphicUsed by:843
Symbol 843 MovieClipUses:842Used by:886 998 1053 1063 1066 1070 1071 1078 1089 1097 1101 1103 1112 1116 1122 1125 1127 1128 1129 1131 1138 1139 1147
Symbol 844 GraphicUsed by:846
Symbol 845 GraphicUsed by:846
Symbol 846 MovieClip {Flower}Uses:844 845Used by:886 998 1069 1081 1101 1109 1125 1147
Symbol 847 GraphicUsed by:848
Symbol 848 MovieClip {ConcreteTriangle}Uses:847 513Used by:886 1058 1066 1071 1097 1112
Symbol 849 GraphicUsed by:850
Symbol 850 MovieClip {ConcreteBlockBigHalfLong}Uses:849Used by:886 1069 1071 1097
Symbol 851 GraphicUsed by:852
Symbol 852 MovieClip {ConcreteBlockBigHalf}Uses:851Used by:886 1069 1071 1131
Symbol 853 GraphicUsed by:854
Symbol 854 MovieClip {ConcreteBlockBig}Uses:853Used by:886 1058 1066 1081 1097 1103 1125
Symbol 855 MovieClip {Pers0Marker}Uses:770 776 786 790 794 513Used by:886 998 1017 1053 1058 1066 1069 1070 1071 1078 1089 1097 1101 1109 1116 1122 1123 1124 1127 1129 1131 1132 1133 1138 1147
Symbol 856 GraphicUsed by:861
Symbol 857 GraphicUsed by:861
Symbol 858 GraphicUsed by:861
Symbol 859 GraphicUsed by:861
Symbol 860 GraphicUsed by:861
Symbol 861 MovieClip {Leg_5}Uses:856 857 858 859 860Used by:878
Symbol 862 GraphicUsed by:865
Symbol 863 GraphicUsed by:865
Symbol 864 GraphicUsed by:865
Symbol 865 MovieClip {Torso_5}Uses:862 773 863 864Used by:878
Symbol 866 GraphicUsed by:869
Symbol 867 GraphicUsed by:869
Symbol 868 GraphicUsed by:869
Symbol 869 MovieClip {Face_5}Uses:866 867 868Used by:878
Symbol 870 GraphicUsed by:873
Symbol 871 GraphicUsed by:873
Symbol 872 GraphicUsed by:873
Symbol 873 MovieClip {LeftHand_5}Uses:870 871 872Used by:878
Symbol 874 GraphicUsed by:877
Symbol 875 GraphicUsed by:877
Symbol 876 GraphicUsed by:877
Symbol 877 MovieClip {RightHand_5}Uses:874 875 876Used by:878
Symbol 878 MovieClip {Pers5Marker}Uses:861 865 869 873 877Used by:886 998 1017 1053 1066 1069 1071 1081 1089 1097 1101 1109 1116 1122 1123 1127 1128 1130 1133 1139
Symbol 879 GraphicUsed by:880
Symbol 880 MovieClipUses:879Used by:884 885 997 1052 1057 1060
Symbol 881 GraphicUsed by:882
Symbol 882 MovieClipUses:881Used by:884 885 997 1052 1057 1060
Symbol 883 GraphicUsed by:884 885 997 1052 1057 1060
Symbol 884 MovieClip {States.PlayState.Bomb1}Uses:267 880 882 513 302 883Used by:886 1071 1078 1103 1109 1122 1128 1129 1131 1132 1139 1147
Symbol 885 MovieClip {States.PlayState.Bomb2}Uses:275 880 882 513 302 883Used by:886 998 1017 1066 1071 1089 1097 1101 1103 1112 1123 1125 1128 1130 1138
Symbol 886 MovieClip {Level33}Uses:502 833 436 437 439 441 442 452 462 456 460 464 835 837 471 468 839 841 843 466 630 846 504 531 848 850 852 854 855 878 884 885
Symbol 887 GraphicUsed by:998 1147
Symbol 888 GraphicUsed by:889
Symbol 889 MovieClipUses:450 888Used by:998 1053 1058 1063 1069 1081 1112 1116 1124 1125 1127 1147
Symbol 890 GraphicUsed by:891
Symbol 891 MovieClipUses:890Used by:998 1017 1053 1109 1112 1116 1121 1125 1129 1132 1133 1139 1147
Symbol 892 GraphicUsed by:893
Symbol 893 MovieClipUses:892Used by:998 1101 1103 1121 1147
Symbol 894 GraphicUsed by:895
Symbol 895 MovieClipUses:894Used by:998 1053 1063 1070 1078 1103 1112 1121 1123 1139 1147
Symbol 896 GraphicUsed by:897
Symbol 897 MovieClipUses:896Used by:998 1089 1103 1127 1147
Symbol 898 GraphicUsed by:899
Symbol 899 MovieClip {SteelBlock2}Uses:898 803Used by:998 1130
Symbol 900 GraphicUsed by:905
Symbol 901 GraphicUsed by:905
Symbol 902 GraphicUsed by:905
Symbol 903 GraphicUsed by:905
Symbol 904 GraphicUsed by:905
Symbol 905 MovieClip {Leg_1}Uses:900 901 902 903 904Used by:922
Symbol 906 GraphicUsed by:909
Symbol 907 GraphicUsed by:909
Symbol 908 GraphicUsed by:909
Symbol 909 MovieClip {RightHand_1}Uses:906 907 908Used by:922
Symbol 910 GraphicUsed by:913 931
Symbol 911 GraphicUsed by:913
Symbol 912 GraphicUsed by:913
Symbol 913 MovieClip {Torso_1}Uses:910 773 911 912Used by:922
Symbol 914 GraphicUsed by:917
Symbol 915 GraphicUsed by:917
Symbol 916 GraphicUsed by:917
Symbol 917 MovieClip {LeftHand_1}Uses:914 915 916Used by:922
Symbol 918 GraphicUsed by:921
Symbol 919 GraphicUsed by:921
Symbol 920 GraphicUsed by:921
Symbol 921 MovieClip {Face_1}Uses:918 919 920Used by:922
Symbol 922 MovieClip {Pers1Marker}Uses:905 909 913 917 921Used by:998 1017 1053 1058 1063 1066 1070 1078 1097 1101 1116 1122 1123 1124 1127 1128 1129 1130 1133 1139
Symbol 923 GraphicUsed by:928
Symbol 924 GraphicUsed by:928
Symbol 925 GraphicUsed by:928
Symbol 926 GraphicUsed by:928
Symbol 927 GraphicUsed by:928
Symbol 928 MovieClip {Leg_2}Uses:923 924 925 926 927Used by:944
Symbol 929 GraphicUsed by:931
Symbol 930 GraphicUsed by:931
Symbol 931 MovieClip {Torso_2}Uses:910 773 929 930Used by:944
Symbol 932 GraphicUsed by:935
Symbol 933 GraphicUsed by:935
Symbol 934 GraphicUsed by:935
Symbol 935 MovieClip {RightHand_2}Uses:932 933 934Used by:944
Symbol 936 GraphicUsed by:939
Symbol 937 GraphicUsed by:939
Symbol 938 GraphicUsed by:939
Symbol 939 MovieClip {LeftHand_2}Uses:936 937 938Used by:944
Symbol 940 GraphicUsed by:943
Symbol 941 GraphicUsed by:943
Symbol 942 GraphicUsed by:943
Symbol 943 MovieClip {Face_2}Uses:940 941 942Used by:944
Symbol 944 MovieClip {Pers2Marker}Uses:928 931 935 939 943Used by:998 1053 1066 1078 1081 1101 1109 1112 1121 1122 1123 1124 1125 1127 1129 1130 1139
Symbol 945 GraphicUsed by:946
Symbol 946 MovieClip {ConcreteBlockBigTriangle}Uses:945 513Used by:998 1069 1071 1081 1097 1103 1125
Symbol 947 GraphicUsed by:948
Symbol 948 MovieClip {SteelBlock5}Uses:947 803Used by:998 1017 1066 1069 1070 1078 1112 1124 1128 1129 1132 1133 1147
Symbol 949 GraphicUsed by:954
Symbol 950 GraphicUsed by:954
Symbol 951 GraphicUsed by:954
Symbol 952 GraphicUsed by:954
Symbol 953 GraphicUsed by:954
Symbol 954 MovieClip {Leg_3}Uses:949 950 951 952 953Used by:971
Symbol 955 GraphicUsed by:958
Symbol 956 GraphicUsed by:958
Symbol 957 GraphicUsed by:958
Symbol 958 MovieClip {LeftHand_3}Uses:955 956 957Used by:971
Symbol 959 GraphicUsed by:962
Symbol 960 GraphicUsed by:962
Symbol 961 GraphicUsed by:962
Symbol 962 MovieClip {RightHand_3}Uses:959 960 961Used by:971
Symbol 963 GraphicUsed by:966
Symbol 964 GraphicUsed by:966
Symbol 965 GraphicUsed by:966
Symbol 966 MovieClip {Torso_3}Uses:963 773 964 965Used by:971
Symbol 967 GraphicUsed by:970
Symbol 968 GraphicUsed by:970
Symbol 969 GraphicUsed by:970
Symbol 970 MovieClip {Face_3}Uses:967 968 969Used by:971
Symbol 971 MovieClip {Pers3Marker}Uses:954 958 962 966 970Used by:998 1017 1053 1063 1066 1069 1070 1078 1081 1089 1097 1101 1109 1112 1116 1122 1123 1125 1127 1128 1130 1132
Symbol 972 GraphicUsed by:977
Symbol 973 GraphicUsed by:977
Symbol 974 GraphicUsed by:977
Symbol 975 GraphicUsed by:977
Symbol 976 GraphicUsed by:977
Symbol 977 MovieClip {Leg_4}Uses:972 973 974 975 976Used by:994
Symbol 978 GraphicUsed by:981
Symbol 979 GraphicUsed by:981
Symbol 980 GraphicUsed by:981
Symbol 981 MovieClip {Torso_4}Uses:978 773 979 980Used by:994
Symbol 982 GraphicUsed by:985
Symbol 983 GraphicUsed by:985
Symbol 984 GraphicUsed by:985
Symbol 985 MovieClip {Face_4}Uses:982 983 984Used by:994
Symbol 986 GraphicUsed by:989
Symbol 987 GraphicUsed by:989
Symbol 988 GraphicUsed by:989
Symbol 989 MovieClip {LeftHand_4}Uses:986 987 988Used by:994
Symbol 990 GraphicUsed by:993
Symbol 991 GraphicUsed by:993
Symbol 992 GraphicUsed by:993
Symbol 993 MovieClip {RightHand_4}Uses:990 991 992Used by:994
Symbol 994 MovieClip {Pers4Marker}Uses:977 981 985 989 993Used by:998 1017 1053 1058 1063 1070 1071 1081 1089 1101 1103 1109 1112 1116 1121 1122 1123 1125 1127 1129 1132 1139
Symbol 995 GraphicUsed by:996
Symbol 996 MovieClip {BombTrajectory}Uses:995Used by:997 1057
Symbol 997 MovieClip {States.PlayState.Bomb6}Uses:996 271 880 882 513 302 883Used by:998 1116 1122
Symbol 998 MovieClip {Level32}Uses:502 833 436 437 439 441 442 887 462 456 837 471 464 841 889 843 891 466 630 506 893 895 897 846 531 899 878 922 944 946 948 971 994 855 885 997
Symbol 999 GraphicUsed by:1002
Symbol 1000 GraphicUsed by:1001
Symbol 1001 MovieClipUses:1000Used by:1002 1135
Symbol 1002 MovieClip {SteelBlock10}Uses:999 1001Used by:1017
Symbol 1003 GraphicUsed by:1004
Symbol 1004 MovieClipUses:1003Used by:1017 1053 1089 1097 1101 1103 1133 1147
Symbol 1005 GraphicUsed by:1008
Symbol 1006 GraphicUsed by:1007
Symbol 1007 MovieClipUses:1006Used by:1008
Symbol 1008 MovieClip {SteelCircle}Uses:1005 1007Used by:1017 1058 1129
Symbol 1009 GraphicUsed by:1011
Symbol 1010 GraphicUsed by:1011
Symbol 1011 MovieClip {States.PlayState.DangerBarrel}Uses:1009 513 1010Used by:1017 1078 1109
Symbol 1012 GraphicUsed by:1013
Symbol 1013 MovieClipUses:1012Used by:1014
Symbol 1014 MovieClip {BrickBlock10}Uses:1013 513Used by:1017 1063 1070 1128
Symbol 1015 GraphicUsed by:1016
Symbol 1016 MovieClip {SteelBlock1}Uses:1015 803Used by:1017 1089 1101 1139
Symbol 1017 MovieClip {Level31}Uses:502 833 436 437 439 441 442 452 462 891 466 468 471 839 464 841 506 1004 525 531 922 994 948 1008 878 1011 1014 1002 1016 971 855 885
Symbol 1018 GraphicUsed by:1020
Symbol 1019 GraphicUsed by:1020
Symbol 1020 MovieClip {Lamp}Uses:1018 1019Used by:1053 1058 1078 1097 1109 1133
Symbol 1021 GraphicUsed by:1022
Symbol 1022 MovieClipUses:1021Used by:1053 1063 1078 1109 1112 1139
Symbol 1023 GraphicUsed by:1024
Symbol 1024 MovieClipUses:1023Used by:1025
Symbol 1025 MovieClip {BrickBlock7}Uses:1024 513Used by:1053 1058 1138
Symbol 1026 GraphicUsed by:1031
Symbol 1027 GraphicUsed by:1031
Symbol 1028 GraphicUsed by:1031
Symbol 1029 GraphicUsed by:1031
Symbol 1030 GraphicUsed by:1031
Symbol 1031 MovieClip {Leg_6}Uses:1026 1027 1028 1029 1030Used by:1048
Symbol 1032 GraphicUsed by:1035
Symbol 1033 GraphicUsed by:1035
Symbol 1034 GraphicUsed by:1035
Symbol 1035 MovieClip {Face_6}Uses:1032 783 1033 1034Used by:1048
Symbol 1036 GraphicUsed by:1039
Symbol 1037 GraphicUsed by:1039
Symbol 1038 GraphicUsed by:1039
Symbol 1039 MovieClip {LeftHand_6}Uses:1036 1037 1038Used by:1048
Symbol 1040 GraphicUsed by:1043
Symbol 1041 GraphicUsed by:1043
Symbol 1042 GraphicUsed by:1043
Symbol 1043 MovieClip {RightHand_6}Uses:1040 1041 1042Used by:1048
Symbol 1044 GraphicUsed by:1047
Symbol 1045 GraphicUsed by:1047
Symbol 1046 GraphicUsed by:1047
Symbol 1047 MovieClip {Torso_6}Uses:1044 773 1045 1046Used by:1048
Symbol 1048 MovieClip {Pers6Marker}Uses:1031 1035 1039 1043 1047Used by:1053 1058 1063 1066 1069 1071 1078 1081 1101 1109 1116 1121 1122 1123 1124 1127 1130 1132 1133 1138
Symbol 1049 GraphicUsed by:1050
Symbol 1050 MovieClipUses:1049Used by:1051
Symbol 1051 MovieClip {BrickBlock1}Uses:1050 513Used by:1053 1116 1121 1123 1128 1129 1139
Symbol 1052 MovieClip {States.PlayState.Bomb4}Uses:277 880 882 513 302 883Used by:1053 1063 1069 1081 1124
Symbol 1053 MovieClip {Level30}Uses:502 833 436 437 439 441 442 464 452 462 891 837 471 466 889 468 843 630 1020 515 522 1022 1004 895 531 944 994 922 971 1025 855 1048 878 1051 1052
Symbol 1054 GraphicUsed by:1055
Symbol 1055 MovieClipUses:1054Used by:1056
Symbol 1056 MovieClip {BrickBlock8}Uses:1055 513Used by:1058 1128 1138
Symbol 1057 MovieClip {States.PlayState.Bomb5}Uses:996 273 880 882 513 302 883Used by:1058 1078 1109 1116 1127 1133
Symbol 1058 MovieClip {Level29}Uses:502 833 436 437 439 441 442 452 456 458 460 468 471 839 841 889 464 1020 531 854 994 1008 1025 848 1048 922 855 1056 1057
Symbol 1059 MovieClip {BomjMarker}Uses:753 755 757 759 760 761 762Used by:1063 1070 1101 1103 1112 1121 1123 1131 1139
Symbol 1060 MovieClip {States.PlayState.Bomb3}Uses:269 880 882 513 302 883Used by:1063 1066 1069 1070 1081 1089 1101 1121 1123 1124 1125 1127
Symbol 1061 GraphicUsed by:1062
Symbol 1062 MovieClip {SteelBlock4}Uses:1061 803Used by:1063 1089
Symbol 1063 MovieClip {Level28}Uses:502 833 436 437 439 441 442 462 464 452 458 454 837 839 841 889 843 466 630 895 1022 510 1059 531 1060 1052 971 994 922 1048 1014 1062
Symbol 1064 GraphicUsed by:1065
Symbol 1065 MovieClip {ConcreteBlockBigLong}Uses:1064Used by:1066
Symbol 1066 MovieClip {Level27}Uses:502 833 436 437 439 441 442 531 452 464 450 458 460 454 837 843 835 841 466 462 854 1065 922 855 971 878 944 848 948 1048 1060 885
Symbol 1067 GraphicUsed by:1068
Symbol 1068 MovieClip {Roof}Uses:1067 513Used by:1069 1112 1130 1131 1133
Symbol 1069 MovieClip {Level26}Uses:502 833 436 437 439 441 442 462 464 835 454 471 839 841 889 468 466 630 525 515 517 519 846 531 946 855 852 850 971 1048 948 878 1068 1052 1060
Symbol 1070 MovieClip {Level25}Uses:502 833 436 437 439 441 442 452 450 462 456 458 460 464 466 471 468 843 837 630 895 1059 504 506 515 528 531 1060 971 922 948 1014 855 994
Symbol 1071 MovieClip {Level24}Uses:502 833 436 437 439 441 442 452 450 456 458 460 462 837 454 839 843 466 841 630 515 504 531 850 848 946 852 1048 994 855 878 884 885
Symbol 1072 GraphicUsed by:1073
Symbol 1073 MovieClipUses:1072Used by:1074
Symbol 1074 MovieClip {BrickBlock6}Uses:1073 513Used by:1078 1129
Symbol 1075 GraphicUsed by:1076
Symbol 1076 MovieClipUses:1075Used by:1077
Symbol 1077 MovieClip {BrickBlock4}Uses:1076 513Used by:1078 1081 1089 1109 1112 1127 1147
Symbol 1078 MovieClip {Level23}Uses:502 833 436 437 439 441 442 452 464 450 458 460 454 837 843 835 841 466 462 630 1020 522 1022 895 531 1057 884 971 922 855 944 1011 948 1074 1077 1048
Symbol 1079 GraphicUsed by:1080
Symbol 1080 MovieClip {SteelBlock7}Uses:1079 803Used by:1081 1089 1121 1122 1132 1138 1147
Symbol 1081 MovieClip {Level22}Uses:502 833 436 437 439 441 442 452 456 458 460 468 471 839 841 889 464 531 846 854 946 944 971 994 878 1048 1080 1077 1052 1060
Symbol 1082 GraphicUsed by:1083
Symbol 1083 MovieClipUses:1082Used by:1084
Symbol 1084 MovieClip {BrickBlock3}Uses:1083 513Used by:1089
Symbol 1085 GraphicUsed by:1089
Symbol 1086 GraphicUsed by:1087
Symbol 1087 MovieClipUses:1086Used by:1088
Symbol 1088 MovieClip {BrickBlock2}Uses:1087 513Used by:1089 1101 1116 1127
Symbol 1089 MovieClip {Level21}Uses:502 833 436 437 439 441 442 1060 885 452 450 456 458 460 462 837 454 839 843 466 841 531 897 525 1004 630 1085 971 878 994 1062 1016 855 1077 1088 1084 1080
Symbol 1090 GraphicUsed by:1096
Symbol 1091 GraphicUsed by:1095
Symbol 1092 GraphicUsed by:1095
Symbol 1093 GraphicUsed by:1095
Symbol 1094 GraphicUsed by:1095
Symbol 1095 MovieClipUses:1091 1092 1093 1094Used by:1096
Symbol 1096 MovieClip {Hydrant}Uses:1090 1095Used by:1097 1101 1122 1124 1127 1130 1131 1132 1133 1138
Symbol 1097 MovieClip {Level20}Uses:502 833 436 437 439 441 442 452 450 462 456 458 460 839 464 466 843 841 454 468 630 1004 1020 1096 531 850 848 855 971 922 946 878 854 885
Symbol 1098 GraphicUsed by:1100
Symbol 1099 GraphicUsed by:1100
Symbol 1100 MovieClip {Telephone}Uses:1098 1099Used by:1101 1112 1123 1130
Symbol 1101 MovieClip {Level19}Uses:502 833 436 437 439 441 442 452 462 456 460 464 835 837 471 468 839 841 843 466 531 1096 893 1059 846 1004 1100 630 885 1060 944 994 1088 922 1048 971 855 878 1016
Symbol 1102 GraphicUsed by:1103
Symbol 1103 MovieClip {Level18}Uses:502 833 436 437 439 441 442 464 452 450 462 454 468 843 839 841 466 531 893 897 525 895 1059 1004 630 1102 854 946 994 885 884
Symbol 1104 GraphicUsed by:1105
Symbol 1105 MovieClip {SteelBlock6}Uses:1104 803Used by:1109 1121
Symbol 1106 GraphicUsed by:1107
Symbol 1107 MovieClipUses:1106Used by:1108
Symbol 1108 MovieClip {BrickBlock9}Uses:1107 513Used by:1109 1124 1128 1132
Symbol 1109 MovieClip {Level17}Uses:502 833 436 437 439 441 442 884 1057 452 450 462 456 458 460 841 891 471 468 1020 846 517 519 1022 531 630 878 994 855 1105 1011 1108 971 1048 944 1077
Symbol 1110 GraphicUsed by:1111
Symbol 1111 MovieClip {ConcreteBlock1}Uses:1110Used by:1112
Symbol 1112 MovieClip {Level16}Uses:502 833 436 437 439 441 442 464 452 462 835 454 889 468 843 891 466 630 517 519 1022 1100 1059 895 531 944 971 994 1068 1111 1077 948 848 885
Symbol 1113 GraphicUsed by:1114
Symbol 1114 MovieClipUses:1113Used by:1115
Symbol 1115 MovieClip {BrickBlock5}Uses:1114 513Used by:1116 1121 1122
Symbol 1116 MovieClip {Level15}Uses:502 833 436 437 439 441 442 464 452 462 835 454 889 468 843 891 466 531 1057 997 994 878 855 1048 1051 1088 1115 922 971
Symbol 1117 GraphicUsed by:1118
Symbol 1118 MovieClipUses:1117Used by:1121 1122 1124 1132
Symbol 1119 GraphicUsed by:1120
Symbol 1120 MovieClipUses:1119Used by:1121 1122 1124 1132
Symbol 1121 MovieClip {Level14}Uses:502 833 436 437 439 441 442 1060 452 462 891 466 468 471 839 464 841 1118 1120 893 895 1059 525 522 517 519 531 1051 994 1105 1115 944 1080 1048 630
Symbol 1122 MovieClip {Level13}Uses:502 833 436 437 439 441 442 884 997 452 450 462 456 458 460 839 464 466 843 841 454 468 1120 1118 1096 504 531 878 1048 994 971 855 1115 922 944 1080
Symbol 1123 MovieClip {Level12}Uses:502 833 436 437 439 441 442 885 1060 462 452 460 464 835 454 471 839 841 466 504 1100 1059 895 510 531 630 1051 922 944 971 878 994 1048 855
Symbol 1124 MovieClip {Level11}Uses:502 833 436 437 439 441 442 462 464 835 454 471 839 841 889 468 466 630 1120 1118 1096 504 515 531 855 922 944 948 1108 1048 1060 1052
Symbol 1125 MovieClip {Level10}Uses:502 833 436 437 439 441 442 464 452 462 891 837 471 466 889 468 843 531 630 519 517 846 854 946 944 971 994 885 1060
Symbol 1126 GraphicUsed by:1127
Symbol 1127 MovieClip {Level09}Uses:502 833 436 437 439 441 442 462 464 452 458 454 837 839 841 889 843 466 630 897 519 517 522 1096 1126 531 1057 1060 1048 1077 994 1088 855 922 971 878 944
Symbol 1128 MovieClip {Level08}Uses:502 833 436 437 439 441 442 452 462 456 460 464 835 837 471 468 839 841 843 466 630 515 525 531 884 885 878 948 922 1014 1056 1108 971 1051
Symbol 1129 MovieClip {Level07}Uses:502 833 436 437 439 441 442 464 450 452 462 891 841 466 468 843 839 630 525 515 517 519 531 994 948 1008 855 1051 922 944 1074 884
Symbol 1130 MovieClip {Level06}Uses:502 833 436 437 439 441 442 462 452 460 464 835 454 471 839 841 466 630 1100 504 1096 531 1068 899 1048 944 971 922 878 885
Symbol 1131 MovieClip {Level05}Uses:502 833 436 437 439 441 442 452 450 462 456 458 460 464 466 471 468 843 837 506 630 515 528 1096 1059 531 855 1068 852 884
Symbol 1132 MovieClip {Level04}Uses:502 833 436 437 439 441 442 452 450 462 456 458 460 841 891 471 468 630 1118 1120 1096 531 884 855 971 1048 994 948 1080 1108
Symbol 1133 MovieClip {Level03}Uses:502 833 436 437 439 441 442 452 450 462 456 458 460 841 891 471 468 630 506 1004 1020 1096 515 531 1048 948 855 878 922 1068 1057
Symbol 1134 GraphicUsed by:1135
Symbol 1135 MovieClip {SteelBlock9}Uses:1134 1001Used by:1138
Symbol 1136 GraphicUsed by:1137
Symbol 1137 MovieClip {SteelBlock8}Uses:1136 803Used by:1138
Symbol 1138 MovieClip {Level02}Uses:502 833 436 437 439 441 442 885 452 450 462 456 458 460 464 466 471 468 843 837 1096 515 510 531 855 1080 1137 1025 1056 1135 1048
Symbol 1139 MovieClip {Level01}Uses:502 833 436 437 439 441 442 884 464 450 452 462 891 841 466 468 843 839 630 895 1022 510 1059 528 1051 531 922 1016 944 994 878
Symbol 1140 GraphicUsed by:1141
Symbol 1141 MovieClipUses:1140Used by:1142
Symbol 1142 MovieClipUses:1141Used by:1144 1146
Symbol 1143 TextUses:68Used by:1144
Symbol 1144 MovieClip {FirstStepArrow}Uses:1142 1143Used by:1147
Symbol 1145 TextUses:68Used by:1146
Symbol 1146 MovieClipUses:1142 1145Used by:1147
Symbol 1147 MovieClip {Level00}Uses:502 833 436 437 439 441 442 887 462 456 837 471 464 841 889 843 891 466 630 506 1004 893 895 897 846 528 531 855 948 1077 1080 884 1144 1146
Symbol 1148 TextUses:68Used by:1149
Symbol 1149 MovieClip {HideTips}Uses:1148
Symbol 1150 GraphicUsed by:1151 1157 1160
Symbol 1151 MovieClipUses:1150Used by:1154 1155 1156 1160
Symbol 1152 GraphicUsed by:1153
Symbol 1153 MovieClipUses:1152Used by:1154 1155 1156 1160
Symbol 1154 MovieClipUses:1151 1153Used by:1157
Symbol 1155 MovieClipUses:1151 1153Used by:1157
Symbol 1156 MovieClipUses:1151 1153Used by:1157
Symbol 1157 Button {SoundOn}Uses:1154 1155 1156 1150
Symbol 1158 GraphicUsed by:1160
Symbol 1159 GraphicUsed by:1160
Symbol 1160 Button {SoundOff}Uses:1151 1153 1158 1159 1150
Symbol 1161 GraphicUsed by:1163
Symbol 1162 GraphicUsed by:1163
Symbol 1163 MovieClip {LightCheckBox}Uses:369 1161 1162
Symbol 1164 BitmapUsed by:1165
Symbol 1165 GraphicUses:1164Used by:1194
Symbol 1166 BitmapUsed by:1167
Symbol 1167 GraphicUses:1166Used by:1194
Symbol 1168 BitmapUsed by:1169
Symbol 1169 GraphicUses:1168Used by:1194
Symbol 1170 BitmapUsed by:1171
Symbol 1171 GraphicUses:1170Used by:1194
Symbol 1172 BitmapUsed by:1173
Symbol 1173 GraphicUses:1172Used by:1194
Symbol 1174 BitmapUsed by:1175
Symbol 1175 GraphicUses:1174Used by:1194
Symbol 1176 BitmapUsed by:1177
Symbol 1177 GraphicUses:1176Used by:1194
Symbol 1178 BitmapUsed by:1179
Symbol 1179 GraphicUses:1178Used by:1194
Symbol 1180 BitmapUsed by:1181
Symbol 1181 GraphicUses:1180Used by:1194
Symbol 1182 BitmapUsed by:1183
Symbol 1183 GraphicUses:1182Used by:1194
Symbol 1184 BitmapUsed by:1185
Symbol 1185 GraphicUses:1184Used by:1194
Symbol 1186 BitmapUsed by:1187
Symbol 1187 GraphicUses:1186Used by:1194
Symbol 1188 BitmapUsed by:1189
Symbol 1189 GraphicUses:1188Used by:1194
Symbol 1190 BitmapUsed by:1191
Symbol 1191 GraphicUses:1190Used by:1194
Symbol 1192 BitmapUsed by:1193
Symbol 1193 GraphicUses:1192Used by:1194
Symbol 1194 MovieClip {LittleBoom}Uses:1165 1167 1169 1171 1173 1175 1177 1179 1181 1183 1185 1187 1189 1191 1193
Symbol 1195 BitmapUsed by:1196
Symbol 1196 GraphicUses:1195Used by:1255
Symbol 1197 BitmapUsed by:1198
Symbol 1198 GraphicUses:1197Used by:1255
Symbol 1199 BitmapUsed by:1200
Symbol 1200 GraphicUses:1199Used by:1255
Symbol 1201 BitmapUsed by:1202
Symbol 1202 GraphicUses:1201Used by:1255
Symbol 1203 BitmapUsed by:1204
Symbol 1204 GraphicUses:1203Used by:1255
Symbol 1205 BitmapUsed by:1206
Symbol 1206 GraphicUses:1205Used by:1255
Symbol 1207 BitmapUsed by:1208
Symbol 1208 GraphicUses:1207Used by:1255
Symbol 1209 BitmapUsed by:1210
Symbol 1210 GraphicUses:1209Used by:1255
Symbol 1211 BitmapUsed by:1212
Symbol 1212 GraphicUses:1211Used by:1255
Symbol 1213 BitmapUsed by:1214
Symbol 1214 GraphicUses:1213Used by:1255
Symbol 1215 BitmapUsed by:1216
Symbol 1216 GraphicUses:1215Used by:1255
Symbol 1217 BitmapUsed by:1218
Symbol 1218 GraphicUses:1217Used by:1255
Symbol 1219 BitmapUsed by:1220
Symbol 1220 GraphicUses:1219Used by:1255
Symbol 1221 BitmapUsed by:1222
Symbol 1222 GraphicUses:1221Used by:1255
Symbol 1223 BitmapUsed by:1224
Symbol 1224 GraphicUses:1223Used by:1255
Symbol 1225 BitmapUsed by:1226
Symbol 1226 GraphicUses:1225Used by:1255
Symbol 1227 BitmapUsed by:1228
Symbol 1228 GraphicUses:1227Used by:1255
Symbol 1229 BitmapUsed by:1230
Symbol 1230 GraphicUses:1229Used by:1255
Symbol 1231 BitmapUsed by:1232
Symbol 1232 GraphicUses:1231Used by:1255
Symbol 1233 BitmapUsed by:1234
Symbol 1234 GraphicUses:1233Used by:1255
Symbol 1235 BitmapUsed by:1236
Symbol 1236 GraphicUses:1235Used by:1255
Symbol 1237 BitmapUsed by:1238
Symbol 1238 GraphicUses:1237Used by:1255
Symbol 1239 BitmapUsed by:1240
Symbol 1240 GraphicUses:1239Used by:1255
Symbol 1241 BitmapUsed by:1242
Symbol 1242 GraphicUses:1241Used by:1255
Symbol 1243 BitmapUsed by:1244
Symbol 1244 GraphicUses:1243Used by:1255
Symbol 1245 BitmapUsed by:1246
Symbol 1246 GraphicUses:1245Used by:1255
Symbol 1247 BitmapUsed by:1248
Symbol 1248 GraphicUses:1247Used by:1255
Symbol 1249 BitmapUsed by:1250
Symbol 1250 GraphicUses:1249Used by:1255
Symbol 1251 BitmapUsed by:1252
Symbol 1252 GraphicUses:1251Used by:1255
Symbol 1253 BitmapUsed by:1254
Symbol 1254 GraphicUses:1253Used by:1255
Symbol 1255 MovieClip {FountainBoom}Uses:1196 1198 1200 1202 1204 1206 1208 1210 1212 1214 1216 1218 1220 1222 1224 1226 1228 1230 1232 1234 1236 1238 1240 1242 1244 1246 1248 1250 1252 1254
Symbol 1256 BitmapUsed by:1257
Symbol 1257 GraphicUses:1256Used by:1294
Symbol 1258 BitmapUsed by:1259
Symbol 1259 GraphicUses:1258Used by:1294
Symbol 1260 BitmapUsed by:1261
Symbol 1261 GraphicUses:1260Used by:1294
Symbol 1262 BitmapUsed by:1263
Symbol 1263 GraphicUses:1262Used by:1294
Symbol 1264 BitmapUsed by:1265
Symbol 1265 GraphicUses:1264Used by:1294
Symbol 1266 BitmapUsed by:1267
Symbol 1267 GraphicUses:1266Used by:1294
Symbol 1268 BitmapUsed by:1269
Symbol 1269 GraphicUses:1268Used by:1294
Symbol 1270 BitmapUsed by:1271
Symbol 1271 GraphicUses:1270Used by:1294
Symbol 1272 BitmapUsed by:1273
Symbol 1273 GraphicUses:1272Used by:1294
Symbol 1274 BitmapUsed by:1275
Symbol 1275 GraphicUses:1274Used by:1294
Symbol 1276 BitmapUsed by:1277
Symbol 1277 GraphicUses:1276Used by:1294
Symbol 1278 BitmapUsed by:1279
Symbol 1279 GraphicUses:1278Used by:1294
Symbol 1280 BitmapUsed by:1281
Symbol 1281 GraphicUses:1280Used by:1294
Symbol 1282 BitmapUsed by:1283
Symbol 1283 GraphicUses:1282Used by:1294
Symbol 1284 BitmapUsed by:1285
Symbol 1285 GraphicUses:1284Used by:1294
Symbol 1286 BitmapUsed by:1287
Symbol 1287 GraphicUses:1286Used by:1294
Symbol 1288 BitmapUsed by:1289
Symbol 1289 GraphicUses:1288Used by:1294
Symbol 1290 BitmapUsed by:1291
Symbol 1291 GraphicUses:1290Used by:1294
Symbol 1292 BitmapUsed by:1293
Symbol 1293 GraphicUses:1292Used by:1294
Symbol 1294 MovieClip {Boom3}Uses:1257 1259 1261 1263 1265 1267 1269 1271 1273 1275 1277 1279 1281 1283 1285 1287 1289 1291 1293
Symbol 1295 BitmapUsed by:1296
Symbol 1296 GraphicUses:1295Used by:1357
Symbol 1297 BitmapUsed by:1298
Symbol 1298 GraphicUses:1297Used by:1357
Symbol 1299 BitmapUsed by:1300
Symbol 1300 GraphicUses:1299Used by:1357
Symbol 1301 BitmapUsed by:1302
Symbol 1302 GraphicUses:1301Used by:1357
Symbol 1303 BitmapUsed by:1304
Symbol 1304 GraphicUses:1303Used by:1357
Symbol 1305 BitmapUsed by:1306
Symbol 1306 GraphicUses:1305Used by:1357
Symbol 1307 BitmapUsed by:1308
Symbol 1308 GraphicUses:1307Used by:1357
Symbol 1309 BitmapUsed by:1310
Symbol 1310 GraphicUses:1309Used by:1357
Symbol 1311 BitmapUsed by:1312
Symbol 1312 GraphicUses:1311Used by:1357
Symbol 1313 BitmapUsed by:1314
Symbol 1314 GraphicUses:1313Used by:1357
Symbol 1315 BitmapUsed by:1316
Symbol 1316 GraphicUses:1315Used by:1357
Symbol 1317 BitmapUsed by:1318
Symbol 1318 GraphicUses:1317Used by:1357
Symbol 1319 BitmapUsed by:1320
Symbol 1320 GraphicUses:1319Used by:1357
Symbol 1321 BitmapUsed by:1322
Symbol 1322 GraphicUses:1321Used by:1357
Symbol 1323 BitmapUsed by:1324
Symbol 1324 GraphicUses:1323Used by:1357
Symbol 1325 BitmapUsed by:1326
Symbol 1326 GraphicUses:1325Used by:1357
Symbol 1327 BitmapUsed by:1328
Symbol 1328 GraphicUses:1327Used by:1357
Symbol 1329 BitmapUsed by:1330
Symbol 1330 GraphicUses:1329Used by:1357
Symbol 1331 BitmapUsed by:1332
Symbol 1332 GraphicUses:1331Used by:1357
Symbol 1333 BitmapUsed by:1334
Symbol 1334 GraphicUses:1333Used by:1357
Symbol 1335 BitmapUsed by:1336
Symbol 1336 GraphicUses:1335Used by:1357
Symbol 1337 BitmapUsed by:1338
Symbol 1338 GraphicUses:1337Used by:1357
Symbol 1339 BitmapUsed by:1340
Symbol 1340 GraphicUses:1339Used by:1357
Symbol 1341 BitmapUsed by:1342
Symbol 1342 GraphicUses:1341Used by:1357
Symbol 1343 BitmapUsed by:1344
Symbol 1344 GraphicUses:1343Used by:1357
Symbol 1345 BitmapUsed by:1346
Symbol 1346 GraphicUses:1345Used by:1357
Symbol 1347 BitmapUsed by:1348
Symbol 1348 GraphicUses:1347Used by:1357
Symbol 1349 BitmapUsed by:1350
Symbol 1350 GraphicUses:1349Used by:1357
Symbol 1351 BitmapUsed by:1352
Symbol 1352 GraphicUses:1351Used by:1357
Symbol 1353 BitmapUsed by:1354
Symbol 1354 GraphicUses:1353Used by:1357
Symbol 1355 BitmapUsed by:1356
Symbol 1356 GraphicUses:1355Used by:1357
Symbol 1357 MovieClip {Boom2}Uses:1296 1298 1300 1302 1304 1306 1308 1310 1312 1314 1316 1318 1320 1322 1324 1326 1328 1330 1332 1334 1336 1338 1340 1342 1344 1346 1348 1350 1352 1354 1356
Symbol 1358 BitmapUsed by:1359
Symbol 1359 GraphicUses:1358Used by:1400
Symbol 1360 BitmapUsed by:1361
Symbol 1361 GraphicUses:1360Used by:1400
Symbol 1362 BitmapUsed by:1363
Symbol 1363 GraphicUses:1362Used by:1400
Symbol 1364 BitmapUsed by:1365
Symbol 1365 GraphicUses:1364Used by:1400
Symbol 1366 BitmapUsed by:1367
Symbol 1367 GraphicUses:1366Used by:1400
Symbol 1368 BitmapUsed by:1369
Symbol 1369 GraphicUses:1368Used by:1400
Symbol 1370 BitmapUsed by:1371
Symbol 1371 GraphicUses:1370Used by:1400
Symbol 1372 BitmapUsed by:1373
Symbol 1373 GraphicUses:1372Used by:1400
Symbol 1374 BitmapUsed by:1375
Symbol 1375 GraphicUses:1374Used by:1400
Symbol 1376 BitmapUsed by:1377
Symbol 1377 GraphicUses:1376Used by:1400
Symbol 1378 BitmapUsed by:1379
Symbol 1379 GraphicUses:1378Used by:1400
Symbol 1380 BitmapUsed by:1381
Symbol 1381 GraphicUses:1380Used by:1400
Symbol 1382 BitmapUsed by:1383
Symbol 1383 GraphicUses:1382Used by:1400
Symbol 1384 BitmapUsed by:1385
Symbol 1385 GraphicUses:1384Used by:1400
Symbol 1386 BitmapUsed by:1387
Symbol 1387 GraphicUses:1386Used by:1400
Symbol 1388 BitmapUsed by:1389
Symbol 1389 GraphicUses:1388Used by:1400
Symbol 1390 BitmapUsed by:1391
Symbol 1391 GraphicUses:1390Used by:1400
Symbol 1392 BitmapUsed by:1393
Symbol 1393 GraphicUses:1392Used by:1400
Symbol 1394 BitmapUsed by:1395
Symbol 1395 GraphicUses:1394Used by:1400
Symbol 1396 BitmapUsed by:1397
Symbol 1397 GraphicUses:1396Used by:1400
Symbol 1398 BitmapUsed by:1399
Symbol 1399 GraphicUses:1398Used by:1400
Symbol 1400 MovieClip {Boom1}Uses:1359 1361 1363 1365 1367 1369 1371 1373 1375 1377 1379 1381 1383 1385 1387 1389 1391 1393 1395 1397 1399
Symbol 1401 BitmapUsed by:1402
Symbol 1402 GraphicUses:1401Used by:1467
Symbol 1403 BitmapUsed by:1404
Symbol 1404 GraphicUses:1403Used by:1467
Symbol 1405 BitmapUsed by:1406
Symbol 1406 GraphicUses:1405Used by:1467
Symbol 1407 BitmapUsed by:1408
Symbol 1408 GraphicUses:1407Used by:1467
Symbol 1409 BitmapUsed by:1410
Symbol 1410 GraphicUses:1409Used by:1467
Symbol 1411 BitmapUsed by:1412
Symbol 1412 GraphicUses:1411Used by:1467
Symbol 1413 BitmapUsed by:1414
Symbol 1414 GraphicUses:1413Used by:1467
Symbol 1415 BitmapUsed by:1416
Symbol 1416 GraphicUses:1415Used by:1467
Symbol 1417 BitmapUsed by:1418
Symbol 1418 GraphicUses:1417Used by:1467
Symbol 1419 BitmapUsed by:1420
Symbol 1420 GraphicUses:1419Used by:1467
Symbol 1421 BitmapUsed by:1422
Symbol 1422 GraphicUses:1421Used by:1467
Symbol 1423 BitmapUsed by:1424
Symbol 1424 GraphicUses:1423Used by:1467
Symbol 1425 BitmapUsed by:1426
Symbol 1426 GraphicUses:1425Used by:1467
Symbol 1427 BitmapUsed by:1428
Symbol 1428 GraphicUses:1427Used by:1467
Symbol 1429 BitmapUsed by:1430
Symbol 1430 GraphicUses:1429Used by:1467
Symbol 1431 BitmapUsed by:1432
Symbol 1432 GraphicUses:1431Used by:1467
Symbol 1433 BitmapUsed by:1434
Symbol 1434 GraphicUses:1433Used by:1467
Symbol 1435 BitmapUsed by:1436
Symbol 1436 GraphicUses:1435Used by:1467
Symbol 1437 BitmapUsed by:1438
Symbol 1438 GraphicUses:1437Used by:1467
Symbol 1439 BitmapUsed by:1440
Symbol 1440 GraphicUses:1439Used by:1467
Symbol 1441 BitmapUsed by:1442
Symbol 1442 GraphicUses:1441Used by:1467
Symbol 1443 BitmapUsed by:1444
Symbol 1444 GraphicUses:1443Used by:1467
Symbol 1445 BitmapUsed by:1446
Symbol 1446 GraphicUses:1445Used by:1467
Symbol 1447 BitmapUsed by:1448
Symbol 1448 GraphicUses:1447Used by:1467
Symbol 1449 BitmapUsed by:1450
Symbol 1450 GraphicUses:1449Used by:1467
Symbol 1451 BitmapUsed by:1452
Symbol 1452 GraphicUses:1451Used by:1467
Symbol 1453 BitmapUsed by:1454
Symbol 1454 GraphicUses:1453Used by:1467
Symbol 1455 BitmapUsed by:1456
Symbol 1456 GraphicUses:1455Used by:1467
Symbol 1457 BitmapUsed by:1458
Symbol 1458 GraphicUses:1457Used by:1467
Symbol 1459 BitmapUsed by:1460
Symbol 1460 GraphicUses:1459Used by:1467
Symbol 1461 BitmapUsed by:1462
Symbol 1462 GraphicUses:1461Used by:1467
Symbol 1463 BitmapUsed by:1464
Symbol 1464 GraphicUses:1463Used by:1467
Symbol 1465 BitmapUsed by:1466
Symbol 1466 GraphicUses:1465Used by:1467
Symbol 1467 MovieClip {BigBoom}Uses:1402 1404 1406 1408 1410 1412 1414 1416 1418 1420 1422 1424 1426 1428 1430 1432 1434 1436 1438 1440 1442 1444 1446 1448 1450 1452 1454 1456 1458 1460 1462 1464 1466
Symbol 1468 GraphicUsed by:1469
Symbol 1469 MovieClipUses:1468Used by:1470
Symbol 1470 MovieClip {Awesome}Uses:1469

Instance Names

"m_preloaderClip"Frame 1Symbol 89 MovieClip {States.CurrentPreloaderState}
"m_placeholder"Symbol 28 MovieClip Frame 1Symbol 24 MovieClip
"m_baloon2"Symbol 89 MovieClip {States.CurrentPreloaderState} Frame 1Symbol 28 MovieClip
"m_baloon1"Symbol 89 MovieClip {States.CurrentPreloaderState} Frame 1Symbol 28 MovieClip
"m_loadingBar"Symbol 89 MovieClip {States.CurrentPreloaderState} Frame 1Symbol 67 MovieClip
"m_loadingLabel"Symbol 89 MovieClip {States.CurrentPreloaderState} Frame 1Symbol 69 EditableText
"m_logo"Symbol 89 MovieClip {States.CurrentPreloaderState} Frame 1Symbol 73 Button
"m_playButton"Symbol 89 MovieClip {States.CurrentPreloaderState} Frame 1Symbol 88 MovieClip {Shotfirer_fla.PreloaderPlayButton_41}
"m_buttonMenu"Symbol 152 MovieClip Frame 1Symbol 151 Button
"m_buttonMoreGames"Symbol 160 MovieClip Frame 1Symbol 159 Button
"m_buttonNext"Symbol 165 MovieClip Frame 1Symbol 164 Button
"m_level"Symbol 179 MovieClip Frame 1Symbol 142 EditableText
"m_bombsUsed"Symbol 179 MovieClip Frame 1Symbol 143 EditableText
"m_currentScore"Symbol 179 MovieClip Frame 1Symbol 144 EditableText
"m_bestScore"Symbol 179 MovieClip Frame 1Symbol 145 EditableText
"m_buttonMenu"Symbol 179 MovieClip Frame 1Symbol 152 MovieClip
"m_buttonMoreGames"Symbol 179 MovieClip Frame 1Symbol 160 MovieClip
"m_buttonNext"Symbol 179 MovieClip Frame 1Symbol 165 MovieClip
"m_bombsLeft"Symbol 179 MovieClip Frame 1Symbol 167 EditableText
"m_cup"Symbol 179 MovieClip Frame 1Symbol 178 MovieClip
"m_panel"Symbol 180 MovieClip Frame 1Symbol 179 MovieClip
"m_panel"Symbol 181 MovieClip {WinStateView} Frame 1Symbol 180 MovieClip
"m_buttonMenu"Symbol 200 MovieClip Frame 1Symbol 151 Button
"m_buttonHighScore"Symbol 201 MovieClip Frame 1Symbol 195 Button
"m_buttonSubmitScore"Symbol 201 MovieClip Frame 1Symbol 199 Button
"m_buttonMenu"Symbol 201 MovieClip Frame 1Symbol 200 MovieClip
"m_panel"Symbol 202 MovieClip Frame 1Symbol 201 MovieClip
"m_panel"Symbol 203 MovieClip Frame 1Symbol 202 MovieClip
"m_name"Symbol 210 MovieClip {SubmitScoreStateView} Frame 1Symbol 204 EditableText
"m_succes"Symbol 210 MovieClip {SubmitScoreStateView} Frame 1Symbol 206 MovieClip
"m_failed"Symbol 210 MovieClip {SubmitScoreStateView} Frame 1Symbol 208 MovieClip
"m_buttonYes"Symbol 251 MovieClip Frame 1Symbol 250 Button
"m_buttonNo"Symbol 255 MovieClip Frame 1Symbol 254 Button
"m_buttonYes"Symbol 256 MovieClip Frame 1Symbol 251 MovieClip
"m_buttonNo"Symbol 256 MovieClip Frame 1Symbol 255 MovieClip
"m_panel"Symbol 257 MovieClip Frame 1Symbol 256 MovieClip
"m_panel"Symbol 258 MovieClip {YesNoStateView} Frame 1Symbol 257 MovieClip
"m_bomb1"Symbol 308 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 280 Button
"m_bomb2"Symbol 308 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 282 Button
"m_bomb3"Symbol 308 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 284 Button
"m_bomb5"Symbol 308 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 286 Button
"m_bomb4"Symbol 308 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 287 Button
"m_bomb6"Symbol 308 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 289 Button
"m_bomb1Counter"Symbol 308 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 302 MovieClip {Shotfirer_fla.figures_119}
"m_bomb3Counter"Symbol 308 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 302 MovieClip {Shotfirer_fla.figures_119}
"m_bomb5Counter"Symbol 308 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 302 MovieClip {Shotfirer_fla.figures_119}
"m_bomb2Counter"Symbol 308 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 302 MovieClip {Shotfirer_fla.figures_119}
"m_bomb4Counter"Symbol 308 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 302 MovieClip {Shotfirer_fla.figures_119}
"m_bomb6Counter"Symbol 308 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 302 MovieClip {Shotfirer_fla.figures_119}
"m_bombIcon"Symbol 308 MovieClip {States.PlayState.BombsPanel} Frame 1Symbol 307 MovieClip {Shotfirer_fla.BombButton_434}
"m_buttonMenu"Symbol 337 MovieClip Frame 1Symbol 151 Button
"m_buttonRestart"Symbol 342 MovieClip Frame 1Symbol 341 Button
"m_topPanel"Symbol 354 MovieClip {PlayStateView} Frame 1Symbol 260 MovieClip
"m_bottomPanel"Symbol 354 MovieClip {PlayStateView} Frame 1Symbol 262 Button
"m_bombsPanel"Symbol 354 MovieClip {PlayStateView} Frame 1Symbol 308 MovieClip {States.PlayState.BombsPanel}
"m_score"Symbol 354 MovieClip {PlayStateView} Frame 1Symbol 309 EditableText
"m_level"Symbol 354 MovieClip {PlayStateView} Frame 1Symbol 310 EditableText
"m_buttonWalkthrough"Symbol 354 MovieClip {PlayStateView} Frame 1Symbol 315 Button
"m_buttonMoreGames"Symbol 354 MovieClip {PlayStateView} Frame 1Symbol 320 Button
"m_buttonBoom"Symbol 354 MovieClip {PlayStateView} Frame 1Symbol 330 Button
"m_killsLeft"Symbol 354 MovieClip {PlayStateView} Frame 1Symbol 331 EditableText
"m_lockedBomb"Symbol 354 MovieClip {PlayStateView} Frame 1Symbol 333 MovieClip
"m_lockedBoomButton"Symbol 354 MovieClip {PlayStateView} Frame 1Symbol 336 MovieClip
"m_buttonMenu"Symbol 354 MovieClip {PlayStateView} Frame 1Symbol 337 MovieClip
"m_buttonRestart"Symbol 354 MovieClip {PlayStateView} Frame 1Symbol 342 MovieClip
"m_timer"Symbol 354 MovieClip {PlayStateView} Frame 1Symbol 348 MovieClip {Shotfirer_fla.Symbol35_444}
"m_logo"Symbol 354 MovieClip {PlayStateView} Frame 1Symbol 352 Button
"m_fps"Symbol 354 MovieClip {PlayStateView} Frame 1Symbol 353 EditableText
"m_slider"Symbol 365 MovieClip {ScrollBar} Frame 1Symbol 364 MovieClip
"m_buttonResetGame"Symbol 378 MovieClip Frame 1Symbol 377 Button
"m_buttonOk"Symbol 382 MovieClip Frame 1Symbol 381 Button
"m_musicVolume"Symbol 383 MovieClip Frame 1Symbol 365 MovieClip {ScrollBar}
"m_checkBox"Symbol 383 MovieClip Frame 1Symbol 372 MovieClip {CheckBox}
"m_soundVolume"Symbol 383 MovieClip Frame 1Symbol 365 MovieClip {ScrollBar}
"m_buttonResetGame"Symbol 383 MovieClip Frame 1Symbol 378 MovieClip
"m_buttonOk"Symbol 383 MovieClip Frame 1Symbol 382 MovieClip
"m_panel"Symbol 384 MovieClip Frame 1Symbol 383 MovieClip
"m_panel"Symbol 385 MovieClip {OptionsStateView} Frame 1Symbol 384 MovieClip
"m_buttonCredits"Symbol 392 MovieClip Frame 1Symbol 391 Button
"m_wickEnd"Symbol 409 MovieClip {Shotfirer_fla.fitil_389} Frame 1Symbol 408 MovieClip
"m_wick"Symbol 411 MovieClip {MainMenuBomb} Frame 1Symbol 409 MovieClip {Shotfirer_fla.fitil_389}
"m_bomb"Symbol 422 MovieClip {MainMenuLettersClip} Frame 1Symbol 411 MovieClip {MainMenuBomb}
"m_buttonPlay"Symbol 478 MovieClip {Shotfirer_fla.MainMenuButtonAnim_413} Frame 1Symbol 87 Button
"m_buttonMoreGames"Symbol 478 MovieClip {Shotfirer_fla.MainMenuButtonAnim_413} Frame 1Symbol 159 Button
"m_buttonHighScore"Symbol 478 MovieClip {Shotfirer_fla.MainMenuButtonAnim_413} Frame 1Symbol 195 Button
"m_buttonOptions"Symbol 478 MovieClip {Shotfirer_fla.MainMenuButtonAnim_413} Frame 1Symbol 477 Button
"m_shelf"Symbol 479 MovieClip {States.MainMenuState} Frame 1Symbol 394 MovieClip
"m_lettersClip"Symbol 479 MovieClip {States.MainMenuState} Frame 1Symbol 422 MovieClip {MainMenuLettersClip}
"m_wall"Symbol 479 MovieClip {States.MainMenuState} Frame 1Symbol 423 MovieClip
"m_banner1"Symbol 479 MovieClip {States.MainMenuState} Frame 1Symbol 15 Button {Banner1}
"m_banner2"Symbol 479 MovieClip {States.MainMenuState} Frame 1Symbol 21 Button {Banner2}
"m_logo"Symbol 479 MovieClip {States.MainMenuState} Frame 1Symbol 73 Button
"m_hostThisGame"Symbol 479 MovieClip {States.MainMenuState} Frame 1Symbol 426 Button
"m_cloudsPanel"Symbol 479 MovieClip {States.MainMenuState} Frame 45Symbol 443 MovieClip
"m_mainMenuButtonsPanel"Symbol 479 MovieClip {States.MainMenuState} Frame 60Symbol 478 MovieClip {Shotfirer_fla.MainMenuButtonAnim_413}
"m_buttonMoreGames"Symbol 484 MovieClip Frame 1Symbol 159 Button
"m_buttonRestart"Symbol 485 MovieClip Frame 1Symbol 341 Button
"m_buttonMenu"Symbol 486 MovieClip Frame 1Symbol 200 MovieClip
"m_buttonMoreGames"Symbol 486 MovieClip Frame 1Symbol 484 MovieClip
"m_buttonRestart"Symbol 486 MovieClip Frame 1Symbol 485 MovieClip
"m_panel"Symbol 487 MovieClip Frame 1Symbol 486 MovieClip
"m_panel"Symbol 488 MovieClip {LoseStateView} Frame 1Symbol 487 MovieClip
"vertex0"Symbol 531 MovieClip {Ground} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex1"Symbol 531 MovieClip {Ground} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex2"Symbol 531 MovieClip {Ground} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex3"Symbol 531 MovieClip {Ground} Frame 1Symbol 513 MovieClip {VertexMarker}
"m_backUp"Symbol 537 MovieClip Frame 1Symbol 534 MovieClip
"m_frontUp"Symbol 537 MovieClip Frame 1Symbol 536 MovieClip
"m_unenable"Symbol 542 MovieClip {LevelButton} Frame 1Symbol 538 MovieClip
"m_backDown"Symbol 542 MovieClip {LevelButton} Frame 1Symbol 534 MovieClip
"m_textDown"Symbol 542 MovieClip {LevelButton} Frame 1Symbol 539 EditableText
"m_frontDown"Symbol 542 MovieClip {LevelButton} Frame 1Symbol 536 MovieClip
"m_cupDown"Symbol 542 MovieClip {LevelButton} Frame 1Symbol 493 MovieClip
"m_backOver"Symbol 542 MovieClip {LevelButton} Frame 1Symbol 534 MovieClip
"m_textOver"Symbol 542 MovieClip {LevelButton} Frame 1Symbol 540 EditableText
"m_frontOver"Symbol 542 MovieClip {LevelButton} Frame 1Symbol 536 MovieClip
"m_cupOver"Symbol 542 MovieClip {LevelButton} Frame 1Symbol 493 MovieClip
"m_backUp"Symbol 542 MovieClip {LevelButton} Frame 1Symbol 534 MovieClip
"m_textUp"Symbol 542 MovieClip {LevelButton} Frame 1Symbol 541 EditableText
"m_frontUp"Symbol 542 MovieClip {LevelButton} Frame 1Symbol 536 MovieClip
"m_cupUp"Symbol 542 MovieClip {LevelButton} Frame 1Symbol 493 MovieClip
"m_buttonMenu"Symbol 544 MovieClip Frame 1Symbol 151 Button
"m_buttonSubmit"Symbol 545 MovieClip Frame 1Symbol 199 Button
"m_logo"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 352 Button
"m_level0"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_totalScore"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 543 EditableText
"m_buttonMenu"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 544 MovieClip
"m_buttonSubmit"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 545 MovieClip
"m_level1"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level2"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level3"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level4"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level5"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level6"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level7"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level8"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level9"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level10"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level11"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level12"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level13"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level14"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level15"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level16"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level17"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level18"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level19"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level20"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level21"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level22"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level23"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level24"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level25"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level26"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level27"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_buttonAchiemvements"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 563 Button
"m_level28"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level29"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level30"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level31"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level32"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_level33"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 542 MovieClip {LevelButton}
"m_buttonWalkthrough"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 315 Button
"m_buttonMoreGames"Symbol 564 MovieClip {States.SelectLevelState} Frame 1Symbol 320 Button
"m_logo"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 73 Button
"m_buttonMenu"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 544 MovieClip
"m_score0"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 570 EditableText
"m_score1"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 571 EditableText
"m_score2"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 572 EditableText
"m_score3"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 573 EditableText
"m_score4"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 574 EditableText
"m_score5"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 575 EditableText
"m_score6"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 576 EditableText
"m_score7"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 577 EditableText
"m_score8"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 578 EditableText
"m_score9"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 579 EditableText
"m_points0"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 580 EditableText
"m_points1"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 581 EditableText
"m_points2"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 582 EditableText
"m_points3"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 583 EditableText
"m_points4"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 584 EditableText
"m_points5"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 585 EditableText
"m_points6"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 586 EditableText
"m_points7"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 587 EditableText
"m_points8"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 588 EditableText
"m_points9"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 589 EditableText
"m_score10"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 590 EditableText
"m_score11"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 591 EditableText
"m_score12"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 592 EditableText
"m_score13"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 593 EditableText
"m_score14"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 594 EditableText
"m_score15"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 595 EditableText
"m_score16"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 596 EditableText
"m_score17"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 597 EditableText
"m_score18"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 598 EditableText
"m_score19"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 599 EditableText
"m_points10"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 600 EditableText
"m_points11"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 601 EditableText
"m_points12"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 602 EditableText
"m_points13"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 603 EditableText
"m_points14"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 604 EditableText
"m_points15"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 605 EditableText
"m_points16"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 606 EditableText
"m_points17"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 607 EditableText
"m_points18"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 608 EditableText
"m_points19"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 609 EditableText
"m_youAreNotInTop"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 610 EditableText
"m_totalScore"Symbol 614 MovieClip {States.HighScoreState} Frame 1Symbol 611 EditableText
"m_buttonSubmit"Symbol 624 MovieClip Frame 1Symbol 199 Button
"m_buttonMenu"Symbol 624 MovieClip Frame 1Symbol 200 MovieClip
"m_buttonMoreGames"Symbol 624 MovieClip Frame 1Symbol 484 MovieClip
"m_panel"Symbol 625 MovieClip Frame 1Symbol 624 MovieClip
"m_panel"Symbol 626 MovieClip Frame 1Symbol 625 MovieClip
"m_buttonAchiemvements"Symbol 627 MovieClip {GameCompleteState} Frame 1Symbol 563 Button
"m_logo"Symbol 627 MovieClip {GameCompleteState} Frame 1Symbol 73 Button
"m_buttonMenu"Symbol 644 MovieClip {States.CreditsState} Frame 1Symbol 544 MovieClip
"m_programmerMail"Symbol 644 MovieClip {States.CreditsState} Frame 1Symbol 636 Button
"m_artMail"Symbol 644 MovieClip {States.CreditsState} Frame 1Symbol 636 Button
"m_musicMail"Symbol 644 MovieClip {States.CreditsState} Frame 1Symbol 636 Button
"m_logo"Symbol 644 MovieClip {States.CreditsState} Frame 1Symbol 73 Button
"GOLD_CUP"Symbol 736 MovieClip {States.AchievementsState} Frame 1Symbol 692 MovieClip {GoldCup}
"BRONSE_CUP"Symbol 736 MovieClip {States.AchievementsState} Frame 1Symbol 695 MovieClip {BronseCup}
"SILVER_CUP"Symbol 736 MovieClip {States.AchievementsState} Frame 1Symbol 698 MovieClip {SilverCup}
"GOLD_BOMB_WITH_WINGS"Symbol 736 MovieClip {States.AchievementsState} Frame 1Symbol 701 MovieClip {GoldBombWithWings}
"SILVER_BOMB_WITH_WINGS"Symbol 736 MovieClip {States.AchievementsState} Frame 1Symbol 702 MovieClip {SilverBombWithWings}
"BRONSE_BOMB_WITH_WINGS"Symbol 736 MovieClip {States.AchievementsState} Frame 1Symbol 703 MovieClip {BronseBombWithWings}
"GOLD_GRENADE"Symbol 736 MovieClip {States.AchievementsState} Frame 1Symbol 705 MovieClip {GoldGrenade}
"TNT"Symbol 736 MovieClip {States.AchievementsState} Frame 1Symbol 710 MovieClip {TNT}
"DYNAMITE"Symbol 736 MovieClip {States.AchievementsState} Frame 1Symbol 715 MovieClip {Dynamite}
"TWENTY"Symbol 736 MovieClip {States.AchievementsState} Frame 1Symbol 719 MovieClip {Twenty}
"FIFTY"Symbol 736 MovieClip {States.AchievementsState} Frame 1Symbol 724 MovieClip {Fifty}
"HUNDRED"Symbol 736 MovieClip {States.AchievementsState} Frame 1Symbol 728 MovieClip {Hundred}
"CROWN"Symbol 736 MovieClip {States.AchievementsState} Frame 1Symbol 733 MovieClip {Crown}
"m_buttonMenu"Symbol 736 MovieClip {States.AchievementsState} Frame 1Symbol 544 MovieClip
"DYNAMITE"Symbol 741 MovieClip {Shotfirer_fla.allAchiev_288} Frame 4Symbol 715 MovieClip {Dynamite}
"BRONSE_CUP"Symbol 741 MovieClip {Shotfirer_fla.allAchiev_288} Frame 7Symbol 695 MovieClip {BronseCup}
"SILVER_CUP"Symbol 741 MovieClip {Shotfirer_fla.allAchiev_288} Frame 8Symbol 698 MovieClip {SilverCup}
"m_buttonShow"Symbol 745 MovieClip Frame 1Symbol 744 Button
"m_name"Symbol 746 MovieClip Frame 1Symbol 740 EditableText
"m_icon"Symbol 746 MovieClip Frame 1Symbol 741 MovieClip {Shotfirer_fla.allAchiev_288}
"m_buttonShow"Symbol 746 MovieClip Frame 1Symbol 745 MovieClip
"m_panel"Symbol 747 MovieClip {NewAchievementStateView} Frame 1Symbol 746 MovieClip
"m_label"Symbol 749 MovieClip {PointsClip} Frame 1Symbol 748 EditableText
"m_rightHandWound"Symbol 776 MovieClip {Torso_0} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_rightLegWound"Symbol 776 MovieClip {Torso_0} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_leftHandWound"Symbol 776 MovieClip {Torso_0} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_leftLegWound"Symbol 776 MovieClip {Torso_0} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_headWound"Symbol 776 MovieClip {Torso_0} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_leftLeg"Symbol 795 MovieClip {States.PlayState.HumanTemplate} Frame 1Symbol 770 MovieClip {Leg_0}
"m_rightLeg"Symbol 795 MovieClip {States.PlayState.HumanTemplate} Frame 1Symbol 770 MovieClip {Leg_0}
"m_torso"Symbol 795 MovieClip {States.PlayState.HumanTemplate} Frame 1Symbol 776 MovieClip {Torso_0}
"m_head"Symbol 795 MovieClip {States.PlayState.HumanTemplate} Frame 1Symbol 786 MovieClip {Face_0}
"m_leftHand"Symbol 795 MovieClip {States.PlayState.HumanTemplate} Frame 1Symbol 790 MovieClip {LeftHand_0}
"m_rightHand"Symbol 795 MovieClip {States.PlayState.HumanTemplate} Frame 1Symbol 794 MovieClip {RightHand_0}
"m_headToTorso"Symbol 795 MovieClip {States.PlayState.HumanTemplate} Frame 1Symbol 513 MovieClip {VertexMarker}
"m_leftHandToTorso"Symbol 795 MovieClip {States.PlayState.HumanTemplate} Frame 1Symbol 513 MovieClip {VertexMarker}
"m_rightHandToTorso"Symbol 795 MovieClip {States.PlayState.HumanTemplate} Frame 1Symbol 513 MovieClip {VertexMarker}
"m_leftLegToTorso"Symbol 795 MovieClip {States.PlayState.HumanTemplate} Frame 1Symbol 513 MovieClip {VertexMarker}
"m_rightLegToTorso"Symbol 795 MovieClip {States.PlayState.HumanTemplate} Frame 1Symbol 513 MovieClip {VertexMarker}
"m_bombClip"Symbol 796 MovieClip {Bomb1Shape} Frame 1Symbol 267 MovieClip
"vertex0"Symbol 796 MovieClip {Bomb1Shape} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex1"Symbol 796 MovieClip {Bomb1Shape} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex2"Symbol 796 MovieClip {Bomb1Shape} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex3"Symbol 796 MovieClip {Bomb1Shape} Frame 1Symbol 513 MovieClip {VertexMarker}
"m_rays"Symbol 833 MovieClip {States.PlayState.Sun} Frame 1Symbol 819 MovieClip
"vertex0"Symbol 848 MovieClip {ConcreteTriangle} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex1"Symbol 848 MovieClip {ConcreteTriangle} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex2"Symbol 848 MovieClip {ConcreteTriangle} Frame 1Symbol 513 MovieClip {VertexMarker}
"m_leftLeg"Symbol 855 MovieClip {Pers0Marker} Frame 1Symbol 770 MovieClip {Leg_0}
"m_rightLeg"Symbol 855 MovieClip {Pers0Marker} Frame 1Symbol 770 MovieClip {Leg_0}
"m_torso"Symbol 855 MovieClip {Pers0Marker} Frame 1Symbol 776 MovieClip {Torso_0}
"m_head"Symbol 855 MovieClip {Pers0Marker} Frame 1Symbol 786 MovieClip {Face_0}
"m_leftHand"Symbol 855 MovieClip {Pers0Marker} Frame 1Symbol 790 MovieClip {LeftHand_0}
"m_rightHand"Symbol 855 MovieClip {Pers0Marker} Frame 1Symbol 794 MovieClip {RightHand_0}
"m_headToTorso"Symbol 855 MovieClip {Pers0Marker} Frame 1Symbol 513 MovieClip {VertexMarker}
"m_leftHandToTorso"Symbol 855 MovieClip {Pers0Marker} Frame 1Symbol 513 MovieClip {VertexMarker}
"m_rightHandToTorso"Symbol 855 MovieClip {Pers0Marker} Frame 1Symbol 513 MovieClip {VertexMarker}
"m_leftLegToTorso"Symbol 855 MovieClip {Pers0Marker} Frame 1Symbol 513 MovieClip {VertexMarker}
"m_rightLegToTorso"Symbol 855 MovieClip {Pers0Marker} Frame 1Symbol 513 MovieClip {VertexMarker}
"m_rightHandWound"Symbol 865 MovieClip {Torso_5} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_rightLegWound"Symbol 865 MovieClip {Torso_5} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_leftHandWound"Symbol 865 MovieClip {Torso_5} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_leftLegWound"Symbol 865 MovieClip {Torso_5} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_headWound"Symbol 865 MovieClip {Torso_5} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_bombClip"Symbol 884 MovieClip {States.PlayState.Bomb1} Frame 1Symbol 267 MovieClip
"m_greenCrossClip"Symbol 884 MovieClip {States.PlayState.Bomb1} Frame 1Symbol 880 MovieClip
"m_redCrossClip"Symbol 884 MovieClip {States.PlayState.Bomb1} Frame 1Symbol 882 MovieClip
"vertex0"Symbol 884 MovieClip {States.PlayState.Bomb1} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex1"Symbol 884 MovieClip {States.PlayState.Bomb1} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex2"Symbol 884 MovieClip {States.PlayState.Bomb1} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex3"Symbol 884 MovieClip {States.PlayState.Bomb1} Frame 1Symbol 513 MovieClip {VertexMarker}
"m_bombCounter"Symbol 884 MovieClip {States.PlayState.Bomb1} Frame 1Symbol 302 MovieClip {Shotfirer_fla.figures_119}
"m_bombClip"Symbol 885 MovieClip {States.PlayState.Bomb2} Frame 1Symbol 275 MovieClip
"m_greenCrossClip"Symbol 885 MovieClip {States.PlayState.Bomb2} Frame 1Symbol 880 MovieClip
"m_redCrossClip"Symbol 885 MovieClip {States.PlayState.Bomb2} Frame 1Symbol 882 MovieClip
"vertex0"Symbol 885 MovieClip {States.PlayState.Bomb2} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex1"Symbol 885 MovieClip {States.PlayState.Bomb2} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex2"Symbol 885 MovieClip {States.PlayState.Bomb2} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex3"Symbol 885 MovieClip {States.PlayState.Bomb2} Frame 1Symbol 513 MovieClip {VertexMarker}
"m_bombCounter"Symbol 885 MovieClip {States.PlayState.Bomb2} Frame 1Symbol 302 MovieClip {Shotfirer_fla.figures_119}
"m_rightHandWound"Symbol 913 MovieClip {Torso_1} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_rightLegWound"Symbol 913 MovieClip {Torso_1} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_leftHandWound"Symbol 913 MovieClip {Torso_1} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_leftLegWound"Symbol 913 MovieClip {Torso_1} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_headWound"Symbol 913 MovieClip {Torso_1} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_rightHandWound"Symbol 931 MovieClip {Torso_2} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_rightLegWound"Symbol 931 MovieClip {Torso_2} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_leftHandWound"Symbol 931 MovieClip {Torso_2} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_leftLegWound"Symbol 931 MovieClip {Torso_2} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_headWound"Symbol 931 MovieClip {Torso_2} Frame 1Symbol 773 MovieClip {DirectionMarker}
"vertex0"Symbol 946 MovieClip {ConcreteBlockBigTriangle} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex1"Symbol 946 MovieClip {ConcreteBlockBigTriangle} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex2"Symbol 946 MovieClip {ConcreteBlockBigTriangle} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex3"Symbol 946 MovieClip {ConcreteBlockBigTriangle} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex4"Symbol 946 MovieClip {ConcreteBlockBigTriangle} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex5"Symbol 946 MovieClip {ConcreteBlockBigTriangle} Frame 1Symbol 513 MovieClip {VertexMarker}
"m_rightHandWound"Symbol 966 MovieClip {Torso_3} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_rightLegWound"Symbol 966 MovieClip {Torso_3} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_leftHandWound"Symbol 966 MovieClip {Torso_3} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_leftLegWound"Symbol 966 MovieClip {Torso_3} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_headWound"Symbol 966 MovieClip {Torso_3} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_rightHandWound"Symbol 981 MovieClip {Torso_4} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_rightLegWound"Symbol 981 MovieClip {Torso_4} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_leftHandWound"Symbol 981 MovieClip {Torso_4} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_leftLegWound"Symbol 981 MovieClip {Torso_4} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_headWound"Symbol 981 MovieClip {Torso_4} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_trajectory"Symbol 997 MovieClip {States.PlayState.Bomb6} Frame 1Symbol 996 MovieClip {BombTrajectory}
"m_bombClip"Symbol 997 MovieClip {States.PlayState.Bomb6} Frame 1Symbol 271 MovieClip
"m_greenCrossClip"Symbol 997 MovieClip {States.PlayState.Bomb6} Frame 1Symbol 880 MovieClip
"m_redCrossClip"Symbol 997 MovieClip {States.PlayState.Bomb6} Frame 1Symbol 882 MovieClip
"vertex0"Symbol 997 MovieClip {States.PlayState.Bomb6} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex1"Symbol 997 MovieClip {States.PlayState.Bomb6} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex2"Symbol 997 MovieClip {States.PlayState.Bomb6} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex3"Symbol 997 MovieClip {States.PlayState.Bomb6} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex4"Symbol 997 MovieClip {States.PlayState.Bomb6} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex5"Symbol 997 MovieClip {States.PlayState.Bomb6} Frame 1Symbol 513 MovieClip {VertexMarker}
"m_bombCounter"Symbol 997 MovieClip {States.PlayState.Bomb6} Frame 1Symbol 302 MovieClip {Shotfirer_fla.figures_119}
"vertex0"Symbol 1011 MovieClip {States.PlayState.DangerBarrel} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex1"Symbol 1011 MovieClip {States.PlayState.DangerBarrel} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex2"Symbol 1011 MovieClip {States.PlayState.DangerBarrel} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex3"Symbol 1011 MovieClip {States.PlayState.DangerBarrel} Frame 1Symbol 513 MovieClip {VertexMarker}
"point6"Symbol 1014 MovieClip {BrickBlock10} Frame 1Symbol 513 MovieClip {VertexMarker}
"point7"Symbol 1014 MovieClip {BrickBlock10} Frame 1Symbol 513 MovieClip {VertexMarker}
"point11"Symbol 1014 MovieClip {BrickBlock10} Frame 1Symbol 513 MovieClip {VertexMarker}
"point0"Symbol 1025 MovieClip {BrickBlock7} Frame 1Symbol 513 MovieClip {VertexMarker}
"point1"Symbol 1025 MovieClip {BrickBlock7} Frame 1Symbol 513 MovieClip {VertexMarker}
"point2"Symbol 1025 MovieClip {BrickBlock7} Frame 1Symbol 513 MovieClip {VertexMarker}
"point3"Symbol 1025 MovieClip {BrickBlock7} Frame 1Symbol 513 MovieClip {VertexMarker}
"point4"Symbol 1025 MovieClip {BrickBlock7} Frame 1Symbol 513 MovieClip {VertexMarker}
"point5"Symbol 1025 MovieClip {BrickBlock7} Frame 1Symbol 513 MovieClip {VertexMarker}
"point6"Symbol 1025 MovieClip {BrickBlock7} Frame 1Symbol 513 MovieClip {VertexMarker}
"point7"Symbol 1025 MovieClip {BrickBlock7} Frame 1Symbol 513 MovieClip {VertexMarker}
"point8"Symbol 1025 MovieClip {BrickBlock7} Frame 1Symbol 513 MovieClip {VertexMarker}
"point9"Symbol 1025 MovieClip {BrickBlock7} Frame 1Symbol 513 MovieClip {VertexMarker}
"point10"Symbol 1025 MovieClip {BrickBlock7} Frame 1Symbol 513 MovieClip {VertexMarker}
"point11"Symbol 1025 MovieClip {BrickBlock7} Frame 1Symbol 513 MovieClip {VertexMarker}
"point12"Symbol 1025 MovieClip {BrickBlock7} Frame 1Symbol 513 MovieClip {VertexMarker}
"point13"Symbol 1025 MovieClip {BrickBlock7} Frame 1Symbol 513 MovieClip {VertexMarker}
"point10"Symbol 1025 MovieClip {BrickBlock7} Frame 1Symbol 513 MovieClip {VertexMarker}
"m_rightHandWound"Symbol 1047 MovieClip {Torso_6} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_rightLegWound"Symbol 1047 MovieClip {Torso_6} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_leftHandWound"Symbol 1047 MovieClip {Torso_6} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_leftLegWound"Symbol 1047 MovieClip {Torso_6} Frame 1Symbol 773 MovieClip {DirectionMarker}
"m_headWound"Symbol 1047 MovieClip {Torso_6} Frame 1Symbol 773 MovieClip {DirectionMarker}
"point0"Symbol 1051 MovieClip {BrickBlock1} Frame 1Symbol 513 MovieClip {VertexMarker}
"point1"Symbol 1051 MovieClip {BrickBlock1} Frame 1Symbol 513 MovieClip {VertexMarker}
"point2"Symbol 1051 MovieClip {BrickBlock1} Frame 1Symbol 513 MovieClip {VertexMarker}
"point3"Symbol 1051 MovieClip {BrickBlock1} Frame 1Symbol 513 MovieClip {VertexMarker}
"point4"Symbol 1051 MovieClip {BrickBlock1} Frame 1Symbol 513 MovieClip {VertexMarker}
"point5"Symbol 1051 MovieClip {BrickBlock1} Frame 1Symbol 513 MovieClip {VertexMarker}
"point6"Symbol 1051 MovieClip {BrickBlock1} Frame 1Symbol 513 MovieClip {VertexMarker}
"point7"Symbol 1051 MovieClip {BrickBlock1} Frame 1Symbol 513 MovieClip {VertexMarker}
"point8"Symbol 1051 MovieClip {BrickBlock1} Frame 1Symbol 513 MovieClip {VertexMarker}
"point9"Symbol 1051 MovieClip {BrickBlock1} Frame 1Symbol 513 MovieClip {VertexMarker}
"point10"Symbol 1051 MovieClip {BrickBlock1} Frame 1Symbol 513 MovieClip {VertexMarker}
"point11"Symbol 1051 MovieClip {BrickBlock1} Frame 1Symbol 513 MovieClip {VertexMarker}
"point12"Symbol 1051 MovieClip {BrickBlock1} Frame 1Symbol 513 MovieClip {VertexMarker}
"point13"Symbol 1051 MovieClip {BrickBlock1} Frame 1Symbol 513 MovieClip {VertexMarker}
"point10"Symbol 1051 MovieClip {BrickBlock1} Frame 1Symbol 513 MovieClip {VertexMarker}
"m_bombClip"Symbol 1052 MovieClip {States.PlayState.Bomb4} Frame 1Symbol 277 MovieClip
"m_greenCrossClip"Symbol 1052 MovieClip {States.PlayState.Bomb4} Frame 1Symbol 880 MovieClip
"m_redCrossClip"Symbol 1052 MovieClip {States.PlayState.Bomb4} Frame 1Symbol 882 MovieClip
"vertex0"Symbol 1052 MovieClip {States.PlayState.Bomb4} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex1"Symbol 1052 MovieClip {States.PlayState.Bomb4} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex2"Symbol 1052 MovieClip {States.PlayState.Bomb4} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex3"Symbol 1052 MovieClip {States.PlayState.Bomb4} Frame 1Symbol 513 MovieClip {VertexMarker}
"m_bombCounter"Symbol 1052 MovieClip {States.PlayState.Bomb4} Frame 1Symbol 302 MovieClip {Shotfirer_fla.figures_119}
"point0"Symbol 1056 MovieClip {BrickBlock8} Frame 1Symbol 513 MovieClip {VertexMarker}
"point1"Symbol 1056 MovieClip {BrickBlock8} Frame 1Symbol 513 MovieClip {VertexMarker}
"point2"Symbol 1056 MovieClip {BrickBlock8} Frame 1Symbol 513 MovieClip {VertexMarker}
"point3"Symbol 1056 MovieClip {BrickBlock8} Frame 1Symbol 513 MovieClip {VertexMarker}
"point4"Symbol 1056 MovieClip {BrickBlock8} Frame 1Symbol 513 MovieClip {VertexMarker}
"point5"Symbol 1056 MovieClip {BrickBlock8} Frame 1Symbol 513 MovieClip {VertexMarker}
"point6"Symbol 1056 MovieClip {BrickBlock8} Frame 1Symbol 513 MovieClip {VertexMarker}
"point8"Symbol 1056 MovieClip {BrickBlock8} Frame 1Symbol 513 MovieClip {VertexMarker}
"point9"Symbol 1056 MovieClip {BrickBlock8} Frame 1Symbol 513 MovieClip {VertexMarker}
"point10"Symbol 1056 MovieClip {BrickBlock8} Frame 1Symbol 513 MovieClip {VertexMarker}
"m_trajectory"Symbol 1057 MovieClip {States.PlayState.Bomb5} Frame 1Symbol 996 MovieClip {BombTrajectory}
"m_bombClip"Symbol 1057 MovieClip {States.PlayState.Bomb5} Frame 1Symbol 273 MovieClip
"m_greenCrossClip"Symbol 1057 MovieClip {States.PlayState.Bomb5} Frame 1Symbol 880 MovieClip
"m_redCrossClip"Symbol 1057 MovieClip {States.PlayState.Bomb5} Frame 1Symbol 882 MovieClip
"vertex0"Symbol 1057 MovieClip {States.PlayState.Bomb5} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex1"Symbol 1057 MovieClip {States.PlayState.Bomb5} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex2"Symbol 1057 MovieClip {States.PlayState.Bomb5} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex3"Symbol 1057 MovieClip {States.PlayState.Bomb5} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex4"Symbol 1057 MovieClip {States.PlayState.Bomb5} Frame 1Symbol 513 MovieClip {VertexMarker}
"m_bombCounter"Symbol 1057 MovieClip {States.PlayState.Bomb5} Frame 1Symbol 302 MovieClip {Shotfirer_fla.figures_119}
"m_bombClip"Symbol 1060 MovieClip {States.PlayState.Bomb3} Frame 1Symbol 269 MovieClip
"m_greenCrossClip"Symbol 1060 MovieClip {States.PlayState.Bomb3} Frame 1Symbol 880 MovieClip
"m_redCrossClip"Symbol 1060 MovieClip {States.PlayState.Bomb3} Frame 1Symbol 882 MovieClip
"vertex0"Symbol 1060 MovieClip {States.PlayState.Bomb3} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex1"Symbol 1060 MovieClip {States.PlayState.Bomb3} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex2"Symbol 1060 MovieClip {States.PlayState.Bomb3} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex3"Symbol 1060 MovieClip {States.PlayState.Bomb3} Frame 1Symbol 513 MovieClip {VertexMarker}
"m_bombCounter"Symbol 1060 MovieClip {States.PlayState.Bomb3} Frame 1Symbol 302 MovieClip {Shotfirer_fla.figures_119}
"vertex0"Symbol 1068 MovieClip {Roof} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex1"Symbol 1068 MovieClip {Roof} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex2"Symbol 1068 MovieClip {Roof} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex3"Symbol 1068 MovieClip {Roof} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex4"Symbol 1068 MovieClip {Roof} Frame 1Symbol 513 MovieClip {VertexMarker}
"vertex5"Symbol 1068 MovieClip {Roof} Frame 1Symbol 513 MovieClip {VertexMarker}
"point0"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point1"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point2"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point3"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point4"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point5"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point6"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point7"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point8"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point9"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point10"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point11"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point12"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point13"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point10"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point0"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point1"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point2"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point3"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point4"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point5"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point6"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point7"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point8"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point9"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point10"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point11"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point12"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point13"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point10"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point0"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point1"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point2"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point3"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point4"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point5"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point7"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point12"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point10"Symbol 1074 MovieClip {BrickBlock6} Frame 1Symbol 513 MovieClip {VertexMarker}
"point0"Symbol 1077 MovieClip {BrickBlock4} Frame 1Symbol 513 MovieClip {VertexMarker}
"point2"Symbol 1077 MovieClip {BrickBlock4} Frame 1Symbol 513 MovieClip {VertexMarker}
"point4"Symbol 1077 MovieClip {BrickBlock4} Frame 1Symbol 513 MovieClip {VertexMarker}
"point7"Symbol 1077 MovieClip {BrickBlock4} Frame 1Symbol 513 MovieClip {VertexMarker}
"point9"Symbol 1077 MovieClip {BrickBlock4} Frame 1Symbol 513 MovieClip {VertexMarker}
"point11"Symbol 1077 MovieClip {BrickBlock4} Frame 1Symbol 513 MovieClip {VertexMarker}
"point12"Symbol 1077 MovieClip {BrickBlock4} Frame 1Symbol 513 MovieClip {VertexMarker}
"point13"Symbol 1077 MovieClip {BrickBlock4} Frame 1Symbol 513 MovieClip {VertexMarker}
"point10"Symbol 1077 MovieClip {BrickBlock4} Frame 1Symbol 513 MovieClip {VertexMarker}
"point5"Symbol 1084 MovieClip {BrickBlock3} Frame 1Symbol 513 MovieClip {VertexMarker}
"point6"Symbol 1084 MovieClip {BrickBlock3} Frame 1Symbol 513 MovieClip {VertexMarker}
"point7"Symbol 1084 MovieClip {BrickBlock3} Frame 1Symbol 513 MovieClip {VertexMarker}
"point8"Symbol 1084 MovieClip {BrickBlock3} Frame 1Symbol 513 MovieClip {VertexMarker}
"point9"Symbol 1084 MovieClip {BrickBlock3} Frame 1Symbol 513 MovieClip {VertexMarker}
"point10"Symbol 1084 MovieClip {BrickBlock3} Frame 1Symbol 513 MovieClip {VertexMarker}
"point11"Symbol 1084 MovieClip {BrickBlock3} Frame 1Symbol 513 MovieClip {VertexMarker}
"point12"Symbol 1084 MovieClip {BrickBlock3} Frame 1Symbol 513 MovieClip {VertexMarker}
"point13"Symbol 1084 MovieClip {BrickBlock3} Frame 1Symbol 513 MovieClip {VertexMarker}
"point9"Symbol 1084 MovieClip {BrickBlock3} Frame 1Symbol 513 MovieClip {VertexMarker}
"point10"Symbol 1084 MovieClip {BrickBlock3} Frame 1Symbol 513 MovieClip {VertexMarker}
"point13"Symbol 1084 MovieClip {BrickBlock3} Frame 1Symbol 513 MovieClip {VertexMarker}
"point0"Symbol 1088 MovieClip {BrickBlock2} Frame 1Symbol 513 MovieClip {VertexMarker}
"point2"Symbol 1088 MovieClip {BrickBlock2} Frame 1Symbol 513 MovieClip {VertexMarker}
"point4"Symbol 1088 MovieClip {BrickBlock2} Frame 1Symbol 513 MovieClip {VertexMarker}
"point7"Symbol 1088 MovieClip {BrickBlock2} Frame 1Symbol 513 MovieClip {VertexMarker}
"point11"Symbol 1088 MovieClip {BrickBlock2} Frame 1Symbol 513 MovieClip {VertexMarker}
"point12"Symbol 1088 MovieClip {BrickBlock2} Frame 1Symbol 513 MovieClip {VertexMarker}
"point10"Symbol 1088 MovieClip {BrickBlock2} Frame 1Symbol 513 MovieClip {VertexMarker}
"point6"Symbol 1108 MovieClip {BrickBlock9} Frame 1Symbol 513 MovieClip {VertexMarker}
"point7"Symbol 1108 MovieClip {BrickBlock9} Frame 1Symbol 513 MovieClip {VertexMarker}
"point8"Symbol 1108 MovieClip {BrickBlock9} Frame 1Symbol 513 MovieClip {VertexMarker}
"point9"Symbol 1108 MovieClip {BrickBlock9} Frame 1Symbol 513 MovieClip {VertexMarker}
"point11"Symbol 1108 MovieClip {BrickBlock9} Frame 1Symbol 513 MovieClip {VertexMarker}
"point0"Symbol 1115 MovieClip {BrickBlock5} Frame 1Symbol 513 MovieClip {VertexMarker}
"point1"Symbol 1115 MovieClip {BrickBlock5} Frame 1Symbol 513 MovieClip {VertexMarker}
"point2"Symbol 1115 MovieClip {BrickBlock5} Frame 1Symbol 513 MovieClip {VertexMarker}
"point3"Symbol 1115 MovieClip {BrickBlock5} Frame 1Symbol 513 MovieClip {VertexMarker}
"point4"Symbol 1115 MovieClip {BrickBlock5} Frame 1Symbol 513 MovieClip {VertexMarker}
"point5"Symbol 1115 MovieClip {BrickBlock5} Frame 1Symbol 513 MovieClip {VertexMarker}
"point6"Symbol 1115 MovieClip {BrickBlock5} Frame 1Symbol 513 MovieClip {VertexMarker}
"point7"Symbol 1115 MovieClip {BrickBlock5} Frame 1Symbol 513 MovieClip {VertexMarker}
"point9"Symbol 1115 MovieClip {BrickBlock5} Frame 1Symbol 513 MovieClip {VertexMarker}
"point12"Symbol 1115 MovieClip {BrickBlock5} Frame 1Symbol 513 MovieClip {VertexMarker}
"point10"Symbol 1115 MovieClip {BrickBlock5} Frame 1Symbol 513 MovieClip {VertexMarker}
"m_firstStep"Symbol 1147 MovieClip {Level00} Frame 1Symbol 1144 MovieClip {FirstStepArrow}
"m_secondStep"Symbol 1147 MovieClip {Level00} Frame 1Symbol 1146 MovieClip

Special Tags

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

Labels

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




http://swfchan.com/27/130382/info.shtml
Created: 22/2 -2019 07:27:23 Last modified: 22/2 -2019 07:27:23 Server time: 09/05 -2024 09:37:21