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

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

99 Bricks The Legend - save the land of Brickonia through 24 levels.swf

This is the info page for
Flash #89772

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


Text
www.weirdbeard.nl

Test question?

<p align="center"><font face="Mezz Web Bold" size="60" color="#000000" letterSpacing="2.000000" kerning="1"><b>TestText</b></font></p>

upgrade

Ye Olde Shoppe

Your Gold:

current

next

cost

Hard

move
left

move
right

rotate

drop
brick

controls

: rotate

SPACE

: hold to zoom out

You have control of a brick
until it touches the tower.

: move brick faster
horizontally

SHIFT

: open pause menu

: remove last placed brick

: discard block

Z

P

V

C

+

or

You have reached a height of:

Enter your name to submit this score

Progress has been saved.

<p align="center"><font face="Mezz Web Bold" size="18" color="#333333" letterSpacing="0.000000" kerning="1">text</font></p>

<p align="center"><font face="Mezz Web Bold" size="40" color="#6d1b1b" letterSpacing="0.000000" kerning="1">Village 1</font></p>

<p align="center"><font face="Mezz Web Bold" size="18" color="#333333" letterSpacing="0.000000" kerning="1">- reach height 1000.</font></p><p align="center"><font face="Mezz Web Bold" size="18" color="#333333" letterSpacing="0.000000" kerning="1">- use at least 99 bricks.</font></p><p align="center"><font face="Mezz Web Bold" size="18" color="#333333" letterSpacing="0.000000" kerning="1">- don&apos;t drop any!</font></p><p align="center"><font face="Mezz Web Bold" size="18" color="#333333" letterSpacing="0.000000" kerning="1">some more text!</font></p><p align="center"><font face="Mezz Web Bold" size="18" color="#333333" letterSpacing="0.000000" kerning="1">and some more!!</font></p><p align="center"><font face="Mezz Web Bold" size="18" color="#333333" letterSpacing="0.000000" kerning="1">wee!</font></p><p align="center"></p>

<p align="center"><font face="Mezz Web Bold" size="18" color="#333333" letterSpacing="0.000000" kerning="1">Earn one gold piece for every unused brick.</font></p>

<p align="center"><font face="Mezz Web Bold" size="25" color="#6d1b1b" letterSpacing="0.000000" kerning="1">Points: 100/100</font></p>

Autopaused.
Click to continue.

Autopause is activated when
you click outside the game or
switch to another window.

Highscores

copyright 2009 Weirdbeard

Load

copyright 2009 Weirdbeard

Objectives:

- Build as high as
you can with
99 bricks!

Easy

< menu

<p align="left"><font face="Mezz Web Bold" size="22" color="#513c2f" letterSpacing="0.000000" kerning="1">28.500</font></p>

<p align="left"><font face="Mezz Web Bold" size="22" color="#513c2f" letterSpacing="0.000000" kerning="1">complete: 16%</font></p>

<p align="left"><font face="Mezz Web Bold" size="22" color="#513c2f" letterSpacing="0.000000" kerning="1">towns: 5/24</font></p>

shoppe

Enter a name

Save

<p align="center"><font face="Mezz Web Bold" size="60" color="#000000" letterSpacing="2.000000" kerning="1"><b>Test Text</b></font></p>

<p align="center"><font face="Poor Richard" size="20" color="#333333" letterSpacing="0.000000" kerning="1">Father locked me away in a tower where I lived for 20 years waiting for my revenge. When I finally broke free I destroyed every tower I could find.</font></p>

<p align="center"><font face="Mezz Web Bold" size="15" color="#ffffff" letterSpacing="1.000000" kerning="1">press any key to continue</font></p>

<p align="center"><font face="Mezz Web Bold" size="30" color="#333333" letterSpacing="1.000000" kerning="1">Larry:</font></p>

Your score:

<p align="center"><font face="Myriad Pro Cond" size="19" color="#65654e" letterSpacing="0.000000" kerning="1"><i>target score</i></font></p>

Build the highest tower using 99 Bricks

Classic

Choose a Save slot

New Game

CREDITS

Congratulations!
You have finished the story mode!
If you want, you can finish the
remainder of the towns, and
get a full 100% completion.
Or, you can try building a tower as high
as you can in the classic mode!

The End

Developer

Sound

Published by

Art

Niels Vermeulen from

Menno Vermeulen from

Medium

ActionScript [AS3]

Section 1
//b2CircleDef (Box2D.Collision.Shapes.b2CircleDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2CircleDef extends b2ShapeDef { public var radius:Number; public var localPosition:b2Vec2; public function b2CircleDef(){ localPosition = new b2Vec2(0, 0); super(); type = b2Shape.e_circleShape; radius = 1; } } }//package Box2D.Collision.Shapes
Section 2
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_localPosition:b2Vec2; public var m_radius:Number; public function b2CircleShape(_arg1:b2ShapeDef){ m_localPosition = new b2Vec2(); super(_arg1); var _local2:b2CircleDef = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local10:Number; var _local6:b2Mat22 = _arg1.R; var _local7:Number = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); var _local8:Number = (_arg1.position.x + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); var _local9:Number = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); var _local11:Number = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ return (false); }; var _local12:Number = (_arg4.p2.x - _arg4.p1.x); var _local13:Number = (_arg4.p2.y - _arg4.p1.y); var _local14:Number = ((_local9 * _local12) + (_local10 * _local13)); var _local15:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local16:Number = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; var _local17:Number = -((_local14 + Math.sqrt(_local16))); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){ _local17 = (_local17 / _local15); _arg2[0] = _local17; _arg3.x = (_local9 + (_local17 * _local12)); _arg3.y = (_local10 + (_local17 * _local13)); _arg3.Normalize(); return (true); }; return (false); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } public function GetRadius():Number{ return (m_radius); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; _local4 = _arg2.R; var _local5:Number = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local6:Number = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; var _local7:Number = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local8:Number = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius)); _arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius)); } override public function ComputeMass(_arg1:b2MassData):void{ _arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_localPosition); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y)))); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number = (m_localPosition.x - _arg1.x); var _local3:Number = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22 = _arg2.R; var _local4:Number = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22 = _arg1.R; var _local4:Number = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } } }//package Box2D.Collision.Shapes
Section 3
//b2FilterData (Box2D.Collision.Shapes.b2FilterData) package Box2D.Collision.Shapes { public class b2FilterData { public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public var categoryBits:uint;// = 1 public function Copy():b2FilterData{ var _local1:b2FilterData = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Collision.Shapes
Section 4
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ center = new b2Vec2(0, 0); super(); } } }//package Box2D.Collision.Shapes
Section 5
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertices:Array; public var vertexCount:int; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; var _local1:int; while (_local1 < b2Settings.b2_maxPolygonVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{ var _local5:b2Vec2; var _local6:b2Mat22; var _local7:int; vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); if (_arg3){ _local5 = _arg3; _local6 = s_mat; _local6.Set(_arg4); _local7 = 0; while (_local7 < vertexCount) { _arg3 = vertices[_local7]; _arg1 = (_local5.x + ((_local6.col1.x * _arg3.x) + (_local6.col2.x * _arg3.y))); _arg3.y = (_local5.y + ((_local6.col1.y * _arg3.x) + (_local6.col2.y * _arg3.y))); _arg3.x = _arg1; _local7++; }; }; } public function SetAsBox(_arg1:Number, _arg2:Number):void{ vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); } } }//package Box2D.Collision.Shapes
Section 6
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { public var m_coreVertices:Array; public var m_vertices:Array; private var s_supportVec:b2Vec2; public var m_centroid:b2Vec2; public var m_normals:Array; public var m_obb:b2OBB; public var m_vertexCount:int; private static var s_computeMat:b2Mat22 = new b2Mat22(); private static var s_sweptAABB1:b2AABB = new b2AABB(); private static var s_sweptAABB2:b2AABB = new b2AABB(); public function b2PolygonShape(_arg1:b2ShapeDef){ var _local3:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; s_supportVec = new b2Vec2(); m_obb = new b2OBB(); m_vertices = new Array(b2Settings.b2_maxPolygonVertices); m_normals = new Array(b2Settings.b2_maxPolygonVertices); m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices); super(_arg1); m_type = e_polygonShape; var _local2:b2PolygonDef = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; var _local4:int = _local3; var _local5:int = _local3; _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3] = _local2.vertices[_local3].Copy(); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = (m_vertices[_local5].x - m_vertices[_local4].x); _local7 = (m_vertices[_local5].y - m_vertices[_local4].y); _local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8)); _local3++; }; m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount); ComputeOBB(m_obb, m_vertices, m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { _local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1); _local5 = _local3; _local9 = m_normals[_local4].x; _local10 = m_normals[_local4].y; _local11 = m_normals[_local5].x; _local12 = m_normals[_local5].y; _local13 = (m_vertices[_local3].x - m_centroid.x); _local14 = (m_vertices[_local3].y - m_centroid.y); _local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop); _local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop); _local17 = (1 / ((_local9 * _local12) - (_local10 * _local11))); m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y)); _local3++; }; } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB = s_sweptAABB1; var _local5:b2AABB = s_sweptAABB2; ComputeAABB(_local4, _arg2); ComputeAABB(_local5, _arg3); _arg1.lowerBound.Set(((_local4.lowerBound.x < _local5.lowerBound.x)) ? _local4.lowerBound.x : _local5.lowerBound.x, ((_local4.lowerBound.y < _local5.lowerBound.y)) ? _local4.lowerBound.y : _local5.lowerBound.y); _arg1.upperBound.Set(((_local4.upperBound.x > _local5.upperBound.x)) ? _local4.upperBound.x : _local5.upperBound.x, ((_local4.upperBound.y > _local5.upperBound.y)) ? _local4.upperBound.y : _local5.upperBound.y); } public function GetVertices():Array{ return (m_vertices); } public function GetCoreVertices():Array{ return (m_coreVertices); } public function GetCentroid():b2Vec2{ return (m_centroid); } public function GetOBB():b2OBB{ return (m_obb); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_coreVertices[0])); } public function Centroid(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_centroid)); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local20:Number; var _local21:Number; var _local6:Number = 0; var _local7:Number = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; var _local12:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local13:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local8 = (_arg4.p2.x - _arg1.position.x); _local9 = (_arg4.p2.y - _arg1.position.y); _local10 = _arg1.R; var _local14:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local15:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); var _local18 = -1; var _local19:int; while (_local19 < m_vertexCount) { _local11 = m_vertices[_local19]; _local8 = (_local11.x - _local12); _local9 = (_local11.y - _local13); _local11 = m_normals[_local19]; _local20 = ((_local11.x * _local8) + (_local11.y * _local9)); _local21 = ((_local11.x * _local16) + (_local11.y * _local17)); if ((((_local21 < 0)) && ((_local20 < (_local6 * _local21))))){ _local6 = (_local20 / _local21); _local18 = _local19; } else { if ((((_local21 > 0)) && ((_local20 < (_local7 * _local21))))){ _local7 = (_local20 / _local21); }; }; if (_local7 < _local6){ return (false); }; _local19++; }; if (_local18 >= 0){ _arg2[0] = _local6; _local10 = _arg1.R; _local11 = m_normals[_local18]; _arg3.x = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _arg3.y = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); return (true); }; return (false); } override public function ComputeMass(_arg1:b2MassData):void{ var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local2:Number = 0; var _local3:Number = 0; var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; var _local7:Number = 0; var _local8:Number = (1 / 3); var _local9:int; while (_local9 < m_vertexCount) { _local10 = m_vertices[_local9]; _local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[int((_local9 + 1))] : m_vertices[0]; _local12 = (_local10.x - _local6); _local13 = (_local10.y - _local7); _local14 = (_local11.x - _local6); _local15 = (_local11.y - _local7); _local16 = ((_local12 * _local15) - (_local13 * _local14)); _local17 = (0.5 * _local16); _local4 = (_local4 + _local17); _local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x))); _local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y))); _local18 = _local6; _local19 = _local7; _local20 = _local12; _local21 = _local13; _local22 = _local14; _local23 = _local15; _local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18)); _local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local5 = (_local5 + (_local16 * (_local24 + _local25))); _local9++; }; _arg1.mass = (m_density * _local4); _local2 = (_local2 * (1 / _local4)); _local3 = (_local3 * (1 / _local4)); _arg1.center.Set(_local2, _local3); _arg1.I = (m_density * _local5); } public function GetNormals():Array{ return (m_normals); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Vec2; var _local5:b2Mat22; var _local11:Number; _local5 = _arg1.R; var _local6:Number = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y)); var _local7:Number = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y)); var _local8:int; _local4 = m_coreVertices[0]; var _local9:Number = ((_local4.x * _local6) + (_local4.y * _local7)); var _local10 = 1; while (_local10 < m_vertexCount) { _local4 = m_coreVertices[_local10]; _local11 = ((_local4.x * _local6) + (_local4.y * _local7)); if (_local11 > _local9){ _local8 = _local10; _local9 = _local11; }; _local10++; }; _local5 = _arg1.R; _local4 = m_coreVertices[_local8]; s_supportVec.x = (_arg1.position.x + ((_local5.col1.x * _local4.x) + (_local5.col2.x * _local4.y))); s_supportVec.y = (_arg1.position.y + ((_local5.col1.y * _local4.x) + (_local5.col2.y * _local4.y))); return (s_supportVec); } public function GetVertexCount():int{ return (m_vertexCount); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22 = s_computeMat; _local3 = _arg2.R; _local4 = m_obb.R.col1; _local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local4 = m_obb.R.col2; _local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local5.Abs(); var _local6:b2Mat22 = _local5; _local4 = m_obb.extents; var _local7:Number = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); var _local8:Number = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; var _local9:Number = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); var _local10:Number = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8)); _arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8)); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:b2Vec2; var _local4:Number; var _local5:Number; m_sweepRadius = 0; var _local3:int; while (_local3 < m_vertexCount) { _local2 = m_coreVertices[_local3]; _local4 = (_local2.x - _arg1.x); _local5 = (_local2.y - _arg1.y); _local4 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); if (_local4 > m_sweepRadius){ m_sweepRadius = _local4; }; _local3++; }; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Vec2; var _local10:Number; var _local4:b2Mat22 = _arg1.R; var _local5:Number = (_arg2.x - _arg1.position.x); var _local6:Number = (_arg2.y - _arg1.position.y); var _local7:Number = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); var _local8:Number = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); var _local9:int; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local7:Number; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local3 = new b2Vec2(); var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; _local7 = (1 / 3); var _local8:int; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0]; _local11 = (_local9.x - _local5); _local12 = (_local9.y - _local6); _local13 = (_local10.x - _local5); _local14 = (_local10.y - _local6); _local15 = ((_local11 * _local14) - (_local12 * _local13)); _local16 = (0.5 * _local15); _local4 = (_local4 + _local16); _local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x))); _local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y))); _local8++; }; _local3.x = (_local3.x * (1 / _local4)); _local3.y = (_local3.y * (1 / _local4)); return (_local3); } public static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{ var _local4:int; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:b2Mat22; var _local5:Array = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; var _local6:Number = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[int((_local4 - 1))]; _local8 = (_local5[_local4].x - _local7.x); _local9 = (_local5[_local4].y - _local7.y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = -(_local9); _local12 = _local8; _local13 = Number.MAX_VALUE; _local14 = Number.MAX_VALUE; _local15 = -(Number.MAX_VALUE); _local16 = -(Number.MAX_VALUE); _local17 = 0; while (_local17 < _arg3) { _local19 = (_local5[_local17].x - _local7.x); _local20 = (_local5[_local17].y - _local7.y); _local21 = ((_local8 * _local19) + (_local9 * _local20)); _local22 = ((_local11 * _local19) + (_local12 * _local20)); if (_local21 < _local13){ _local13 = _local21; }; if (_local22 < _local14){ _local14 = _local22; }; if (_local21 > _local15){ _local15 = _local21; }; if (_local22 > _local16){ _local16 = _local22; }; _local17++; }; _local18 = ((_local15 - _local13) * (_local16 - _local14)); if (_local18 < (0.95 * _local6)){ _local6 = _local18; _arg1.R.col1.x = _local8; _arg1.R.col1.y = _local9; _arg1.R.col2.x = _local11; _arg1.R.col2.y = _local12; _local23 = (0.5 * (_local13 + _local15)); _local24 = (0.5 * (_local14 + _local16)); _local25 = _arg1.R; _arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24))); _arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24))); _arg1.extents.x = (0.5 * (_local15 - _local13)); _arg1.extents.y = (0.5 * (_local16 - _local14)); }; _local4++; }; } } }//package Box2D.Collision.Shapes
Section 7
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2Shape { public var m_next:b2Shape; public var m_type:int; public var m_sweepRadius:Number; public var m_density:Number; public var m_filter:b2FilterData; public var m_friction:Number; public var m_isSensor:Boolean; public var m_restitution:Number; public var m_userData; public var m_proxyId:uint; public var m_body:b2Body; public static const e_polygonShape:int = 1; public static const e_unknownShape:int = -1; public static const e_circleShape:int = 0; public static const e_shapeTypeCount:int = 2; private static var s_resetAABB:b2AABB = new b2AABB(); private static var s_syncAABB:b2AABB = new b2AABB(); private static var s_proxyAABB:b2AABB = new b2AABB(); public function b2Shape(_arg1:b2ShapeDef){ m_userData = _arg1.userData; m_friction = _arg1.friction; m_restitution = _arg1.restitution; m_density = _arg1.density; m_body = null; m_sweepRadius = 0; m_next = null; m_proxyId = b2Pair.b2_nullProxy; m_filter = _arg1.filter.Copy(); m_isSensor = _arg1.isSensor; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetSweepRadius():Number{ return (m_sweepRadius); } public function GetNext():b2Shape{ return (m_next); } public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ } public function GetType():int{ return (m_type); } public function GetRestitution():Number{ return (m_restitution); } public function GetFriction():Number{ return (m_friction); } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ return (false); } public function RefilterProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _arg1.DestroyProxy(m_proxyId); var _local3:b2AABB = s_resetAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } public function GetUserData(){ return (m_userData); } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; var _local4:b2AABB = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxyId, _local4); return (true); }; return (false); } public function ComputeMass(_arg1:b2MassData):void{ } public function IsSensor():Boolean{ return (m_isSensor); } public function DestroyProxy(_arg1:b2BroadPhase):void{ if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); m_proxyId = b2Pair.b2_nullProxy; }; } public function UpdateSweepRadius(_arg1:b2Vec2):void{ } public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ } public function GetBody():b2Body{ return (m_body); } public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB = s_proxyAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } public static function Destroy(_arg1:b2Shape, _arg2):void{ } public static function Create(_arg1:b2ShapeDef, _arg2):b2Shape{ switch (_arg1.type){ case e_circleShape: return (new b2CircleShape(_arg1)); case e_polygonShape: return (new b2PolygonShape(_arg1)); default: return (null); }; } } }//package Box2D.Collision.Shapes
Section 8
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { public class b2ShapeDef { public var friction:Number;// = 0.2 public var isSensor:Boolean;// = false public var density:Number;// = 0 public var restitution:Number;// = 0 public var userData;// = null public var filter:b2FilterData; public var type:int; public function b2ShapeDef(){ type = b2Shape.e_unknownShape; filter = new b2FilterData(); super(); } } }//package Box2D.Collision.Shapes
Section 9
//b2AABB (Box2D.Collision.b2AABB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2AABB { public var upperBound:b2Vec2; public var lowerBound:b2Vec2; public function b2AABB(){ lowerBound = new b2Vec2(); upperBound = new b2Vec2(); super(); } public function IsValid():Boolean{ var _local1:Number = (upperBound.x - lowerBound.x); var _local2:Number = (upperBound.y - lowerBound.y); var _local3:Boolean = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } }//package Box2D.Collision
Section 10
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var value:uint; public var proxyId:uint; public var stabbingCount:uint; public function Swap(_arg1:b2Bound):void{ var _local2:uint = value; var _local3:uint = proxyId; var _local4:uint = stabbingCount; value = _arg1.value; proxyId = _arg1.proxyId; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxyId = _local3; _arg1.stabbingCount = _local4; } public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } } }//package Box2D.Collision
Section 11
//b2BoundValues (Box2D.Collision.b2BoundValues) package Box2D.Collision { public class b2BoundValues { public var lowerValues:Array; public var upperValues:Array; public function b2BoundValues(){ lowerValues = [0, 0]; upperValues = [0, 0]; super(); } } }//package Box2D.Collision
Section 12
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_bounds:Array; public var m_quantizationFactor:b2Vec2; public var m_worldAABB:b2AABB; public var m_freeProxy:uint; public var m_proxyCount:int; public var m_proxyPool:Array; public var m_queryResultCount:int; public var m_pairManager:b2PairManager; public var m_timeStamp:uint; public var m_queryResults:Array; public static const b2_nullEdge:uint = 0xFFFF; public static const b2_invalid:uint = 0xFFFF; public static var s_validate:Boolean = false; public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){ var _local3:int; var _local5:Number; var _local6:b2Proxy; var _local7:int; m_pairManager = new b2PairManager(); m_proxyPool = new Array(b2Settings.b2_maxPairs); m_bounds = new Array((2 * b2Settings.b2_maxProxies)); m_queryResults = new Array(b2Settings.b2_maxProxies); m_quantizationFactor = new b2Vec2(); super(); m_pairManager.Initialize(this, _arg2); m_worldAABB = _arg1; m_proxyCount = 0; _local3 = 0; while (_local3 < b2Settings.b2_maxProxies) { m_queryResults[_local3] = 0; _local3++; }; m_bounds = new Array(2); _local3 = 0; while (_local3 < 2) { m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies)); _local7 = 0; while (_local7 < (2 * b2Settings.b2_maxProxies)) { m_bounds[_local3][_local7] = new b2Bound(); _local7++; }; _local3++; }; var _local4:Number = (_arg1.upperBound.x - _arg1.lowerBound.x); _local5 = (_arg1.upperBound.y - _arg1.lowerBound.y); m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4); m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5); _local3 = 0; while (_local3 < (b2Settings.b2_maxProxies - 1)) { _local6 = new b2Proxy(); m_proxyPool[_local3] = _local6; _local6.SetNext((_local3 + 1)); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; _local3++; }; _local6 = new b2Proxy(); m_proxyPool[int((b2Settings.b2_maxProxies - 1))] = _local6; _local6.SetNext(b2Pair.b2_nullProxy); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; m_freeProxy = 0; m_timeStamp = 1; m_queryResultCount = 0; } public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{ var _local6:uint; var _local7:uint; var _local12:b2Proxy; var _local4:Array = new Array(); var _local5:Array = new Array(); ComputeBounds(_local4, _local5, _arg1); var _local8:Array = [_local6]; var _local9:Array = [_local7]; Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0); Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1); var _local10:int; var _local11:int; while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) { _local12 = m_proxyPool[m_queryResults[_local11]]; _arg2[_local11] = _local12.userData; _local11++; _local10++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local10); } public function Commit():void{ m_pairManager.Commit(); } public function GetProxy(_arg1:int):b2Proxy{ var _local2:b2Proxy = m_proxyPool[_arg1]; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((_local2.IsValid() == false)))){ return (null); }; return (_local2); } private function IncrementTimeStamp():void{ var _local1:uint; if (m_timeStamp == b2Settings.USHRT_MAX){ _local1 = 0; while (_local1 < b2Settings.b2_maxProxies) { (m_proxyPool[_local1] as b2Proxy).timeStamp = 0; _local1++; }; m_timeStamp = 1; } else { m_timeStamp++; }; } private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{ var _local10:b2Bound; var _local12:int; var _local13:int; var _local14:b2Proxy; var _local8:uint = BinarySearch(_arg5, _arg6, _arg3); var _local9:uint = BinarySearch(_arg5, _arg6, _arg4); var _local11:uint = _local8; while (_local11 < _local9) { _local10 = _arg5[_local11]; if (_local10.IsLower()){ IncrementOverlapCount(_local10.proxyId); }; _local11++; }; if (_local8 > 0){ _local12 = (_local8 - 1); _local10 = _arg5[_local12]; _local13 = _local10.stabbingCount; while (_local13) { _local10 = _arg5[_local12]; if (_local10.IsLower()){ _local14 = m_proxyPool[_local10.proxyId]; if (_local8 <= _local14.upperBounds[_arg7]){ IncrementOverlapCount(_local10.proxyId); _local13--; }; }; _local12--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local6:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg1.lowerBounds[_local3]]; _local6 = _local4[_arg2.upperBounds[_local3]]; if (_local5.value > _local6.value){ return (false); }; _local5 = _local4[_arg1.upperBounds[_local3]]; _local6 = _local4[_arg2.lowerBounds[_local3]]; if (_local5.value < _local6.value){ return (false); }; _local3++; }; return (true); } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number = _arg3.lowerBound.x; var _local5:Number = _arg3.lowerBound.y; _local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x); _local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y); _local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x); _local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y); var _local6:Number = _arg3.upperBound.x; var _local7:Number = _arg3.upperBound.y; _local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x); _local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y); _local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x); _local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y); _arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1)); _arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1); _arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1)); _arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1); } public function CreateProxy(_arg1:b2AABB, _arg2):uint{ var _local3:uint; var _local4:b2Proxy; var _local11:Array; var _local12:uint; var _local13:uint; var _local14:Array; var _local15:Array; var _local16:Array; var _local17:int; var _local18:int; var _local19:b2Bound; var _local20:b2Bound; var _local21:b2Bound; var _local22:int; var _local23:b2Proxy; var _local5:uint = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; var _local6:uint = (2 * m_proxyCount); var _local7:Array = new Array(); var _local8:Array = new Array(); ComputeBounds(_local7, _local8, _arg1); var _local9:int; while (_local9 < 2) { _local11 = m_bounds[_local9]; _local14 = [_local12]; _local15 = [_local13]; Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9); _local12 = _local14[0]; _local13 = _local15[0]; _local16 = new Array(); _local18 = (_local6 - _local13); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local13 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local13 + 2); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local16 = new Array(); _local18 = (_local13 - _local12); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local12 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local12 + 1); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local13++; _local19 = _local11[_local12]; _local20 = _local11[_local13]; _local19.value = _local7[_local9]; _local19.proxyId = _local5; _local20.value = _local8[_local9]; _local20.proxyId = _local5; _local21 = _local11[int((_local12 - 1))]; _local19.stabbingCount = ((_local12 == 0)) ? 0 : _local21.stabbingCount; _local21 = _local11[int((_local13 - 1))]; _local20.stabbingCount = _local21.stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local21 = _local11[_local3]; _local21.stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local6 + 2)) { _local19 = _local11[_local3]; _local23 = m_proxyPool[_local19.proxyId]; if (_local19.IsLower()){ _local23.lowerBounds[_local9] = _local3; } else { _local23.upperBounds[_local9] = _local3; }; _local3++; }; _local9++; }; m_proxyCount++; var _local10:int; while (_local10 < m_queryResultCount) { m_pairManager.AddBufferedPair(_local5, m_queryResults[_local10]); _local10++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); return (_local5); } public function DestroyProxy(_arg1:uint):void{ var _local2:b2Bound; var _local3:b2Bound; var _local8:Array; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:Array; var _local14:int; var _local15:int; var _local16:int; var _local17:uint; var _local18:int; var _local19:b2Proxy; var _local4:b2Proxy = m_proxyPool[_arg1]; var _local5:int = (2 * m_proxyCount); var _local6:int; while (_local6 < 2) { _local8 = m_bounds[_local6]; _local9 = _local4.lowerBounds[_local6]; _local10 = _local4.upperBounds[_local6]; _local2 = _local8[_local9]; _local11 = _local2.value; _local3 = _local8[_local10]; _local12 = _local3.value; _local13 = new Array(); _local15 = ((_local10 - _local9) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local9 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = _local9; _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local13 = new Array(); _local15 = ((_local5 - _local10) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local10 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = (_local10 - 1); _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = (_local5 - 2); _local17 = _local9; while (_local17 < _local15) { _local2 = _local8[_local17]; _local19 = m_proxyPool[_local2.proxyId]; if (_local2.IsLower()){ _local19.lowerBounds[_local6] = _local17; } else { _local19.upperBounds[_local6] = _local17; }; _local17++; }; _local15 = (_local10 - 1); _local18 = _local9; while (_local18 < _local15) { _local2 = _local8[_local18]; _local2.stabbingCount--; _local18++; }; Query([0], [0], _local11, _local12, _local8, (_local5 - 2), _local6); _local6++; }; var _local7:int; while (_local7 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local7]); _local7++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _local4.userData = null; _local4.overlapCount = b2_invalid; _local4.lowerBounds[0] = b2_invalid; _local4.lowerBounds[1] = b2_invalid; _local4.upperBounds[0] = b2_invalid; _local4.upperBounds[1] = b2_invalid; _local4.SetNext(m_freeProxy); m_freeProxy = _arg1; m_proxyCount--; } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg2.upperBounds[_local3]]; if (_arg1.lowerValues[_local3] > _local5.value){ return (false); }; _local5 = _local4[_arg2.lowerBounds[_local3]]; if (_arg1.upperValues[_local3] < _local5.value){ return (false); }; _local3++; }; return (true); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; var _local5:int; while (_local5 < 2) { _local6 = m_bounds[_local5]; _local7 = (2 * m_proxyCount); _local8 = 0; _local9 = 0; while (_local9 < _local7) { _local10 = _local6[_local9]; if (_local10.IsLower() == true){ _local8++; } else { _local8--; }; _local9++; }; _local5++; }; } private function IncrementOverlapCount(_arg1:uint):void{ var _local2:b2Proxy = m_proxyPool[_arg1]; if (_local2.timeStamp < m_timeStamp){ _local2.timeStamp = m_timeStamp; _local2.overlapCount = 1; } else { _local2.overlapCount = 2; m_queryResults[m_queryResultCount] = _arg1; m_queryResultCount++; }; } public function InRange(_arg1:b2AABB):Boolean{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = _arg1.lowerBound.x; _local3 = _arg1.lowerBound.y; _local2 = (_local2 - m_worldAABB.upperBound.x); _local3 = (_local3 - m_worldAABB.upperBound.y); _local4 = m_worldAABB.lowerBound.x; _local5 = m_worldAABB.lowerBound.y; _local4 = (_local4 - _arg1.upperBound.x); _local5 = (_local5 - _arg1.upperBound.y); _local2 = b2Math.b2Max(_local2, _local4); _local3 = b2Math.b2Max(_local3, _local5); return ((b2Math.b2Max(_local2, _local3) < 0)); } public function MoveProxy(_arg1:uint, _arg2:b2AABB):void{ var _local3:Array; var _local4:int; var _local5:uint; var _local6:uint; var _local7:b2Bound; var _local8:b2Bound; var _local9:b2Bound; var _local10:uint; var _local11:b2Proxy; var _local16:Array; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:uint; var _local21:int; var _local22:int; var _local23:uint; var _local24:b2Proxy; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){ return; }; if (_arg2.IsValid() == false){ return; }; var _local12:uint = (2 * m_proxyCount); var _local13:b2Proxy = m_proxyPool[_arg1]; var _local14:b2BoundValues = new b2BoundValues(); ComputeBounds(_local14.lowerValues, _local14.upperValues, _arg2); var _local15:b2BoundValues = new b2BoundValues(); _local5 = 0; while (_local5 < 2) { _local7 = m_bounds[_local5][_local13.lowerBounds[_local5]]; _local15.lowerValues[_local5] = _local7.value; _local7 = m_bounds[_local5][_local13.upperBounds[_local5]]; _local15.upperValues[_local5] = _local7.value; _local5++; }; _local5 = 0; while (_local5 < 2) { _local16 = m_bounds[_local5]; _local17 = _local13.lowerBounds[_local5]; _local18 = _local13.upperBounds[_local5]; _local19 = _local14.lowerValues[_local5]; _local20 = _local14.upperValues[_local5]; _local7 = _local16[_local17]; _local21 = (_local19 - _local7.value); _local7.value = _local19; _local7 = _local16[_local18]; _local22 = (_local20 - _local7.value); _local7.value = _local20; if (_local21 < 0){ _local6 = _local17; while ((((_local6 > 0)) && ((_local19 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local8.proxyId]; _local8.stabbingCount++; if (_local8.IsUpper() == true){ if (TestOverlap(_local14, _local24)){ m_pairManager.AddBufferedPair(_arg1, _local23); }; _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; if (_local22 > 0){ _local6 = _local18; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local20)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount++; if (_local9.IsLower() == true){ if (TestOverlap(_local14, _local11)){ m_pairManager.AddBufferedPair(_arg1, _local10); }; _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local21 > 0){ _local6 = _local17; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local19)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount--; if (_local9.IsUpper()){ if (TestOverlap(_local15, _local11)){ m_pairManager.RemoveBufferedPair(_arg1, _local10); }; _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local22 < 0){ _local6 = _local18; while ((((_local6 > 0)) && ((_local20 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local23]; _local8.stabbingCount--; if (_local8.IsLower() == true){ if (TestOverlap(_local15, _local24)){ m_pairManager.RemoveBufferedPair(_arg1, _local23); }; _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; _local5++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local6:int; var _local7:b2Bound; var _local4:int; var _local5:int = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); _local7 = _arg1[_local6]; if (_local7.value > _arg3){ _local5 = (_local6 - 1); } else { if (_local7.value < _arg3){ _local4 = (_local6 + 1); } else { return (uint(_local6)); }; }; }; return (uint(_local4)); } } }//package Box2D.Collision
Section 13
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 14
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local11:b2Mat22; var _local12:b2Vec2; var _local25:Number; var _local6:int = _arg1.m_vertexCount; var _local7:Array = _arg1.m_vertices; var _local8:Array = _arg1.m_normals; var _local9:int = _arg4.m_vertexCount; var _local10:Array = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; var _local13:Number = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); var _local14:Number = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; var _local15:Number = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); var _local16:Number = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; var _local20:Number = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local21:Number = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; var _local22:Number = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local23:Number = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); var _local24:Number = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2 = _arg2.lowerBound; var _local4:b2Vec2 = _arg1.upperBound; var _local5:Number = (_local3.x - _local4.x); var _local6:Number = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; var _local7:Number = (_local3.x - _local4.x); var _local8:Number = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local12:b2Mat22; var _local13:b2Vec2; var _local20:ClipVertex; var _local23:Number; var _local7:int = _arg2.m_vertexCount; var _local8:Array = _arg2.m_normals; var _local9:int = _arg5.m_vertexCount; var _local10:Array = _arg5.m_vertices; var _local11:Array = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; var _local14:Number = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); var _local15:Number = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; var _local16:Number = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; var _local21:int = _local17; var _local22:int = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local21; _local20.id.features.incidentVertex = 0; _local20 = _arg1[1]; _local13 = _local10[_local22]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local22; _local20.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:ClipVertex; var _local13:b2PolygonShape; var _local14:b2PolygonShape; var _local17:int; var _local18:uint; var _local34:int; var _local37:b2Vec2; var _local38:Number; var _local39:b2ManifoldPoint; _arg1.pointCount = 0; var _local7:int; var _local8:Array = [_local7]; var _local9:Number = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5); _local7 = _local8[0]; if (_local9 > 0){ return; }; var _local10:int; var _local11:Array = [_local10]; var _local12:Number = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3); _local10 = _local11[0]; if (_local12 > 0){ return; }; var _local15:b2XForm = new b2XForm(); var _local16:b2XForm = new b2XForm(); var _local19:Number = 0.98; var _local20:Number = 0.001; if (_local12 > ((_local19 * _local9) + _local20)){ _local13 = _arg4; _local14 = _arg2; _local15.Set(_arg5); _local16.Set(_arg3); _local17 = _local10; _local18 = 1; } else { _local13 = _arg2; _local14 = _arg4; _local15.Set(_arg3); _local16.Set(_arg5); _local17 = _local7; _local18 = 0; }; var _local21:Array = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16); var _local22:int = _local13.m_vertexCount; var _local23:Array = _local13.m_vertices; var _local24:b2Vec2 = _local23[_local17]; var _local25:b2Vec2 = _local24.Copy(); if ((_local17 + 1) < _local22){ _local24 = _local23[int((_local17 + 1))]; _local37 = _local24.Copy(); } else { _local24 = _local23[0]; _local37 = _local24.Copy(); }; var _local26:b2Vec2 = b2Math.SubtractVV(_local37, _local25); var _local27:b2Vec2 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25)); _local27.Normalize(); var _local28:b2Vec2 = b2Math.b2CrossVF(_local27, 1); _local25 = b2Math.b2MulX(_local15, _local25); _local37 = b2Math.b2MulX(_local15, _local37); var _local29:Number = b2Math.b2Dot(_local28, _local25); var _local30:Number = -(b2Math.b2Dot(_local27, _local25)); var _local31:Number = b2Math.b2Dot(_local27, _local37); var _local32:Array = [new ClipVertex(), new ClipVertex()]; var _local33:Array = [new ClipVertex(), new ClipVertex()]; _local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30); if (_local34 < 2){ return; }; _local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31); if (_local34 < 2){ return; }; _arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy(); var _local35:int; var _local36:int; while (_local36 < b2Settings.b2_maxManifoldPoints) { _local6 = _local33[_local36]; _local38 = (b2Math.b2Dot(_local28, _local6.v) - _local29); if (_local38 <= 0){ _local39 = _arg1.points[_local35]; _local39.separation = _local38; _local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v); _local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v); _local39.id.key = _local6.id._key; _local39.id.features.flip = _local18; _local35++; }; _local36++; }; _arg1.pointCount = _local35; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local8:b2Vec2; var _local9:b2Mat22; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; var _local6:int = _arg2.m_vertexCount; var _local7:Array = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; var _local10:Number = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); var _local11:Number = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local9 = _arg3.R; _local8 = _arg2.m_centroid; _local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)))); _local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)))); var _local12:Number = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); var _local13:Number = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); var _local14:int; var _local15:Number = -(Number.MAX_VALUE); var _local16:int; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; var _local17:Number = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; var _local18:int = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); var _local19:Number = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); if (_local19 > 0){ return (_local19); }; var _local20:int = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; var _local21:Number = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); if (_local21 > 0){ return (_local21); }; if ((((_local19 > _local17)) && ((_local19 > _local21)))){ _local24 = -1; _local22 = _local18; _local23 = _local19; } else { if (_local21 > _local17){ _local24 = 1; _local22 = _local20; _local23 = _local21; } else { _arg1[0] = _local14; return (_local17); }; }; while (true) { if (_local24 == -1){ _local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1); } else { _local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; if (_local17 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; _local8 = _local5.v; _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); var _local10:Number = (b2Math.b2Dot(_arg3, _local8) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); var _local14 = _temp1; _arg1[_local14] = _arg2[0]; }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _local14 = _temp2; _arg1[_local14] = _arg2[1]; }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local18:Number; var _local24:Number; var _local25:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; var _local8:Number = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local9:Number = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; var _local10:Number = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local11:Number = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); var _local12:Number = (_local10 - _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local15:Number = _arg2.m_radius; var _local16:Number = _arg4.m_radius; var _local17:Number = (_local15 + _local16); if (_local14 > (_local17 * _local17)){ return; }; if (_local14 < Number.MIN_VALUE){ _local18 = -(_local17); _arg1.normal.Set(0, 1); } else { _local24 = Math.sqrt(_local14); _local18 = (_local24 - _local17); _local25 = (1 / _local24); _arg1.normal.x = (_local25 * _local12); _arg1.normal.y = (_local25 * _local13); }; _arg1.pointCount = 1; var _local19:b2ManifoldPoint = _arg1.points[0]; _local19.id.key = 0; _local19.separation = _local18; _local8 = (_local8 + (_local15 * _arg1.normal.x)); _local9 = (_local9 + (_local15 * _arg1.normal.y)); _local10 = (_local10 - (_local16 * _arg1.normal.x)); _local11 = (_local11 - (_local16 * _arg1.normal.y)); var _local20:Number = (0.5 * (_local8 + _local10)); var _local21:Number = (0.5 * (_local9 + _local11)); var _local22:Number = (_local20 - _arg3.position.x); var _local23:Number = (_local21 - _arg3.position.y); _local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y)); _local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y)); _local22 = (_local20 - _arg5.position.x); _local23 = (_local21 - _arg5.position.y); _local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y)); _local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y)); } public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local17:Number; var _local32:Number; var _local33:Number; var _local34:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; var _local13:Number = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); var _local14:Number = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; var _local15:Number = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); var _local16:Number = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); var _local18:int; var _local19:Number = -(Number.MAX_VALUE); var _local20:Number = _arg4.m_radius; var _local21:int = _arg2.m_vertexCount; var _local22:Array = _arg2.m_vertices; var _local23:Array = _arg2.m_normals; var _local24:int; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _local34 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local34 > _local20){ return; }; if (_local34 > _local19){ _local19 = _local34; _local18 = _local24; }; _local24++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _local23[_local18]; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)); _arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local19 - _local20); return; }; var _local25:int = _local18; var _local26:int = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; _local11 = _local22[_local25]; var _local27:b2Vec2 = _local22[_local26]; var _local28:Number = (_local27.x - _local11.x); var _local29:Number = (_local27.y - _local11.y); var _local30:Number = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); var _local31:Number = ((_local7 * _local28) + (_local8 * _local29)); _local6 = _arg1.points[0]; if (_local31 <= 0){ _local32 = _local11.x; _local33 = _local11.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local25; } else { if (_local31 >= _local30){ _local32 = _local27.x; _local33 = _local27.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local26; } else { _local32 = ((_local28 * _local31) + _local11.x); _local33 = ((_local29 * _local31) + _local11.y); _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = 0; }; }; _local7 = (_local15 - _local32); _local8 = (_local16 - _local33); _local17 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local7 = (_local7 / _local17); _local8 = (_local8 / _local17); if (_local17 > _local20){ return; }; _arg1.pointCount = 1; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local7) + (_local12.col2.x * _local8)); _arg1.normal.y = ((_local12.col1.y * _local7) + (_local12.col2.y * _local8)); _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local17 - _local20); _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; } } }//package Box2D.Collision
Section 15
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { public class b2ContactID { public var _key:uint; public var features:Features; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID = new b2ContactID(); _local1.key = key; return (_local1); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceEdge = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } public function get key():uint{ return (_key); } } }//package Box2D.Collision
Section 16
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2ContactPoint { public var friction:Number; public var separation:Number; public var normal:b2Vec2; public var position:b2Vec2; public var restitution:Number; public var shape1:b2Shape; public var shape2:b2Shape; public var id:b2ContactID; public var velocity:b2Vec2; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 17
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Distance { private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); public static var g_GJK_Iterations:int = 0; public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local6:b2Vec2; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local4:Number = (100 * Number.MIN_VALUE); var _local5:int; while (_local5 < _arg3) { _local6 = _arg2[_local5]; _local7 = Math.abs((_arg1.x - _local6.x)); _local8 = Math.abs((_arg1.y - _local6.y)); _local9 = Math.max(Math.abs(_arg1.x), Math.abs(_local6.x)); _local10 = Math.max(Math.abs(_arg1.y), Math.abs(_local6.y)); if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:b2Vec2; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:int; var _local8:Array = s_p1s; var _local9:Array = s_p2s; var _local10:Array = s_points; var _local11:int; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); var _local12:Number = 0; var _local13 = 20; var _local14:int; while (_local14 < _local13) { _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local17 = _arg3.Support(_arg4, _local15, _local16); _local18 = _arg5.Support(_arg6, -(_local15), -(_local16)); _local12 = ((_local15 * _local15) + (_local16 * _local16)); _local19 = (_local18.x - _local17.x); _local20 = (_local18.y - _local17.y); _local21 = ((_local15 * _local19) + (_local16 * _local20)); if ((_local12 - ((_local15 * _local19) + (_local16 * _local20))) <= (0.01 * _local12)){ if (_local11 == 0){ _arg1.SetV(_local17); _arg2.SetV(_local18); }; g_GJK_Iterations = _local14; return (Math.sqrt(_local12)); }; switch (_local11){ case 0: _local7 = _local8[0]; _local7.SetV(_local17); _local7 = _local9[0]; _local7.SetV(_local18); _local7 = _local10[0]; _local7.x = _local19; _local7.y = _local20; _arg1.SetV(_local8[0]); _arg2.SetV(_local9[0]); _local11++; break; case 1: _local7 = _local8[1]; _local7.SetV(_local17); _local7 = _local9[1]; _local7.SetV(_local18); _local7 = _local10[1]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10); break; case 2: _local7 = _local8[2]; _local7.SetV(_local17); _local7 = _local9[2]; _local7.SetV(_local18); _local7 = _local10[2]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10); break; }; if (_local11 == 3){ g_GJK_Iterations = _local14; return (0); }; _local22 = -(Number.MAX_VALUE); _local23 = 0; while (_local23 < _local11) { _local7 = _local10[_local23]; _local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y))); _local23++; }; if ((((_local11 == 3)) || ((_local12 <= ((100 * Number.MIN_VALUE) * _local22))))){ g_GJK_Iterations = _local14; _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local12 = ((_local15 * _local15) + (_local16 * _local16)); return (Math.sqrt(_local12)); }; _local14++; }; g_GJK_Iterations = _local13; return (Math.sqrt(_local12)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; var _local9:Number = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local10:Number = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; var _local11:Number = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local12:Number = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:Number = ((_local13 * _local13) + (_local14 * _local14)); var _local16:Number = (_arg3.m_radius - b2Settings.b2_toiSlop); var _local17:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); var _local18:Number = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _local20 = (_local19 - _local18); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = (_local11 - (_local17 * _local13)); _arg2.y = (_local12 - (_local17 * _local14)); return (_local20); }; if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; _arg1.x = _local9; _arg1.y = _local10; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:b2Vec2; var _local35:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg5[2]; _local9 = _arg3[0]; _local10 = _arg3[1]; _local11 = _arg3[2]; _local12 = _arg4[0]; _local13 = _arg4[1]; var _local14:b2Vec2 = _arg4[2]; var _local15:Number = _local6.x; var _local16:Number = _local6.y; var _local17:Number = _local7.x; var _local18:Number = _local7.y; var _local19:Number = _local8.x; var _local20:Number = _local8.y; var _local21:Number = (_local17 - _local15); var _local22:Number = (_local18 - _local16); var _local23:Number = (_local19 - _local15); var _local24:Number = (_local20 - _local16); var _local25:Number = (_local19 - _local17); var _local26:Number = (_local20 - _local18); var _local27:Number = -(((_local15 * _local21) + (_local16 * _local22))); var _local28:Number = ((_local17 * _local21) + (_local18 * _local22)); var _local29:Number = -(((_local15 * _local23) + (_local16 * _local24))); var _local30:Number = ((_local19 * _local23) + (_local20 * _local24)); var _local31:Number = -(((_local17 * _local25) + (_local18 * _local26))); var _local32:Number = ((_local19 * _local25) + (_local20 * _local26)); if ((((_local30 <= 0)) && ((_local32 <= 0)))){ _arg1.SetV(_local11); _arg2.SetV(_local14); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (1); }; var _local33:Number = ((_local21 * _local24) - (_local22 * _local23)); var _local34:Number = (_local33 * ((_local15 * _local18) - (_local16 * _local17))); var _local36:Number = (_local33 * ((_local17 * _local20) - (_local18 * _local19))); if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){ _local35 = (_local31 / (_local31 + _local32)); _arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x))); _arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y))); _arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x))); _arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y))); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (2); }; var _local37:Number = (_local33 * ((_local19 * _local16) - (_local20 * _local15))); if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){ _local35 = (_local29 / (_local29 + _local30)); _arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x))); _arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y))); _arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x))); _arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y))); _local10.SetV(_local11); _local13.SetV(_local14); _local7.SetV(_local8); return (2); }; var _local38:Number = ((_local36 + _local37) + _local34); _local38 = (1 / _local38); var _local39:Number = (_local36 * _local38); var _local40:Number = (_local37 * _local38); var _local41:Number = ((1 - _local39) - _local40); _arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x)); _arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y)); _arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x)); _arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y)); return (3); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local9:b2Point = gPoint; _local8 = _arg5.m_localPosition; _local7 = _arg6.R; _local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local10:Number = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); var _local11:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); if (_local10 > _local11){ _local10 = (_local10 - _local11); _local12 = (_arg2.x - _arg1.x); _local13 = (_arg2.y - _arg1.y); _local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13))); _local12 = (_local12 / _local14); _local13 = (_local13 / _local14); _arg2.x = (_arg2.x - (_local11 * _local12)); _arg2.y = (_arg2.y - (_local11 * _local13)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ var _local7:int = _arg3.m_type; var _local8:int = _arg5.m_type; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6)); }; return (0); } public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local17:Number; var _local6:b2Vec2 = _arg5[0]; var _local7:b2Vec2 = _arg5[1]; var _local8:b2Vec2 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; var _local12:Number = -(_local7.x); var _local13:Number = -(_local7.y); var _local14:Number = (_local6.x - _local7.x); var _local15:Number = (_local6.y - _local7.y); var _local16:Number = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); _local14 = (_local14 / _local16); _local15 = (_local15 / _local16); _local17 = ((_local12 * _local14) + (_local13 * _local15)); if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){ _arg1.SetV(_local9); _arg2.SetV(_local11); _local8.SetV(_local9); _local10.SetV(_local11); _local6.SetV(_local7); return (1); }; _local17 = (_local17 / _local16); _arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x))); _arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y))); _arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x))); _arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y))); return (2); } } }//package Box2D.Collision
Section 18
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var pointCount:int;// = 0 public var normal:b2Vec2; public var points:Array; public function b2Manifold(){ points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Set(_arg1:b2Manifold):void{ pointCount = _arg1.pointCount; var _local2:int; while (_local2 < b2Settings.b2_maxManifoldPoints) { (points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]); _local2++; }; normal.SetV(_arg1.normal); } public function Reset():void{ var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } } }//package Box2D.Collision
Section 19
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var separation:Number; public var localPoint2:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var localPoint1:b2Vec2; public var id:b2ContactID; public function b2ManifoldPoint(){ localPoint1 = new b2Vec2(); localPoint2 = new b2Vec2(); id = new b2ContactID(); super(); } public function Set(_arg1:b2ManifoldPoint):void{ localPoint1.SetV(_arg1.localPoint1); localPoint2.SetV(_arg1.localPoint2); separation = _arg1.separation; normalImpulse = _arg1.normalImpulse; tangentImpulse = _arg1.tangentImpulse; id.key = _arg1.id.key; } public function Reset():void{ localPoint1.SetZero(); localPoint2.SetZero(); separation = 0; normalImpulse = 0; tangentImpulse = 0; id.key = 0; } } }//package Box2D.Collision
Section 20
//b2OBB (Box2D.Collision.b2OBB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2OBB { public var R:b2Mat22; public var center:b2Vec2; public var extents:b2Vec2; public function b2OBB(){ R = new b2Mat22(); center = new b2Vec2(); extents = new b2Vec2(); super(); } } }//package Box2D.Collision
Section 21
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var proxyId1:uint; public var userData;// = null public var proxyId2:uint; public var status:uint; public var next:uint; public static var e_pairFinal:uint = 4; public static var b2_tableMask:int = (b2_tableCapacity - 1); public static var e_pairRemoved:uint = 2; public static var b2_nullPair:uint = b2Settings.USHRT_MAX; public static var e_pairBuffered:uint = 1; public static var b2_nullProxy:uint = b2Settings.USHRT_MAX; public static var b2_tableCapacity:int = b2Settings.b2_maxPairs; public function SetBuffered():void{ status = (status | e_pairBuffered); } public function IsBuffered():Boolean{ return (((status & e_pairBuffered) == e_pairBuffered)); } public function IsFinal():Boolean{ return (((status & e_pairFinal) == e_pairFinal)); } public function ClearRemoved():void{ status = (status & ~(e_pairRemoved)); } public function SetFinal():void{ status = (status | e_pairFinal); } public function IsRemoved():Boolean{ return (((status & e_pairRemoved) == e_pairRemoved)); } public function ClearBuffered():void{ status = (status & ~(e_pairBuffered)); } public function SetRemoved():void{ status = (status | e_pairRemoved); } } }//package Box2D.Collision
Section 22
//b2PairCallback (Box2D.Collision.b2PairCallback) package Box2D.Collision { public class b2PairCallback { public function PairRemoved(_arg1, _arg2, _arg3):void{ } public function PairAdded(_arg1, _arg2){ return (null); } } }//package Box2D.Collision
Section 23
//b2PairManager (Box2D.Collision.b2PairManager) package Box2D.Collision { import Box2D.Common.*; public class b2PairManager { public var m_pairCount:int; public var m_pairBuffer:Array; public var m_hashTable:Array; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_pairBufferCount:int; public var m_broadPhase:b2BroadPhase; public var m_freePair:uint; public function b2PairManager(){ var _local1:uint; super(); m_hashTable = new Array(b2Pair.b2_tableCapacity); _local1 = 0; while (_local1 < b2Pair.b2_tableCapacity) { m_hashTable[_local1] = b2Pair.b2_nullPair; _local1++; }; m_pairs = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1] = new b2Pair(); _local1++; }; m_pairBuffer = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairBuffer[_local1] = new b2BufferedPair(); _local1++; }; _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1].proxyId1 = b2Pair.b2_nullProxy; m_pairs[_local1].proxyId2 = b2Pair.b2_nullProxy; m_pairs[_local1].userData = null; m_pairs[_local1].status = 0; m_pairs[_local1].next = (_local1 + 1); _local1++; }; m_pairs[int((b2Settings.b2_maxPairs - 1))].next = b2Pair.b2_nullPair; m_pairCount = 0; m_pairBufferCount = 0; } private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{ var _local4:b2Pair; var _local5:uint = m_hashTable[_arg3]; _local4 = m_pairs[_local5]; while (((!((_local5 == b2Pair.b2_nullPair))) && ((Equals(_local4, _arg1, _arg2) == false)))) { _local5 = _local4.next; _local4 = m_pairs[_local5]; }; if (_local5 == b2Pair.b2_nullPair){ return (null); }; return (_local4); } private function Find(_arg1:uint, _arg2:uint):b2Pair{ var _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function ValidateBuffer():void{ } public function Commit():void{ var _local1:b2BufferedPair; var _local2:int; var _local5:b2Pair; var _local6:b2Proxy; var _local7:b2Proxy; var _local3:int; var _local4:Array = m_broadPhase.m_proxyPool; _local2 = 0; while (_local2 < m_pairBufferCount) { _local1 = m_pairBuffer[_local2]; _local5 = Find(_local1.proxyId1, _local1.proxyId2); _local5.ClearBuffered(); _local6 = _local4[_local5.proxyId1]; _local7 = _local4[_local5.proxyId2]; if (_local5.IsRemoved()){ if (_local5.IsFinal() == true){ m_callback.PairRemoved(_local6.userData, _local7.userData, _local5.userData); }; _local1 = m_pairBuffer[_local3]; _local1.proxyId1 = _local5.proxyId1; _local1.proxyId2 = _local5.proxyId2; _local3++; } else { if (_local5.IsFinal() == false){ _local5.userData = m_callback.PairAdded(_local6.userData, _local7.userData); _local5.SetFinal(); }; }; _local2++; }; _local2 = 0; while (_local2 < _local3) { _local1 = m_pairBuffer[_local2]; RemovePair(_local1.proxyId1, _local1.proxyId2); _local2++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = Find(_arg1, _arg2); if (_local4 == null){ return; }; if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:b2Pair; var _local7:uint; var _local8:uint; var _local9:*; if (_arg1 > _arg2){ _local7 = _arg1; _arg1 = _arg2; _arg2 = _local7; }; var _local4:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local5:uint = m_hashTable[_local4]; var _local6:b2Pair; while (_local5 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local5], _arg1, _arg2)){ _local8 = _local5; _local3 = m_pairs[_local5]; if (_local6){ _local6.next = _local3.next; } else { m_hashTable[_local4] = _local3.next; }; _local3 = m_pairs[_local8]; _local9 = _local3.userData; _local3.next = m_freePair; _local3.proxyId1 = b2Pair.b2_nullProxy; _local3.proxyId2 = b2Pair.b2_nullProxy; _local3.userData = null; _local3.status = 0; m_freePair = _local8; m_pairCount--; return (_local9); } else { _local6 = m_pairs[_local5]; _local5 = _local6.next; }; }; return (null); } public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{ m_broadPhase = _arg1; m_callback = _arg2; } public function AddBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = AddPair(_arg1, _arg2); if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; var _local5:uint = m_freePair; _local4 = m_pairs[_local5]; m_freePair = _local4.next; _local4.proxyId1 = _arg1; _local4.proxyId2 = _arg2; _local4.status = 0; _local4.userData = null; _local4.next = m_hashTable[_local3]; m_hashTable[_local3] = _local5; m_pairCount++; return (_local4); } private function ValidateTable():void{ } public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{ return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2)))); } public static function Hash(_arg1:uint, _arg2:uint):uint{ var _local3:uint = (((_arg2 << 16) & 4294901760) | _arg1); _local3 = (~(_local3) + ((_local3 << 15) & 4294934528)); _local3 = (_local3 ^ ((_local3 >> 12) & 1048575)); _local3 = (_local3 + ((_local3 << 2) & 4294967292)); _local3 = (_local3 ^ ((_local3 >> 4) & 268435455)); _local3 = (_local3 * 2057); _local3 = (_local3 ^ ((_local3 >> 16) & 0xFFFF)); return (_local3); } public static function Equals(_arg1:b2Pair, _arg2:uint, _arg3:uint):Boolean{ return ((((_arg1.proxyId1 == _arg2)) && ((_arg1.proxyId2 == _arg3)))); } } }//package Box2D.Collision
Section 24
//b2Point (Box2D.Collision.b2Point) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Point { public var p:b2Vec2; public function b2Point(){ p = new b2Vec2(); super(); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (p); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ return (p); } } }//package Box2D.Collision
Section 25
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var overlapCount:uint; public var userData;// = null public var lowerBounds:Array; public var upperBounds:Array; public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; super(); } public function GetNext():uint{ return (lowerBounds[0]); } public function IsValid():Boolean{ return (!((overlapCount == b2BroadPhase.b2_invalid))); } public function SetNext(_arg1:uint):void{ lowerBounds[0] = (_arg1 & 0xFFFF); } } }//package Box2D.Collision
Section 26
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local5:b2Vec2 = _arg3.p1; var _local6:Number = (_arg3.p2.x - _local5.x); var _local7:Number = (_arg3.p2.y - _local5.y); var _local8:Number = (p2.x - p1.x); var _local9:Number = (p2.y - p1.y); var _local10:Number = _local9; var _local11:Number = -(_local8); var _local12:Number = (100 * Number.MIN_VALUE); var _local13:Number = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local7) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } } }//package Box2D.Collision
Section 27
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _local25:Number; var _local26:b2XForm; var _local27:b2XForm; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local7:Number = _arg1.m_sweepRadius; var _local8:Number = _arg3.m_sweepRadius; var _local9:Number = _arg2.t0; var _local10:Number = (_arg2.c.x - _arg2.c0.x); var _local11:Number = (_arg2.c.y - _arg2.c0.y); var _local12:Number = (_arg4.c.x - _arg4.c0.x); var _local13:Number = (_arg4.c.y - _arg4.c0.y); var _local14:Number = (_arg2.a - _arg2.a0); var _local15:Number = (_arg4.a - _arg4.a0); var _local16:Number = 0; var _local17:b2Vec2 = s_p1; var _local18:b2Vec2 = s_p2; var _local19 = 20; var _local20:int; var _local21:Number = 0; var _local22:Number = 0; var _local23:Number = 0; var _local24:Number = 0; while (true) { _local25 = (((1 - _local16) * _local9) + _local16); _local26 = s_xf1; _local27 = s_xf2; _arg2.GetXForm(_local26, _local25); _arg4.GetXForm(_local27, _local25); _local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27); if (_local20 == 0){ if (_local23 > (2 * b2Settings.b2_toiSlop)){ _local24 = (1.5 * b2Settings.b2_toiSlop); } else { _local5 = (0.05 * b2Settings.b2_toiSlop); _local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop)); _local24 = ((_local5 > _local6)) ? _local5 : _local6; }; }; if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){ break; }; _local21 = (_local18.x - _local17.x); _local22 = (_local18.y - _local17.y); _local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22))); _local21 = (_local21 / _local28); _local22 = (_local22 / _local28); _local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8)); if (_local29 == 0){ _local16 = 1; break; }; _local30 = ((_local23 - _local24) / _local29); _local31 = (_local16 + _local30); if ((((_local31 < 0)) || ((1 < _local31)))){ _local16 = 1; break; }; if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){ break; }; _local16 = _local31; _local20++; }; return (_local16); } } }//package Box2D.Collision
Section 28
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var id:b2ContactID; public var v:b2Vec2; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 29
//Features (Box2D.Collision.Features) package Box2D.Collision { public class Features { public var _referenceEdge:int; public var _incidentEdge:int; public var _flip:int; public var _incidentVertex:int; public var _m_id:b2ContactID; public function get referenceEdge():int{ return (_referenceEdge); } public function set incidentVertex(_arg1:int):void{ _incidentVertex = _arg1; _m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000)); } public function get flip():int{ return (_flip); } public function get incidentEdge():int{ return (_incidentEdge); } public function set referenceEdge(_arg1:int):void{ _referenceEdge = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } }//package Box2D.Collision
Section 30
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(_arg1:Number=0, _arg2:b2Vec2=null, _arg3:b2Vec2=null){ var _local4:Number; var _local5:Number; col1 = new b2Vec2(); col2 = new b2Vec2(); super(); if (((!((_arg2 == null))) && (!((_arg3 == null))))){ col1.SetV(_arg2); col2.SetV(_arg3); } else { _local4 = Math.cos(_arg1); _local5 = Math.sin(_arg1); col1.x = _local4; col2.x = -(_local5); col1.y = _local5; col2.y = _local4; }; } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function Set(_arg1:Number):void{ var _local2:Number; _local2 = Math.cos(_arg1); var _local3:Number = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function Abs():void{ col1.Abs(); col2.Abs(); } public function Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } public function Invert(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _local4:Number; var _local6:Number; _local2 = col1.x; var _local3:Number = col2.x; _local4 = col1.y; var _local5:Number = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number = col1.x; var _local5:Number = col2.x; var _local6:Number = col1.y; var _local7:Number = col2.y; var _local8:Number = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } }//package Box2D.Common.Math
Section 31
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Mat22_identity:b2Mat22 = new b2Mat22(0, new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2XForm_identity:b2XForm = new b2XForm(b2Vec2_zero, b2Mat22_identity); public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function b2MulX(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = b2MulMV(_arg1.R, _arg2); _local3.x = (_local3.x + _arg1.position.x); _local3.y = (_local3.y + _arg1.position.y); return (_local3); } public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:* = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function b2MulXT(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; var _local4:Number; _local3 = SubtractVV(_arg2, _arg1.position); _local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y)); _local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y)); _local3.x = _local4; return (_local3); } public static function b2Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (b2Max(_arg2, b2Min(_arg1, _arg3))); } public static function b2AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); var _local4:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); var _local5:b2Mat22 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (b2MaxV(_arg2, b2MinV(_arg1, _arg3))); } public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); return (_local3); } public static function b2Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function b2Random():Number{ return (((Math.random() * 2) - 1)); } public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2)); return (_local3); } public static function b2NextPowerOfTwo(_arg1:uint):uint{ _arg1 = (_arg1 | ((_arg1 >> 1) & 2147483647)); _arg1 = (_arg1 | ((_arg1 >> 2) & 1073741823)); _arg1 = (_arg1 | ((_arg1 >> 4) & 268435455)); _arg1 = (_arg1 | ((_arg1 >> 8) & 0xFFFFFF)); _arg1 = (_arg1 | ((_arg1 >> 16) & 0xFFFF)); return ((_arg1 + 1)); } public static function b2Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } } }//package Box2D.Common.Math
Section 32
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var a:Number; public var c:b2Vec2; public var a0:Number; public var c0:b2Vec2; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } public function Advance(_arg1:Number):void{ var _local2:Number; if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){ _local2 = ((_arg1 - t0) / (1 - t0)); c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x)); c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y)); a0 = (((1 - _local2) * a0) + (_local2 * a)); t0 = _arg1; }; } public function GetXForm(_arg1:b2XForm, _arg2:Number):void{ var _local4:Number; var _local5:Number; if ((1 - t0) > Number.MIN_VALUE){ _local4 = ((_arg2 - t0) / (1 - t0)); _arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x)); _arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y)); _local5 = (((1 - _local4) * a0) + (_local4 * a)); _arg1.R.Set(_local5); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; var _local3:b2Mat22 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } } }//package Box2D.Common.Math
Section 33
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { public class b2Vec2 { public var y:Number; public var x:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function MulM(_arg1:b2Mat22):void{ var _local2:Number = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function SetZero():void{ x = 0; y = 0; } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function Normalize():Number{ var _local1:Number = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; var _local2:Number = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function CrossVF(_arg1:Number):void{ var _local2:Number = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function MaxV(_arg1:b2Vec2):void{ x = ((x > _arg1.x)) ? x : _arg1.x; y = ((y > _arg1.y)) ? y : _arg1.y; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function Negative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function CrossFV(_arg1:Number):void{ var _local2:Number = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 34
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { public class b2XForm { public var position:b2Vec2; public var R:b2Mat22; public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } } }//package Box2D.Common.Math
Section 35
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _r:uint;// = 0 private var _g:uint;// = 0 private var _b:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function get color():uint{ return (((_r | (_g << 8)) | (_b << 16))); } public function set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set g(_arg1:Number):void{ _g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } } }//package Box2D.Common
Section 36
//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { import Box2D.Common.Math.*; public class b2Settings { public static const b2_angularSleepTolerance:Number = 0.0111111111111111; public static const b2_linearSleepTolerance:Number = 0.01; public static const b2_angularSlop:Number = 0.0349065850398866; public static const b2_linearSlop:Number = 0.005; public static const b2_pi:Number = 3.14159265358979; public static const b2_maxProxies:int = 0x0200; public static const b2_maxAngularVelocitySquared:Number = 62500; public static const b2_maxPolygonVertices:int = 8; public static const b2_velocityThreshold:Number = 1; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_maxPairs:int = 4096; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_timeToSleep:Number = 0.5; public static const b2_maxManifoldPoints:int = 2; public static const b2_maxAngularVelocity:Number = 250; public static const b2_maxAngularCorrection:Number = 0.139626340159546; public static const USHRT_MAX:int = 0xFFFF; public static const b2_maxLinearVelocity:Number = 200; public static const b2_maxLinearCorrection:Number = 0.2; public static const b2_toiSlop:Number = 0.04; public static const b2_maxLinearVelocitySquared:Number = 40000; public static function b2Assert(_arg1:Boolean):void{ var _local2:b2Vec2; if (!_arg1){ _local2.x++; }; } } }//package Box2D.Common
Section 37
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local8:b2ManifoldPoint; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf); var _local7:b2ContactPoint = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ m_manifoldCount = 1; _local8 = m_manifold.points[0]; if (m0.pointCount == 0){ _local8.normalImpulse = 0; _local8.tangentImpulse = 0; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Add(_local7); }; } else { _local4 = m0.points[0]; _local8.normalImpulse = _local4.normalImpulse; _local8.tangentImpulse = _local4.tangentImpulse; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Persist(_local7); }; }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = m0.points[0]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2CircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 38
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2Contact { public var m_shape1:b2Shape; public var m_shape2:b2Shape; public var m_prev:b2Contact; public var m_toi:Number; public var m_next:b2Contact; public var m_friction:Number; public var m_manifoldCount:int; public var m_node1:b2ContactEdge; public var m_node2:b2ContactEdge; public var m_restitution:Number; public var m_flags:uint; public static var e_toiFlag:uint = 8; public static var e_nonSolidFlag:uint = 1; public static var e_slowFlag:uint = 2; public static var e_islandFlag:uint = 4; public static var s_registers:Array; public static var s_initialized:Boolean = false; public function b2Contact(_arg1:b2Shape=null, _arg2:b2Shape=null){ m_node1 = new b2ContactEdge(); m_node2 = new b2ContactEdge(); super(); m_flags = 0; if (((!(_arg1)) || (!(_arg2)))){ m_shape1 = null; m_shape2 = null; return; }; if (((_arg1.IsSensor()) || (_arg2.IsSensor()))){ m_flags = (m_flags | e_nonSolidFlag); }; m_shape1 = _arg1; m_shape2 = _arg2; m_manifoldCount = 0; m_friction = Math.sqrt((m_shape1.m_friction * m_shape2.m_friction)); m_restitution = b2Math.b2Max(m_shape1.m_restitution, m_shape2.m_restitution); m_prev = null; m_next = null; m_node1.contact = null; m_node1.prev = null; m_node1.next = null; m_node1.other = null; m_node2.contact = null; m_node2.prev = null; m_node2.next = null; m_node2.other = null; } public function IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetShape1():b2Shape{ return (m_shape1); } public function GetShape2():b2Shape{ return (m_shape2); } public function GetNext():b2Contact{ return (m_next); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function GetManifolds():Array{ return (null); } public function Update(_arg1:b2ContactListener):void{ var _local2:int = m_manifoldCount; Evaluate(_arg1); var _local3:int = m_manifoldCount; var _local4:b2Body = m_shape1.m_body; var _local5:b2Body = m_shape2.m_body; if ((((_local3 == 0)) && ((_local2 > 0)))){ _local4.WakeUp(); _local5.WakeUp(); }; if (((((((_local4.IsStatic()) || (_local4.IsBullet()))) || (_local5.IsStatic()))) || (_local5.IsBullet()))){ m_flags = (m_flags & ~(e_slowFlag)); } else { m_flags = (m_flags | e_slowFlag); }; } public function Evaluate(_arg1:b2ContactListener):void{ } public static function InitializeRegisters():void{ var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); var _local1:int; while (_local1 < b2Shape.e_shapeTypeCount) { s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { s_registers[_local1][_local2] = new b2ContactRegister(); _local2++; }; _local1++; }; AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape); AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape); AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape); } public static function Destroy(_arg1:b2Contact, _arg2):void{ if (_arg1.m_manifoldCount > 0){ _arg1.m_shape1.m_body.WakeUp(); _arg1.m_shape2.m_body.WakeUp(); }; var _local3:int = _arg1.m_shape1.m_type; var _local4:int = _arg1.m_shape2.m_type; var _local5:b2ContactRegister = s_registers[_local3][_local4]; var _local6:Function = _local5.destroyFcn; _local6(_arg1, _arg2); } public static function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{ s_registers[_arg3][_arg4].createFcn = _arg1; s_registers[_arg3][_arg4].destroyFcn = _arg2; s_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ s_registers[_arg4][_arg3].createFcn = _arg1; s_registers[_arg4][_arg3].destroyFcn = _arg2; s_registers[_arg4][_arg3].primary = false; }; } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ var _local8:b2Contact; var _local9:int; var _local10:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; var _local4:int = _arg1.m_type; var _local5:int = _arg2.m_type; var _local6:b2ContactRegister = s_registers[_local4][_local5]; var _local7:Function = _local6.createFcn; if (_local7 != null){ if (_local6.primary){ return (_local7(_arg1, _arg2, _arg3)); }; _local8 = _local7(_arg2, _arg1, _arg3); _local9 = 0; while (_local9 < _local8.m_manifoldCount) { _local10 = _local8.GetManifolds()[_local9]; _local8.GetManifolds()[_local9].normal = _local10.normal.Negative(); _local9++; }; return (_local8); //unresolved jump }; return (null); } } }//package Box2D.Dynamics.Contacts
Section 39
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var normal:b2Vec2; public var restitution:Number; public var body1:b2Body; public var manifold:b2Manifold; public var body2:b2Body; public var friction:Number; public var pointCount:int; public function b2ContactConstraint(){ normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 40
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var r2:b2Vec2; public var separation:Number; public var positionImpulse:Number; public var normalImpulse:Number; public var tangentMass:Number; public var equalizedMass:Number; public var tangentImpulse:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var normalMass:Number; public var velocityBias:Number; public var r1:b2Vec2; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); r1 = new b2Vec2(); r2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 41
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var other:b2Body; public var prev:b2ContactEdge; public var contact:b2Contact; public var next:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 42
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var primary:Boolean; public var createFcn:Function; public var destroyFcn:Function; } }//package Box2D.Dynamics.Contacts
Section 43
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; public class b2ContactResult { public var position:b2Vec2; public var shape1:b2Shape; public var shape2:b2Shape; public var normalImpulse:Number; public var normal:b2Vec2; public var tangentImpulse:Number; public var id:b2ContactID; public function b2ContactResult(){ position = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Dynamics.Contacts
Section 44
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactSolver { public var m_constraintCount:int; public var m_constraints:Array; public var m_allocator; public var m_step:b2TimeStep; public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local10:b2Body; var _local11:b2Body; var _local12:int; var _local13:Array; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:int; var _local23:b2Manifold; var _local24:Number; var _local25:Number; var _local26:b2ContactConstraint; var _local27:uint; var _local28:b2ManifoldPoint; var _local29:b2ContactConstraintPoint; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; m_step = new b2TimeStep(); m_constraints = new Array(); super(); m_step.dt = _arg1.dt; m_step.inv_dt = _arg1.inv_dt; m_step.maxIterations = _arg1.maxIterations; m_allocator = _arg4; m_constraintCount = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; m_constraintCount = (m_constraintCount + _local5.m_manifoldCount); _local6++; }; _local6 = 0; while (_local6 < m_constraintCount) { m_constraints[_local6] = new b2ContactConstraint(); _local6++; }; var _local9:int; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local10 = _local5.m_shape1.m_body; _local11 = _local5.m_shape2.m_body; _local12 = _local5.m_manifoldCount; _local13 = _local5.GetManifolds(); _local14 = _local5.m_friction; _local15 = _local5.m_restitution; _local16 = _local10.m_linearVelocity.x; _local17 = _local10.m_linearVelocity.y; _local18 = _local11.m_linearVelocity.x; _local19 = _local11.m_linearVelocity.y; _local20 = _local10.m_angularVelocity; _local21 = _local11.m_angularVelocity; _local22 = 0; while (_local22 < _local12) { _local23 = _local13[_local22]; _local24 = _local23.normal.x; _local25 = _local23.normal.y; _local26 = m_constraints[_local9]; _local26.body1 = _local10; _local26.body2 = _local11; _local26.manifold = _local23; _local26.normal.x = _local24; _local26.normal.y = _local25; _local26.pointCount = _local23.pointCount; _local26.friction = _local14; _local26.restitution = _local15; _local27 = 0; while (_local27 < _local26.pointCount) { _local28 = _local23.points[_local27]; _local29 = _local26.points[_local27]; _local29.normalImpulse = _local28.normalImpulse; _local29.tangentImpulse = _local28.tangentImpulse; _local29.separation = _local28.separation; _local29.positionImpulse = 0; _local29.localAnchor1.SetV(_local28.localPoint1); _local29.localAnchor2.SetV(_local28.localPoint2); _local8 = _local10.m_xf.R; _local32 = (_local28.localPoint1.x - _local10.m_sweep.localCenter.x); _local33 = (_local28.localPoint1.y - _local10.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local32) + (_local8.col2.x * _local33)); _local33 = ((_local8.col1.y * _local32) + (_local8.col2.y * _local33)); _local32 = _local30; _local29.r1.Set(_local32, _local33); _local8 = _local11.m_xf.R; _local34 = (_local28.localPoint2.x - _local11.m_sweep.localCenter.x); _local35 = (_local28.localPoint2.y - _local11.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local34) + (_local8.col2.x * _local35)); _local35 = ((_local8.col1.y * _local34) + (_local8.col2.y * _local35)); _local34 = _local30; _local29.r2.Set(_local34, _local35); _local36 = ((_local32 * _local32) + (_local33 * _local33)); _local37 = ((_local34 * _local34) + (_local35 * _local35)); _local38 = ((_local32 * _local24) + (_local33 * _local25)); _local39 = ((_local34 * _local24) + (_local35 * _local25)); _local40 = (_local10.m_invMass + _local11.m_invMass); _local40 = (_local40 + ((_local10.m_invI * (_local36 - (_local38 * _local38))) + (_local11.m_invI * (_local37 - (_local39 * _local39))))); _local29.normalMass = (1 / _local40); _local41 = ((_local10.m_mass * _local10.m_invMass) + (_local11.m_mass * _local11.m_invMass)); _local41 = (_local41 + (((_local10.m_mass * _local10.m_invI) * (_local36 - (_local38 * _local38))) + ((_local11.m_mass * _local11.m_invI) * (_local37 - (_local39 * _local39))))); _local29.equalizedMass = (1 / _local41); _local42 = _local25; _local43 = -(_local24); _local44 = ((_local32 * _local42) + (_local33 * _local43)); _local45 = ((_local34 * _local42) + (_local35 * _local43)); _local46 = (_local10.m_invMass + _local11.m_invMass); _local46 = (_local46 + ((_local10.m_invI * (_local36 - (_local44 * _local44))) + (_local11.m_invI * (_local37 - (_local45 * _local45))))); _local29.tangentMass = (1 / _local46); _local29.velocityBias = 0; if (_local29.separation > 0){ _local29.velocityBias = (-60 * _local29.separation); }; _local30 = (((_local18 + (-(_local21) * _local35)) - _local16) - (-(_local20) * _local33)); _local31 = (((_local19 + (_local21 * _local34)) - _local17) - (_local20 * _local32)); _local47 = ((_local26.normal.x * _local30) + (_local26.normal.y * _local31)); if (_local47 < -(b2Settings.b2_velocityThreshold)){ _local29.velocityBias = (_local29.velocityBias + (-(_local26.restitution) * _local47)); }; _local27++; }; _local9++; _local22++; }; _local6++; }; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2Mat22; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:b2ContactConstraintPoint; var _local21:Number; var _local22:Number; var _local23:b2ContactConstraintPoint; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_invMass; _local10 = _local7.m_invI; _local11 = _local8.m_invMass; _local12 = _local8.m_invI; _local13 = _local6.normal.x; _local14 = _local6.normal.y; _local15 = _local14; _local16 = -(_local13); if (_arg1.warmStarting){ _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local20 = _local6.points[_local18]; _local6.points[_local18].normalImpulse = (_local20.normalImpulse * _arg1.dtRatio); _local20.tangentImpulse = (_local20.tangentImpulse * _arg1.dtRatio); _local21 = ((_local20.normalImpulse * _local13) + (_local20.tangentImpulse * _local15)); _local22 = ((_local20.normalImpulse * _local14) + (_local20.tangentImpulse * _local16)); _local7.m_angularVelocity = (_local7.m_angularVelocity - (_local10 * ((_local20.r1.x * _local22) - (_local20.r1.y * _local21)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x - (_local9 * _local21)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y - (_local9 * _local22)); _local8.m_angularVelocity = (_local8.m_angularVelocity + (_local12 * ((_local20.r2.x * _local22) - (_local20.r2.y * _local21)))); _local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21)); _local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22)); _local18++; }; } else { _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local23 = _local6.points[_local18]; _local23.normalImpulse = 0; _local23.tangentImpulse = 0; _local18++; }; }; _local5++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local3:b2Mat22; var _local4:b2Vec2; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:b2Vec2; var _local10:Number; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:int; var _local21:b2ContactConstraintPoint; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local2:Number = 0; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_sweep.c; _local10 = _local7.m_sweep.a; _local11 = _local8.m_sweep.c; _local12 = _local8.m_sweep.a; _local13 = (_local7.m_mass * _local7.m_invMass); _local14 = (_local7.m_mass * _local7.m_invI); _local15 = (_local8.m_mass * _local8.m_invMass); _local16 = (_local8.m_mass * _local8.m_invI); _local17 = _local6.normal.x; _local18 = _local6.normal.y; _local19 = _local6.pointCount; _local20 = 0; while (_local20 < _local19) { _local21 = _local6.points[_local20]; _local3 = _local7.m_xf.R; _local4 = _local7.m_sweep.localCenter; _local22 = (_local21.localAnchor1.x - _local4.x); _local23 = (_local21.localAnchor1.y - _local4.y); _local26 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local26; _local3 = _local8.m_xf.R; _local4 = _local8.m_sweep.localCenter; _local24 = (_local21.localAnchor2.x - _local4.x); _local25 = (_local21.localAnchor2.y - _local4.y); _local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local26; _local27 = (_local9.x + _local22); _local28 = (_local9.y + _local23); _local29 = (_local11.x + _local24); _local30 = (_local11.y + _local25); _local31 = (_local29 - _local27); _local32 = (_local30 - _local28); _local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation); _local2 = b2Math.b2Min(_local2, _local33); _local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0)); _local35 = (-(_local21.equalizedMass) * _local34); _local36 = _local21.positionImpulse; _local21.positionImpulse = b2Math.b2Max((_local36 + _local35), 0); _local35 = (_local21.positionImpulse - _local36); _local37 = (_local35 * _local17); _local38 = (_local35 * _local18); _local9.x = (_local9.x - (_local13 * _local37)); _local9.y = (_local9.y - (_local13 * _local38)); _local10 = (_local10 - (_local14 * ((_local22 * _local38) - (_local23 * _local37)))); _local7.m_sweep.a = _local10; _local7.SynchronizeTransform(); _local11.x = (_local11.x + (_local15 * _local37)); _local11.y = (_local11.y + (_local15 * _local38)); _local12 = (_local12 + (_local16 * ((_local24 * _local38) - (_local25 * _local37)))); _local8.m_sweep.a = _local12; _local8.SynchronizeTransform(); _local20++; }; _local5++; }; return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop))); } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Mat22; var _local18:b2Vec2; var _local20:b2ContactConstraint; var _local21:b2Body; var _local22:b2Body; var _local23:Number; var _local24:Number; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:int; var _local38:Number; var _local19:int; while (_local19 < m_constraintCount) { _local20 = m_constraints[_local19]; _local21 = _local20.body1; _local22 = _local20.body2; _local23 = _local21.m_angularVelocity; _local24 = _local22.m_angularVelocity; _local25 = _local21.m_linearVelocity; _local26 = _local22.m_linearVelocity; _local27 = _local21.m_invMass; _local28 = _local21.m_invI; _local29 = _local22.m_invMass; _local30 = _local22.m_invI; _local31 = _local20.normal.x; _local32 = _local20.normal.y; _local33 = _local32; _local34 = -(_local31); _local35 = _local20.friction; _local37 = _local20.pointCount; _local1 = 0; while (_local1 < _local37) { _local2 = _local20.points[_local1]; _local7 = (((_local26.x + (-(_local24) * _local2.r2.y)) - _local25.x) - (-(_local23) * _local2.r1.y)); _local8 = (((_local26.y + (_local24 * _local2.r2.x)) - _local25.y) - (_local23 * _local2.r1.x)); _local9 = ((_local7 * _local31) + (_local8 * _local32)); _local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias)); _local10 = ((_local7 * _local33) + (_local8 * _local34)); _local12 = (_local2.tangentMass * -(_local10)); _local13 = b2Math.b2Max((_local2.normalImpulse + _local11), 0); _local11 = (_local13 - _local2.normalImpulse); _local38 = (_local35 * _local2.normalImpulse); _local14 = b2Math.b2Clamp((_local2.tangentImpulse + _local12), -(_local38), _local38); _local12 = (_local14 - _local2.tangentImpulse); _local15 = ((_local11 * _local31) + (_local12 * _local33)); _local16 = ((_local11 * _local32) + (_local12 * _local34)); _local25.x = (_local25.x - (_local27 * _local15)); _local25.y = (_local25.y - (_local27 * _local16)); _local23 = (_local23 - (_local28 * ((_local2.r1.x * _local16) - (_local2.r1.y * _local15)))); _local26.x = (_local26.x + (_local29 * _local15)); _local26.y = (_local26.y + (_local29 * _local16)); _local24 = (_local24 + (_local30 * ((_local2.r2.x * _local16) - (_local2.r2.y * _local15)))); _local2.normalImpulse = _local13; _local2.tangentImpulse = _local14; _local1++; }; _local21.m_angularVelocity = _local23; _local22.m_angularVelocity = _local24; _local19++; }; } public function FinalizeVelocityConstraints():void{ var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ManifoldPoint; var _local6:b2ContactConstraintPoint; var _local1:int; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.points[_local4]; _local6 = _local2.points[_local4]; _local5.normalImpulse = _local6.normalImpulse; _local5.tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 45
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function Evaluate(_arg1:b2ContactListener):void{ } override public function GetManifolds():Array{ return (null); } } }//package Box2D.Dynamics.Contacts
Section 46
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape)); m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local6:b2Body = m_shape1.m_body; var _local7:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf); var _local8:Array = [false, false]; var _local9:b2ContactPoint = s_evalCP; _local9.shape1 = m_shape1; _local9.shape2 = m_shape2; _local9.friction = m_friction; _local9.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local2 = 0; while (_local2 < m_manifold.pointCount) { _local10 = m_manifold.points[_local2]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local8[_local13] == true){ } else { _local5 = m0.points[_local13]; if (_local5.id._key == _local12){ _local8[_local13] = true; _local10.normalImpulse = _local5.normalImpulse; _local10.tangentImpulse = _local5.tangentImpulse; _local11 = true; if (_arg1 != null){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Persist(_local9); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Add(_local9); }; _local2++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local2 = 0; while (_local2 < m0.pointCount) { if (_local8[_local2]){ } else { _local5 = m0.points[_local2]; _local9.position = _local6.GetWorldPoint(_local5.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m0.normal); _local9.separation = _local5.separation; _local9.id.key = _local5.id._key; _arg1.Remove(_local9); }; _local2++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 47
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2PolygonContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{ m0 = new b2Manifold(); m_manifolds = [new b2Manifold()]; super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local7:b2ContactPoint; var _local8:int; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf); var _local9:Array = [false, false]; _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local8 = 0; while (_local8 < m_manifold.pointCount) { _local10 = m_manifold.points[_local8]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local9[_local13] == true){ } else { _local4 = m0.points[_local13]; if (_local4.id._key == _local12){ _local9[_local13] = true; _local10.normalImpulse = _local4.normalImpulse; _local10.tangentImpulse = _local4.tangentImpulse; _local11 = true; if (_arg1 != null){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Persist(_local7); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Add(_local7); }; _local8++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local8 = 0; while (_local8 < m0.pointCount) { if (_local9[_local8]){ } else { _local4 = m0.points[_local8]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; _local8++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolygonContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 48
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_bias:Number; public var m_gamma:Number; public var m_u:b2Vec2; public var m_mass:Number; public var m_impulse:Number; public var m_dampingRatio:Number; public var m_frequencyHz:Number; public var m_length:Number; public function b2DistanceJoint(_arg1:b2DistanceJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u = new b2Vec2(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_length = _arg1.length; m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_impulse = 0; m_gamma = 0; m_bias = 0; m_inv_dt = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local8:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; m_inv_dt = _arg1.inv_dt; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7)); _local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7)); _local6 = _local3; _local2 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local3; m_u.x = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6); m_u.y = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7); var _local10:Number = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local10 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local10)); } else { m_u.SetZero(); }; var _local11:Number = ((_local6 * m_u.y) - (_local7 * m_u.x)); var _local12:Number = ((_local8 * m_u.y) - (_local9 * m_u.x)); var _local13:Number = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / _local13); if (m_frequencyHz > 0){ _local14 = (_local10 - m_length); _local15 = ((2 * Math.PI) * m_frequencyHz); _local16 = (((2 * m_mass) * m_dampingRatio) * _local15); _local17 = ((m_mass * _local15) * _local15); m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17)))); m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (1 / (_local13 + m_gamma)); }; if (_arg1.warmStarting){ m_impulse = (m_impulse * _arg1.dtRatio); _local18 = (m_impulse * m_u.x); _local19 = (m_impulse * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local18)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local19)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local19) - (_local7 * _local18)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local18)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local19)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local19) - (_local9 * _local18)))); } else { m_impulse = 0; }; } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply((m_inv_dt * m_impulse)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; if (m_frequencyHz > 0){ return (true); }; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local1 = _local2.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8)); _local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8)); _local7 = _local6; var _local9:Number = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); var _local10:Number = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); var _local11:Number = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); var _local12:Number = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local13:Number = (-(m_mass) * _local12); m_u.Set(_local9, _local10); var _local14:Number = (_local13 * m_u.x); var _local15:Number = (_local13 * m_u.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop)); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; _local2 = _local3.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local7:Number = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); var _local11:Number = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); var _local12:Number = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); var _local13:Number = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); var _local14:Number = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); var _local15:Number = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); var _local16:Number = (_local15 * m_u.x); var _local17:Number = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } } }//package Box2D.Dynamics.Joints
Section 49
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2DistanceJointDef extends b2JointDef { public var localAnchor1:b2Vec2; public var length:Number; public var dampingRatio:Number; public var localAnchor2:b2Vec2; public var frequencyHz:Number; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; frequencyHz = 0; dampingRatio = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); var _local5:Number = (_arg4.x - _arg3.x); var _local6:Number = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); frequencyHz = 0; dampingRatio = 0; } } }//package Box2D.Dynamics.Joints
Section 50
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { public var m_ground2:b2Body; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_ratio:Number; public var m_revolute2:b2RevoluteJoint; public var m_force:Number; public var m_mass:Number; public var m_prismatic2:b2PrismaticJoint; public var m_ground1:b2Body; public var m_revolute1:b2RevoluteJoint; public var m_prismatic1:b2PrismaticJoint; public var m_constant:Number; public var m_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); var _local2:int = _arg1.joint1.m_type; var _local3:int = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.m_body1; m_body1 = _arg1.joint1.m_body2; if (_local2 == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local4 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local4 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_local3 == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local5 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local5 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local4 + (m_ratio * _local5)); m_force = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local15:Number; var _local2:b2Body = m_ground1; var _local3:b2Body = m_ground2; var _local4:b2Body = m_body1; var _local5:b2Body = m_body2; var _local14:Number = 0; m_J.SetZero(); if (m_revolute1){ m_J.angular1 = -1; _local14 = (_local14 + _local4.m_invI); } else { _local10 = _local2.m_xf.R; _local11 = m_prismatic1.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local4.m_xf.R; _local8 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear1.Set(-(_local6), -(_local7)); m_J.angular1 = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angular2 = -(m_ratio); _local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI)); } else { _local10 = _local3.m_xf.R; _local11 = m_prismatic2.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angular2 = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = (1 / _local14); if (_arg1.warmStarting){ _local15 = (_arg1.dt * m_force); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2)); } else { m_force = 0; }; } override public function GetReactionTorque():Number{ var _local1:b2Mat22 = m_body2.m_xf.R; var _local2:Number = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x); var _local3:Number = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y); var _local4:Number = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3)); _local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3)); _local2 = _local4; _local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x)))); return (_local4); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local4:Number; var _local5:Number; var _local1:Number = 0; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; if (m_revolute1){ _local4 = m_revolute1.GetJointAngle(); } else { _local4 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local5 = m_revolute2.GetJointAngle(); } else { _local5 = m_prismatic2.GetJointTranslation(); }; var _local6:Number = (m_constant - (_local4 + (m_ratio * _local5))); var _local7:Number = (-(m_mass) * _local6); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * m_J.linear1.x)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y)); _local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1)); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2)); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((_local1 < b2Settings.b2_linearSlop)); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local5:Number = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); var _local6:Number = (_arg1.dt * _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * m_J.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2)); } } }//package Box2D.Dynamics.Joints
Section 51
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { public class b2GearJointDef extends b2JointDef { public var joint1:b2Joint; public var joint2:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 52
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linear1:b2Vec2; public var linear2:b2Vec2; public var angular1:Number; public var angular2:Number; public function b2Jacobian(){ linear1 = new b2Vec2(); linear2 = new b2Vec2(); super(); } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linear1.SetV(_arg1); angular1 = _arg2; linear2.SetV(_arg3); angular2 = _arg4; } public function SetZero():void{ linear1.SetZero(); angular1 = 0; linear2.SetZero(); angular2 = 0; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linear1.x * _arg1.x) + (linear1.y * _arg1.y)) + (angular1 * _arg2)) + ((linear2.x * _arg3.x) + (linear2.y * _arg3.y))) + (angular2 * _arg4))); } } }//package Box2D.Dynamics.Joints
Section 53
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2Joint { public var m_islandFlag:Boolean; public var m_body1:b2Body; public var m_prev:b2Joint; public var m_next:b2Joint; public var m_type:int; public var m_collideConnected:Boolean; public var m_node1:b2JointEdge; public var m_node2:b2JointEdge; public var m_inv_dt:Number; public var m_userData; public var m_body2:b2Body; public static const e_unknownJoint:int = 0; public static const e_inactiveLimit:int = 0; public static const e_atUpperLimit:int = 2; public static const e_atLowerLimit:int = 1; public static const e_gearJoint:int = 6; public static const e_revoluteJoint:int = 1; public static const e_equalLimits:int = 3; public static const e_distanceJoint:int = 3; public static const e_pulleyJoint:int = 4; public static const e_prismaticJoint:int = 2; public static const e_mouseJoint:int = 5; public function b2Joint(_arg1:b2JointDef){ m_node1 = new b2JointEdge(); m_node2 = new b2JointEdge(); super(); m_type = _arg1.type; m_prev = null; m_next = null; m_body1 = _arg1.body1; m_body2 = _arg1.body2; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } public function GetBody2():b2Body{ return (m_body2); } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function GetNext():b2Joint{ return (m_next); } public function GetType():int{ return (m_type); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function GetReactionTorque():Number{ return (0); } public function GetUserData(){ return (m_userData); } public function GetReactionForce():b2Vec2{ return (null); } public function SolvePositionConstraints():Boolean{ return (false); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetBody1():b2Body{ return (m_body1); } public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } public function InitPositionConstraints():void{ } public static function Destroy(_arg1:b2Joint, _arg2):void{ } public static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; default: break; }; return (_local3); } } }//package Box2D.Dynamics.Joints
Section 54
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var body2:b2Body; public var type:int; public var userData; public var collideConnected:Boolean; public var body1:b2Body; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 55
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var other:b2Body; public var next:b2JointEdge; public var prev:b2JointEdge; public var joint:b2Joint; } }//package Box2D.Dynamics.Joints
Section 56
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { private var K1:b2Mat22; private var K:b2Mat22; public var m_beta:Number; public var m_mass:b2Mat22; private var K2:b2Mat22; public var m_target:b2Vec2; public var m_gamma:Number; public var m_impulse:b2Vec2; public var m_C:b2Vec2; public var m_localAnchor:b2Vec2; public var m_maxForce:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local3:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_impulse = new b2Vec2(); m_mass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); var _local2:Number = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); var _local4:b2Mat22 = m_body2.m_xf.R; m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y)); m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y)); m_maxForce = _arg1.maxForce; m_impulse.SetZero(); var _local5:Number = m_body2.m_mass; var _local6:Number = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); var _local7:Number = (((2 * _local5) * _arg1.dampingRatio) * _local6); var _local8:Number = ((_arg1.timeStep * _local5) * (_local6 * _local6)); m_gamma = (1 / (_local7 + _local8)); m_beta = (_local8 / (_local7 + _local8)); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local7:Number; var _local8:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local4 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local7 = _local2.m_invMass; _local8 = _local2.m_invI; K1.col1.x = _local7; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local7; K2.col1.x = ((_local8 * _local5) * _local5); K2.col2.x = ((-(_local8) * _local4) * _local5); K2.col1.y = ((-(_local8) * _local4) * _local5); K2.col2.y = ((_local8 * _local4) * _local4); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.Invert(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); var _local9:Number = (_arg1.dt * m_impulse.x); var _local10:Number = (_arg1.dt * m_impulse.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local7 * _local9)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local7 * _local10)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local8 * ((_local4 * _local10) - (_local5 * _local9)))); } override public function GetAnchor1():b2Vec2{ return (m_target); } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ return (m_impulse); } override public function SolvePositionConstraints():Boolean{ return (true); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local2:b2Body = m_body2; _local3 = _local2.m_xf.R; var _local6:Number = (m_localAnchor.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; var _local8:Number = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); var _local9:Number = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_impulse.x)); _local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_impulse.y)); var _local10:Number = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); var _local11:Number = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); var _local12:Number = m_impulse.x; var _local13:Number = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); var _local14:Number = m_impulse.Length(); if (_local14 > m_maxForce){ m_impulse.Multiply((m_maxForce / _local14)); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); var _local15:Number = (_arg1.dt * _local10); var _local16:Number = (_arg1.dt * _local11); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); } } }//package Box2D.Dynamics.Joints
Section 57
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var timeStep:Number; public var target:b2Vec2; public var maxForce:Number; public var dampingRatio:Number; public var frequencyHz:Number; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; timeStep = (1 / 60); } } }//package Box2D.Dynamics.Joints
Section 58
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PrismaticJoint extends b2Joint { public var m_limitForce:Number; public var m_lowerTranslation:Number; public var m_localXAxis1:b2Vec2; public var m_refAngle:Number; public var m_torque:Number; public var m_motorForce:Number; public var m_enableLimit:Boolean; public var m_angularMass:Number; public var m_maxMotorForce:Number; public var m_localYAxis1:b2Vec2; public var m_force:Number; public var m_motorMass:Number; public var m_upperTranslation:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_limitState:int; public var m_linearMass:Number; public var m_motorJacobian:b2Jacobian; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_enableMotor:Boolean; public var m_linearJacobian:b2Jacobian; public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_localXAxis1 = new b2Vec2(); m_localYAxis1 = new b2Vec2(); m_linearJacobian = new b2Jacobian(); m_motorJacobian = new b2Jacobian(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_localXAxis1.SetV(_arg1.localAxis1); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_refAngle = _arg1.referenceAngle; m_linearJacobian.SetZero(); m_linearMass = 0; m_force = 0; m_angularMass = 0; m_torque = 0; m_motorJacobian.SetZero(); m_motorMass = 0; m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerTranslation = _arg1.lowerTranslation; m_upperTranslation = _arg1.upperTranslation; m_maxMotorForce = _arg1.maxMotorForce; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local8:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = _local2.m_invMass; var _local5:Number = _local3.m_invMass; var _local6:Number = _local2.m_invI; var _local7:Number = _local3.m_invI; var _local9:Number = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local10:Number = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); var _local11:Number = (_arg1.dt * _local10); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2)); var _local12:Number = (_local3.m_angularVelocity - _local2.m_angularVelocity); var _local13:Number = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); var _local14:Number = (_arg1.dt * _local13); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15); _local17 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce); _local16 = (m_motorForce - _local17); _local11 = (_arg1.dt * _local16); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local19); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); }; }; }; _local11 = (_arg1.dt * _local19); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetJointTranslation():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:b2Vec2 = _local1.GetWorldPoint(m_localAnchor1); var _local5:b2Vec2 = _local2.GetWorldPoint(m_localAnchor2); var _local6:Number = (_local5.x - _local4.x); var _local7:Number = (_local5.y - _local4.y); var _local8:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local9:Number = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22 = m_body1.m_xf.R; var _local2:Number = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); var _local3:Number = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); var _local4:Number = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); var _local5:Number = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y))); return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5)))); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local9:b2Mat22; var _local10:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = _local3.m_invMass; var _local6:Number = _local4.m_invMass; var _local7:Number = _local3.m_invI; var _local8:Number = _local4.m_invI; _local9 = _local3.m_xf.R; var _local11:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local12:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; var _local13:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local14:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; var _local15:Number = (_local3.m_sweep.c.x + _local11); var _local16:Number = (_local3.m_sweep.c.y + _local12); var _local17:Number = (_local4.m_sweep.c.x + _local13); var _local18:Number = (_local4.m_sweep.c.y + _local14); var _local19:Number = (_local17 - _local15); var _local20:Number = (_local18 - _local16); _local9 = _local3.m_xf.R; var _local21:Number = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); var _local22:Number = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); var _local23:Number = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local24:Number = (-(m_linearMass) * _local23); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2)); var _local25:Number = b2Math.b2Abs(_local23); var _local26:Number = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); var _local27:Number = (-(m_angularMass) * _local26); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local28:Number = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y)); _local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y)); _local31 = ((_local29 * _local19) + (_local30 * _local20)); _local32 = 0; if (m_limitState == e_equalLimits){ _local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26)); } else { if (m_limitState == e_atLowerLimit){ _local1 = (_local31 - m_lowerTranslation); _local25 = b2Math.b2Max(_local25, -(_local1)); _local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); } else { if (m_limitState == e_atUpperLimit){ _local1 = (_local31 - m_upperTranslation); _local25 = b2Math.b2Max(_local25, _local1); _local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); }; }; }; _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; _local3 = _local1.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; var _local9:Number = (_local1.m_sweep.c.x + _local4); var _local10:Number = (_local1.m_sweep.c.y + _local5); var _local11:Number = (_local2.m_sweep.c.x + _local7); var _local12:Number = (_local2.m_sweep.c.y + _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local16:b2Vec2 = _local1.m_linearVelocity; var _local17:b2Vec2 = _local2.m_linearVelocity; var _local18:Number = _local1.m_angularVelocity; var _local19:Number = _local2.m_angularVelocity; var _local20:Number = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; _local4 = _local2.m_xf.R; var _local14:Number = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); var _local15:Number = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); var _local16:Number = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); var _local17:Number = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y); m_linearJacobian.linear1.x = -(_local14); m_linearJacobian.linear1.y = -(_local15); m_linearJacobian.linear2.x = _local14; m_linearJacobian.linear2.y = _local15; m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14))); m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14)); m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2)); m_linearMass = (1 / m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > Number.MIN_VALUE){ m_angularMass = (1 / m_angularMass); }; if (((m_enableLimit) || (m_enableMotor))){ _local4 = _local2.m_xf.R; _local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y)); _local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y)); m_motorJacobian.linear1.x = -(_local18); m_motorJacobian.linear1.y = -(_local19); m_motorJacobian.linear2.x = _local18; m_motorJacobian.linear2.y = _local19; m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18))); m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18)); m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2)); m_motorMass = (1 / m_motorMass); if (m_enableLimit){ _local20 = (_local16 - _local6); _local21 = (_local17 - _local7); _local22 = ((_local18 * _local20) + (_local19 * _local21)); if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local22 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local22 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; }; }; if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit == false){ m_limitForce = 0; }; if (_arg1.warmStarting){ _local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x))); _local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y))); _local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x))); _local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y))); _local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1))); _local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28)); } else { m_force = 0; m_torque = 0; m_limitForce = 0; m_motorForce = 0; }; m_limitPositionImpulse = 0; } public function GetMotorForce():Number{ return (m_motorForce); } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } override public function GetReactionTorque():Number{ return (m_torque); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } } }//package Box2D.Dynamics.Joints
Section 59
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PrismaticJointDef extends b2JointDef { public var motorSpeed:Number; public var localAxis1:b2Vec2; public var referenceAngle:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public var maxMotorForce:Number; public var lowerTranslation:Number; public function b2PrismaticJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); localAxis1 = new b2Vec2(); super(); type = b2Joint.e_prismaticJoint; localAxis1.Set(1, 0); referenceAngle = 0; enableLimit = false; lowerTranslation = 0; upperTranslation = 0; enableMotor = false; maxMotorForce = 0; motorSpeed = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); localAxis1 = body1.GetLocalVector(_arg4); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 60
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { public var m_limitState1:int; public var m_limitState2:int; public var m_ground:b2Body; public var m_maxLength2:Number; public var m_maxLength1:Number; public var m_limitPositionImpulse1:Number; public var m_limitPositionImpulse2:Number; public var m_force:Number; public var m_constant:Number; public var m_positionImpulse:Number; public var m_state:int; public var m_ratio:Number; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_limitMass1:Number; public var m_limitMass2:Number; public var m_pulleyMass:Number; public var m_u1:b2Vec2; public var m_limitForce1:Number; public var m_limitForce2:Number; public var m_u2:b2Vec2; public static const b2_minPulleyLength:Number = 2; public function b2PulleyJoint(_arg1:b2PulleyJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u1 = new b2Vec2(); m_u2 = new b2Vec2(); super(_arg1); m_ground = m_body1.m_world.m_groundBody; m_groundAnchor1.x = (_arg1.groundAnchor1.x - m_ground.m_xf.position.x); m_groundAnchor1.y = (_arg1.groundAnchor1.y - m_ground.m_xf.position.y); m_groundAnchor2.x = (_arg1.groundAnchor2.x - m_ground.m_xf.position.x); m_groundAnchor2.y = (_arg1.groundAnchor2.y - m_ground.m_xf.position.y); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_ratio = _arg1.ratio; m_constant = (_arg1.length1 + (m_ratio * _arg1.length2)); m_maxLength1 = b2Math.b2Min(_arg1.maxLength1, (m_constant - (m_ratio * b2_minPulleyLength))); m_maxLength2 = b2Math.b2Min(_arg1.maxLength2, ((m_constant - b2_minPulleyLength) / m_ratio)); m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; } public function GetGroundAnchor2():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local3:b2Mat22; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local5:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local6:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local7:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local23:Number = 0; if (m_state == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u1.Set((_local12 - _local4), (_local13 - _local5)); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local16 = m_u1.Length(); _local17 = m_u2.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local16)); } else { m_u1.SetZero(); }; if (_local17 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local17)); } else { m_u2.SetZero(); }; _local18 = ((m_constant - _local16) - (m_ratio * _local17)); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_pulleyMass) * _local18); _local20 = m_positionImpulse; m_positionImpulse = b2Math.b2Max(0, (m_positionImpulse + _local19)); _local19 = (m_positionImpulse - _local20); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local14 = ((-(m_ratio) * _local19) * m_u2.x); _local15 = ((-(m_ratio) * _local19) * m_u2.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local1.SynchronizeTransform(); _local2.SynchronizeTransform(); }; if (m_limitState1 == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); m_u1.Set((_local12 - _local4), (_local13 - _local5)); _local16 = m_u1.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.x = (m_u1.x * (1 / _local16)); m_u1.y = (m_u1.y * (1 / _local16)); } else { m_u1.SetZero(); }; _local18 = (m_maxLength1 - _local16); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass1) * _local18); _local21 = m_limitPositionImpulse1; m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19)); _local19 = (m_limitPositionImpulse1 - _local21); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local1.SynchronizeTransform(); }; if (m_limitState2 == e_atUpperLimit){ _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local17 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local17)); m_u2.y = (m_u2.y * (1 / _local17)); } else { m_u2.SetZero(); }; _local18 = (m_maxLength2 - _local17); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass2) * _local18); _local21 = m_limitPositionImpulse2; m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19)); _local19 = (m_limitPositionImpulse2 - _local21); _local14 = (-(_local19) * m_u2.x); _local15 = (-(_local19) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local2.SynchronizeTransform(); }; return ((_local23 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local2.m_sweep.c.x + _local5); var _local11:Number = (_local2.m_sweep.c.y + _local6); var _local12:Number = (_local3.m_sweep.c.x + _local8); var _local13:Number = (_local3.m_sweep.c.y + _local9); var _local14:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local15:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local16:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local17:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); var _local18:Number = m_u1.Length(); var _local19:Number = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; var _local20:Number = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_force = 0; } else { m_state = e_atUpperLimit; m_positionImpulse = 0; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitForce1 = 0; } else { m_limitState1 = e_atUpperLimit; m_limitPositionImpulse1 = 0; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitForce2 = 0; } else { m_limitState2 = e_atUpperLimit; m_limitPositionImpulse2 = 0; }; var _local21:Number = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); var _local22:Number = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ _local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x); _local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y); _local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x); _local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25)))); } else { m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; }; } override public function GetReactionTorque():Number{ return (0); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18); _local20 = m_force; m_force = b2Math.b2Max(0, (m_force + _local19)); _local19 = (m_force - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x); _local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; if (m_limitState1 == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11))); _local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18); _local20 = m_limitForce1; m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19)); _local19 = (m_limitForce1 - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); }; if (m_limitState2 == e_atUpperLimit){ _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13))); _local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18); _local20 = m_limitForce2; m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19)); _local19 = (m_limitForce2 - _local20); _local16 = ((-(_arg1.dt) * _local19) * m_u2.x); _local17 = ((-(_arg1.dt) * _local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } public function GetLength1():Number{ var _local1:b2Vec2 = m_body1.GetWorldPoint(m_localAnchor1); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetLength2():Number{ var _local1:b2Vec2 = m_body2.GetWorldPoint(m_localAnchor2); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } } }//package Box2D.Dynamics.Joints
Section 61
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PulleyJointDef extends b2JointDef { public var maxLength1:Number; public var maxLength2:Number; public var length1:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var ratio:Number; public var length2:Number; public function b2PulleyJointDef(){ groundAnchor1 = new b2Vec2(); groundAnchor2 = new b2Vec2(); localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchor1.Set(-1, 1); groundAnchor2.Set(1, 1); localAnchor1.Set(-1, 0); localAnchor2.Set(1, 0); length1 = 0; maxLength1 = 0; length2 = 0; maxLength2 = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); var _local8:Number = (_arg5.x - _arg3.x); var _local9:Number = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); var _local10:Number = (_arg6.x - _arg4.x); var _local11:Number = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; var _local12:Number = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 62
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { public var m_limitForce:Number; public var m_pivotMass:b2Mat22; public var m_motorForce:Number; public var m_enableLimit:Boolean; public var m_limitState:int; public var m_motorMass:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; private var K:b2Mat22; public var m_pivotForce:b2Vec2; public var m_enableMotor:Boolean; public var m_referenceAngle:Number; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_upperAngle:Number; public var m_lowerAngle:Number; public var m_maxMotorTorque:Number; public static var tImpulse:b2Vec2 = new b2Vec2(); public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){ K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); K3 = new b2Mat22(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_pivotForce = new b2Vec2(); m_pivotMass = new b2Mat22(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_referenceAngle = _arg1.referenceAngle; m_pivotForce.Set(0, 0); m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerAngle = _arg1.lowerAngle; m_upperAngle = _arg1.upperAngle; m_maxMotorTorque = _arg1.maxMotorTorque; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local10:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local11:Number = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); var _local12:Number = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); var _local13:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); var _local14:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12))); m_pivotForce.x = (m_pivotForce.x + _local13); m_pivotForce.y = (m_pivotForce.y + _local14); var _local15:Number = (_arg1.dt * _local13); _local16 = (_arg1.dt * _local14); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed); _local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17); _local19 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque); _local18 = (m_motorForce - _local19); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local21); } else { if (m_limitState == e_atLowerLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); } else { if (m_limitState == e_atUpperLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); }; }; }; _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ return (m_pivotForce); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local6:b2Mat22; var _local25:Number; var _local26:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = 0; _local6 = _local3.m_xf.R; var _local7:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local9:Number = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; var _local10:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local11:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11)); _local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11)); _local10 = _local9; var _local12:Number = (_local3.m_sweep.c.x + _local7); var _local13:Number = (_local3.m_sweep.c.y + _local8); var _local14:Number = (_local4.m_sweep.c.x + _local10); var _local15:Number = (_local4.m_sweep.c.y + _local11); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); var _local18:Number = _local3.m_invMass; var _local19:Number = _local4.m_invMass; var _local20:Number = _local3.m_invI; var _local21:Number = _local4.m_invI; K1.col1.x = (_local18 + _local19); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local18 + _local19); K2.col1.x = ((_local20 * _local8) * _local8); K2.col2.x = ((-(_local20) * _local7) * _local8); K2.col1.y = ((-(_local20) * _local7) * _local8); K2.col2.y = ((_local20 * _local7) * _local7); K3.col1.x = ((_local21 * _local11) * _local11); K3.col2.x = ((-(_local21) * _local10) * _local11); K3.col1.y = ((-(_local21) * _local10) * _local11); K3.col2.y = ((_local21 * _local10) * _local10); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); var _local22:Number = tImpulse.x; var _local23:Number = tImpulse.y; _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local24:Number = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local24 = b2Math.b2Abs(_local2); } else { if (m_limitState == e_atLowerLimit){ _local2 = (_local25 - m_lowerAngle); _local24 = b2Math.b2Max(0, -(_local2)); _local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); } else { if (m_limitState == e_atUpperLimit){ _local2 = (_local25 - m_upperAngle); _local24 = b2Math.b2Max(0, _local2); _local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); }; }; }; _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetJointAngle():Number{ return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle)); } public function GetMotorTorque():Number{ return (m_motorForce); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local7:Number; var _local14:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; K1.col1.x = (_local10 + _local11); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local10 + _local11); K2.col1.x = ((_local12 * _local7) * _local7); K2.col2.x = ((-(_local12) * _local6) * _local7); K2.col1.y = ((-(_local12) * _local6) * _local7); K2.col2.y = ((_local12 * _local6) * _local6); K3.col1.x = ((_local13 * _local9) * _local9); K3.col2.x = ((-(_local13) * _local8) * _local9); K3.col1.y = ((-(_local13) * _local8) * _local9); K3.col2.y = ((_local13 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Invert(m_pivotMass); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; } else { m_limitForce = 0; }; if (_arg1.warmStarting){ _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); } else { m_pivotForce.SetZero(); m_motorForce = 0; m_limitForce = 0; }; m_limitPositionImpulse = 0; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } override public function GetReactionTorque():Number{ return (m_limitForce); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } } }//package Box2D.Dynamics.Joints
Section 63
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2RevoluteJointDef extends b2JointDef { public var upperAngle:Number; public var enableMotor:Boolean; public var referenceAngle:Number; public var motorSpeed:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var lowerAngle:Number; public var maxMotorTorque:Number; public function b2RevoluteJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchor1.Set(0, 0); localAnchor2.Set(0, 0); referenceAngle = 0; lowerAngle = 0; upperAngle = 0; maxMotorTorque = 0; motorSpeed = 0; enableLimit = false; enableMotor = false; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 64
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; public class b2Body { public var m_next:b2Body; public var m_xf:b2XForm; public var m_contactList:b2ContactEdge; public var m_angularVelocity:Number; public var m_shapeList:b2Shape; public var m_force:b2Vec2; public var m_mass:Number; public var m_sweep:b2Sweep; public var m_torque:Number; public var m_userData; public var m_flags:uint; public var m_world:b2World; public var m_prev:b2Body; public var m_invMass:Number; public var m_type:int; public var m_linearDamping:Number; public var m_shapeCount:int; public var m_angularDamping:Number; public var m_invI:Number; public var m_linearVelocity:b2Vec2; public var m_sleepTime:Number; public var m_jointList:b2JointEdge; public var m_I:Number; public static var e_fixedRotationFlag:uint = 64; public static var e_frozenFlag:uint = 2; public static var e_maxTypes:uint = 3; public static var e_sleepFlag:uint = 8; private static var s_massData:b2MassData = new b2MassData(); public static var e_bulletFlag:uint = 32; public static var e_staticType:uint = 1; public static var e_islandFlag:uint = 4; public static var e_allowSleepFlag:uint = 16; private static var s_xf1:b2XForm = new b2XForm(); public static var e_dynamicType:uint = 2; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ m_xf = new b2XForm(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.isBullet){ m_flags = (m_flags | e_bulletFlag); }; if (_arg1.fixedRotation){ m_flags = (m_flags | e_fixedRotationFlag); }; if (_arg1.allowSleep){ m_flags = (m_flags | e_allowSleepFlag); }; if (_arg1.isSleeping){ m_flags = (m_flags | e_sleepFlag); }; m_world = _arg2; m_xf.position.SetV(_arg1.position); m_xf.R.Set(_arg1.angle); m_sweep.localCenter.SetV(_arg1.massData.center); m_sweep.t0 = 1; m_sweep.a0 = (m_sweep.a = _arg1.angle); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_contactList = null; m_prev = null; m_next = null; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_sleepTime = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.massData.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_arg1.x - m_sweep.c.x))))); } public function SetLinearVelocity(_arg1:b2Vec2):void{ m_linearVelocity.SetV(_arg1); } public function WakeUp():void{ m_flags = (m_flags & ~(e_sleepFlag)); m_sleepTime = 0; } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function ApplyTorque(_arg1:Number):void{ if (IsSleeping()){ WakeUp(); }; m_torque = (m_torque + _arg1); } public function IsFrozen():Boolean{ return (((m_flags & e_frozenFlag) == e_frozenFlag)); } public function IsDynamic():Boolean{ return ((m_type == e_dynamicType)); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function SynchronizeTransform():void{ m_xf.R.Set(m_sweep.a); var _local1:b2Mat22 = m_xf.R; var _local2:b2Vec2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function GetInertia():Number{ return (m_I); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function SetMassFromShapes():void{ var _local1:b2Shape; if (m_world.m_lock == true){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; var _local2:Number = 0; var _local3:Number = 0; var _local4:b2MassData = s_massData; _local1 = m_shapeList; while (_local1) { _local1.ComputeMass(_local4); m_mass = (m_mass + _local4.mass); _local2 = (_local2 + (_local4.mass * _local4.center.x)); _local3 = (_local3 + (_local4.mass * _local4.center.y)); m_I = (m_I + _local4.I); _local1 = _local1.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local2 = (_local2 * m_invMass); _local3 = (_local3 * m_invMass); }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3)))); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_sweep.localCenter.Set(_local2, _local3); var _local5:b2Mat22 = m_xf.R; var _local6:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local1 = m_shapeList; while (_local1) { _local1.UpdateSweepRadius(m_sweep.localCenter); _local1 = _local1.m_next; }; var _local7:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local7 != m_type){ _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; }; } public function PutToSleep():void{ m_flags = (m_flags | e_sleepFlag); m_sleepTime = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_force.SetZero(); m_torque = 0; } public function GetJointList():b2JointEdge{ return (m_jointList); } public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; var _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); var _local4:b2Mat22 = m_xf.R; var _local5:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); var _local6:Boolean; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulXT(m_xf, _arg1)); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_force.x = (m_force.x + _arg1.x); m_force.y = (m_force.y + _arg1.y); m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))); } public function SynchronizeShapes():Boolean{ var _local4:b2Shape; var _local1:b2XForm = s_xf1; _local1.R.Set(m_sweep.a0); var _local2:b2Mat22 = _local1.R; var _local3:b2Vec2 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); var _local5:Boolean; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; if (m_userData != null){ m_userData.update(); }; return (true); } public function GetAngle():Number{ return (m_sweep.a); } public function GetXForm():b2XForm{ return (m_xf); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function GetNext():b2Body{ return (m_next); } public function GetMass():Number{ return (m_mass); } public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_linearVelocity.x = (m_linearVelocity.x + (m_invMass * _arg1.x)); m_linearVelocity.y = (m_linearVelocity.y + (m_invMass * _arg1.y)); m_angularVelocity = (m_angularVelocity + (m_invI * (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x)))); } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Shape; if (m_world.m_lock == true){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_sweep.localCenter.SetV(_arg1.center); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local2 = m_shapeList; while (_local2) { _local2.UpdateSweepRadius(m_sweep.localCenter); _local2 = _local2.m_next; }; var _local5:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local5 != m_type){ _local2 = m_shapeList; while (_local2) { _local2.RefilterProxy(m_world.m_broadPhase, m_xf); _local2 = _local2.m_next; }; }; } public function IsStatic():Boolean{ return ((m_type == e_staticType)); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_xf.R, _arg1)); } public function GetShapeList():b2Shape{ return (m_shapeList); } public function Advance(_arg1:Number):void{ m_sweep.Advance(_arg1); m_sweep.c.SetV(m_sweep.c0); m_sweep.a = m_sweep.a0; SynchronizeTransform(); } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } public function CreateShape(_arg1:b2ShapeDef):b2Shape{ var _local2:b2Shape; if (m_world.m_lock == true){ return (null); }; _local2 = b2Shape.Create(_arg1, m_world.m_blockAllocator); _local2.m_next = m_shapeList; m_shapeList = _local2; m_shapeCount++; _local2.m_body = this; _local2.CreateProxy(m_world.m_broadPhase, m_xf); _local2.UpdateSweepRadius(m_sweep.localCenter); return (_local2); } public function IsConnected(_arg1:b2Body):Boolean{ var _local2:b2JointEdge = m_jointList; while (_local2) { if (_local2.other == _arg1){ return ((_local2.joint.m_collideConnected == false)); }; _local2 = _local2.next; }; return (false); } public function DestroyShape(_arg1:b2Shape):void{ if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); var _local2:b2Shape = m_shapeList; var _local3:b2Shape; var _local4:Boolean; while (_local2 != null) { if (_local2 == _arg1){ if (_local3){ _local3.m_next = _arg1.m_next; } else { m_shapeList = _arg1.m_next; }; _local4 = true; break; }; _local3 = _local2; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function GetUserData(){ return (m_userData); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_xf.R, _arg1)); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorld():b2World{ return (m_world); } public function GetPosition():b2Vec2{ return (m_xf.position); } } }//package Box2D.Dynamics
Section 65
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2BodyDef { public var angularDamping:Number; public var angle:Number; public var isSleeping:Boolean; public var position:b2Vec2; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var fixedRotation:Boolean; public var linearDamping:Number; public var massData:b2MassData; public function b2BodyDef(){ massData = new b2MassData(); position = new b2Vec2(); super(); massData.center.SetZero(); massData.mass = 0; massData.I = 0; userData = null; position.Set(0, 0); angle = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; isSleeping = false; fixedRotation = false; isBullet = false; } } }//package Box2D.Dynamics
Section 66
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 67
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; public class b2ContactFilter { public static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:b2FilterData = _arg1.GetFilterData(); var _local4:b2FilterData = _arg2.GetFilterData(); if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; var _local5:Boolean = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local5); } } }//package Box2D.Dynamics
Section 68
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2ContactListener { public function Add(_arg1:b2ContactPoint):void{ } public function Remove(_arg1:b2ContactPoint):void{ } public function Persist(_arg1:b2ContactPoint):void{ } public function Result(_arg1:b2ContactResult):void{ } } }//package Box2D.Dynamics
Section 69
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2ContactManager extends b2PairCallback { public var m_world:b2World; public var m_destroyImmediate:Boolean; public var m_nullContact:b2NullContact; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2ContactManager(){ m_nullContact = new b2NullContact(); super(); m_world = null; m_destroyImmediate = false; } override public function PairRemoved(_arg1, _arg2, _arg3):void{ if (_arg3 == null){ return; }; var _local4:b2Contact = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local7:b2Body; var _local8:b2Body; var _local9:Array; var _local10:b2ContactPoint; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2Vec2; var _local16:b2Vec2; var _local2:b2Shape = _arg1.m_shape1; var _local3:b2Shape = _arg1.m_shape2; var _local4:int = _arg1.m_manifoldCount; if ((((_local4 > 0)) && (m_world.m_contactListener))){ _local7 = _local2.m_body; _local8 = _local3.m_body; _local9 = _arg1.GetManifolds(); _local10 = s_evalCP; _local10.shape1 = _arg1.m_shape1; _local10.shape2 = _arg1.m_shape1; _local10.friction = _arg1.m_friction; _local10.restitution = _arg1.m_restitution; _local11 = 0; while (_local11 < _local4) { _local12 = _local9[_local11]; _local10.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local10.position = _local7.GetWorldPoint(_local14.localPoint1); _local15 = _local7.GetLinearVelocityFromLocalPoint(_local14.localPoint1); _local16 = _local8.GetLinearVelocityFromLocalPoint(_local14.localPoint2); _local10.velocity.Set((_local16.x - _local15.x), (_local16.y - _local15.y)); _local10.separation = _local14.separation; _local10.id.key = _local14.id._key; m_world.m_contactListener.Remove(_local10); _local13++; }; _local11++; }; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; var _local5:b2Body = _local2.m_body; var _local6:b2Body = _local3.m_body; if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local6.m_contactList){ _local6.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape = (_arg1 as b2Shape); var _local4:b2Shape = (_arg2 as b2Shape); var _local5:b2Body = _local3.m_body; var _local6:b2Body = _local4.m_body; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; var _local7:b2Contact = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.m_shape1; _local4 = _local7.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } public function Collide():void{ var _local2:b2Body; var _local3:b2Body; var _local1:b2Contact = m_world.m_contactList; while (_local1) { _local2 = _local1.m_shape1.m_body; _local3 = _local1.m_shape2.m_body; if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); }; _local1 = _local1.m_next; }; } } }//package Box2D.Dynamics
Section 70
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import flash.display.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2DebugDraw { public var m_xformScale:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_alpha:Number;// = 1 public var m_drawFlags:uint; public var m_lineThickness:Number;// = 1 public var m_drawScale:Number;// = 1 public var m_sprite:Sprite; public static var e_coreShapeBit:uint = 4; public static var e_shapeBit:uint = 1; public static var e_centerOfMassBit:uint = 64; public static var e_aabbBit:uint = 8; public static var e_obbBit:uint = 16; public static var e_pairBit:uint = 32; public static var e_jointBit:uint = 2; public function b2DebugDraw(){ m_drawFlags = 0; } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale)); } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo(0, 0); m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); m_sprite.graphics.endFill(); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale)); } public function GetFlags():uint{ return (m_drawFlags); } public function DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } } }//package Box2D.Dynamics
Section 71
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; public class b2DestructionListener { public function SayGoodbyeShape(_arg1:b2Shape):void{ } public function SayGoodbyeJoint(_arg1:b2Joint):void{ } } }//package Box2D.Dynamics
Section 72
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2Island { public var m_listener:b2ContactListener; public var m_positionIterationCount:int; public var m_bodyCapacity:int; public var m_bodies:Array; public var m_joints:Array; public var m_jointCapacity:int; public var m_contactCount:int; public var m_contacts:Array; public var m_contactCapacity:int; public var m_jointCount:int; public var m_allocator; public var m_bodyCount:int; private static var s_reportCR:b2ContactResult = new b2ContactResult(); public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener){ var _local6:int; super(); m_bodyCapacity = _arg1; m_contactCapacity = _arg2; m_jointCapacity = _arg3; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_allocator = _arg4; m_listener = _arg5; m_bodies = new Array(_arg1); _local6 = 0; while (_local6 < _arg1) { m_bodies[_local6] = null; _local6++; }; m_contacts = new Array(_arg2); _local6 = 0; while (_local6 < _arg2) { m_contacts[_local6] = null; _local6++; }; m_joints = new Array(_arg3); _local6 = 0; while (_local6 < _arg3) { m_joints[_local6] = null; _local6++; }; m_positionIterationCount = 0; } public function AddBody(_arg1:b2Body):void{ var _local2 = m_bodyCount++; m_bodies[_local2] = _arg1; } public function AddJoint(_arg1:b2Joint):void{ var _local2 = m_jointCount++; m_joints[_local2] = _arg1; } public function Report(_arg1:Array):void{ var _local2:b2Mat22; var _local3:b2Vec2; var _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactResult; var _local8:b2Body; var _local9:int; var _local10:Array; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2ContactConstraintPoint; if (m_listener == null){ return; }; var _local4:int; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCR; _local7.shape1 = _local5.m_shape1; _local7.shape2 = _local5.m_shape2; _local8 = _local7.shape1.m_body; _local9 = _local5.m_manifoldCount; _local10 = _local5.GetManifolds(); _local11 = 0; while (_local11 < _local9) { _local12 = _local10[_local11]; _local7.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local15 = _local6.points[_local13]; _local7.position = _local8.GetWorldPoint(_local14.localPoint1); _local7.normalImpulse = _local15.normalImpulse; _local7.tangentImpulse = _local15.tangentImpulse; _local7.id.key = _local14.id.key; m_listener.Result(_local7); _local13++; }; _local11++; }; _local4++; }; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local9:int; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; var _local13:Number; var _local14:Number; var _local15:Number; _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_arg2.x + (_local6.m_invMass * _local6.m_force.x)))); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_arg2.y + (_local6.m_invMass * _local6.m_force.y)))); _local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque)); _local6.m_force.SetZero(); _local6.m_torque = 0; _local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); if (_local6.m_linearVelocity.LengthSquared() > b2Settings.b2_maxLinearVelocitySquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * b2Settings.b2_maxLinearVelocity); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * b2Settings.b2_maxLinearVelocity); }; if ((_local6.m_angularVelocity * _local6.m_angularVelocity) > b2Settings.b2_maxAngularVelocitySquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = -(b2Settings.b2_maxAngularVelocity); } else { _local6.m_angularVelocity = b2Settings.b2_maxAngularVelocity; }; }; }; _local5++; }; var _local8:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local8.InitVelocityConstraints(_arg1); _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitVelocityConstraints(_arg1); _local5++; }; _local5 = 0; while (_local5 < _arg1.maxIterations) { _local8.SolveVelocityConstraints(); _local9 = 0; while (_local9 < m_jointCount) { _local7 = m_joints[_local9]; _local7.SolveVelocityConstraints(_arg1); _local9++; }; _local5++; }; _local8.FinalizeVelocityConstraints(); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_sweep.c0.SetV(_local6.m_sweep.c); _local6.m_sweep.a0 = _local6.m_sweep.a; _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_arg1.dt * _local6.m_linearVelocity.x)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_arg1.dt * _local6.m_linearVelocity.y)); _local6.m_sweep.a = (_local6.m_sweep.a + (_arg1.dt * _local6.m_angularVelocity)); _local6.SynchronizeTransform(); }; _local5++; }; if (_arg3){ _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitPositionConstraints(); _local5++; }; m_positionIterationCount = 0; while (m_positionIterationCount < _arg1.maxIterations) { _local10 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local11 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local12 = _local7.SolvePositionConstraints(); _local11 = ((_local11) && (_local12)); _local5++; }; if (((_local10) && (_local11))){ break; }; m_positionIterationCount++; }; }; Report(_local8.m_constraints); if (_arg4){ _local13 = Number.MAX_VALUE; _local14 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local15 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.m_invMass == 0){ } else { if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){ _local6.m_sleepTime = 0; _local13 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local15)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local14)))){ _local6.m_sleepTime = 0; _local13 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local13 = b2Math.b2Min(_local13, _local6.m_sleepTime); }; }; _local5++; }; if (_local13 >= b2Settings.b2_timeToSleep){ _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; m_bodies[_local5].m_flags = (_local6.m_flags | b2Body.e_sleepFlag); _local6.m_linearVelocity.SetZero(); _local6.m_angularVelocity = 0; _local5++; }; }; }; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local5:b2Body; var _local6:Boolean; var _local3:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local2 = 0; while (_local2 < _arg1.maxIterations) { _local3.SolveVelocityConstraints(); _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local5 = m_bodies[_local2]; if (_local5.IsStatic()){ } else { _local5.m_sweep.c0.SetV(_local5.m_sweep.c); _local5.m_sweep.a0 = _local5.m_sweep.a; _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity)); _local5.SynchronizeTransform(); }; _local2++; }; var _local4:Number = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } } }//package Box2D.Dynamics
Section 73
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var warmStarting:Boolean; public var positionCorrection:Boolean; public var dt:Number; public var maxIterations:int; public var dtRatio:Number; public var inv_dt:Number; } }//package Box2D.Dynamics
Section 74
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2World { public var m_inv_dt0:Number; public var m_boundaryListener:b2BoundaryListener; public var m_contactList:b2Contact; public var m_blockAllocator; public var m_contactListener:b2ContactListener; public var m_allowSleep:Boolean; public var m_broadPhase:b2BroadPhase; public var m_destructionListener:b2DestructionListener; public var m_jointCount:int; public var m_bodyCount:int; public var m_lock:Boolean; public var m_positionIterationCount:int; public var m_groundBody:b2Body; public var m_contactCount:int; public var m_debugDraw:b2DebugDraw; public var m_contactFilter:b2ContactFilter; public var m_bodyList:b2Body; public var m_stackAllocator; public var m_jointList:b2Joint; public var m_gravity:b2Vec2; public var m_contactManager:b2ContactManager; private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); public static var m_continuousPhysics:Boolean; public static var m_warmStarting:Boolean; private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6); public static var m_positionCorrection:Boolean; private static var s_xf:b2XForm = new b2XForm(); public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ m_contactManager = new b2ContactManager(); super(); m_destructionListener = null; m_boundaryListener = null; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_positionCorrection = true; m_warmStarting = true; m_continuousPhysics = true; m_allowSleep = _arg3; m_gravity = _arg2; m_lock = false; m_inv_dt0 = 0; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); var _local4:b2BodyDef = new b2BodyDef(); m_groundBody = CreateBody(_local4); } public function DrawJoint(_arg1:b2Joint):void{ var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; var _local2:b2Body = _arg1.m_body1; var _local3:b2Body = _arg1.m_body2; var _local4:b2XForm = _local2.m_xf; var _local5:b2XForm = _local3.m_xf; var _local6:b2Vec2 = _local4.position; var _local7:b2Vec2 = _local5.position; var _local8:b2Vec2 = _arg1.GetAnchor1(); var _local9:b2Vec2 = _arg1.GetAnchor2(); var _local10:b2Color = s_jointColor; switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; case b2Joint.e_pulleyJoint: _local11 = (_arg1 as b2PulleyJoint); _local12 = _local11.GetGroundAnchor1(); _local13 = _local11.GetGroundAnchor2(); m_debugDraw.DrawSegment(_local12, _local8, _local10); m_debugDraw.DrawSegment(_local13, _local9, _local10); m_debugDraw.DrawSegment(_local12, _local13, _local10); break; case b2Joint.e_mouseJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; default: if (_local2 != m_groundBody){ m_debugDraw.DrawSegment(_local6, _local8, _local10); }; m_debugDraw.DrawSegment(_local8, _local9, _local10); if (_local3 != m_groundBody){ m_debugDraw.DrawSegment(_local7, _local9, _local10); }; }; } public function Refilter(_arg1:b2Shape):void{ _arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf); } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetProxyCount():int{ return (m_broadPhase.m_proxyCount); } public function DrawDebugData():void{ var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local11:b2XForm; var _local15:Boolean; var _local16:uint; var _local17:b2Pair; var _local18:b2Proxy; var _local19:b2Proxy; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Proxy; var _local23:b2PolygonShape; var _local24:b2OBB; var _local25:b2Vec2; var _local26:b2Mat22; var _local27:b2Vec2; var _local28:Number; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); var _local1:uint = m_debugDraw.GetFlags(); var _local7:b2Vec2 = new b2Vec2(); var _local8:b2Vec2 = new b2Vec2(); var _local9:b2Vec2 = new b2Vec2(); var _local10:b2Color = new b2Color(0, 0, 0); var _local12:b2AABB = new b2AABB(); var _local13:b2AABB = new b2AABB(); var _local14:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; if ((_local1 & b2DebugDraw.e_shapeBit)){ _local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local3.IsStatic()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15); } else { if (_local3.IsSleeping()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15); } else { DrawShape(_local4, _local11, new b2Color(0.9, 0.9, 0.9), _local15); }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local6 = m_broadPhase; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.9, 0.3); _local2 = 0; while (_local2 < b2Pair.b2_tableCapacity) { _local16 = _local6.m_pairManager.m_hashTable[_local2]; while (_local16 != b2Pair.b2_nullPair) { _local17 = _local6.m_pairManager.m_pairs[_local16]; _local18 = _local6.m_proxyPool[_local17.proxyId1]; _local19 = _local6.m_proxyPool[_local17.proxyId2]; _local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value)); _local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value)); _local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value)); _local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value)); _local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value)); _local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value)); _local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value)); _local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value)); _local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x)); _local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y)); _local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x)); _local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y)); m_debugDraw.DrawSegment(_local8, _local9, _local10); _local16 = _local17.next; }; _local2++; }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local6 = m_broadPhase; _local20 = _local6.m_worldAABB.lowerBound; _local21 = _local6.m_worldAABB.upperBound; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.3, 0.9); _local2 = 0; while (_local2 < b2Settings.b2_maxProxies) { _local22 = _local6.m_proxyPool[_local2]; if (_local22.IsValid() == false){ } else { _local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value)); _local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value)); _local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value)); _local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value)); _local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y); _local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y); _local14[2].Set(_local12.upperBound.x, _local12.upperBound.y); _local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local2++; }; _local14[0].Set(_local20.x, _local20.y); _local14[1].Set(_local21.x, _local20.y); _local14[2].Set(_local21.x, _local21.y); _local14[3].Set(_local20.x, _local21.y); m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9)); }; if ((_local1 & b2DebugDraw.e_obbBit)){ _local10.Set(0.5, 0.3, 0.5); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.m_type != b2Shape.e_polygonShape){ } else { _local23 = (_local4 as b2PolygonShape); _local24 = _local23.GetOBB(); _local25 = _local24.extents; _local14[0].Set(-(_local25.x), -(_local25.y)); _local14[1].Set(_local25.x, -(_local25.y)); _local14[2].Set(_local25.x, _local25.y); _local14[3].Set(-(_local25.x), _local25.y); _local2 = 0; while (_local2 < 4) { _local26 = _local24.R; _local27 = _local14[_local2]; _local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local26 = _local11.R; _local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local2++; }; m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.m_xf.R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.m_next; }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; var _local2:b2JointEdge = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; var _local3:b2Shape = _arg1.m_shapeList; while (_local3) { _local5 = _local3; _local3 = _local3.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeShape(_local5); }; _local5.DestroyProxy(m_broadPhase); b2Shape.Destroy(_local5, m_blockAllocator); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function GetGroundBody():b2Body{ return (m_groundBody); } public function DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{ var _local6:b2CircleShape; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:int; var _local11:b2PolygonShape; var _local12:int; var _local13:Array; var _local14:Array; var _local15:Array; var _local5:b2Color = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition); _local8 = _local6.m_radius; _local9 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3); if (_arg4){ m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5); }; break; case b2Shape.e_polygonShape: _local11 = (_arg1 as b2PolygonShape); _local12 = _local11.GetVertexCount(); _local13 = _local11.GetVertices(); _local14 = new Array(b2Settings.b2_maxPolygonVertices); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]); _local10++; }; m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3); if (_arg4){ _local15 = _local11.GetCoreVertices(); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]); _local10++; }; m_debugDraw.DrawPolygon(_local14, _local12, _local5); }; break; }; } public function GetContactCount():int{ return (m_contactCount); } public function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; var _local3:b2Island = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; var _local4:b2Contact = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; var _local5:b2Joint = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; var _local6:int = m_bodyCount; var _local7:Array = new Array(_local6); var _local8:b2Body = m_bodyList; while (_local8) { if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){ } else { if (_local8.IsStatic()){ } else { _local3.Clear(); _local9 = 0; var _temp1 = _local9; _local9 = (_local9 + 1); var _local15 = _temp1; _local7[_local15] = _local8; _local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag); while (_local9 > 0) { --_local9; _local2 = _local7[_local9]; _local3.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local12 = _local2.m_contactList; while (_local12) { if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){ } else { if (_local12.contact.m_manifoldCount == 0){ } else { _local3.AddContact(_local12.contact); _local12.contact.m_flags = (_local12.contact.m_flags | b2Contact.e_islandFlag); _local11 = _local12.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local9; _local9 = (_local9 + 1); var _local16 = _temp2; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; }; _local12 = _local12.next; }; _local13 = _local2.m_jointList; while (_local13) { if (_local13.joint.m_islandFlag == true){ } else { _local3.AddJoint(_local13.joint); _local13.joint.m_islandFlag = true; _local11 = _local13.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local9; _local9 = (_local9 + 1); _local16 = _temp3; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; _local13 = _local13.next; }; }; }; _local3.Solve(_arg1, m_gravity, m_positionCorrection, m_allowSleep); if (_local3.m_positionIterationCount > m_positionIterationCount){ m_positionIterationCount = _local3.m_positionIterationCount; }; _local10 = 0; while (_local10 < _local3.m_bodyCount) { _local2 = _local3.m_bodies[_local10]; if (_local2.IsStatic()){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local10++; }; }; }; _local8 = _local8.m_next; }; _local2 = m_bodyList; while (_local2) { if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local14 = _local2.SynchronizeShapes(); if ((((_local14 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; }; }; _local2 = _local2.m_next; }; m_broadPhase.Commit(); } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array = new Array(_arg3); var _local5:int = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); var _local6:int; while (_local6 < _local5) { _arg2[_local6] = _local4[_local6]; _local6++; }; return (_local5); } public function SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; var _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:b2TimeStep; var _local17:int; var _local18:Number; var _local19:Number; var _local20:b2Body; var _local21:Boolean; var _local8:b2Island = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); var _local9:int = m_bodyCount; var _local10:Array = new Array(_local9); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2.m_sweep.t0 = 0; _local2 = _local2.m_next; }; _local11 = m_contactList; while (_local11) { _local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local11 = _local11.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){ } else { _local18 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local18 = _local11.m_toi; } else { _local3 = _local11.m_shape1; _local4 = _local11.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((_local5.IsStatic()) || (_local5.IsSleeping()))) && (((_local6.IsStatic()) || (_local6.IsSleeping()))))){ continue; }; _local19 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local19 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local19); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local19 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local19); }; }; _local18 = b2TimeOfImpact.TimeOfImpact(_local11.m_shape1, _local5.m_sweep, _local11.m_shape2, _local6.m_sweep); if ((((_local18 > 0)) && ((_local18 < 1)))){ _local18 = (((1 - _local18) * _local19) + _local18); if (_local18 > 1){ _local18 = 1; }; }; _local11.m_toi = _local18; _local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local18)) && ((_local18 < _local13)))){ _local12 = _local11; _local13 = _local18; }; }; }; if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){ break; }; _local3 = _local12.m_shape1; _local4 = _local12.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if (_local12.m_manifoldCount == 0){ } else { _local14 = _local5; if (_local14.IsStatic()){ _local14 = _local6; }; _local8.Clear(); _local15 = 0; var _temp1 = _local15; _local15 = (_local15 + 1); var _local22 = _temp1; _local10[_local22] = _local14; _local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag); while (_local15 > 0) { --_local15; _local2 = _local10[_local15]; _local8.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local8.m_contactCount == _local8.m_contactCapacity){ } else { if ((_local7.contact.m_flags & ((b2Contact.e_islandFlag | b2Contact.e_slowFlag) | b2Contact.e_nonSolidFlag))){ } else { if (_local7.contact.m_manifoldCount == 0){ } else { _local8.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local20 = _local7.other; if ((_local20.m_flags & b2Body.e_islandFlag)){ } else { if (_local20.IsStatic() == false){ _local20.Advance(_local13); _local20.WakeUp(); }; var _temp2 = _local15; _local15 = (_local15 + 1); var _local23 = _temp2; _local10[_local23] = _local20; _local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag); }; }; }; }; _local7 = _local7.next; }; }; }; _local16 = new b2TimeStep(); _local16.dt = ((1 - _local13) * _arg1.dt); _local16.inv_dt = (1 / _local16.dt); _local16.maxIterations = _arg1.maxIterations; _local8.SolveTOI(_local16); _local17 = 0; while (_local17 < _local8.m_bodyCount) { _local2 = _local8.m_bodies[_local17]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local21 = _local2.SynchronizeShapes(); if ((((_local21 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local17++; }; _local17 = 0; while (_local17 < _local8.m_contactCount) { _local11 = _local8.m_contacts[_local17]; _local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local17++; }; m_broadPhase.Commit(); }; }; } public function GetJointList():b2Joint{ return (m_jointList); } public function GetBodyList():b2Body{ return (m_bodyList); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function Validate():void{ m_broadPhase.Validate(); } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function SetPositionCorrection(_arg1:Boolean):void{ m_positionCorrection = _arg1; } public function CreateJoint(_arg1:b2JointDef):b2Joint{ var _local3:b2Body; var _local4:b2Shape; var _local2:b2Joint = b2Joint.Create(_arg1, m_blockAllocator); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_node1.joint = _local2; _local2.m_node1.other = _local2.m_body2; _local2.m_node1.prev = null; _local2.m_node1.next = _local2.m_body1.m_jointList; if (_local2.m_body1.m_jointList){ _local2.m_body1.m_jointList.prev = _local2.m_node1; }; _local2.m_body1.m_jointList = _local2.m_node1; _local2.m_node2.joint = _local2; _local2.m_node2.other = _local2.m_body1; _local2.m_node2.prev = null; _local2.m_node2.next = _local2.m_body2.m_jointList; if (_local2.m_body2.m_jointList){ _local2.m_body2.m_jointList.prev = _local2.m_node2; }; _local2.m_body2.m_jointList = _local2.m_node2; if (_arg1.collideConnected == false){ _local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2; _local4 = _local3.m_shapeList; while (_local4) { _local4.RefilterProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local5:b2Body; var _local6:b2Shape; var _local2:Boolean = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; var _local3:b2Body = _arg1.m_body1; var _local4:b2Body = _arg1.m_body2; _local3.WakeUp(); _local4.WakeUp(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local3.m_jointList){ _local3.m_jointList = _arg1.m_node1.next; }; _arg1.m_node1.prev = null; _arg1.m_node1.next = null; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local4.m_jointList){ _local4.m_jointList = _arg1.m_node2.next; }; _arg1.m_node2.prev = null; _arg1.m_node2.next = null; b2Joint.Destroy(_arg1, m_blockAllocator); m_jointCount--; if (_local2 == false){ _local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4; _local6 = _local5.m_shapeList; while (_local6) { _local6.RefilterProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function CreateBody(_arg1:b2BodyDef):b2Body{ if (m_lock == true){ return (null); }; var _local2:b2Body = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function Step(_arg1:Number, _arg2:int):void{ m_lock = true; var _local3:b2TimeStep = new b2TimeStep(); _local3.dt = _arg1; _local3.maxIterations = _arg2; if (_arg1 > 0){ _local3.inv_dt = (1 / _arg1); } else { _local3.inv_dt = 0; }; _local3.dtRatio = (m_inv_dt0 * _arg1); _local3.positionCorrection = m_positionCorrection; _local3.warmStarting = m_warmStarting; m_contactManager.Collide(); if (_local3.dt > 0){ Solve(_local3); }; if (((m_continuousPhysics) && ((_local3.dt > 0)))){ SolveTOI(_local3); }; DrawDebugData(); m_inv_dt0 = _local3.inv_dt; m_lock = false; } public function GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } } }//package Box2D.Dynamics
Section 75
//messageAreaTextfield_33 (brickWorldLib_fla.messageAreaTextfield_33) package brickWorldLib_fla { import flash.display.*; import flash.text.*; public dynamic class messageAreaTextfield_33 extends MovieClip { public var textField:TextField; } }//package brickWorldLib_fla
Section 76
//AuxFunctions (caurina.transitions.AuxFunctions) package caurina.transitions { public class AuxFunctions { 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); } public static function numberToG(_arg1:Number):Number{ return (((_arg1 & 0xFF00) >> 8)); } public static function numberToR(_arg1:Number):Number{ return (((_arg1 & 0xFF0000) >> 16)); } public static function isInArray(_arg1:String, _arg2:Array):Boolean{ var _local3:uint = _arg2.length; var _local4:uint; while (_local4 < _local3) { if (_arg2[_local4] == _arg1){ return (true); }; _local4++; }; return (false); } public static function getObjectLength(_arg1:Object):uint{ var _local3:String; var _local2:uint; for (_local3 in _arg1) { _local2++; }; return (_local2); } public static function numberToB(_arg1:Number):Number{ return ((_arg1 & 0xFF)); } } }//package caurina.transitions
Section 77
//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 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 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 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 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 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 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 easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((_arg3 * _arg1) / _arg4) + _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 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 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 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 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 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)); } 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 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 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 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 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 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 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 easeInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((_arg3 * _arg1) * _arg1) + _arg2)); } 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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)); } } }//package caurina.transitions
Section 78
//PropertyInfoObj (caurina.transitions.PropertyInfoObj) package caurina.transitions { public class PropertyInfoObj { public var modifierParameters:Array; public var isSpecialProperty:Boolean; public var valueComplete:Number; public var modifierFunction:Function; public var extra:Object; public var valueStart:Number; public var hasModifier:Boolean; public var arrayIndex:Number; public var originalValueComplete:Object; 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 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); } public function clone():PropertyInfoObj{ var _local1:PropertyInfoObj = new PropertyInfoObj(valueStart, valueComplete, originalValueComplete, arrayIndex, extra, isSpecialProperty, modifierFunction, modifierParameters); return (_local1); } } }//package caurina.transitions
Section 79
//SpecialProperty (caurina.transitions.SpecialProperty) package caurina.transitions { public class SpecialProperty { public var parameters:Array; public var getValue:Function; public var preProcess:Function; public var setValue: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 80
//SpecialPropertyModifier (caurina.transitions.SpecialPropertyModifier) package caurina.transitions { public class SpecialPropertyModifier { public var getValue:Function; public var modifyValues: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 81
//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 82
//Tweener (caurina.transitions.Tweener) package caurina.transitions { import flash.display.*; import flash.events.*; import flash.utils.*; public class Tweener { private static var _timeScale:Number = 1; private static var _currentTimeFrame:Number; private static var _specialPropertySplitterList:Object; private static var _engineExists:Boolean = false; private static var _specialPropertyModifierList:Object; private static var _currentTime:Number; private static var _tweenList:Array; private static var _specialPropertyList:Object; private static var _transitionList:Object; private static var _inited:Boolean = false; private static var __tweener_controller__:MovieClip; public function Tweener(){ trace("Tweener is a static class and should not be instantiated."); } 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 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 init(... _args):void{ _inited = true; _transitionList = new Object(); Equations.init(); _specialPropertyList = new Object(); _specialPropertyModifierList = new Object(); _specialPropertySplitterList = new Object(); } 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 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 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 removeTweens(_arg1:Object, ... _args):Boolean{ var _local4:uint; var _local3:Array = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && (!(AuxFunctions.isInArray(_args[_local4], _local3))))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(removeTweenByIndex, _arg1, _local3)); } 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)); } public static function updateFrame():void{ _currentTimeFrame++; } 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); } public static function getVersion():String{ return ("AS3 1.31.71"); } public static function onEnterFrame(_arg1:Event):void{ if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; updateTime(); updateFrame(); var _local2:Boolean; _local2 = updateTweens(); } public static function updateTime():void{ _currentTime = getTimer(); } 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(e:Error) { handleError(tTweening, e, "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(e:Error) { handleError(tTweening, e, "onUpdate"); }; }; } else { tTweening.updatesSkipped++; }; }; if (((isOver) && (Boolean(tTweening.onComplete)))){ eventScope = (Boolean(tTweening.onCompleteScope)) ? tTweening.onCompleteScope : tScope; try { tTweening.onComplete.apply(eventScope, tTweening.onCompleteParams); } catch(e:Error) { handleError(tTweening, e, "onComplete"); }; }; return (!(isOver)); }; return (true); } 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 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 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())); }; }; } private static function startEngine():void{ _engineExists = true; _tweenList = new Array(); __tweener_controller__ = new MovieClip(); _currentTimeFrame = 0; updateTime(); } 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 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 = {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; 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 registerTransition(_arg1:String, _arg2:Function):void{ if (!_inited){ init(); }; _transitionList[_arg1] = _arg2; } public static function printError(_arg1:String):void{ trace(("## [Tweener] Error: " + _arg1)); } 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 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 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 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 getCurrentTweeningTime(_arg1:Object):Number{ return ((_arg1.useFrames) ? _currentTimeFrame : _currentTime); } 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 stopEngine():void{ _engineExists = false; _tweenList = null; _currentTime = 0; _currentTimeFrame = 0; __tweener_controller__ = null; } 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 registerSpecialPropertySplitter(_arg1:String, _arg2:Function, _arg3:Array=null):void{ if (!_inited){ init(); }; var _local4:SpecialPropertySplitter = new SpecialPropertySplitter(_arg2, _arg3); _specialPropertySplitterList[_arg1] = _local4; } public static function removeTweenByIndex(_arg1:Number, _arg2:Boolean=false):Boolean{ _tweenList[_arg1] = null; if (_arg2){ _tweenList.splice(_arg1, 1); }; return (true); } 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")) && (!(AuxFunctions.isInArray(_args[_local4], _local3))))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(resumeTweenByIndex, _arg1, _local3)); } 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")) && (!(AuxFunctions.isInArray(_args[_local4], _local3))))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(pauseTweenByIndex, _arg1, _local3)); } } }//package caurina.transitions
Section 83
//TweenListObj (caurina.transitions.TweenListObj) package caurina.transitions { public class TweenListObj { public var hasStarted:Boolean; public var onUpdate:Function; public var useFrames:Boolean; public var count:Number; public var onOverwriteParams:Array; public var timeStart:Number; public var timeComplete:Number; public var onStartParams:Array; public var onUpdateScope:Object; public var rounded:Boolean; public var onUpdateParams:Array; public var properties:Object; public var onComplete:Function; public var transitionParams:Object; public var updatesSkipped:Number; public var onStart:Function; public var onOverwriteScope:Object; public var skipUpdates:Number; public var onStartScope:Object; public var scope:Object; public var isCaller:Boolean; public var timePaused:Number; public var transition:Function; public var onCompleteParams:Array; public var onError:Function; public var timesCalled:Number; public var onErrorScope:Object; public var onOverwrite:Function; public var isPaused:Boolean; public var waitFrames:Boolean; public var onCompleteScope:Object; 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 84
//MemoryCrypto (com.electrotank.util.MemoryCrypto) package com.electrotank.util { import com.meychi.ascrypt3.*; public class MemoryCrypto { private static var crypto:TEA = null; private static var INCREMENT:int = 0; private static var initialized:Boolean = false; private static var key:String = null; private static var MULTIPLY:int = 2; private static var DECREMENT:int = 1; private static var dataHolder:Object = null; private static var DIVIDE:int = 3; public static function incrementValue(_arg1:String, _arg2:Number):Number{ return (processValue(_arg1, _arg2, INCREMENT)); } public static function getValue(_arg1:String):Number{ initIfNeeded(); var _local2:Number = 0; if (!isValueSet(_arg1)){ setValue(_arg1, _local2); } else { _local2 = new Number(crypto.decrypt(dataHolder[_arg1], key)); }; return (_local2); } private static function processValue(_arg1:String, _arg2:Number, _arg3:int):Number{ initIfNeeded(); var _local4:Number = getValue(_arg1); switch (_arg3){ case INCREMENT: _local4 = (_local4 + _arg2); break; case DECREMENT: _local4 = (_local4 - _arg2); break; case MULTIPLY: _local4 = (_local4 * _arg2); break; case DIVIDE: _local4 = (_local4 / _arg2); break; }; setValue(_arg1, _local4); return (_local4); } public static function reset():void{ initialized = false; initIfNeeded(); } public static function decrementValue(_arg1:String, _arg2:Number):Number{ return (processValue(_arg1, _arg2, DECREMENT)); } private static function initIfNeeded():void{ var _local1:Number; var _local2:String; var _local3:Number; var _local4:String; if (!initialized){ _local1 = Math.random(); _local2 = new String(_local1); _local2 = _local2.substr(2, (_local2.length - 2)); _local3 = Math.random(); _local4 = new String(_local3); _local4 = _local4.substr(2, (_local4.length - 2)); key = (_local2 + _local4); crypto = new TEA(); dataHolder = new Object(); initialized = true; }; } public static function multiplyValue(_arg1:String, _arg2:Number):Number{ return (processValue(_arg1, _arg2, MULTIPLY)); } public static function setValue(_arg1:String, _arg2:Number):Number{ initIfNeeded(); dataHolder[_arg1] = crypto.encrypt(_arg2.toString(), key); return (_arg2); } public static function divideValue(_arg1:String, _arg2:Number):Number{ if (_arg2 == 0){ throw (new Error("Amount can't be zero when dividing!")); }; return (processValue(_arg1, _arg2, DIVIDE)); } public static function isValueSet(_arg1:String):Boolean{ initIfNeeded(); var _local2:Boolean; if (dataHolder[_arg1] != null){ _local2 = true; }; return (_local2); } } }//package com.electrotank.util
Section 85
//KongregateEvent (com.kongregate.as3.client.events.KongregateEvent) package com.kongregate.as3.client.events { import flash.events.*; public class KongregateEvent extends Event { public static const COMPLETE:String = "component_api_available"; public function KongregateEvent(_arg1:String){ super(_arg1); } } }//package com.kongregate.as3.client.events
Section 86
//AbstractShadowService (com.kongregate.as3.client.services.AbstractShadowService) package com.kongregate.as3.client.services { import flash.events.*; public class AbstractShadowService extends EventDispatcher { protected function alert(_arg1:String, _arg2:String, _arg3="", _arg4:String=""):void{ trace(((((((("Kongregate API: " + _arg1) + ".") + _arg2) + "(") + _arg3) + ") ") + _arg4)); } } }//package com.kongregate.as3.client.services
Section 87
//HighScoreServiceShadow (com.kongregate.as3.client.services.HighScoreServiceShadow) package com.kongregate.as3.client.services { public class HighScoreServiceShadow extends AbstractShadowService implements IHighScoreServices { private var mode:String; public function HighScoreServiceShadow(){ mode = ""; } public function submit(_arg1:Number, _arg2:String=null):void{ alert("IHighScoreServices", "submit", arguments); } public function connect():Boolean{ alert("IKongregateServices", "connect"); return (true); } public function requestList(_arg1:Function):void{ alert("IHighScoreServices", "requestList", "", (("[Mode: " + mode) + "]")); _arg1({success:false}); } public function setMode(_arg1:String):void{ alert("IHighScoreServices", "setMode", arguments); this.mode = _arg1; } } }//package com.kongregate.as3.client.services
Section 88
//IHighScoreServices (com.kongregate.as3.client.services.IHighScoreServices) package com.kongregate.as3.client.services { public interface IHighScoreServices { function setMode(_arg1:String):void; function submit(_arg1:Number, _arg2:String=null):void; function requestList(_arg1:Function):void; } }//package com.kongregate.as3.client.services
Section 89
//IKongregateServices (com.kongregate.as3.client.services.IKongregateServices) package com.kongregate.as3.client.services { import flash.events.*; public interface IKongregateServices extends IEventDispatcher { function getPlayerInfo(_arg1:Function):void; function connect(_arg1:Number=-1):Boolean; } }//package com.kongregate.as3.client.services
Section 90
//IStatServices (com.kongregate.as3.client.services.IStatServices) package com.kongregate.as3.client.services { public interface IStatServices { function submitArray(_arg1:Array):void; function submit(_arg1:String, _arg2:Number):void; } }//package com.kongregate.as3.client.services
Section 91
//IUserServices (com.kongregate.as3.client.services.IUserServices) package com.kongregate.as3.client.services { public interface IUserServices { function getName():String; function getPlayerInfo(_arg1:Function):void; } }//package com.kongregate.as3.client.services
Section 92
//KongregateServiceShadow (com.kongregate.as3.client.services.KongregateServiceShadow) package com.kongregate.as3.client.services { public class KongregateServiceShadow extends AbstractShadowService implements IKongregateServices { public function getName():String{ alert("IKongregateServices", "getName"); return ("Guest"); } public function connect(_arg1:Number=-1):Boolean{ alert("IKongregateServices", "connect", arguments); return (true); } public function getPlayerInfo(_arg1:Function):void{ alert("IKongregateServices", "getPlayerInfo"); _arg1(new Object()); } } }//package com.kongregate.as3.client.services
Section 93
//StatServiceShadow (com.kongregate.as3.client.services.StatServiceShadow) package com.kongregate.as3.client.services { public class StatServiceShadow extends AbstractShadowService implements IStatServices { public function submitArray(_arg1:Array):void{ alert("IStatServices", "submitArray", arguments); } public function submit(_arg1:String, _arg2:Number):void{ alert("IStatServices", "submitStat", arguments); } } }//package com.kongregate.as3.client.services
Section 94
//UserServiceShadow (com.kongregate.as3.client.services.UserServiceShadow) package com.kongregate.as3.client.services { public class UserServiceShadow extends AbstractShadowService implements IUserServices { public function getName():String{ alert("UserService", "getName"); return ("Guest"); } public function getPlayerInfo(_arg1:Function):void{ alert("UserService", "getPlayerInfo"); _arg1({isGuest:true, name:"Guest", points:0, level:0, isMode:false, isAdmin:false, isDeveloper:false, avatarPath:"", chatAvatarPath:""}); } } }//package com.kongregate.as3.client.services
Section 95
//IAPIBootstrap (com.kongregate.as3.client.IAPIBootstrap) package com.kongregate.as3.client { import flash.display.*; import flash.events.*; public interface IAPIBootstrap { function init(_arg1:Event=null, _arg2:Stage=null):void; function hideLog():void; function showLog(_arg1:int=0):void; } }//package com.kongregate.as3.client
Section 96
//KongregateAPI (com.kongregate.as3.client.KongregateAPI) package com.kongregate.as3.client { import flash.display.*; import com.kongregate.as3.client.events.*; import flash.events.*; import com.kongregate.as3.client.services.*; import flash.utils.*; import flash.system.*; import flash.net.*; import flash.errors.*; public class KongregateAPI extends Sprite { private const VERSION:Number = 1; private var loader:Loader; private var loadedDomain:ApplicationDomain; private static const CLASS_USER:String = "com.kongregate.as3.client.services.UserServices"; private static const CLASS_STATS:String = "com.kongregate.as3.client.services.StatServices"; private static const CLASS_SERVICES:String = "com.kongregate.as3.client.services.KongregateServices"; private static const CLASS_SCORES:String = "com.kongregate.as3.client.services.HighScoreServices"; private static const DEBUG_API_URL:String = "//Linuxpc/kongregate/public/flash/API_AS3.swf"; private static var _connected:Boolean; private static var kUser:IUserServices; private static var _loaded:Boolean; private static var kServices:IKongregateServices; private static var kScores:IHighScoreServices; private static var mInstance:KongregateAPI; private static var kStats:IStatServices; private static var kAPI:IAPIBootstrap; public function KongregateAPI(){ if (mInstance != null){ throw (new Error("Warning: KongregateAPI has been added to stage more than once or accessed improperly. Use getInstance() or a stage reference to access.")); }; mInstance = this; this.addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true); } public function get loaded():Boolean{ return (_loaded); } public function get connected():Boolean{ return (_connected); } private function alertConnected(_arg1:TimerEvent=null):void{ var _local2:KongregateEvent; var _local3:Boolean; _local2 = new KongregateEvent(KongregateEvent.COMPLETE); _local3 = this.dispatchEvent(_local2); } private function init(_arg1:Event):void{ var _local2:Object; var _local3:String; var _local4:URLRequest; var _local5:LoaderContext; this.removeEventListener(Event.ADDED_TO_STAGE, init); _loaded = false; _connected = false; _local2 = LoaderInfo(root.loaderInfo).parameters; _local3 = _local2.api_path; if (_local3 == null){ trace("Alert: Kongregate API could not be loaded, due to local testing. API will load when the game is uploaded."); createShadowServices(); return; }; Security.allowDomain("*.kongregate.com"); Security.allowDomain("kongregatetrunk.com"); _local4 = new URLRequest(_local3); _local5 = new LoaderContext(false); _local5.applicationDomain = ApplicationDomain.currentDomain; _local5.securityDomain = SecurityDomain.currentDomain; loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); loader.load(_local4, _local5); } public function get api():IAPIBootstrap{ return (kAPI); } private function loadComplete(_arg1:Event):void{ getServices(); } public function get scores():IHighScoreServices{ return (kScores); } private function ioErrorHandler(_arg1:IOErrorEvent):void{ throw (new IOError(("API file not found. " + _arg1))); } public function get services():IKongregateServices{ return (kServices); } public function get stats():IStatServices{ return (kStats); } private function createShadowServices():void{ var _local1:Timer; trace(">>> Kongregate Shadow Services instantiated for local development.."); kServices = new KongregateServiceShadow(); kScores = new HighScoreServiceShadow(); kStats = new StatServiceShadow(); kUser = new UserServiceShadow(); _local1 = new Timer(200, 1); _local1.addEventListener(TimerEvent.TIMER_COMPLETE, alertConnected); _local1.start(); _connected = true; } public function get user():IUserServices{ return (kUser); } private function getServices():void{ var _local1:ApplicationDomain; var _local2:*; var _local3:*; var _local4:*; var _local5:*; _local1 = ApplicationDomain.currentDomain; kAPI = IAPIBootstrap(loader.getChildAt(0)); this.addChild(loader); _local2 = _local1.getDefinition(CLASS_SERVICES); trace(_local2); kServices = _local2.getInstance(); _local3 = _local1.getDefinition(CLASS_SCORES); kScores = _local3.getInstance(); _local4 = _local1.getDefinition(CLASS_STATS); kStats = _local4.getInstance(); _local5 = _local1.getDefinition(CLASS_USER); kUser = _local5.getInstance(); kServices.connect(VERSION); _loaded = true; _connected = true; alertConnected(); } public static function getInstance():KongregateAPI{ if (!mInstance){ throw (new IllegalOperationError("You must add the Kongregate API component to the stage before attempting to access it.")); }; return (mInstance); } } }//package com.kongregate.as3.client
Section 97
//TEA (com.meychi.ascrypt3.TEA) package com.meychi.ascrypt3 { public class TEA { public function decrypt(_arg1:String, _arg2:String):String{ var _local9:Number; var _local10:Number; var _local13:Number; var _local3:Array = charsToLongs(hexToChars(_arg1)); var _local4:Array = charsToLongs(strToChars(_arg2)); var _local5:Number = _local3.length; if (_local5 == 0){ return (""); }; var _local6:Number = _local3[(_local5 - 1)]; var _local7:Number = _local3[0]; var _local8:Number = 2654435769; var _local11:Number = Math.floor((6 + (52 / _local5))); var _local12:Number = (_local11 * _local8); while (_local12 != 0) { _local10 = ((_local12 >>> 2) & 3); _local13 = (_local5 - 1); while (_local13 > 0) { _local6 = _local3[(_local13 - 1)]; _local9 = ((((_local6 >>> 5) ^ (_local7 << 2)) + ((_local7 >>> 3) ^ (_local6 << 4))) ^ ((_local12 ^ _local7) + (_local4[((_local13 & 3) ^ _local10)] ^ _local6))); _local7 = (_local3[_local13] = (_local3[_local13] - _local9)); _local13--; }; _local6 = _local3[(_local5 - 1)]; _local9 = ((((_local6 >>> 5) ^ (_local7 << 2)) + ((_local7 >>> 3) ^ (_local6 << 4))) ^ ((_local12 ^ _local7) + (_local4[((_local13 & 3) ^ _local10)] ^ _local6))); _local7 = (_local3[0] = (_local3[0] - _local9)); _local12 = (_local12 - _local8); }; return (charsToStr(longsToChars(_local3))); } public function encrypt(_arg1:String, _arg2:String):String{ var _local9:Number; var _local10:Number; var _local13:Number; var _local3:Array = charsToLongs(strToChars(_arg1)); var _local4:Array = charsToLongs(strToChars(_arg2)); var _local5:Number = _local3.length; if (_local5 == 0){ return (""); }; if (_local5 == 1){ var _temp1 = _local5; _local5 = (_local5 + 1); var _local14 = _temp1; _local3[_local14] = 0; }; var _local6:Number = _local3[(_local5 - 1)]; var _local7:Number = _local3[0]; var _local8:Number = 2654435769; var _local11:Number = Math.floor((6 + (52 / _local5))); var _local12:Number = 0; while (_local11-- > 0) { _local12 = (_local12 + _local8); _local10 = ((_local12 >>> 2) & 3); _local13 = 0; while (_local13 < (_local5 - 1)) { _local7 = _local3[(_local13 + 1)]; _local9 = ((((_local6 >>> 5) ^ (_local7 << 2)) + ((_local7 >>> 3) ^ (_local6 << 4))) ^ ((_local12 ^ _local7) + (_local4[((_local13 & 3) ^ _local10)] ^ _local6))); _local6 = (_local3[_local13] = (_local3[_local13] + _local9)); _local13++; }; _local7 = _local3[0]; _local9 = ((((_local6 >>> 5) ^ (_local7 << 2)) + ((_local7 >>> 3) ^ (_local6 << 4))) ^ ((_local12 ^ _local7) + (_local4[((_local13 & 3) ^ _local10)] ^ _local6))); _local6 = (_local3[(_local5 - 1)] = (_local3[(_local5 - 1)] + _local9)); }; return (charsToHex(longsToChars(_local3))); } private static function strToChars(_arg1:String):Array{ var _local2:Array = new Array(); var _local3:Number = 0; while (_local3 < _arg1.length) { _local2.push(_arg1.charCodeAt(_local3)); _local3++; }; return (_local2); } private static function charsToHex(_arg1:Array):String{ var _local2:String = new String(""); var _local3:Array = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"); var _local4:Number = 0; while (_local4 < _arg1.length) { _local2 = (_local2 + (_local3[(_arg1[_local4] >> 4)] + _local3[(_arg1[_local4] & 15)])); _local4++; }; return (_local2); } private static function hexToChars(_arg1:String):Array{ var _local2:Array = new Array(); var _local3:Number = ((_arg1.substr(0, 2))=="0x") ? 2 : 0; while (_local3 < _arg1.length) { _local2.push(parseInt(_arg1.substr(_local3, 2), 16)); _local3 = (_local3 + 2); }; return (_local2); } private static function charsToStr(_arg1:Array):String{ var _local2:String = new String(""); var _local3:Number = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode(_arg1[_local3])); _local3++; }; return (_local2); } private static function longsToChars(_arg1:Array):Array{ var _local2:Array = new Array(); var _local3:Number = 0; while (_local3 < _arg1.length) { _local2.push((_arg1[_local3] & 0xFF), ((_arg1[_local3] >>> 8) & 0xFF), ((_arg1[_local3] >>> 16) & 0xFF), ((_arg1[_local3] >>> 24) & 0xFF)); _local3++; }; return (_local2); } private static function charsToLongs(_arg1:Array):Array{ var _local2:Array = new Array(Math.ceil((_arg1.length / 4))); var _local3:Number = 0; while (_local3 < _local2.length) { _local2[_local3] = (((_arg1[(_local3 * 4)] + (_arg1[((_local3 * 4) + 1)] << 8)) + (_arg1[((_local3 * 4) + 2)] << 16)) + (_arg1[((_local3 * 4) + 3)] << 24)); _local3++; }; return (_local2); } } }//package com.meychi.ascrypt3
Section 98
//PM_PRNG (de.polygonal.math.PM_PRNG) package de.polygonal.math { public class PM_PRNG { public var seed:uint; public function PM_PRNG(){ seed = 1; } private function gen():uint{ return ((seed = ((seed * 16807) % 2147483647))); } public function nextIntRange(_arg1:Number, _arg2:Number):uint{ _arg1 = (_arg1 - 0.4999); _arg2 = (_arg2 + 0.4999); return (Math.round((_arg1 + ((_arg2 - _arg1) * nextDouble())))); } public function nextDouble():Number{ return ((gen() / 2147483647)); } public function nextDoubleRange(_arg1:Number, _arg2:Number):Number{ return ((_arg1 + ((_arg2 - _arg1) * nextDouble()))); } public function nextInt():uint{ return (gen()); } } }//package de.polygonal.math
Section 99
//BaseScrollPane (fl.containers.BaseScrollPane) package fl.containers { import flash.display.*; import flash.events.*; import flash.geom.*; import fl.core.*; import fl.controls.*; import fl.events.*; public class BaseScrollPane extends UIComponent { protected var defaultLineScrollSize:Number;// = 4 protected var _maxHorizontalScrollPosition:Number;// = 0 protected var vScrollBar:Boolean; protected var disabledOverlay:Shape; protected var hScrollBar:Boolean; protected var availableWidth:Number; protected var _verticalPageScrollSize:Number;// = 0 protected var vOffset:Number;// = 0 protected var _verticalScrollBar:ScrollBar; protected var useFixedHorizontalScrolling:Boolean;// = false protected var contentWidth:Number;// = 0 protected var contentHeight:Number;// = 0 protected var _horizontalPageScrollSize:Number;// = 0 protected var background:DisplayObject; protected var _useBitmpScrolling:Boolean;// = false protected var contentPadding:Number;// = 0 protected var availableHeight:Number; protected var _horizontalScrollBar:ScrollBar; protected var contentScrollRect:Rectangle; protected var _horizontalScrollPolicy:String; protected var _verticalScrollPolicy:String; protected static const SCROLL_BAR_STYLES:Object = {upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {repeatDelay:500, repeatInterval:35, skin:"ScrollPane_upSkin", contentPadding:0, disabledAlpha:0.5}; public function BaseScrollPane(){ contentWidth = 0; contentHeight = 0; contentPadding = 0; vOffset = 0; _maxHorizontalScrollPosition = 0; _horizontalPageScrollSize = 0; _verticalPageScrollSize = 0; defaultLineScrollSize = 4; useFixedHorizontalScrolling = false; _useBitmpScrolling = false; super(); } protected function handleWheel(_arg1:MouseEvent):void{ if (((((!(enabled)) || (!(_verticalScrollBar.visible)))) || ((contentHeight <= availableHeight)))){ return; }; _verticalScrollBar.scrollPosition = (_verticalScrollBar.scrollPosition - (_arg1.delta * verticalLineScrollSize)); setVerticalScrollPosition(_verticalScrollBar.scrollPosition); dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _arg1.delta, horizontalScrollPosition)); } public function get verticalScrollPosition():Number{ return (_verticalScrollBar.scrollPosition); } protected function drawDisabledOverlay():void{ if (enabled){ if (contains(disabledOverlay)){ removeChild(disabledOverlay); }; } else { disabledOverlay.x = (disabledOverlay.y = contentPadding); disabledOverlay.width = availableWidth; disabledOverlay.height = availableHeight; disabledOverlay.alpha = (getStyleValue("disabledAlpha") as Number); addChild(disabledOverlay); }; } public function set verticalScrollPosition(_arg1:Number):void{ drawNow(); _verticalScrollBar.scrollPosition = _arg1; setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); } protected function setContentSize(_arg1:Number, _arg2:Number):void{ if ((((((contentWidth == _arg1)) || (useFixedHorizontalScrolling))) && ((contentHeight == _arg2)))){ return; }; contentWidth = _arg1; contentHeight = _arg2; invalidate(InvalidationType.SIZE); } public function get horizontalScrollPosition():Number{ return (_horizontalScrollBar.scrollPosition); } public function get horizontalScrollBar():ScrollBar{ return (_horizontalScrollBar); } override public function set enabled(_arg1:Boolean):void{ if (enabled == _arg1){ return; }; _verticalScrollBar.enabled = _arg1; _horizontalScrollBar.enabled = _arg1; super.enabled = _arg1; } public function get verticalLineScrollSize():Number{ return (_verticalScrollBar.lineScrollSize); } public function get horizontalScrollPolicy():String{ return (_horizontalScrollPolicy); } protected function calculateAvailableSize():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = ScrollBar.WIDTH; _local2 = (contentPadding = Number(getStyleValue("contentPadding"))); _local3 = ((height - (2 * _local2)) - vOffset); vScrollBar = (((_verticalScrollPolicy == ScrollPolicy.ON)) || ((((_verticalScrollPolicy == ScrollPolicy.AUTO)) && ((contentHeight > _local3))))); _local4 = ((width - (vScrollBar) ? _local1 : 0) - (2 * _local2)); _local5 = (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - _local4); hScrollBar = (((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_local5 > 0))))); if (hScrollBar){ _local3 = (_local3 - _local1); }; if (((((((hScrollBar) && (!(vScrollBar)))) && ((_verticalScrollPolicy == ScrollPolicy.AUTO)))) && ((contentHeight > _local3)))){ vScrollBar = true; _local4 = (_local4 - _local1); }; availableHeight = (_local3 + vOffset); availableWidth = _local4; } public function get maxVerticalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentHeight - availableHeight))); } public function set horizontalScrollPosition(_arg1:Number):void{ drawNow(); _horizontalScrollBar.scrollPosition = _arg1; setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); } public function get horizontalLineScrollSize():Number{ return (_horizontalScrollBar.lineScrollSize); } public function set verticalPageScrollSize(_arg1:Number):void{ _verticalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } public function get verticalScrollPolicy():String{ return (_verticalScrollPolicy); } protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function get useBitmapScrolling():Boolean{ return (_useBitmpScrolling); } protected function handleScroll(_arg1:ScrollEvent):void{ if (_arg1.target == _verticalScrollBar){ setVerticalScrollPosition(_arg1.position); } else { setHorizontalScrollPosition(_arg1.position); }; } public function set verticalLineScrollSize(_arg1:Number):void{ _verticalScrollBar.lineScrollSize = _arg1; } public function get verticalScrollBar():ScrollBar{ return (_verticalScrollBar); } protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function set horizontalPageScrollSize(_arg1:Number):void{ _horizontalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STATE)){ drawLayout(); }; updateChildren(); super.draw(); } public function set horizontalScrollPolicy(_arg1:String):void{ _horizontalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } override protected function configUI():void{ var _local1:Graphics; super.configUI(); contentScrollRect = new Rectangle(0, 0, 85, 85); _verticalScrollBar = new ScrollBar(); _verticalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _verticalScrollBar.visible = false; _verticalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_verticalScrollBar); copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); _horizontalScrollBar = new ScrollBar(); _horizontalScrollBar.direction = ScrollBarDirection.HORIZONTAL; _horizontalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _horizontalScrollBar.visible = false; _horizontalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_horizontalScrollBar); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); disabledOverlay = new Shape(); _local1 = disabledOverlay.graphics; _local1.beginFill(0xFFFFFF); _local1.drawRect(0, 0, width, height); _local1.endFill(); addEventListener(MouseEvent.MOUSE_WHEEL, handleWheel, false, 0, true); } protected function calculateContentWidth():void{ } public function get verticalPageScrollSize():Number{ if (isNaN(availableHeight)){ drawNow(); }; return (((((_verticalPageScrollSize == 0)) && (!(isNaN(availableHeight))))) ? availableHeight : _verticalPageScrollSize); } protected function drawLayout():void{ calculateAvailableSize(); calculateContentWidth(); background.width = width; background.height = height; if (vScrollBar){ _verticalScrollBar.visible = true; _verticalScrollBar.x = ((width - ScrollBar.WIDTH) - contentPadding); _verticalScrollBar.y = contentPadding; _verticalScrollBar.height = availableHeight; } else { _verticalScrollBar.visible = false; }; _verticalScrollBar.setScrollProperties(availableHeight, 0, (contentHeight - availableHeight), verticalPageScrollSize); setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); if (hScrollBar){ _horizontalScrollBar.visible = true; _horizontalScrollBar.x = contentPadding; _horizontalScrollBar.y = ((height - ScrollBar.WIDTH) - contentPadding); _horizontalScrollBar.width = availableWidth; } else { _horizontalScrollBar.visible = false; }; _horizontalScrollBar.setScrollProperties(availableWidth, 0, (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - availableWidth), horizontalPageScrollSize); setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); drawDisabledOverlay(); } protected function drawBackground():void{ var _local1:DisplayObject; _local1 = background; background = getDisplayObjectInstance(getStyleValue("skin")); background.width = width; background.height = height; addChildAt(background, 0); if (((!((_local1 == null))) && (!((_local1 == background))))){ removeChild(_local1); }; } public function set horizontalLineScrollSize(_arg1:Number):void{ _horizontalScrollBar.lineScrollSize = _arg1; } public function get horizontalPageScrollSize():Number{ if (isNaN(availableWidth)){ drawNow(); }; return (((((_horizontalPageScrollSize == 0)) && (!(isNaN(availableWidth))))) ? availableWidth : _horizontalPageScrollSize); } public function get maxHorizontalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentWidth - availableWidth))); } protected function setStyles():void{ copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); } protected function updateChildren():void{ _verticalScrollBar.enabled = (_horizontalScrollBar.enabled = enabled); _verticalScrollBar.drawNow(); _horizontalScrollBar.drawNow(); } public function set verticalScrollPolicy(_arg1:String):void{ _verticalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } public function set useBitmapScrolling(_arg1:Boolean):void{ _useBitmpScrolling = _arg1; invalidate(InvalidationType.STATE); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, ScrollBar.getStyleDefinition())); } } }//package fl.containers
Section 100
//DataGridCellEditor (fl.controls.dataGridClasses.DataGridCellEditor) package fl.controls.dataGridClasses { import fl.controls.*; import fl.controls.listClasses.*; public class DataGridCellEditor extends TextInput implements ICellRenderer { protected var _data:Object; protected var _listData:ListData; private static var defaultStyles:Object = {textPadding:1, textFormat:null, upSkin:"DataGridCellEditor_skin"}; public function DataGridCellEditor():void{ } public function get selected():Boolean{ return (false); } public function set listData(_arg1:ListData):void{ _listData = _arg1; text = _listData.label; } public function setMouseState(_arg1:String):void{ } public function set selected(_arg1:Boolean):void{ } public function set data(_arg1:Object):void{ _data = _arg1; } public function get listData():ListData{ return (_listData); } public function get data():Object{ return (_data); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls.dataGridClasses
Section 101
//DataGridColumn (fl.controls.dataGridClasses.DataGridColumn) package fl.controls.dataGridClasses { import fl.core.*; import fl.controls.*; public class DataGridColumn { private var _headerText:String; public var editorDataField:String;// = "text" private var forceImport:DataGridCellEditor; private var _headerRenderer:Object; public var sortOptions:uint;// = 0 private var _cellRenderer:Object; private var _columnName:String; public var resizable:Boolean;// = true private var _sortCompareFunction:Function; private var _visible:Boolean;// = true public var sortDescending:Boolean;// = false public var owner:DataGrid; private var _imeMode:String; private var _width:Number;// = 100 public var editable:Boolean;// = true public var itemEditor:Object;// = "fl.controls.dataGridClasses.DataGridCellEditor" public var explicitWidth:Number; private var _minWidth:Number;// = 20 private var _labelFunction:Function; public var sortable:Boolean;// = true public var colNum:Number; public var dataField:String; public function DataGridColumn(_arg1:String=null){ _minWidth = 20; _width = 100; _visible = true; sortable = true; resizable = true; editable = true; itemEditor = "fl.controls.dataGridClasses.DataGridCellEditor"; editorDataField = "text"; sortDescending = false; sortOptions = 0; super(); if (_arg1){ dataField = _arg1; headerText = _arg1; }; } public function set headerRenderer(_arg1:Object):void{ _headerRenderer = _arg1; if (owner){ owner.invalidate(InvalidationType.DATA); }; } public function get imeMode():String{ return (_imeMode); } public function setWidth(_arg1:Number):void{ _width = _arg1; } public function set width(_arg1:Number):void{ var _local2:Boolean; explicitWidth = _arg1; if (owner != null){ _local2 = resizable; resizable = false; owner.resizeColumn(colNum, _arg1); resizable = _local2; } else { _width = _arg1; }; } public function set cellRenderer(_arg1:Object):void{ _cellRenderer = _arg1; if (owner){ owner.invalidate(InvalidationType.DATA); }; } public function get minWidth():Number{ return (_minWidth); } public function set imeMode(_arg1:String):void{ _imeMode = _arg1; } public function toString():String{ return ("[object DataGridColumn]"); } public function get visible():Boolean{ return (_visible); } public function itemToLabel(_arg1:Object):String{ var data = _arg1; if (!data){ return (" "); }; if (labelFunction != null){ return (labelFunction(data)); }; if (owner.labelFunction != null){ return (owner.labelFunction(data, this)); }; if ((((typeof(data) == "object")) || ((typeof(data) == "xml")))){ try { data = data[dataField]; } catch(e:Error) { data = null; }; }; if ((data is String)){ return (String(data)); }; try { return (data.toString()); } catch(e:Error) { }; return (" "); } public function set minWidth(_arg1:Number):void{ _minWidth = _arg1; if (_width < _arg1){ _width = _arg1; }; if (owner){ owner.invalidate(InvalidationType.SIZE); }; } public function set headerText(_arg1:String):void{ _headerText = _arg1; if (owner){ owner.invalidate(InvalidationType.DATA); }; } public function set sortCompareFunction(_arg1:Function):void{ _sortCompareFunction = _arg1; } public function get width():Number{ return (_width); } public function get cellRenderer():Object{ return (_cellRenderer); } public function set labelFunction(_arg1:Function):void{ if (_labelFunction == _arg1){ return; }; _labelFunction = _arg1; if (owner){ owner.invalidate(InvalidationType.DATA); }; } public function get headerText():String{ return (((_headerText)!=null) ? _headerText : dataField); } public function get sortCompareFunction():Function{ return (_sortCompareFunction); } public function get headerRenderer():Object{ return (_headerRenderer); } public function get labelFunction():Function{ return (_labelFunction); } public function set visible(_arg1:Boolean):void{ if (_visible != _arg1){ _visible = _arg1; if (owner){ owner.invalidate(InvalidationType.SIZE); }; }; } } }//package fl.controls.dataGridClasses
Section 102
//HeaderRenderer (fl.controls.dataGridClasses.HeaderRenderer) package fl.controls.dataGridClasses { import fl.controls.*; public class HeaderRenderer extends LabelButton { public var _column:uint; private static var defaultStyles:Object = {upSkin:"HeaderRenderer_upSkin", downSkin:"HeaderRenderer_downSkin", overSkin:"HeaderRenderer_overSkin", disabledSkin:"HeaderRenderer_disabledSkin", selectedDisabledSkin:"HeaderRenderer_selectedDisabledSkin", selectedUpSkin:"HeaderRenderer_selectedUpSkin", selectedDownSkin:"HeaderRenderer_selectedDownSkin", selectedOverSkin:"HeaderRenderer_selectedOverSkin", textFormat:null, disabledTextFormat:null, textPadding:5}; public function HeaderRenderer():void{ focusEnabled = false; } public function set column(_arg1:uint):void{ _column = _arg1; } public function get column():uint{ return (_column); } override protected function drawLayout():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = Number(getStyleValue("textPadding")); textField.height = (textField.textHeight + 4); textField.visible = (label.length > 0); _local2 = (textField.textWidth + 4); _local3 = (textField.textHeight + 4); _local4 = ((icon)==null) ? 0 : (icon.width + 4); _local5 = Math.max(0, Math.min(_local2, ((width - (2 * _local1)) - _local4))); if (icon != null){ icon.x = (((width - _local1) - icon.width) - 2); icon.y = Math.round(((height - icon.height) / 2)); }; textField.width = _local5; textField.x = _local1; textField.y = Math.round(((height - textField.height) / 2)); background.width = width; background.height = height; } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls.dataGridClasses
Section 103
//CellRenderer (fl.controls.listClasses.CellRenderer) package fl.controls.listClasses { import flash.events.*; import fl.controls.*; public class CellRenderer extends LabelButton implements ICellRenderer { protected var _data:Object; protected var _listData:ListData; private static var defaultStyles:Object = {upSkin:"CellRenderer_upSkin", downSkin:"CellRenderer_downSkin", overSkin:"CellRenderer_overSkin", disabledSkin:"CellRenderer_disabledSkin", selectedDisabledSkin:"CellRenderer_selectedDisabledSkin", selectedUpSkin:"CellRenderer_selectedUpSkin", selectedDownSkin:"CellRenderer_selectedDownSkin", selectedOverSkin:"CellRenderer_selectedOverSkin", textFormat:null, disabledTextFormat:null, embedFonts:null, textPadding:5}; public function CellRenderer():void{ toggle = true; focusEnabled = false; } override protected function toggleSelected(_arg1:MouseEvent):void{ } override public function get selected():Boolean{ return (super.selected); } public function set listData(_arg1:ListData):void{ _listData = _arg1; label = _listData.label; setStyle("icon", _listData.icon); } override public function set selected(_arg1:Boolean):void{ super.selected = _arg1; } public function set data(_arg1:Object):void{ _data = _arg1; } public function get listData():ListData{ return (_listData); } override public function setSize(_arg1:Number, _arg2:Number):void{ super.setSize(_arg1, _arg2); } override protected function drawLayout():void{ var _local1:Number; var _local2:Number; var _local3:Number; _local1 = Number(getStyleValue("textPadding")); _local2 = 0; if (icon != null){ icon.x = _local1; icon.y = Math.round(((height - icon.height) >> 1)); _local2 = (icon.width + _local1); }; if (label.length > 0){ textField.visible = true; _local3 = Math.max(0, ((width - _local2) - (_local1 * 2))); textField.width = _local3; textField.height = (textField.textHeight + 4); textField.x = (_local2 + _local1); textField.y = Math.round(((height - textField.height) >> 1)); } else { textField.visible = false; }; background.width = width; background.height = height; } public function get data():Object{ return (_data); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls.listClasses
Section 104
//ICellRenderer (fl.controls.listClasses.ICellRenderer) package fl.controls.listClasses { public interface ICellRenderer { function setSize(_arg1:Number, _arg2:Number):void; function get listData():ListData; function get data():Object; function setMouseState(_arg1:String):void; function set x(_arg1:Number):void; function set y(_arg1:Number):void; function set data(_arg1:Object):void; function set selected(_arg1:Boolean):void; function set listData(_arg1:ListData):void; function get selected():Boolean; } }//package fl.controls.listClasses
Section 105
//ListData (fl.controls.listClasses.ListData) package fl.controls.listClasses { import fl.core.*; public class ListData { protected var _index:uint; protected var _owner:UIComponent; protected var _label:String; protected var _icon:Object;// = null protected var _row:uint; protected var _column:uint; public function ListData(_arg1:String, _arg2:Object, _arg3:UIComponent, _arg4:uint, _arg5:uint, _arg6:uint=0){ _icon = null; super(); _label = _arg1; _icon = _arg2; _owner = _arg3; _index = _arg4; _row = _arg5; _column = _arg6; } public function get owner():UIComponent{ return (_owner); } public function get label():String{ return (_label); } public function get row():uint{ return (_row); } public function get index():uint{ return (_index); } public function get icon():Object{ return (_icon); } public function get column():uint{ return (_column); } } }//package fl.controls.listClasses
Section 106
//BaseButton (fl.controls.BaseButton) package fl.controls { import flash.display.*; import flash.events.*; import flash.utils.*; import fl.core.*; import fl.events.*; public class BaseButton extends UIComponent { protected var _selected:Boolean;// = false private var unlockedMouseState:String; protected var pressTimer:Timer; protected var mouseState:String; protected var background:DisplayObject; private var _mouseStateLocked:Boolean;// = false protected var _autoRepeat:Boolean;// = false private static var defaultStyles:Object = {upSkin:"Button_upSkin", downSkin:"Button_downSkin", overSkin:"Button_overSkin", disabledSkin:"Button_disabledSkin", selectedDisabledSkin:"Button_selectedDisabledSkin", selectedUpSkin:"Button_selectedUpSkin", selectedDownSkin:"Button_selectedDownSkin", selectedOverSkin:"Button_selectedOverSkin", focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35}; public function BaseButton(){ _selected = false; _autoRepeat = false; _mouseStateLocked = false; super(); buttonMode = true; mouseChildren = false; useHandCursor = false; setupMouseEvents(); setMouseState("up"); pressTimer = new Timer(1, 0); pressTimer.addEventListener(TimerEvent.TIMER, buttonDown, false, 0, true); } protected function endPress():void{ pressTimer.reset(); } public function set mouseStateLocked(_arg1:Boolean):void{ _mouseStateLocked = _arg1; if (_arg1 == false){ setMouseState(unlockedMouseState); } else { unlockedMouseState = mouseState; }; } public function get autoRepeat():Boolean{ return (_autoRepeat); } public function set autoRepeat(_arg1:Boolean):void{ _autoRepeat = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; mouseEnabled = _arg1; } public function get selected():Boolean{ return (_selected); } protected function mouseEventHandler(_arg1:MouseEvent):void{ if (_arg1.type == MouseEvent.MOUSE_DOWN){ setMouseState("down"); startPress(); } else { if ((((_arg1.type == MouseEvent.ROLL_OVER)) || ((_arg1.type == MouseEvent.MOUSE_UP)))){ setMouseState("over"); endPress(); } else { if (_arg1.type == MouseEvent.ROLL_OUT){ setMouseState("up"); endPress(); }; }; }; } public function setMouseState(_arg1:String):void{ if (_mouseStateLocked){ unlockedMouseState = _arg1; return; }; if (mouseState == _arg1){ return; }; mouseState = _arg1; invalidate(InvalidationType.STATE); } protected function startPress():void{ if (_autoRepeat){ pressTimer.delay = Number(getStyleValue("repeatDelay")); pressTimer.start(); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } protected function buttonDown(_arg1:TimerEvent):void{ if (!_autoRepeat){ endPress(); return; }; if (pressTimer.currentCount == 1){ pressTimer.delay = Number(getStyleValue("repeatInterval")); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } public function set selected(_arg1:Boolean):void{ if (_selected == _arg1){ return; }; _selected = _arg1; invalidate(InvalidationType.STATE); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function setupMouseEvents():void{ addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false, 0, true); } protected function drawLayout():void{ background.width = width; background.height = height; } protected function drawBackground():void{ var _local1:String; var _local2:DisplayObject; _local1 = (enabled) ? mouseState : "disabled"; if (selected){ _local1 = (("selected" + _local1.substr(0, 1).toUpperCase()) + _local1.substr(1)); }; _local1 = (_local1 + "Skin"); _local2 = background; background = getDisplayObjectInstance(getStyleValue(_local1)); addChildAt(background, 0); if (((!((_local2 == null))) && (!((_local2 == background))))){ removeChild(_local2); }; } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 107
//Button (fl.controls.Button) package fl.controls { import flash.display.*; import fl.managers.*; import fl.core.*; public class Button extends LabelButton implements IFocusManagerComponent { protected var emphasizedBorder:DisplayObject; protected var _emphasized:Boolean;// = false private static var defaultStyles:Object = {emphasizedSkin:"Button_emphasizedSkin", emphasizedPadding:2}; public static var createAccessibilityImplementation:Function; public function Button(){ _emphasized = false; super(); } override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; var _local3:*; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("emphasizedPadding")); if ((((_local2 < 0)) || (!(_emphasized)))){ _local2 = 0; }; _local3 = getStyleValue("focusRectPadding"); _local3 = ((_local3)==null) ? 2 : _local3; _local3 = (_local3 + _local2); uiFocusRect.x = -(_local3); uiFocusRect.y = -(_local3); uiFocusRect.width = (width + (_local3 * 2)); uiFocusRect.height = (height + (_local3 * 2)); }; } public function set emphasized(_arg1:Boolean):void{ _emphasized = _arg1; invalidate(InvalidationType.STYLES); } override protected function draw():void{ if (((isInvalid(InvalidationType.STYLES)) || (isInvalid(InvalidationType.SIZE)))){ drawEmphasized(); }; super.draw(); if (emphasizedBorder != null){ setChildIndex(emphasizedBorder, (numChildren - 1)); }; } public function get emphasized():Boolean{ return (_emphasized); } override protected function initializeAccessibility():void{ if (Button.createAccessibilityImplementation != null){ Button.createAccessibilityImplementation(this); }; } protected function drawEmphasized():void{ var _local1:Object; var _local2:Number; if (emphasizedBorder != null){ removeChild(emphasizedBorder); }; emphasizedBorder = null; if (!_emphasized){ return; }; _local1 = getStyleValue("emphasizedSkin"); if (_local1 != null){ emphasizedBorder = getDisplayObjectInstance(_local1); }; if (emphasizedBorder != null){ addChildAt(emphasizedBorder, 0); _local2 = Number(getStyleValue("emphasizedPadding")); emphasizedBorder.x = (emphasizedBorder.y = -(_local2)); emphasizedBorder.width = (width + (_local2 * 2)); emphasizedBorder.height = (height + (_local2 * 2)); }; } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(LabelButton.getStyleDefinition(), defaultStyles)); } } }//package fl.controls
Section 108
//ButtonLabelPlacement (fl.controls.ButtonLabelPlacement) package fl.controls { public class ButtonLabelPlacement { public static const TOP:String = "top"; public static const LEFT:String = "left"; public static const BOTTOM:String = "bottom"; public static const RIGHT:String = "right"; } }//package fl.controls
Section 109
//DataGrid (fl.controls.DataGrid) package fl.controls { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.utils.*; import fl.managers.*; import fl.core.*; import fl.events.*; import fl.data.*; import fl.controls.listClasses.*; import fl.controls.dataGridClasses.*; import flash.ui.*; public class DataGrid extends SelectableList implements IFocusManagerComponent { protected var _showHeaders:Boolean;// = true protected var _sortIndex:int;// = -1 protected var _minColumnWidth:Number; protected var _headerRenderer:Object; public var sortableColumns:Boolean;// = true protected var activeCellRenderersMap:Dictionary; protected var _labelFunction:Function; protected var headerSortArrow:Sprite; protected var _sortDescending:Boolean;// = false protected var losingFocus:Boolean;// = false protected var maxHeaderHeight:Number;// = 25 protected var minColumnWidthInvalid:Boolean;// = false protected var _rowHeight:Number;// = 20 protected var _cellRenderer:Object; protected var proposedEditedItemPosition; public var editable:Boolean;// = false protected var dragHandlesMap:Dictionary; protected var header:Sprite; protected var availableCellRenderersMap:Dictionary; protected var _columns:Array; public var resizableColumns:Boolean;// = true protected var columnStretchStartWidth:Number; protected var actualRowIndex:int; protected var _editedItemPosition:Object; protected var editedItemPositionChanged:Boolean;// = false protected var actualColIndex:int; protected var columnStretchCursor:Sprite; protected var visibleColumns:Array; protected var headerMask:Sprite; public var itemEditorInstance:Object; protected var displayableColumns:Array; protected var columnStretchIndex:Number;// = -1 protected var columnsInvalid:Boolean;// = true protected var currentHoveredRow:int;// = -1 protected var isPressed:Boolean;// = false protected var lastSortIndex:int;// = -1 protected var columnStretchStartX:Number; protected var _headerHeight:Number;// = 25 protected static const HEADER_STYLES:Object = {disabledSkin:"headerDisabledSkin", downSkin:"headerDownSkin", overSkin:"headerOverSkin", upSkin:"headerUpSkin", textFormat:"headerTextFormat", disabledTextFormat:"headerDisabledTextFormat", textPadding:"headerTextPadding"}; private static var defaultStyles:Object = {headerUpSkin:"HeaderRenderer_upSkin", headerDownSkin:"HeaderRenderer_downSkin", headerOverSkin:"HeaderRenderer_overSkin", headerDisabledSkin:"HeaderRenderer_disabledSkin", headerSortArrowDescSkin:"HeaderSortArrow_descIcon", headerSortArrowAscSkin:"HeaderSortArrow_ascIcon", columnStretchCursorSkin:"ColumnStretch_cursor", columnDividerSkin:null, headerTextFormat:null, headerDisabledTextFormat:null, headerTextPadding:5, headerRenderer:HeaderRenderer, focusRectSkin:null, focusRectPadding:null, skin:"DataGrid_skin"}; public static var createAccessibilityImplementation:Function; public function DataGrid(){ _rowHeight = 20; _headerHeight = 25; _showHeaders = true; columnsInvalid = true; minColumnWidthInvalid = false; columnStretchIndex = -1; _sortIndex = -1; lastSortIndex = -1; _sortDescending = false; editedItemPositionChanged = false; isPressed = false; losingFocus = false; maxHeaderHeight = 25; currentHoveredRow = -1; editable = false; resizableColumns = true; sortableColumns = true; super(); if (_columns == null){ _columns = []; }; _horizontalScrollPolicy = ScrollPolicy.OFF; activeCellRenderersMap = new Dictionary(true); availableCellRenderersMap = new Dictionary(true); addEventListener(DataGridEvent.ITEM_EDIT_BEGINNING, itemEditorItemEditBeginningHandler, false, -50); addEventListener(DataGridEvent.ITEM_EDIT_BEGIN, itemEditorItemEditBeginHandler, false, -50); addEventListener(DataGridEvent.ITEM_EDIT_END, itemEditorItemEditEndHandler, false, -50); addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); } override protected function drawList():void{ var _local1:uint; var _local2:uint; var _local3:Number; var _local4:Number; var _local5:uint; var _local6:Object; var _local7:ICellRenderer; var _local8:Array; var _local9:DataGridColumn; var _local10:Boolean; var _local11:Dictionary; var _local12:DataGridColumn; var _local13:Sprite; var _local14:UIComponent; var _local15:Array; var _local16:uint; var _local17:uint; var _local18:Number; var _local19:DataGridColumn; var _local20:Object; var _local21:Array; var _local22:Dictionary; var _local23:Object; var _local24:HeaderRenderer; var _local25:Sprite; var _local26:Graphics; var _local27:Boolean; var _local28:String; if (showHeaders){ header.visible = true; header.x = (contentPadding - _horizontalScrollPosition); header.y = contentPadding; listHolder.y = (contentPadding + headerHeight); _local18 = Math.floor((availableHeight - headerHeight)); _verticalScrollBar.setScrollProperties(_local18, 0, (contentHeight - _local18), _verticalScrollBar.pageScrollSize); } else { header.visible = false; listHolder.y = contentPadding; }; listHolder.x = contentPadding; contentScrollRect = listHolder.scrollRect; contentScrollRect.x = _horizontalScrollPosition; contentScrollRect.y = (vOffset + (Math.floor(_verticalScrollPosition) % rowHeight)); listHolder.scrollRect = contentScrollRect; listHolder.cacheAsBitmap = useBitmapScrolling; _local1 = Math.min(Math.max((length - 1), 0), Math.floor((_verticalScrollPosition / rowHeight))); _local2 = Math.min(Math.max((length - 1), 0), ((_local1 + rowCount) + 1)); _local10 = list.hitTestPoint(stage.mouseX, stage.mouseY); calculateColumnSizes(); _local11 = (renderedItems = new Dictionary(true)); if (length > 0){ _local5 = _local1; while (_local5 <= _local2) { _local11[_dataProvider.getItemAt(_local5)] = true; _local5++; }; }; _local3 = 0; _local12 = (visibleColumns[0] as DataGridColumn); _local5 = 0; while (_local5 < displayableColumns.length) { _local19 = (displayableColumns[_local5] as DataGridColumn); if (_local19 != _local12){ _local3 = (_local3 + _local19.width); } else { break; }; _local5++; }; while (header.numChildren > 0) { header.removeChildAt(0); }; dragHandlesMap = new Dictionary(true); _local15 = []; _local16 = visibleColumns.length; _local17 = 0; while (_local17 < _local16) { _local9 = (visibleColumns[_local17] as DataGridColumn); _local15.push(_local9.colNum); if (showHeaders){ _local23 = ((_local9.headerRenderer)!=null) ? _local9.headerRenderer : _headerRenderer; _local24 = (getDisplayObjectInstance(_local23) as HeaderRenderer); if (_local24 != null){ _local24.addEventListener(MouseEvent.CLICK, handleHeaderRendererClick, false, 0, true); _local24.x = _local3; _local24.y = 0; _local24.setSize(_local9.width, headerHeight); _local24.column = _local9.colNum; _local24.label = _local9.headerText; header.addChildAt(_local24, _local17); copyStylesToChild(_local24, HEADER_STYLES); if ((((((sortIndex == -1)) && ((lastSortIndex == -1)))) || (!((_local9.colNum == sortIndex))))){ _local24.setStyle("icon", null); } else { _local24.setStyle("icon", (sortDescending) ? getStyleValue("headerSortArrowAscSkin") : getStyleValue("headerSortArrowDescSkin")); }; if ((((((_local17 < (_local16 - 1))) && (resizableColumns))) && (_local9.resizable))){ _local25 = new Sprite(); _local26 = _local25.graphics; _local26.beginFill(0, 0); _local26.drawRect(0, 0, 3, headerHeight); _local26.endFill(); _local25.x = ((_local3 + _local9.width) - 2); _local25.y = 0; _local25.alpha = 0; _local25.addEventListener(MouseEvent.MOUSE_OVER, handleHeaderResizeOver, false, 0, true); _local25.addEventListener(MouseEvent.MOUSE_OUT, handleHeaderResizeOut, false, 0, true); _local25.addEventListener(MouseEvent.MOUSE_DOWN, handleHeaderResizeDown, false, 0, true); header.addChild(_local25); dragHandlesMap[_local25] = _local9.colNum; }; if ((((((_local17 == (_local16 - 1))) && ((_horizontalScrollPosition == 0)))) && ((availableWidth > (_local3 + _local9.width))))){ _local4 = Math.floor((availableWidth - _local3)); _local24.setSize(_local4, headerHeight); } else { _local4 = _local9.width; }; _local24.drawNow(); }; }; _local20 = ((_local9.cellRenderer)!=null) ? _local9.cellRenderer : _cellRenderer; _local21 = availableCellRenderersMap[_local9]; _local8 = activeCellRenderersMap[_local9]; if (_local8 == null){ _local8 = []; activeCellRenderersMap[_local9] = _local8; }; if (_local21 == null){ _local21 = []; availableCellRenderersMap[_local9] = _local21; }; _local22 = new Dictionary(true); while (_local8.length > 0) { _local7 = _local8.pop(); _local6 = _local7.data; if ((((_local11[_local6] == null)) || ((invalidItems[_local6] == true)))){ _local21.push(_local7); } else { _local22[_local6] = _local7; invalidItems[_local6] = true; }; list.removeChild((_local7 as DisplayObject)); }; if (length > 0){ _local5 = _local1; while (_local5 <= _local2) { _local27 = false; _local6 = _dataProvider.getItemAt(_local5); if (_local22[_local6] != null){ _local27 = true; _local7 = _local22[_local6]; delete _local22[_local6]; } else { if (_local21.length > 0){ _local7 = (_local21.pop() as ICellRenderer); } else { _local7 = (getDisplayObjectInstance(_local20) as ICellRenderer); _local13 = (_local7 as Sprite); if (_local13 != null){ _local13.addEventListener(MouseEvent.CLICK, handleCellRendererClick, false, 0, true); _local13.addEventListener(MouseEvent.ROLL_OVER, handleCellRendererMouseEvent, false, 0, true); _local13.addEventListener(MouseEvent.ROLL_OUT, handleCellRendererMouseEvent, false, 0, true); _local13.addEventListener(Event.CHANGE, handleCellRendererChange, false, 0, true); _local13.doubleClickEnabled = true; _local13.addEventListener(MouseEvent.DOUBLE_CLICK, handleCellRendererDoubleClick, false, 0, true); if (_local13["setStyle"] != null){ for (_local28 in rendererStyles) { var _local31 = _local13; _local31["setStyle"](_local28, rendererStyles[_local28]); }; }; }; }; }; list.addChild((_local7 as Sprite)); _local8.push(_local7); _local7.x = _local3; _local7.y = (rowHeight * (_local5 - _local1)); _local7.setSize(((_local17)==(_local16 - 1)) ? _local4 : _local9.width, rowHeight); if (!_local27){ _local7.data = _local6; }; _local7.listData = new ListData(columnItemToLabel(_local9.colNum, _local6), null, this, _local5, _local5, _local17); if (((_local10) && (isHovered(_local7)))){ _local7.setMouseState("over"); currentHoveredRow = _local5; } else { _local7.setMouseState("up"); }; _local7.selected = !((_selectedIndices.indexOf(_local5) == -1)); if ((_local7 is UIComponent)){ _local14 = (_local7 as UIComponent); _local14.drawNow(); }; _local5++; }; }; _local3 = (_local3 + _local9.width); _local17++; }; _local5 = 0; while (_local5 < _columns.length) { if (_local15.indexOf(_local5) == -1){ removeCellRenderersByColumn((_columns[_local5] as DataGridColumn)); }; _local5++; }; if (editedItemPositionChanged){ editedItemPositionChanged = false; commitEditedItemPosition(proposedEditedItemPosition); proposedEditedItemPosition = undefined; }; invalidItems = new Dictionary(true); } protected function itemEditorItemEditBeginningHandler(_arg1:DataGridEvent):void{ if (!_arg1.isDefaultPrevented()){ setEditedItemPosition({columnIndex:_arg1.columnIndex, rowIndex:uint(_arg1.rowIndex)}); } else { if (!itemEditorInstance){ _editedItemPosition = null; editable = false; setFocus(); editable = true; }; }; } protected function itemEditorItemEditEndHandler(_arg1:DataGridEvent):void{ var _local2:Boolean; var _local3:Object; var _local4:String; var _local5:Object; var _local6:String; var _local7:XML; var _local8:IFocusManager; if (!_arg1.isDefaultPrevented()){ _local2 = false; if (((itemEditorInstance) && (!((_arg1.reason == DataGridEventReason.CANCELLED))))){ _local3 = itemEditorInstance[_columns[_arg1.columnIndex].editorDataField]; _local4 = _columns[_arg1.columnIndex].dataField; _local5 = _arg1.itemRenderer.data; _local6 = ""; for each (_local7 in describeType(_local5).variable) { if (_local4 == _local7.@name.toString()){ _local6 = _local7.@type.toString(); break; }; }; switch (_local6){ case "String": if (!(_local3 is String)){ _local3 = _local3.toString(); }; break; case "uint": if (!(_local3 is uint)){ _local3 = uint(_local3); }; break; case "int": if (!(_local3 is int)){ _local3 = int(_local3); }; break; case "Number": if (!(_local3 is Number)){ _local3 = Number(_local3); }; break; }; if (_local5[_local4] != _local3){ _local2 = true; _local5[_local4] = _local3; }; _arg1.itemRenderer.data = _local5; }; } else { if (_arg1.reason != DataGridEventReason.OTHER){ if (((itemEditorInstance) && (_editedItemPosition))){ if (selectedIndex != _editedItemPosition.rowIndex){ selectedIndex = _editedItemPosition.rowIndex; }; _local8 = focusManager; if ((itemEditorInstance is IFocusManagerComponent)){ _local8.setFocus(InteractiveObject(itemEditorInstance)); }; }; }; }; if ((((_arg1.reason == DataGridEventReason.OTHER)) || (!(_arg1.isDefaultPrevented())))){ destroyItemEditor(); }; } public function get editedItemPosition():Object{ if (_editedItemPosition){ return ({rowIndex:_editedItemPosition.rowIndex, columnIndex:_editedItemPosition.columnIndex}); }; return (_editedItemPosition); } protected function setEditedItemPosition(_arg1:Object):void{ editedItemPositionChanged = true; proposedEditedItemPosition = _arg1; if (((_arg1) && (!((_arg1.rowIndex == selectedIndex))))){ selectedIndex = _arg1.rowIndex; }; invalidate(InvalidationType.DATA); } public function set headerHeight(_arg1:Number):void{ maxHeaderHeight = _arg1; _headerHeight = Math.max(0, _arg1); invalidate(InvalidationType.SIZE); } protected function handleHeaderResizeDown(_arg1:MouseEvent):void{ var _local2:Sprite; var _local3:Number; var _local4:DataGridColumn; _local2 = (_arg1.currentTarget as Sprite); _local3 = dragHandlesMap[_local2]; _local4 = getColumnAt(_local3); columnStretchIndex = _local3; columnStretchStartX = _arg1.stageX; columnStretchStartWidth = _local4.width; stage.addEventListener(MouseEvent.MOUSE_MOVE, handleHeaderResizeMove, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_UP, handleHeaderResizeUp, false, 0, true); } protected function deactivateHandler(_arg1:Event):void{ if (itemEditorInstance){ endEdit(DataGridEventReason.OTHER); losingFocus = true; setFocus(); }; } protected function keyFocusChangeHandler(_arg1:FocusEvent):void{ if ((((((_arg1.keyCode == Keyboard.TAB)) && (!(_arg1.isDefaultPrevented())))) && (findNextItemRenderer(_arg1.shiftKey)))){ _arg1.preventDefault(); }; } override protected function handleDataChange(_arg1:DataChangeEvent):void{ super.handleDataChange(_arg1); if (_columns == null){ _columns = []; }; if (_columns.length == 0){ createColumnsFromDataProvider(); }; } public function set editedItemPosition(_arg1:Object):void{ var _local2:Object; _local2 = {rowIndex:_arg1.rowIndex, columnIndex:_arg1.columnIndex}; setEditedItemPosition(_local2); } override public function itemToCellRenderer(_arg1:Object):ICellRenderer{ return (null); } public function getCellRendererAt(_arg1:uint, _arg2:uint):ICellRenderer{ var _local3:DataGridColumn; var _local4:Array; var _local5:uint; var _local6:ICellRenderer; _local3 = (_columns[_arg2] as DataGridColumn); if (_local3 != null){ _local4 = (activeCellRenderersMap[_local3] as Array); if (_local4 != null){ _local5 = 0; while (_local5 < _local4.length) { _local6 = (_local4[_local5] as ICellRenderer); if (_local6.listData.row == _arg1){ return (_local6); }; _local5++; }; }; }; return (null); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (((!(selectable)) || (itemEditorInstance))){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: case Keyboard.DOWN: case Keyboard.END: case Keyboard.HOME: case Keyboard.PAGE_UP: case Keyboard.PAGE_DOWN: moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; case Keyboard.SPACE: if (caretIndex == -1){ caretIndex = 0; }; scrollToIndex(caretIndex); doKeySelection(caretIndex, _arg1.shiftKey, _arg1.ctrlKey); break; default: break; }; _arg1.stopPropagation(); } protected function handleHeaderResizeUp(_arg1:MouseEvent):void{ var _local2:Sprite; var _local3:DataGridColumn; var _local4:HeaderRenderer; var _local5:uint; var _local6:DataGridEvent; _local2 = (_arg1.currentTarget as Sprite); _local3 = (_columns[columnStretchIndex] as DataGridColumn); _local5 = 0; while (_local5 < header.numChildren) { _local4 = (header.getChildAt(_local5) as HeaderRenderer); if (((_local4) && ((_local4.column == columnStretchIndex)))){ break; }; _local5++; }; _local6 = new DataGridEvent(DataGridEvent.COLUMN_STRETCH, false, true, columnStretchIndex, -1, _local4, (_local3) ? _local3.dataField : null); dispatchEvent(_local6); columnStretchIndex = -1; showColumnStretchCursor(false); stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleHeaderResizeMove, false); stage.removeEventListener(MouseEvent.MOUSE_UP, handleHeaderResizeUp, false); } protected function handleHeaderResizeOver(_arg1:MouseEvent):void{ if (columnStretchIndex == -1){ showColumnStretchCursor(); }; } override protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:Boolean; var _local3:DataGridColumn; if (_arg1.target != this){ return; }; if (losingFocus){ losingFocus = false; return; }; setIMEMode(true); super.focusInHandler(_arg1); if (((editable) && (!(isPressed)))){ _local2 = !((editedItemPosition == null)); if (!_editedItemPosition){ _editedItemPosition = {rowIndex:0, columnIndex:0}; while (_editedItemPosition.columnIndex < _columns.length) { _local3 = (_columns[_editedItemPosition.columnIndex] as DataGridColumn); if (((_local3.editable) && (_local3.visible))){ _local2 = true; break; }; _editedItemPosition.columnIndex++; }; }; if (_local2){ setEditedItemPosition(_editedItemPosition); }; }; if (editable){ addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler); addEventListener(MouseEvent.MOUSE_DOWN, mouseFocusChangeHandler); }; } public function createItemEditor(_arg1:uint, _arg2:uint):void{ var _local3:DataGridColumn; var _local4:ICellRenderer; var _local5:Sprite; var _local6:int; if (displayableColumns.length != _columns.length){ _local6 = 0; while (_local6 < displayableColumns.length) { if (displayableColumns[_local6].colNum >= _arg1){ _arg1 = displayableColumns[_local6].colNum; break; }; _local6++; }; if (_local6 == displayableColumns.length){ _arg1 = 0; }; }; _local3 = (_columns[_arg1] as DataGridColumn); _local4 = getCellRendererAt(_arg2, _arg1); if (!itemEditorInstance){ itemEditorInstance = getDisplayObjectInstance(_local3.itemEditor); itemEditorInstance.tabEnabled = false; list.addChild(DisplayObject(itemEditorInstance)); }; list.setChildIndex(DisplayObject(itemEditorInstance), (list.numChildren - 1)); _local5 = (_local4 as Sprite); itemEditorInstance.visible = true; itemEditorInstance.move(_local5.x, _local5.y); itemEditorInstance.setSize(_local3.width, rowHeight); itemEditorInstance.drawNow(); DisplayObject(itemEditorInstance).addEventListener(FocusEvent.FOCUS_OUT, itemEditorFocusOutHandler); _local5.visible = false; DisplayObject(itemEditorInstance).addEventListener(KeyboardEvent.KEY_DOWN, editorKeyDownHandler); stage.addEventListener(MouseEvent.MOUSE_DOWN, editorMouseDownHandler, true, 0, true); } private function itemEditorFocusOutHandler(_arg1:FocusEvent):void{ if (((_arg1.relatedObject) && (contains(_arg1.relatedObject)))){ return; }; if (!_arg1.relatedObject){ return; }; if (itemEditorInstance){ endEdit(DataGridEventReason.OTHER); }; } override public function get horizontalScrollPolicy():String{ return (_horizontalScrollPolicy); } override protected function updateRendererStyles():void{ var _local1:Array; var _local2:Object; var _local3:uint; var _local4:uint; var _local5:String; _local1 = []; for (_local2 in availableCellRenderersMap) { _local1 = _local1.concat(availableCellRenderersMap[_local2]); }; for (_local2 in activeCellRenderersMap) { _local1 = _local1.concat(activeCellRenderersMap[_local2]); }; _local3 = _local1.length; _local4 = 0; while (_local4 < _local3) { if (_local1[_local4]["setStyle"] == null){ } else { for (_local5 in updatedRendererStyles) { _local1[_local4].setStyle(_local5, updatedRendererStyles[_local5]); }; _local1[_local4].drawNow(); }; _local4++; }; updatedRendererStyles = {}; } public function set minColumnWidth(_arg1:Number):void{ _minColumnWidth = _arg1; columnsInvalid = true; minColumnWidthInvalid = true; invalidate(InvalidationType.SIZE); } protected function showColumnStretchCursor(_arg1:Boolean=true):void{ if (columnStretchCursor == null){ columnStretchCursor = (getDisplayObjectInstance(getStyleValue("columnStretchCursorSkin")) as Sprite); columnStretchCursor.mouseEnabled = false; }; if (_arg1){ Mouse.hide(); stage.addChild(columnStretchCursor); stage.addEventListener(MouseEvent.MOUSE_MOVE, positionColumnStretchCursor, false, 0, true); columnStretchCursor.x = stage.mouseX; columnStretchCursor.y = stage.mouseY; } else { stage.removeEventListener(MouseEvent.MOUSE_MOVE, positionColumnStretchCursor, false); if (stage.contains(columnStretchCursor)){ stage.removeChild(columnStretchCursor); }; Mouse.show(); }; } protected function findNextEnterItemRenderer(_arg1:KeyboardEvent):void{ var _local2:int; var _local3:int; var _local4:int; var _local5:DataGridEvent; if (proposedEditedItemPosition !== undefined){ return; }; _local2 = _editedItemPosition.rowIndex; _local3 = _editedItemPosition.columnIndex; _local4 = (_editedItemPosition.rowIndex + (_arg1.shiftKey) ? -1 : 1); if ((((_local4 >= 0)) && ((_local4 < length)))){ _local2 = _local4; }; _local5 = new DataGridEvent(DataGridEvent.ITEM_EDIT_BEGINNING, false, true, _local3, _local2); _local5.dataField = _columns[_local3].dataField; dispatchEvent(_local5); } protected function mouseFocusChangeHandler(_arg1:MouseEvent):void{ if (((((itemEditorInstance) && (!(_arg1.isDefaultPrevented())))) && (itemRendererContains(itemEditorInstance, DisplayObject(_arg1.target))))){ _arg1.preventDefault(); }; } public function get imeMode():String{ return (_imeMode); } public function editField(_arg1:uint, _arg2:String, _arg3:Object):void{ var _local4:Object; _local4 = getItemAt(_arg1); _local4[_arg2] = _arg3; replaceItemAt(_local4, _arg1); } protected function calculateAvailableHeight():Number{ var _local1:Number; var _local2:Number; _local1 = Number(getStyleValue("contentPadding")); _local2 = ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0; return ((((height - (_local1 * 2)) - _local2) - (showHeaders) ? headerHeight : 0)); } protected function mouseUpHandler(_arg1:MouseEvent):void{ if (((!(enabled)) || (!(selectable)))){ return; }; isPressed = false; } override protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } public function resizeColumn(_arg1:int, _arg2:Number):void{ var _local3:DataGridColumn; var _local4:int; var _local5:Number; var _local6:int; var _local7:DataGridColumn; var _local8:DataGridColumn; var _local9:int; var _local10:Number; var _local11:Number; var _local12:Number; if (_columns.length == 0){ return; }; _local3 = (_columns[_arg1] as DataGridColumn); if (!_local3){ return; }; if (((!(visibleColumns)) || ((visibleColumns.length == 0)))){ _local3.setWidth(_arg2); return; }; if (_arg2 < _local3.minWidth){ _arg2 = _local3.minWidth; }; if ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((_horizontalScrollPolicy == ScrollPolicy.AUTO)))){ _local3.setWidth(_arg2); _local3.explicitWidth = _arg2; } else { _local4 = getVisibleColumnIndex(_local3); if (_local4 != -1){ _local5 = 0; _local6 = visibleColumns.length; _local9 = (_local4 + 1); while (_local9 < _local6) { _local7 = (visibleColumns[_local9] as DataGridColumn); if (((_local7) && (_local7.resizable))){ _local5 = (_local5 + _local7.width); }; _local9++; }; _local11 = ((_local3.width - _arg2) + _local5); if (_local5){ _local3.setWidth(_arg2); _local3.explicitWidth = _arg2; }; _local12 = 0; _local9 = (_local4 + 1); while (_local9 < _local6) { _local7 = (visibleColumns[_local9] as DataGridColumn); if (_local7.resizable){ _local10 = ((_local7.width * _local11) / _local5); if (_local10 < _local7.minWidth){ _local10 = _local7.minWidth; }; _local7.setWidth(_local10); _local12 = (_local12 + _local7.width); _local8 = _local7; }; _local9++; }; if (_local12 > _local11){ _local10 = ((_local3.width - _local12) + _local11); if (_local10 < _local3.minWidth){ _local10 = _local3.minWidth; }; _local3.setWidth(_local10); } else { if (_local8){ _local8.setWidth(((_local8.width - _local12) + _local11)); }; }; } else { _local3.setWidth(_arg2); _local3.explicitWidth = _arg2; }; }; columnsInvalid = true; invalidate(InvalidationType.SIZE); } protected function itemEditorItemEditBeginHandler(_arg1:DataGridEvent):void{ var _local2:IFocusManager; if (stage){ stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true); }; if (!_arg1.isDefaultPrevented()){ createItemEditor(_arg1.columnIndex, uint(_arg1.rowIndex)); ICellRenderer(itemEditorInstance).listData = ICellRenderer(editedItemRenderer).listData; ICellRenderer(itemEditorInstance).data = editedItemRenderer.data; itemEditorInstance.imeMode = ((columns[_arg1.columnIndex].imeMode)==null) ? _imeMode : columns[_arg1.columnIndex].imeMode; _local2 = focusManager; if ((itemEditorInstance is IFocusManagerComponent)){ _local2.setFocus(InteractiveObject(itemEditorInstance)); }; _local2.defaultButtonEnabled = false; _arg1 = new DataGridEvent(DataGridEvent.ITEM_FOCUS_IN, false, false, _editedItemPosition.columnIndex, _editedItemPosition.rowIndex, itemEditorInstance); dispatchEvent(_arg1); }; } override protected function draw():void{ var _local1:Boolean; _local1 = !((contentHeight == (rowHeight * length))); contentHeight = (rowHeight * length); if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; if (((!((_cellRenderer == getStyleValue("cellRenderer")))) || (!((_headerRenderer == getStyleValue("headerRenderer")))))){ _invalidateList(); _cellRenderer = getStyleValue("cellRenderer"); _headerRenderer = getStyleValue("headerRenderer"); }; }; if (isInvalid(InvalidationType.SIZE)){ columnsInvalid = true; }; if (((isInvalid(InvalidationType.SIZE, InvalidationType.STATE)) || (_local1))){ drawLayout(); drawDisabledOverlay(); }; if (isInvalid(InvalidationType.RENDERER_STYLES)){ updateRendererStyles(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.SIZE, InvalidationType.DATA, InvalidationType.SCROLL, InvalidationType.SELECTED)){ drawList(); }; updateChildren(); validate(); } override public function set horizontalScrollPolicy(_arg1:String):void{ super.horizontalScrollPolicy = _arg1; columnsInvalid = true; } protected function getVisibleColumnIndex(_arg1:DataGridColumn):int{ var _local2:uint; _local2 = 0; while (_local2 < visibleColumns.length) { if (_arg1 == visibleColumns[_local2]){ return (_local2); }; _local2++; }; return (-1); } protected function itemRendererContains(_arg1:Object, _arg2:DisplayObject):Boolean{ if (((((!(_arg2)) || (!(_arg1)))) || (!((_arg1 is DisplayObjectContainer))))){ return (false); }; return (DisplayObjectContainer(_arg1).contains(_arg2)); } override protected function configUI():void{ var _local1:Graphics; useFixedHorizontalScrolling = false; super.configUI(); headerMask = new Sprite(); _local1 = headerMask.graphics; _local1.beginFill(0, 0.3); _local1.drawRect(0, 0, 100, 100); _local1.endFill(); headerMask.visible = false; addChild(headerMask); header = new Sprite(); addChild(header); header.mask = headerMask; _horizontalScrollPolicy = ScrollPolicy.OFF; _verticalScrollPolicy = ScrollPolicy.AUTO; } public function columnItemToLabel(_arg1:uint, _arg2:Object):String{ var _local3:DataGridColumn; _local3 = (_columns[_arg1] as DataGridColumn); if (_local3 != null){ return (_local3.itemToLabel(_arg2)); }; return (" "); } protected function endEdit(_arg1:String):Boolean{ var _local2:DataGridEvent; if (!editedItemRenderer){ return (true); }; _local2 = new DataGridEvent(DataGridEvent.ITEM_EDIT_END, false, true, editedItemPosition.columnIndex, editedItemPosition.rowIndex, editedItemRenderer, _columns[editedItemPosition.columnIndex].dataField, _arg1); dispatchEvent(_local2); return (!(_local2.isDefaultPrevented())); } override protected function drawLayout():void{ vOffset = (showHeaders) ? headerHeight : 0; super.drawLayout(); contentScrollRect = listHolder.scrollRect; if (showHeaders){ headerHeight = maxHeaderHeight; if (Math.floor((availableHeight - headerHeight)) <= 0){ _headerHeight = availableHeight; }; list.y = headerHeight; contentScrollRect = listHolder.scrollRect; contentScrollRect.y = (contentPadding + headerHeight); contentScrollRect.height = (availableHeight - headerHeight); listHolder.y = (contentPadding + headerHeight); headerMask.x = contentPadding; headerMask.y = contentPadding; headerMask.width = availableWidth; headerMask.height = headerHeight; } else { contentScrollRect.y = contentPadding; listHolder.y = 0; }; listHolder.scrollRect = contentScrollRect; } protected function commitEditedItemPosition(_arg1:Object):void{ var _local2:ICellRenderer; var _local3:DataGridEvent; var _local4:String; var _local5:int; if (((!(enabled)) || (!(editable)))){ return; }; if (((((((((itemEditorInstance) && (_arg1))) && ((itemEditorInstance is IFocusManagerComponent)))) && ((_editedItemPosition.rowIndex == _arg1.rowIndex)))) && ((_editedItemPosition.columnIndex == _arg1.columnIndex)))){ IFocusManagerComponent(itemEditorInstance).setFocus(); return; }; if (itemEditorInstance){ if (!_arg1){ _local4 = DataGridEventReason.OTHER; } else { if (((!(editedItemPosition)) || ((_arg1.rowIndex == editedItemPosition.rowIndex)))){ _local4 = DataGridEventReason.NEW_COLUMN; } else { _local4 = DataGridEventReason.NEW_ROW; }; }; if (((!(endEdit(_local4))) && (!((_local4 == DataGridEventReason.OTHER))))){ return; }; }; _editedItemPosition = _arg1; if (!_arg1){ return; }; actualRowIndex = _arg1.rowIndex; actualColIndex = _arg1.columnIndex; if (displayableColumns.length != _columns.length){ _local5 = 0; while (_local5 < displayableColumns.length) { if (displayableColumns[_local5].colNum >= actualColIndex){ actualColIndex = displayableColumns[_local5].colNum; break; }; _local5++; }; if (_local5 == displayableColumns.length){ actualColIndex = 0; }; }; scrollToPosition(actualRowIndex, actualColIndex); _local2 = getCellRendererAt(actualRowIndex, actualColIndex); _local3 = new DataGridEvent(DataGridEvent.ITEM_EDIT_BEGIN, false, true, actualColIndex, actualRowIndex, _local2); dispatchEvent(_local3); if (editedItemPositionChanged){ editedItemPositionChanged = false; commitEditedItemPosition(proposedEditedItemPosition); proposedEditedItemPosition = undefined; }; if (!itemEditorInstance){ commitEditedItemPosition(null); }; } protected function handleHeaderRendererClick(_arg1:MouseEvent):void{ var _local2:HeaderRenderer; var _local3:uint; var _local4:DataGridColumn; var _local5:uint; var _local6:DataGridEvent; if (!_enabled){ return; }; _local2 = (_arg1.currentTarget as HeaderRenderer); _local3 = _local2.column; _local4 = (_columns[_local3] as DataGridColumn); if (((sortableColumns) && (_local4.sortable))){ _local5 = _sortIndex; _sortIndex = _local3; _local6 = new DataGridEvent(DataGridEvent.HEADER_RELEASE, false, true, _local3, -1, _local2, (_local4) ? _local4.dataField : null); if (((!(dispatchEvent(_local6))) || (!(_selectable)))){ _sortIndex = lastSortIndex; return; }; lastSortIndex = _local5; sortByColumn(_local3); invalidate(InvalidationType.DATA); }; } public function get showHeaders():Boolean{ return (_showHeaders); } public function get sortIndex():int{ return (_sortIndex); } public function set labelFunction(_arg1:Function):void{ if (_labelFunction == _arg1){ return; }; _labelFunction = _arg1; invalidate(InvalidationType.DATA); } public function getColumnIndex(_arg1:String):int{ var _local2:uint; var _local3:DataGridColumn; _local2 = 0; while (_local2 < _columns.length) { _local3 = (_columns[_local2] as DataGridColumn); if (_local3.dataField == _arg1){ return (_local2); }; _local2++; }; return (-1); } protected function createColumnsFromDataProvider():void{ var _local1:Object; var _local2:String; _columns = []; if (length > 0){ _local1 = _dataProvider.getItemAt(0); for (_local2 in _local1) { addColumn(_local2); }; }; } protected function editorMouseDownHandler(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:uint; if (!itemRendererContains(itemEditorInstance, DisplayObject(_arg1.target))){ if ((((_arg1.target is ICellRenderer)) && (contains(DisplayObject(_arg1.target))))){ _local2 = (_arg1.target as ICellRenderer); _local3 = _local2.listData.row; if (_editedItemPosition.rowIndex == _local3){ endEdit(DataGridEventReason.NEW_COLUMN); } else { endEdit(DataGridEventReason.NEW_ROW); }; } else { endEdit(DataGridEventReason.OTHER); }; }; } public function addColumnAt(_arg1, _arg2:uint):DataGridColumn{ var _local3:DataGridColumn; var _local4:*; var _local5:uint; if (_arg2 < _columns.length){ _columns.splice(_arg2, 0, ""); _local5 = (_arg2 + 1); while (_local5 < _columns.length) { _local3 = (_columns[_local5] as DataGridColumn); _local3.colNum = _local5; _local5++; }; }; _local4 = _arg1; if (!(_local4 is DataGridColumn)){ if ((_local4 is String)){ _local4 = new DataGridColumn(_local4); } else { _local4 = new DataGridColumn(); }; }; _local3 = (_local4 as DataGridColumn); _local3.owner = this; _local3.colNum = _arg2; _columns[_arg2] = _local3; invalidate(InvalidationType.SIZE); columnsInvalid = true; return (_local3); } public function destroyItemEditor():void{ var _local1:DataGridEvent; if (itemEditorInstance){ DisplayObject(itemEditorInstance).removeEventListener(KeyboardEvent.KEY_DOWN, editorKeyDownHandler); stage.removeEventListener(MouseEvent.MOUSE_DOWN, editorMouseDownHandler, true); _local1 = new DataGridEvent(DataGridEvent.ITEM_FOCUS_OUT, false, false, _editedItemPosition.columnIndex, _editedItemPosition.rowIndex, itemEditorInstance); dispatchEvent(_local1); if (((itemEditorInstance) && ((itemEditorInstance is UIComponent)))){ UIComponent(itemEditorInstance).drawFocus(false); }; list.removeChild(DisplayObject(itemEditorInstance)); DisplayObject(editedItemRenderer).visible = true; itemEditorInstance = null; }; } public function set imeMode(_arg1:String):void{ _imeMode = _arg1; } protected function doKeySelection(_arg1:int, _arg2:Boolean, _arg3:Boolean):void{ var _local4:Boolean; var _local5:int; var _local6:Array; var _local7:int; var _local8:int; _local4 = false; if (_arg2){ _local6 = []; _local7 = lastCaretIndex; _local8 = _arg1; if (_local7 == -1){ _local7 = ((caretIndex)!=-1) ? caretIndex : _arg1; }; if (_local7 > _local8){ _local8 = _local7; _local7 = _arg1; }; _local5 = _local7; while (_local5 <= _local8) { _local6.push(_local5); _local5++; }; selectedIndices = _local6; caretIndex = _arg1; _local4 = true; } else { if (_arg3){ caretIndex = _arg1; } else { selectedIndex = _arg1; caretIndex = (lastCaretIndex = _arg1); _local4 = true; }; }; if (_local4){ dispatchEvent(new Event(Event.CHANGE)); }; invalidate(InvalidationType.DATA); } public function get headerHeight():Number{ return (_headerHeight); } public function getColumnCount():uint{ return (_columns.length); } protected function sortByColumn(_arg1:int):void{ var _local2:DataGridColumn; var _local3:Boolean; var _local4:uint; _local2 = (columns[_arg1] as DataGridColumn); if (((((!(enabled)) || (!(_local2)))) || (!(_local2.sortable)))){ return; }; _local3 = _local2.sortDescending; _local4 = _local2.sortOptions; if (_local3){ _local4 = (_local4 | Array.DESCENDING); } else { _local4 = (_local4 & ~(Array.DESCENDING)); }; if (_local2.sortCompareFunction != null){ sortItems(_local2.sortCompareFunction, _local4); } else { sortItemsOn(_local2.dataField, _local4); }; _sortDescending = (_local2.sortDescending = !(_local3)); if ((((lastSortIndex >= 0)) && (!((lastSortIndex == sortIndex))))){ _local2 = (columns[lastSortIndex] as DataGridColumn); if (_local2 != null){ _local2.sortDescending = false; }; }; } public function get minColumnWidth():Number{ return (_minColumnWidth); } protected function isHovered(_arg1:ICellRenderer):Boolean{ var _local2:uint; var _local3:Number; var _local4:Point; _local2 = Math.min(Math.max((length - 1), 0), Math.floor((_verticalScrollPosition / rowHeight))); _local3 = ((_arg1.listData.row - _local2) * rowHeight); _local4 = list.globalToLocal(new Point(0, stage.mouseY)); return ((((_local4.y > _local3)) && ((_local4.y < (_local3 + rowHeight))))); } protected function mouseDownHandler(_arg1:MouseEvent):void{ if (((!(enabled)) || (!(selectable)))){ return; }; isPressed = true; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; header.mouseChildren = _enabled; } override protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ var _local4:int; var _local5:int; var _local6:int; _local4 = Math.max(Math.floor((calculateAvailableHeight() / rowHeight)), 1); _local5 = -1; _local6 = 0; switch (_arg1){ case Keyboard.UP: if (caretIndex > 0){ _local5 = (caretIndex - 1); }; break; case Keyboard.DOWN: if (caretIndex < (length - 1)){ _local5 = (caretIndex + 1); }; break; case Keyboard.PAGE_UP: if (caretIndex > 0){ _local5 = Math.max((caretIndex - _local4), 0); }; break; case Keyboard.PAGE_DOWN: if (caretIndex < (length - 1)){ _local5 = Math.min((caretIndex + _local4), (length - 1)); }; break; case Keyboard.HOME: if (caretIndex > 0){ _local5 = 0; }; break; case Keyboard.END: if (caretIndex < (length - 1)){ _local5 = (length - 1); }; break; }; if (_local5 >= 0){ doKeySelection(_local5, _arg2, _arg3); scrollToSelected(); }; } protected function handleHeaderResizeOut(_arg1:MouseEvent):void{ if (columnStretchIndex == -1){ showColumnStretchCursor(false); }; } public function removeAllColumns():void{ if (_columns.length > 0){ removeCellRenderers(); _columns = []; invalidate(InvalidationType.SIZE); columnsInvalid = true; }; } public function set rowCount(_arg1:uint):void{ var _local2:Number; var _local3:Number; _local2 = Number(getStyleValue("contentPadding")); _local3 = ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && (hScrollBar))))) ? 15 : 0; height = ((((rowHeight * _arg1) + (2 * _local2)) + _local3) + (showHeaders) ? headerHeight : 0); } protected function removeCellRenderers():void{ var _local1:uint; _local1 = 0; while (_local1 < _columns.length) { removeCellRenderersByColumn((_columns[_local1] as DataGridColumn)); _local1++; }; } public function removeColumnAt(_arg1:uint):DataGridColumn{ var _local2:DataGridColumn; var _local3:uint; _local2 = (_columns[_arg1] as DataGridColumn); if (_local2 != null){ removeCellRenderersByColumn(_local2); _columns.splice(_arg1, 1); _local3 = _arg1; while (_local3 < _columns.length) { _local2 = (_columns[_local3] as DataGridColumn); if (_local2){ _local2.colNum = _local3; }; _local3++; }; invalidate(InvalidationType.SIZE); columnsInvalid = true; }; return (_local2); } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ if (_arg1 == _horizontalScrollPosition){ return; }; contentScrollRect = listHolder.scrollRect; contentScrollRect.x = _arg1; listHolder.scrollRect = contentScrollRect; list.x = 0; header.x = -(_arg1); super.setHorizontalScrollPosition(_arg1, true); invalidate(InvalidationType.SCROLL); columnsInvalid = true; } public function get labelFunction():Function{ return (_labelFunction); } override protected function handleCellRendererClick(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:DataGridColumn; var _local4:DataGridEvent; super.handleCellRendererClick(_arg1); _local2 = (_arg1.currentTarget as ICellRenderer); if (((((_local2) && (_local2.data))) && (!((_local2 == itemEditorInstance))))){ _local3 = (_columns[_local2.listData.column] as DataGridColumn); if (((((editable) && (_local3))) && (_local3.editable))){ _local4 = new DataGridEvent(DataGridEvent.ITEM_EDIT_BEGINNING, false, true, _local2.listData.column, _local2.listData.row, _local2, _local3.dataField); dispatchEvent(_local4); }; }; } override protected function focusOutHandler(_arg1:FocusEvent):void{ setIMEMode(false); if (_arg1.target == this){ super.focusOutHandler(_arg1); }; if ((((_arg1.relatedObject == this)) && (itemRendererContains(itemEditorInstance, DisplayObject(_arg1.target))))){ return; }; if ((((_arg1.relatedObject == null)) && (itemRendererContains(editedItemRenderer, DisplayObject(_arg1.target))))){ return; }; if ((((_arg1.relatedObject == null)) && (itemRendererContains(itemEditorInstance, DisplayObject(_arg1.target))))){ return; }; if (((itemEditorInstance) && (((!(_arg1.relatedObject)) || (!(itemRendererContains(itemEditorInstance, _arg1.relatedObject))))))){ endEdit(DataGridEventReason.OTHER); removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler); removeEventListener(MouseEvent.MOUSE_DOWN, mouseFocusChangeHandler); }; } protected function positionColumnStretchCursor(_arg1:MouseEvent):void{ columnStretchCursor.x = _arg1.stageX; columnStretchCursor.y = _arg1.stageY; } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ if (itemEditorInstance){ endEdit(DataGridEventReason.OTHER); }; invalidate(InvalidationType.SCROLL); super.setVerticalScrollPosition(_arg1, true); } public function get sortDescending():Boolean{ return (_sortDescending); } protected function editorKeyDownHandler(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.ESCAPE){ endEdit(DataGridEventReason.CANCELLED); } else { if (((_arg1.ctrlKey) && ((_arg1.charCode == 46)))){ endEdit(DataGridEventReason.CANCELLED); } else { if ((((_arg1.charCode == Keyboard.ENTER)) && (!((_arg1.keyCode == 229))))){ if (endEdit(DataGridEventReason.NEW_ROW)){ findNextEnterItemRenderer(_arg1); }; }; }; }; } override protected function calculateContentWidth():void{ var _local1:int; var _local2:int; var _local3:DataGridColumn; if (_columns.length == 0){ contentWidth = 0; return; }; if (minColumnWidthInvalid){ _local1 = _columns.length; _local2 = 0; while (_local2 < _local1) { _local3 = (_columns[_local2] as DataGridColumn); _local3.minWidth = minColumnWidth; _local2++; }; minColumnWidthInvalid = false; }; if (horizontalScrollPolicy == ScrollPolicy.OFF){ contentWidth = availableWidth; } else { contentWidth = 0; _local1 = _columns.length; _local2 = 0; while (_local2 < _local1) { _local3 = (_columns[_local2] as DataGridColumn); if (_local3.visible){ contentWidth = (contentWidth + _local3.width); }; _local2++; }; if (((!(isNaN(_horizontalScrollPosition))) && (((_horizontalScrollPosition + availableWidth) > contentWidth)))){ setHorizontalScrollPosition((contentWidth - availableWidth)); }; }; } override public function get rowCount():uint{ return (Math.ceil((calculateAvailableHeight() / rowHeight))); } public function addColumn(_arg1):DataGridColumn{ return (addColumnAt(_arg1, _columns.length)); } protected function removeCellRenderersByColumn(_arg1:DataGridColumn):void{ var _local2:Array; if (_arg1 == null){ return; }; _local2 = activeCellRenderersMap[_arg1]; if (_local2 != null){ while (_local2.length > 0) { list.removeChild((_local2.pop() as DisplayObject)); }; }; } override protected function handleCellRendererMouseEvent(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:int; var _local4:String; var _local5:uint; var _local6:DataGridColumn; var _local7:ICellRenderer; _local2 = (_arg1.target as ICellRenderer); if (_local2){ _local3 = _local2.listData.row; if (_arg1.type == MouseEvent.ROLL_OVER){ _local4 = "over"; } else { if (_arg1.type == MouseEvent.ROLL_OUT){ _local4 = "up"; }; }; if (_local4){ _local5 = 0; while (_local5 < visibleColumns.length) { _local6 = (visibleColumns[_local5] as DataGridColumn); _local7 = getCellRendererAt(_local3, _local6.colNum); if (_local7){ _local7.setMouseState(_local4); }; if (_local3 != currentHoveredRow){ _local7 = getCellRendererAt(currentHoveredRow, _local6.colNum); if (_local7){ _local7.setMouseState("up"); }; }; _local5++; }; }; }; super.handleCellRendererMouseEvent(_arg1); } protected function handleHeaderResizeMove(_arg1:MouseEvent):void{ var _local2:Number; var _local3:Number; _local2 = (_arg1.stageX - columnStretchStartX); _local3 = (columnStretchStartWidth + _local2); resizeColumn(columnStretchIndex, _local3); } public function set rowHeight(_arg1:Number):void{ _rowHeight = Math.max(0, _arg1); invalidate(InvalidationType.SIZE); } protected function scrollToPosition(_arg1:int, _arg2:int):void{ var _local3:Number; var _local4:Number; var _local5:uint; var _local6:Number; var _local7:DataGridColumn; var _local8:DataGridColumn; _local3 = verticalScrollPosition; _local4 = horizontalScrollPosition; scrollToIndex(_arg1); _local6 = 0; _local7 = (_columns[_arg2] as DataGridColumn); _local5 = 0; while (_local5 < displayableColumns.length) { _local8 = (displayableColumns[_local5] as DataGridColumn); if (_local8 != _local7){ _local6 = (_local6 + _local8.width); } else { break; }; _local5++; }; if (horizontalScrollPosition > _local6){ horizontalScrollPosition = _local6; } else { if ((horizontalScrollPosition + availableWidth) < (_local6 + _local7.width)){ horizontalScrollPosition = -((availableWidth - (_local6 + _local7.width))); }; }; if (((!((_local3 == verticalScrollPosition))) || (!((_local4 == horizontalScrollPosition))))){ drawNow(); }; } protected function findNextItemRenderer(_arg1:Boolean):Boolean{ var _local2:int; var _local3:int; var _local4:Boolean; var _local5:int; var _local6:int; var _local7:String; var _local8:DataGridEvent; if (!_editedItemPosition){ return (false); }; if (proposedEditedItemPosition !== undefined){ return (false); }; _local2 = _editedItemPosition.rowIndex; _local3 = _editedItemPosition.columnIndex; _local4 = false; _local5 = (_arg1) ? -1 : 1; _local6 = (length - 1); while (!(_local4)) { _local3 = (_local3 + _local5); if ((((_local3 < 0)) || ((_local3 >= _columns.length)))){ _local3 = ((_local3)<0) ? (_columns.length - 1) : 0; _local2 = (_local2 + _local5); if ((((_local2 < 0)) || ((_local2 > _local6)))){ setEditedItemPosition(null); losingFocus = true; setFocus(); return (false); }; }; if (((_columns[_local3].editable) && (_columns[_local3].visible))){ _local4 = true; if (_local2 == _editedItemPosition.rowIndex){ _local7 = DataGridEventReason.NEW_COLUMN; } else { _local7 = DataGridEventReason.NEW_ROW; }; if (((!(itemEditorInstance)) || (endEdit(_local7)))){ _local8 = new DataGridEvent(DataGridEvent.ITEM_EDIT_BEGINNING, false, true, _local3, _local2); _local8.dataField = _columns[_local3].dataField; dispatchEvent(_local8); }; }; }; return (_local4); } override public function set dataProvider(_arg1:DataProvider):void{ super.dataProvider = _arg1; if (_columns == null){ _columns = []; }; if (_columns.length == 0){ createColumnsFromDataProvider(); }; removeCellRenderers(); } override public function setSize(_arg1:Number, _arg2:Number):void{ super.setSize(_arg1, _arg2); columnsInvalid = true; } override public function scrollToIndex(_arg1:int):void{ var _local2:int; var _local3:int; var _local4:Number; drawNow(); _local2 = (Math.floor(((_verticalScrollPosition + availableHeight) / rowHeight)) - 1); _local3 = Math.ceil((_verticalScrollPosition / rowHeight)); if (_arg1 < _local3){ verticalScrollPosition = (_arg1 * rowHeight); } else { if (_arg1 >= _local2){ _local4 = ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && (hScrollBar))))) ? 15 : 0; verticalScrollPosition = (((((_arg1 + 1) * rowHeight) - availableHeight) + _local4) + (showHeaders) ? headerHeight : 0); }; }; } protected function calculateColumnSizes():void{ var _local1:Number; var _local2:int; var _local3:int; var _local4:Number; var _local5:DataGridColumn; var _local6:DataGridColumn; var _local7:Number; var _local8:int; var _local9:Number; var _local10:int; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local4 = 0; if (_columns.length == 0){ visibleColumns = []; displayableColumns = []; return; }; if (columnsInvalid){ columnsInvalid = false; visibleColumns = []; if (minColumnWidthInvalid){ _local2 = _columns.length; _local3 = 0; while (_local3 < _local2) { _columns[_local3].minWidth = minColumnWidth; _local3++; }; minColumnWidthInvalid = false; }; displayableColumns = null; _local2 = _columns.length; _local3 = 0; while (_local3 < _local2) { if (((displayableColumns) && (_columns[_local3].visible))){ displayableColumns.push(_columns[_local3]); } else { if (((!(displayableColumns)) && (!(_columns[_local3].visible)))){ displayableColumns = new Array(_local3); _local8 = 0; while (_local8 < _local3) { displayableColumns[_local8] = _columns[_local8]; _local8++; }; }; }; _local3++; }; if (!displayableColumns){ displayableColumns = _columns; }; if (horizontalScrollPolicy == ScrollPolicy.OFF){ _local2 = displayableColumns.length; _local3 = 0; while (_local3 < _local2) { visibleColumns.push(displayableColumns[_local3]); _local3++; }; } else { _local2 = displayableColumns.length; _local9 = 0; _local3 = 0; while (_local3 < _local2) { _local5 = (displayableColumns[_local3] as DataGridColumn); if (((((_local9 + _local5.width) > _horizontalScrollPosition)) && ((_local9 < (_horizontalScrollPosition + availableWidth))))){ visibleColumns.push(_local5); }; _local9 = (_local9 + _local5.width); _local3++; }; }; }; if (horizontalScrollPolicy == ScrollPolicy.OFF){ _local10 = 0; _local11 = 0; _local2 = visibleColumns.length; _local3 = 0; while (_local3 < _local2) { _local5 = (visibleColumns[_local3] as DataGridColumn); if (_local5.resizable){ if (!isNaN(_local5.explicitWidth)){ _local11 = (_local11 + _local5.width); } else { _local10++; _local11 = (_local11 + _local5.minWidth); }; } else { _local11 = (_local11 + _local5.width); }; _local4 = (_local4 + _local5.width); _local3++; }; _local13 = availableWidth; if ((((availableWidth > _local11)) && (_local10))){ _local2 = visibleColumns.length; _local3 = 0; while (_local3 < _local2) { _local5 = (visibleColumns[_local3] as DataGridColumn); if (((_local5.resizable) && (isNaN(_local5.explicitWidth)))){ _local6 = _local5; if (_local4 > availableWidth){ _local12 = ((_local6.width - _local6.minWidth) / (_local4 - _local11)); } else { _local12 = (_local6.width / _local4); }; _local7 = (_local6.width - ((_local4 - availableWidth) * _local12)); _local14 = _local5.minWidth; _local5.setWidth(Math.max(_local7, _local14)); }; _local13 = (_local13 - _local5.width); _local3++; }; if (((_local13) && (_local6))){ _local6.setWidth((_local6.width + _local13)); }; } else { _local2 = visibleColumns.length; _local3 = 0; while (_local3 < _local2) { _local6 = (visibleColumns[_local3] as DataGridColumn); _local12 = (_local6.width / _local4); _local7 = (availableWidth * _local12); _local6.setWidth(_local7); _local6.explicitWidth = NaN; _local13 = (_local13 - _local7); _local3++; }; if (((_local13) && (_local6))){ _local6.setWidth((_local6.width + _local13)); }; }; }; } public function set showHeaders(_arg1:Boolean):void{ _showHeaders = _arg1; invalidate(InvalidationType.SIZE); } override protected function initializeAccessibility():void{ if (DataGrid.createAccessibilityImplementation != null){ DataGrid.createAccessibilityImplementation(this); }; } public function getColumnAt(_arg1:uint):DataGridColumn{ return ((_columns[_arg1] as DataGridColumn)); } public function get rowHeight():Number{ return (_rowHeight); } public function set columns(_arg1:Array):void{ var _local2:uint; removeCellRenderers(); _columns = []; _local2 = 0; while (_local2 < _arg1.length) { addColumn(_arg1[_local2]); _local2++; }; } public function get editedItemRenderer():ICellRenderer{ if (!itemEditorInstance){ return (null); }; return (getCellRendererAt(actualRowIndex, actualColIndex)); } public function get columns():Array{ return (_columns.slice(0)); } public function spaceColumnsEqually():void{ var _local1:Number; var _local2:int; var _local3:DataGridColumn; drawNow(); if (displayableColumns.length > 0){ _local1 = (availableWidth / displayableColumns.length); _local2 = 0; while (_local2 < displayableColumns.length) { _local3 = (displayableColumns[_local2] as DataGridColumn); _local3.width = _local1; _local2++; }; invalidate(InvalidationType.SIZE); columnsInvalid = true; }; } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, SelectableList.getStyleDefinition(), ScrollBar.getStyleDefinition())); } } }//package fl.controls
Section 110
//LabelButton (fl.controls.LabelButton) package fl.controls { import flash.display.*; import flash.events.*; import flash.text.*; import fl.managers.*; import fl.core.*; import fl.events.*; import flash.ui.*; public class LabelButton extends BaseButton implements IFocusManagerComponent { protected var _labelPlacement:String;// = "right" protected var _toggle:Boolean;// = false protected var icon:DisplayObject; protected var oldMouseState:String; protected var mode:String;// = "center" public var textField:TextField; protected var _label:String;// = "Label" private static var defaultStyles:Object = {icon:null, upIcon:null, downIcon:null, overIcon:null, disabledIcon:null, selectedDisabledIcon:null, selectedUpIcon:null, selectedDownIcon:null, selectedOverIcon:null, textFormat:null, disabledTextFormat:null, textPadding:5, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function LabelButton(){ _labelPlacement = ButtonLabelPlacement.RIGHT; _toggle = false; _label = "Label"; mode = "center"; super(); } protected function toggleSelected(_arg1:MouseEvent):void{ selected = !(selected); dispatchEvent(new Event(Event.CHANGE, true)); } public function get labelPlacement():String{ return (_labelPlacement); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ if (oldMouseState == null){ oldMouseState = mouseState; }; setMouseState("down"); startPress(); }; } protected function setEmbedFont(){ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ setMouseState(oldMouseState); oldMouseState = null; endPress(); dispatchEvent(new MouseEvent(MouseEvent.CLICK)); }; } override public function get selected():Boolean{ return ((_toggle) ? _selected : false); } public function set labelPlacement(_arg1:String):void{ _labelPlacement = _arg1; invalidate(InvalidationType.SIZE); } public function set toggle(_arg1:Boolean):void{ if (((!(_arg1)) && (super.selected))){ selected = false; }; _toggle = _arg1; if (_toggle){ addEventListener(MouseEvent.CLICK, toggleSelected, false, 0, true); } else { removeEventListener(MouseEvent.CLICK, toggleSelected); }; invalidate(InvalidationType.STATE); } public function get label():String{ return (_label); } override public function set selected(_arg1:Boolean):void{ _selected = _arg1; if (_toggle){ invalidate(InvalidationType.STATE); }; } override protected function draw():void{ if (textField.text != _label){ label = _label; }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); drawIcon(); drawTextFormat(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } public function get toggle():Boolean{ return (_toggle); } override protected function configUI():void{ super.configUI(); textField = new TextField(); textField.type = TextFieldType.DYNAMIC; textField.selectable = false; addChild(textField); } override protected function drawLayout():void{ var _local1:Number; var _local2:String; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local1 = Number(getStyleValue("textPadding")); _local2 = ((((icon == null)) && ((mode == "center")))) ? ButtonLabelPlacement.TOP : _labelPlacement; textField.height = (textField.textHeight + 4); _local3 = (textField.textWidth + 4); _local4 = (textField.textHeight + 4); _local5 = ((icon)==null) ? 0 : (icon.width + _local1); _local6 = ((icon)==null) ? 0 : (icon.height + _local1); textField.visible = (label.length > 0); if (icon != null){ icon.x = Math.round(((width - icon.width) / 2)); icon.y = Math.round(((height - icon.height) / 2)); }; if (textField.visible == false){ textField.width = 0; textField.height = 0; } else { if ((((_local2 == ButtonLabelPlacement.BOTTOM)) || ((_local2 == ButtonLabelPlacement.TOP)))){ _local7 = Math.max(0, Math.min(_local3, (width - (2 * _local1)))); if ((height - 2) > _local4){ _local8 = _local4; } else { _local8 = (height - 2); }; _local3 = _local7; textField.width = _local3; _local4 = _local8; textField.height = _local4; textField.x = Math.round(((width - _local3) / 2)); textField.y = Math.round(((((height - textField.height) - _local6) / 2) + ((_local2)==ButtonLabelPlacement.BOTTOM) ? _local6 : 0)); if (icon != null){ icon.y = Math.round(((_local2)==ButtonLabelPlacement.BOTTOM) ? (textField.y - _local6) : ((textField.y + textField.height) + _local1)); }; } else { _local7 = Math.max(0, Math.min(_local3, ((width - _local5) - (2 * _local1)))); _local3 = _local7; textField.width = _local3; textField.x = Math.round(((((width - _local3) - _local5) / 2) + ((_local2)!=ButtonLabelPlacement.LEFT) ? _local5 : 0)); textField.y = Math.round(((height - textField.height) / 2)); if (icon != null){ icon.x = Math.round(((_local2)!=ButtonLabelPlacement.LEFT) ? (textField.x - _local5) : ((textField.x + _local3) + _local1)); }; }; }; super.drawLayout(); } override protected function initializeAccessibility():void{ if (LabelButton.createAccessibilityImplementation != null){ LabelButton.createAccessibilityImplementation(this); }; } protected function drawIcon():void{ var _local1:DisplayObject; var _local2:String; var _local3:Object; _local1 = icon; _local2 = (enabled) ? mouseState : "disabled"; if (selected){ _local2 = (("selected" + _local2.substr(0, 1).toUpperCase()) + _local2.substr(1)); }; _local2 = (_local2 + "Icon"); _local3 = getStyleValue(_local2); if (_local3 == null){ _local3 = getStyleValue("icon"); }; if (_local3 != null){ icon = getDisplayObjectInstance(_local3); }; if (icon != null){ addChildAt(icon, 1); }; if (((!((_local1 == null))) && (!((_local1 == icon))))){ removeChild(_local1); }; } public function set label(_arg1:String):void{ _label = _arg1; if (textField.text != _label){ textField.text = _label; dispatchEvent(new ComponentEvent(ComponentEvent.LABEL_CHANGE)); }; invalidate(InvalidationType.SIZE); invalidate(InvalidationType.STYLES); } protected function drawTextFormat():void{ var _local1:Object; var _local2:TextFormat; var _local3:TextFormat; _local1 = UIComponent.getStyleDefinition(); _local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); _local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseButton.getStyleDefinition())); } } }//package fl.controls
Section 111
//RadioButton (fl.controls.RadioButton) package fl.controls { import flash.display.*; import flash.events.*; import fl.managers.*; import flash.ui.*; public class RadioButton extends LabelButton implements IFocusManagerGroup { protected var _value:Object; protected var defaultGroupName:String;// = "RadioButtonGroup" protected var _group:RadioButtonGroup; private static var defaultStyles:Object = {icon:null, upIcon:"RadioButton_upIcon", downIcon:"RadioButton_downIcon", overIcon:"RadioButton_overIcon", disabledIcon:"RadioButton_disabledIcon", selectedDisabledIcon:"RadioButton_selectedDisabledIcon", selectedUpIcon:"RadioButton_selectedUpIcon", selectedDownIcon:"RadioButton_selectedDownIcon", selectedOverIcon:"RadioButton_selectedOverIcon", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, embedFonts:null, textPadding:5}; public static var createAccessibilityImplementation:Function; public function RadioButton(){ defaultGroupName = "RadioButtonGroup"; super(); mode = "border"; groupName = defaultGroupName; } override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.x = (background.x - _local2); uiFocusRect.y = (background.y - _local2); uiFocusRect.width = (background.width + (_local2 * 2)); uiFocusRect.height = (background.height + (_local2 * 2)); }; } private function setThis():void{ var _local1:RadioButtonGroup; _local1 = _group; if (_local1 != null){ if (_local1.selection != this){ _local1.selection = this; }; } else { super.selected = true; }; } override public function get autoRepeat():Boolean{ return (false); } override public function set autoRepeat(_arg1:Boolean):void{ } protected function handleClick(_arg1:MouseEvent):void{ if (_group == null){ return; }; _group.dispatchEvent(new MouseEvent(MouseEvent.CLICK, true)); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ switch (_arg1.keyCode){ case Keyboard.DOWN: setNext(!(_arg1.ctrlKey)); _arg1.stopPropagation(); break; case Keyboard.UP: setPrev(!(_arg1.ctrlKey)); _arg1.stopPropagation(); break; case Keyboard.LEFT: setPrev(!(_arg1.ctrlKey)); _arg1.stopPropagation(); break; case Keyboard.RIGHT: setNext(!(_arg1.ctrlKey)); _arg1.stopPropagation(); break; case Keyboard.SPACE: setThis(); _toggle = false; default: super.keyDownHandler(_arg1); break; }; } private function setNext(_arg1:Boolean=true):void{ var _local2:RadioButtonGroup; var _local3:IFocusManager; var _local4:int; var _local5:Number; var _local6:int; var _local7:*; _local2 = _group; if (_local2 == null){ return; }; _local3 = focusManager; if (_local3){ _local3.showFocusIndicator = true; }; _local4 = _local2.getRadioButtonIndex(this); _local5 = _local2.numRadioButtons; _local6 = _local4; if (_local4 != -1){ do { _local6++; _local6 = ((_local6)>(_local2.numRadioButtons - 1)) ? 0 : _local6; _local7 = _local2.getRadioButtonAt(_local6); if (((_local7) && (_local7.enabled))){ if (_arg1){ _local2.selection = _local7; }; _local7.setFocus(); return; }; if (((_arg1) && (!((_local2.getRadioButtonAt(_local6) == _local2.selection))))){ _local2.selection = this; }; this.drawFocus(true); } while (_local6 != _local4); }; } public function get group():RadioButtonGroup{ return (_group); } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ super.keyUpHandler(_arg1); if ((((_arg1.keyCode == Keyboard.SPACE)) && (!(_toggle)))){ _toggle = true; }; } override public function get selected():Boolean{ return (super.selected); } override public function set toggle(_arg1:Boolean):void{ throw (new Error("Warning: You cannot change a RadioButtons toggle.")); } public function set value(_arg1:Object):void{ _value = _arg1; } public function set group(_arg1:RadioButtonGroup):void{ groupName = _arg1.name; } override public function set selected(_arg1:Boolean):void{ if ((((_arg1 == false)) || (selected))){ return; }; if (_group != null){ _group.selection = this; } else { super.selected = _arg1; }; } override protected function draw():void{ super.draw(); } override public function get toggle():Boolean{ return (true); } override protected function configUI():void{ var _local1:Shape; var _local2:Graphics; super.configUI(); super.toggle = true; _local1 = new Shape(); _local2 = _local1.graphics; _local2.beginFill(0, 0); _local2.drawRect(0, 0, 100, 100); _local2.endFill(); background = (_local1 as DisplayObject); addChildAt(background, 0); addEventListener(MouseEvent.CLICK, handleClick, false, 0, true); } public function set groupName(_arg1:String):void{ if (_group != null){ _group.removeRadioButton(this); _group.removeEventListener(Event.CHANGE, handleChange); }; _group = ((_arg1)==null) ? null : RadioButtonGroup.getGroup(_arg1); if (_group != null){ _group.addRadioButton(this); _group.addEventListener(Event.CHANGE, handleChange, false, 0, true); }; } public function get value():Object{ return (_value); } override protected function drawLayout():void{ var _local1:Number; super.drawLayout(); _local1 = Number(getStyleValue("textPadding")); switch (_labelPlacement){ case ButtonLabelPlacement.RIGHT: icon.x = _local1; textField.x = (icon.x + (icon.width + _local1)); background.width = ((textField.x + textField.width) + _local1); background.height = (Math.max(textField.height, icon.height) + (_local1 * 2)); break; case ButtonLabelPlacement.LEFT: icon.x = ((width - icon.width) - _local1); textField.x = (((width - icon.width) - (_local1 * 2)) - textField.width); background.width = ((textField.width + icon.width) + (_local1 * 3)); background.height = (Math.max(textField.height, icon.height) + (_local1 * 2)); break; case ButtonLabelPlacement.TOP: case ButtonLabelPlacement.BOTTOM: background.width = (Math.max(textField.width, icon.width) + (_local1 * 2)); background.height = ((textField.height + icon.height) + (_local1 * 3)); break; }; background.x = Math.min((icon.x - _local1), (textField.x - _local1)); background.y = Math.min((icon.y - _local1), (textField.y - _local1)); } override protected function drawBackground():void{ } override protected function initializeAccessibility():void{ if (RadioButton.createAccessibilityImplementation != null){ RadioButton.createAccessibilityImplementation(this); }; } public function get groupName():String{ return (((_group)==null) ? null : _group.name); } private function setPrev(_arg1:Boolean=true):void{ var _local2:RadioButtonGroup; var _local3:IFocusManager; var _local4:int; var _local5:int; var _local6:*; _local2 = _group; if (_local2 == null){ return; }; _local3 = focusManager; if (_local3){ _local3.showFocusIndicator = true; }; _local4 = _local2.getRadioButtonIndex(this); _local5 = _local4; if (_local4 != -1){ do { --_local5; _local5 = ((_local5)==-1) ? (_local2.numRadioButtons - 1) : _local5; _local6 = _local2.getRadioButtonAt(_local5); if (((_local6) && (_local6.enabled))){ if (_arg1){ _local2.selection = _local6; }; _local6.setFocus(); return; }; if (((_arg1) && (!((_local2.getRadioButtonAt(_local5) == _local2.selection))))){ _local2.selection = this; }; this.drawFocus(true); } while (_local5 != _local4); }; } protected function handleChange(_arg1:Event):void{ super.selected = (_group.selection == this); dispatchEvent(new Event(Event.CHANGE, true)); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 112
//RadioButtonGroup (fl.controls.RadioButtonGroup) package fl.controls { import flash.events.*; public class RadioButtonGroup extends EventDispatcher { protected var _selection:RadioButton; protected var radioButtons:Array; protected var _name:String; private static var groups:Object; private static var groupCount:uint = 0; public function RadioButtonGroup(_arg1:String){ _name = _arg1; radioButtons = []; registerGroup(this); } public function getRadioButtonIndex(_arg1:RadioButton):int{ var _local2:int; var _local3:RadioButton; _local2 = 0; while (_local2 < radioButtons.length) { _local3 = (radioButtons[_local2] as RadioButton); if (_local3 == _arg1){ return (_local2); }; _local2++; }; return (-1); } public function get numRadioButtons():int{ return (radioButtons.length); } public function get name():String{ return (_name); } public function get selection():RadioButton{ return (_selection); } public function set selection(_arg1:RadioButton):void{ if ((((((_selection == _arg1)) || ((_arg1 == null)))) || ((getRadioButtonIndex(_arg1) == -1)))){ return; }; _selection = _arg1; dispatchEvent(new Event(Event.CHANGE, true)); } public function set selectedData(_arg1:Object):void{ var _local2:int; var _local3:RadioButton; _local2 = 0; while (_local2 < radioButtons.length) { _local3 = (radioButtons[_local2] as RadioButton); if (_local3.value == _arg1){ selection = _local3; return; }; _local2++; }; } public function removeRadioButton(_arg1:RadioButton):void{ var _local2:int; _local2 = getRadioButtonIndex(_arg1); if (_local2 != -1){ radioButtons.splice(_local2, 1); }; if (_selection == _arg1){ _selection = null; }; } public function addRadioButton(_arg1:RadioButton):void{ if (_arg1.groupName != name){ _arg1.groupName = name; return; }; radioButtons.push(_arg1); if (_arg1.selected){ selection = _arg1; }; } public function getRadioButtonAt(_arg1:int):RadioButton{ return (RadioButton(radioButtons[_arg1])); } public function get selectedData():Object{ var _local1:RadioButton; _local1 = _selection; return (((_local1)==null) ? null : _local1.value); } public static function getGroup(_arg1:String):RadioButtonGroup{ var _local2:RadioButtonGroup; if (groups == null){ groups = {}; }; _local2 = (groups[_arg1] as RadioButtonGroup); if (_local2 == null){ _local2 = new RadioButtonGroup(_arg1); if ((++groupCount % 20) == 0){ cleanUpGroups(); }; }; return (_local2); } private static function registerGroup(_arg1:RadioButtonGroup):void{ if (groups == null){ groups = {}; }; groups[_arg1.name] = _arg1; } private static function cleanUpGroups():void{ var _local1:String; var _local2:RadioButtonGroup; for (_local1 in groups) { _local2 = (groups[_local1] as RadioButtonGroup); if (_local2.radioButtons.length == 0){ delete groups[_local1]; }; }; } } }//package fl.controls
Section 113
//ScrollBar (fl.controls.ScrollBar) package fl.controls { import flash.events.*; import fl.core.*; import fl.events.*; public class ScrollBar extends UIComponent { private var _direction:String;// = "vertical" protected var inDrag:Boolean;// = false protected var upArrow:BaseButton; private var _pageScrollSize:Number;// = 0 protected var downArrow:BaseButton; private var _pageSize:Number;// = 10 private var thumbScrollOffset:Number; private var _maxScrollPosition:Number;// = 0 private var _scrollPosition:Number;// = 0 protected var track:BaseButton; private var _minScrollPosition:Number;// = 0 private var _lineScrollSize:Number;// = 1 protected var thumb:LabelButton; protected static const THUMB_STYLES:Object = {disabledSkin:"thumbDisabledSkin", downSkin:"thumbDownSkin", overSkin:"thumbOverSkin", upSkin:"thumbUpSkin", icon:"thumbIcon", textPadding:0}; public static const WIDTH:Number = 15; protected static const DOWN_ARROW_STYLES:Object = {disabledSkin:"downArrowDisabledSkin", downSkin:"downArrowDownSkin", overSkin:"downArrowOverSkin", upSkin:"downArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const UP_ARROW_STYLES:Object = {disabledSkin:"upArrowDisabledSkin", downSkin:"upArrowDownSkin", overSkin:"upArrowOverSkin", upSkin:"upArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const TRACK_STYLES:Object = {disabledSkin:"trackDisabledSkin", downSkin:"trackDownSkin", overSkin:"trackOverSkin", upSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {downArrowDisabledSkin:"ScrollArrowDown_disabledSkin", downArrowDownSkin:"ScrollArrowDown_downSkin", downArrowOverSkin:"ScrollArrowDown_overSkin", downArrowUpSkin:"ScrollArrowDown_upSkin", thumbDisabledSkin:"ScrollThumb_upSkin", thumbDownSkin:"ScrollThumb_downSkin", thumbOverSkin:"ScrollThumb_overSkin", thumbUpSkin:"ScrollThumb_upSkin", trackDisabledSkin:"ScrollTrack_skin", trackDownSkin:"ScrollTrack_skin", trackOverSkin:"ScrollTrack_skin", trackUpSkin:"ScrollTrack_skin", upArrowDisabledSkin:"ScrollArrowUp_disabledSkin", upArrowDownSkin:"ScrollArrowUp_downSkin", upArrowOverSkin:"ScrollArrowUp_overSkin", upArrowUpSkin:"ScrollArrowUp_upSkin", thumbIcon:"ScrollBar_thumbIcon", repeatDelay:500, repeatInterval:35}; public function ScrollBar(){ _pageSize = 10; _pageScrollSize = 0; _lineScrollSize = 1; _minScrollPosition = 0; _maxScrollPosition = 0; _scrollPosition = 0; _direction = ScrollBarDirection.VERTICAL; inDrag = false; super(); setStyles(); focusEnabled = false; } public function get minScrollPosition():Number{ return (_minScrollPosition); } public function set minScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _arg1, _maxScrollPosition); } public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{ var _local3:Number; _local3 = scrollPosition; _scrollPosition = Math.max(_minScrollPosition, Math.min(_maxScrollPosition, _arg1)); if (_local3 == _scrollPosition){ return; }; if (_arg2){ dispatchEvent(new ScrollEvent(_direction, (scrollPosition - _local3), scrollPosition)); }; updateThumb(); } public function set scrollPosition(_arg1:Number):void{ setScrollPosition(_arg1, true); } public function get pageScrollSize():Number{ return (((_pageScrollSize)==0) ? _pageSize : _pageScrollSize); } public function set pageSize(_arg1:Number):void{ if (_arg1 > 0){ _pageSize = _arg1; }; } public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{ this.pageSize = _arg1; _minScrollPosition = _arg2; _maxScrollPosition = _arg3; if (_arg4 >= 0){ _pageScrollSize = _arg4; }; enabled = (_maxScrollPosition > _minScrollPosition); setScrollPosition(_scrollPosition, false); updateThumb(); } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; downArrow.enabled = (track.enabled = (thumb.enabled = (upArrow.enabled = ((enabled) && ((_maxScrollPosition > _minScrollPosition)))))); updateThumb(); } protected function updateThumb():void{ var _local1:Number; _local1 = ((_maxScrollPosition - _minScrollPosition) + _pageSize); if ((((((track.height <= 12)) || ((_maxScrollPosition <= _minScrollPosition)))) || ((((_local1 == 0)) || (isNaN(_local1)))))){ thumb.height = 12; thumb.visible = false; } else { thumb.height = Math.max(13, ((_pageSize / _local1) * track.height)); thumb.y = (track.y + ((track.height - thumb.height) * ((_scrollPosition - _minScrollPosition) / (_maxScrollPosition - _minScrollPosition)))); thumb.visible = enabled; }; } protected function thumbPressHandler(_arg1:MouseEvent):void{ inDrag = true; thumbScrollOffset = (mouseY - thumb.y); thumb.mouseStateLocked = true; mouseChildren = false; stage.addEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler, false, 0, true); } protected function thumbReleaseHandler(_arg1:MouseEvent):void{ inDrag = false; mouseChildren = true; thumb.mouseStateLocked = false; stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag); stage.removeEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler); } public function set pageScrollSize(_arg1:Number):void{ if (_arg1 >= 0){ _pageScrollSize = _arg1; }; } protected function handleThumbDrag(_arg1:MouseEvent):void{ var _local2:Number; _local2 = Math.max(0, Math.min((track.height - thumb.height), ((mouseY - track.y) - thumbScrollOffset))); setScrollPosition((((_local2 / (track.height - thumb.height)) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition)); } public function set direction(_arg1:String):void{ var _local2:Boolean; if (_direction == _arg1){ return; }; _direction = _arg1; if (isLivePreview){ return; }; setScaleY(1); _local2 = (_direction == ScrollBarDirection.HORIZONTAL); if (((_local2) && (componentInspectorSetting))){ if (rotation == 90){ return; }; setScaleX(-1); rotation = -90; }; if (!componentInspectorSetting){ if (((_local2) && ((rotation == 0)))){ rotation = -90; setScaleX(-1); } else { if (((!(_local2)) && ((rotation == -90)))){ rotation = 0; setScaleX(1); }; }; }; invalidate(InvalidationType.SIZE); } public function set lineScrollSize(_arg1:Number):void{ if (_arg1 > 0){ _lineScrollSize = _arg1; }; } override public function get height():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.width : super.height); } protected function scrollPressHandler(_arg1:ComponentEvent):void{ var _local2:Number; var _local3:Number; _arg1.stopImmediatePropagation(); if (_arg1.currentTarget == upArrow){ setScrollPosition((_scrollPosition - _lineScrollSize)); } else { if (_arg1.currentTarget == downArrow){ setScrollPosition((_scrollPosition + _lineScrollSize)); } else { _local2 = (((track.mouseY / track.height) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition); _local3 = ((pageScrollSize)==0) ? pageSize : pageScrollSize; if (_scrollPosition < _local2){ setScrollPosition(Math.min(_local2, (_scrollPosition + _local3))); } else { if (_scrollPosition > _local2){ setScrollPosition(Math.max(_local2, (_scrollPosition - _local3))); }; }; }; }; } public function get pageSize():Number{ return (_pageSize); } public function set maxScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _minScrollPosition, _arg1); } public function get scrollPosition():Number{ return (_scrollPosition); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ var _local1:Number; if (isInvalid(InvalidationType.SIZE)){ _local1 = super.height; downArrow.move(0, Math.max(upArrow.height, (_local1 - downArrow.height))); track.setSize(WIDTH, Math.max(0, (_local1 - (downArrow.height + upArrow.height)))); updateThumb(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ setStyles(); }; downArrow.drawNow(); upArrow.drawNow(); track.drawNow(); thumb.drawNow(); validate(); } override protected function configUI():void{ super.configUI(); track = new BaseButton(); track.move(0, 14); track.useHandCursor = false; track.autoRepeat = true; track.focusEnabled = false; addChild(track); thumb = new LabelButton(); thumb.label = ""; thumb.setSize(WIDTH, 15); thumb.move(0, 15); thumb.focusEnabled = false; addChild(thumb); downArrow = new BaseButton(); downArrow.setSize(WIDTH, 14); downArrow.autoRepeat = true; downArrow.focusEnabled = false; addChild(downArrow); upArrow = new BaseButton(); upArrow.setSize(WIDTH, 14); upArrow.move(0, 0); upArrow.autoRepeat = true; upArrow.focusEnabled = false; addChild(upArrow); upArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); downArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); track.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumbPressHandler, false, 0, true); enabled = false; } public function get direction():String{ return (_direction); } public function get lineScrollSize():Number{ return (_lineScrollSize); } override public function setSize(_arg1:Number, _arg2:Number):void{ if (_direction == ScrollBarDirection.HORIZONTAL){ super.setSize(_arg2, _arg1); } else { super.setSize(_arg1, _arg2); }; } public function get maxScrollPosition():Number{ return (_maxScrollPosition); } override public function get width():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.height : super.width); } protected function setStyles():void{ copyStylesToChild(downArrow, DOWN_ARROW_STYLES); copyStylesToChild(thumb, THUMB_STYLES); copyStylesToChild(track, TRACK_STYLES); copyStylesToChild(upArrow, UP_ARROW_STYLES); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 114
//ScrollBarDirection (fl.controls.ScrollBarDirection) package fl.controls { public class ScrollBarDirection { public static const HORIZONTAL:String = "horizontal"; public static const VERTICAL:String = "vertical"; } }//package fl.controls
Section 115
//ScrollPolicy (fl.controls.ScrollPolicy) package fl.controls { public class ScrollPolicy { public static const OFF:String = "off"; public static const ON:String = "on"; public static const AUTO:String = "auto"; } }//package fl.controls
Section 116
//SelectableList (fl.controls.SelectableList) package fl.controls { import flash.display.*; import flash.events.*; import flash.utils.*; import fl.managers.*; import fl.core.*; import fl.events.*; import fl.data.*; import fl.controls.listClasses.*; import fl.containers.*; import flash.ui.*; public class SelectableList extends BaseScrollPane implements IFocusManagerComponent { protected var invalidItems:Dictionary; protected var renderedItems:Dictionary; protected var listHolder:Sprite; protected var _allowMultipleSelection:Boolean;// = false protected var lastCaretIndex:int;// = -1 protected var _selectedIndices:Array; protected var availableCellRenderers:Array; protected var list:Sprite; protected var caretIndex:int;// = -1 protected var updatedRendererStyles:Object; protected var preChangeItems:Array; protected var activeCellRenderers:Array; protected var rendererStyles:Object; protected var _verticalScrollPosition:Number; protected var _dataProvider:DataProvider; protected var _horizontalScrollPosition:Number; private var collectionItemImport:SimpleCollectionItem; protected var _selectable:Boolean;// = true private static var defaultStyles:Object = {skin:"List_skin", cellRenderer:CellRenderer, contentPadding:null, disabledAlpha:null}; public static var createAccessibilityImplementation:Function; public function SelectableList(){ _allowMultipleSelection = false; _selectable = true; caretIndex = -1; lastCaretIndex = -1; super(); activeCellRenderers = []; availableCellRenderers = []; invalidItems = new Dictionary(true); renderedItems = new Dictionary(true); _selectedIndices = []; if (dataProvider == null){ dataProvider = new DataProvider(); }; verticalScrollPolicy = ScrollPolicy.AUTO; rendererStyles = {}; updatedRendererStyles = {}; } protected function drawList():void{ } public function set allowMultipleSelection(_arg1:Boolean):void{ if (_arg1 == _allowMultipleSelection){ return; }; _allowMultipleSelection = _arg1; if (((!(_arg1)) && ((_selectedIndices.length > 1)))){ _selectedIndices = [_selectedIndices.pop()]; invalidate(InvalidationType.DATA); }; } public function sortItemsOn(_arg1:String, _arg2:Object=null){ return (_dataProvider.sortOn(_arg1, _arg2)); } public function removeItemAt(_arg1:uint):Object{ return (_dataProvider.removeItemAt(_arg1)); } public function get selectedItem():Object{ return (((_selectedIndices.length)==0) ? null : _dataProvider.getItemAt(selectedIndex)); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!selectable){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: case Keyboard.DOWN: case Keyboard.END: case Keyboard.HOME: case Keyboard.PAGE_UP: case Keyboard.PAGE_DOWN: moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); _arg1.stopPropagation(); break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); _arg1.stopPropagation(); break; }; } public function get selectable():Boolean{ return (_selectable); } public function itemToCellRenderer(_arg1:Object):ICellRenderer{ var _local2:*; var _local3:ICellRenderer; if (_arg1 != null){ for (_local2 in activeCellRenderers) { _local3 = (activeCellRenderers[_local2] as ICellRenderer); if (_local3.data == _arg1){ return (_local3); }; }; }; return (null); } public function getNextIndexAtLetter(_arg1:String, _arg2:int=-1):int{ var _local3:int; var _local4:Number; var _local5:Number; var _local6:Object; var _local7:String; if (length == 0){ return (-1); }; _arg1 = _arg1.toUpperCase(); _local3 = (length - 1); _local4 = 0; while (_local4 < _local3) { _local5 = ((_arg2 + 1) + _local4); if (_local5 > (length - 1)){ _local5 = (_local5 - length); }; _local6 = getItemAt(_local5); if (_local6 == null){ break; }; _local7 = itemToLabel(_local6); if (_local7 == null){ } else { if (_local7.charAt(0).toUpperCase() == _arg1){ return (_local5); }; }; _local4++; }; return (-1); } public function invalidateList():void{ _invalidateList(); invalidate(InvalidationType.DATA); } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; list.mouseChildren = _enabled; } public function get selectedIndices():Array{ return (_selectedIndices.concat()); } public function set selectable(_arg1:Boolean):void{ if (_arg1 == _selectable){ return; }; if (!_arg1){ selectedIndices = []; }; _selectable = _arg1; } public function itemToLabel(_arg1:Object):String{ return (_arg1["label"]); } public function addItemAt(_arg1:Object, _arg2:uint):void{ _dataProvider.addItemAt(_arg1, _arg2); invalidateList(); } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ return (_dataProvider.replaceItemAt(_arg1, _arg2)); } protected function handleDataChange(_arg1:DataChangeEvent):void{ var _local2:int; var _local3:int; var _local4:String; var _local5:uint; _local2 = _arg1.startIndex; _local3 = _arg1.endIndex; _local4 = _arg1.changeType; if (_local4 == DataChangeType.INVALIDATE_ALL){ clearSelection(); invalidateList(); } else { if (_local4 == DataChangeType.INVALIDATE){ _local5 = 0; while (_local5 < _arg1.items.length) { invalidateItem(_arg1.items[_local5]); _local5++; }; } else { if (_local4 == DataChangeType.ADD){ _local5 = 0; while (_local5 < _selectedIndices.length) { if (_selectedIndices[_local5] >= _local2){ _selectedIndices[_local5] = (_selectedIndices[_local5] + (_local2 - _local3)); }; _local5++; }; } else { if (_local4 == DataChangeType.REMOVE){ _local5 = 0; while (_local5 < _selectedIndices.length) { if (_selectedIndices[_local5] >= _local2){ if (_selectedIndices[_local5] <= _local3){ delete _selectedIndices[_local5]; } else { _selectedIndices[_local5] = (_selectedIndices[_local5] - ((_local2 - _local3) + 1)); }; }; _local5++; }; } else { if (_local4 == DataChangeType.REMOVE_ALL){ clearSelection(); } else { if (_local4 == DataChangeType.REPLACE){ } else { selectedItems = preChangeItems; preChangeItems = null; }; }; }; }; }; }; invalidate(InvalidationType.DATA); } protected function _invalidateList():void{ availableCellRenderers = []; while (activeCellRenderers.length > 0) { list.removeChild((activeCellRenderers.pop() as DisplayObject)); }; } protected function updateRendererStyles():void{ var _local1:Array; var _local2:uint; var _local3:uint; var _local4:String; _local1 = availableCellRenderers.concat(activeCellRenderers); _local2 = _local1.length; _local3 = 0; while (_local3 < _local2) { if (_local1[_local3].setStyle == null){ } else { for (_local4 in updatedRendererStyles) { _local1[_local3].setStyle(_local4, updatedRendererStyles[_local4]); }; _local1[_local3].drawNow(); }; _local3++; }; updatedRendererStyles = {}; } public function set selectedItem(_arg1:Object):void{ var _local2:int; _local2 = _dataProvider.getItemIndex(_arg1); selectedIndex = _local2; } public function sortItems(... _args){ return (_dataProvider.sort.apply(_dataProvider, _args)); } public function removeAll():void{ _dataProvider.removeAll(); } protected function handleCellRendererChange(_arg1:Event):void{ var _local2:ICellRenderer; var _local3:uint; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; _dataProvider.invalidateItemAt(_local3); } protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; if (_arg1 == _horizontalScrollPosition){ return; }; _local3 = (_arg1 - _horizontalScrollPosition); _horizontalScrollPosition = _arg1; if (_arg2){ dispatchEvent(new ScrollEvent(ScrollBarDirection.HORIZONTAL, _local3, _arg1)); }; } public function scrollToSelected():void{ scrollToIndex(selectedIndex); } public function invalidateItem(_arg1:Object):void{ if (renderedItems[_arg1] == null){ return; }; invalidItems[_arg1] = true; invalidate(InvalidationType.DATA); } protected function handleCellRendererClick(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:uint; var _local4:int; var _local5:int; var _local6:uint; if (!_enabled){ return; }; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; if (((!(dispatchEvent(new ListEvent(ListEvent.ITEM_CLICK, false, true, _local2.listData.column, _local2.listData.row, _local3, _local2.data)))) || (!(_selectable)))){ return; }; _local4 = selectedIndices.indexOf(_local3); if (!_allowMultipleSelection){ if (_local4 != -1){ return; }; _local2.selected = true; _selectedIndices = [_local3]; lastCaretIndex = (caretIndex = _local3); } else { if (_arg1.shiftKey){ _local6 = ((_selectedIndices.length)>0) ? _selectedIndices[0] : _local3; _selectedIndices = []; if (_local6 > _local3){ _local5 = _local6; while (_local5 >= _local3) { _selectedIndices.push(_local5); _local5--; }; } else { _local5 = _local6; while (_local5 <= _local3) { _selectedIndices.push(_local5); _local5++; }; }; caretIndex = _local3; } else { if (_arg1.ctrlKey){ if (_local4 != -1){ _local2.selected = false; _selectedIndices.splice(_local4, 1); } else { _local2.selected = true; _selectedIndices.push(_local3); }; caretIndex = _local3; } else { _selectedIndices = [_local3]; lastCaretIndex = (caretIndex = _local3); }; }; }; dispatchEvent(new Event(Event.CHANGE)); invalidate(InvalidationType.DATA); } public function get length():uint{ return (_dataProvider.length); } public function get allowMultipleSelection():Boolean{ return (_allowMultipleSelection); } protected function onPreChange(_arg1:DataChangeEvent):void{ switch (_arg1.changeType){ case DataChangeType.REMOVE: case DataChangeType.ADD: case DataChangeType.INVALIDATE: case DataChangeType.REMOVE_ALL: case DataChangeType.REPLACE: case DataChangeType.INVALIDATE_ALL: break; default: preChangeItems = selectedItems; break; }; } public function getRendererStyle(_arg1:String, _arg2:int=-1):Object{ return (rendererStyles[_arg1]); } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; if (_arg1 == _verticalScrollPosition){ return; }; _local3 = (_arg1 - _verticalScrollPosition); _verticalScrollPosition = _arg1; if (_arg2){ dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _local3, _arg1)); }; } protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } public function set selectedIndices(_arg1:Array):void{ if (!_selectable){ return; }; _selectedIndices = ((_arg1)==null) ? [] : _arg1.concat(); invalidate(InvalidationType.SELECTED); } public function get selectedIndex():int{ return (((_selectedIndices.length)==0) ? -1 : _selectedIndices[(_selectedIndices.length - 1)]); } override protected function draw():void{ super.draw(); } override protected function configUI():void{ super.configUI(); listHolder = new Sprite(); addChild(listHolder); listHolder.scrollRect = contentScrollRect; list = new Sprite(); listHolder.addChild(list); } public function addItem(_arg1:Object):void{ _dataProvider.addItem(_arg1); invalidateList(); } protected function handleCellRendererMouseEvent(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:String; _local2 = (_arg1.target as ICellRenderer); _local3 = ((_arg1.type)==MouseEvent.ROLL_OVER) ? ListEvent.ITEM_ROLL_OVER : ListEvent.ITEM_ROLL_OUT; dispatchEvent(new ListEvent(_local3, false, false, _local2.listData.column, _local2.listData.row, _local2.listData.index, _local2.data)); } public function clearRendererStyle(_arg1:String, _arg2:int=-1):void{ delete rendererStyles[_arg1]; updatedRendererStyles[_arg1] = null; invalidate(InvalidationType.RENDERER_STYLES); } protected function handleCellRendererDoubleClick(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:uint; if (!_enabled){ return; }; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; dispatchEvent(new ListEvent(ListEvent.ITEM_DOUBLE_CLICK, false, true, _local2.listData.column, _local2.listData.row, _local3, _local2.data)); } public function get rowCount():uint{ return (0); } public function isItemSelected(_arg1:Object):Boolean{ return ((selectedItems.indexOf(_arg1) > -1)); } public function set dataProvider(_arg1:DataProvider):void{ if (_dataProvider != null){ _dataProvider.removeEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange); _dataProvider.removeEventListener(DataChangeEvent.PRE_DATA_CHANGE, onPreChange); }; _dataProvider = _arg1; _dataProvider.addEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange, false, 0, true); _dataProvider.addEventListener(DataChangeEvent.PRE_DATA_CHANGE, onPreChange, false, 0, true); clearSelection(); invalidateList(); } override protected function drawLayout():void{ super.drawLayout(); contentScrollRect = listHolder.scrollRect; contentScrollRect.width = availableWidth; contentScrollRect.height = availableHeight; listHolder.scrollRect = contentScrollRect; } public function getItemAt(_arg1:uint):Object{ return (_dataProvider.getItemAt(_arg1)); } override protected function initializeAccessibility():void{ if (SelectableList.createAccessibilityImplementation != null){ SelectableList.createAccessibilityImplementation(this); }; } public function scrollToIndex(_arg1:int):void{ } public function removeItem(_arg1:Object):Object{ return (_dataProvider.removeItem(_arg1)); } public function get dataProvider():DataProvider{ return (_dataProvider); } public function set maxHorizontalScrollPosition(_arg1:Number):void{ _maxHorizontalScrollPosition = _arg1; invalidate(InvalidationType.SIZE); } public function setRendererStyle(_arg1:String, _arg2:Object, _arg3:uint=0):void{ if (rendererStyles[_arg1] == _arg2){ return; }; updatedRendererStyles[_arg1] = _arg2; rendererStyles[_arg1] = _arg2; invalidate(InvalidationType.RENDERER_STYLES); } public function invalidateItemAt(_arg1:uint):void{ var _local2:Object; _local2 = _dataProvider.getItemAt(_arg1); if (_local2 != null){ invalidateItem(_local2); }; } public function set selectedItems(_arg1:Array):void{ var _local2:Array; var _local3:uint; var _local4:int; if (_arg1 == null){ selectedIndices = null; return; }; _local2 = []; _local3 = 0; while (_local3 < _arg1.length) { _local4 = _dataProvider.getItemIndex(_arg1[_local3]); if (_local4 != -1){ _local2.push(_local4); }; _local3++; }; selectedIndices = _local2; } public function clearSelection():void{ selectedIndex = -1; } override public function get maxHorizontalScrollPosition():Number{ return (_maxHorizontalScrollPosition); } public function get selectedItems():Array{ var _local1:Array; var _local2:uint; _local1 = []; _local2 = 0; while (_local2 < _selectedIndices.length) { _local1.push(_dataProvider.getItemAt(_selectedIndices[_local2])); _local2++; }; return (_local1); } public function set selectedIndex(_arg1:int):void{ selectedIndices = ((_arg1)==-1) ? null : [_arg1]; } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseScrollPane.getStyleDefinition())); } } }//package fl.controls
Section 117
//TextArea (fl.controls.TextArea) package fl.controls { import flash.display.*; import flash.events.*; import flash.text.*; import fl.managers.*; import fl.core.*; import fl.events.*; import flash.system.*; import flash.ui.*; public class TextArea extends UIComponent implements IFocusManagerComponent { protected var _html:Boolean;// = false protected var _verticalScrollBar:UIScrollBar; protected var _savedHTML:String; protected var background:DisplayObject; protected var _horizontalScrollBar:UIScrollBar; protected var _horizontalScrollPolicy:String;// = "auto" protected var _editable:Boolean;// = true protected var textHasChanged:Boolean;// = false public var textField:TextField; protected var _wordWrap:Boolean;// = true protected var _verticalScrollPolicy:String;// = "auto" protected static const SCROLL_BAR_STYLES:Object = {downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {upSkin:"TextArea_upSkin", disabledSkin:"TextArea_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:3, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function TextArea(){ _editable = true; _wordWrap = true; _horizontalScrollPolicy = ScrollPolicy.AUTO; _verticalScrollPolicy = ScrollPolicy.AUTO; _html = false; textHasChanged = false; super(); } override public function drawFocus(_arg1:Boolean):void{ if (focusTarget != null){ focusTarget.drawFocus(_arg1); return; }; super.drawFocus(_arg1); } public function set imeMode(_arg1:String):void{ _imeMode = _arg1; } protected function handleWheel(_arg1:MouseEvent):void{ if (((!(enabled)) || (!(_verticalScrollBar.visible)))){ return; }; _verticalScrollBar.scrollPosition = (_verticalScrollBar.scrollPosition - (_arg1.delta * _verticalScrollBar.lineScrollSize)); dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, (_arg1.delta * _verticalScrollBar.lineScrollSize), _verticalScrollBar.scrollPosition)); } public function get verticalScrollPosition():Number{ return (textField.scrollV); } override protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((((_arg1 == textField)) || (super.isOurFocus(_arg1)))); } public function set verticalScrollPosition(_arg1:Number):void{ drawNow(); textField.scrollV = _arg1; } protected function handleKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.ENTER){ dispatchEvent(new ComponentEvent(ComponentEvent.ENTER, true)); }; } public function set text(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ return; }; textField.text = _arg1; _html = false; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); textHasChanged = true; } protected function updateTextFieldType():void{ textField.type = (((enabled) && (_editable))) ? TextFieldType.INPUT : TextFieldType.DYNAMIC; textField.selectable = enabled; textField.wordWrap = _wordWrap; textField.multiline = true; } public function get selectionEndIndex():int{ return (textField.selectionEndIndex); } public function get editable():Boolean{ return (_editable); } override protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; setIMEMode(true); if (_arg1.target == this){ stage.focus = textField; }; _local2 = focusManager; if (_local2){ if (editable){ _local2.showFocusIndicator = true; }; _local2.defaultButtonEnabled = false; }; super.focusInHandler(_arg1); if (editable){ setIMEMode(true); }; } public function get wordWrap():Boolean{ return (_wordWrap); } public function get selectionBeginIndex():int{ return (textField.selectionBeginIndex); } public function get horizontalScrollBar():UIScrollBar{ return (_horizontalScrollBar); } public function set alwaysShowSelection(_arg1:Boolean):void{ textField.alwaysShowSelection = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; mouseChildren = enabled; invalidate(InvalidationType.STATE); } protected function setEmbedFont(){ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } public function get horizontalScrollPosition():Number{ return (textField.scrollH); } public function set condenseWhite(_arg1:Boolean):void{ textField.condenseWhite = _arg1; invalidate(InvalidationType.DATA); } public function get horizontalScrollPolicy():String{ return (_horizontalScrollPolicy); } public function set displayAsPassword(_arg1:Boolean):void{ textField.displayAsPassword = _arg1; } public function get maxVerticalScrollPosition():int{ return (textField.maxScrollV); } public function set horizontalScrollPosition(_arg1:Number):void{ drawNow(); textField.scrollH = _arg1; } public function get textHeight():Number{ drawNow(); return (textField.textHeight); } public function get textWidth():Number{ drawNow(); return (textField.textWidth); } public function get restrict():String{ return (textField.restrict); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; invalidate(InvalidationType.STATE); } protected function updateScrollBars(){ _horizontalScrollBar.update(); _verticalScrollBar.update(); _verticalScrollBar.enabled = enabled; _horizontalScrollBar.enabled = enabled; _horizontalScrollBar.drawNow(); _verticalScrollBar.drawNow(); } public function get maxChars():int{ return (textField.maxChars); } public function get length():Number{ return (textField.text.length); } public function set wordWrap(_arg1:Boolean):void{ _wordWrap = _arg1; invalidate(InvalidationType.STATE); } public function get verticalScrollPolicy():String{ return (_verticalScrollPolicy); } public function getLineMetrics(_arg1:int):TextLineMetrics{ return (textField.getLineMetrics(_arg1)); } public function get imeMode():String{ return (IME.conversionMode); } protected function handleScroll(_arg1:ScrollEvent):void{ dispatchEvent(_arg1); } override protected function focusOutHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; _local2 = focusManager; if (_local2){ _local2.defaultButtonEnabled = true; }; setSelection(0, 0); super.focusOutHandler(_arg1); if (editable){ setIMEMode(false); }; } protected function delayedLayoutUpdate(_arg1:Event):void{ if (textHasChanged){ textHasChanged = false; drawLayout(); return; }; removeEventListener(Event.ENTER_FRAME, delayedLayoutUpdate); } public function set htmlText(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ return; }; if (_arg1 == ""){ text = ""; return; }; _html = true; _savedHTML = _arg1; textField.htmlText = _arg1; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); textHasChanged = true; } public function get text():String{ return (textField.text); } public function get verticalScrollBar():UIScrollBar{ return (_verticalScrollBar); } override public function get enabled():Boolean{ return (super.enabled); } public function get condenseWhite():Boolean{ return (textField.condenseWhite); } public function set horizontalScrollPolicy(_arg1:String):void{ _horizontalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } public function get displayAsPassword():Boolean{ return (textField.displayAsPassword); } override protected function draw():void{ if (isInvalid(InvalidationType.STATE)){ updateTextFieldType(); }; if (isInvalid(InvalidationType.STYLES)){ setStyles(); setEmbedFont(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawTextFormat(); drawBackground(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.DATA)){ drawLayout(); }; super.draw(); } protected function handleTextInput(_arg1:TextEvent):void{ _arg1.stopPropagation(); dispatchEvent(new TextEvent(TextEvent.TEXT_INPUT, true, false, _arg1.text)); } override protected function configUI():void{ super.configUI(); tabChildren = true; textField = new TextField(); addChild(textField); updateTextFieldType(); _verticalScrollBar = new UIScrollBar(); _verticalScrollBar.name = "V"; _verticalScrollBar.visible = false; _verticalScrollBar.focusEnabled = false; copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); _verticalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); addChild(_verticalScrollBar); _horizontalScrollBar = new UIScrollBar(); _horizontalScrollBar.name = "H"; _horizontalScrollBar.visible = false; _horizontalScrollBar.focusEnabled = false; _horizontalScrollBar.direction = ScrollBarDirection.HORIZONTAL; copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); _horizontalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); addChild(_horizontalScrollBar); textField.addEventListener(TextEvent.TEXT_INPUT, handleTextInput, false, 0, true); textField.addEventListener(Event.CHANGE, handleChange, false, 0, true); textField.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown, false, 0, true); _horizontalScrollBar.scrollTarget = textField; _verticalScrollBar.scrollTarget = textField; addEventListener(MouseEvent.MOUSE_WHEEL, handleWheel, false, 0, true); } protected function setTextSize(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:Number; var _local5:Number; _local4 = (_arg1 - (_arg3 * 2)); _local5 = (_arg2 - (_arg3 * 2)); if (_local4 != textField.width){ textField.width = _local4; }; if (_local5 != textField.height){ textField.height = _local5; }; } public function appendText(_arg1:String):void{ textField.appendText(_arg1); invalidate(InvalidationType.DATA); } protected function needVScroll():Boolean{ if (_verticalScrollPolicy == ScrollPolicy.OFF){ return (false); }; if (_verticalScrollPolicy == ScrollPolicy.ON){ return (true); }; return ((textField.maxScrollV > 1)); } public function setSelection(_arg1:int, _arg2:int):void{ textField.setSelection(_arg1, _arg2); } public function get alwaysShowSelection():Boolean{ return (textField.alwaysShowSelection); } public function get htmlText():String{ return (textField.htmlText); } public function set restrict(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ _arg1 = null; }; textField.restrict = _arg1; } protected function drawBackground():void{ var _local1:DisplayObject; var _local2:String; _local1 = background; _local2 = (enabled) ? "upSkin" : "disabledSkin"; background = getDisplayObjectInstance(getStyleValue(_local2)); if (background != null){ addChildAt(background, 0); }; if (((((!((_local1 == null))) && (!((_local1 == background))))) && (contains(_local1)))){ removeChild(_local1); }; } public function set maxChars(_arg1:int):void{ textField.maxChars = _arg1; } public function get maxHorizontalScrollPosition():int{ return (textField.maxScrollH); } protected function drawLayout():void{ var _local1:Number; var _local2:Number; var _local3:Boolean; var _local4:Number; var _local5:Boolean; _local1 = Number(getStyleValue("textPadding")); textField.x = (textField.y = _local1); background.width = width; background.height = height; _local2 = height; _local3 = needVScroll(); _local4 = (width - (_local3) ? _verticalScrollBar.width : 0); _local5 = needHScroll(); if (_local5){ _local2 = (_local2 - _horizontalScrollBar.height); }; setTextSize(_local4, _local2, _local1); if (((((_local5) && (!(_local3)))) && (needVScroll()))){ _local3 = true; _local4 = (_local4 - _verticalScrollBar.width); setTextSize(_local4, _local2, _local1); }; if (_local3){ _verticalScrollBar.visible = true; _verticalScrollBar.x = (width - _verticalScrollBar.width); _verticalScrollBar.height = _local2; _verticalScrollBar.visible = true; _verticalScrollBar.enabled = enabled; } else { _verticalScrollBar.visible = false; }; if (_local5){ _horizontalScrollBar.visible = true; _horizontalScrollBar.y = (height - _horizontalScrollBar.height); _horizontalScrollBar.width = _local4; _horizontalScrollBar.visible = true; _horizontalScrollBar.enabled = enabled; } else { _horizontalScrollBar.visible = false; }; updateScrollBars(); addEventListener(Event.ENTER_FRAME, delayedLayoutUpdate, false, 0, true); } protected function setStyles():void{ copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); } protected function needHScroll():Boolean{ if (_horizontalScrollPolicy == ScrollPolicy.OFF){ return (false); }; if (_horizontalScrollPolicy == ScrollPolicy.ON){ return (true); }; return ((textField.maxScrollH > 0)); } protected function drawTextFormat():void{ var _local1:Object; var _local2:TextFormat; var _local3:TextFormat; _local1 = UIComponent.getStyleDefinition(); _local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); _local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); if (_html){ textField.htmlText = _savedHTML; }; } public function set verticalScrollPolicy(_arg1:String):void{ _verticalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } protected function handleChange(_arg1:Event):void{ _arg1.stopPropagation(); dispatchEvent(new Event(Event.CHANGE, true)); invalidate(InvalidationType.DATA); } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(defaultStyles, ScrollBar.getStyleDefinition())); } } }//package fl.controls
Section 118
//TextInput (fl.controls.TextInput) package fl.controls { import flash.display.*; import flash.events.*; import flash.text.*; import fl.managers.*; import fl.core.*; import fl.events.*; import flash.ui.*; public class TextInput extends UIComponent implements IFocusManagerComponent { protected var _html:Boolean;// = false protected var _savedHTML:String; protected var background:DisplayObject; protected var _editable:Boolean;// = true public var textField:TextField; private static var defaultStyles:Object = {upSkin:"TextInput_upSkin", disabledSkin:"TextInput_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:0, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function TextInput(){ _editable = true; _html = false; super(); } override public function drawFocus(_arg1:Boolean):void{ if (focusTarget != null){ focusTarget.drawFocus(_arg1); return; }; super.drawFocus(_arg1); } public function set imeMode(_arg1:String):void{ _imeMode = _arg1; } override protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((((_arg1 == textField)) || (super.isOurFocus(_arg1)))); } protected function handleKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.ENTER){ dispatchEvent(new ComponentEvent(ComponentEvent.ENTER, true)); }; } public function set text(_arg1:String):void{ textField.text = _arg1; _html = false; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); } protected function updateTextFieldType():void{ textField.type = (((enabled) && (editable))) ? TextFieldType.INPUT : TextFieldType.DYNAMIC; textField.selectable = enabled; } public function get selectionEndIndex():int{ return (textField.selectionEndIndex); } public function get editable():Boolean{ return (_editable); } override protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (_arg1.target == this){ stage.focus = textField; }; _local2 = focusManager; if (((editable) && (_local2))){ _local2.showFocusIndicator = true; if (((textField.selectable) && ((textField.selectionBeginIndex == textField.selectionBeginIndex)))){ setSelection(0, textField.length); }; }; super.focusInHandler(_arg1); if (editable){ setIMEMode(true); }; } public function get selectionBeginIndex():int{ return (textField.selectionBeginIndex); } public function set alwaysShowSelection(_arg1:Boolean):void{ textField.alwaysShowSelection = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; updateTextFieldType(); } protected function setEmbedFont(){ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } public function get horizontalScrollPosition():int{ return (textField.scrollH); } public function set condenseWhite(_arg1:Boolean):void{ textField.condenseWhite = _arg1; } public function set displayAsPassword(_arg1:Boolean):void{ textField.displayAsPassword = _arg1; } public function set horizontalScrollPosition(_arg1:int):void{ textField.scrollH = _arg1; } public function get restrict():String{ return (textField.restrict); } public function get textWidth():Number{ return (textField.textWidth); } public function get textHeight():Number{ return (textField.textHeight); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; updateTextFieldType(); } public function get maxChars():int{ return (textField.maxChars); } public function get length():int{ return (textField.length); } public function getLineMetrics(_arg1:int):TextLineMetrics{ return (textField.getLineMetrics(_arg1)); } public function get imeMode():String{ return (_imeMode); } override protected function focusOutHandler(_arg1:FocusEvent):void{ super.focusOutHandler(_arg1); if (editable){ setIMEMode(false); }; } public function set htmlText(_arg1:String):void{ if (_arg1 == ""){ text = ""; return; }; _html = true; _savedHTML = _arg1; textField.htmlText = _arg1; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); } public function get text():String{ return (textField.text); } override public function get enabled():Boolean{ return (super.enabled); } public function get condenseWhite():Boolean{ return (textField.condenseWhite); } public function get alwaysShowSelection():Boolean{ return (textField.alwaysShowSelection); } override protected function draw():void{ var _local1:Object; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawTextFormat(); drawBackground(); _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function handleTextInput(_arg1:TextEvent):void{ _arg1.stopPropagation(); dispatchEvent(new TextEvent(TextEvent.TEXT_INPUT, true, false, _arg1.text)); } override protected function configUI():void{ super.configUI(); tabChildren = true; textField = new TextField(); addChild(textField); updateTextFieldType(); textField.addEventListener(TextEvent.TEXT_INPUT, handleTextInput, false, 0, true); textField.addEventListener(Event.CHANGE, handleChange, false, 0, true); textField.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown, false, 0, true); } public function setSelection(_arg1:int, _arg2:int):void{ textField.setSelection(_arg1, _arg2); } public function get displayAsPassword():Boolean{ return (textField.displayAsPassword); } public function appendText(_arg1:String):void{ textField.appendText(_arg1); } public function set restrict(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ _arg1 = null; }; textField.restrict = _arg1; } public function get htmlText():String{ return (textField.htmlText); } protected function drawBackground():void{ var _local1:DisplayObject; var _local2:String; _local1 = background; _local2 = (enabled) ? "upSkin" : "disabledSkin"; background = getDisplayObjectInstance(getStyleValue(_local2)); if (background == null){ return; }; addChildAt(background, 0); if (((((!((_local1 == null))) && (!((_local1 == background))))) && (contains(_local1)))){ removeChild(_local1); }; } override public function setFocus():void{ stage.focus = textField; } protected function drawLayout():void{ var _local1:Number; _local1 = Number(getStyleValue("textPadding")); if (background != null){ background.width = width; background.height = height; }; textField.width = (width - (2 * _local1)); textField.height = (height - (2 * _local1)); textField.x = (textField.y = _local1); } public function set maxChars(_arg1:int):void{ textField.maxChars = _arg1; } public function get maxHorizontalScrollPosition():int{ return (textField.maxScrollH); } protected function drawTextFormat():void{ var _local1:Object; var _local2:TextFormat; var _local3:TextFormat; _local1 = UIComponent.getStyleDefinition(); _local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); _local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); if (_html){ textField.htmlText = _savedHTML; }; } protected function handleChange(_arg1:Event):void{ _arg1.stopPropagation(); dispatchEvent(new Event(Event.CHANGE, true)); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 119
//UIScrollBar (fl.controls.UIScrollBar) package fl.controls { import flash.events.*; import flash.text.*; import fl.core.*; import fl.events.*; public class UIScrollBar extends ScrollBar { protected var inScroll:Boolean;// = false protected var _scrollTarget:TextField; protected var inEdit:Boolean;// = false private static var defaultStyles:Object = {}; public function UIScrollBar(){ inEdit = false; inScroll = false; super(); } protected function handleTargetScroll(_arg1:Event):void{ if (inDrag){ return; }; if (!enabled){ return; }; inEdit = true; updateScrollTargetProperties(); scrollPosition = ((direction)==ScrollBarDirection.HORIZONTAL) ? _scrollTarget.scrollH : _scrollTarget.scrollV; inEdit = false; } override public function set minScrollPosition(_arg1:Number):void{ super.minScrollPosition = ((_arg1)<0) ? 0 : _arg1; } override public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{ super.setScrollPosition(_arg1, _arg2); if (!_scrollTarget){ inScroll = false; return; }; updateTargetScroll(); } override public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{ var _local5:Number; var _local6:Number; _local5 = _arg3; _local6 = ((_arg2)<0) ? 0 : _arg2; if (_scrollTarget != null){ if (direction == ScrollBarDirection.HORIZONTAL){ _local5 = ((_arg3)>_scrollTarget.maxScrollH) ? _scrollTarget.maxScrollH : _local5; } else { _local5 = ((_arg3)>_scrollTarget.maxScrollV) ? _scrollTarget.maxScrollV : _local5; }; }; super.setScrollProperties(_arg1, _local6, _local5, _arg4); } public function get scrollTargetName():String{ return (_scrollTarget.name); } public function get scrollTarget():TextField{ return (_scrollTarget); } protected function updateScrollTargetProperties():void{ var _local1:Boolean; var _local2:Number; if (_scrollTarget == null){ setScrollProperties(pageSize, minScrollPosition, maxScrollPosition, pageScrollSize); scrollPosition = 0; } else { _local1 = (direction == ScrollBarDirection.HORIZONTAL); _local2 = (_local1) ? _scrollTarget.width : 10; setScrollProperties(_local2, (_local1) ? 0 : 1, (_local1) ? _scrollTarget.maxScrollH : _scrollTarget.maxScrollV, pageScrollSize); scrollPosition = (_local1) ? _scrollTarget.scrollH : _scrollTarget.scrollV; }; } public function update():void{ inEdit = true; updateScrollTargetProperties(); inEdit = false; } public function set scrollTargetName(_arg1:String):void{ var target = _arg1; try { scrollTarget = (parent.getChildByName(target) as TextField); } catch(error:Error) { throw (new Error("ScrollTarget not found, or is not a TextField")); }; } override public function set direction(_arg1:String):void{ if (isLivePreview){ return; }; super.direction = _arg1; updateScrollTargetProperties(); } protected function handleTargetChange(_arg1:Event):void{ inEdit = true; setScrollPosition(((direction)==ScrollBarDirection.HORIZONTAL) ? _scrollTarget.scrollH : _scrollTarget.scrollV, true); updateScrollTargetProperties(); inEdit = false; } override public function set maxScrollPosition(_arg1:Number):void{ var _local2:Number; _local2 = _arg1; if (_scrollTarget != null){ if (direction == ScrollBarDirection.HORIZONTAL){ _local2 = ((_local2)>_scrollTarget.maxScrollH) ? _scrollTarget.maxScrollH : _local2; } else { _local2 = ((_local2)>_scrollTarget.maxScrollV) ? _scrollTarget.maxScrollV : _local2; }; }; super.maxScrollPosition = _local2; } protected function updateTargetScroll(_arg1:ScrollEvent=null):void{ if (inEdit){ return; }; if (direction == ScrollBarDirection.HORIZONTAL){ _scrollTarget.scrollH = scrollPosition; } else { _scrollTarget.scrollV = scrollPosition; }; } override protected function draw():void{ if (isInvalid(InvalidationType.DATA)){ updateScrollTargetProperties(); }; super.draw(); } public function set scrollTarget(_arg1:TextField):void{ if (_scrollTarget != null){ _scrollTarget.removeEventListener(Event.CHANGE, handleTargetChange, false); _scrollTarget.removeEventListener(TextEvent.TEXT_INPUT, handleTargetChange, false); _scrollTarget.removeEventListener(Event.SCROLL, handleTargetScroll, false); removeEventListener(ScrollEvent.SCROLL, updateTargetScroll, false); }; _scrollTarget = _arg1; if (_scrollTarget != null){ _scrollTarget.addEventListener(Event.CHANGE, handleTargetChange, false, 0, true); _scrollTarget.addEventListener(TextEvent.TEXT_INPUT, handleTargetChange, false, 0, true); _scrollTarget.addEventListener(Event.SCROLL, handleTargetScroll, false, 0, true); addEventListener(ScrollEvent.SCROLL, updateTargetScroll, false, 0, true); }; invalidate(InvalidationType.DATA); } override public function get direction():String{ return (super.direction); } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(defaultStyles, ScrollBar.getStyleDefinition())); } } }//package fl.controls
Section 120
//ComponentShim (fl.core.ComponentShim) package fl.core { import flash.display.*; public dynamic class ComponentShim extends MovieClip { } }//package fl.core
Section 121
//InvalidationType (fl.core.InvalidationType) package fl.core { public class InvalidationType { public static const SIZE:String = "size"; public static const ALL:String = "all"; public static const DATA:String = "data"; public static const SCROLL:String = "scroll"; public static const STATE:String = "state"; public static const STYLES:String = "styles"; public static const SELECTED:String = "selected"; public static const RENDERER_STYLES:String = "rendererStyles"; } }//package fl.core
Section 122
//UIComponent (fl.core.UIComponent) package fl.core { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.text.*; import fl.managers.*; import fl.events.*; import flash.system.*; public class UIComponent extends Sprite { protected var _enabled:Boolean;// = true private var _mouseFocusEnabled:Boolean;// = true protected var startHeight:Number; protected var _height:Number; protected var _oldIMEMode:String;// = null protected var startWidth:Number; public var focusTarget:IFocusManagerComponent; protected var errorCaught:Boolean;// = false protected var uiFocusRect:DisplayObject; protected var _width:Number; public var version:String;// = "3.0.0.15" protected var isFocused:Boolean;// = false protected var callLaterMethods:Dictionary; private var _focusEnabled:Boolean;// = true private var tempText:TextField; protected var invalidateFlag:Boolean;// = false protected var _inspector:Boolean;// = false protected var sharedStyles:Object; protected var invalidHash:Object; protected var isLivePreview:Boolean;// = false protected var _imeMode:String;// = null protected var instanceStyles:Object; protected var _x:Number; protected var _y:Number; public static var inCallLaterPhase:Boolean = false; private static var defaultStyles:Object = {focusRectSkin:"focusRectSkin", focusRectPadding:2, textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), disabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultTextFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultDisabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0)}; public static var createAccessibilityImplementation:Function; private static var focusManagers:Dictionary = new Dictionary(false); public function UIComponent(){ version = "3.0.0.15"; isLivePreview = false; invalidateFlag = false; _enabled = true; isFocused = false; _focusEnabled = true; _mouseFocusEnabled = true; _imeMode = null; _oldIMEMode = null; errorCaught = false; _inspector = false; super(); instanceStyles = {}; sharedStyles = {}; invalidHash = {}; callLaterMethods = new Dictionary(); StyleManager.registerInstance(this); configUI(); invalidate(InvalidationType.ALL); tabEnabled = (this is IFocusManagerComponent); focusRect = false; if (tabEnabled){ addEventListener(FocusEvent.FOCUS_IN, focusInHandler); addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler); addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); }; initializeFocusManager(); addEventListener(Event.ENTER_FRAME, hookAccessibility, false, 0, true); } public function drawFocus(_arg1:Boolean):void{ var _local2:Number; isFocused = _arg1; if (((!((uiFocusRect == null))) && (contains(uiFocusRect)))){ removeChild(uiFocusRect); uiFocusRect = null; }; if (_arg1){ uiFocusRect = (getDisplayObjectInstance(getStyleValue("focusRectSkin")) as Sprite); if (uiFocusRect == null){ return; }; _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.x = -(_local2); uiFocusRect.y = -(_local2); uiFocusRect.width = (width + (_local2 * 2)); uiFocusRect.height = (height + (_local2 * 2)); addChildAt(uiFocusRect, 0); }; } private function callLaterDispatcher(_arg1:Event):void{ var _local2:Dictionary; var _local3:Object; if (_arg1.type == Event.ADDED_TO_STAGE){ removeEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher); stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); return; }; _arg1.target.removeEventListener(Event.RENDER, callLaterDispatcher); if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); return; }; inCallLaterPhase = true; _local2 = callLaterMethods; for (_local3 in _local2) { _local3(); delete _local2[_local3]; }; inCallLaterPhase = false; } private function addedHandler(_arg1:Event):void{ removeEventListener("addedToStage", addedHandler); initializeFocusManager(); } protected function getStyleValue(_arg1:String):Object{ return (((instanceStyles[_arg1])==null) ? sharedStyles[_arg1] : instanceStyles[_arg1]); } protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((_arg1 == this)); } override public function get scaleX():Number{ return ((width / startWidth)); } override public function get scaleY():Number{ return ((height / startHeight)); } override public function set height(_arg1:Number):void{ if (_height == _arg1){ return; }; setSize(width, _arg1); } protected function keyDownHandler(_arg1:KeyboardEvent):void{ } protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (isOurFocus((_arg1.target as DisplayObject))){ _local2 = focusManager; if (((_local2) && (_local2.showFocusIndicator))){ drawFocus(true); isFocused = true; }; }; } public function setStyle(_arg1:String, _arg2:Object):void{ if ((((instanceStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; instanceStyles[_arg1] = _arg2; invalidate(InvalidationType.STYLES); } override public function get visible():Boolean{ return (super.visible); } public function get componentInspectorSetting():Boolean{ return (_inspector); } override public function get x():Number{ return ((isNaN(_x)) ? super.x : _x); } override public function get y():Number{ return ((isNaN(_y)) ? super.y : _y); } protected function setIMEMode(_arg1:Boolean){ var enabled = _arg1; if (_imeMode != null){ if (enabled){ IME.enabled = true; _oldIMEMode = IME.conversionMode; try { if (((!(errorCaught)) && (!((IME.conversionMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _imeMode; }; errorCaught = false; } catch(e:Error) { errorCaught = true; throw (new Error(("IME mode not supported: " + _imeMode))); }; } else { if (((!((IME.conversionMode == IMEConversionMode.UNKNOWN))) && (!((_oldIMEMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _oldIMEMode; }; IME.enabled = false; }; }; } public function set enabled(_arg1:Boolean):void{ if (_arg1 == _enabled){ return; }; _enabled = _arg1; invalidate(InvalidationType.STATE); } public function setSharedStyle(_arg1:String, _arg2:Object):void{ if ((((sharedStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; sharedStyles[_arg1] = _arg2; if (instanceStyles[_arg1] == null){ invalidate(InvalidationType.STYLES); }; } protected function keyUpHandler(_arg1:KeyboardEvent):void{ } public function set focusEnabled(_arg1:Boolean):void{ _focusEnabled = _arg1; } override public function set scaleX(_arg1:Number):void{ setSize((startWidth * _arg1), height); } public function get mouseFocusEnabled():Boolean{ return (_mouseFocusEnabled); } override public function set scaleY(_arg1:Number):void{ setSize(width, (startHeight * _arg1)); } protected function getDisplayObjectInstance(_arg1:Object):DisplayObject{ var classDef:Object; var skin = _arg1; classDef = null; if ((skin is Class)){ return ((new (skin) as DisplayObject)); }; if ((skin is DisplayObject)){ (skin as DisplayObject).x = 0; (skin as DisplayObject).y = 0; return ((skin as DisplayObject)); }; try { classDef = getDefinitionByName(skin.toString()); } catch(e:Error) { try { classDef = (loaderInfo.applicationDomain.getDefinition(skin.toString()) as Object); } catch(e:Error) { }; }; if (classDef == null){ return (null); }; return ((new (classDef) as DisplayObject)); } protected function copyStylesToChild(_arg1:UIComponent, _arg2:Object):void{ var _local3:String; for (_local3 in _arg2) { _arg1.setStyle(_local3, getStyleValue(_arg2[_local3])); }; } protected function beforeComponentParameters():void{ } protected function callLater(_arg1:Function):void{ if (inCallLaterPhase){ return; }; callLaterMethods[_arg1] = true; if (stage != null){ stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); } else { addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); }; } protected function createFocusManager():void{ if (focusManagers[stage] == null){ focusManagers[stage] = new FocusManager(stage); }; } override public function set visible(_arg1:Boolean):void{ var _local2:String; if (super.visible == _arg1){ return; }; super.visible = _arg1; _local2 = (_arg1) ? ComponentEvent.SHOW : ComponentEvent.HIDE; dispatchEvent(new ComponentEvent(_local2, true)); } protected function hookAccessibility(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, hookAccessibility); initializeAccessibility(); } public function set componentInspectorSetting(_arg1:Boolean):void{ _inspector = _arg1; if (_inspector){ beforeComponentParameters(); } else { afterComponentParameters(); }; } override public function set x(_arg1:Number):void{ move(_arg1, _y); } public function drawNow():void{ draw(); } override public function set y(_arg1:Number):void{ move(_x, _arg1); } protected function checkLivePreview():Boolean{ var className:String; if (parent == null){ return (false); }; try { className = getQualifiedClassName(parent); } catch(e:Error) { }; return ((className == "fl.livepreview::LivePreviewParent")); } protected function focusOutHandler(_arg1:FocusEvent):void{ if (isOurFocus((_arg1.target as DisplayObject))){ drawFocus(false); isFocused = false; }; } public function set mouseFocusEnabled(_arg1:Boolean):void{ _mouseFocusEnabled = _arg1; } public function getFocus():InteractiveObject{ if (stage){ return (stage.focus); }; return (null); } protected function validate():void{ invalidHash = {}; } override public function get height():Number{ return (_height); } public function invalidate(_arg1:String="all", _arg2:Boolean=true):void{ invalidHash[_arg1] = true; if (_arg2){ this.callLater(draw); }; } public function get enabled():Boolean{ return (_enabled); } protected function getScaleX():Number{ return (super.scaleX); } protected function getScaleY():Number{ return (super.scaleY); } public function get focusEnabled():Boolean{ return (_focusEnabled); } protected function afterComponentParameters():void{ } protected function draw():void{ if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } protected function configUI():void{ var _local1:Number; var _local2:Number; var _local3:Number; isLivePreview = checkLivePreview(); _local1 = rotation; rotation = 0; _local2 = super.width; _local3 = super.height; var _local4 = 1; super.scaleY = _local4; super.scaleX = _local4; setSize(_local2, _local3); move(super.x, super.y); rotation = _local1; startWidth = _local2; startHeight = _local3; if (numChildren > 0){ removeChildAt(0); }; } protected function setScaleX(_arg1:Number):void{ super.scaleX = _arg1; } protected function setScaleY(_arg1:Number):void{ super.scaleY = _arg1; } private function initializeFocusManager():void{ if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, addedHandler, false, 0, true); } else { createFocusManager(); }; } public function set focusManager(_arg1:IFocusManager):void{ UIComponent.focusManagers[this] = _arg1; } public function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } protected function isInvalid(_arg1:String, ... _args):Boolean{ if (((invalidHash[_arg1]) || (invalidHash[InvalidationType.ALL]))){ return (true); }; while (_args.length > 0) { if (invalidHash[_args.pop()]){ return (true); }; }; return (false); } public function setSize(_arg1:Number, _arg2:Number):void{ _width = _arg1; _height = _arg2; invalidate(InvalidationType.SIZE); dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, false)); } override public function set width(_arg1:Number):void{ if (_width == _arg1){ return; }; setSize(_arg1, height); } public function setFocus():void{ if (stage){ stage.focus = this; }; } protected function initializeAccessibility():void{ if (UIComponent.createAccessibilityImplementation != null){ UIComponent.createAccessibilityImplementation(this); }; } public function get focusManager():IFocusManager{ var _local1:DisplayObject; _local1 = this; while (_local1) { if (UIComponent.focusManagers[_local1] != null){ return (IFocusManager(UIComponent.focusManagers[_local1])); }; _local1 = _local1.parent; }; return (null); } override public function get width():Number{ return (_width); } public function move(_arg1:Number, _arg2:Number):void{ _x = _arg1; _y = _arg2; super.x = Math.round(_arg1); super.y = Math.round(_arg2); dispatchEvent(new ComponentEvent(ComponentEvent.MOVE)); } public function validateNow():void{ invalidate(InvalidationType.ALL, false); draw(); } public function getStyle(_arg1:String):Object{ return (instanceStyles[_arg1]); } public static function getStyleDefinition():Object{ return (defaultStyles); } public static function mergeStyles(... _args):Object{ var _local2:Object; var _local3:uint; var _local4:uint; var _local5:Object; var _local6:String; _local2 = {}; _local3 = _args.length; _local4 = 0; while (_local4 < _local3) { _local5 = _args[_local4]; for (_local6 in _local5) { if (_local2[_local6] != null){ } else { _local2[_local6] = _args[_local4][_local6]; }; }; _local4++; }; return (_local2); } } }//package fl.core
Section 123
//DataProvider (fl.data.DataProvider) package fl.data { import flash.events.*; import fl.events.*; public class DataProvider extends EventDispatcher { protected var data:Array; public function DataProvider(_arg1:Object=null){ if (_arg1 == null){ data = []; } else { data = getDataFromObject(_arg1); }; } protected function dispatchPreChangeEvent(_arg1:String, _arg2:Array, _arg3:int, _arg4:int):void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.PRE_DATA_CHANGE, _arg1, _arg2, _arg3, _arg4)); } public function invalidateItemAt(_arg1:int):void{ checkIndex(_arg1, (data.length - 1)); dispatchChangeEvent(DataChangeType.INVALIDATE, [data[_arg1]], _arg1, _arg1); } public function getItemIndex(_arg1:Object):int{ return (data.indexOf(_arg1)); } protected function getDataFromObject(_arg1:Object):Array{ var _local2:Array; var _local3:Array; var _local4:uint; var _local5:Object; var _local6:XML; var _local7:XMLList; var _local8:XML; var _local9:XMLList; var _local10:XML; var _local11:XMLList; var _local12:XML; if ((_arg1 is Array)){ _local3 = (_arg1 as Array); if (_local3.length > 0){ if ((((_local3[0] is String)) || ((_local3[0] is Number)))){ _local2 = []; _local4 = 0; while (_local4 < _local3.length) { _local5 = {label:String(_local3[_local4]), data:_local3[_local4]}; _local2.push(_local5); _local4++; }; return (_local2); }; }; return (_arg1.concat()); } else { if ((_arg1 is DataProvider)){ return (_arg1.toArray()); }; if ((_arg1 is XML)){ _local6 = (_arg1 as XML); _local2 = []; _local7 = _local6.*; for each (_local8 in _local7) { _arg1 = {}; _local9 = _local8.attributes(); for each (_local10 in _local9) { _arg1[_local10.localName()] = _local10.toString(); }; _local11 = _local8.*; for each (_local12 in _local11) { if (_local12.hasSimpleContent()){ _arg1[_local12.localName()] = _local12.toString(); }; }; _local2.push(_arg1); }; return (_local2); //unresolved jump }; }; throw (new ((!NULL! + !NULL!) + " to Array or DataProvider.").TypeError(!NULL!)); } public function removeItemAt(_arg1:uint):Object{ var _local2:Array; checkIndex(_arg1, (data.length - 1)); dispatchPreChangeEvent(DataChangeType.REMOVE, data.slice(_arg1, (_arg1 + 1)), _arg1, _arg1); _local2 = data.splice(_arg1, 1); dispatchChangeEvent(DataChangeType.REMOVE, _local2, _arg1, _arg1); return (_local2[0]); } public function addItem(_arg1:Object):void{ dispatchPreChangeEvent(DataChangeType.ADD, [_arg1], (data.length - 1), (data.length - 1)); data.push(_arg1); dispatchChangeEvent(DataChangeType.ADD, [_arg1], (data.length - 1), (data.length - 1)); } public function sortOn(_arg1:Object, _arg2:Object=null){ var _local3:Array; dispatchPreChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); _local3 = data.sortOn(_arg1, _arg2); dispatchChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); return (_local3); } public function sort(... _args){ var _local2:Array; dispatchPreChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); _local2 = data.sort.apply(data, _args); dispatchChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); return (_local2); } public function addItems(_arg1:Object):void{ addItemsAt(_arg1, data.length); } public function concat(_arg1:Object):void{ addItems(_arg1); } public function clone():DataProvider{ return (new DataProvider(data)); } public function toArray():Array{ return (data.concat()); } public function get length():uint{ return (data.length); } public function addItemAt(_arg1:Object, _arg2:uint):void{ checkIndex(_arg2, data.length); dispatchPreChangeEvent(DataChangeType.ADD, [_arg1], _arg2, _arg2); data.splice(_arg2, 0, _arg1); dispatchChangeEvent(DataChangeType.ADD, [_arg1], _arg2, _arg2); } public function getItemAt(_arg1:uint):Object{ checkIndex(_arg1, (data.length - 1)); return (data[_arg1]); } override public function toString():String{ return ((("DataProvider [" + data.join(" , ")) + "]")); } public function invalidateItem(_arg1:Object):void{ var _local2:uint; _local2 = getItemIndex(_arg1); if (_local2 == -1){ return; }; invalidateItemAt(_local2); } protected function dispatchChangeEvent(_arg1:String, _arg2:Array, _arg3:int, _arg4:int):void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.DATA_CHANGE, _arg1, _arg2, _arg3, _arg4)); } protected function checkIndex(_arg1:int, _arg2:int):void{ if ((((_arg1 > _arg2)) || ((_arg1 < 0)))){ throw (new RangeError((((("DataProvider index (" + _arg1) + ") is not in acceptable range (0 - ") + _arg2) + ")"))); }; } public function addItemsAt(_arg1:Object, _arg2:uint):void{ var _local3:Array; checkIndex(_arg2, data.length); _local3 = getDataFromObject(_arg1); dispatchPreChangeEvent(DataChangeType.ADD, _local3, _arg2, ((_arg2 + _local3.length) - 1)); data.splice.apply(data, [_arg2, 0].concat(_local3)); dispatchChangeEvent(DataChangeType.ADD, _local3, _arg2, ((_arg2 + _local3.length) - 1)); } public function replaceItem(_arg1:Object, _arg2:Object):Object{ var _local3:int; _local3 = getItemIndex(_arg2); if (_local3 != -1){ return (replaceItemAt(_arg1, _local3)); }; return (null); } public function removeItem(_arg1:Object):Object{ var _local2:int; _local2 = getItemIndex(_arg1); if (_local2 != -1){ return (removeItemAt(_local2)); }; return (null); } public function merge(_arg1:Object):void{ var _local2:Array; var _local3:uint; var _local4:uint; var _local5:uint; var _local6:Object; _local2 = getDataFromObject(_arg1); _local3 = _local2.length; _local4 = data.length; dispatchPreChangeEvent(DataChangeType.ADD, data.slice(_local4, data.length), _local4, (this.data.length - 1)); _local5 = 0; while (_local5 < _local3) { _local6 = _local2[_local5]; if (getItemIndex(_local6) == -1){ data.push(_local6); }; _local5++; }; if (data.length > _local4){ dispatchChangeEvent(DataChangeType.ADD, data.slice(_local4, data.length), _local4, (this.data.length - 1)); } else { dispatchChangeEvent(DataChangeType.ADD, [], -1, -1); }; } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ var _local3:Array; checkIndex(_arg2, (data.length - 1)); _local3 = [data[_arg2]]; dispatchPreChangeEvent(DataChangeType.REPLACE, _local3, _arg2, _arg2); data[_arg2] = _arg1; dispatchChangeEvent(DataChangeType.REPLACE, _local3, _arg2, _arg2); return (_local3[0]); } public function invalidate():void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.DATA_CHANGE, DataChangeType.INVALIDATE_ALL, data.concat(), 0, data.length)); } public function removeAll():void{ var _local1:Array; _local1 = data.concat(); dispatchPreChangeEvent(DataChangeType.REMOVE_ALL, _local1, 0, _local1.length); data = []; dispatchChangeEvent(DataChangeType.REMOVE_ALL, _local1, 0, _local1.length); } } }//package fl.data
Section 124
//SimpleCollectionItem (fl.data.SimpleCollectionItem) package fl.data { public dynamic class SimpleCollectionItem { public var label:String; public var data:String; public function toString():String{ return ((((("[SimpleCollectionItem: " + label) + ",") + data) + "]")); } } }//package fl.data
Section 125
//ComponentEvent (fl.events.ComponentEvent) package fl.events { import flash.events.*; public class ComponentEvent extends Event { public static const HIDE:String = "hide"; public static const BUTTON_DOWN:String = "buttonDown"; public static const MOVE:String = "move"; public static const RESIZE:String = "resize"; public static const ENTER:String = "enter"; public static const LABEL_CHANGE:String = "labelChange"; public static const SHOW:String = "show"; public function ComponentEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("ComponentEvent", "type", "bubbles", "cancelable")); } override public function clone():Event{ return (new ComponentEvent(type, bubbles, cancelable)); } } }//package fl.events
Section 126
//DataChangeEvent (fl.events.DataChangeEvent) package fl.events { import flash.events.*; public class DataChangeEvent extends Event { protected var _items:Array; protected var _endIndex:uint; protected var _changeType:String; protected var _startIndex:uint; public static const PRE_DATA_CHANGE:String = "preDataChange"; public static const DATA_CHANGE:String = "dataChange"; public function DataChangeEvent(_arg1:String, _arg2:String, _arg3:Array, _arg4:int=-1, _arg5:int=-1):void{ super(_arg1); _changeType = _arg2; _startIndex = _arg4; _items = _arg3; _endIndex = ((_arg5)==-1) ? _startIndex : _arg5; } public function get changeType():String{ return (_changeType); } public function get startIndex():uint{ return (_startIndex); } public function get items():Array{ return (_items); } override public function clone():Event{ return (new DataChangeEvent(type, _changeType, _items, _startIndex, _endIndex)); } override public function toString():String{ return (formatToString("DataChangeEvent", "type", "changeType", "startIndex", "endIndex", "bubbles", "cancelable")); } public function get endIndex():uint{ return (_endIndex); } } }//package fl.events
Section 127
//DataChangeType (fl.events.DataChangeType) package fl.events { public class DataChangeType { public static const ADD:String = "add"; public static const REMOVE:String = "remove"; public static const REMOVE_ALL:String = "removeAll"; public static const CHANGE:String = "change"; public static const REPLACE:String = "replace"; public static const INVALIDATE:String = "invalidate"; public static const INVALIDATE_ALL:String = "invalidateAll"; public static const SORT:String = "sort"; } }//package fl.events
Section 128
//DataGridEvent (fl.events.DataGridEvent) package fl.events { import flash.events.*; public class DataGridEvent extends ListEvent { protected var _itemRenderer:Object; protected var _reason:String; protected var _dataField:String; public static const ITEM_EDIT_BEGIN:String = "itemEditBegin"; public static const ITEM_EDIT_END:String = "itemEditEnd"; public static const ITEM_EDIT_BEGINNING:String = "itemEditBeginning"; public static const HEADER_RELEASE:String = "headerRelease"; public static const ITEM_FOCUS_IN:String = "itemFocusIn"; public static const ITEM_FOCUS_OUT:String = "itemFocusOut"; public static const COLUMN_STRETCH:String = "columnStretch"; public function DataGridEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:int=-1, _arg5:int=-1, _arg6:Object=null, _arg7:String=null, _arg8:String=null){ super(_arg1, _arg2, _arg3, _arg4, _arg5); _itemRenderer = _arg6; _dataField = _arg7; _reason = _arg8; } public function get reason():String{ return (_reason); } public function set dataField(_arg1:String):void{ _dataField = _arg1; } override public function toString():String{ return (formatToString("DataGridEvent", "type", "bubbles", "cancelable", "columnIndex", "rowIndex", "itemRenderer", "dataField", "reason")); } public function get dataField():String{ return (_dataField); } override public function clone():Event{ return (new DataGridEvent(type, bubbles, cancelable, columnIndex, int(rowIndex), _itemRenderer, _dataField, _reason)); } public function get itemRenderer():Object{ return (_itemRenderer); } } }//package fl.events
Section 129
//DataGridEventReason (fl.events.DataGridEventReason) package fl.events { public final class DataGridEventReason { public static const OTHER:String = "other"; public static const CANCELLED:String = "cancelled"; public static const NEW_COLUMN:String = "newColumn"; public static const NEW_ROW:String = "newRow"; } }//package fl.events
Section 130
//ListEvent (fl.events.ListEvent) package fl.events { import flash.events.*; public class ListEvent extends Event { protected var _index:int; protected var _item:Object; protected var _columnIndex:int; protected var _rowIndex:int; public static const ITEM_DOUBLE_CLICK:String = "itemDoubleClick"; public static const ITEM_ROLL_OUT:String = "itemRollOut"; public static const ITEM_ROLL_OVER:String = "itemRollOver"; public static const ITEM_CLICK:String = "itemClick"; public function ListEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:int=-1, _arg5:int=-1, _arg6:int=-1, _arg7:Object=null){ super(_arg1, _arg2, _arg3); _rowIndex = _arg5; _columnIndex = _arg4; _index = _arg6; _item = _arg7; } public function get rowIndex():Object{ return (_rowIndex); } public function get index():int{ return (_index); } public function get item():Object{ return (_item); } public function get columnIndex():int{ return (_columnIndex); } override public function clone():Event{ return (new ListEvent(type, bubbles, cancelable, _columnIndex, _rowIndex)); } override public function toString():String{ return (formatToString("ListEvent", "type", "bubbles", "cancelable", "columnIndex", "rowIndex", "index", "item")); } } }//package fl.events
Section 131
//ScrollEvent (fl.events.ScrollEvent) package fl.events { import flash.events.*; public class ScrollEvent extends Event { private var _position:Number; private var _direction:String; private var _delta:Number; public static const SCROLL:String = "scroll"; public function ScrollEvent(_arg1:String, _arg2:Number, _arg3:Number){ super(ScrollEvent.SCROLL, false, false); _direction = _arg1; _delta = _arg2; _position = _arg3; } override public function clone():Event{ return (new ScrollEvent(_direction, _delta, _position)); } public function get position():Number{ return (_position); } override public function toString():String{ return (formatToString("ScrollEvent", "type", "bubbles", "cancelable", "direction", "delta", "position")); } public function get delta():Number{ return (_delta); } public function get direction():String{ return (_direction); } } }//package fl.events
Section 132
//FocusManager (fl.managers.FocusManager) package fl.managers { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.text.*; import fl.core.*; import fl.controls.*; import flash.ui.*; public class FocusManager implements IFocusManager { private var focusableObjects:Dictionary; private var _showFocusIndicator:Boolean;// = true private var defButton:Button; private var focusableCandidates:Array; private var _form:DisplayObjectContainer; private var _defaultButtonEnabled:Boolean;// = true private var activated:Boolean;// = false private var _defaultButton:Button; private var calculateCandidates:Boolean;// = true private var lastFocus:InteractiveObject; private var lastAction:String; public function FocusManager(_arg1:DisplayObjectContainer){ activated = false; calculateCandidates = true; _showFocusIndicator = true; _defaultButtonEnabled = true; super(); focusableObjects = new Dictionary(true); if (_arg1 != null){ _form = _arg1; addFocusables(DisplayObject(_arg1)); _arg1.addEventListener(Event.ADDED, addedHandler); _arg1.addEventListener(Event.REMOVED, removedHandler); activate(); }; } public function get showFocusIndicator():Boolean{ return (_showFocusIndicator); } private function getIndexOfNextObject(_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{ var _local5:int; var _local6:int; var _local7:DisplayObject; var _local8:IFocusManagerGroup; var _local9:int; var _local10:DisplayObject; var _local11:IFocusManagerGroup; _local5 = focusableCandidates.length; _local6 = _arg1; while (true) { if (_arg2){ _arg1--; } else { _arg1++; }; if (_arg3){ if (((_arg2) && ((_arg1 < 0)))){ break; }; if (((!(_arg2)) && ((_arg1 == _local5)))){ break; }; } else { _arg1 = ((_arg1 + _local5) % _local5); if (_local6 == _arg1){ break; }; }; if (isValidFocusCandidate(focusableCandidates[_arg1], _arg4)){ _local7 = DisplayObject(findFocusManagerComponent(focusableCandidates[_arg1])); if ((_local7 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local7); _local9 = 0; while (_local9 < focusableCandidates.length) { _local10 = focusableCandidates[_local9]; if ((_local10 is IFocusManagerGroup)){ _local11 = IFocusManagerGroup(_local10); if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){ _arg1 = _local9; break; }; }; _local9++; }; }; return (_arg1); }; }; return (_arg1); } public function set form(_arg1:DisplayObjectContainer):void{ _form = _arg1; } private function addFocusables(_arg1:DisplayObject, _arg2:Boolean=false):void{ var focusable:IFocusManagerComponent; var io:InteractiveObject; var doc:DisplayObjectContainer; var i:int; var child:DisplayObject; var o = _arg1; var skipTopLevel = _arg2; if (!skipTopLevel){ if ((o is IFocusManagerComponent)){ focusable = IFocusManagerComponent(o); if (focusable.focusEnabled){ if (((focusable.tabEnabled) && (isTabVisible(o)))){ focusableObjects[o] = true; calculateCandidates = true; }; o.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); o.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; } else { if ((o is InteractiveObject)){ io = (o as InteractiveObject); if (((((io) && (io.tabEnabled))) && ((findFocusManagerComponent(io) == io)))){ focusableObjects[io] = true; calculateCandidates = true; }; io.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); io.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; }; }; if ((o is DisplayObjectContainer)){ doc = DisplayObjectContainer(o); o.addEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){ i = 0; while (i < doc.numChildren) { try { child = doc.getChildAt(i); if (child != null){ addFocusables(doc.getChildAt(i)); }; } catch(error:SecurityError) { }; i = (i + 1); }; }; }; } private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{ return (_arg1.getChildIndex(_arg2)); } private function mouseFocusChangeHandler(_arg1:FocusEvent):void{ if ((_arg1.relatedObject is TextField)){ return; }; _arg1.preventDefault(); } private function focusOutHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject; _local2 = (_arg1.target as InteractiveObject); } private function isValidFocusCandidate(_arg1:DisplayObject, _arg2:String):Boolean{ var _local3:IFocusManagerGroup; if (!isEnabledAndVisible(_arg1)){ return (false); }; if ((_arg1 is IFocusManagerGroup)){ _local3 = IFocusManagerGroup(_arg1); if (_arg2 == _local3.groupName){ return (false); }; }; return (true); } public function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject{ var _local2:InteractiveObject; _local2 = _arg1; while (_arg1) { if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){ return (_arg1); }; _arg1 = _arg1.parent; }; return (_local2); } private function sortFocusableObjectsTabIndex():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){ focusableCandidates.push(_local2); }; }; focusableCandidates.sort(sortByTabIndex); } private function removeFocusables(_arg1:DisplayObject):void{ var _local2:Object; var _local3:DisplayObject; if ((_arg1 is DisplayObjectContainer)){ _arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); _arg1.removeEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); for (_local2 in focusableObjects) { _local3 = DisplayObject(_local2); if (DisplayObjectContainer(_arg1).contains(_local3)){ if (_local3 == lastFocus){ lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local2]; calculateCandidates = true; }; }; }; } private function addedHandler(_arg1:Event):void{ var _local2:DisplayObject; _local2 = DisplayObject(_arg1.target); if (_local2.stage){ addFocusables(DisplayObject(_arg1.target)); }; } private function getTopLevelFocusTarget(_arg1:InteractiveObject):InteractiveObject{ while (_arg1 != InteractiveObject(form)) { if ((((((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))) && (IFocusManagerComponent(_arg1).mouseFocusEnabled))) && (UIComponent(_arg1).enabled))){ return (_arg1); }; _arg1 = _arg1.parent; if (_arg1 == null){ break; }; }; return (null); } private function tabChildrenChangeHandler(_arg1:Event):void{ var _local2:DisplayObjectContainer; if (_arg1.target != _arg1.currentTarget){ return; }; calculateCandidates = true; _local2 = DisplayObjectContainer(_arg1.target); if (_local2.tabChildren){ addFocusables(_local2, true); } else { removeFocusables(_local2); }; } public function sendDefaultButtonEvent():void{ defButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); } public function getFocus():InteractiveObject{ var _local1:InteractiveObject; _local1 = form.stage.focus; return (findFocusManagerComponent(_local1)); } private function isEnabledAndVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer; var _local3:TextField; var _local4:SimpleButton; _local2 = DisplayObject(form).parent; while (_arg1 != _local2) { if ((_arg1 is UIComponent)){ if (!UIComponent(_arg1).enabled){ return (false); }; } else { if ((_arg1 is TextField)){ _local3 = TextField(_arg1); if ((((_local3.type == TextFieldType.DYNAMIC)) || (!(_local3.selectable)))){ return (false); }; } else { if ((_arg1 is SimpleButton)){ _local4 = SimpleButton(_arg1); if (!_local4.enabled){ return (false); }; }; }; }; if (!_arg1.visible){ return (false); }; _arg1 = _arg1.parent; }; return (true); } public function set defaultButton(_arg1:Button):void{ var _local2:Button; _local2 = (_arg1) ? Button(_arg1) : null; if (_local2 != _defaultButton){ if (_defaultButton){ _defaultButton.emphasized = false; }; if (defButton){ defButton.emphasized = false; }; _defaultButton = _local2; defButton = _local2; if (_local2){ _local2.emphasized = true; }; }; } private function deactivateHandler(_arg1:Event):void{ var _local2:InteractiveObject; _local2 = InteractiveObject(_arg1.target); } public function setFocus(_arg1:InteractiveObject):void{ if ((_arg1 is IFocusManagerComponent)){ IFocusManagerComponent(_arg1).setFocus(); } else { form.stage.focus = _arg1; }; } private function setFocusToNextObject(_arg1:FocusEvent):void{ var _local2:InteractiveObject; if (!hasFocusableObjects()){ return; }; _local2 = getNextFocusManagerComponent(_arg1.shiftKey); if (_local2){ setFocus(_local2); }; } private function hasFocusableObjects():Boolean{ var _local1:Object; for (_local1 in focusableObjects) { return (true); }; return (false); } private function tabIndexChangeHandler(_arg1:Event):void{ calculateCandidates = true; } private function sortFocusableObjects():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){ sortFocusableObjectsTabIndex(); return; }; focusableCandidates.push(_local2); }; focusableCandidates.sort(sortByDepth); } private function keyFocusChangeHandler(_arg1:FocusEvent):void{ showFocusIndicator = true; if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){ setFocusToNextObject(_arg1); _arg1.preventDefault(); }; } private function getIndexOfFocusedObject(_arg1:DisplayObject):int{ var _local2:int; var _local3:int; _local2 = focusableCandidates.length; _local3 = 0; _local3 = 0; while (_local3 < _local2) { if (focusableCandidates[_local3] == _arg1){ return (_local3); }; _local3++; }; return (-1); } public function hideFocus():void{ } private function removedHandler(_arg1:Event):void{ var _local2:int; var _local3:DisplayObject; var _local4:InteractiveObject; _local3 = DisplayObject(_arg1.target); if ((((_local3 is IFocusManagerComponent)) && ((focusableObjects[_local3] == true)))){ if (_local3 == lastFocus){ IFocusManagerComponent(lastFocus).drawFocus(false); lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local3]; calculateCandidates = true; } else { if ((((_local3 is InteractiveObject)) && ((focusableObjects[_local3] == true)))){ _local4 = (_local3 as InteractiveObject); if (_local4){ if (_local4 == lastFocus){ lastFocus = null; }; delete focusableObjects[_local4]; calculateCandidates = true; }; _local3.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); }; }; removeFocusables(_local3); } private function sortByDepth(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{ var _local3:String; var _local4:String; var _local5:int; var _local6:String; var _local7:String; var _local8:String; var _local9:DisplayObject; var _local10:DisplayObject; _local3 = ""; _local4 = ""; _local8 = "0000"; _local9 = DisplayObject(_arg1); _local10 = DisplayObject(_arg2); while (((!((_local9 == DisplayObject(form)))) && (_local9.parent))) { _local5 = getChildIndex(_local9.parent, _local9); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local3 = (_local7 + _local3); _local9 = _local9.parent; }; while (((!((_local10 == DisplayObject(form)))) && (_local10.parent))) { _local5 = getChildIndex(_local10.parent, _local10); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local4 = (_local7 + _local4); _local10 = _local10.parent; }; return (((_local3 > _local4)) ? 1 : ((_local3 < _local4)) ? -1 : 0); } public function get defaultButton():Button{ return (_defaultButton); } private function activateHandler(_arg1:Event):void{ var _local2:InteractiveObject; _local2 = InteractiveObject(_arg1.target); if (lastFocus){ if ((lastFocus is IFocusManagerComponent)){ IFocusManagerComponent(lastFocus).setFocus(); } else { form.stage.focus = lastFocus; }; }; lastAction = "ACTIVATE"; } public function showFocus():void{ } public function set defaultButtonEnabled(_arg1:Boolean):void{ _defaultButtonEnabled = _arg1; } public function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject{ var _local2:DisplayObject; var _local3:String; var _local4:int; var _local5:Boolean; var _local6:int; var _local7:int; var _local8:IFocusManagerGroup; if (!hasFocusableObjects()){ return (null); }; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; _local2 = form.stage.focus; _local2 = DisplayObject(findFocusManagerComponent(InteractiveObject(_local2))); _local3 = ""; if ((_local2 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local2); _local3 = _local8.groupName; }; _local4 = getIndexOfFocusedObject(_local2); _local5 = false; _local6 = _local4; if (_local4 == -1){ if (_arg1){ _local4 = focusableCandidates.length; }; _local5 = true; }; _local7 = getIndexOfNextObject(_local4, _arg1, _local5, _local3); return (findFocusManagerComponent(focusableCandidates[_local7])); } private function mouseDownHandler(_arg1:MouseEvent):void{ var _local2:InteractiveObject; if (_arg1.isDefaultPrevented()){ return; }; _local2 = getTopLevelFocusTarget(InteractiveObject(_arg1.target)); if (!_local2){ return; }; showFocusIndicator = false; if (((((!((_local2 == lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((_local2 is TextField))))){ setFocus(_local2); }; lastAction = "MOUSEDOWN"; } private function isTabVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer; _local2 = _arg1.parent; while (((((_local2) && (!((_local2 is Stage))))) && (!(((_local2.parent) && ((_local2.parent is Stage))))))) { if (!_local2.tabChildren){ return (false); }; _local2 = _local2.parent; }; return (true); } public function get nextTabIndex():int{ return (0); } private function keyDownHandler(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.TAB){ lastAction = "KEY"; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; }; if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){ sendDefaultButtonEvent(); }; } private function focusInHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject; var _local3:Button; _local2 = InteractiveObject(_arg1.target); if (form.contains(_local2)){ lastFocus = findFocusManagerComponent(InteractiveObject(_local2)); if ((lastFocus is Button)){ _local3 = Button(lastFocus); if (defButton){ defButton.emphasized = false; defButton = _local3; _local3.emphasized = true; }; } else { if (((defButton) && (!((defButton == _defaultButton))))){ defButton.emphasized = false; defButton = _defaultButton; _defaultButton.emphasized = true; }; }; }; } private function tabEnabledChangeHandler(_arg1:Event):void{ var _local2:InteractiveObject; var _local3:Boolean; calculateCandidates = true; _local2 = InteractiveObject(_arg1.target); _local3 = (focusableObjects[_local2] == true); if (_local2.tabEnabled){ if (((!(_local3)) && (isTabVisible(_local2)))){ if (!(_local2 is IFocusManagerComponent)){ _local2.focusRect = false; }; focusableObjects[_local2] = true; }; } else { if (_local3){ delete focusableObjects[_local2]; }; }; } public function set showFocusIndicator(_arg1:Boolean):void{ _showFocusIndicator = _arg1; } public function get form():DisplayObjectContainer{ return (_form); } private function sortByTabIndex(_arg1:InteractiveObject, _arg2:InteractiveObject):int{ return (((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : ((_arg1.tabIndex < _arg2.tabIndex)) ? -1 : sortByDepth(_arg1, _arg2)); } public function activate():void{ if (activated){ return; }; form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true); form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true); form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true); form.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true); form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = true; if (lastFocus){ setFocus(lastFocus); }; } public function deactivate():void{ form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler); form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler); form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.removeEventListener(Event.ACTIVATE, activateHandler); form.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler); form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = false; } public function get defaultButtonEnabled():Boolean{ return (_defaultButtonEnabled); } } }//package fl.managers
Section 133
//IFocusManager (fl.managers.IFocusManager) package fl.managers { import flash.display.*; import fl.controls.*; public interface IFocusManager { function getFocus():InteractiveObject; function deactivate():void; function set defaultButton(_arg1:Button):void; function set showFocusIndicator(_arg1:Boolean):void; function get defaultButtonEnabled():Boolean; function get nextTabIndex():int; function get defaultButton():Button; function get showFocusIndicator():Boolean; function setFocus(_arg1:InteractiveObject):void; function activate():void; function showFocus():void; function set defaultButtonEnabled(_arg1:Boolean):void; function hideFocus():void; function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject; function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject; } }//package fl.managers
Section 134
//IFocusManagerComponent (fl.managers.IFocusManagerComponent) package fl.managers { public interface IFocusManagerComponent { function set focusEnabled(_arg1:Boolean):void; function drawFocus(_arg1:Boolean):void; function setFocus():void; function get focusEnabled():Boolean; function get tabEnabled():Boolean; function get tabIndex():int; function get mouseFocusEnabled():Boolean; } }//package fl.managers
Section 135
//IFocusManagerGroup (fl.managers.IFocusManagerGroup) package fl.managers { public interface IFocusManagerGroup { function set groupName(_arg1:String):void; function set selected(_arg1:Boolean):void; function get groupName():String; function get selected():Boolean; } }//package fl.managers
Section 136
//StyleManager (fl.managers.StyleManager) package fl.managers { import flash.utils.*; import flash.text.*; import fl.core.*; public class StyleManager { private var globalStyles:Object; private var classToDefaultStylesDict:Dictionary; private var styleToClassesHash:Object; private var classToStylesDict:Dictionary; private var classToInstancesDict:Dictionary; private static var _instance:StyleManager; public function StyleManager(){ styleToClassesHash = {}; classToInstancesDict = new Dictionary(true); classToStylesDict = new Dictionary(true); classToDefaultStylesDict = new Dictionary(true); globalStyles = UIComponent.getStyleDefinition(); } public static function clearComponentStyle(_arg1:Object, _arg2:String):void{ var _local3:Class; var _local4:Object; _local3 = getClassDef(_arg1); _local4 = getInstance().classToStylesDict[_local3]; if (((!((_local4 == null))) && (!((_local4[_arg2] == null))))){ delete _local4[_arg2]; invalidateComponentStyle(_local3, _arg2); }; } private static function getClassDef(_arg1:Object):Class{ var component = _arg1; if ((component is Class)){ return ((component as Class)); }; try { return ((getDefinitionByName(getQualifiedClassName(component)) as Class)); } catch(e:Error) { if ((component is UIComponent)){ try { return ((component.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(component)) as Class)); } catch(e:Error) { }; }; }; return (null); } public static function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Class; var _local5:Object; _local4 = getClassDef(_arg1); _local5 = getInstance().classToStylesDict[_local4]; if (_local5 == null){ _local5 = (getInstance().classToStylesDict[_local4] = {}); }; if (_local5 == _arg3){ return; }; _local5[_arg2] = _arg3; invalidateComponentStyle(_local4, _arg2); } private static function setSharedStyles(_arg1:UIComponent):void{ var _local2:StyleManager; var _local3:Class; var _local4:Object; var _local5:String; _local2 = getInstance(); _local3 = getClassDef(_arg1); _local4 = _local2.classToDefaultStylesDict[_local3]; for (_local5 in _local4) { _arg1.setSharedStyle(_local5, getSharedStyle(_arg1, _local5)); }; } public static function getComponentStyle(_arg1:Object, _arg2:String):Object{ var _local3:Class; var _local4:Object; _local3 = getClassDef(_arg1); _local4 = getInstance().classToStylesDict[_local3]; return (((_local4)==null) ? null : _local4[_arg2]); } private static function getInstance(){ if (_instance == null){ _instance = new (StyleManager); }; return (_instance); } private static function invalidateComponentStyle(_arg1:Class, _arg2:String):void{ var _local3:Dictionary; var _local4:Object; var _local5:UIComponent; _local3 = getInstance().classToInstancesDict[_arg1]; if (_local3 == null){ return; }; for (_local4 in _local3) { _local5 = (_local4 as UIComponent); if (_local5 == null){ } else { _local5.setSharedStyle(_arg2, getSharedStyle(_local5, _arg2)); }; }; } private static function invalidateStyle(_arg1:String):void{ var _local2:Dictionary; var _local3:Object; _local2 = getInstance().styleToClassesHash[_arg1]; if (_local2 == null){ return; }; for (_local3 in _local2) { invalidateComponentStyle(Class(_local3), _arg1); }; } public static function registerInstance(_arg1:UIComponent):void{ var inst:StyleManager; var classDef:Class; var target:Class; var defaultStyles:Object; var styleToClasses:Object; var n:String; var instance = _arg1; inst = getInstance(); classDef = getClassDef(instance); if (classDef == null){ return; }; if (inst.classToInstancesDict[classDef] == null){ inst.classToInstancesDict[classDef] = new Dictionary(true); target = classDef; while (defaultStyles == null) { if (target["getStyleDefinition"] != null){ defaultStyles = target["getStyleDefinition"](); break; }; try { target = (instance.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(target)) as Class); } catch(err:Error) { try { target = (getDefinitionByName(getQualifiedSuperclassName(target)) as Class); } catch(e:Error) { defaultStyles = UIComponent.getStyleDefinition(); break; }; }; }; styleToClasses = inst.styleToClassesHash; for (n in defaultStyles) { if (styleToClasses[n] == null){ styleToClasses[n] = new Dictionary(true); }; styleToClasses[n][classDef] = true; }; inst.classToDefaultStylesDict[classDef] = defaultStyles; inst.classToStylesDict[classDef] = {}; }; inst.classToInstancesDict[classDef][instance] = true; setSharedStyles(instance); } public static function getStyle(_arg1:String):Object{ return (getInstance().globalStyles[_arg1]); } private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{ var _local3:Class; var _local4:StyleManager; var _local5:Object; _local3 = getClassDef(_arg1); _local4 = getInstance(); _local5 = _local4.classToStylesDict[_local3][_arg2]; if (_local5 != null){ return (_local5); }; _local5 = _local4.globalStyles[_arg2]; if (_local5 != null){ return (_local5); }; return (_local4.classToDefaultStylesDict[_local3][_arg2]); } public static function setStyle(_arg1:String, _arg2:Object):void{ var _local3:Object; _local3 = getInstance().globalStyles; if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; _local3[_arg1] = _arg2; invalidateStyle(_arg1); } } }//package fl.managers
Section 137
//AssetData (Game.Data.AssetData) package Game.Data { import flash.display.*; import WBE.Managers.*; import flash.utils.*; public class AssetData { public var gridWidth:Number;// = 20 public var graphicsDict:Dictionary; public var bgGraphicsDict:Dictionary; public var gridHeight:Number;// = 20 private var xGridOffset:Number;// = 0 private var yGridOffset:Number;// = 0 public var audioDict:Dictionary; public var assetLibs:Dictionary; private static var allowInstantiation:Boolean; private static var instance:AssetData; public function AssetData():void{ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use AssetData.getInstance() instead of new.")); }; this.assetLibs = new Dictionary(); this.graphicsDict = new Dictionary(); this.graphicsDict["inputFieldError"] = {mcName:"BBinputFieldErrorMC", mcClass:BBinputFieldErrorMC}; this.graphicsDict["activityIndicator"] = {mcName:"loadSpinner", mcClass:loadSpinner}; this.graphicsDict["Console"] = {mcName:"BBconsoleMC", mcClass:BBconsoleMC}; this.graphicsDict["button"] = {mcName:"scrollButton", mcClass:scrollButton}; this.graphicsDict["gameMenuButton"] = {mcName:"gameMenuButton", mcClass:gameMenuButton}; this.graphicsDict["player"] = {mcName:"BBplayer1MC", mcClass:BBplayer1MC}; this.graphicsDict["mochi"] = {mcName:"mochi", mcClass:mochi}; this.graphicsDict["brickIntro"] = {mcName:"brickIntro", mcClass:brickIntro}; this.graphicsDict["Console"] = {mcName:"BBconsoleMC", mcClass:BBconsoleMC}; this.graphicsDict["DialogMC"] = {mcName:"DialogMC", mcClass:DialogMC}; this.graphicsDict["dialogButton"] = {mcName:"dialogScrollButton", mcClass:dialogScrollButton}; this.graphicsDict["modalLayer"] = {mcName:"modalLayer", mcClass:modalLayer}; this.graphicsDict["modalLayerClose_btn"] = {mcName:"modalLayerClose_btn", mcClass:modalLayerClose_btn}; this.graphicsDict["armorMiniButton"] = {mcName:"ArmorMiniButton", mcClass:ArmorMiniButton}; this.graphicsDict["soundButton"] = {mcName:"SoundButton", mcClass:SoundButton}; this.graphicsDict["musicButton"] = {mcName:"MusicButton", mcClass:MusicButton}; this.graphicsDict["backButton"] = {mcName:"OpenMenuButton", mcClass:OpenMenuButton}; this.graphicsDict["zoomButton"] = {mcName:"ZoomButton", mcClass:ZoomButton}; this.graphicsDict["highScoreHighlight"] = {mcName:"highscoreHighlight", mcClass:highscoreHighlight}; this.graphicsDict["levelSelectMouseoverMCHeightGoal"] = {mcName:"levelSelectMouseoverMCHeightGoal", mcClass:levelSelectMouseoverMCHeightGoal}; this.graphicsDict["levelSelectMouseoverMCBrickGoal"] = {mcName:"levelSelectMouseoverMCBrickGoal", mcClass:levelSelectMouseoverMCBrickGoal}; this.graphicsDict["levelSelectMouseoverMCPuzzle"] = {mcName:"levelSelectMouseoverMCPuzzle", mcClass:levelSelectMouseoverMCPuzzle}; this.graphicsDict["levelSelectMouseoverMCNoDrop"] = {mcName:"levelSelectMouseoverMCNoDrop", mcClass:levelSelectMouseoverMCNoDrop}; this.graphicsDict["Tetro_L"] = {mcName:"Tetro_L", mcClass:Tetro_L}; this.graphicsDict["Tetro_J"] = {mcName:"Tetro_J", mcClass:Tetro_J}; this.graphicsDict["Tetro_I"] = {mcName:"Tetro_I", mcClass:Tetro_I}; this.graphicsDict["Tetro_O"] = {mcName:"Tetro_O", mcClass:Tetro_O}; this.graphicsDict["Tetro_S"] = {mcName:"Tetro_S", mcClass:Tetro_S}; this.graphicsDict["Tetro_Z"] = {mcName:"Tetro_Z", mcClass:Tetro_Z}; this.graphicsDict["Tetro_T"] = {mcName:"Tetro_T", mcClass:Tetro_T}; this.graphicsDict["Pento1"] = {mcName:"Pento1", mcClass:Pento1}; this.graphicsDict["Pento2"] = {mcName:"Pento2", mcClass:Pento2}; this.graphicsDict["Pento3"] = {mcName:"Pento3", mcClass:Pento3}; this.graphicsDict["Pento4"] = {mcName:"Pento4", mcClass:Pento4}; this.graphicsDict["Pento5"] = {mcName:"Pento5", mcClass:Pento5}; this.graphicsDict["Pento6"] = {mcName:"Pento6", mcClass:Pento6}; this.graphicsDict["Pento7"] = {mcName:"Pento7", mcClass:Pento7}; this.graphicsDict["Pento8"] = {mcName:"Pento8", mcClass:Pento8}; this.graphicsDict["Pento9"] = {mcName:"Pento9", mcClass:Pento9}; this.graphicsDict["Pento10"] = {mcName:"Pento10", mcClass:Pento10}; this.graphicsDict["Pento11"] = {mcName:"Pento11", mcClass:Pento11}; this.graphicsDict["Pento12"] = {mcName:"Pento12", mcClass:Pento12}; this.graphicsDict["Pento13"] = {mcName:"Pento13", mcClass:Pento13}; this.graphicsDict["Pento14"] = {mcName:"Pento14", mcClass:Pento14}; this.graphicsDict["Hexo1"] = {mcName:"Hexo1", mcClass:Hexo1}; this.graphicsDict["Hexo2"] = {mcName:"Hexo2", mcClass:Hexo2}; this.graphicsDict["Hexo3"] = {mcName:"Hexo3", mcClass:Hexo3}; this.graphicsDict["Hexo4"] = {mcName:"Hexo4", mcClass:Hexo4}; this.graphicsDict["bonusMC"] = {mcName:"bonusMC", mcClass:bonusMC}; this.graphicsDict["circleMC"] = {mcName:"circleMC", mcClass:circleMC}; this.graphicsDict["boulder"] = {mcName:"circleMC", size:[50, 50], mcClass:circleMC}; this.graphicsDict["ground"] = {mcName:"Ground", mcClass:Ground}; this.graphicsDict["curHeightLine"] = {mcName:"curHeightLine", mcClass:curHeightLine}; this.graphicsDict["maxHeightLine"] = {mcName:"maxHeightLine", mcClass:maxHeightLine}; this.graphicsDict["maxHeightLabel"] = {mcName:"maxHeightLabel", mcClass:maxHeightLabel}; this.graphicsDict["upArrow"] = {mcName:"upArrow", mcClass:upArrow}; this.graphicsDict["ShoppeButton"] = {mcName:"ShoppeButton", mcClass:ShoppeButton}; this.graphicsDict["shopBuyButton"] = {mcName:"shopBuyButton", mcClass:shopBuyButton}; this.graphicsDict["mainMenuButton"] = {mcName:"mainMenuButton", mcClass:mainMenuButton}; this.graphicsDict["skipButton"] = {mcName:"skipButton", mcClass:skipButton}; this.graphicsDict["levelSelectMap"] = {mcName:"levelSelectMap", mcClass:levelSelectMap}; this.graphicsDict["mainBG"] = {mcName:"mainBackground_mc", mcClass:mainBackground_mc}; this.graphicsDict["pausedMessageMC"] = {mcName:"pausedMessageMC", mcClass:pausedMessageMC}; this.graphicsDict["pausedMessageBG"] = {mcName:"pausedMessageBG", mcClass:pausedMessageBG}; this.graphicsDict["tooltip"] = {mcName:"tooltip", mcClass:tooltip}; this.graphicsDict["mistSourceMC"] = {mcName:"mistSourceMC", mcClass:mistSourceMC}; this.graphicsDict["mistGenerationParticles"] = {mcName:"mistGenerationParticles", mcClass:mistGenerationParticles}; this.graphicsDict["PlayInterface"] = {mcName:"PlayInterface", mcClass:PlayInterface}; this.graphicsDict["ExtraInterface"] = {mcName:"ExtraInterface", mcClass:ExtraInterface}; this.graphicsDict["DefaultGameMenu"] = {mcName:"DefaultGameMenu", mcClass:DefaultGameMenu}; this.graphicsDict["ClassicGameMenu"] = {mcName:"ClassicGameMenu", mcClass:ClassicGameMenu}; this.graphicsDict["ShopGameMenu"] = {mcName:"ShopGameMenu", mcClass:ShopGameMenu}; this.graphicsDict["HowToPlayInfoWindow"] = {mcName:"HowToPlayInfoWindow", mcClass:HowToPlayInfoWindow}; this.graphicsDict["mainMenu"] = {mcName:"mainMenu", mcClass:mainMenu}; this.graphicsDict["extraMenu"] = {mcName:"extraMenu", mcClass:extraMenu}; this.graphicsDict["saveMenu"] = {mcName:"saveMenu", mcClass:saveMenu}; this.graphicsDict["saveNameMenu"] = {mcName:"saveNameMenu", mcClass:saveNameMenu}; this.graphicsDict["loadMenu"] = {mcName:"loadMenu", mcClass:loadMenu}; this.graphicsDict["levelSelectMenu"] = {mcName:"levelSelectMenu", mcClass:levelSelectMenu}; this.graphicsDict["showscoreMenu"] = {mcName:"showscoreMenu", mcClass:showscoreMenu}; this.graphicsDict["gameoverMenu"] = {mcName:"gameoverMenu", mcClass:gameoverMenu}; this.graphicsDict["highScoreMenu"] = {mcName:"highScoreMenu", mcClass:highScoreMenu}; this.graphicsDict["highScore1Menu"] = {mcName:"highScore1Menu", mcClass:highScore1Menu}; this.graphicsDict["highScore2Menu"] = {mcName:"highScore2Menu", mcClass:highScore2Menu}; this.graphicsDict["highScore3Menu"] = {mcName:"highScore3Menu", mcClass:highScore3Menu}; this.graphicsDict["submitScoreMenu"] = {mcName:"submitscoreMenu", mcClass:submitscoreMenu}; this.graphicsDict["pausedMessageMC"] = {mcName:"pausedMessageMC", mcClass:pausedMessageMC}; this.graphicsDict["pausedMessageBG"] = {mcName:"pausedMessageBG", mcClass:pausedMessageBG}; this.graphicsDict["tooltip"] = {mcName:"tooltip", mcClass:tooltip}; this.graphicsDict["mistSourceMC"] = {mcName:"mistSourceMC", mcClass:mistSourceMC}; this.graphicsDict["mistGenerationParticles"] = {mcName:"mistGenerationParticles", mcClass:mistGenerationParticles}; this.graphicsDict["shiftMoveIndicator"] = {mcName:"shiftMoveIndicator", mcClass:shiftMoveIndicator}; this.graphicsDict["storyBgMC"] = {mcName:"storyBgMC", mcClass:storyBgMC}; this.graphicsDict["storyFinalBgMC"] = {mcName:"storyFinalBgMC", mcClass:storyFinalBgMC}; this.graphicsDict["creditsBgMC"] = {mcName:"creditsBgMC", mcClass:creditsBgMC}; this.graphicsDict["garryStoryMC"] = {mcName:"garryStoryMC", mcClass:garryStoryMC}; this.graphicsDict["harryStoryMC"] = {mcName:"harryStoryMC", mcClass:harryStoryMC}; this.graphicsDict["larryStoryMC"] = {mcName:"larryStoryMC", mcClass:larryStoryMC}; this.bgGraphicsDict = new Dictionary(); this.bgGraphicsDict["grid"] = {mcName:"grid", gZ:-2, scaleWithZ:false, parralax:false, blurWithZ:false, vertiFixed:true, mcClass:grid}; this.bgGraphicsDict["messageAreaMC"] = {mcName:"messageAreaMC", gZ:-1, scaleWithZ:false, parralax:false, blurWithZ:false, vertiFixed:true, backgroundID:"messageArea", mcClass:messageAreaMC}; this.graphicsDict["textBalloonMC"] = {mcName:"textBalloonMC", mcClass:textBalloonMC}; this.graphicsDict["textBalloonIngameMC"] = {mcName:"textBalloonIngameMC", mcClass:textBalloonIngameMC}; this.graphicsDict["larryStoryMC"] = {mcName:"larryStoryMC", mcClass:larryStoryMC}; this.graphicsDict["shoppeEyesMC"] = {mcName:"shoppeEyesMC", mcClass:shoppeEyesMC}; this.graphicsDict["invisibleThing"] = {mcName:"invisibleThing", mcClass:invisibleThing}; this.audioDict = new Dictionary(); this.audioDict["dropSound"] = {acName:"stone1a", volume:0.6, ac:stone1a}; this.audioDict["crashSound1"] = {acName:"dropping_1", volume:0.8, ac:dropping_1}; this.audioDict["crashSound2"] = {acName:"dropping_2", volume:0.8, ac:dropping_2}; this.audioDict["crashSound3"] = {acName:"dropping_3", volume:0.8, ac:dropping_3}; this.audioDict["popSound"] = {acName:"popSound", volume:1, ac:popSound}; this.audioDict["cash"] = {acName:"cash", volume:0.6, ac:cash}; this.audioDict["buzzer"] = {acName:"sound16", volume:0.3, ac:sound16}; this.audioDict["applause"] = {acName:"applause3a", volume:0.6, ac:applause3a}; this.audioDict["filler1"] = {acName:"filler1", volume:1, ac:filler1}; this.audioDict["filler1and2"] = {acName:"filler1and2", volume:1, ac:filler1and2}; this.audioDict["filler2"] = {acName:"filler2", volume:1, ac:filler2}; this.audioDict["filler3a"] = {acName:"filler3a", volume:1, ac:filler3a}; this.audioDict["filler3ab"] = {acName:"filler3ab", volume:1, ac:filler3ab}; this.audioDict["filler3b"] = {acName:"filler3b", volume:1, ac:filler3b}; this.audioDict["loop1"] = {acName:"loop1", volume:1, ac:loop1}; this.audioDict["loop2"] = {acName:"loop2", volume:1, ac:loop2}; this.audioDict["loop3"] = {acName:"loop3", volume:1, ac:loop3}; this.audioDict["loop4"] = {acName:"loop4", volume:1, ac:loop4}; this.audioDict["loop5"] = {acName:"loop5", volume:0.7, ac:loop5}; this.audioDict["loop6thema1"] = {acName:"loop6thema1", volume:1, ac:loop6thema1}; this.audioDict["loop6thema2"] = {acName:"loop6thema2", volume:1, ac:loop6thema2}; } public function convertObjectOrientation(_arg1:MovieClip):void{ var _local2:Object = convertOrientation(_arg1.xPos, _arg1.yPos, _arg1.getRotation()); _arg1.x = _local2.x; _arg1.y = _local2.y; _arg1.rotation = _local2.rot; } public function convertOrientationBack(_arg1:int, _arg2:int):Array{ return ([Math.floor(((_arg1 - this.xGridOffset) / this.gridWidth)), Math.floor(((_arg2 - this.yGridOffset) / this.gridHeight))]); } public function toString():String{ return ("AssetData"); } public function convertOrientation(_arg1:Number, _arg2:Number, _arg3:Number):Object{ return ({x:_arg1, y:(-(_arg2) - wbSettingsManager.getInstance().getWorldSettings("height")), rot:_arg3}); } public static function getInstance(_arg1:Object):AssetData{ if ((_arg1 is wbAssetManager)){ if (instance == null){ allowInstantiation = true; instance = new (AssetData); allowInstantiation = false; }; return (instance); //unresolved jump }; wbStateManager.getInstance().error(("Unauthorized call of AssetData.getInstance by: " + _arg1)); return (null); } } }//package Game.Data
Section 138
//BrickData (Game.Data.BrickData) package Game.Data { import flash.utils.*; public class BrickData { private var brickData:Dictionary; private static var allowInstantiation:Boolean; private static var instance:BrickData; public function BrickData(){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use BrickData.getInstance() instead of new.")); }; this.brickData = new Dictionary(); this.brickData[0] = {name:"Tetro_Z", shape:[{w:2, h:1, x:-0.5, y:-0.5}, {w:2, h:1, x:0.5, y:0.5}], blocks:[[-1, -0.5], [0, -0.5], [0, 0.5], [1, 0.5]]}; this.brickData[1] = {name:"Tetro_I", shape:[{w:4, h:1, x:0, y:0}], blocks:[[-1.5, 0], [-0.5, 0], [0.5, 0], [1.5, 0]]}; this.brickData[2] = {name:"Tetro_S", shape:[{w:2, h:1, x:0.5, y:-0.5}, {w:2, h:1, x:-0.5, y:0.5}], blocks:[[-1, 0.5], [0, 0.5], [0, -0.5], [1, -0.5]]}; this.brickData[3] = {name:"Tetro_O", shape:[{w:2, h:2, x:0, y:0}], blocks:[[-0.5, -0.5], [-0.5, 0.5], [0.5, -0.5], [0.5, 0.5]]}; this.brickData[4] = {name:"Tetro_T", shape:[{w:3, h:1, x:0, y:-0.5}, {w:1, h:1, x:0, y:0.5}], blocks:[[-1, -0.5], [0, -0.5], [0, 0.5], [1, -0.5]]}; this.brickData[5] = {name:"Tetro_J", shape:[{w:3, h:1, x:0, y:-0.5}, {w:1, h:1, x:1, y:0.5}], blocks:[[-1, -0.5], [0, -0.5], [1, -0.5], [1, 0.5]]}; this.brickData[6] = {name:"Tetro_L", shape:[{w:3, h:1, x:0, y:0.5}, {w:1, h:1, x:1, y:-0.5}], blocks:[[-1, 0.5], [0, 0.5], [1, 0.5], [1, -0.5]]}; this.brickData[7] = {name:"Pento1", shape:[{w:3, h:1, x:0, y:-1}, {w:1, h:2, x:0, y:0.5}]}; this.brickData[8] = {name:"Pento2", shape:[{w:1, h:1, x:-1, y:0}, {w:1, h:3, x:0, y:0}, {w:1, h:1, x:1, y:0}]}; this.brickData[9] = {name:"Pento3", shape:[{w:1, h:1, x:-1, y:-0.5}, {w:3, h:1, x:0, y:0.5}, {w:1, h:1, x:1, y:-0.5}]}; this.brickData[10] = {name:"Pento4", shape:[{w:1, h:1, x:0, y:0}, {w:1, h:2, x:-1, y:0.5}, {w:2, h:1, x:0.5, y:-1}]}; this.brickData[11] = {name:"Pento5", shape:[{w:1, h:3, x:-1, y:0}, {w:2, h:1, x:0.5, y:1}]}; this.brickData[12] = {name:"Pento6", shape:[{w:1, h:1, x:0, y:0}, {w:1, h:2, x:-1, y:-0.5}, {w:1, h:2, x:1, y:0.5}]}; this.brickData[13] = {name:"Pento7", shape:[{w:1, h:1, x:0, y:0}, {w:1, h:2, x:1, y:-0.5}, {w:1, h:2, x:-1, y:0.5}]}; this.brickData[14] = {name:"Pento8", shape:[{w:2, h:1, x:-0.5, y:0}, {w:1, h:2, x:1, y:0.5}, {w:1, h:1, x:0, y:-1}]}; this.brickData[15] = {name:"Pento9", shape:[{w:2, h:1, x:0.5, y:0}, {w:1, h:2, x:-1, y:0.5}, {w:1, h:1, x:0, y:-1}]}; this.brickData[16] = {name:"Pento10", shape:[{w:2, h:2, x:0, y:0.5}, {w:1, h:1, x:-0.5, y:-1}]}; this.brickData[17] = {name:"Pento11", shape:[{w:2, h:2, x:0, y:0.5}, {w:1, h:1, x:0.5, y:-1}]}; this.brickData[18] = {name:"Pento12", shape:[{w:1, h:4, x:-0.5, y:0}, {w:1, h:1, x:0.5, y:-0.5}]}; this.brickData[19] = {name:"Pento13", shape:[{w:1, h:4, x:0.5, y:0}, {w:1, h:1, x:-0.5, y:-0.5}]}; this.brickData[20] = {name:"Pento14", shape:[{w:5, h:1, x:0, y:0}]}; this.brickData[21] = {name:"Hexo1", shape:[{w:1, h:2, x:-1, y:-0.5}, {w:1, h:2, x:0, y:0.5}, {w:1, h:2, x:1, y:-0.5}]}; this.brickData[22] = {name:"Hexo2", shape:[{w:1, h:3, x:-1, y:0}, {w:1, h:1, x:0, y:0}, {w:1, h:3, x:1, y:0}]}; this.brickData[23] = {name:"Hexo3", shape:[{w:1, h:2, x:-1, y:0.5}, {w:1, h:1, x:0, y:0}, {w:1, h:3, x:1, y:0}]}; this.brickData[24] = {name:"Hexo4", shape:[{w:1, h:3, x:-1, y:0}, {w:1, h:1, x:0, y:0}, {w:1, h:2, x:1, y:0.5}]}; } public function getBrickData(_arg1:int):Object{ return (this.brickData[_arg1]); } public static function getInstance():BrickData{ if (instance == null){ allowInstantiation = true; instance = new (BrickData); allowInstantiation = false; }; return (instance); } } }//package Game.Data
Section 139
//DatabaseData (Game.Data.DatabaseData) package Game.Data { import WBE.Managers.*; import flash.utils.*; public class DatabaseData { public var WBurl:String;// = "http://www.weirdbeard.nl/php/" public var dbActions:Dictionary; public var dbData:Dictionary; public var gameName:String;// = "tettow" public var key:String;// = "powertothemonkeykfgdsfkdjsbfsdkjfbdskjfbdskjfbdsi92321321557" public static var EXTRA:String = "EXTRA"; private static var allowInstantiation:Boolean; private static var instance:DatabaseData; public static var CITY_CLEARED:String = "CITY_CLEARED"; public static var GAME_COMPLETED_PERCENTAGE:String = "GAME_COMPLETED_PERCENTAGE"; public function DatabaseData(){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use MenuData.getInstance() instead of new.")); }; this.dbActions = new Dictionary(); this.dbActions["writescore"] = {input:"writescore"}; this.dbActions["updatescore"] = {input:"updatescore"}; this.dbActions["highscore"] = {input:"highscore", callbackWithObject:true}; this.dbActions["newsession"] = {input:"newsession"}; this.dbActions["newplaythrough"] = {input:"newplaythrough"}; this.dbActions["updatesessionPlay"] = {input:"updatesessionPlay"}; this.dbActions["updatesessionRegister"] = {input:"updatesessionRegister"}; this.dbActions["newstatistics"] = {input:"newstatistics"}; this.dbData = new Dictionary(); this.dbData["writescore"] = new Dictionary(); this.dbData["writescore"]["insert"] = [{column:"name", type:String, form:"score", element:"name"}, {column:"score", type:int, varData:"realMaxHeight"}, {column:"difficulty", type:int, varData:"difficulty"}, {column:"created", defaultData:"CURRENT_TIMESTAMP", type:Number}]; this.dbData["writescore"]["where"] = [{column:"difficulty", varData:"difficulty", type:int}]; this.dbData["writescore"]["sort"] = {column:"score", direction:"DESC"}; this.dbData["writescore"]["recordid"] = {recordid:"playerid"}; this.dbData["highscore"] = new Dictionary(); this.dbData["highscore"]["select"] = [{column:"score"}, {column:"name"}]; this.dbData["highscore"]["where"] = [{column:"Difficulty", varData:"difficulty", type:int}]; this.dbData["highscore"]["sort"] = {column:"score", top:15, direction:"DESC"}; this.dbData["updatescore"] = new Dictionary(); this.dbData["updatescore"]["update"] = [{column:"score", varData:"score", type:int}, {column:"name", form:"score", element:"name", type:String}]; this.dbData["updatescore"]["where"] = [{column:"difficulty", varData:"difficulty", type:int}]; this.dbData["newsession"] = new Dictionary(); this.dbData["newsession"]["insert"] = [{column:"created", defaultData:"CURRENT_TIMESTAMP", type:Number}]; this.dbData["newsession"]["table"] = {table:"sessions"}; this.dbData["newsession"]["recordid"] = {recordid:"sessionid"}; this.dbData["newplaythrough"] = new Dictionary(); this.dbData["newplaythrough"]["insert"] = [{column:"sessionid", varData:"sessionid", type:int}, {column:"difficulty", varData:"difficulty", type:int}, {column:"created", defaultData:"CURRENT_TIMESTAMP", type:Number}]; this.dbData["newplaythrough"]["table"] = {table:"playthroughs"}; this.dbData["newplaythrough"]["recordid"] = {recordid:"playthroughid"}; this.dbData["updatesessionPlay"] = new Dictionary(); this.dbData["updatesessionPlay"]["update"] = [{column:"started", defaultData:"true", type:int}]; this.dbData["updatesessionPlay"]["where"] = [{column:"id", varData:"sessionid", type:int}]; this.dbData["updatesessionPlay"]["table"] = {table:"sessions"}; this.dbData["updatesessionRegister"] = new Dictionary(); this.dbData["updatesessionRegister"]["update"] = [{column:"registered", defaultData:"true", type:int}, {column:"playerid", varData:"playerid", type:int}]; this.dbData["updatesessionRegister"]["where"] = [{column:"id", varData:"playthroughid", type:int}]; this.dbData["updatesessionRegister"]["table"] = {table:"playthroughs"}; this.dbData["newstatistics"] = new Dictionary(); this.dbData["newstatistics"]["insert"] = [{column:"playthroughid", varData:"playthroughid", type:int}, {column:"difficulty", varData:"difficulty", type:int}, {column:"framerate", varData:"levelFrameRate", type:Number}, {column:"dev_framerate", varData:"levelDevFrameRate", type:Number}, {column:"leveltime", varData:"levelTime", type:int}, {column:"created", defaultData:"CURRENT_TIMESTAMP", type:Number}]; this.dbData["newstatistics"]["table"] = {table:"levelstatistics"}; this.dbData["register"] = new Dictionary(); this.dbData["register"]["insert"] = [{column:"firstName", type:String, form:"register", element:"firstName"}, {column:"surName", type:String, form:"register", element:"surName"}, {column:"sex", type:String, form:"register", element:"sex"}, {column:"email", type:String, form:"register", element:"email"}, {column:"conditions", type:String, form:"register", element:"conditions"}, {column:"created", defaultData:"CURRENT_TIMESTAMP", type:Number}]; } public function toString():String{ return ("DatabaseData"); } public static function getInstance(_arg1:Object):DatabaseData{ if ((_arg1 is wbDatabaseManager)){ if (instance == null){ allowInstantiation = true; instance = new (DatabaseData); allowInstantiation = false; }; return (instance); //unresolved jump }; wbStateManager.getInstance().error(("Unauthorized call of DatabaseData.getInstance by: " + _arg1)); return (null); } } }//package Game.Data
Section 140
//DynamicAudioData (Game.Data.DynamicAudioData) package Game.Data { import WBE.Managers.*; import flash.utils.*; public class DynamicAudioData { private var dynamicAudioData:Dictionary; private var stateAudioData:Dictionary; public static const GAME_PHASE_1:String = "gamePhase1"; public static const GAME_PHASE_2:String = "gamePhase2"; public static const TRANSITION1A:String = "transition1a"; public static const TRANSITION1B:String = "transition1b"; public static const GAME_PHASE_3:String = "gamePhase3"; public static const STORY:String = "story"; public static const TRANSITION1AB:String = "transition1ab"; public static const TRANSITION2AB:String = "transition2ab"; public static const TRANSITION2A:String = "transition2a"; public static const TRANSITION2B:String = "transition2b"; public static const LEVEL_FINISHED:String = "levelFinished"; public static const MAP:String = "map"; public static const LEVEL_FAILED:String = "levelFailed"; private static var allowInstantiation:Boolean; private static var instance:DynamicAudioData; public function DynamicAudioData(){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use DynamicAudioData.getInstance() instead of new.")); }; this.dynamicAudioData = new Dictionary(); this.dynamicAudioData[TRANSITION1A] = {playOrder:wbDynamicAudioManager.ORDER, audio:[{ac:"filler1", type:wbDynamicAudioManager.SINGLE}]}; this.dynamicAudioData[TRANSITION1B] = {playOrder:wbDynamicAudioManager.ORDER, audio:[{ac:"filler2", type:wbDynamicAudioManager.SINGLE}]}; this.dynamicAudioData[TRANSITION1AB] = {playOrder:wbDynamicAudioManager.ORDER, audio:[{ac:"filler1and2", type:wbDynamicAudioManager.SINGLE}]}; this.dynamicAudioData[TRANSITION2A] = {playOrder:wbDynamicAudioManager.ORDER, audio:[{ac:"filler3a", type:wbDynamicAudioManager.SINGLE}]}; this.dynamicAudioData[TRANSITION2B] = {playOrder:wbDynamicAudioManager.ORDER, audio:[{ac:"filler3b", type:wbDynamicAudioManager.SINGLE}]}; this.dynamicAudioData[TRANSITION2AB] = {playOrder:wbDynamicAudioManager.ORDER, audio:[{ac:"filler3ab", type:wbDynamicAudioManager.SINGLE}]}; this.dynamicAudioData[MAP] = {playOrder:wbDynamicAudioManager.ORDER, transitionIn:"filler3b", audio:[{ac:"loop1", type:wbDynamicAudioManager.SINGLE}, {ac:"loop2", type:wbDynamicAudioManager.SINGLE}, {ac:"loop3", type:wbDynamicAudioManager.SINGLE}, {ac:"loop4", type:wbDynamicAudioManager.SINGLE}]}; this.dynamicAudioData[GAME_PHASE_1] = {playOrder:wbDynamicAudioManager.ORDER, audio:[{ac:"loop1", type:wbDynamicAudioManager.SINGLE}, {ac:"loop2", type:wbDynamicAudioManager.SINGLE}, {ac:"loop3", type:wbDynamicAudioManager.SINGLE}, {ac:"loop4", type:wbDynamicAudioManager.SINGLE}]}; this.dynamicAudioData[GAME_PHASE_2] = {playOrder:wbDynamicAudioManager.ORDER, audio:[{ac:"loop6thema1", type:wbDynamicAudioManager.LOOP}]}; this.dynamicAudioData[GAME_PHASE_3] = {playOrder:wbDynamicAudioManager.ORDER, audio:[{ac:"loop6thema2", type:wbDynamicAudioManager.LOOP}]}; this.dynamicAudioData[LEVEL_FINISHED] = {playOrder:wbDynamicAudioManager.ORDER, transition:TRANSITION2AB, audio:[{ac:"loop6thema1", type:wbDynamicAudioManager.LOOP}]}; this.dynamicAudioData[LEVEL_FAILED] = {playOrder:wbDynamicAudioManager.ORDER, transition:TRANSITION1AB, audio:[{ac:"loop5", type:wbDynamicAudioManager.LOOP}]}; var _local1:Array = [{ac:"loop5", type:wbDynamicAudioManager.SINGLE}, {ac:"loop6thema1", type:wbDynamicAudioManager.SINGLE}, {ac:"loop6thema2", type:wbDynamicAudioManager.SINGLE}]; this.stateAudioData = new Dictionary(); this.stateAudioData["main"] = [{ac:"loop6thema1", type:wbDynamicAudioManager.LOOP}]; this.stateAudioData["storyIntro"] = _local1; this.stateAudioData["storyAfterLevel1"] = _local1; this.stateAudioData["storyAfterLevel5"] = _local1; this.stateAudioData["storyAfterLevel12"] = _local1; this.stateAudioData["storyBeforeLevel24"] = _local1; this.stateAudioData["storyAfterLevel24"] = _local1; } public function getStateAudioData():Dictionary{ return (this.stateAudioData); } public function getDynamicAudioData():Dictionary{ return (this.dynamicAudioData); } public static function getInstance(_arg1:Object):DynamicAudioData{ if ((_arg1 is wbDynamicAudioManager)){ if (instance == null){ allowInstantiation = true; instance = new (DynamicAudioData); allowInstantiation = false; }; return (instance); //unresolved jump }; wbStateManager.getInstance().error(("Unauthorized call of DynamicAudioData.getInstance by: " + _arg1)); return (null); } } }//package Game.Data
Section 141
//GameInputData (Game.Data.GameInputData) package Game.Data { import WBE.Managers.*; import flash.utils.*; import WBE.UI.*; public class GameInputData { public var keyMapping:Dictionary; private static var allowInstantiation:Boolean; private static var instance:GameInputData; public function GameInputData():void{ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use GameInput.getInstance() instead of new.")); }; this.keyMapping = new Dictionary(); this.keyMapping["left"] = {keys:["left", "a"], condition:"e", conditionVal:1, downValue:1, upValue:0, func:wbStateManager.getGameState().moveLeft}; this.keyMapping["up"] = {keys:["up", "w", "space"], condition:"e", conditionVal:1, downValue:1, upValue:0, func:wbStateManager.getGameState().moveUp}; this.keyMapping["right"] = {keys:["right", "d"], condition:"e", conditionVal:1, downValue:1, upValue:0, func:wbStateManager.getGameState().moveRight}; this.keyMapping["down"] = {keys:["down", "s"], condition:"e", conditionVal:1, downValue:1, upValue:0, func:wbStateManager.getGameState().moveDown}; this.keyMapping["zoom"] = {keys:["z", "2"], condition:"e", conditionVal:1, downValue:1, upValue:0, func:wbStateManager.getGameState().zoom}; this.keyMapping["pause"] = {keys:["p", "esc"], condition:"e", conditionVal:1, upValue:wbGameMenu.GET_MENU_TYPE, func:wbStateManager.getInstance().toggleGameMenu}; this.keyMapping["discardBlock"] = {keys:["c"], condition:"e", conditionVal:1, func:wbStateManager.getGameState().discardBlock}; this.keyMapping["undoBlock"] = {keys:["v"], condition:"e", conditionVal:1, func:wbStateManager.getGameState().undoBlock}; this.keyMapping["shift"] = {keys:["shift"], condition:"e", conditionVal:1, downValue:2, upValue:1, func:wbStateManager.getGameState().shift}; } public function removeInstance():void{ instance = null; allowInstantiation = true; } public function toString():String{ return ("GameInputData"); } public static function getInstance(_arg1:Object):GameInputData{ if ((_arg1 is wbGameInputManager)){ if (instance == null){ allowInstantiation = true; instance = new (GameInputData); allowInstantiation = false; }; return (instance); //unresolved jump }; wbStateManager.getInstance().error(("Unauthorized call of GameInputData.getInstance by: " + _arg1)); return (null); } } }//package Game.Data
Section 142
//GameMenuData (Game.Data.GameMenuData) package Game.Data { import WBE.Managers.*; import flash.utils.*; import WBE.UI.*; public class GameMenuData { public var interfaces:Dictionary; private static var allowInstantiation:Boolean; private static var instance:GameMenuData; public function GameMenuData(){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use GameMenuData.getInstance() instead of new.")); }; this.interfaces = new Dictionary(); this.interfaces["Default"] = new Dictionary(); this.interfaces["Default"]["back"] = {label:"Main menu", type:"Button", mc:"gameMenuButton", action:"exit", exit:"back", confirm:true, confirmtext:"Are you sure?"}; this.interfaces["Default"]["resume"] = {label:"Resume", type:"Button", mc:"gameMenuButton", action:"func", func:wbStateManager.getInstance().closeGameMenu}; this.interfaces["Default"]["howToPlay"] = {label:"How to play", type:"Button", mc:"gameMenuButton", action:"func", func:wbStateManager.getInstance().openInfoWindow, funcArgs:["HowToPlay"]}; this.interfaces["Default"]["reset"] = {label:"Restart level", type:"Button", mc:"gameMenuButton", action:"exit", exit:"reset", confirm:true, confirmtext:"Are you sure?"}; this.interfaces["Default"]["walkthrough"] = {label:"Walkthrough", type:"Button", mc:"gameMenuButton", action:"externalLink", url:"http://armorgames.com/guide/99-Bricks-Legend-of-Garry-Walk-Through"}; this.interfaces["Default"]["submit"] = {label:"Return to Map", type:"Button", mc:"gameMenuButton", action:"exit", exit:"gameover", confirm:true, confirmtext:"Are you sure?"}; this.interfaces["Classic"] = new Dictionary(); this.interfaces["Classic"]["back"] = {label:"Main menu", type:"Button", mc:"gameMenuButton", action:"exit", exit:"back", confirm:true, confirmtext:"Are you sure?"}; this.interfaces["Classic"]["resume"] = {label:"Resume", type:"Button", mc:"gameMenuButton", action:"func", func:wbStateManager.getInstance().closeGameMenu}; this.interfaces["Classic"]["howToPlay"] = {label:"How to play", type:"Button", mc:"gameMenuButton", action:"func", func:wbStateManager.getInstance().openInfoWindow, funcArgs:["HowToPlay"]}; this.interfaces["Classic"]["reset"] = {label:"Restart level", type:"Button", mc:"gameMenuButton", action:"exit", exit:"reset", confirm:true, confirmtext:"Are you sure?"}; this.interfaces["Classic"]["submit"] = {label:"Submit score", type:"Button", mc:"gameMenuButton", action:"func", func:wbStateManager.getInstance().submitScore, confirm:true, confirmtext:"Are you sure?"}; this.interfaces["Shop"] = new Dictionary(); this.interfaces["Shop"]["explanation"] = {type:"ShopOutput", filterSet:"outputFilter", ShopType:"Explanation", item:""}; this.interfaces["Shop"]["exit"] = {label:"Exit shoppe", type:"Button", mc:"gameMenuButton", action:"func", func:wbStateManager.getInstance().closeShopGameMenu}; this.interfaces["Shop"]["previewName"] = {type:"ShopOutput", filterSet:"outputFilter", shopType:"Name", item:"previews", format:"skillName", index:1}; this.interfaces["Shop"]["livesName"] = {type:"ShopOutput", filterSet:"outputFilter", shopType:"Name", item:"lives", format:"skillName", index:2}; this.interfaces["Shop"]["discardsName"] = {type:"ShopOutput", filterSet:"outputFilter", shopType:"Name", item:"discards", format:"skillName", index:3}; this.interfaces["Shop"]["undosName"] = {type:"ShopOutput", filterSet:"outputFilter", shopType:"Name", item:"undos", format:"skillName", index:4}; this.interfaces["Shop"]["shiftName"] = {type:"ShopOutput", filterSet:"outputFilter", shopType:"Name", item:"shiftMove", format:"skillName", index:5}; this.interfaces["Shop"]["previewCur"] = {type:"ShopOutput", filterSet:"outputFilter", shopType:"Cur", item:"previews", format:"shopNumber", index:6}; this.interfaces["Shop"]["livesCur"] = {type:"ShopOutput", filterSet:"outputFilter", shopType:"Cur", item:"lives", format:"shopNumber", index:7}; this.interfaces["Shop"]["discardsCur"] = {type:"ShopOutput", filterSet:"outputFilter", shopType:"Cur", item:"discards", format:"shopNumber", index:8}; this.interfaces["Shop"]["undosCur"] = {type:"ShopOutput", filterSet:"outputFilter", shopType:"Cur", item:"undos", format:"shopNumber", index:9}; this.interfaces["Shop"]["shiftCur"] = {type:"ShopShiftOutput", filterSet:"outputFilter", shopType:"Cur", item:"shiftMove", format:"shopNumber", index:10}; this.interfaces["Shop"]["previewCost"] = {type:"ShopOutput", filterSet:"outputFilter", shopType:"Cost", item:"previews", format:"shopNumber", index:11}; this.interfaces["Shop"]["livesCost"] = {type:"ShopOutput", filterSet:"outputFilter", shopType:"Cost", item:"lives", format:"shopNumber", index:12}; this.interfaces["Shop"]["discardsCost"] = {type:"ShopOutput", filterSet:"outputFilter", shopType:"Cost", item:"discards", format:"shopNumber", index:13}; this.interfaces["Shop"]["undosCost"] = {type:"ShopOutput", filterSet:"outputFilter", shopType:"Cost", item:"undos", format:"shopNumber", index:14}; this.interfaces["Shop"]["shiftCost"] = {type:"ShopOutput", filterSet:"outputFilter", shopType:"Cost", item:"shiftMove", format:"shopNumber", index:15}; this.interfaces["Shop"]["previewNext"] = {type:"ShopOutput", filterSet:"outputFilter", shopType:"Next", item:"previews", format:"shopNumber", index:16}; this.interfaces["Shop"]["livesNext"] = {type:"ShopOutput", filterSet:"outputFilter", shopType:"Next", item:"lives", format:"shopNumber", index:17}; this.interfaces["Shop"]["discardsNext"] = {type:"ShopOutput", filterSet:"outputFilter", shopType:"Next", item:"discards", format:"shopNumber", index:18}; this.interfaces["Shop"]["undosNext"] = {type:"ShopOutput", filterSet:"outputFilter", shopType:"Next", item:"undos", format:"shopNumber", index:19}; this.interfaces["Shop"]["shiftNext"] = {type:"ShopShiftOutput", filterSet:"outputFilter", shopType:"Next", item:"shiftMove", format:"shopNumber", index:20}; this.interfaces["Shop"]["previewDetector"] = {type:"ShopOutput", shopType:"Detector", item:"previews", index:31}; this.interfaces["Shop"]["livesDetector"] = {type:"ShopOutput", shopType:"Detector", item:"lives", index:32}; this.interfaces["Shop"]["discardsDetector"] = {type:"ShopOutput", shopType:"Detector", item:"discards", index:33}; this.interfaces["Shop"]["undosDetector"] = {type:"ShopOutput", shopType:"Detector", item:"undos", index:34}; this.interfaces["Shop"]["shiftDetector"] = {type:"ShopOutput", shopType:"Detector", item:"shiftMove", index:35}; this.interfaces["Shop"]["preview"] = {mc:"shopBuyButton", type:"ShopButton", item:"previews", index:41}; this.interfaces["Shop"]["lives"] = {mc:"shopBuyButton", type:"ShopButton", item:"lives", index:42}; this.interfaces["Shop"]["discards"] = {mc:"shopBuyButton", type:"ShopButton", item:"discards", index:43}; this.interfaces["Shop"]["undos"] = {mc:"shopBuyButton", type:"ShopButton", item:"undos", index:44}; this.interfaces["Shop"]["shift"] = {mc:"shopBuyButton", type:"ShopButton", item:"shiftMove", index:45}; this.interfaces["Shop"]["shoppeEyes"] = {type:"ShoppeEyes", index:46}; this.interfaces["Shop"]["textBalloon"] = {type:"TextBalloonOutput", balloonMC:"textBalloonMC", filterSet:"outputFilter", multiline:true, format:"descriptionBox", varData:"descriptionBoxText"}; this.interfaces["Shop"]["credits"] = {type:"Output", format:"blocksLeft", varData:"formattedCredits"}; } public function getGameMenuData(_arg1:String):Dictionary{ return (this.interfaces[_arg1]); } public function toString():String{ return ("GameMenuData"); } public static function getInstance(_arg1:Object):GameMenuData{ if ((_arg1 is wbGameMenu)){ if (instance == null){ allowInstantiation = true; instance = new (GameMenuData); allowInstantiation = false; }; return (instance); //unresolved jump }; wbStateManager.getInstance().error(("Unauthorized call of GameMenuData.getInstance by: " + _arg1)); return (null); } } }//package Game.Data
Section 143
//InfoWindowData (Game.Data.InfoWindowData) package Game.Data { import WBE.Managers.*; import flash.utils.*; import WBE.UI.*; public class InfoWindowData { private var infoWindows:Dictionary; private static var allowInstantiation:Boolean; private static var instance:InfoWindowData; public function InfoWindowData(){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use InfoWindowData.getInstance() instead of new.")); }; this.infoWindows = new Dictionary(); this.infoWindows["HowToPlay"] = new Dictionary(); this.infoWindows["HowToPlay"]["close"] = {label:"Close", type:"Button", keyBind:["esc", "p"], action:"parentFunc", func:"close"}; } public function toString():String{ return ("InfoWindowData"); } public function getInfoWindowData(_arg1:String):Dictionary{ return (this.infoWindows[_arg1]); } public static function getInstance(_arg1:Object):InfoWindowData{ if ((_arg1 is wbInfoWindow)){ if (instance == null){ allowInstantiation = true; instance = new (InfoWindowData); allowInstantiation = false; }; return (instance); //unresolved jump }; wbStateManager.getInstance().error(("Unauthorized call of InfoWindowData.getInstance by: " + _arg1)); return (null); } } }//package Game.Data
Section 144
//InterfaceData (Game.Data.InterfaceData) package Game.Data { import WBE.Managers.*; import flash.utils.*; import Game.Modes.*; import WBE.UI.*; public class InterfaceData { public var interfaces:Dictionary; private static var allowInstantiation:Boolean; private static var instance:InterfaceData; public function InterfaceData(){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use InterfaceData.getInstance() instead of new.")); }; this.interfaces = new Dictionary(); this.interfaces["Play"] = new Dictionary(); this.interfaces["Play"]["armor"] = {type:"Button", mc:"armorMiniButton", action:"externalLink", tooltip:"Play more games", url:"http://www.armorgames.com"}; this.interfaces["Play"]["zoom"] = {type:"Button", mc:"zoomButton", filterSet:"glowFilter", action:"func", func:zoomIn, downFunc:zoomOut, tooltip:"Hold to zoom out [z]"}; this.interfaces["Play"]["back"] = {type:"Button", mc:"backButton", filterSet:"glowFilter", action:"gameMenu", tooltip:"Open pause menu [p]", menuType:"Default"}; this.interfaces["Play"]["sound"] = {type:"AudioButton", mc:"soundButton", filterSet:"glowFilter", audioType:"mute", tooltip:"Toggle mute"}; this.interfaces["Play"]["music"] = {type:"AudioButton", mc:"musicButton", filterSet:"glowFilter", audioType:"music", tooltip:"Toggle music"}; this.interfaces["Play"]["nextBlock1"] = {type:"NextBlock", previewNr:1}; this.interfaces["Play"]["nextBlock2"] = {type:"NextBlock", previewNr:2}; this.interfaces["Play"]["nextBlock3"] = {type:"NextBlock", previewNr:3}; this.interfaces["Play"]["nextBlock4"] = {type:"NextBlock", previewNr:4}; this.interfaces["Play"]["nextBlock5"] = {type:"NextBlock", previewNr:5}; this.interfaces["Play"]["maxHeight"] = {type:"MaxHeightLine", format:"maxHeightLine", varData:"maxHeight", index:1}; this.interfaces["Play"]["curHeight"] = {type:"HeightLine", format:"heightLine", varData:"curHeight", index:2}; this.interfaces["Play"]["blocks"] = {type:"Output", format:"blocksLeft", varData:"blocks", index:3}; this.interfaces["Play"]["currentBricks"] = {type:"Output", format:"blocksLeft", varData:"blocksInTower", index:4}; this.interfaces["Play"]["discardsLeft"] = {type:"Output", format:"blocksLeft", varData:"discardsLeft", index:5}; this.interfaces["Play"]["undosLeft"] = {type:"Output", format:"blocksLeft", varData:"undosLeft", index:6}; this.interfaces["Play"]["livesLeft"] = {type:"Output", format:"blocksLeft", varData:"livesLeft", index:7}; this.interfaces["Play"]["shiftMove"] = {type:"ShiftMove", index:8}; this.interfaces["Play"]["textBalloon"] = {type:"TextBalloonOutput", balloonMC:"textBalloonIngameMC", showTime:"inGameTextBalloonShowTime", inGame:true, filterSet:"outputFilter", multiline:true, format:"balloonText", varData:"inGameTextBalloonText"}; this.interfaces["Play"]["objectivesText"] = {type:"Output", format:"ingameObjectives", varData:"goalText", multiline:true}; this.interfaces["Play"]["tutor"] = {type:"Tutor"}; this.interfaces["Play"]["livesDetector"] = {type:"Detector", index:42, tooltip:"Number of Lives"}; this.interfaces["Play"]["undosDetector"] = {type:"Detector", index:43, tooltip:"Number of Undos [ V ]"}; this.interfaces["Play"]["shiftMoveDetector"] = {type:"Detector", index:44, tooltip:"Fast move availability [ SHIFT + ARROW ]"}; this.interfaces["Play"]["discardsDetector"] = {type:"Detector", index:45, tooltip:"Number of Discards [ C ]"}; this.interfaces["Play"]["blocksDetector"] = {type:"Detector", index:46, tooltip:"Bricks left"}; this.interfaces["Play"]["currentBricksDetector"] = {type:"Detector", index:47, tooltip:"Bricks currently in your tower"}; this.interfaces["Extra"] = new Dictionary(); this.interfaces["Extra"]["nextBlock1"] = {type:"NextBlock", previewNr:1}; this.interfaces["Extra"]["nextBlock2"] = {type:"NextBlock", previewNr:2}; this.interfaces["Extra"]["nextBlock3"] = {type:"NextBlock", previewNr:3}; this.interfaces["Extra"]["nextBlock4"] = {type:"NextBlock", previewNr:4}; this.interfaces["Extra"]["nextBlock5"] = {type:"NextBlock", previewNr:5}; this.interfaces["Extra"]["armor"] = {type:"Button", mc:"armorMiniButton", action:"externalLink", tooltip:"Play more games", url:"http://www.armorgames.com"}; this.interfaces["Extra"]["zoom"] = {type:"Button", mc:"zoomButton", filterSet:"glowFilter", action:"func", func:zoomIn, downFunc:zoomOut, tooltip:"Hold to zoom out [z]"}; this.interfaces["Extra"]["back"] = {type:"Button", mc:"backButton", filterSet:"glowFilter", action:"gameMenu", tooltip:"Open pause menu [p]", menuType:"Classic"}; this.interfaces["Extra"]["sound"] = {type:"AudioButton", mc:"soundButton", filterSet:"glowFilter", audioType:"mute", tooltip:"Toggle mute"}; this.interfaces["Extra"]["music"] = {type:"AudioButton", mc:"musicButton", filterSet:"glowFilter", audioType:"music", tooltip:"Toggle music"}; this.interfaces["Extra"]["maxHeight"] = {type:"MaxHeightLine", format:"maxHeightLine", varData:"maxHeight", labelText:"score", index:1}; this.interfaces["Extra"]["curHeight"] = {type:"HeightLine", format:"heightLine", varData:"curHeight", index:2}; this.interfaces["Extra"]["blocks"] = {type:"Output", format:"blocksLeft", varData:"blocks", index:3}; this.interfaces["Extra"]["currentBricks"] = {type:"Output", format:"blocksLeft", varData:"blocksInTower", index:4}; this.interfaces["Extra"]["textBalloon"] = {type:"TextBalloonOutput", balloonMC:"textBalloonIngameMC", showTime:"inGameTextBalloonShowTime", inGame:true, filterSet:"outputFilter", multiline:true, format:"balloonText", varData:"inGameTextBalloonText", index:5}; this.interfaces["Extra"]["tutor"] = {type:"Tutor"}; this.interfaces["Extra"]["livesDetector"] = {type:"Detector", index:42, tooltip:"Number of Lives"}; this.interfaces["Extra"]["undosDetector"] = {type:"Detector", index:43, tooltip:"Number of Undos [ V ]"}; this.interfaces["Extra"]["shiftMoveDetector"] = {type:"Detector", index:44, tooltip:"Fast move availability [ SHIFT + ARROW ]"}; this.interfaces["Extra"]["discardsDetector"] = {type:"Detector", index:45, tooltip:"Number of Discards [ C ]"}; this.interfaces["Extra"]["blocksDetector"] = {type:"Detector", index:46, tooltip:"Bricks left"}; this.interfaces["Extra"]["currentBricksDetector"] = {type:"Detector", index:47, tooltip:"Bricks currently in your tower"}; this.interfaces["Test"] = new Dictionary(); this.interfaces["Test"]["back"] = {type:"Button", mc:"backButton", filterSet:"glowFilter", action:"exit", tooltip:"Back to main menu", exit:"back", confirm:true}; this.interfaces["Test"]["sound"] = {type:"AudioButton", mc:"soundButton", filterSet:"glowFilter", audioType:"mute", tooltip:"Toggle mute"}; this.interfaces["Test"]["music"] = {type:"AudioButton", mc:"musicButton", filterSet:"glowFilter", audioType:"music", tooltip:"Toggle music"}; this.interfaces["Test"]["maxHeight"] = {type:"MaxHeightLine", format:"maxHeightLine", varData:"maxHeight"}; this.interfaces["Test"]["curHeight"] = {type:"HeightLine", format:"heightLine", varData:"curHeight"}; this.interfaces["Test"]["blocks"] = {type:"Output", format:"blocksLeft", varData:"blocks"}; } public function zoomIn():void{ PlayMode(wbStateManager.getGameState().getCurrentMode()).zoom(0); } public function zoomOut():void{ PlayMode(wbStateManager.getGameState().getCurrentMode()).zoom(1); } public function toString():String{ return ("InterfaceData"); } public static function getInstance(_arg1:Object):InterfaceData{ if ((_arg1 is wbInterface)){ if (instance == null){ allowInstantiation = true; instance = new (InterfaceData); allowInstantiation = false; }; return (instance); //unresolved jump }; wbStateManager.getInstance().error(("Unauthorized call of InterfaceData.getInstance by: " + _arg1)); return (null); } } }//package Game.Data
Section 145
//LevelData (Game.Data.LevelData) package Game.Data { import WBE.Managers.*; import flash.utils.*; public class LevelData { private var levelData:Dictionary; private var blockData:Dictionary; private static var allowInstantiation:Boolean; private static var instance:LevelData; public function LevelData(){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use LevelData.getInstance() instead of new.")); }; var _local1 = "Tower "; var _local2 = "Wall "; var _local3 = "Puzzle "; var _local4 = "No drop "; this.levelData = new Dictionary(); this.levelData[-1] = {blocks:99, heightGoal:0, brickGoal:0, noDrop:false, blockComplexity:0}; this.levelData[-2] = {blocks:99, heightGoal:0, brickGoal:0, noDrop:false, blockComplexity:9}; this.levelData[-3] = {blocks:99, heightGoal:0, brickGoal:0, noDrop:false, blockComplexity:18}; this.levelData[1] = {blocks:25, heightGoal:100, brickGoal:0, noDrop:false, blockComplexity:0, name:(_local1 + "1"), startMessage:"Good luck on building your first tower!\nUse the arrow keys to move the bricks."}; this.levelData[2] = {blocks:15, heightGoal:0, brickGoal:10, noDrop:false, blockComplexity:0, name:(_local2 + "1"), startMessage:"Here we go!\nKeep a close eye on the objectives in the right hand corner."}; this.levelData[3] = {blocks:50, heightGoal:200, brickGoal:0, noDrop:false, blockComplexity:1, name:(_local1 + "2"), startMessage:"Here they come!"}; this.levelData[4] = {blocks:30, heightGoal:0, brickGoal:20, noDrop:false, blockComplexity:1, name:(_local2 + "2"), startMessage:"You can see how many bricks are in your tower in the upper right corner."}; this.levelData[5] = {blocks:3, heightGoal:30, brickGoal:3, noDrop:true, platformWidth:60, blockComplexity:2, name:(_local3 + "1"), startMessage:"Look at the objectives, this one is different!", puzzle:true, experience:30}; this.levelData[6] = {blocks:60, heightGoal:300, brickGoal:0, noDrop:false, platformWidth:120, blockComplexity:4, name:(_local1 + "3"), startMessage:"You can do it Garry!"}; this.levelData[7] = {blocks:30, heightGoal:0, brickGoal:30, noDrop:true, platformWidth:160, blockComplexity:5, name:(_local4 + "1"), startMessage:""}; this.levelData[8] = {blocks:60, heightGoal:300, brickGoal:0, noDrop:false, platformWidth:160, blockComplexity:4, name:(_local1 + "4"), startMessage:""}; this.levelData[9] = {blocks:5, heightGoal:40, brickGoal:5, noDrop:true, platformWidth:60, blockComplexity:5, name:(_local3 + "2"), startMessage:"This one looks tricky...", puzzle:true, experience:40}; this.levelData[10] = {blocks:45, heightGoal:0, brickGoal:30, noDrop:false, platformWidth:160, blockComplexity:5, name:(_local2 + "3"), startMessage:"Here they come!"}; this.levelData[11] = {blocks:60, heightGoal:300, brickGoal:0, noDrop:false, platformWidth:160, blockComplexity:7, name:(_local1 + "5"), startMessage:""}; this.levelData[12] = {blocks:10, heightGoal:200, brickGoal:0, noDrop:false, platformWidth:80, blockComplexity:7, name:"Special", startMessage:"Not every tower has to have a sturdy base...", experience:25}; this.levelData[13] = {blocks:7, heightGoal:50, brickGoal:7, noDrop:true, platformWidth:80, blockComplexity:9, name:(_local3 + "3"), startMessage:"Focus, Garry!", puzzle:true, experience:50}; this.levelData[14] = {blocks:70, heightGoal:400, brickGoal:0, noDrop:false, platformWidth:120, blockComplexity:9, name:(_local1 + "6"), startMessage:"Here we go!"}; this.levelData[15] = {blocks:60, heightGoal:0, brickGoal:40, noDrop:false, platformWidth:160, blockComplexity:9, name:(_local2 + "4"), startMessage:""}; this.levelData[16] = {blocks:8, heightGoal:40, brickGoal:8, noDrop:true, platformWidth:60, blockComplexity:11, name:(_local3 + "4"), startMessage:"Hmmm...", puzzle:true, experience:60}; this.levelData[17] = {blocks:75, heightGoal:0, brickGoal:45, noDrop:false, platformWidth:120, blockComplexity:11, name:(_local2 + "5"), startMessage:"Here they come!"}; this.levelData[18] = {blocks:50, heightGoal:0, brickGoal:50, noDrop:true, platformWidth:160, blockComplexity:13, name:(_local4 + "2"), startMessage:""}; this.levelData[19] = {blocks:80, heightGoal:500, brickGoal:0, noDrop:false, platformWidth:160, blockComplexity:13, name:(_local1 + "7"), startMessage:"", expCap:70}; this.levelData[20] = {blocks:75, heightGoal:0, brickGoal:50, noDrop:false, platformWidth:160, blockComplexity:14, name:(_local2 + "6"), startMessage:"Here we go!"}; this.levelData[21] = {blocks:80, heightGoal:600, brickGoal:0, noDrop:false, platformWidth:160, blockComplexity:15, name:(_local1 + "8"), startMessage:"", expCap:70}; this.levelData[22] = {blocks:5, heightGoal:30, brickGoal:5, noDrop:true, platformWidth:60, blockComplexity:16, name:(_local3 + "5"), startMessage:"This one is hard!", puzzle:true, experience:70}; this.levelData[23] = {blocks:75, heightGoal:0, brickGoal:75, noDrop:true, platformWidth:160, blockComplexity:16, name:(_local4 + "3"), startMessage:"I'm proud of you Garry!\nYou've come so far!"}; this.levelData[24] = {blocks:90, heightGoal:600, brickGoal:0, noDrop:false, platformWidth:120, blockComplexity:18, name:"The Ruins", startMessage:"The last one! Good luck!", expCap:75}; this.blockData = new Dictionary(); this.blockData[-1] = []; this.blockData[-2] = []; this.blockData[-3] = []; this.blockData[1] = [5, 0, 3, 2, 6, 5, 3, 6, 4, 5, 1, 1, 5, 0, 0, 1, 0, 2, 4, 6, 1, 1, 2, 6, 4]; this.blockData[2] = [1, 5, 2, 0, 3, 1, 4, 5, 4, 6, 3, 1, 6, 2, 0]; this.blockData[3] = [5, 3, 7, 6, 5, 6, 7, 6, 2, 4, 4, 0, 3, 4, 7, 3, 5, 6, 5, 6, 5, 0, 7, 4, 3, 0, 5, 3, 5, 5, 1, 7, 6, 7, 4, 1, 3, 7, 1, 3, 2, 4, 7, 3, 3, 6, 2, 1, 7, 1]; this.blockData[4] = [5, 4, 0, 0, 6, 4, 2, 3, 5, 5, 1, 6, 3, 0, 4, 0, 6, 5, 1, 1, 0, 3, 4, 7, 3, 2, 5, 2, 6, 6]; this.blockData[5] = [4, 8, 5]; this.blockData[6] = [9, 8, 5, 3, 7, 5, 0, 6, 2, 3, 10, 1, 4, 5, 6, 6, 3, 7, 1, 1, 5, 4, 9, 6, 8, 3, 1, 5, 3, 6, 5, 4, 2, 4, 4, 5, 3, 0, 4, 2, 7, 7, 5, 8, 7, 10, 5, 10, 3, 5, 5, 7, 4, 6, 10, 1, 7, 3, 5, 5]; this.blockData[7] = [11, 5, 6, 9, 4, 1, 7, 3, 6, 2, 0, 6, 1, 2, 11, 3, 11, 6, 0, 4, 3, 0, 7, 5, 3, 5, 1, 9, 8, 2]; this.blockData[8] = [5, 6, 7, 3, 4, 3, 5, 10, 2, 1, 6, 4, 0, 2, 9, 4, 5, 8, 2, 1, 9, 5, 0, 3, 6, 2, 7, 6, 0, 6, 10, 6, 7, 1, 4, 4, 6, 7, 6, 9, 4, 7, 6, 2, 6, 1, 3, 1, 2, 2, 7, 6, 9, 8, 4, 0, 3, 2, 0, 10]; this.blockData[9] = [0, 2, 7, 7, 7]; this.blockData[10] = [9, 11, 5, 3, 6, 1, 2, 0, 7, 6, 0, 1, 3, 2, 1, 11, 8, 11, 0, 5, 1, 6, 1, 5, 0, 8, 6, 0, 10, 2, 7, 5, 3, 4, 1, 2, 3, 3, 0, 9, 8, 4, 1, 0, 11]; this.blockData[11] = [4, 7, 2, 4, 11, 13, 10, 7, 11, 9, 11, 3, 4, 0, 13, 7, 12, 8, 5, 13, 3, 9, 0, 13, 12, 0, 7, 12, 10, 13, 8, 10, 0, 4, 10, 0, 10, 6, 2, 8, 3, 6, 6, 7, 11, 13, 1, 5, 6, 3, 0, 10, 13, 4, 7, 11, 12, 2, 12, 0]; this.blockData[12] = [3, 5, 12, 12, 7, 8, 9, 13, 6, 1]; this.blockData[13] = [8, 8, 3, 10, 10, 1, 1]; this.blockData[14] = [6, 5, 8, 4, 6, 13, 1, 2, 5, 12, 4, 3, 2, 14, 2, 5, 6, 15, 0, 6, 1, 7, 3, 4, 11, 3, 5, 6, 0, 5, 1, 9, 8, 12, 7, 14, 2, 10, 1, 15, 1, 2, 12, 5, 2, 6, 11, 1, 6, 0, 9, 14, 1, 2, 6, 12, 9, 15, 4, 1, 1, 3, 13, 6, 10, 4, 12, 6, 3, 1]; this.blockData[15] = [3, 7, 15, 0, 2, 6, 1, 5, 2, 0, 14, 5, 0, 4, 7, 6, 2, 1, 4, 9, 2, 5, 3, 13, 2, 14, 6, 0, 6, 4, 10, 0, 6, 1, 0, 11, 3, 4, 1, 6, 2, 2, 3, 6, 14, 3, 3, 5, 12, 15, 10, 2, 15, 2, 15, 11, 3, 12, 7, 5]; this.blockData[16] = [5, 6, 15, 10, 16, 1, 4, 6]; this.blockData[17] = [0, 9, 5, 16, 2, 1, 6, 5, 4, 5, 7, 6, 15, 7, 2, 4, 10, 15, 1, 17, 5, 8, 16, 5, 6, 2, 7, 5, 11, 4, 12, 8, 4, 0, 2, 1, 9, 3, 3, 8, 3, 16, 5, 13, 6, 2, 17, 4, 7, 10, 1, 6, 1, 0, 13, 1, 6, 6, 5, 1, 5, 1, 13, 4, 0, 2, 10, 3, 16, 4, 0, 16, 0, 17, 11]; this.blockData[18] = [16, 10, 13, 19, 15, 7, 3, 7, 2, 18, 3, 5, 5, 0, 4, 5, 6, 13, 4, 18, 1, 3, 0, 2, 4, 11, 18, 5, 4, 2, 12, 0, 19, 2, 3, 2, 0, 8, 13, 15, 0, 10, 6, 4, 11, 0, 1, 6, 14, 11]; this.blockData[19] = [18, 19, 10, 10, 3, 0, 2, 6, 5, 4, 1, 3, 14, 5, 4, 1, 11, 3, 2, 0, 7, 9, 15, 2, 7, 13, 4, 2, 1, 3, 0, 4, 5, 14, 6, 2, 12, 17, 0, 3, 1, 2, 7, 9, 19, 5, 4, 15, 4, 12, 2, 9, 18, 9, 3, 11, 2, 15, 3, 16, 4, 6, 5, 2, 11, 16, 0, 8, 2, 5, 3, 1, 8, 1, 15, 0, 12, 0, 18, 5]; this.blockData[20] = [12, 13, 3, 5, 2, 6, 0, 1, 19, 4, 20, 2, 11, 7, 5, 15, 0, 5, 1, 20, 2, 6, 3, 7, 10, 9, 5, 8, 2, 18, 2, 9, 2, 16, 5, 5, 2, 6, 4, 17, 11, 9, 6, 2, 0, 12, 1, 5, 20, 7, 4, 0, 7, 7, 12, 20, 16, 9, 1, 2, 6, 14, 5, 7, 3, 3, 4, 4, 3, 0, 6, 16, 2, 5, 1]; this.blockData[21] = [5, 4, 2, 0, 6, 14, 16, 6, 3, 9, 4, 3, 2, 0, 6, 5, 16, 2, 2, 3, 11, 0, 10, 18, 0, 5, 7, 6, 3, 9, 8, 6, 5, 14, 1, 1, 2, 11, 0, 6, 20, 1, 2, 0, 16, 2, 3, 4, 5, 12, 18, 6, 15, 0, 4, 20, 6, 1, 18, 2, 7, 3, 9, 2, 13, 3, 4, 1, 5, 12, 0, 3, 2, 6, 0, 16, 5, 13, 14, 2]; this.blockData[22] = [22, 21, 21, 21, 21]; this.blockData[23] = [1, 0, 3, 4, 5, 9, 8, 0, 2, 4, 9, 3, 4, 7, 14, 5, 4, 5, 6, 4, 7, 2, 1, 5, 0, 17, 4, 12, 3, 3, 0, 2, 10, 3, 4, 17, 7, 6, 3, 5, 15, 2, 7, 1, 3, 6, 2, 0, 6, 4, 18, 2, 7, 17, 4, 1, 0, 6, 5, 7, 3, 2, 1, 0, 5, 2, 4, 20, 10, 16, 5, 3, 5, 4, 1]; this.blockData[24] = [17, 2, 5, 4, 3, 0, 2, 1, 21, 5, 4, 14, 6, 5, 0, 18, 24, 2, 0, 5, 4, 10, 1, 3, 23, 2, 4, 6, 2, 7, 2, 19, 6, 23, 2, 1, 3, 4, 13, 6, 0, 5, 11, 1, 20, 5, 10, 1, 2, 16, 3, 0, 4, 5, 1, 0, 19, 2, 22, 4, 3, 6, 2, 19, 6, 15, 12, 24, 10, 6, 17, 8, 21, 15, 20, 8, 0, 15, 6, 7, 1, 5, 8, 22, 6, 8, 3, 8, 23, 1]; } public function getBlockList(_arg1:int):Array{ if (((!((this.blockData[_arg1].length == this.levelData[_arg1].blocks))) && (wbSettingsManager.getInstance().getSettings("traces")))){ trace("!!!!!Warning BlockData does not match number of blocks!!!!"); }; return (this.blockData[_arg1]); } public function getLevelData(_arg1:int):Object{ return (this.levelData[_arg1]); } public function toString():String{ return ("LevelData"); } public static function getInstance():LevelData{ if (instance == null){ allowInstantiation = true; instance = new (LevelData); allowInstantiation = false; }; return (instance); } } }//package Game.Data
Section 146
//MenuData (Game.Data.MenuData) package Game.Data { import WBE.Managers.*; import WBE.States.*; import flash.utils.*; import Game.UI.*; public class MenuData { public var menus:Dictionary; private static var allowInstantiation:Boolean; private static var instance:MenuData; public function MenuData(){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use MenuData.getInstance() instead of new.")); }; var _local1:Array = [UI_HeightLine, UI_MaxHeightLine, UI_LevelSelectMap, UI_NextBlock, UI_ShopButton, UI_ShopOutput, UI_ShiftMove, UI_TextBalloonOutput, UI_ShopShiftOutput, UI_Tutor, UI_ShoppeEyes, UI_Detector]; this.menus = new Dictionary(); this.menus["main"] = new Dictionary(); this.menus["main"]["new"] = {label:"New game", type:"Button", action:"exit", exit:"new", index:1}; this.menus["main"]["load"] = {label:"Continue", type:"Button", action:"exit", exit:"continue", index:3, active:"existingSaveGame"}; this.menus["main"]["extra"] = {label:"Classic modes", type:"Button", action:"exit", exit:"extramodes", index:2}; this.menus["main"]["toWBSite"] = {type:"MCButton", action:"externalLink", tooltip:"To our website", url:"http://www.weirdbeard.nl/"}; this.menus["main"]["toArmorSite"] = {type:"MCButton", action:"externalLink", tooltip:"Play more games", url:"http://www.armorgames.com"}; this.menus["main"]["toSobchekSite"] = {type:"MCButton", action:"externalLink", tooltip:"Music by", url:"http://www.samekhrecords.com/"}; this.menus["main"]["to9MeterSite"] = {type:"MCButton", action:"externalLink", tooltip:"Art by", url:"http://www.9meter.nl/"}; this.menus["main"]["sound"] = {type:"AudioButton", mc:"soundButton", filterSet:"glowFilter", audioType:"mute", tooltip:"Toggle mute"}; this.menus["main"]["music"] = {type:"AudioButton", mc:"musicButton", filterSet:"glowFilter", audioType:"music", tooltip:"Toggle music"}; this.menus["main"]["howToPlay"] = {label:"How to play", type:"Button", action:"func", func:wbStateManager.getInstance().openInfoWindow, funcArgs:["HowToPlay"]}; if (wbSettingsManager.getInstance().getSettings("debug")){ this.menus["main"]["clearFlookie"] = {label:"Clear flookie", type:"Button", action:"func", func:wbDatabaseManager.getInstance().delFlookie}; }; this.menus["main"]["playMoreGames"] = {label:"Play more games", type:"Button", action:"externalLink", url:"http://www.armorgames.com", index:4}; this.menus["extra"] = new Dictionary(); this.menus["extra"]["easy"] = {label:"Easy", type:"Button", action:"exit", exit:"easy", index:1}; this.menus["extra"]["medium"] = {label:"Medium", type:"Button", action:"exit", exit:"medium", index:2}; this.menus["extra"]["hard"] = {label:"Hard", type:"Button", action:"exit", exit:"hard", index:3}; this.menus["extra"]["highscore"] = {label:"Highscores", type:"Button", action:"exit", exit:"highscore", index:4}; this.menus["extra"]["back"] = {label:"Back", type:"Button", action:"exit", exit:"back", index:5}; this.menus["extra"]["toWBSite"] = {type:"MCButton", action:"externalLink", tooltip:"To our website", url:"http://www.weirdbeard.nl/"}; this.menus["extra"]["toArmorSite"] = {type:"MCButton", action:"externalLink", tooltip:"Play more games", url:"http://www.armorgames.com"}; this.menus["extra"]["toSobchekSite"] = {type:"MCButton", action:"externalLink", tooltip:"Music by", url:"http://www.samekhrecords.com/"}; this.menus["extra"]["to9MeterSite"] = {type:"MCButton", action:"externalLink", tooltip:"Art by", url:"http://www.9meter.nl/"}; this.menus["extra"]["sound"] = {type:"AudioButton", mc:"soundButton", filterSet:"glowFilter", audioType:"mute", tooltip:"Toggle mute"}; this.menus["extra"]["music"] = {type:"AudioButton", mc:"musicButton", filterSet:"glowFilter", audioType:"music", tooltip:"Toggle music"}; this.menus["save"] = new Dictionary(); this.menus["save"]["slot1"] = {label:"Slot 1", slot:0, type:"SlotButton", action:"exit", exit:"save", index:1, confirm:true, confirmtext:"Are you sure? \n\n Your current save game will be deleted."}; this.menus["save"]["slot2"] = {label:"Slot 2", slot:1, type:"SlotButton", action:"exit", exit:"save", index:2, confirm:true, confirmtext:"Are you sure? \n\n Your current save game will be deleted."}; this.menus["save"]["slot3"] = {label:"Slot 3", slot:2, type:"SlotButton", action:"exit", exit:"save", index:3, confirm:true, confirmtext:"Are you sure? \n\n Your current save game will be deleted."}; this.menus["save"]["back"] = {label:"Back", type:"Button", action:"exit", exit:"back", index:4}; this.menus["save"]["toWBSite"] = {type:"MCButton", action:"externalLink", tooltip:"To our website", url:"http://www.weirdbeard.nl/"}; this.menus["save"]["toArmorSite"] = {type:"MCButton", action:"externalLink", tooltip:"Play more games", url:"http://www.armorgames.com"}; this.menus["save"]["toSobchekSite"] = {type:"MCButton", action:"externalLink", tooltip:"Music by", url:"http://www.samekhrecords.com/"}; this.menus["save"]["to9MeterSite"] = {type:"MCButton", action:"externalLink", tooltip:"Art by", url:"http://www.9meter.nl/"}; this.menus["save"]["sound"] = {type:"AudioButton", mc:"soundButton", filterSet:"glowFilter", audioType:"mute", tooltip:"Toggle mute"}; this.menus["save"]["music"] = {type:"AudioButton", mc:"musicButton", filterSet:"glowFilter", audioType:"music", tooltip:"Toggle music"}; this.menus["saveName"] = new Dictionary(); this.menus["saveName"]["name"] = {label:"Name", type:"Input", form:"saveName", focus:true, restrict:null, format:"input", validate:"obligatory", maxChars:12, id:"name"}; this.menus["saveName"]["send"] = {label:"Submit", type:"Button", action:"validate", validate:"saveName", keyBind:"enter", exit:"saveName"}; this.menus["saveName"]["back"] = {label:"Back", type:"Button", action:"exit", exit:"back", index:4}; this.menus["saveName"]["toWBSite"] = {type:"MCButton", action:"externalLink", tooltip:"To our website", url:"http://www.weirdbeard.nl/"}; this.menus["saveName"]["toArmorSite"] = {type:"MCButton", action:"externalLink", tooltip:"Play more games", url:"http://www.armorgames.com"}; this.menus["saveName"]["toSobchekSite"] = {type:"MCButton", action:"externalLink", tooltip:"Music by", url:"http://www.samekhrecords.com/"}; this.menus["saveName"]["to9MeterSite"] = {type:"MCButton", action:"externalLink", tooltip:"Art by", url:"http://www.9meter.nl/"}; this.menus["saveName"]["sound"] = {type:"AudioButton", mc:"soundButton", filterSet:"glowFilter", audioType:"mute", tooltip:"Toggle mute"}; this.menus["saveName"]["music"] = {type:"AudioButton", mc:"musicButton", filterSet:"glowFilter", audioType:"music", tooltip:"Toggle music"}; this.menus["load"] = new Dictionary(); this.menus["load"]["slot1"] = {label:"Slot 1", slot:0, type:"SlotButton", active:"existingSaveGame1", action:"exit", exit:"load", index:1}; this.menus["load"]["slot2"] = {label:"Slot 2", slot:1, type:"SlotButton", active:"existingSaveGame2", action:"exit", exit:"load", index:2}; this.menus["load"]["slot3"] = {label:"Slot 3", slot:2, type:"SlotButton", active:"existingSaveGame3", action:"exit", exit:"load", index:3}; this.menus["load"]["back"] = {label:"Back", type:"Button", action:"exit", exit:"back", index:4}; this.menus["load"]["toWBSite"] = {type:"MCButton", action:"externalLink", tooltip:"To our website", url:"http://www.weirdbeard.nl/"}; this.menus["load"]["toArmorSite"] = {type:"MCButton", action:"externalLink", tooltip:"Play more games", url:"http://www.armorgames.com"}; this.menus["load"]["toSobchekSite"] = {type:"MCButton", action:"externalLink", tooltip:"Music by", url:"http://www.samekhrecords.com/"}; this.menus["load"]["to9MeterSite"] = {type:"MCButton", action:"externalLink", tooltip:"Art by", url:"http://www.9meter.nl/"}; this.menus["load"]["sound"] = {type:"AudioButton", mc:"soundButton", filterSet:"glowFilter", audioType:"mute", tooltip:"Toggle mute"}; this.menus["load"]["music"] = {type:"AudioButton", mc:"musicButton", filterSet:"glowFilter", audioType:"music", tooltip:"Toggle music"}; this.menus["levelSelect"] = new Dictionary(); this.menus["levelSelect"]["levelSelectMap"] = {type:"LevelSelectMap", index:1}; this.menus["levelSelect"]["armor"] = {type:"Button", mc:"armorMiniButton", action:"externalLink", tooltip:"Play more games", url:"http://www.armorgames.com"}; this.menus["levelSelect"]["sound"] = {type:"AudioButton", mc:"soundButton", filterSet:"glowFilter", audioType:"mute", tooltip:"Toggle mute"}; this.menus["levelSelect"]["music"] = {type:"AudioButton", mc:"musicButton", filterSet:"glowFilter", audioType:"music", tooltip:"Toggle music"}; this.menus["levelSelect"]["back"] = {type:"Button", mc:"mainMenuButton", action:"exit", exit:"back"}; this.menus["levelSelect"]["previewsStatus"] = {type:"Output", format:"blocksLeft", varData:"formattedPreviews", index:5}; this.menus["levelSelect"]["livesStatus"] = {type:"Output", format:"blocksLeft", varData:"formattedLives", index:6}; this.menus["levelSelect"]["discardsStatus"] = {type:"Output", format:"blocksLeft", varData:"formattedDiscards", index:7}; this.menus["levelSelect"]["undosStatus"] = {type:"Output", format:"blocksLeft", varData:"formattedUndos", index:8}; this.menus["levelSelect"]["shiftMoveStatus"] = {type:"ShiftMove", index:9}; this.menus["levelSelect"]["completeStatus"] = {type:"Output", format:"blocksLeft", varData:"formattedGameCompletedPerc", tooltip:"Percentage of total gold earned", tooltipDelay:5, index:10}; this.menus["levelSelect"]["citiesStatus"] = {type:"Output", format:"blocksLeft", varData:"formattedCitiesCompleted", tooltip:"Number of towns completed", tooltipDelay:5, index:11}; this.menus["levelSelect"]["goldStatus"] = {type:"Output", format:"blocksLeft", varData:"formattedCredits", index:12}; this.menus["levelSelect"]["shoppeButton"] = {type:"MCButton", filterSet:"glowFilter", action:"gameMenu", tooltip:"Open shop", menuType:"Shop"}; this.menus["levelSelect"]["livesDetector"] = {type:"Detector", index:42, tooltip:"Number of Lives", tooltipDelay:5}; this.menus["levelSelect"]["undosDetector"] = {type:"Detector", index:43, tooltip:"Number of Undos", tooltipDelay:5}; this.menus["levelSelect"]["shiftMoveDetector"] = {type:"Detector", index:44, tooltip:"Fast move availability", tooltipDelay:5}; this.menus["levelSelect"]["discardsDetector"] = {type:"Detector", index:45, tooltip:"Number of Discards", tooltipDelay:5}; this.menus["levelSelect"]["goldDetector"] = {type:"Detector", index:48, tooltip:"Gold reserve", tooltipDelay:5}; this.menus["levelSelect"]["previewsDetector"] = {type:"Detector", index:49, tooltip:"Number of brick previews", tooltipDelay:5}; this.menus["gameover"] = new Dictionary(); this.menus["gameover"]["name"] = {label:"Name", type:"Input", form:"score", focus:true, restrict:null, format:"input", validate:"obligatory", maxChars:19, id:"name"}; this.menus["gameover"]["score"] = {label:"Score", type:"Output", filterSet:"outputFilter", format:"endScore", varData:"score"}; this.menus["gameover"]["send"] = {label:"Submit", type:"Button", action:"validate", validate:"score", keyBind:"enter", exit:"send"}; this.menus["gameover"]["back"] = {label:"Menu", type:"Button", action:"exit", exit:"back"}; this.menus["gameover"]["playAgain"] = {label:"Play Again", type:"Button", action:"exit", exit:"playAgain", index:1}; this.menus["submitscore"] = new Dictionary(); this.menus["submitscore"]["back"] = {label:"Main menu", type:"Button", action:"exit", exit:"main"}; this.menus["submitscore"]["playAgain"] = {label:"Play Again", type:"Button", action:"exit", exit:"playagain", index:1}; this.menus["submitscore"]["name"] = {label:"Name", type:"Input", form:"score", focus:true, restrict:null, format:"input", validate:"obligatory", maxChars:19, id:"name"}; this.menus["submitscore"]["score"] = {label:"Score", type:"Output", filterSet:"outputFilter", format:"endScore", varData:"score"}; this.menus["submitscore"]["send"] = {label:"Submit", type:"Button", action:"validate", validate:"score", keyBind:"enter", exit:"send"}; this.menus["showscore"] = new Dictionary(); this.menus["showscore"]["back"] = {label:"Main menu", type:"Button", action:"exit", exit:"back"}; this.menus["showscore"]["playAgain"] = {label:"Play Again", type:"Button", action:"exit", exit:"playAgain", index:1}; this.menus["showscore"]["highScoreList"] = {type:"HighScoreList", headerFormat:"highScoreHeader", columnFormat:"highScoreData", args:{listSize:10, gameType:"gameType"}}; this.menus["showscore"]["score"] = {label:"Score", type:"Output", filterSet:"outputFilter", varData:"score"}; this.menus["highScore"] = new Dictionary(); this.menus["highScore"]["easy"] = {label:"Easy", type:"Button", action:"exit", exit:"easy", index:1}; this.menus["highScore"]["medium"] = {label:"Medium", type:"Button", action:"exit", exit:"medium", index:2}; this.menus["highScore"]["hard"] = {label:"Hard", type:"Button", action:"exit", exit:"hard", index:3}; this.menus["highScore"]["back"] = {label:"Back", type:"Button", action:"exit", exit:"back", index:4}; this.menus["highScore1"] = new Dictionary(); this.menus["highScore1"]["back"] = {label:"Back", type:"Button", action:"exit", tooltip:"Back", exit:"back"}; this.menus["highScore1"]["easy"] = {label:"Easy", type:"Button", action:"exit", exit:"easy", index:1}; this.menus["highScore1"]["medium"] = {label:"Medium", type:"Button", action:"exit", exit:"medium", index:2}; this.menus["highScore1"]["hard"] = {label:"Hard", type:"Button", action:"exit", exit:"hard", index:3}; this.menus["highScore1"]["highScoreList"] = {label:"HighScoreList", type:"HighScoreList", headerFormat:"highScoreHeader", columnFormat:"highScoreData", args:{listSize:10, gameType:"gameType", value:"-1"}}; this.menus["highScore2"] = new Dictionary(); this.menus["highScore2"]["back"] = {label:"Back", type:"Button", action:"exit", tooltip:"Back", exit:"back"}; this.menus["highScore2"]["easy"] = {label:"Easy", type:"Button", action:"exit", exit:"easy", index:1}; this.menus["highScore2"]["medium"] = {label:"Medium", type:"Button", action:"exit", exit:"medium", index:2}; this.menus["highScore2"]["hard"] = {label:"Hard", type:"Button", action:"exit", exit:"hard", index:3}; this.menus["highScore2"]["highScoreList"] = {label:"HighScoreList", type:"HighScoreList", headerFormat:"highScoreHeader", columnFormat:"highScoreData", args:{listSize:10, gameType:"gameType", value:"-2"}}; this.menus["highScore3"] = new Dictionary(); this.menus["highScore3"]["back"] = {label:"Back", type:"Button", action:"exit", tooltip:"Back", exit:"back"}; this.menus["highScore3"]["easy"] = {label:"Easy", type:"Button", action:"exit", exit:"easy", index:1}; this.menus["highScore3"]["medium"] = {label:"Medium", type:"Button", action:"exit", exit:"medium", index:2}; this.menus["highScore3"]["hard"] = {label:"Hard", type:"Button", action:"exit", exit:"hard", index:3}; this.menus["highScore3"]["highScoreList"] = {label:"HighScoreList", type:"HighScoreList", headerFormat:"highScoreHeader", columnFormat:"highScoreData", args:{listSize:10, gameType:"gameType", value:"-3"}}; } public function toString():String{ return ("MenuData"); } public static function getInstance(_arg1:Object):MenuData{ if ((_arg1 is wbMenuState)){ if (instance == null){ allowInstantiation = true; instance = new (MenuData); allowInstantiation = false; }; return (instance); //unresolved jump }; wbStateManager.getInstance().error(("Unauthorized call of MenuData.getInstance by: " + _arg1)); return (null); } } }//package Game.Data
Section 147
//SettingsData (Game.Data.SettingsData) package Game.Data { import WBE.Managers.*; import flash.utils.*; import flash.text.*; import flash.filters.*; public class SettingsData { public var settings:Dictionary; public var urls:Dictionary; public var filterSets:Dictionary; public var points:Dictionary; public var textFormats:Dictionary; public var worldSettings:Dictionary; private static var allowInstantiation:Boolean; private static var instance:SettingsData; public function SettingsData(){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use SettingsData.getInstance() instead of new.")); }; this.settings = new Dictionary(); this.settings["debug"] = false; this.settings["traces"] = false; this.settings["sponsorIntro"] = false; this.settings["mochi"] = false; this.settings["gameName"] = "BrickWorld"; this.settings["checkForFlookie"] = true; this.settings["localDB"] = true; this.settings["logPriority"] = 0; this.settings["logTime"] = false; this.settings["logConsole"] = false; this.settings["logTrace"] = false; this.settings["allowedURLs"] = []; this.settings["libPath"] = "Assets/"; this.settings["nrOfLevels"] = 24; this.worldSettings = new Dictionary(); this.worldSettings["cyclical"] = false; this.worldSettings["width"] = 800; this.worldSettings["height"] = 500; this.worldSettings["doCollision"] = false; this.worldSettings["ghostMode"] = false; this.worldSettings["drawShadows"] = true; this.worldSettings["pixelShift"] = false; this.points = new Dictionary(); this.textFormats = new Dictionary(); this.textFormats["default"] = new TextFormat(); this.textFormats["default"].size = 20; this.textFormats["default"].color = 0; this.textFormats["default"].font = "Mezz Web Bold"; this.textFormats["default"].align = "center"; this.textFormats["default"].bold = false; this.textFormats["debug"] = new TextFormat(); this.textFormats["debug"].size = 10; this.textFormats["debug"].color = 0xFFFFFF; this.textFormats["debug"].font = "Times New Roman"; this.textFormats["debug"].align = "left"; this.textFormats["tooltip"] = new TextFormat(); this.textFormats["tooltip"].size = 10; this.textFormats["tooltip"].color = 0xFFFFFF; this.textFormats["tooltip"].font = "Times New Roman"; this.textFormats["descriptionBox"] = new TextFormat(); this.textFormats["descriptionBox"].size = 20; this.textFormats["descriptionBox"].color = 0; this.textFormats["descriptionBox"].font = "Mezz Web Bold"; this.textFormats["descriptionBox"].align = "center"; this.textFormats["descriptionBox"].bold = false; this.textFormats["heightLine"] = new TextFormat(); this.textFormats["heightLine"].size = 20; this.textFormats["heightLine"].color = 0xFFFFFF; this.textFormats["heightLine"].font = "Mezz Web Bold"; this.textFormats["heightLine"].align = "right"; this.textFormats["heightLine"].bold = false; this.textFormats["maxHeightLine"] = new TextFormat(); this.textFormats["maxHeightLine"].size = 20; this.textFormats["maxHeightLine"].color = 6645070; this.textFormats["maxHeightLine"].font = "Mezz Web Bold"; this.textFormats["maxHeightLine"].align = "left"; this.textFormats["maxHeightLine"].bold = false; this.textFormats["ingameObjectives"] = new TextFormat(); this.textFormats["ingameObjectives"].size = 21; this.textFormats["ingameObjectives"].color = 0xFFFFFF; this.textFormats["ingameObjectives"].font = "Mezz Web Bold"; this.textFormats["ingameObjectives"].align = "left"; this.textFormats["ingameObjectives"].bold = false; this.textFormats["highScoreHeader"] = new TextFormat(); this.textFormats["highScoreHeader"].size = 16; this.textFormats["highScoreHeader"].color = 0xFFFFFF; this.textFormats["highScoreHeader"].font = "Mezz Web Bold"; this.textFormats["highScoreHeader"].align = "left"; this.textFormats["highScoreHeader"].bold = false; this.textFormats["highScoreData"] = new TextFormat(); this.textFormats["highScoreData"].size = 14; this.textFormats["highScoreData"].color = 0; this.textFormats["highScoreData"].font = "Mezz Web Bold"; this.textFormats["highScoreData"].align = "left"; this.textFormats["highScoreData"].bold = false; this.textFormats["rank"] = new TextFormat(); this.textFormats["rank"].size = 20; this.textFormats["rank"].color = 0xD00000; this.textFormats["rank"].font = "Mezz Web Bold"; this.textFormats["rank"].align = "right"; this.textFormats["rank"].bold = false; this.textFormats["totalPlayers"] = new TextFormat(); this.textFormats["totalPlayers"].size = 16; this.textFormats["totalPlayers"].color = 0xFFFFFF; this.textFormats["totalPlayers"].font = "Mezz Web Bold"; this.textFormats["totalPlayers"].align = "left"; this.textFormats["totalPlayers"].bold = false; this.textFormats["input"] = new TextFormat(); this.textFormats["input"].size = 20; this.textFormats["input"].color = 0; this.textFormats["input"].font = "Mezz Web Bold"; this.textFormats["input"].align = "center"; this.textFormats["input"].bold = false; this.textFormats["blocksLeft"] = new TextFormat(); this.textFormats["blocksLeft"].size = 24; this.textFormats["blocksLeft"].color = 5323823; this.textFormats["blocksLeft"].font = "Mezz Web Bold"; this.textFormats["blocksLeft"].align = "left"; this.textFormats["medium"] = new TextFormat(); this.textFormats["medium"].size = 20; this.textFormats["medium"].color = 0; this.textFormats["medium"].font = "Adobe Garamond Pro Bold"; this.textFormats["medium"].align = "right"; this.textFormats["small"] = new TextFormat(); this.textFormats["small"].size = 15; this.textFormats["small"].color = 0; this.textFormats["small"].font = "Adobe Garamond Pro Bold"; this.textFormats["small"].align = "right"; this.textFormats["endScore"] = new TextFormat(); this.textFormats["endScore"].size = 70; this.textFormats["endScore"].color = 0; this.textFormats["endScore"].font = "Mezz Web Bold"; this.textFormats["endScore"].align = "center"; this.textFormats["skillName"] = new TextFormat(); this.textFormats["skillName"].size = 20; this.textFormats["skillName"].color = 5323823; this.textFormats["skillName"].font = "Mezz Web Bold"; this.textFormats["skillName"].align = "right"; this.textFormats["skillName"].bold = false; this.textFormats["shopNumber"] = new TextFormat(); this.textFormats["shopNumber"].size = 24; this.textFormats["shopNumber"].color = 5323823; this.textFormats["shopNumber"].font = "Mezz Web Bold"; this.textFormats["shopNumber"].align = "left"; this.textFormats["shopNumber"].bold = false; this.textFormats["balloonText"] = new TextFormat(); this.textFormats["balloonText"].size = 18; this.textFormats["balloonText"].color = 0; this.textFormats["balloonText"].font = "Mezz Web Bold"; this.textFormats["balloonText"].align = "center"; this.textFormats["balloonText"].bold = false; this.filterSets = new Dictionary(); this.filterSets["shadowFilter"] = [new DropShadowFilter(5, 45, 0, 1, 2, 2)]; this.filterSets["glowFilter"] = [new GlowFilter(0xFFFFFF, 1, 20, 20, 1, 1, false, false)]; this.urls = new Dictionary(); } public function toString():String{ return ("SettingsData"); } public static function getInstance(_arg1:Object):SettingsData{ if ((_arg1 is wbSettingsManager)){ if (instance == null){ allowInstantiation = true; instance = new (SettingsData); allowInstantiation = false; }; return (instance); //unresolved jump }; wbStateManager.getInstance().error(("Unauthorized call of settingsData.getInstance by: " + _arg1)); return (null); } } }//package Game.Data
Section 148
//StateData (Game.Data.StateData) package Game.Data { import WBE.Managers.*; import Game.States.*; import WBE.States.*; import flash.utils.*; public class StateData { public var states:Dictionary; public var startState:String;// = "main" private static var allowInstantiation:Boolean; private static var instance:StateData; public function StateData(){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use StateData.getInstance() instead of new.")); }; var _local1:Array = [GameState, wbMenuState, StoryState]; this.states = new Dictionary(); this.states["main"] = {type:"Menu", args:{id:"main"}, next:[["new", "new"], ["continue", "continue"], ["extramodes", "extra"]]}; this.states["extra"] = {type:"Menu", args:{id:"extra"}, next:[["easy", "easy"], ["medium", "medium"], ["hard", "hard"], ["highscore", "highscore2"], ["back", "main"]]}; this.states["new"] = {type:"flookie", args:{action:"slots"}, next:[["done", "save"], ["one", "save"], ["error", "main"]]}; this.states["continue"] = {type:"flookie", args:{action:"slots"}, next:[["done", "load"], ["one", "restoreprogress"], ["error", "main"]]}; this.states["load"] = {type:"Menu", args:{id:"load"}, next:[["load", "restoreprogress"], ["back", "main"]]}; this.states["save"] = {type:"Menu", args:{id:"save"}, next:[["save", "saveName"], ["back", "main"]]}; this.states["saveName"] = {type:"Menu", args:{id:"saveName"}, next:[["saveName", "storyIntro"], ["back", "save"]]}; this.states["restoreprogress"] = {type:"flookie", args:{action:"load"}, next:[["done", "level"], ["error", "level"]]}; this.states["saveprogress"] = {type:"flookie", args:{action:"save"}, next:[["done", "level"], ["error", "level"]]}; this.states["saveprogressend"] = {type:"flookie", args:{action:"save"}, next:[["done", "storyAfterLevel24"], ["error", "storyAfterLevel24"]]}; this.states["storyIntro"] = {type:"Story", args:{id:StoryData.INTRODUCTION, backgroundAnimation:"storyBgMC", skippable:true, autoContinue:false}, next:[["end", "saveprogress"]]}; this.states["storyAfterLevel1"] = {type:"Story", args:{id:StoryData.STORY_PART_1, backgroundAnimation:"storyBgMC", skippable:true, autoContinue:false}, next:[["end", "saveprogress"]]}; this.states["storyAfterLevel5"] = {type:"Story", args:{id:StoryData.STORY_PART_2, backgroundAnimation:"storyBgMC", skippable:true, autoContinue:false}, next:[["end", "saveprogress"]]}; this.states["storyAfterLevel12"] = {type:"Story", args:{id:StoryData.STORY_PART_3, backgroundAnimation:"storyBgMC", skippable:true, autoContinue:false}, next:[["end", "saveprogress"]]}; this.states["storyBeforeLevel24"] = {type:"Story", args:{id:StoryData.STORY_PART_4, backgroundAnimation:"storyFinalBgMC", skippable:true, autoContinue:false}, next:[["end", "play"]]}; this.states["storyAfterLevel24"] = {type:"Story", args:{id:StoryData.STORY_PART_5, backgroundAnimation:"storyFinalBgMC", skippable:true, autoContinue:false}, next:[["end", "congratulations"]]}; this.states["congratulations"] = {type:"Story", args:{id:StoryData.CONGRATULATIONS, backgroundAnimation:"creditsBgMC", skippable:false, autoContinue:false}, next:[["end", "level"]]}; this.states["level"] = {type:"Menu", args:{id:"levelSelect"}, next:[["play", "play"], ["playLevel24", "storyBeforeLevel24"], ["back", "main"], ["brickintro", "brickintro"]]}; this.states["brickintro"] = {type:"Story", args:{id:"brickIntro", skippable:true, autoContinue:true, brickIntro:true}, next:[["end", "play"], ["next", "brickintro"], ["lastLevel", "storyBeforeLevel24"]]}; this.states["play"] = {type:"Game", args:{mode:"Play"}, next:[["back", "main"], ["reset", "play"], ["levelDone", "saveprogress"], ["gameover", "saveprogress"], ["story1", "storyAfterLevel1"], ["story2", "storyAfterLevel5"], ["story3", "storyAfterLevel12"], ["story4", "storyBeforeLevel24"], ["story5", "saveprogressend"]]}; this.states["easy"] = {type:"Game", args:{mode:"Extra", levelNumber:-1}, next:[["back", "main"], ["reset", "easy"], ["gameover", "submitscore"], ["levelDone", "submitscore"]]}; this.states["medium"] = {type:"Game", args:{mode:"Extra", levelNumber:-2}, next:[["back", "main"], ["reset", "medium"], ["gameover", "submitscore"], ["levelDone", "submitscore"]]}; this.states["hard"] = {type:"Game", args:{mode:"Extra", levelNumber:-3}, next:[["back", "main"], ["reset", "hard"], ["gameover", "submitscore"], ["levelDone", "submitscore"]]}; this.states["gameover"] = {type:"Menu", args:{id:"gameover"}, next:[["back", "main"], ["playAgain", "play"], ["send", "writescore"]]}; this.states["submitscore"] = {type:"Menu", args:{id:"submitscore"}, next:[["send", "writescore"], ["playagain", "extra"], ["main", "main"]]}; this.states["writescore"] = {type:"flookie", args:{action:"writescore", gameType:"gameType"}, next:[["done", "showscore"], ["error", "submitScore"]]}; this.states["showscore"] = {type:"Menu", args:{id:"showscore"}, next:[["back", "main"], ["playAgain", "extra"]]}; this.states["highscore"] = {type:"Menu", args:{id:"highScore"}, next:[["back", "extra"], ["easy", "highscore1"], ["medium", "highscore2"], ["hard", "highscore3"]]}; this.states["highscore1"] = {type:"Menu", args:{id:"highScore1"}, next:[["back", "extra"], ["easy", "highscore1"], ["medium", "highscore2"], ["hard", "highscore3"]]}; this.states["highscore2"] = {type:"Menu", args:{id:"highScore2"}, next:[["back", "extra"], ["easy", "highscore1"], ["medium", "highscore2"], ["hard", "highscore3"]]}; this.states["highscore3"] = {type:"Menu", args:{id:"highScore3"}, next:[["back", "extra"], ["easy", "highscore1"], ["medium", "highscore2"], ["hard", "highscore3"]]}; } public function removeInstance():void{ } public function toString():String{ return ("StateData"); } public static function getInstance(_arg1:Object):StateData{ if ((_arg1 is wbStateManager)){ if (instance == null){ allowInstantiation = true; instance = new (StateData); allowInstantiation = false; }; return (instance); //unresolved jump }; wbStateManager.getInstance().error(("Unauthorized call of StateData.getInstance by: " + _arg1)); return (null); } } }//package Game.Data
Section 149
//StoryData (Game.Data.StoryData) package Game.Data { import flash.utils.*; public class StoryData { private var storyData:Dictionary; public static var HARRY:String = "harry"; public static var ANGRY:String = "angry"; private static var allowInstantiation:Boolean; public static var PUSHY:String = "pushy"; public static var USER:String = "user"; public static var LEFT:String = "left"; public static var STORY_PART_1:String = "storyPart1"; public static var STORY_PART_2:String = "storyPart2"; public static var STORY_PART_3:String = "storyPart3"; public static var STORY_PART_4:String = "storyPart4"; public static var OLDMAN:String = "larry"; public static var HAPPY:String = "happy"; public static var STORY_PART_5:String = "storyPart5"; public static var EVIL:String = "evil"; private static var instance:StoryData; public static var INTRODUCTION:String = "introduction"; public static var DEAD:String = "dead"; public static var AUTO:String = "auto"; public static var PLAIN:String = "plain"; public static var CONGRATULATIONS:String = "congratulations"; public static var SURPRISED:String = "surprised"; public static var RIGHT:String = "right"; public static var SAD:String = "sad"; public static var GARRY:String = "garry"; public function StoryData(){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use StoryData.getInstance() instead of new.")); }; this.storyData = new Dictionary(); this.storyData[INTRODUCTION] = [{character:OLDMAN, expression:HAPPY, location:RIGHT, proceed:USER, text:"The land of Brickonia was a joyful place, home of the best builders in the new world."}, {character:OLDMAN, expression:SAD, location:RIGHT, proceed:USER, text:"Under the rule of king Barry it thrived, until that fateful day."}, {character:OLDMAN, expression:ANGRY, location:RIGHT, proceed:USER, text:"That day the darkness came and destroyed the beautiful land of Brickonia."}, {character:OLDMAN, expression:HAPPY, location:RIGHT, proceed:USER, text:"20 years have passed since then, but there’s a shimmer of light on the horizon."}, {character:OLDMAN, expression:PLAIN, location:RIGHT, proceed:USER, text:"Excuse me."}, {character:OLDMAN, expression:PUSHY, location:RIGHT, proceed:USER, text:"Garry, GARRY, wake up.."}, {character:OLDMAN, expression:PLAIN, location:RIGHT, proceed:AUTO, text:""}, {character:GARRY, expression:SURPRISED, location:LEFT, proceed:USER, text:"Huh?"}, {character:OLDMAN, expression:PUSHY, location:RIGHT, proceed:USER, text:"Wake up, it’s time, the time is now, this is the moment, no time to waste!"}, {character:OLDMAN, expression:PLAIN, location:RIGHT, proceed:AUTO, text:""}, {character:GARRY, expression:SURPRISED, location:LEFT, proceed:USER, text:"What!? Who are you? What are you talking about?"}, {character:OLDMAN, expression:PUSHY, location:RIGHT, proceed:USER, text:"No time, here they come! Hurry to the town, I’ll explain on the way!"}]; this.storyData[STORY_PART_1] = [{character:GARRY, expression:PLAIN, location:RIGHT, proceed:AUTO, text:""}, {character:OLDMAN, expression:PLAIN, location:LEFT, proceed:USER, text:"You did great Garry! But we have to move on."}, {character:OLDMAN, expression:PUSHY, location:LEFT, proceed:USER, text:"You have to reach the ruins of Castle Brickonia to rid this land of the shadows. So it is written."}, {character:OLDMAN, expression:PLAIN, location:LEFT, proceed:AUTO, text:""}, {character:GARRY, expression:SURPRISED, location:RIGHT, proceed:USER, text:"But how, the castle is on the other side of the map. We cannot travel through the shadows."}, {character:GARRY, expression:PLAIN, location:RIGHT, proceed:AUTO, text:""}, {character:OLDMAN, expression:HAPPY, location:LEFT, proceed:USER, text:"Look around, now that you have built your first tower, the light is spreading."}, {character:OLDMAN, expression:HAPPY, location:LEFT, proceed:USER, text:"By building more towers you can spread the light and move forward. Do you understand?"}, {character:OLDMAN, expression:PLAIN, location:LEFT, proceed:AUTO, text:""}, {character:GARRY, expression:SURPRISED, location:RIGHT, proceed:USER, text:"I guess so…"}, {character:GARRY, expression:PLAIN, location:RIGHT, proceed:AUTO, text:""}, {character:OLDMAN, expression:PUSHY, location:LEFT, proceed:USER, text:"Good, now go forth and restore the light Garry!"}]; this.storyData[STORY_PART_2] = [{character:GARRY, expression:PLAIN, location:RIGHT, proceed:AUTO, text:""}, {character:OLDMAN, expression:HAPPY, location:LEFT, proceed:USER, text:"You’re doing very well Garry! Even better than I expected!"}, {character:OLDMAN, expression:PLAIN, location:LEFT, proceed:AUTO, text:""}, {character:GARRY, expression:SAD, location:RIGHT, proceed:USER, text:"But it’s all so hard."}, {character:GARRY, expression:PLAIN, location:RIGHT, proceed:AUTO, text:""}, {character:OLDMAN, expression:HAPPY, location:LEFT, proceed:USER, text:"It’s a tough journey, but you can get help."}, {character:GARRY, expression:SURPRISED, location:RIGHT, proceed:AUTO, text:""}, {character:OLDMAN, expression:PLAIN, location:LEFT, proceed:USER, text:"You can collect Gold in every town, take a good look at the information for each town."}, {character:GARRY, expression:PLAIN, location:RIGHT, proceed:AUTO, text:""}, {character:OLDMAN, expression:HAPPY, location:LEFT, proceed:USER, text:"Use your Gold to buy helpful upgrades in the shoppe. You can visit the shoppe from the map."}, {character:OLDMAN, expression:HAPPY, location:LEFT, proceed:USER, text:"You can always revisit a town to try and collect the maximum amount of Gold."}, {character:GARRY, expression:HAPPY, location:RIGHT, proceed:AUTO, text:""}, {character:GARRY, expression:PLAIN, location:RIGHT, proceed:USER, text:"Thank you, but why me? Why do I have to go on such a troublesome journey?"}, {character:OLDMAN, expression:PLAIN, location:LEFT, proceed:USER, text:"I will tell you more later, but for now, we have to keep going."}]; this.storyData[STORY_PART_3] = [{character:GARRY, expression:HAPPY, location:RIGHT, proceed:AUTO, text:""}, {character:OLDMAN, expression:HAPPY, location:LEFT, proceed:USER, text:"Well done so far Garry, I think now is a good time for some more Brickonian history. "}, {character:GARRY, expression:SAD, location:RIGHT, proceed:AUTO, text:""}, {character:OLDMAN, expression:SAD, location:LEFT, proceed:USER, text:"A prophecy foretold of a man who would fill the world with shadows and kill the noble King Barry’s first born, the next ruler of Brickonia."}, {character:GARRY, expression:SURPRISED, location:RIGHT, proceed:AUTO, text:""}, {character:OLDMAN, expression:PUSHY, location:LEFT, proceed:USER, text:"You are his son, Garry of Barry of Brickonia, you can bring back the light in this land."}, {character:OLDMAN, expression:HAPPY, location:LEFT, proceed:AUTO, text:""}, {character:GARRY, expression:SURPRISED, location:RIGHT, proceed:USER, text:"Who? Me! I’m just a farmer's boy!"}, {character:GARRY, expression:PLAIN, location:RIGHT, proceed:AUTO, text:""}, {character:OLDMAN, expression:PLAIN, location:LEFT, proceed:USER, text:"No Garry, you are King Barry’s son. 99 years have past since the prophecy, and now it is time for you to fulfill your destiny. "}, {character:OLDMAN, expression:ANGRY, location:LEFT, proceed:USER, text:"Your father has hidden you to protect you from evil, a long time ago. I have been searching for you ever since the king died."}, {character:OLDMAN, expression:PLAIN, location:LEFT, proceed:AUTO, text:""}, {character:GARRY, expression:ANGRY, location:RIGHT, proceed:USER, text:"Why me? Why do I have to do this?"}, {character:OLDMAN, expression:ANGRY, location:LEFT, proceed:USER, text:"Because you are the only one who can get rid of this cursed darkness. Only you possess the power."}, {character:OLDMAN, expression:PLAIN, location:LEFT, proceed:AUTO, text:""}, {character:GARRY, expression:ANGRY, location:RIGHT, proceed:USER, text:"How, mysterious old man, tell me how?\t"}, {character:GARRY, expression:PLAIN, location:RIGHT, proceed:AUTO, text:""}, {character:OLDMAN, expression:ANGRY, location:LEFT, proceed:USER, text:"By building a tower of light on the ruins of Castle Brickonia you can get rid of the shadows and get rid of the evil dude forever."}]; this.storyData[STORY_PART_4] = [{character:GARRY, expression:ANGRY, location:LEFT, proceed:AUTO, text:""}, {character:HARRY, expression:HAPPY, location:RIGHT, proceed:USER, text:"Garry, didn’t expect to see you here so soon."}, {character:GARRY, expression:SURPRISED, location:LEFT, proceed:USER, text:"Why do you know my name?"}, {character:HARRY, expression:EVIL, location:RIGHT, proceed:USER, text:"Oh Garry, I am your brother, Harry."}, {character:GARRY, expression:SURPRISED, location:LEFT, proceed:USER, text:"..."}, {character:HARRY, expression:EVIL, location:RIGHT, proceed:USER, text:"Father locked me away in a tower where I lived for 20 years waiting for my revenge. When I finally broke free I destroyed every tower I could find."}, {character:OLDMAN, expression:PLAIN, location:RIGHT, proceed:AUTO, text:""}, {character:GARRY, expression:ANGRY, location:LEFT, proceed:USER, text:"Is this true? "}, {character:OLDMAN, expression:SAD, location:RIGHT, proceed:USER, text:"I am afraid so Garry, but you have to face your demons."}]; this.storyData[STORY_PART_5] = [{character:HARRY, expression:ANGRY, location:RIGHT, proceed:USER, text:"Hahahaha! You cannot stop me, I will tear this tower down!"}, {character:HARRY, expression:EVIL, location:RIGHT, proceed:AUTO, text:""}, {character:GARRY, expression:ANGRY, location:LEFT, proceed:USER, text:"Noo, Harry, don't!"}, {character:HARRY, expression:DEAD, location:RIGHT, proceed:USER, text:""}, {character:GARRY, expression:SAD, location:LEFT, proceed:USER, text:"Nooooooooo! I’m all alone now...."}, {character:GARRY, expression:ANGRY, location:LEFT, proceed:AUTO, text:""}, {character:OLDMAN, expression:SAD, location:RIGHT, proceed:USER, text:"Don't be so sad Garry, Harry was a troubled boy. And you are NOT alone"}, {character:GARRY, expression:SURPRISED, location:LEFT, proceed:AUTO, text:""}, {character:OLDMAN, expression:PLAIN, location:RIGHT, proceed:USER, text:"I never told you this, but King Barry ALSO had a brother."}, {character:OLDMAN, expression:PUSHY, location:RIGHT, proceed:USER, text:"That’s right Garry, I am your UNCLE LARRY!"}, {character:GARRY, expression:HAPPY, location:LEFT, proceed:AUTO, text:""}, {character:OLDMAN, expression:HAPPY, location:RIGHT, proceed:USER, text:""}]; } public function getStory(_arg1:String):Array{ return (this.storyData[_arg1]); } public function toString():String{ return ("StoryData"); } public static function getInstance():StoryData{ if (instance == null){ allowInstantiation = true; instance = new (StoryData); allowInstantiation = false; }; return (instance); } } }//package Game.Data
Section 150
//VarData (Game.Data.VarData) package Game.Data { import WBE.Managers.*; import flash.utils.*; public class VarData { private var possibleExperience:int;// = 0 public var vars:Dictionary; public var forms:Dictionary; public var varFunctions:Dictionary; private static var allowInstantiation:Boolean; private static var instance:VarData; public function VarData(){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use VarData.getInstance() instead of new.")); }; this.vars = new Dictionary(); this.vars["blocks"] = {value:0, type:int}; this.vars["maxHeight"] = {value:0, type:Number}; this.vars["curHeight"] = {value:0, type:Number}; this.vars["currentBlock"] = {value:0, type:int}; this.vars["blocksInTower"] = {value:0, type:int}; this.vars["difficulty"] = {value:0, type:int}; this.vars["discardHint"] = {value:2, type:int}; this.vars["zoomHint"] = {value:2, type:int}; this.vars["allBricksSaved"] = {value:true, type:Boolean}; this.vars["nextBlockID"] = {value:0, type:int}; this.vars["blockList"] = {value:[], type:Array}; this.vars["difficulty"] = {value:0, type:int}; this.vars["gravity"] = {value:10, type:Number}; this.vars["towerHeightIndex"] = {value:100, type:int}; this.vars["towerHeightMark0"] = {value:250, type:int}; this.vars["towerHeightMark1"] = {value:500, type:int}; this.vars["towerHeightMark2"] = {value:750, type:int}; this.vars["towerHeightMark3"] = {value:1000, type:int}; this.vars["towerHeightMark4"] = {value:1000, type:int}; this.vars["bricksSavedIndex"] = {value:0, type:int}; this.vars["bricksSavedMark0"] = {value:33, type:int}; this.vars["bricksSavedMark1"] = {value:66, type:int}; this.vars["bricksSavedMark2"] = {value:99, type:int}; this.vars["currentWorld"] = {value:1, type:int}; this.vars["currentLevel"] = {value:1, type:int}; this.vars["heightGoal"] = {value:0, type:int}; this.vars["brickGoal"] = {value:0, type:int}; this.vars["noDrop"] = {value:false, type:Boolean}; this.vars["descriptionBoxText"] = {value:"", type:String}; this.vars["inGameTextBalloonText"] = {value:"", type:String}; this.vars["inGameTextBalloonShowTime"] = {value:0, type:Number}; this.vars["visibleNextBlock_1"] = {value:true, type:Boolean}; this.vars["visibleNextBlock_2"] = {value:false, type:Boolean}; this.vars["visibleNextBlock_3"] = {value:false, type:Boolean}; this.vars["visibleNextBlock_4"] = {value:false, type:Boolean}; this.vars["visibleNextBlock_5"] = {value:false, type:Boolean}; this.vars["discardsLeft"] = {value:0, type:int}; this.vars["undosLeft"] = {value:0, type:int}; this.vars["livesLeft"] = {value:10, type:int}; this.vars["discardsDescription"] = {value:"Discards: \nYou can discard falling blocks that you don't like by pressing 'c'. This will prevent you from losing lives.", type:String}; this.vars["undosDescription"] = {value:"Undos: \nBy pressing the 'v' button, you can remove the last placed Brick.", type:String}; this.vars["livesDescription"] = {value:"Lives: \nDetermines how many bricks are allowed to drop from your tower in each level.", type:String}; this.vars["previewsDescription"] = {value:"Previews: \nYou can see which bricks will be coming up by buying more previews.", type:String}; this.vars["shiftMoveDescription"] = {value:"Fast Move: \nBy holding the 'shift' button you can move your brick faster to the left or right. Useful for nudging a block into place.", type:String}; this.vars["discardsName"] = {value:"Discards", type:String}; this.vars["undosName"] = {value:"Undos", type:String}; this.vars["livesName"] = {value:"Lives", type:String}; this.vars["previewsName"] = {value:"Previews", type:String}; this.vars["shiftMoveName"] = {value:"Fast Move", type:String}; this.vars["discardsCurrentLevel"] = {value:0, type:int}; this.vars["undosCurrentLevel"] = {value:0, type:int}; this.vars["livesCurrentLevel"] = {value:0, type:int}; this.vars["previewsCurrentLevel"] = {value:0, type:int}; this.vars["shiftMoveCurrentLevel"] = {value:0, type:int}; this.vars["tutorState"] = {value:"idle", type:String}; this.vars["tutorStateHasChanged"] = {value:true, type:Boolean}; this.vars["discardsLevels"] = {value:[3, 6, 9, 12, 15, 20], type:Array}; this.vars["undosLevels"] = {value:[0, 1, 2, 3, 4, 5], type:Array}; this.vars["livesLevels"] = {value:[10, 15, 20, 25, 30, 35], type:Array}; this.vars["previewsLevels"] = {value:[1, 2, 3, 4, 5], type:Array}; this.vars["shiftMoveLevels"] = {value:[false, true], type:Array}; this.vars["discardsCosts"] = {value:[10, 20, 40, 80, 160], type:Array}; this.vars["undosCosts"] = {value:[10, 20, 40, 80, 160], type:Array}; this.vars["livesCosts"] = {value:[10, 20, 40, 80, 160], type:Array}; this.vars["previewsCosts"] = {value:[10, 25, 50, 100], type:Array}; this.vars["shiftMoveCosts"] = {value:[50], type:Array}; this.vars["creditsSpent"] = {value:0, type:int}; this.vars["existingSaveGame1"] = {value:false, type:Boolean}; this.vars["existingSaveGame2"] = {value:false, type:Boolean}; this.vars["existingSaveGame3"] = {value:false, type:Boolean}; this.vars["extraDescription"] = {value:"min:20", type:String}; this.vars["levelPassed_1"] = {value:false, type:Boolean}; this.vars["levelPassed_2"] = {value:false, type:Boolean}; this.vars["levelPassed_3"] = {value:false, type:Boolean}; this.vars["levelPassed_4"] = {value:false, type:Boolean}; this.vars["levelPassed_5"] = {value:false, type:Boolean}; this.vars["levelPassed_6"] = {value:false, type:Boolean}; this.vars["levelPassed_7"] = {value:false, type:Boolean}; this.vars["levelPassed_8"] = {value:false, type:Boolean}; this.vars["levelPassed_9"] = {value:false, type:Boolean}; this.vars["levelPassed_10"] = {value:false, type:Boolean}; this.vars["levelPassed_11"] = {value:false, type:Boolean}; this.vars["levelPassed_12"] = {value:false, type:Boolean}; this.vars["levelPassed_13"] = {value:false, type:Boolean}; this.vars["levelPassed_14"] = {value:false, type:Boolean}; this.vars["levelPassed_15"] = {value:false, type:Boolean}; this.vars["levelPassed_16"] = {value:false, type:Boolean}; this.vars["levelPassed_17"] = {value:false, type:Boolean}; this.vars["levelPassed_18"] = {value:false, type:Boolean}; this.vars["levelPassed_19"] = {value:false, type:Boolean}; this.vars["levelPassed_20"] = {value:false, type:Boolean}; this.vars["levelPassed_21"] = {value:false, type:Boolean}; this.vars["levelPassed_22"] = {value:false, type:Boolean}; this.vars["levelPassed_23"] = {value:false, type:Boolean}; this.vars["levelPassed_24"] = {value:false, type:Boolean}; this.vars["levelOpened_1"] = {value:true, type:Boolean}; this.vars["levelOpened_2"] = {value:false, type:Boolean}; this.vars["levelOpened_3"] = {value:false, type:Boolean}; this.vars["levelOpened_4"] = {value:false, type:Boolean}; this.vars["levelOpened_5"] = {value:false, type:Boolean}; this.vars["levelOpened_6"] = {value:false, type:Boolean}; this.vars["levelOpened_7"] = {value:false, type:Boolean}; this.vars["levelOpened_8"] = {value:false, type:Boolean}; this.vars["levelOpened_9"] = {value:false, type:Boolean}; this.vars["levelOpened_10"] = {value:false, type:Boolean}; this.vars["levelOpened_11"] = {value:false, type:Boolean}; this.vars["levelOpened_12"] = {value:false, type:Boolean}; this.vars["levelOpened_13"] = {value:false, type:Boolean}; this.vars["levelOpened_14"] = {value:false, type:Boolean}; this.vars["levelOpened_15"] = {value:false, type:Boolean}; this.vars["levelOpened_16"] = {value:false, type:Boolean}; this.vars["levelOpened_17"] = {value:false, type:Boolean}; this.vars["levelOpened_18"] = {value:false, type:Boolean}; this.vars["levelOpened_19"] = {value:false, type:Boolean}; this.vars["levelOpened_20"] = {value:false, type:Boolean}; this.vars["levelOpened_21"] = {value:false, type:Boolean}; this.vars["levelOpened_22"] = {value:false, type:Boolean}; this.vars["levelOpened_23"] = {value:false, type:Boolean}; this.vars["levelOpened_24"] = {value:false, type:Boolean}; this.vars["experience_1"] = {value:0, type:int}; this.vars["experience_2"] = {value:0, type:int}; this.vars["experience_3"] = {value:0, type:int}; this.vars["experience_4"] = {value:0, type:int}; this.vars["experience_5"] = {value:0, type:int}; this.vars["experience_6"] = {value:0, type:int}; this.vars["experience_7"] = {value:0, type:int}; this.vars["experience_8"] = {value:0, type:int}; this.vars["experience_9"] = {value:0, type:int}; this.vars["experience_10"] = {value:0, type:int}; this.vars["experience_11"] = {value:0, type:int}; this.vars["experience_12"] = {value:0, type:int}; this.vars["experience_13"] = {value:0, type:int}; this.vars["experience_14"] = {value:0, type:int}; this.vars["experience_15"] = {value:0, type:int}; this.vars["experience_16"] = {value:0, type:int}; this.vars["experience_17"] = {value:0, type:int}; this.vars["experience_18"] = {value:0, type:int}; this.vars["experience_19"] = {value:0, type:int}; this.vars["experience_20"] = {value:0, type:int}; this.vars["experience_21"] = {value:0, type:int}; this.vars["experience_22"] = {value:0, type:int}; this.vars["experience_23"] = {value:0, type:int}; this.vars["experience_24"] = {value:0, type:int}; this.vars["progressSaved"] = {value:false, type:Boolean}; this.vars["shownBrickIntro"] = {value:0, type:int}; this.varFunctions = new Dictionary(); this.varFunctions["currentLevel"] = getCurrentLevel; this.varFunctions["realCurHeight"] = getCurHeight; this.varFunctions["realMaxHeight"] = getMaxHeight; this.varFunctions["playerLevel"] = getPlayerLevel; this.varFunctions["credits"] = getCredits; this.varFunctions["experience"] = getExperience; this.varFunctions["bricksToGo"] = getBricksToGo; this.varFunctions["goalText"] = getGoalText; this.varFunctions["gameCompletedPerc"] = getGameCompletedPerc; this.varFunctions["citiesCompleted"] = getCitiesCompleted; this.varFunctions["formattedGameCompletedPerc"] = getFormattedGameCompletedPerc; this.varFunctions["formattedCitiesCompleted"] = getFormattedCitiesCompleted; this.varFunctions["formattedCredits"] = getFormattedCredits; this.varFunctions["formattedLives"] = getFormattedLives; this.varFunctions["formattedUndos"] = getFormattedUndos; this.varFunctions["formattedDiscards"] = getFormattedDiscards; this.varFunctions["formattedPreviews"] = getFormattedPreviews; this.varFunctions["inLevelProgress"] = getInLevelProgress; this.forms = new Dictionary(); this.forms["score"] = new Dictionary(); this.forms["score"]["name"] = ""; this.forms["saveName"] = new Dictionary(); this.forms["saveName"]["name"] = ""; this.forms["register"] = new Dictionary(); this.forms["register"]["firstName"] = ""; this.forms["register"]["surName"] = ""; this.forms["register"]["sex"] = ""; this.forms["register"]["email"] = ""; this.forms["register"]["conditions"] = ""; this.possibleExperience = 0; var _local1:int = wbSettingsManager.getInstance().getSettings("nrOfLevels"); var _local2:Number = 1; while (_local2 <= _local1) { if (LevelData.getInstance().getLevelData(_local2).experience){ this.possibleExperience = (this.possibleExperience + LevelData.getInstance().getLevelData(_local2).experience); } else { if (LevelData.getInstance().getLevelData(_local2).expCap){ this.possibleExperience = (this.possibleExperience + LevelData.getInstance().getLevelData(_local2).expCap); } else { this.possibleExperience = (this.possibleExperience + LevelData.getInstance().getLevelData(_local2).blocks); }; }; _local2++; }; } private function getCurrentLevel():String{ return ((("" + wbVarManager.getInstance().getVar("levelNr")) + " / 10")); } private function getFormattedCredits():String{ var _local1:Number = wbVarManager.getInstance().getVar("credits"); return (String(_local1)); } private function getGameCompletedPerc():int{ var _local1:int = wbSettingsManager.getInstance().getSettings("nrOfLevels"); var _local2:int; var _local3:Number = 1; while (_local3 <= _local1) { _local2 = (_local2 + wbVarManager.getInstance().getVar(("experience_" + _local3))); _local3++; }; return (Math.ceil(((_local2 / this.possibleExperience) * 100))); } private function getCitiesCompleted():int{ var _local1:int = wbSettingsManager.getInstance().getSettings("nrOfLevels"); var _local2:Number = 0; var _local3:Number = 1; while (_local3 <= _local1) { if (wbVarManager.getInstance().getVar(("levelPassed_" + _local3))){ _local2++; }; _local3++; }; return (_local2); } private function getCurHeight():Number{ return (roundToOneDigit((wbVarManager.getInstance().getVar("curHeight") / 2))); } private function getGoalText():String{ var _local1 = ""; var _local2:Object = LevelData.getInstance().getLevelData(wbVarManager.getInstance().getVar("currentLevel")); if (_local2.puzzle){ _local1 = (("- Use all bricks to solve this puzzle\n- Do not exceed height " + (wbVarManager.getInstance().getVar("heightGoal") / 2)) + ""); } else { if (wbVarManager.getInstance().getVar("heightGoal")){ _local1 = (_local1 + (("- Reach height " + (wbVarManager.getInstance().getVar("heightGoal") / 2)) + "\n")); }; if (wbVarManager.getInstance().getVar("brickGoal")){ _local1 = (_local1 + (("- Build a tower consisting of " + wbVarManager.getInstance().getVar("brickGoal")) + " bricks\n")); }; if (wbVarManager.getInstance().getVar("noDrop")){ _local1 = (_local1 + "- Don't drop any!\n"); }; }; return (_local1); } private function getFormattedPreviews():String{ return (String(wbVarManager.getInstance().getVar("previewsLevels")[wbVarManager.getInstance().getVar("previewsCurrentLevel")])); } private function getFormattedGameCompletedPerc():String{ return ((("complete: " + this.getGameCompletedPerc()) + "%")); } private function getFormattedCitiesCompleted():String{ var _local1:int = wbSettingsManager.getInstance().getSettings("nrOfLevels"); return (((("towns: " + this.getCitiesCompleted()) + "/") + _local1)); } private function getExperience():int{ return (wbVarManager.getInstance().getVar(("experience_" + wbVarManager.getInstance().getVar("currentLevel")))); } private function getFormattedLives():String{ return (String(wbVarManager.getInstance().getVar("livesLevels")[wbVarManager.getInstance().getVar("livesCurrentLevel")])); } private function getCredits():int{ var _local1:int; var _local2 = 1; while (_local2 < wbSettingsManager.getInstance().getSettings("nrOfLevels")) { _local1 = (_local1 + wbVarManager.getInstance().getVar(("experience_" + _local2))); _local2++; }; var _local3:int = (_local1 - wbVarManager.getInstance().getVar("creditsSpent")); return (_local3); } private function getDiscardsText():String{ var _local1:int = wbVarManager.getInstance().getVar("discardsLevels")[wbVarManager.getInstance().getVar("discardsCurrentLevel")]; var _local2:int = wbVarManager.getInstance().getVar("discardsCosts")[wbVarManager.getInstance().getVar("discardsCurrentLevel")]; var _local3:int = wbVarManager.getInstance().getVar("discardsCosts")[(wbVarManager.getInstance().getVar("discardsCurrentLevel") + 1)]; var _local4:String = ((((_local1 + "\t") + _local2) + "\t") + _local3); return (_local4); } private function getFormattedUndos():String{ return (String(wbVarManager.getInstance().getVar("undosLevels")[wbVarManager.getInstance().getVar("undosCurrentLevel")])); } private function getBricksToGo():String{ var _local1:int = wbVarManager.getInstance().getVar("brickGoal"); if (_local1 > 0){ return (String((_local1 - wbVarManager.getInstance().getVar("blocksInTower")))); }; return (""); } private function getPlayerLevel():int{ var _local1:int; var _local2 = 1; while (_local2 < wbSettingsManager.getInstance().getSettings("nrOfLevels")) { _local1 = (_local1 + wbVarManager.getInstance().getVar(("experience_" + _local2))); _local2++; }; return (Math.floor((_local1 / 10))); } private function roundToOneDigit(_arg1:Number):Number{ return ((Math.round((_arg1 * 10)) / 10)); } private function getMaxHeight():Number{ return (roundToOneDigit((wbVarManager.getInstance().getVar("maxHeight") / 2))); } public function removeInstance():void{ } private function getFormattedDiscards():String{ return (String(wbVarManager.getInstance().getVar("discardsLevels")[wbVarManager.getInstance().getVar("discardsCurrentLevel")])); } private function getInLevelProgress():int{ var _local1:int; var _local2:Object = LevelData.getInstance().getLevelData(wbVarManager.getInstance().getVar("currentLevel")); if (_local2.puzzle){ _local1 = Math.floor(((100 * wbVarManager.getInstance().getVar("blocksInTower")) / wbVarManager.getInstance().getVar("brickGoal"))); } else { if (_local2.heightGoal > 0){ _local1 = Math.floor(((100 * wbVarManager.getInstance().getVar("curHeight")) / wbVarManager.getInstance().getVar("heightGoal"))); } else { if (_local2.brickGoal){ _local1 = Math.floor(((100 * wbVarManager.getInstance().getVar("blocksInTower")) / wbVarManager.getInstance().getVar("brickGoal"))); }; }; }; return (_local1); } public static function getInstance(_arg1:Object):VarData{ if ((_arg1 is wbVarManager)){ if (instance == null){ allowInstantiation = true; instance = new (VarData); allowInstantiation = false; }; return (instance); //unresolved jump }; wbStateManager.getInstance().error(("Unauthorized call of varData.getInstance by: " + _arg1)); return (null); } } }//package Game.Data
Section 151
//Block (Game.GameWorld.Block) package Game.GameWorld { import flash.display.*; import WBE.Managers.*; import flash.geom.*; import WBE.GameWorld.*; import Game.Data.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class Block extends wbDynamicObject { private var fallingSpeed:Number;// = 0.03 private var xMoveWait:int;// = 6 private var moveFactor:int;// = 0 private var physicsWorld:PhysicsWorld; private var noRotate:Boolean;// = true private var xchange:Number; private var mcBitmapData:BitmapData; private var prevProp:Object; private var isStatic:Boolean;// = false public var sensor; private var physicsScale:Number;// = 20 private var nextX:Number; private var nextY:Number; private var prevChange:int;// = 0 private var xMoveCounter:int;// = 0 public var side:String; private var mcBitmap:Bitmap; public var physicsObject; private var blockType:int;// = 2 private var ychange:Number; private var shapeData:Object; private var maxX:Number;// = 200 private var shapeID:int; private var boulderForce:Number;// = 15 private var isBonusBlock:Boolean; public function Block(_arg1:Number, _arg2:Number, _arg3:int, _arg4:PhysicsWorld, _arg5:Number=0, _arg6:Boolean=true){ var _local7:MovieClip; if (_arg3 == -1){ this.id = "boulder"; } else { this.shapeData = BrickData.getInstance().getBrickData(_arg3); this.id = this.shapeData.name; }; super(); this.xPos = _arg1; this.yPos = _arg2; this.nextX = this.xPos; this.nextY = this.yPos; this.physicsWorld = _arg4; this.shapeID = _arg3; this.rotationZ = _arg5; if (this.isBonusBlock){ _local7 = MovieClip(wbAssetManager.getInstance().getGraphics("bonusMC")); this.mc.addChild(_local7); }; if (_arg6){ if (this.shapeID == -1){ this.sensor = _arg4.createSensorBoulder((_arg1 / physicsScale), (-(_arg2) / physicsScale), ((this.rotationZ * Math.PI) / 180), this); } else { if (blockType == 1){ this.sensor = _arg4.createSensorCircle((_arg1 / physicsScale), (-(_arg2) / physicsScale), ((this.rotationZ * Math.PI) / 180), shapeData.blocks, this); } else { this.sensor = _arg4.createSensor((_arg1 / physicsScale), (-(_arg2) / physicsScale), ((this.rotationZ * Math.PI) / 180), shapeData.shape, this); }; }; sensor.m_userData = this; }; } public function setStatic():void{ this.prevProp = new Object(); this.prevProp.m_type = this.physicsObject.m_type; this.prevProp.m_mass = this.physicsObject.m_mass; this.prevProp.m_invMass = this.physicsObject.m_invMass; this.prevProp.m_I = this.physicsObject.m_I; this.prevProp.m_invI = this.physicsObject.m_invI; this.physicsObject.m_type = b2Body.e_staticType; this.physicsObject.m_mass = 0; this.physicsObject.m_invMass = 0; this.physicsObject.m_I = 0; this.physicsObject.m_invI = 0; } private function bakeToBitmap():void{ this.mcBitmapData = new BitmapData(this.mc.width, this.mc.height, true, 0); if (this.mcBitmap){ this.mcBitmap.parent.removeChild(this.mcBitmap); }; this.mcBitmap = new Bitmap(this.mcBitmapData, "auto", false); this.mc.visible = true; this.mcBitmap.visible = false; var _local1:Number = this.mc.getBounds(this.mc.parent).left; var _local2:Number = this.mc.getBounds(this.mc.parent).top; trace("leftOutX", _local1, this.mc.scaleX, _local2, this.mc.scaleY); this.mcBitmapData.draw(this.mc, new Matrix(1, 0, 0, 1, -(_local1), -(_local2))); this.mcBitmap.x = (this.mc.x + _local1); this.mcBitmap.y = (this.mc.y + _local2); this.mcBitmap.scaleX = this.mc.scaleX; this.mcBitmap.scaleY = this.mc.scaleY; this.mcBitmap.rotation = this.mc.rotation; this.addChild(this.mcBitmap); this.mc.visible = false; this.mcBitmap.visible = true; } public function isBonus():Boolean{ return (this.isBonusBlock); } public function convertToStatic():void{ if (!this.isStatic){ if (this.isStable()){ if (!this.physicsObject.IsStatic()){ this.setStatic(); }; }; if (this.physicsObject.IsStatic()){ this.prevProp.colorT = this.mc.transform.colorTransform; this.isStatic = true; }; }; } public function isStable():Boolean{ if (this.physicsObject == null){ if (this.sensor.GetLinearVelocity().Length() < 0.1){ return (true); }; return (false); } else { //unresolved if }; return (!NULL!); return (false); } public function getPosition():Object{ var _local1:Object = new Object(); _local1.x = this.xPos; _local1.y = this.yPos; return (_local1); } public function setPhysicsObject(_arg1):void{ this.physicsObject = _arg1; this.physicsObject.m_userData = this; } public function setPosition(_arg1:Number, _arg2:Number):void{ this.xPos = 0; this.yPos = -(_arg2); } public function getType():int{ return (this.blockType); } override public function update():void{ if (this.physicsObject != null){ this.xPos = (this.physicsObject.GetPosition().x * physicsScale); this.yPos = (-(this.physicsObject.GetPosition().y) * physicsScale); this.rotationZ = ((this.physicsObject.GetAngle() / Math.PI) * 180); } else { this.sensor.SetLinearVelocity(new b2Vec2(0, 0)); if (this.shapeID != -1){ this.nextY = (this.nextY - (this.fallingSpeed * physicsScale)); this.xPos = (this.sensor.GetPosition().x * physicsScale); this.yPos = (-(this.sensor.GetPosition().y) * physicsScale); this.sensor.SetXForm(new b2Vec2((this.nextX / physicsScale), (-(this.nextY) / physicsScale)), ((this.getRotation() * Math.PI) / 180)); } else { this.xPos = (this.sensor.GetPosition().x * physicsScale); this.yPos = (-(this.sensor.GetPosition().y) * physicsScale); }; }; } public function getShapeID():int{ return (this.shapeID); } public function move(_arg1:Array):void{ var _local2:Number; this.xchange = (-(_arg1[0]) + _arg1[2]); if (this.shapeID == -1){ if (this.sensor != null){ this.sensor.ApplyForce(new b2Vec2((20 * xchange), 0), this.sensor.GetPosition()); }; } else { if (prevChange != xchange){ xMoveCounter = 0; this.nextX = (this.nextX + ((0.5 * xchange) * physicsScale)); } else { xMoveCounter++; if ((((xMoveCounter >= xMoveWait)) && (((xMoveCounter % 2) == 0)))){ this.nextX = (this.nextX + ((0.5 * xchange) * physicsScale)); }; }; }; prevChange = xchange; if (this.nextX > this.maxX){ this.nextX = this.maxX; } else { if (this.nextX < -(this.maxX)){ this.nextX = -(this.maxX); }; }; if (moveFactor > 1){ moveFactor = 1; }; this.ychange = _arg1[3]; if (this.shapeID != -1){ this.nextY = (this.nextY - ((0.4 * this.ychange) * physicsScale)); }; if (_arg1[1] == 0){ this.noRotate = true; } else { if (this.noRotate){ _local2 = this.getRotation(); _local2 = (_local2 + 90); if (_local2 >= 360){ _local2 = 0; }; this.setRotation(_local2); this.noRotate = false; }; }; } public function convertToPhysics():void{ if (this.sensor != null){ if (this.shapeID == -1){ this.setPhysicsObject(physicsWorld.createBoulder((xPos / physicsScale), (-(yPos) / physicsScale), ((this.rotationZ * Math.PI) / 180), this)); this.physicsObject.SetLinearVelocity(new b2Vec2((this.xchange * this.boulderForce), (this.ychange * this.boulderForce))); } else { if (blockType == 1){ this.setPhysicsObject(physicsWorld.createCircle(sensor.GetPosition().x, sensor.GetPosition().y, sensor.GetAngle(), this.shapeData.blocks, this)); } else { this.setPhysicsObject(physicsWorld.createBlock(sensor.GetPosition().x, sensor.GetPosition().y, sensor.GetAngle(), this.shapeData.shape, this)); }; }; this.physicsWorld.m_world.DestroyBody(this.sensor); this.sensor = null; }; } public function getRealHeight():Number{ return (-(this.getBounds(this.parent).top)); } public function convertToDynamic():void{ if (this.isStatic){ if (this.physicsObject.IsStatic()){ this.physicsObject.m_type = this.prevProp.m_type; this.physicsObject.m_mass = this.prevProp.m_mass; this.physicsObject.m_invMass = this.prevProp.m_invMass; this.physicsObject.m_I = this.prevProp.m_I; this.physicsObject.m_invI = this.prevProp.m_invI; }; if (this.physicsObject.IsDynamic()){ this.isStatic = false; }; }; } override public function toString():String{ return (("Block" + this.blockType)); } public function getRealXbounds():Object{ var _local1:Rectangle = this.getBounds(this.parent); return ({left:_local1.left, right:_local1.right}); } } }//package Game.GameWorld
Section 152
//ContactListener (Game.GameWorld.ContactListener) package Game.GameWorld { import WBE.Managers.*; import Game.Modes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class ContactListener extends b2ContactListener { public function ContactListener(){ if (wbSettingsManager.getInstance().getSettings("traces")){ trace("init ContactListener"); }; } override public function Add(_arg1:b2ContactPoint):void{ PlayMode(wbStateManager.getGameState().getCurrentMode()).contactAdd(_arg1.shape1.m_body, _arg1.shape2.m_body); } override public function Persist(_arg1:b2ContactPoint):void{ } override public function Remove(_arg1:b2ContactPoint):void{ } } }//package Game.GameWorld
Section 153
//LevelControl (Game.GameWorld.LevelControl) package Game.GameWorld { public class LevelControl { private static var allowInstantiation:Boolean; private static var instance:LevelControl; public function LevelControl(){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use LevelControl.getInstance() instead of new.")); }; } public function init():void{ } public function removeInstance():void{ instance = null; allowInstantiation = true; } public function step():void{ } public function toString():String{ return ("LevelControl"); } public static function getInstance():LevelControl{ if (instance == null){ allowInstantiation = true; instance = new (LevelControl); allowInstantiation = false; }; return (instance); } } }//package Game.GameWorld
Section 154
//PhysicsWorld (Game.GameWorld.PhysicsWorld) package Game.GameWorld { import flash.display.*; import WBE.Managers.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class PhysicsWorld extends Sprite { public var m_world:b2World; public var m_physScale:Number;// = 20 public var m_iterations:int;// = 10 public var m_timeStep:Number;// = 0.0333333333333333 private var levelData:Object; private var floor; public var m_sprite:Sprite; private var blockRestitution:Number;// = 0 private var blockFriction:Number;// = 0.5 private var bottom; private var blockSize:int;// = 10 public function PhysicsWorld(_arg1:Object){ var _local7:b2Body; var _local9:Number; super(); this.levelData = _arg1; m_sprite = new Sprite(); addChild(m_sprite); var _local2:b2AABB = new b2AABB(); _local2.lowerBound.Set(-100, -400); _local2.upperBound.Set(100, 50); var _local3:b2Vec2 = new b2Vec2(0, wbVarManager.getInstance().getVar("gravity")); var _local4:Boolean; m_world = new b2World(_local2, _local3, _local4); m_world.SetContactListener(new ContactListener()); var _local5:b2PolygonDef = new b2PolygonDef(); var _local6:b2BodyDef = new b2BodyDef(); var _local8:Number = 160; if (this.levelData.type != "split"){ if (this.levelData.platformWidth != null){ _local8 = this.levelData.platformWidth; }; _local5.SetAsBox(((_local8 / m_physScale) / 2), (20 / m_physScale)); _local6.position.Set(((0 / m_physScale) / 2), (20 / m_physScale)); _local7 = m_world.CreateBody(_local6); _local7.CreateShape(_local5); _local7.SetMassFromShapes(); this.bottom = _local7; this.bottom.m_userData = "bottom"; } else { if (this.levelData.platformWidth != null){ _local8 = this.levelData.platformWidth; }; _local9 = 80; if (this.levelData.platformSpacing != null){ _local9 = this.levelData.platformSpacing; }; _local5.SetAsBox(((_local8 / m_physScale) / 2), (20 / m_physScale)); _local6.position.Set((-(((_local9 / 2) + (_local8 / 2))) / m_physScale), (20 / m_physScale)); _local7 = m_world.CreateBody(_local6); _local7.CreateShape(_local5); _local7.SetMassFromShapes(); this.bottom = _local7; this.bottom.m_userData = "bottomLeft"; _local5.SetAsBox(((_local8 / m_physScale) / 2), (20 / m_physScale)); _local6.position.Set((((_local9 / 2) + (_local8 / 2)) / m_physScale), (20 / m_physScale)); _local7 = m_world.CreateBody(_local6); _local7.CreateShape(_local5); _local7.SetMassFromShapes(); this.bottom = _local7; this.bottom.m_userData = "bottomRight"; }; _local5.SetAsBox(((4000 / m_physScale) / 2), (20 / m_physScale)); _local6.position.Set(((0 / m_physScale) / 2), (100 / m_physScale)); _local7 = m_world.CreateBody(_local6); _local7.CreateShape(_local5); _local7.SetMassFromShapes(); this.floor = _local7; this.floor.m_userData = "floor"; } private function computeDensity(_arg1:Number):Number{ var _local2:Number = 0.5; return (_local2); } public function createSensorCircle(_arg1:Number, _arg2:Number, _arg3:Number, _arg4, _arg5){ var _local7:b2Body; var _local11:b2CircleDef; var _local6:b2BodyDef = new b2BodyDef(); var _local8:Number = 1; var _local9:Number = 2; var _local10:Array = new Array(); var _local12:int; while (_local12 < _arg4.length) { _local11 = new b2CircleDef(); _local11.density = _local8; _local11.friction = blockFriction; _local11.restitution = blockRestitution; _local11.localPosition = new b2Vec2((((_arg4[_local12][0] * blockSize) * 2) / m_physScale), (((_arg4[_local12][1] * blockSize) * 2) / m_physScale)); _local11.radius = ((blockSize - _local9) / m_physScale); _local10.push(_local11); _local12++; }; _local6.position.Set(_arg1, _arg2); _local6.angle = _arg3; _local6.userData = _arg5; _local7 = m_world.CreateBody(_local6); _local12 = 0; while (_local12 < _local10.length) { _local7.CreateShape(_local10[_local12]); _local12++; }; _local7.SetMassFromShapes(); return (_local7); } public function createBoulder(_arg1:Number, _arg2:Number, _arg3:Number, _arg4){ var _local6:b2Body; var _local9:b2CircleDef; var _local5:b2BodyDef = new b2BodyDef(); var _local7:Array = new Array(); var _local8:Number = 10; _local9 = new b2CircleDef(); _local9.density = _local8; _local9.friction = blockFriction; _local9.restitution = blockRestitution; _local9.localPosition = new b2Vec2(0, 0); _local9.radius = ((50 / 4) / m_physScale); _local7.push(_local9); _local5.position.Set(_arg1, _arg2); _local5.angle = _arg3; _local5.userData = _arg4; _local6 = m_world.CreateBody(_local5); var _local10:int; while (_local10 < _local7.length) { _local6.CreateShape(_local7[_local10]); _local10++; }; _local6.SetMassFromShapes(); return (_local6); } public function step():void{ m_world.Step(m_timeStep, m_iterations); } public function createBlock2(_arg1:Number, _arg2:Number, _arg3:Number, _arg4, _arg5){ var _local7:b2Body; var _local6:b2BodyDef = new b2BodyDef(); var _local8:b2PolygonDef = new b2PolygonDef(); var _local9:b2PolygonDef = new b2PolygonDef(); var _local10:b2PolygonDef = new b2PolygonDef(); var _local11:b2PolygonDef = new b2PolygonDef(); _local8.density = computeDensity((((_arg4[0][1] * blockSize) * 2) / m_physScale)); _local8.friction = blockFriction; _local8.restitution = blockRestitution; _local8.SetAsOrientedBox((blockSize / m_physScale), (blockSize / m_physScale), new b2Vec2((((_arg4[0][0] * blockSize) * 2) / m_physScale), (((_arg4[0][1] * blockSize) * 2) / m_physScale))); _local9.density = computeDensity((((_arg4[1][1] * blockSize) * 2) / m_physScale)); _local9.friction = blockFriction; _local9.restitution = blockRestitution; _local9.SetAsOrientedBox((blockSize / m_physScale), (blockSize / m_physScale), new b2Vec2((((_arg4[1][0] * blockSize) * 2) / m_physScale), (((_arg4[1][1] * blockSize) * 2) / m_physScale))); _local10.density = computeDensity((((_arg4[2][1] * blockSize) * 2) / m_physScale)); _local10.friction = blockFriction; _local10.restitution = blockRestitution; _local10.SetAsOrientedBox((blockSize / m_physScale), (blockSize / m_physScale), new b2Vec2((((_arg4[2][0] * blockSize) * 2) / m_physScale), (((_arg4[2][1] * blockSize) * 2) / m_physScale))); _local11.density = computeDensity((((_arg4[3][1] * blockSize) * 2) / m_physScale)); _local11.friction = blockFriction; _local11.restitution = blockRestitution; _local11.SetAsOrientedBox((blockSize / m_physScale), (blockSize / m_physScale), new b2Vec2((((_arg4[3][0] * blockSize) * 2) / m_physScale), (((_arg4[3][1] * blockSize) * 2) / m_physScale))); _local6.position.Set(_arg1, _arg2); _local6.angle = _arg3; _local6.userData = _arg5; _local7 = m_world.CreateBody(_local6); _local7.CreateShape(_local8); _local7.CreateShape(_local9); _local7.CreateShape(_local10); _local7.CreateShape(_local11); _local7.SetMassFromShapes(); return (_local7); } public function createSensor(_arg1:Number, _arg2:Number, _arg3:Number, _arg4, _arg5:Object){ var _local7:b2Body; var _local11:b2PolygonDef; var _local6:b2BodyDef = new b2BodyDef(); var _local8:Number = 1; var _local9:Number = 2; var _local10:Array = new Array(); var _local12:int; while (_local12 < _arg4.length) { _local11 = new b2PolygonDef(); _local11.density = _local8; _local11.SetAsOrientedBox((((_arg4[_local12].w * blockSize) - _local9) / m_physScale), (((_arg4[_local12].h * blockSize) - _local9) / m_physScale), new b2Vec2((((_arg4[_local12].x * blockSize) * 2) / m_physScale), (((_arg4[_local12].y * blockSize) * 2) / m_physScale))); _local10.push(_local11); _local12++; }; _local6.position.Set(_arg1, _arg2); _local6.angle = _arg3; _local6.userData = _arg5; _local7 = m_world.CreateBody(_local6); _local12 = 0; while (_local12 < _local10.length) { _local7.CreateShape(_local10[_local12]); _local12++; }; _local7.SetMassFromShapes(); return (_local7); } public function createCircle(_arg1:Number, _arg2:Number, _arg3:Number, _arg4, _arg5){ var _local7:b2Body; var _local10:b2CircleDef; var _local6:b2BodyDef = new b2BodyDef(); var _local8:Array = new Array(); var _local9:Number = 0.5; var _local11:int; while (_local11 < _arg4.length) { _local10 = new b2CircleDef(); _local10.density = _local9; _local10.friction = blockFriction; _local10.restitution = blockRestitution; _local10.localPosition = new b2Vec2((((_arg4[_local11][0] * blockSize) * 2) / m_physScale), (((_arg4[_local11][1] * blockSize) * 2) / m_physScale)); _local10.radius = (blockSize / m_physScale); _local8.push(_local10); _local11++; }; _local6.position.Set(_arg1, _arg2); _local6.angle = _arg3; _local6.userData = _arg5; _local7 = m_world.CreateBody(_local6); _local11 = 0; while (_local11 < _local8.length) { _local7.CreateShape(_local8[_local11]); _local11++; }; _local7.SetMassFromShapes(); return (_local7); } public function createBlock(_arg1:Number, _arg2:Number, _arg3:Number, _arg4, _arg5){ var _local7:b2Body; var _local10:b2PolygonDef; var _local6:b2BodyDef = new b2BodyDef(); var _local8:Array = new Array(); var _local9:Number = 0.5; var _local11:int; while (_local11 < _arg4.length) { _local10 = new b2PolygonDef(); _local10.density = _local9; _local10.friction = blockFriction; _local10.restitution = blockRestitution; _local10.SetAsOrientedBox(((_arg4[_local11].w * blockSize) / m_physScale), ((_arg4[_local11].h * blockSize) / m_physScale), new b2Vec2((((_arg4[_local11].x * blockSize) * 2) / m_physScale), (((_arg4[_local11].y * blockSize) * 2) / m_physScale))); _local8.push(_local10); _local11++; }; _local6.position.Set(_arg1, _arg2); _local6.angle = _arg3; _local6.userData = _arg5; _local7 = m_world.CreateBody(_local6); _local11 = 0; while (_local11 < _local8.length) { _local7.CreateShape(_local8[_local11]); _local11++; }; _local7.SetMassFromShapes(); return (_local7); } public function createSensor2(_arg1:Number, _arg2:Number, _arg3:Number, _arg4, _arg5){ var _local7:b2Body; var _local6:b2BodyDef = new b2BodyDef(); var _local8:b2PolygonDef = new b2PolygonDef(); var _local9:b2PolygonDef = new b2PolygonDef(); var _local10:b2PolygonDef = new b2PolygonDef(); var _local11:b2PolygonDef = new b2PolygonDef(); var _local12:Number = 0.1; var _local13:Number = 0; var _local14:Number = 2; _local8.density = _local12; _local8.friction = blockFriction; _local8.restitution = _local13; _local8.isSensor = true; _local8.SetAsOrientedBox(((blockSize - _local14) / m_physScale), ((blockSize - _local14) / m_physScale), new b2Vec2((((_arg4[0][0] * blockSize) * 2) / m_physScale), (((_arg4[0][1] * blockSize) * 2) / m_physScale))); _local9.density = _local12; _local9.friction = blockFriction; _local9.restitution = _local13; _local9.isSensor = true; _local9.SetAsOrientedBox(((blockSize - _local14) / m_physScale), ((blockSize - _local14) / m_physScale), new b2Vec2((((_arg4[1][0] * blockSize) * 2) / m_physScale), (((_arg4[1][1] * blockSize) * 2) / m_physScale))); _local10.density = _local12; _local10.friction = blockFriction; _local10.restitution = _local13; _local10.isSensor = true; _local10.SetAsOrientedBox(((blockSize - _local14) / m_physScale), ((blockSize - _local14) / m_physScale), new b2Vec2((((_arg4[2][0] * blockSize) * 2) / m_physScale), (((_arg4[2][1] * blockSize) * 2) / m_physScale))); _local11.density = _local12; _local11.friction = blockFriction; _local11.restitution = _local13; _local11.isSensor = true; _local11.SetAsOrientedBox(((blockSize - _local14) / m_physScale), ((blockSize - _local14) / m_physScale), new b2Vec2((((_arg4[3][0] * blockSize) * 2) / m_physScale), (((_arg4[3][1] * blockSize) * 2) / m_physScale))); _local6.position.Set(_arg1, _arg2); _local6.angle = _arg3; _local6.userData = _arg5; _local7 = m_world.CreateBody(_local6); _local7.CreateShape(_local8); _local7.CreateShape(_local9); _local7.CreateShape(_local10); _local7.CreateShape(_local11); return (_local7); } public function createSensorBoulder(_arg1:Number, _arg2:Number, _arg3:Number, _arg4){ var _local6:b2Body; var _local10:b2CircleDef; var _local5:b2BodyDef = new b2BodyDef(); var _local7:Number = 1; var _local8:Number = 2; var _local9:Array = new Array(); _local10 = new b2CircleDef(); _local10.density = _local7; _local10.friction = blockFriction; _local10.restitution = blockRestitution; _local10.localPosition = new b2Vec2(0, 0); _local10.radius = (((50 - _local8) / 4) / m_physScale); _local9.push(_local10); _local5.position.Set(_arg1, _arg2); _local5.angle = _arg3; _local5.userData = _arg4; _local6 = m_world.CreateBody(_local5); var _local11:int; while (_local11 < _local9.length) { _local6.CreateShape(_local9[_local11]); _local11++; }; _local6.SetMassFromShapes(); return (_local6); } } }//package Game.GameWorld
Section 155
//Player (Game.GameWorld.Player) package Game.GameWorld { import flash.display.*; import WBE.GameWorld.*; import WBE.Cameras.*; public class Player extends wbGameObject { private var camera:wbPlayerCam; private var keysDown:Array; private static var allowInstantiation:Boolean; private static var instance:Player; public function Player():void{ this.id = "player"; super(); this.xPos = 0; this.yPos = 0; if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use Player.getInstance() instead of new.")); }; this.camera = wbPlayerCam.getInstance(); } public function init():void{ if (shadowMC != null){ World.getInstance().addShadow(this); }; } public function changeAnimation(_arg1:String, _arg2:Boolean=false):void{ if (((_arg2) || (!((this.getMC().currentLabel == _arg1))))){ this.getMC().gotoAndPlay(_arg1); }; } public function removeInstance():void{ instance = null; allowInstantiation = true; } override public function update():void{ } override public function toString():String{ return ("Player"); } override public function collide(_arg1:MovieClip):void{ } public static function getInstance():Player{ if (instance == null){ allowInstantiation = true; instance = new (Player); allowInstantiation = false; }; return (instance); } } }//package Game.GameWorld
Section 156
//World (Game.GameWorld.World) package Game.GameWorld { import flash.display.*; import WBE.Managers.*; import WBE.GameWorld.*; import WBE.Cameras.*; public class World extends wbWorld { public var gridMC:MovieClip; private static var allowInstantiation:Boolean; private static var instance:World; public function World(){ super(this); if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use World.getInstance() instead of new.")); }; } override public function init():void{ var _local1:*; super.init(); wbPlayerCam.getInstance().getStaticBackgroundLayer().addChild(wbAssetManager.getInstance().getGraphics("mainBG")); for (_local1 in this.backgroundList) { if (this.backgroundList[_local1].id == "grid"){ this.gridMC = _local1; break; }; }; } override public function step():void{ super.step(); this.gridMC.height = (wbSettingsManager.getInstance().getWorldSettings("height") / wbPlayerCam.getInstance().zToScale(wbPlayerCam.getInstance().getZ())); } public function removeInstance():void{ instance = null; allowInstantiation = true; super.removeWorld(); } override public function toString():String{ return ("World"); } public static function getInstance():World{ if (instance == null){ allowInstantiation = true; instance = new (World); allowInstantiation = false; }; return (instance); } } }//package Game.GameWorld
Section 157
//ProgressManager (Game.Managers.ProgressManager) package Game.Managers { import WBE.Managers.*; import Game.Data.*; import Game.Modes.*; import Game.UI.*; public class ProgressManager { private var almostMessageGiven:Boolean;// = false private var halfwayMessages:Array; private var halfwayMessageGiven:Boolean;// = false private var almostMessages:Array; private static var allowInstantiation:Boolean; private static var instance:ProgressManager; public function ProgressManager(){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use ProgressManager.getInstance() instead of new.")); }; } private function potentiallyShowMessages(_arg1:PlayMode):void{ var _local2:int = wbVarManager.getInstance().getVar("inLevelProgress"); if ((((_local2 > 50)) && (!(this.halfwayMessageGiven)))){ if (Math.random() < 0.3){ this.halfwayMessageGiven = true; _arg1.setGameMessage(this.chooseRandomMessage(this.halfwayMessages)); wbVarManager.getInstance().setVar("tutorState", UI_Tutor.TUTOR_TALK); wbVarManager.getInstance().setVar("tutorStateHasChanged", true); }; }; if ((((_local2 > 75)) && (!(this.almostMessageGiven)))){ if (Math.random() < 0.3){ this.almostMessageGiven = true; _arg1.setGameMessage(this.chooseRandomMessage(this.almostMessages)); wbVarManager.getInstance().setVar("tutorState", UI_Tutor.TUTOR_TALK); wbVarManager.getInstance().setVar("tutorStateHasChanged", true); }; }; } public function toString():String{ return ("ProgressManager"); } private function chooseRandomMessage(_arg1:Array):String{ var _local2:int = Math.floor((Math.random() * _arg1.length)); return (_arg1[_local2]); } public function init():void{ this.almostMessageGiven = false; this.halfwayMessageGiven = false; this.halfwayMessages = ["Keep it up!", "Looking good today Garry!", "Nice work!", "You're already halfway!", "Halfway there!", "Looking good!", "Nice going!", "Excellent!", "Go for it!", "Keep it steady!"]; this.almostMessages = ["You're almost there!", "A little bit longer!", "Just a few more!", "Don't mess it up now!", "You're close!", "Almost done!"]; } public function removeInstance():void{ instance = null; allowInstantiation = true; } public function step(_arg1:PlayMode, _arg2:Boolean):void{ var _local3:int = wbVarManager.getInstance().getVar("inLevelProgress"); if (_local3 < 33){ wbDynamicAudioManager.getInstance().setAudioType(DynamicAudioData.GAME_PHASE_1); } else { if ((((_local3 > 33)) && ((_local3 < 66)))){ wbDynamicAudioManager.getInstance().setAudioType(DynamicAudioData.GAME_PHASE_2); } else { wbDynamicAudioManager.getInstance().setAudioType(DynamicAudioData.GAME_PHASE_3); }; }; if (!_arg2){ this.potentiallyShowMessages(_arg1); }; } public static function getInstance():ProgressManager{ if (instance == null){ allowInstantiation = true; instance = new (ProgressManager); allowInstantiation = false; }; return (instance); } } }//package Game.Managers
Section 158
//ExtraMode (Game.Modes.ExtraMode) package Game.Modes { import com.kongregate.as3.client.*; import WBE.Managers.*; import Game.GameWorld.*; import Game.UI.*; public class ExtraMode extends PlayMode { public function ExtraMode(_arg1:Object):void{ wbVarManager.getInstance().setVar("currentLevel", _arg1.levelNumber); super(_arg1); wbVarManager.getInstance().setVar("gameType", String(_arg1.levelNumber)); wbVarManager.getInstance().setVar("score", 0); var _local2 = 5; if (_local2 > 1){ wbVarManager.getInstance().setVar("visibleNextBlock_2", true); }; if (_local2 > 2){ wbVarManager.getInstance().setVar("visibleNextBlock_3", true); }; if (_local2 > 3){ wbVarManager.getInstance().setVar("visibleNextBlock_4", true); }; if (_local2 > 4){ wbVarManager.getInstance().setVar("visibleNextBlock_5", true); }; setGameMessage("Build as high as you can!", 210, true); wbVarManager.getInstance().setVar("tutorState", UI_Tutor.TUTOR_TALK); wbVarManager.getInstance().setVar("tutorStateHasChanged", true); } override public function blockHitBottom(_arg1:Block):void{ var _local2:Number; if (this.blocks[_arg1] != null){ _local2 = (Math.floor((wbVarManager.random() * 3)) + 1); wbAudioManager.getInstance().playSound(("crashSound" + _local2)); if (_arg1 == this.currentBlock){ this.currentBlock = null; this.nextBlock(); } else { if (_arg1.getShapeID() != -1){ wbVarManager.getInstance().addToVar("blocksInTower", -1); }; }; if (_arg1.sensor != null){ this.physicsWorld.m_world.DestroyBody(_arg1.sensor); if (!this.discardHintGiven){ this.setGameMessage("Press the 'c' key to discard a block."); wbVarManager.getInstance().setVar("tutorState", UI_Tutor.TUTOR_TALK); wbVarManager.getInstance().setVar("tutorStateHasChanged", true); this.discardHintGiven = true; }; } else { this.physicsWorld.m_world.DestroyBody(_arg1.physicsObject); }; this.world.removeStaticObject(_arg1); delete this.blocks[_arg1]; }; } override protected function checkHeight():void{ wbVarManager.getInstance().setVar("curHeight", Math.floor(highestY)); if (wbVarManager.getInstance().getVar("maxHeight") < Math.floor(highestY)){ wbVarManager.getInstance().setVar("maxHeight", Math.floor(highestY)); wbVarManager.getInstance().setVar("score", int(wbVarManager.getInstance().getVar("realMaxHeight"))); }; if (!this.submitHintGiven){ if (wbVarManager.getInstance().getVar("realCurHeight") < (wbVarManager.getInstance().getVar("realMaxHeight") - this.submitHintScoreDiff)){ this.setGameMessage("If you wish, you can end the level and submit your score from the menu ('p' or 'esc' key)."); wbVarManager.getInstance().setVar("tutorState", UI_Tutor.TUTOR_TALK); wbVarManager.getInstance().setVar("tutorStateHasChanged", true); this.submitHintGiven = true; }; }; } override public function getGameMenuType():String{ return ("Classic"); } override public function undoBlock():void{ var _local1:Block; if (this.currentStep == "play"){ _local1 = this.getPreviousBlock(); if (_local1 != null){ wbVarManager.getInstance().addToVar("blocks", -1); if (this.discardingBlock != null){ this.world.removeStaticObject(this.discardingBlock); }; this.playDiscardAnimation(_local1); delete this.blocks[_local1]; this.physicsWorld.m_world.DestroyBody(_local1.physicsObject); _local1 = null; }; }; } override public function submitScore():void{ wbStateManager.getInstance().closeGameMenu(); this.endMode(); } override public function requestAddBlock():void{ this.currentBlock = null; this.determineHighestY(); this.checkHeight(); if (wbVarManager.getInstance().getVar("blocks") <= 0){ this.endText = "Your tower is complete. Bask in its glory!\nYou can press any key to continue..."; wbVarManager.getInstance().setVar("tutorState", UI_Tutor.TUTOR_VICTORY); wbVarManager.getInstance().setVar("tutorStateHasChanged", true); this.nextPhase(); } else { checkBlockMessage(); this.addBlock(); }; } override protected function endMode():void{ var _local1:String; if (wbVarManager.getInstance().getVar("gameType") == -1){ _local1 = "easyScore"; } else { if (wbVarManager.getInstance().getVar("gameType") == -2){ _local1 = "mediumScore"; } else { if (wbVarManager.getInstance().getVar("gameType") == -3){ _local1 = "hardScore"; }; }; }; var _local2:KongregateAPI = KongregateAPI.getInstance(); if (((_local2.loaded) && (!((_local2.user.getName() == "Guest"))))){ _local2.stats.submit(_local1, wbVarManager.getInstance().getVar("realMaxHeight")); }; wbStateManager.getGameState().requestExit("levelDone"); wbDebugManager.getInstance().stopMeasuring(); } override public function discardBlock():void{ if (this.currentStep == "play"){ if (this.currentBlock != null){ wbVarManager.getInstance().addToVar("blocks", -1); this.physicsWorld.m_world.DestroyBody(this.currentBlock.sensor); if (this.discardingBlock != null){ this.world.removeStaticObject(this.discardingBlock); }; this.playDiscardAnimation(this.currentBlock); delete this.blocks[this.currentBlock]; }; requestAddBlock(); }; } } }//package Game.Modes
Section 159
//Mode (Game.Modes.Mode) package Game.Modes { import Game.GameWorld.*; import WBE.Modes.*; public class Mode extends wbMode { protected var level:LevelControl; public function Mode(_arg1:Object):void{ super(_arg1); this.level = LevelControl.getInstance(); } public function submitScore():void{ } override public function remove():void{ super.remove(); } } }//package Game.Modes
Section 160
//PlayMode (Game.Modes.PlayMode) package Game.Modes { import flash.display.*; import flash.events.*; import com.kongregate.as3.client.*; import WBE.Managers.*; import flash.utils.*; import Game.GameWorld.*; import Game.Data.*; import caurina.transitions.*; import WBE.Cameras.*; import WBE.UI.*; import Game.Managers.*; import Game.UI.*; import flash.filters.*; public class PlayMode extends Mode { private var panicScoreDiff:Number;// = 50 protected var maxBlocks:int;// = 99 protected var doNextBlock:Boolean;// = false protected var curZoomLevel:int;// = 0 private var _discardAnimationGuide:Number; protected var nextBlockToCome:Block; private var levelPassed:Boolean;// = false protected var currHighestBlockY:Number;// = 0 protected var cameraPanY:Number;// = 10 protected var camera:wbPlayerCam; protected var minBrickX:Number;// = 1000 protected var towerWidthTarget:int;// = 160 protected var highestY:Number;// = 0 private var blockNumber:int; protected var startY:Number;// = -30 protected var discardHintGiven:Boolean;// = false protected var topSpacing:Number; protected var bricksTouchedTowerCounter:Number;// = 0 private var puzzleWaitTime:int;// = 150 protected var towerWidthTargetReached:Boolean;// = false private var _dropAnimationGuide:Number; protected var levelData:Object; private var firstTimeLevelPassed:Boolean; protected var glowingBlock:Block; private var glowFilter:GlowFilter; protected var discardingBlock:Block; private var puzzleEndCounter:int;// = 0 protected var platformHeight:Number;// = 20 protected var blocksToRemove:Array; protected var blocks:Dictionary; protected var ground:MovieClip; protected var physicsWorld:PhysicsWorld; protected var cameraMoved:Boolean;// = false protected var world:World; protected var currentBlock:Block; protected var levelID:String; protected var endText:String; private var puzzleEndRoundedCounter:int; private var discardGlowFilter:GlowFilter; protected var submitHintScoreDiff:Number;// = 100 protected var maxBrickX:Number;// = -1000 protected var allowZoom:Boolean; protected var firstBlock:Boolean;// = true protected var zoomFrameNr:int; private var blockList:Array; private var reachedPanicHeight:Number;// = 0 protected var minSpawnHeight:Number; protected var cameraZ:Number;// = 10000 protected var line:MovieClip; protected var submitHintGiven:Boolean;// = false public function PlayMode(_arg1:Object):void{ camera = wbPlayerCam.getInstance(); minSpawnHeight = (wbSettingsManager.getInstance().getWorldSettings("height") + 20); topSpacing = (wbSettingsManager.getInstance().getWorldSettings("height") / 2); super(_arg1); this.world = World.getInstance(); var _local2:wbVarManager = wbVarManager.getInstance(); _local2.setVar("gameType", ""); this.levelData = LevelData.getInstance().getLevelData(_local2.getVar("currentLevel")); this.blockList = LevelData.getInstance().getBlockList(_local2.getVar("currentLevel")); if (this.blockList.length == 0){ this.blockList = generateBlockList(this.levelData.blocks, this.levelData.blockComplexity); } else { if (this.blockList.length != this.levelData.blocks){ trace("WARNING Blocklist length wrong:", this.blockList.length, "should be:", this.levelData.blocks); }; }; _local2.setVar("blockList", this.blockList); this.blockNumber = 0; this.level.init(); this.physicsWorld = new PhysicsWorld(this.levelData); this.createGround(); var _local3:Number = (1 / camera.zToScale(this.cameraZ)); this.allowZoom = true; _local2.setVar("curHeight", 0); _local2.setVar("maxHeight", (this.levelData.heightGoal * 2)); _local2.setVar("heightGoal", (this.levelData.heightGoal * 2)); _local2.setVar("brickGoal", this.levelData.brickGoal); _local2.setVar("noDrop", this.levelData.noDrop); _local2.setVar("allBricksSaved", true); _local2.setVar("towerHeightIndex", 0); _local2.setVar("bricksSavedIndex", 0); _local2.setVar("blocks", this.levelData.blocks); _local2.setVar("currentBlock", 0); _local2.setVar("blocksInTower", 0); _local2.setVar("tutorState", UI_Tutor.TUTOR_IDLE); _local2.setVar("tutorStateHasChanged", true); _local2.setVar("inGameTextBalloonText", ""); _local2.setVar("discardsLeft", _local2.getVar("discardsLevels")[_local2.getVar("discardsCurrentLevel")]); _local2.setVar("undosLeft", _local2.getVar("undosLevels")[_local2.getVar("undosCurrentLevel")]); _local2.setVar("livesLeft", _local2.getVar("livesLevels")[_local2.getVar("livesCurrentLevel")]); var _local4:int = _local2.getVar("previewsLevels")[_local2.getVar("previewsCurrentLevel")]; if (_local4 > 1){ _local2.setVar("visibleNextBlock_2", true); }; if (_local4 > 2){ _local2.setVar("visibleNextBlock_3", true); }; if (_local4 > 3){ _local2.setVar("visibleNextBlock_4", true); }; if (_local4 > 4){ _local2.setVar("visibleNextBlock_5", true); }; var _local5:String = levelData.type; if (this.levelData.extra != null){ _local5 = (_local5 + (": " + this.levelData.extra)); }; _local2.setVar("extraDescription", String(_local5)); this.world.addChild(this.physicsWorld); this.physicsWorld.y = -(wbSettingsManager.getInstance().getWorldSettings("height")); this.blocks = new Dictionary(); camera.setZ(this.cameraZ); this.setCamera(false); this.stepFunctions["play"] = {func:playStep, type:"loop", next:"initZoom"}; this.stepFunctions["initZoom"] = {func:initZoom, type:"single", next:"zoom"}; this.stepFunctions["zoom"] = {func:zoomStep, type:"loop", next:"end"}; this.stepFunctions["puzzleEnd"] = {func:puzzleEndStep, type:"loop", next:"initZoom"}; this.stepFunctions["end"] = {func:endMode, type:"stop", next:"end"}; this.currentStep = "play"; this.blocksToRemove = new Array(); wbDebugManager.getInstance().startMeasuring(); _local2.setVar("nextBlockID", this.blockList[this.blockNumber++]); if (((this.levelData.startMessage) && (!((this.levelData.startMessage == ""))))){ setGameMessage(this.levelData.startMessage, 210, true); wbVarManager.getInstance().setVar("tutorState", UI_Tutor.TUTOR_TALK); wbVarManager.getInstance().setVar("tutorStateHasChanged", true); }; ProgressManager.getInstance().init(); wbDynamicAudioManager.getInstance().setAudioType(DynamicAudioData.GAME_PHASE_2); this.firstTimeLevelPassed = false; if (wbSettingsManager.getInstance().getSettings("traces")){ trace(this, "init done"); }; } protected function initZoom():void{ var _local1:wbInterface = wbInterface.getInstance(); _local1.hideItem("zoom"); this.allowZoom = false; this.curZoomLevel = 1; this.setCamera(true, 200); this.zoomFrameNr = wbVarManager.getInstance().getVar("frameNr"); this.world.removeStaticObject(this.currentBlock); } public function undoBlock():void{ var _local1:Block; if (wbVarManager.getInstance().getVar("noDrop")){ setGameMessage("You are not allowed to remove Bricks in this level!", 210, true); wbVarManager.getInstance().setVar("tutorState", UI_Tutor.TUTOR_SAD_TALK); wbVarManager.getInstance().setVar("tutorStateHasChanged", true); wbAudioManager.getInstance().playSound("buzzer"); } else { if (this.currentStep == "play"){ if (wbVarManager.getInstance().getVar("undosLeft") > 0){ _local1 = this.getPreviousBlock(); if (_local1 != null){ wbVarManager.getInstance().addToVar("undosLeft", -1); wbVarManager.getInstance().addToVar("blocksInTower", -1); if (this.discardingBlock != null){ this.world.removeStaticObject(this.discardingBlock); }; playDiscardAnimation(_local1); delete this.blocks[_local1]; this.physicsWorld.m_world.DestroyBody(_local1.physicsObject); _local1 = null; }; } else { wbAudioManager.getInstance().playSound("buzzer"); }; }; }; } private function puzzleGoalsReachedCheck():void{ var _local1:Boolean; var _local2:Boolean; if (wbVarManager.getInstance().getVar("curHeight") <= (wbVarManager.getInstance().getVar("heightGoal") + 2)){ _local1 = true; }; if (wbVarManager.getInstance().getVar("blocksInTower") == wbVarManager.getInstance().getVar("brickGoal")){ _local2 = true; }; if ((((_local2 == true)) && ((_local1 == true)))){ wbDynamicAudioManager.getInstance().setAudioType(DynamicAudioData.LEVEL_FINISHED); this.nextPhase("puzzleEnd"); } else { if ((((_local2 == true)) && ((_local1 == false)))){ this.endText = "Your tower was too high!\nKeep a close look on your objectives.\nPress any key to return to the map..."; wbVarManager.getInstance().setVar("tutorState", UI_Tutor.TUTOR_SAD_TALK); wbVarManager.getInstance().setVar("tutorStateHasChanged", true); wbDynamicAudioManager.getInstance().setAudioType(DynamicAudioData.LEVEL_FAILED); this.nextPhase("initZoom"); } else { checkBlockMessage(); this.addBlock(); }; }; } public function get discardAnimationGuide():Number{ return (_discardAnimationGuide); } protected function playStep():void{ if (this.firstBlock){ this.firstBlock = false; this.addBlock(); }; if (wbVarManager.getInstance().getVar("blocks") >= 0){ this.currentBlock.update(); }; this.determineHighestY(); this.setCamera(); this.checkHeight(); this.physicsWorld.step(); ProgressManager.getInstance().step(this, this.levelData.puzzle); if (this.doNextBlock){ this.doNextBlock = false; this.nextBlock(); }; var _local1:int; while (_local1 < this.blocksToRemove.length) { this.blockHitBottom(this.blocksToRemove[_local1]); _local1++; }; blocksToRemove = new Array(); } protected function getPreviousBlock():Block{ var _local2:Block; var _local3:*; var _local1:int; for (_local3 in this.blocks) { if ((((this.blocks[_local3] > _local1)) && (!((_local3 == this.currentBlock))))){ _local2 = _local3; _local1 = blocks[_local3]; }; }; return (_local2); } public function requestAddBlock():void{ this.currentBlock = null; this.determineHighestY(); this.checkHeight(); if (this.levelData.puzzle){ puzzleGoalsReachedCheck(); } else { normalGoalsReachedCheck(); }; } protected function puzzleEndStep():void{ this.determineHighestY(); this.setCamera(); this.checkHeight(); this.physicsWorld.step(); var _local1:int; while (_local1 < this.blocksToRemove.length) { this.blockHitBottom(this.blocksToRemove[_local1]); _local1++; }; blocksToRemove = new Array(); if (this.puzzleEndCounter >= this.puzzleWaitTime){ this.endText = "Excellent, Garry!\nYou've solved the puzzle!\nPress any key to return to the map!"; wbVarManager.getInstance().setVar("tutorState", UI_Tutor.TUTOR_VICTORY); wbVarManager.getInstance().setVar("tutorStateHasChanged", true); if (!wbVarManager.getInstance().getVar(("levelPassed_" + wbVarManager.getInstance().getVar("currentLevel")))){ this.firstTimeLevelPassed = true; }; wbVarManager.getInstance().setVar(("levelPassed_" + wbVarManager.getInstance().getVar("currentLevel")), true); this.levelPassed = true; this.nextPhase("initZoom"); }; var _local2:Number = (Math.floor(((this.puzzleWaitTime - this.puzzleEndCounter) / 30)) + 1); if (this.puzzleEndRoundedCounter != _local2){ this.puzzleEndRoundedCounter = _local2; setGameMessage(String(this.puzzleEndRoundedCounter), Infinity, true, false); wbVarManager.getInstance().setVar("tutorState", UI_Tutor.TUTOR_TALK); wbVarManager.getInstance().setVar("tutorStateHasChanged", true); }; this.puzzleEndCounter++; } public function set discardAnimationGuide(_arg1:Number):void{ this._discardAnimationGuide = _arg1; this.discardGlowFilter.blurX = (this._discardAnimationGuide * 100); this.discardGlowFilter.alpha = (1 - _arg1); this.discardingBlock.filters = [this.discardGlowFilter]; this.discardingBlock.alpha = (1 - _arg1); } protected function setCamera(_arg1:Boolean=true, _arg2:Number=20):void{ var _local3:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; if (this.curZoomLevel == 1){ _local7 = (1.6 * (wbVarManager.getInstance().getVar("curHeight") + this.platformHeight)); _local8 = (wbSettingsManager.getInstance().getWorldSettings("height") / _local7); _local9 = this.camera.scaleToZ(_local8); if (_local9 < (this.cameraZ * 1.1)){ _local9 = (this.cameraZ * 1.1); }; _local3 = _local9; } else { _local3 = this.cameraZ; }; if (_arg1){ camera.moveToZ(_local3, _arg2); } else { camera.setZ(_local3); }; var _local4:Number = camera.zToScale(_local3); var _local5:Number = (((wbSettingsManager.getInstance().getWorldSettings("height") / 2) - this.platformHeight) / _local4); if (this.curZoomLevel == 1){ _local6 = _local5; } else { _local10 = ((wbVarManager.getInstance().getVar("curHeight") + (wbSettingsManager.getInstance().getWorldSettings("height") / 2)) - this.topSpacing); if (_local10 > _local5){ _local6 = _local10; } else { _local6 = _local5; }; if (((!(this.cameraMoved)) && ((_local6 > _local5)))){ this.cameraMoved = true; if (wbVarManager.getInstance().getVar("zoomHint") > 0){ setGameMessage("Hold the 'z' key to zoom out."); wbVarManager.getInstance().setVar("tutorState", UI_Tutor.TUTOR_TALK); wbVarManager.getInstance().setVar("tutorStateHasChanged", true); wbVarManager.getInstance().addToVar("zoomHint", -1); }; }; }; if (_arg1){ camera.moveToY(_local6, _arg2); } else { camera.setY(_local6); }; } protected function endMode():void{ var _local3:int; var _local4:int; var _local5:KongregateAPI; var _local1 = "levelDone"; var _local2:Number = wbVarManager.getInstance().getVar("currentLevel"); if (wbVarManager.getInstance().getVar(("levelPassed_" + _local2))){ _local3 = 0; if (this.levelData.experience){ _local3 = this.levelData.experience; } else { if (this.levelData.heightGoal > 0){ if (((this.levelData.expCap) && ((wbVarManager.getInstance().getVar("blocksInTower") > this.levelData.expCap)))){ _local3 = this.levelData.expCap; } else { _local3 = wbVarManager.getInstance().getVar("blocksInTower"); }; } else { if (this.levelData.brickGoal > 0){ _local3 = (wbVarManager.getInstance().getVar("blocksInTower") + wbVarManager.getInstance().getVar("blocks")); }; }; }; _local4 = wbVarManager.getInstance().getVar(("experience_" + wbVarManager.getInstance().getVar("currentLevel"))); if (_local4 < _local3){ wbVarManager.getInstance().setVar(("experience_" + wbVarManager.getInstance().getVar("currentLevel")), _local3); }; _local5 = KongregateAPI.getInstance(); if (((_local5.loaded) && (!((_local5.user.getName() == "Guest"))))){ _local5.stats.submit("citiesCompleted", wbVarManager.getInstance().getVar("citiesCompleted")); _local5.stats.submit("percentageCompleted", wbVarManager.getInstance().getVar("gameCompletedPerc")); }; if (this.firstTimeLevelPassed){ switch (_local2){ case 1: _local1 = "story1"; break; case 5: _local1 = "story2"; break; case 12: _local1 = "story3"; break; case 24: _local1 = "story5"; break; }; }; }; wbVarManager.getInstance().setVar("blockList", -1); wbVarManager.getInstance().setVar("inGameTextBalloonText", ""); wbStateManager.getGameState().requestExit(_local1); wbDebugManager.getInstance().stopMeasuring(); } public function nextLevel():void{ } private function removeSelectGlow():void{ } private function endZoom(_arg1:Event=null):void{ wbStateManager.getInstance().stage.removeEventListener(MouseEvent.MOUSE_UP, endZoom); wbStateManager.getInstance().stage.removeEventListener(KeyboardEvent.KEY_DOWN, endZoom); this.nextPhase("end"); } protected function checkHeight():void{ wbVarManager.getInstance().setVar("curHeight", Math.floor(highestY)); if (this.reachedPanicHeight < wbVarManager.getInstance().getVar("curHeight")){ this.reachedPanicHeight = wbVarManager.getInstance().getVar("curHeight"); }; if (wbVarManager.getInstance().getVar("curHeight") < (this.reachedPanicHeight - this.panicScoreDiff)){ wbVarManager.getInstance().setVar("tutorState", UI_Tutor.TUTOR_PANIC); wbVarManager.getInstance().setVar("tutorStateHasChanged", true); this.reachedPanicHeight = wbVarManager.getInstance().getVar("curHeight"); }; } protected function zoomStep():void{ if (!this.levelPassed){ this.physicsWorld.step(); }; if ((this.zoomFrameNr + 40) == wbVarManager.getInstance().getVar("frameNr")){ this.setGameMessage(this.endText, Infinity); wbStateManager.getInstance().stage.addEventListener(MouseEvent.MOUSE_UP, endZoom); wbStateManager.getInstance().stage.addEventListener(KeyboardEvent.KEY_DOWN, endZoom); }; } public function nextBlock():void{ wbVarManager.getInstance().addToVar("blocks", -1); if (this.currentBlock != null){ this.playMaterializeAnimation(); this.bricksTouchedTowerCounter++; this.currentBlock.convertToPhysics(); }; requestAddBlock(); } public function set dropAnimationGuide(_arg1:Number):void{ this._dropAnimationGuide = _arg1; this.glowFilter.blurX = (this._dropAnimationGuide * 100); this.glowFilter.alpha = (1 - _arg1); this.glowingBlock.filters = [this.glowFilter]; } protected function statsCheckTowerHeight():void{ if (wbVarManager.getInstance().getVar("towerHeightIndex") >= 5){ return; }; var _local1:Number = wbVarManager.getInstance().getVar("realCurHeight"); if (_local1 >= wbVarManager.getInstance().getVar(("towerHeightMark" + wbVarManager.getInstance().getVar("towerHeightIndex")))){ wbVarManager.getInstance().addToVar("towerHeightIndex", 1); statsCheckTowerHeight(); }; } public function contactAdd(_arg1, _arg2):void{ if (_arg1.m_userData == "floor"){ this.blocksToRemove.push(_arg2.m_userData); } else { if (_arg2.m_userData == "floor"){ this.blocksToRemove.push(_arg1.m_userData); } else { if ((((_arg1.m_userData == this.currentBlock)) || ((_arg2.m_userData == this.currentBlock)))){ if (!this.doNextBlock){ if (this.currentBlock.getShapeID() != -1){ wbVarManager.getInstance().addToVar("blocksInTower", 1); }; this.doNextBlock = true; }; }; }; }; } protected function addBlock():void{ wbVarManager.getInstance().addToVar("currentBlock", 1); this.determineHighestY(); var _local1:Number = (wbVarManager.getInstance().getVar("curHeight") + this.topSpacing); if (_local1 < this.minSpawnHeight){ _local1 = this.minSpawnHeight; }; this.currentBlock = new Block(0, _local1, wbVarManager.getInstance().getVar("nextBlockID"), this.physicsWorld); this.blocks[this.currentBlock] = wbVarManager.getInstance().getVar("currentBlock"); world.addStaticObject(this.currentBlock, 1); if (wbVarManager.getInstance().getVar("blocks") > 1){ wbVarManager.getInstance().setVar("nextBlockID", this.blockList[this.blockNumber++]); } else { wbVarManager.getInstance().setVar("nextBlockID", -1); }; } public function discardBlock():void{ if (wbVarManager.getInstance().getVar("noDrop")){ setGameMessage("You are not allowed to remove Bricks in this level!", 210, true); wbVarManager.getInstance().setVar("tutorState", UI_Tutor.TUTOR_SAD_TALK); wbVarManager.getInstance().setVar("tutorStateHasChanged", true); wbAudioManager.getInstance().playSound("buzzer"); } else { if (this.currentStep == "play"){ if (wbVarManager.getInstance().getVar("discardsLeft") > 0){ wbVarManager.getInstance().setVar("allBricksSaved", false); wbVarManager.getInstance().addToVar("discardsLeft", -1); if (this.currentBlock != null){ wbVarManager.getInstance().addToVar("blocks", -1); this.physicsWorld.m_world.DestroyBody(this.currentBlock.sensor); if (this.discardingBlock != null){ this.world.removeStaticObject(this.discardingBlock); }; playDiscardAnimation(this.currentBlock); delete this.blocks[this.currentBlock]; }; requestAddBlock(); } else { wbAudioManager.getInstance().playSound("buzzer"); }; }; }; } public function blockHitBottom(_arg1:Block):void{ var _local2:Number; if (this.blocks[_arg1] != null){ _local2 = (Math.floor((wbVarManager.random() * 3)) + 1); wbAudioManager.getInstance().playSound(("crashSound" + _local2)); if (_arg1 == this.currentBlock){ this.currentBlock = null; this.nextBlock(); } else { if (_arg1.getShapeID() != -1){ wbVarManager.getInstance().addToVar("blocksInTower", -1); }; }; wbVarManager.getInstance().setVar("allBricksSaved", false); if (wbVarManager.getInstance().getVar("noDrop")){ this.endText = "Oh no, you dropped a brick!\nPress any key to return to the map..."; wbVarManager.getInstance().setVar("tutorState", UI_Tutor.TUTOR_SAD_TALK); wbVarManager.getInstance().setVar("tutorStateHasChanged", true); this.nextPhase("initZoom"); }; if (wbVarManager.getInstance().getVar("livesLeft") > 0){ wbVarManager.getInstance().addToVar("livesLeft", -1); }; if (wbVarManager.getInstance().getVar("livesLeft") <= 0){ this.endText = "You dropped too many bricks Garry!\nPress any key to return to the map..."; wbVarManager.getInstance().setVar("tutorState", UI_Tutor.TUTOR_SAD_TALK); wbVarManager.getInstance().setVar("tutorStateHasChanged", true); wbDynamicAudioManager.getInstance().setAudioType(DynamicAudioData.LEVEL_FAILED); this.nextPhase("initZoom"); }; if (_arg1.sensor != null){ this.physicsWorld.m_world.DestroyBody(_arg1.sensor); if (wbVarManager.getInstance().getVar("discardHint") > 0){ this.setGameMessage("Press the 'c' key to discard a block."); wbVarManager.getInstance().setVar("tutorState", UI_Tutor.TUTOR_TALK); wbVarManager.getInstance().setVar("tutorStateHasChanged", true); wbVarManager.getInstance().addToVar("discardHint", -1); }; } else { this.physicsWorld.m_world.DestroyBody(_arg1.physicsObject); }; this.world.removeStaticObject(_arg1); delete this.blocks[_arg1]; }; } private function playMaterializeAnimation():void{ this.glowingBlock = this.currentBlock; this.glowFilter = new GlowFilter(0xFFFFFF, 2, 10, 10, 2, 1); this.glowingBlock.filters = [this.glowFilter]; _dropAnimationGuide = 0; Tweener.addTween(this, {dropAnimationGuide:1, time:15, useFrames:true, transition:"easeOutExpo", onComplete:function ():void{ this.glowingBlock.filters = []; }}); wbAudioManager.getInstance().playSound("dropSound"); } protected function newStatisticsCreated():void{ } private function normalGoalsReachedCheck():void{ var _local3:Number; var _local1:Boolean; var _local2:Boolean; if (wbVarManager.getInstance().getVar("heightGoal") > 0){ _local3 = wbVarManager.getInstance().getVar("curHeight"); if (wbVarManager.getInstance().getVar("blocks") <= 0){ _local3 = (Math.ceil((_local3 / 10)) * 10); }; if (_local3 >= wbVarManager.getInstance().getVar("heightGoal")){ _local1 = true; }; }; if (wbVarManager.getInstance().getVar("brickGoal") > 0){ if (wbVarManager.getInstance().getVar("blocksInTower") >= wbVarManager.getInstance().getVar("brickGoal")){ _local2 = true; }; }; if ((((((wbVarManager.getInstance().getVar("heightGoal") > 0)) && ((_local1 == true)))) || ((((wbVarManager.getInstance().getVar("brickGoal") > 0)) && ((_local2 == true)))))){ if (!wbVarManager.getInstance().getVar(("levelPassed_" + wbVarManager.getInstance().getVar("currentLevel")))){ this.firstTimeLevelPassed = true; }; wbVarManager.getInstance().setVar(("levelPassed_" + wbVarManager.getInstance().getVar("currentLevel")), true); this.levelPassed = true; this.endText = "Congratulations Garry!\nYou finished the level!\nPress any key to return to the map!"; wbVarManager.getInstance().setVar("tutorState", UI_Tutor.TUTOR_VICTORY); wbVarManager.getInstance().setVar("tutorStateHasChanged", true); wbDynamicAudioManager.getInstance().setAudioType(DynamicAudioData.LEVEL_FINISHED); this.nextPhase("initZoom"); } else { if (wbVarManager.getInstance().getVar("blocks") <= 0){ this.endText = "You're out of bricks!\nBetter luck next time!\nPress any key to return to the map..."; wbVarManager.getInstance().setVar("tutorState", UI_Tutor.TUTOR_SAD_TALK); wbVarManager.getInstance().setVar("tutorStateHasChanged", true); wbDynamicAudioManager.getInstance().setAudioType(DynamicAudioData.LEVEL_FAILED); this.nextPhase("initZoom"); } else { checkBlockMessage(); this.addBlock(); }; }; } protected function createGround():void{ var _local1:Number = 160; if (this.levelData.platformWidth != null){ _local1 = this.levelData.platformWidth; }; this.ground = MovieClip(wbAssetManager.getInstance().getGraphics("ground")); this.ground.width = _local1; this.world.addChild(ground); this.ground.y = -(wbSettingsManager.getInstance().getWorldSettings("height")); } private function addToShortList(_arg1:Array, _arg2:int):Array{ var _local3:Array = new Array(); var _local4:int; while (_local4 < 5) { _local3[_local4] = _arg1[(_local4 + 1)]; _local4++; }; _local3[5] = _arg2; return (_local3); } public function get dropAnimationGuide():Number{ return (_dropAnimationGuide); } protected function determineHighestY():void{ var _local1:Number; var _local2:*; var _local3:*; this.highestY = wbSettingsManager.getInstance().getWorldSettings("height"); for (_local2 in blocks) { if (_local2 != currentBlock){ _local1 = _local2.getRealHeight(); if (_local1 > highestY){ highestY = _local1; }; _local3 = _local2.getRealXbounds(); if (_local3.left < this.minBrickX){ this.minBrickX = _local3.left; }; if (_local3.right > this.maxBrickX){ this.maxBrickX = _local3.right; }; }; }; highestY = (highestY - wbSettingsManager.getInstance().getWorldSettings("height")); } protected function statsCheckTowerWidth():void{ if (this.towerWidthTargetReached){ return; }; var _local1:Number = ((this.maxBrickX - this.minBrickX) / 2); if (_local1 >= this.towerWidthTarget){ towerWidthTargetReached = true; }; } public function move(_arg1:Array):void{ if (this.currentBlock != null){ this.currentBlock.move(_arg1); }; } public function zoom(_arg1:int):void{ if (this.allowZoom){ this.curZoomLevel = _arg1; this.setCamera(); }; } private function generateBlockList(_arg1:int, _arg2:int):Array{ var _local5:int; var _local3:Array = new Array(); var _local4:Array = new Array(); var _local6:int; while (_local6 < _arg1) { _local5 = Math.floor((wbVarManager.random() * (7 + _arg2))); if (fewInShortList(_local3, _local5)){ _local3 = addToShortList(_local3, _local5); _local4.push(_local5); } else { _local6--; }; _local6++; }; return (_local4); } protected function playDiscardAnimation(_arg1:Block):void{ var discardBlock = _arg1; this.discardingBlock = discardBlock; this.discardGlowFilter = new GlowFilter(0xFFFFFF, 2, 10, 10, 2, 1); this.discardingBlock.filters = [this.discardGlowFilter]; _discardAnimationGuide = 0; Tweener.addTween(this, {discardAnimationGuide:1, time:15, useFrames:true, transition:"easeOutExpo", onComplete:function ():void{ this.discardingBlock.filters = []; this.world.removeStaticObject(this.discardingBlock); this.discardingBlock = null; }}); wbAudioManager.getInstance().playSound("popSound"); } private function fewInShortList(_arg1:Array, _arg2:int):Boolean{ var _local3:int; var _local4:int; while (_local4 < _arg1.length) { if (_arg1[_local4] == _arg2){ _local3++; }; _local4++; }; if (_local3 > 2){ return (false); }; return (true); } protected function checkBlockMessage():void{ var _local1:Number = wbVarManager.getInstance().getVar("blocks"); if ((((((_local1 == 10)) || ((_local1 == 25)))) || ((_local1 == 50)))){ setGameMessage((("You have " + _local1) + " bricks left..."), 90); wbVarManager.getInstance().setVar("tutorState", UI_Tutor.TUTOR_TALK); wbVarManager.getInstance().setVar("tutorStateHasChanged", true); }; } public function setGameMessage(_arg1:String, _arg2:Number=210, _arg3:Boolean=false, _arg4:Boolean=true):void{ var _local5:String = _arg1; wbVarManager.getInstance().setVar("inGameTextBalloonText", _local5); wbVarManager.getInstance().setVar("inGameTextBalloonShowTime", _arg2); } } }//package Game.Modes
Section 161
//GameState (Game.States.GameState) package Game.States { import WBE.Managers.*; import WBE.States.*; import Game.Modes.*; public class GameState extends wbGameState { private var availableModes:Array; private var shiftValue:int;// = 1 private var keysDown:Array; public function GameState(_arg1:Object){ availableModes = [PlayMode, ExtraMode]; keysDown = [0, 0, 0, 0]; super(_arg1); } public function submitScore():void{ this.mode.submitScore(); } public function moveDown(_arg1:int):void{ this.keysDown[3] = _arg1; } public function shift(_arg1:int):void{ if (wbVarManager.getInstance().getVar("shiftMoveLevels")[wbVarManager.getInstance().getVar("shiftMoveCurrentLevel")]){ this.shiftValue = _arg1; this.keysDown[0] = (this.keysDown[0] * _arg1); this.keysDown[2] = (this.keysDown[2] * _arg1); }; } override public function toString():String{ return ("GameState"); } public function undoBlock():void{ PlayMode(this.mode).undoBlock(); } public function moveRight(_arg1:int):void{ this.keysDown[2] = (_arg1 * this.shiftValue); } public function moveUp(_arg1:int):void{ this.keysDown[1] = _arg1; } public function discardBlock():void{ PlayMode(this.mode).discardBlock(); } public function zoom(_arg1:int):void{ PlayMode(this.mode).zoom(_arg1); } private function newplaythroughCreated():void{ } public function moveLeft(_arg1:int):void{ this.keysDown[0] = (_arg1 * this.shiftValue); } override public function step():String{ var _local1:String = super.step(); PlayMode(this.mode).move(this.keysDown); return (_local1); } } }//package Game.States
Section 162
//StoryState (Game.States.StoryState) package Game.States { import flash.display.*; import flash.events.*; import WBE.Managers.*; import WBE.States.*; import flash.text.*; import Game.Data.*; import caurina.transitions.*; import WBE.UI.*; public class StoryState extends wbStoryState { private var textBalloon:MovieClip; private var storyText:TextField; private var leftPosition:MovieClip; private var textBalloonYOffset:Number;// = 300 private var textBalloonOriY:Number; private var partNr:int; private var tweenTime:int;// = 30 private var levelComplexity:int;// = 0 private var textLayer:MovieClip; private var rightPosition:MovieClip; private var xOffStage:Number;// = 350 private var characterLayer:MovieClip; private var story:Array; private var complexity:int;// = 7 public function StoryState(_arg1:Object){ super(_arg1); } private function enableListeners():void{ if (this.animation){ this.animation.addEventListener(MouseEvent.MOUSE_UP, nextPart); }; if (this.stage){ this.stage.addEventListener(KeyboardEvent.KEY_UP, upKey); }; } private function removeCharacter(_arg1:MovieClip, _arg2:Object, _arg3:Object):void{ this.characterLayer.removeChild(_arg1); _arg2.call(_arg2, _arg3); } public function nextPart(_arg1:MouseEvent=null):void{ var _local2:Object; this.disableListeners(); if (this.partNr >= this.story.length){ this.endStory(); } else { _local2 = story[partNr]; this.swapCharacter(_local2); }; } private function addCharacter(_arg1:Object):void{ var _local3:Number; var _local2:MovieClip = MovieClip(wbAssetManager.getInstance().getGraphics((_arg1.character + "StoryMC"))); _local2.y = 450; changeExpression(_local2, _arg1); if (_arg1.location == StoryData.RIGHT){ this.rightPosition = _local2; this.rightPosition.type = _arg1.character; _local2.x = (wbSettingsManager.getInstance().getWorldSettings("width") + this.xOffStage); _local2.scaleX = -1; } else { _local2.x = -(this.xOffStage); this.leftPosition = _local2; this.leftPosition.type = _arg1.character; _local2.scaleX = 1; }; if (_arg1.location == StoryData.RIGHT){ _local3 = 600; } else { _local3 = 200; }; this.characterLayer.addChild(_local2); Tweener.addTween(_local2, {x:_local3, delay:0, time:this.tweenTime, useFrames:true, transition:"easeOutCirc", onComplete:characterAdded}); } private function startRemoveCharacter(_arg1:MovieClip, _arg2:Object, _arg3:Object):void{ var _local4:Number; this.storyText.visible = (this.textBalloon.visible = false); if (_arg3.location == StoryData.RIGHT){ _local4 = (wbSettingsManager.getInstance().getWorldSettings("width") + this.xOffStage); } else { _local4 = -(this.xOffStage); }; Tweener.addTween(_arg1, {x:_local4, delay:0, time:this.tweenTime, useFrames:true, transition:"easeOutCirc", onCompleteParams:[_arg1, _arg2, _arg3], onComplete:removeCharacter}); } private function swapCharacter(_arg1:Object):void{ if (_arg1.location == StoryData.RIGHT){ if (((this.rightPosition) && (!((this.rightPosition.type == _arg1.character))))){ this.startRemoveCharacter(this.rightPosition, addCharacter, _arg1); } else { if (this.rightPosition){ this.changeExpression(this.rightPosition, _arg1); this.characterSwapped(); } else { this.addCharacter(_arg1); }; }; } else { if (((this.leftPosition) && (!((this.leftPosition.type == _arg1.character))))){ this.startRemoveCharacter(this.leftPosition, addCharacter, _arg1); } else { if (this.leftPosition){ this.changeExpression(this.leftPosition, _arg1); this.characterSwapped(); } else { this.addCharacter(_arg1); }; }; }; } override protected function endStory():void{ var _local1:Number; var _local2:Number; this.storyEnded = true; this.animation.gotoAndStop("end"); if (this.args.autoContinue == true){ if (this.args.brickIntro){ if (this.levelComplexity > this.complexity){ this.exitStory("next"); } else { if (wbVarManager.getInstance().getVar("currentLevel") == 24){ this.exitStory("lastLevel"); } else { this.exitStory(); }; }; } else { this.exitStory(); }; } else { if (this.skipButton){ this.skipButton.visible = false; this.exitStory(); } else { this.args.label = "Continue"; this.args.action = "stateFunc"; this.args.func = exitStory; this.args.mc = "skipButton"; _local1 = 220; _local2 = 100; this.continueButton = new wbUI_Button(this.args, ((wbSettingsManager.getInstance().getWorldSettings("width") - _local1) - (2 * buttonSpacing)), ((wbSettingsManager.getInstance().getWorldSettings("height") - _local2) - buttonSpacing), _local1, _local2, this); this.addChild(this.continueButton); }; }; } private function upKey(_arg1:KeyboardEvent):void{ this.nextPart(); } private function characterAdded():void{ this.characterSwapped(); } private function startStory(_arg1:String):void{ this.characterLayer = new MovieClip(); this.animation.addChild(this.characterLayer); this.textLayer = new MovieClip(); this.animation.addChild(this.textLayer); this.textBalloon = this.animation.textBalloon; this.storyText = this.animation.storyText; this.textBalloonOriY = this.textBalloon.y; this.textLayer.addChild(this.textBalloon); this.textLayer.addChild(this.storyText); this.storyText.visible = (this.textBalloon.visible = false); this.animation.mouseChildren = false; this.story = StoryData.getInstance().getStory(_arg1); this.partNr = 0; this.nextPart(); } override public function exit():void{ Tweener.removeAllTweens(); this.disableListeners(); this.skipButton.remove(); if (this.contains(this.animation)){ this.removeChild(this.animation); }; this.animation = null; wbAudioManager.getInstance().stopSound("applause"); } private function changeExpression(_arg1:MovieClip, _arg2:Object):void{ _arg1.gotoAndPlay(_arg2.expression); if (_arg1.currentLabel != _arg2.expression){ if (wbSettingsManager.getInstance().getSettings("traces")){ trace("ERROR while changing expression", _arg2.expression, " is now", _arg1.currentLabel); }; }; } private function createBrickStory():void{ this.animation = MovieClip(wbAssetManager.getInstance().getGraphics(this.args.id)); var _local1:int = (6 + this.complexity); var _local2:String = BrickData.getInstance().getBrickData(_local1).name; var _local3:MovieClip = MovieClip(wbAssetManager.getInstance().getGraphics(_local2)); _local3.x = 400; _local3.y = 200; _local3.scaleX = (_local3.scaleY = 0.1); Tweener.addTween(_local3, {scaleX:1, scaleY:1, time:30, useFrames:true, transition:"easeOutExp"}); this.animation.addChild(_local3); wbVarManager.getInstance().setVar("shownBrickIntro", this.complexity); } private function disableListeners():void{ if (this.animation){ this.animation.removeEventListener(MouseEvent.MOUSE_UP, nextPart); }; if (this.stage){ this.stage.removeEventListener(KeyboardEvent.KEY_UP, upKey); }; } private function characterSwapped():void{ var _local1:Object; _local1 = story[partNr]; this.storyText.text = _local1.text; this.animation.charName.text = _local1.character; this.partNr++; if (_local1.location == StoryData.RIGHT){ this.textBalloon.scaleX = -1; this.textBalloon.scaleY = -1; this.textBalloon.y = (this.textBalloonOriY - this.textBalloonYOffset); } else { this.textBalloon.scaleX = 1; this.textBalloon.scaleY = 1; this.textBalloon.y = this.textBalloonOriY; }; this.storyText.visible = (this.textBalloon.visible = !((_local1.text == ""))); if (_local1.text){ this.storyText.y = (this.textBalloon.y - (this.storyText.textHeight / 2)); }; if (_local1.proceed == StoryData.AUTO){ this.nextPart(); } else { this.enableListeners(); }; } override public function enter():void{ var _local1:Number; var _local2:Number; this.stage.focus = this; if (this.args.brickIntro){ this.complexity = wbVarManager.getInstance().getVar("shownBrickIntro"); this.levelComplexity = LevelData.getInstance().getLevelData(wbVarManager.getInstance().getVar("currentLevel")).blockComplexity; if (this.levelComplexity > this.complexity){ this.complexity++; this.createBrickStory(); wbAudioManager.getInstance().playSound("applause"); } else { this.exitStory(); }; } else { if (this.args.id == StoryData.CONGRATULATIONS){ this.animation = MovieClip(wbAssetManager.getInstance().getGraphics(args.backgroundAnimation)); } else { this.animation = MovieClip(wbAssetManager.getInstance().getGraphics(args.backgroundAnimation)); this.startStory(args.id); }; }; this.addChild(this.animation); if (this.args.skippable){ this.args.label = "Skip"; this.args.action = "stateFunc"; this.args.mc = "skipButton"; this.args.func = endStory; _local1 = 200; _local2 = 50; this.skipButton = new wbUI_Button(this.args, ((wbSettingsManager.getInstance().getWorldSettings("width") - _local1) - (2 * buttonSpacing)), ((wbSettingsManager.getInstance().getWorldSettings("height") - _local2) - buttonSpacing), _local1, _local2, this); this.addChild(this.skipButton); }; } override public function toString():String{ return ("StoryState"); } } }//package Game.States
Section 163
//UI_Detector (Game.UI.UI_Detector) package Game.UI { import flash.display.*; import WBE.Managers.*; import WBE.States.*; import WBE.UI.*; public class UI_Detector extends wbUI_Item { public function UI_Detector(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:wbState){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); var _local7:MovieClip = MovieClip(wbAssetManager.getInstance().getGraphics("invisibleThing")); _local7.width = _arg4; _local7.height = _arg5; this.x = _arg2; this.y = _arg3; this.addChild(_local7); } override public function toString():String{ return ("UI_Detector"); } } }//package Game.UI
Section 164
//UI_HeightLine (Game.UI.UI_HeightLine) package Game.UI { import flash.display.*; import WBE.Managers.*; import WBE.States.*; import flash.text.*; import caurina.transitions.*; import WBE.Cameras.*; import WBE.UI.*; public class UI_HeightLine extends wbUI_Item { private var line:MovieClip; private var outputField:TextField; public function UI_HeightLine(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:wbState){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); this.outputField = new TextField(); this.addChild(outputField); this.line = MovieClip(wbAssetManager.getInstance().getGraphics("curHeightLine")); this.addChild(this.line); this.outputField.width = 50; this.outputField.height = 20; this.outputField.x = (this.line.width - this.outputField.width); this.outputField.y = -20; this.outputField.embedFonts = true; this.outputField.selectable = false; this.outputField.defaultTextFormat = wbSettingsManager.getInstance().getTextFormat(_arg1.format); this.outputField.text = String((roundToOneDigit((wbVarManager.getInstance().getVar(this.itemData.varData) / 20)) * 10)); this.x = _arg2; this.y = _arg3; } private function roundToOneDigit(_arg1:Number):Number{ return ((Math.round((_arg1 * 10)) / 10)); } override public function update():void{ var _local1:Number = wbSettingsManager.getInstance().getWorldSettings("height"); var _local2:Number = wbVarManager.getInstance().getVar(this.itemData.varData); this.outputField.text = String((roundToOneDigit((_local2 / 20)) * 10)); var _local3:Number = wbPlayerCam.getInstance().zToScale(wbPlayerCam.getInstance().zPos); var _local4:Number = wbPlayerCam.getInstance().yPos; var _local5:Number = ((_local2 * _local3) - ((_local4 * _local3) - (_local1 / 2))); this.line.line.height = (_local5 * 2); Tweener.addTween(this, {y:(_local1 - _local5), time:20, useFrames:true}); } public function getText():String{ return (this.outputField.text); } override public function toString():String{ return ("UI_HeightLine"); } } }//package Game.UI
Section 165
//UI_LevelSelectItem (Game.UI.UI_LevelSelectItem) package Game.UI { import flash.display.*; import flash.events.*; import WBE.Managers.*; import Game.Data.*; import caurina.transitions.*; import flash.filters.*; public class UI_LevelSelectItem { private var tooltip:MovieClip; private var levelData:Object; private var startingY:Number; private var levelSelectMap:UI_LevelSelectMap; private var levelType:String; private var startingX:Number; private var targetTooltipX:Number; private var targetTooltipY:Number; public var levelNr:int; public var levelSelectMC:MovieClip; private var _animGuide:Number;// = 0 public function UI_LevelSelectItem(_arg1:MovieClip, _arg2:int, _arg3:UI_LevelSelectMap){ var _local4:String; var _local5:int; super(); this.levelSelectMC = _arg1; this.levelNr = _arg2; this.levelSelectMap = _arg3; this.startingX = _arg1.x; this.startingY = _arg1.y; _local4 = ("level" + _arg2); this.levelData = LevelData.getInstance().getLevelData(_arg2); this.levelType = levelData.type; this.levelSelectMC.buildings.mouseChildren = false; this.levelSelectMC.buildings.mouseEnabled = false; var _local6:ColorMatrixFilter = new ColorMatrixFilter([0.3, 0, 0, 0, 0, 0, 0.3, 0, 0, 0, 0, 0, 0.3, 0, 0, 0, 0, 0, 1, 0]); var _local7:Array = new Array(); _local7.push(_local6); var _local8:Array = new Array(); _local8.push(_local6); _local8.push(new GlowFilter(0, 0.8, 100, 100, 3)); var _local9:Array = new Array(); _local9.push(_local6); var _local10:Array = new Array(); if (wbVarManager.getInstance().getVar(("levelOpened_" + this.levelNr))){ if (wbVarManager.getInstance().getVar(("levelPassed_" + this.levelNr))){ if (levelSelectMC.base != null){ levelSelectMC.base.filters = _local10; }; } else { if (levelSelectMC.base != null){ levelSelectMC.base.filters = _local9; }; if (levelSelectMC.buildings != null){ levelSelectMC.buildings.filters = _local7; }; aniTweenUp(); }; } else { if (levelSelectMC.base != null){ levelSelectMC.base.filters = _local8; }; if (levelSelectMC.buildings != null){ levelSelectMC.buildings.filters = _local7; }; }; if (((wbVarManager.getInstance().getVar(("levelOpened_" + this.levelNr))) || (wbSettingsManager.getInstance().getSettings("debug")))){ this.levelSelectMC.buttonMode = true; this.addEventListeners(); }; this.initTooltip(); } public function toString():String{ return ("UI_LevelSelectMap"); } private function upMouse(_arg1:MouseEvent):void{ this.levelSelectMap.levelSelected(this.levelNr, this.levelType); } private function addEventListeners():void{ this.levelSelectMC.addEventListener(MouseEvent.MOUSE_OVER, overMouse); this.levelSelectMC.addEventListener(MouseEvent.MOUSE_OUT, outMouse); this.levelSelectMC.addEventListener(MouseEvent.MOUSE_UP, upMouse); } private function showText():void{ } private function initTooltip():void{ var _local1:String; if (levelData.puzzle){ _local1 = "levelSelectMouseoverMCPuzzle"; } else { if (levelData.noDrop){ _local1 = "levelSelectMouseoverMCNoDrop"; } else { if (levelData.heightGoal > 0){ _local1 = "levelSelectMouseoverMCHeightGoal"; } else { _local1 = "levelSelectMouseoverMCBrickGoal"; }; }; }; this.tooltip = MovieClip(wbAssetManager.getInstance().getGraphics(_local1)); this.tooltip.mouseChildren = false; this.tooltip.mouseEnabled = false; var _local2:int = this.levelData.blocks; if (this.levelData.experience){ _local2 = this.levelData.experience; }; if (this.levelData.expCap){ _local2 = this.levelData.expCap; }; this.tooltip.texts.levelName.text = this.levelData.name; this.tooltip.texts.goals.text = getDescription(this.levelNr, this.levelData); if (levelData.puzzle){ this.tooltip.texts.goldInfo.text = (("Earn " + _local2) + " Gold pieces for completing this level."); } else { if (levelData.noDrop){ this.tooltip.texts.goldInfo.text = (("Earn " + _local2) + " Gold pieces for completing this level."); } else { if (levelData.heightGoal > 0){ this.tooltip.texts.goldInfo.text = "Earn one Gold piece for every brick in your tower."; } else { this.tooltip.texts.goldInfo.text = "Earn one Gold piece for every brick in the wall and every unused brick."; }; }; }; if (this.levelData.expCap){ this.tooltip.texts.goldInfo.text = (("Earn a maximum of " + this.levelData.expCap) + " Gold pieces for this level."); }; this.tooltip.texts.points.text = (((("" + wbVarManager.getInstance().getVar(("experience_" + this.levelNr))) + " / ") + _local2) + " Gold"); this.targetTooltipX = (this.levelSelectMC.x + this.levelSelectMC.width); this.targetTooltipY = this.levelSelectMC.y; if ((this.targetTooltipX + this.tooltip.width) > wbSettingsManager.getInstance().getWorldSettings("width")){ this.targetTooltipX = (this.levelSelectMC.x - this.tooltip.width); }; if ((this.targetTooltipY + this.tooltip.height) > (wbSettingsManager.getInstance().getWorldSettings("height") - 30)){ this.targetTooltipY = ((this.levelSelectMC.y - this.tooltip.height) + this.levelSelectMC.height); }; if ((this.targetTooltipY + this.tooltip.height) > (wbSettingsManager.getInstance().getWorldSettings("height") - 30)){ this.targetTooltipY = ((wbSettingsManager.getInstance().getWorldSettings("height") - this.tooltip.height) - 30); }; if (this.targetTooltipY < 0){ this.targetTooltipY = 10; }; if (this.levelNr == 24){ this.targetTooltipY = (this.targetTooltipY - 30); }; this.tooltip.x = this.targetTooltipX; this.tooltip.y = this.targetTooltipY; } public function set animGuide(_arg1:Number):void{ this._animGuide = _arg1; var _local2:Number = (0.2 + (0.45 * _arg1)); var _local3:ColorMatrixFilter = new ColorMatrixFilter([_local2, 0, 0, 0, 0, 0, _local2, 0, 0, 0, 0, 0, _local2, 0, 0, 0, 0, 0, 1, 0]); var _local4:Array = new Array(); _local4.push(_local3); levelSelectMC.base.filters = _local4; levelSelectMC.buildings.filters = _local4; } private function showTooltip():void{ this.levelSelectMap.addChild(this.tooltip); this.tooltip.x = this.levelSelectMC.x; this.tooltip.y = this.levelSelectMC.y; this.tooltip.scaleX = (this.tooltip.scaleY = 0.1); Tweener.addTween(this.tooltip, {scaleX:1, scaleY:1, x:this.targetTooltipX, y:this.targetTooltipY, delay:0, time:10, useFrames:true, transition:"easeOutExpo", onComplete:showText}); } private function hideTooltip():void{ Tweener.removeTweens(this.tooltip); this.levelSelectMap.removeChild(this.tooltip); } public function restoreBuilding():void{ this.levelSelectMC.buildings.gotoAndStop("light"); this.levelSelectMC.base.gotoAndStop("light"); } private function aniTweenUp():void{ Tweener.addTween(this, {animGuide:1, delay:30, time:10, useFrames:true, transition:"linear"}); Tweener.addTween(this, {animGuide:0, delay:70, time:10, useFrames:true, transition:"linear", onComplete:aniTweenUp}); } public function get animGuide():Number{ return (_animGuide); } private function overMouse(_arg1:MouseEvent):void{ var _local2:Number = 1.1; this.levelSelectMC.x = (this.startingX - ((this.levelSelectMC.width * (_local2 - 1)) * 0.5)); this.levelSelectMC.y = (this.startingY - ((this.levelSelectMC.height * (_local2 - 1)) * 0.5)); this.levelSelectMC.scaleX = (this.levelSelectMC.scaleY = _local2); this.showTooltip(); } private function outMouse(_arg1:MouseEvent):void{ this.levelSelectMC.scaleX = (this.levelSelectMC.scaleY = 1); this.levelSelectMC.x = this.startingX; this.levelSelectMC.y = this.startingY; this.hideTooltip(); } private function getDescription(_arg1:int, _arg2:Object):String{ var _local4:Number; var _local3 = ""; if (_arg2.puzzle){ _local3 = (((("PUZZLE: Build a tower using all " + _arg2.blocks) + " bricks and do not exceed height ") + _arg2.heightGoal) + "."); } else { _local4 = _arg2.platformWidth; if (isNaN(_local4)){ _local4 = 160; }; if (_arg2.heightGoal > 0){ _local3 = (((("GOAL: Build a tower of height " + _arg2.heightGoal) + ".\nAvailable Bricks: ") + _arg2.blocks) + "."); } else { if (_arg2.brickGoal > 0){ _local3 = (((("GOAL: Build a wall containing " + _arg2.brickGoal) + " Bricks.\nAvailable Bricks: ") + _arg2.blocks) + "."); }; }; if (_local4 < 160){ _local3 = (_local3 + "\nThis level has a small base."); }; }; if (_arg2.noDrop){ _local3 = (_local3 + "\nYou may not drop a single brick."); }; return (_local3); } } }//package Game.UI
Section 166
//UI_LevelSelectMap (Game.UI.UI_LevelSelectMap) package Game.UI { import flash.display.*; import WBE.Managers.*; import WBE.States.*; import WBE.Helpers.*; import Game.Data.*; import caurina.transitions.*; import WBE.UI.*; import flash.filters.*; public class UI_LevelSelectMap extends wbUI_Item { private var levelSelectItems:Array; private var mapMC:MovieClip; private var connections:Array; public function UI_LevelSelectMap(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:wbState){ var _local8:int; var _local9:MovieClip; var _local10:String; super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); this.mapMC = MovieClip(wbAssetManager.getInstance().getGraphics("levelSelectMap")); this.addChild(this.mapMC); if (this.mapMC.foregrounds != null){ this.mapMC.foregrounds.mouseEnabled = false; this.mapMC.foregrounds.mouseChildren = false; this.mapMC.foregrounds.alpha = (wbVarManager.getInstance().getVar("citiesCompleted") / wbSettingsManager.getInstance().getSettings("nrOfLevels")); }; if (wbVarManager.getInstance().getVar("citiesCompleted") > 0){ this.mapMC.garry.visible = false; }; var _local7:int = wbSettingsManager.getInstance().getSettings("nrOfLevels"); findConnections(); var _local11:ColorMatrixFilter = new ColorMatrixFilter([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0]); var _local12:Array = new Array(); _local12.push(_local11); _local8 = 0; while (_local8 < this.connections.length) { if (wbVarManager.getInstance().getVar(("levelPassed_" + this.connections[_local8][0]))){ wbVarManager.getInstance().setVar(("levelOpened_" + this.connections[_local8][1]), true); } else { this.mapMC[((("connection" + this.connections[_local8][0]) + "_") + this.connections[_local8][1])].filters = _local12; }; _local8++; }; this.levelSelectItems = new Array(); _local8 = 1; while (_local8 <= _local7) { _local10 = ("level" + _local8); _local9 = this.mapMC[_local10]; this.levelSelectItems.push(new UI_LevelSelectItem(_local9, _local8, this)); _local8++; }; if (wbVarManager.getInstance().getVar(("levelPassed_" + 24))){ this.levelSelectItems[23].restoreBuilding(); this.mapMC.zeppelins.visible = true; this.mapMC.zeppelins.mouseEnabled = false; this.mapMC.zeppelins.mouseChildren = false; } else { this.mapMC.zeppelins.visible = false; }; wbDynamicAudioManager.getInstance().setAudioType(DynamicAudioData.MAP); } override public function update():void{ if (wbVarManager.getInstance().getVar("progressSaved")){ this.mapMC.savedMessage.gotoAndPlay(0); this.mapMC.savedMessage.alpha = 1; Tweener.addTween(this.mapMC.savedMessage, {alpha:0, delay:60, time:30, useFrames:true, transition:"easeOutExpo"}); wbVarManager.getInstance().setVar("progressSaved", false); }; } override public function toString():String{ return ("UI_LevelSelectMap"); } private function findConnections():void{ var _local1:DisplayObject; var _local2:int; this.connections = new Array(); var _local3:int; while (_local3 < this.mapMC.numChildren) { _local1 = this.mapMC.getChildAt(_local3); if (_local1.name.indexOf("connection") == 0){ _local2 = _local1.name.indexOf("_"); this.connections.push([int(_local1.name.substr(10, (_local2 - 10))), int(_local1.name.substr((_local2 + 1)))]); }; _local3++; }; } public function createRepulsor():MovieClip{ var _local1:MovieClip = new MovieClip(); _local1.addChild(new wbCircleFlowMap(100, 100, true, 50, wbCircleFlowMap.OUTWARD)); _local1.x = (-(_local1.width) / 2); _local1.y = (-(_local1.height) / 2); var _local2:MovieClip = new MovieClip(); _local2.addChild(_local1); return (_local2); } public function levelSelected(_arg1:int, _arg2:String):void{ wbVarManager.getInstance().setVar("currentLevel", _arg1); var _local3:int = wbVarManager.getInstance().getVar("shownBrickIntro"); var _local4:int = LevelData.getInstance().getLevelData(wbVarManager.getInstance().getVar("currentLevel")).blockComplexity; if (_arg1 == 24){ this.state.requestExit("playLevel24"); } else { if (_local4 > _local3){ this.state.requestExit("brickintro"); } else { this.state.requestExit("play"); }; }; } } }//package Game.UI
Section 167
//UI_MaxHeightLine (Game.UI.UI_MaxHeightLine) package Game.UI { import flash.display.*; import WBE.Managers.*; import WBE.States.*; import flash.text.*; import caurina.transitions.*; import WBE.Cameras.*; import WBE.UI.*; public class UI_MaxHeightLine extends wbUI_Item { private var upArrow:MovieClip; private var label:MovieClip; private var outputField:TextField; private var line:MovieClip; public function UI_MaxHeightLine(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:wbState){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); this.outputField = new TextField(); this.addChild(outputField); this.line = MovieClip(wbAssetManager.getInstance().getGraphics("maxHeightLine")); this.addChild(this.line); this.label = MovieClip(wbAssetManager.getInstance().getGraphics("maxHeightLabel")); if (_arg1.labelText){ this.label.textF.text = _arg1.labelText; }; this.addChild(this.label); this.upArrow = MovieClip(wbAssetManager.getInstance().getGraphics("upArrow")); this.addChild(this.upArrow); this.upArrow.visible = false; this.upArrow.x = (this.line.width / 2); this.outputField.width = 50; this.outputField.height = 20; this.outputField.x = 3; this.outputField.y = -20; this.outputField.embedFonts = true; this.outputField.selectable = false; this.outputField.defaultTextFormat = wbSettingsManager.getInstance().getTextFormat(_arg1.format); this.outputField.text = String((roundToOneDigit((wbVarManager.getInstance().getVar(this.itemData.varData) / 20)) * 10)); this.x = _arg2; this.y = _arg3; } public function getText():String{ return (this.outputField.text); } override public function update():void{ var _local7:Number; var _local1:Number = wbSettingsManager.getInstance().getWorldSettings("height"); var _local2:Number = wbVarManager.getInstance().getVar(this.itemData.varData); this.outputField.text = String((roundToOneDigit((_local2 / 20)) * 10)); var _local3:Number = wbPlayerCam.getInstance().zToScale(wbPlayerCam.getInstance().zPos); var _local4:Number = wbPlayerCam.getInstance().yPos; var _local5:Number = ((_local2 * _local3) - ((_local4 * _local3) - (_local1 / 2))); this.line.line.height = (_local5 * 2); Tweener.addTween(this, {y:(_local1 - _local5), time:20, useFrames:true}); var _local6:Number = 15; if ((_local5 + _local6) > _local1){ _local7 = (_local1 - _local5); if (_local7 < 0){ _local7 = 0; } else { _local7 = (_local7 + 4); }; this.upArrow.visible = true; this.label.y = ((-(this.y) + (_local1 / 2)) + _local7); this.outputField.y = ((-(this.y) + 4) + _local7); this.upArrow.y = (-(this.y) + _local7); } else { this.upArrow.visible = false; this.label.y = (_local5 / 2); this.outputField.y = -20; }; if (_local5 < this.label.height){ this.label.visible = false; } else { this.label.visible = true; }; } override public function toString():String{ return ("UI_MaxHeightLine"); } private function roundToOneDigit(_arg1:Number):Number{ return ((Math.round((_arg1 * 10)) / 10)); } } }//package Game.UI
Section 168
//UI_NextBlock (Game.UI.UI_NextBlock) package Game.UI { import flash.display.*; import WBE.Managers.*; import WBE.States.*; import Game.Data.*; import WBE.UI.*; public class UI_NextBlock extends wbUI_Item { private var blockNr:int; private var blockMC:MovieClip; public function UI_NextBlock(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:wbState){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); this.x = _arg2; this.y = _arg3; this.visible = false; } override public function update():void{ var _local2:int; var _local3:String; var _local1:int = wbVarManager.getInstance().getVar("currentBlock"); if ((((((_local1 + this.itemData.previewNr) - 1) < wbVarManager.getInstance().getVar("blockList").length)) && ((((_local1 + this.itemData.previewNr) - 1) > 0)))){ _local2 = wbVarManager.getInstance().getVar("blockList")[((_local1 + this.itemData.previewNr) - 1)]; } else { _local2 = -1; }; this.visible = wbVarManager.getInstance().getVar(("visibleNextBlock_" + this.itemData.previewNr)); if (_local2 != this.blockNr){ this.blockNr = _local2; _local3 = BrickData.getInstance().getBrickData(this.blockNr).name; if (this.blockMC){ this.removeChild(this.blockMC); }; this.blockMC = MovieClip(wbAssetManager.getInstance().getGraphics(_local3)); this.blockMC.x = (this.blockMC.width / 2); this.blockMC.y = (this.blockMC.height / 2); this.blockMC.scaleX = (1 / this.itemData.previewNr); this.blockMC.scaleY = (1 / this.itemData.previewNr); this.addChild(this.blockMC); } else { if (_local2 == -1){ this.removeChild(this.blockMC); }; }; } override public function toString():String{ return ("UI_NextBlock"); } } }//package Game.UI
Section 169
//UI_ShiftMove (Game.UI.UI_ShiftMove) package Game.UI { import flash.display.*; import WBE.Managers.*; import WBE.States.*; import WBE.UI.*; public class UI_ShiftMove extends wbUI_Output { private var mc:MovieClip; public function UI_ShiftMove(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:wbState){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); this.mc = MovieClip(wbAssetManager.getInstance().getGraphics("shiftMoveIndicator")); this.addChild(this.mc); this.width = _arg4; this.height = _arg5; this.x = _arg2; this.y = _arg3; if (wbVarManager.getInstance().getVar("shiftMoveLevels")[wbVarManager.getInstance().getVar("shiftMoveCurrentLevel")]){ this.mc.gotoAndStop(2); }; } override public function update():void{ if (this.mc == null){ return; }; if (wbVarManager.getInstance().getVar("shiftMoveLevels")[wbVarManager.getInstance().getVar("shiftMoveCurrentLevel")]){ this.mc.gotoAndStop(2); }; } override public function toString():String{ return ("UI_ShiftMove"); } } }//package Game.UI
Section 170
//UI_ShopButton (Game.UI.UI_ShopButton) package Game.UI { import flash.display.*; import flash.events.*; import WBE.Managers.*; import WBE.States.*; import WBE.UI.*; public class UI_ShopButton extends wbUI_Button { private var isTooExpensive:Boolean;// = false private var blockMC:MovieClip; private var blockNr:int; public function UI_ShopButton(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:wbState){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); } override protected function doAction(_arg1:Boolean=false):void{ var _local2:wbVarManager = wbVarManager.getInstance(); var _local3:String = this.itemData.item; var _local4:int = _local2.getVar((_local3 + "Costs"))[_local2.getVar((_local3 + "CurrentLevel"))]; if (_local4 <= _local2.getVar("credits")){ _local2.addToVar((_local3 + "CurrentLevel"), 1); _local2.addToVar("creditsSpent", _local4); wbAudioManager.getInstance().playSound("cash"); }; } override protected function onOverMouse(_arg1:MouseEvent):void{ if (this.isTooExpensive){ wbVarManager.getInstance().setVar("descriptionBoxText", "This item is too expensive. Play more levels or replay them to earn gold."); } else { super.onOverMouse(_arg1); wbVarManager.getInstance().setVar("descriptionBoxText", wbVarManager.getInstance().getVar((this.itemData.item + "Description"))); }; } override public function update():void{ var _local1:wbVarManager = wbVarManager.getInstance(); var _local2:String = this.itemData.item; var _local3:int = _local1.getVar((_local2 + "Costs"))[_local1.getVar((_local2 + "CurrentLevel"))]; if (_local1.getVar("credits") < _local3){ this.isTooExpensive = true; this.button.alpha = 0.5; this.button.detector.removeEventListener(MouseEvent.MOUSE_DOWN, onDownMouse); this.button.detector.removeEventListener(MouseEvent.MOUSE_OVER, buttonPushed); this.button.useHandCursor = false; this.useHandCursor = false; this.button.buttonMode = false; } else { if ((_local1.getVar((_local2 + "CurrentLevel")) + 1) >= _local1.getVar((_local2 + "Levels")).length){ this.setButtonActive(false); }; }; } override public function toString():String{ return ("UI_ShopButton"); } override protected function onOutMouse(_arg1:MouseEvent):void{ if (isTooExpensive){ wbVarManager.getInstance().setVar("descriptionBoxText", ""); } else { super.onOutMouse(_arg1); wbVarManager.getInstance().setVar("descriptionBoxText", ""); }; } } }//package Game.UI
Section 171
//UI_ShopOutput (Game.UI.UI_ShopOutput) package Game.UI { import flash.events.*; import WBE.Managers.*; import WBE.States.*; import WBE.UI.*; public class UI_ShopOutput extends wbUI_Output { private var descriptionText:String; public function UI_ShopOutput(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:wbState){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); if (this.itemData.shopType == "Detector"){ this.addEventListeners(); }; } private function overMouse(_arg1:MouseEvent):void{ var _local2:String = wbVarManager.getInstance().getVar((this.itemData.item + "Description")); wbVarManager.getInstance().setVar("descriptionBoxText", _local2); } private function addEventListeners():void{ this.addEventListener(MouseEvent.MOUSE_OVER, overMouse); this.addEventListener(MouseEvent.MOUSE_OUT, outMouse); } private function outMouse(_arg1:MouseEvent):void{ wbVarManager.getInstance().setVar("descriptionBoxText", ""); } override public function update():void{ var _local1 = ""; var _local2:wbVarManager = wbVarManager.getInstance(); var _local3:String = this.itemData.item; switch (this.itemData.shopType){ case "Name": _local1 = String(_local2.getVar((_local3 + "Name"))); break; case "Cur": _local1 = String(_local2.getVar((_local3 + "Levels"))[_local2.getVar((_local3 + "CurrentLevel"))]); break; case "Cost": if ((_local2.getVar((_local3 + "CurrentLevel")) + 1) < _local2.getVar((_local3 + "Levels")).length){ _local1 = String(_local2.getVar((_local3 + "Costs"))[_local2.getVar((_local3 + "CurrentLevel"))]); } else { _local1 = ""; }; break; case "Next": if ((_local2.getVar((_local3 + "CurrentLevel")) + 1) < _local2.getVar((_local3 + "Levels")).length){ _local1 = String(_local2.getVar((_local3 + "Levels"))[(_local2.getVar((_local3 + "CurrentLevel")) + 1)]); } else { _local1 = "--"; }; break; }; this.outputField.text = _local1; } override public function toString():String{ return ("UI_ShopOutput"); } } }//package Game.UI
Section 172
//UI_ShoppeEyes (Game.UI.UI_ShoppeEyes) package Game.UI { import flash.display.*; import WBE.Managers.*; import WBE.States.*; import WBE.Helpers.*; import WBE.UI.*; public class UI_ShoppeEyes extends wbUI_Output { private var leftPupil:MovieClip; private var rightPupilStartX:Number; private var rightPupilStartY:Number; private var maxDist:Number;// = 10 private var mc:MovieClip; private var currentState:String;// = "undefined" private var rightPupil:MovieClip; private var leftPupilStartX:Number; private var leftPupilStartY:Number; public function UI_ShoppeEyes(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:wbState){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); this.mc = MovieClip(wbAssetManager.getInstance().getGraphics("shoppeEyesMC")); this.addChild(this.mc); this.width = _arg4; this.height = _arg5; this.x = _arg2; this.y = _arg3; this.leftPupil = this.mc.pupilLeft; this.rightPupil = this.mc.pupilRight; this.leftPupilStartX = this.mc.pupilLeft.x; this.leftPupilStartY = this.mc.pupilLeft.y; this.rightPupilStartX = this.mc.pupilRight.x; this.rightPupilStartY = this.mc.pupilRight.y; } override public function update():void{ if (this.mc == null){ return; }; var _local1:wbVector2 = new wbVector2((this.mc.mouseX - this.leftPupilStartX), (this.mc.mouseY - this.leftPupilStartY)); if (_local1.length() > maxDist){ _local1.normalized(); _local1 = _local1.scale(this.maxDist); this.leftPupil.x = (leftPupilStartX + _local1.x); this.leftPupil.y = (leftPupilStartY + _local1.y); } else { this.leftPupil.x = this.mc.mouseX; this.leftPupil.y = this.mc.mouseY; }; var _local2:wbVector2 = new wbVector2((this.mc.mouseX - this.rightPupilStartX), (this.mc.mouseY - this.rightPupilStartY)); if (_local2.length() > maxDist){ _local2.normalized(); _local2 = _local2.scale(this.maxDist); this.rightPupil.x = (rightPupilStartX + _local2.x); this.rightPupil.y = (rightPupilStartY + _local2.y); } else { this.rightPupil.x = this.mc.mouseX; this.rightPupil.y = this.mc.mouseY; }; } override public function toString():String{ return ("UI_ShoppeEyes"); } } }//package Game.UI
Section 173
//UI_ShopShiftOutput (Game.UI.UI_ShopShiftOutput) package Game.UI { import flash.display.*; import WBE.Managers.*; import WBE.States.*; import WBE.UI.*; public class UI_ShopShiftOutput extends wbUI_Output { private var mc:MovieClip; public function UI_ShopShiftOutput(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:wbState){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); this.mc = MovieClip(wbAssetManager.getInstance().getGraphics("shiftMoveIndicator")); this.addChild(this.mc); this.width = _arg4; this.height = _arg5; this.x = _arg2; this.y = _arg3; this.mc.gotoAndStop(1); } override public function update():void{ if (this.mc == null){ return; }; var _local1:wbVarManager = wbVarManager.getInstance(); var _local2:String = this.itemData.item; switch (this.itemData.shopType){ case "Cur": if (_local1.getVar((_local2 + "Levels"))[_local1.getVar((_local2 + "CurrentLevel"))]){ this.mc.gotoAndStop(2); } else { this.mc.gotoAndStop(1); }; break; case "Next": if (_local1.getVar((_local2 + "Levels"))[_local1.getVar((_local2 + "CurrentLevel"))]){ this.mc.gotoAndStop(3); } else { this.mc.gotoAndStop(2); }; break; }; } override public function toString():String{ return ("UI_ShiftMove"); } } }//package Game.UI
Section 174
//UI_TextBalloonOutput (Game.UI.UI_TextBalloonOutput) package Game.UI { import flash.display.*; import WBE.Managers.*; import WBE.States.*; import caurina.transitions.*; import WBE.UI.*; public class UI_TextBalloonOutput extends wbUI_Output { private var balloonPadding:int;// = 20 private var tweening:Boolean;// = false private var balloon:MovieClip; public function UI_TextBalloonOutput(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:wbState){ this.balloon = MovieClip(wbAssetManager.getInstance().getGraphics(_arg1.balloonMC)); super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); this.balloon.x = (this.outputField.x - ((balloon.width - this.outputField.width) / 2)); this.balloon.y = (this.outputField.y - (this.balloonPadding * 0.5)); this.addChild(this.balloon); this.addChild(this.outputField); this.visible = false; } override public function update():void{ var _local2:Number; var _local1:String = wbVarManager.getInstance().getVar(this.itemData.varData); if (_local1 == ""){ this.visible = false; } else { this.visible = true; }; if (this.itemData.inGame){ _local2 = wbVarManager.getInstance().getVar("inGameTextBalloonShowTime"); if (((!((_local1 == ""))) && (!((_local1 == this.outputField.text))))){ this.visible = true; this.alpha = 1; this.scaleX = (this.scaleY = 0.9); this.outputField.text = _local1; Tweener.addTween(this, {scaleX:1, scaleY:1, delay:0, time:10, useFrames:true, transition:"easeOutExpo"}); this.tweening = false; }; if ((((_local2 > 0)) && (!(this.tweening)))){ this.tweening = true; Tweener.removeTweens(this); this.scaleX = (this.scaleY = 1); this.alpha = 1; if (_local2 != Infinity){ Tweener.addTween(this, {alpha:0, delay:_local2, time:15, useFrames:true, transition:"easeOutExpo", onComplete:removeBalloon}); }; }; } else { this.outputField.text = _local1; }; this.balloon.height = (this.outputField.textHeight + (this.balloonPadding * 2)); } private function removeBalloon():void{ wbVarManager.getInstance().setVar(this.itemData.varData, ""); wbVarManager.getInstance().setVar(this.itemData.showTime, 0); this.tweening = false; } override public function toString():String{ return ("UI_TextBalloonOutput"); } } }//package Game.UI
Section 175
//UI_Tutor (Game.UI.UI_Tutor) package Game.UI { import flash.display.*; import WBE.Managers.*; import WBE.States.*; import WBE.UI.*; public class UI_Tutor extends wbUI_Output { private var mc:MovieClip; private var currentState:String;// = "undefined" public static var TUTOR_PLAIN:String = "plain"; public static var TUTOR_VICTORY:String = "victory"; public static var TUTOR_PANIC:String = "panic"; public static var TUTOR_TALK:String = "talk"; public static var TUTOR_IDLE:String = "idle"; public static var TUTOR_SAD_TALK:String = "sadTalk"; public function UI_Tutor(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:wbState){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); this.mc = MovieClip(wbAssetManager.getInstance().getGraphics("larryStoryMC")); this.addChild(this.mc); this.mc.width = _arg4; this.mc.height = _arg5; this.x = _arg2; this.y = _arg3; if (this.mc.shadow != null){ this.mc.shadow.visible = false; }; } override public function update():void{ if (this.mc == null){ return; }; if (wbVarManager.getInstance().getVar("tutorStateHasChanged")){ this.mc.gotoAndPlay(wbVarManager.getInstance().getVar("tutorState")); this.currentState = wbVarManager.getInstance().getVar("tutorState"); wbVarManager.getInstance().setVar("tutorStateHasChanged", false); }; } override public function toString():String{ return ("UI_Tutor"); } } }//package Game.UI
Section 176
//webLink_7 (intro_fla.webLink_7) package intro_fla { import flash.display.*; import flash.events.*; import flash.net.*; public dynamic class webLink_7 extends MovieClip { public var webLinkText:SimpleButton; public function webLink_7(){ addFrameScript(0, frame1); } public function gotoWebpage(_arg1:Event):void{ var _local2:URLRequest; _local2 = new URLRequest("http://www.weirdbeard.nl/"); navigateToURL(_local2, "_blank"); } function frame1(){ webLinkText.addEventListener(MouseEvent.MOUSE_UP, gotoWebpage); } } }//package intro_fla
Section 177
//city1_287 (menuLib_fla.city1_287) package menuLib_fla { import flash.display.*; public dynamic class city1_287 extends MovieClip { public var hitBox:invisibleThing; public var buildings:MovieClip; public var base:MovieClip; } }//package menuLib_fla
Section 178
//city10_326 (menuLib_fla.city10_326) package menuLib_fla { import flash.display.*; public dynamic class city10_326 extends MovieClip { public var hitBox:invisibleThing; public var buildings:MovieClip; public var base:MovieClip; } }//package menuLib_fla
Section 179
//city11_335 (menuLib_fla.city11_335) package menuLib_fla { import flash.display.*; public dynamic class city11_335 extends MovieClip { public var hitBox:invisibleThing; public var buildings:MovieClip; public var base:MovieClip; } }//package menuLib_fla
Section 180
//city12_340 (menuLib_fla.city12_340) package menuLib_fla { import flash.display.*; public dynamic class city12_340 extends MovieClip { public var hitBox:invisibleThing; public var buildings:MovieClip; public var base:MovieClip; } }//package menuLib_fla
Section 181
//city13_350 (menuLib_fla.city13_350) package menuLib_fla { import flash.display.*; public dynamic class city13_350 extends MovieClip { public var hitBox:invisibleThing; public var buildings:MovieClip; public var base:MovieClip; } }//package menuLib_fla
Section 182
//city14_349 (menuLib_fla.city14_349) package menuLib_fla { import flash.display.*; public dynamic class city14_349 extends MovieClip { public var hitBox:invisibleThing; public var buildings:MovieClip; public var base:MovieClip; } }//package menuLib_fla
Section 183
//city15_352 (menuLib_fla.city15_352) package menuLib_fla { import flash.display.*; public dynamic class city15_352 extends MovieClip { public var hitBox:invisibleThing; public var buildings:MovieClip; public var base:MovieClip; } }//package menuLib_fla
Section 184
//city16_354 (menuLib_fla.city16_354) package menuLib_fla { import flash.display.*; public dynamic class city16_354 extends MovieClip { public var hitBox:invisibleThing; public var buildings:MovieClip; public var base:MovieClip; } }//package menuLib_fla
Section 185
//city17_358 (menuLib_fla.city17_358) package menuLib_fla { import flash.display.*; public dynamic class city17_358 extends MovieClip { public var hitBox:invisibleThing; public var buildings:MovieClip; public var base:MovieClip; } }//package menuLib_fla
Section 186
//city18_364 (menuLib_fla.city18_364) package menuLib_fla { import flash.display.*; public dynamic class city18_364 extends MovieClip { public var hitBox:invisibleThing; public var buildings:MovieClip; public var base:MovieClip; } }//package menuLib_fla
Section 187
//city19_366 (menuLib_fla.city19_366) package menuLib_fla { import flash.display.*; public dynamic class city19_366 extends MovieClip { public var hitBox:invisibleThing; public var buildings:MovieClip; public var base:MovieClip; } }//package menuLib_fla
Section 188
//city2_292 (menuLib_fla.city2_292) package menuLib_fla { import flash.display.*; public dynamic class city2_292 extends MovieClip { public var hitBox:invisibleThing; public var buildings:MovieClip; public var base:MovieClip; } }//package menuLib_fla
Section 189
//city20_373 (menuLib_fla.city20_373) package menuLib_fla { import flash.display.*; public dynamic class city20_373 extends MovieClip { public var hitBox:invisibleThing; public var buildings:MovieClip; public var base:MovieClip; } }//package menuLib_fla
Section 190
//city21_397 (menuLib_fla.city21_397) package menuLib_fla { import flash.display.*; public dynamic class city21_397 extends MovieClip { public var hitBox:invisibleThing; public var buildings:MovieClip; public var base:MovieClip; } }//package menuLib_fla
Section 191
//city22_400 (menuLib_fla.city22_400) package menuLib_fla { import flash.display.*; public dynamic class city22_400 extends MovieClip { public var hitBox:invisibleThing; public var buildings:MovieClip; public var base:MovieClip; } }//package menuLib_fla
Section 192
//city23_379 (menuLib_fla.city23_379) package menuLib_fla { import flash.display.*; public dynamic class city23_379 extends MovieClip { public var hitBox:invisibleThing; public var buildings:MovieClip; public var base:MovieClip; } }//package menuLib_fla
Section 193
//city24_383 (menuLib_fla.city24_383) package menuLib_fla { import flash.display.*; public dynamic class city24_383 extends MovieClip { public var hitBox:MovieClip; public var buildings:MovieClip; public var base:MovieClip; } }//package menuLib_fla
Section 194
//city3_296 (menuLib_fla.city3_296) package menuLib_fla { import flash.display.*; public dynamic class city3_296 extends MovieClip { public var hitBox:invisibleThing; public var buildings:MovieClip; public var base:MovieClip; } }//package menuLib_fla
Section 195
//city4_300 (menuLib_fla.city4_300) package menuLib_fla { import flash.display.*; public dynamic class city4_300 extends MovieClip { public var hitBox:invisibleThing; public var buildings:MovieClip; public var base:MovieClip; } }//package menuLib_fla
Section 196
//city5_306 (menuLib_fla.city5_306) package menuLib_fla { import flash.display.*; public dynamic class city5_306 extends MovieClip { public var hitBox:invisibleThing; public var buildings:MovieClip; public var base:MovieClip; } }//package menuLib_fla
Section 197
//city6_312 (menuLib_fla.city6_312) package menuLib_fla { import flash.display.*; public dynamic class city6_312 extends MovieClip { public var hitBox:invisibleThing; public var buildings:MovieClip; public var base:MovieClip; } }//package menuLib_fla
Section 198
//city7_344 (menuLib_fla.city7_344) package menuLib_fla { import flash.display.*; public dynamic class city7_344 extends MovieClip { public var hitBox:invisibleThing; public var buildings:MovieClip; public var base:MovieClip; } }//package menuLib_fla
Section 199
//city8_318 (menuLib_fla.city8_318) package menuLib_fla { import flash.display.*; public dynamic class city8_318 extends MovieClip { public var hitBox:invisibleThing; public var buildings:MovieClip; public var base:MovieClip; } }//package menuLib_fla
Section 200
//city9_323 (menuLib_fla.city9_323) package menuLib_fla { import flash.display.*; public dynamic class city9_323 extends MovieClip { public var hitBox:invisibleThing; public var buildings:MovieClip; public var base:MovieClip; } }//package menuLib_fla
Section 201
//creditsText_49 (menuLib_fla.creditsText_49) package menuLib_fla { import flash.display.*; public dynamic class creditsText_49 extends MovieClip { public var toArmorSite:kongregateLink; } }//package menuLib_fla
Section 202
//foregrounds_403 (menuLib_fla.foregrounds_403) package menuLib_fla { import flash.display.*; public dynamic class foregrounds_403 extends MovieClip { public var light:MovieClip; } }//package menuLib_fla
Section 203
//gameMenuTitle_472 (menuLib_fla.gameMenuTitle_472) package menuLib_fla { import flash.display.*; import flash.text.*; public dynamic class gameMenuTitle_472 extends MovieClip { public var textField:TextField; } }//package menuLib_fla
Section 204
//generalMenuBg_205 (menuLib_fla.generalMenuBg_205) package menuLib_fla { import flash.display.*; public dynamic class generalMenuBg_205 extends MovieClip { public var beamTest_mc:MovieClip; } }//package menuLib_fla
Section 205
//generalMenuBgTall_210 (menuLib_fla.generalMenuBgTall_210) package menuLib_fla { import flash.display.*; public dynamic class generalMenuBgTall_210 extends MovieClip { public var beamTest_mc:MovieClip; } }//package menuLib_fla
Section 206
//levelSelectMouseoverText_72 (menuLib_fla.levelSelectMouseoverText_72) package menuLib_fla { import flash.display.*; import flash.text.*; public dynamic class levelSelectMouseoverText_72 extends MovieClip { public var points:TextField; public var goldInfo:TextField; public var levelName:TextField; public var goals:TextField; } }//package menuLib_fla
Section 207
//mainMenuBG_183 (menuLib_fla.mainMenuBG_183) package menuLib_fla { import flash.display.*; public dynamic class mainMenuBG_183 extends MovieClip { public var beamTest_mc:MovieClip; } }//package menuLib_fla
Section 208
//menuTitle_452 (menuLib_fla.menuTitle_452) package menuLib_fla { import flash.display.*; import flash.text.*; public dynamic class menuTitle_452 extends MovieClip { public var textField:TextField; } }//package menuLib_fla
Section 209
//negenMeterSiteLinkButton_202 (menuLib_fla.negenMeterSiteLinkButton_202) package menuLib_fla { import flash.display.*; public dynamic class negenMeterSiteLinkButton_202 extends MovieClip { public var detector:invisibleThing; public function negenMeterSiteLinkButton_202(){ addFrameScript(9, frame10, 19, frame20, 29, frame30, 39, frame40); } function frame10(){ stop(); } function frame20(){ stop(); } function frame30(){ stop(); } function frame40(){ stop(); } } }//package menuLib_fla
Section 210
//progressSaved_429 (menuLib_fla.progressSaved_429) package menuLib_fla { import flash.display.*; public dynamic class progressSaved_429 extends MovieClip { public function progressSaved_429(){ addFrameScript(59, frame60); } function frame60(){ stop(); } } }//package menuLib_fla
Section 211
//siteLinkButton_203 (menuLib_fla.siteLinkButton_203) package menuLib_fla { import flash.display.*; public dynamic class siteLinkButton_203 extends MovieClip { public var detector:MovieClip; public function siteLinkButton_203(){ addFrameScript(19, frame20, 29, frame30, 39, frame40, 49, frame50); } function frame20(){ stop(); } function frame30(){ stop(); } function frame40(){ stop(); } function frame50(){ stop(); } } }//package menuLib_fla
Section 212
//sobcheckSiteLinkButton_201 (menuLib_fla.sobcheckSiteLinkButton_201) package menuLib_fla { import flash.display.*; public dynamic class sobcheckSiteLinkButton_201 extends MovieClip { public var detector:invisibleThing; public function sobcheckSiteLinkButton_201(){ addFrameScript(9, frame10, 19, frame20, 29, frame30, 39, frame40); } function frame10(){ stop(); } function frame20(){ stop(); } function frame30(){ stop(); } function frame40(){ stop(); } } }//package menuLib_fla
Section 213
//st_kasteel_389 (menuLib_fla.st_kasteel_389) package menuLib_fla { import flash.display.*; public dynamic class st_kasteel_389 extends MovieClip { public var building:MovieClip; public function st_kasteel_389(){ addFrameScript(9, frame10, 19, frame20); } function frame10(){ stop(); } function frame20(){ stop(); } } }//package menuLib_fla
Section 214
//st_kasteelRots_385 (menuLib_fla.st_kasteelRots_385) package menuLib_fla { import flash.display.*; public dynamic class st_kasteelRots_385 extends MovieClip { public var base:MovieClip; public function st_kasteelRots_385(){ addFrameScript(9, frame10, 19, frame20); } function frame10(){ stop(); } function frame20(){ stop(); } } }//package menuLib_fla
Section 215
//MochiAd (mochi.MochiAd) package mochi { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.system.*; import flash.net.*; public class MochiAd { public static function getVersion():String{ return ("2.7"); } public static function showClickAwayAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:2000, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{ }, ad_finished:function ():void{ }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }}; options = _slot1._parseOptions(options, DEFAULTS); clip = options.clip; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; if (!_slot1.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ _slot1._cleanup(mc); options.ad_finished(); }; var wh:Array = _slot1._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; mc.unloadAd = function ():void{ _slot1.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.rpc = function (_arg1:Number, _arg2:Object):void{ _slot1.rpc(clip, _arg1, _arg2); }; var sendHostProgress:Boolean; mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; chk["onEnterFrame"] = function ():void{ var _local4:Number; if (!this.parent){ delete this.onEnterFrame; return; }; var _local1:Object = this.parent._mochiad_ctr; var _local2:Number = (getTimer() - this.started); var _local3:Boolean; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; _local3 = true; chk.started = getTimer(); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (this.root == null){ _local3 = true; }; if (_local3){ delete this.onEnterFrame; }; }; doOnEnterFrame(chk); } public static function _isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function _allowDomains(_arg1:String):String{ var _local2:String = _arg1.split("/")[2].split(":")[0]; Security.allowDomain("*"); Security.allowDomain(_local2); Security.allowInsecureDomain("*"); Security.allowInsecureDomain(_local2); return (_local2); } public static function unload(_arg1:Object):Boolean{ if (((_arg1.clip) && (_arg1.clip._mochiad))){ _arg1 = _arg1.clip; }; if (_arg1.origFrameRate != undefined){ _arg1.stage.frameRate = _arg1.origFrameRate; }; if (!_arg1._mochiad){ return (false); }; if (_arg1._mochiad._containerLCName != undefined){ _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "notify", {id:"unload"}); }; if (_arg1._mochiad.onUnload){ _arg1._mochiad.onUnload(); }; delete _arg1._mochiad_loaded; delete _arg1._mochiad; return (true); } public static function showInterLevelAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }}; options = _slot1._parseOptions(options, DEFAULTS); clip = options.clip; var ad_msec:Number = 11000; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; var fadeout_time:Number = options.fadeout_time; delete options.fadeout_time; if (!_slot1.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ _slot1._cleanup(mc); options.ad_finished(); }; var wh:Array = _slot1._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { _slot1.unload(clip); delete this["onEnterFrame"]; }; }; mc.unloadAd = function ():void{ _slot1.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = (_arg1 - 250); }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ _slot1.rpc(clip, _arg1, _arg2); }; chk["onEnterFrame"] = function ():void{ var _local4:Number; if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; var _local1:Object = this.parent._mochiad_ctr; var _local2:Number = (getTimer() - this.started); var _local3:Boolean; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; chk.started = getTimer(); _slot1.adShowing(clip); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (_local2 > chk.ad_msec){ _local3 = true; }; if (_local3){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = this.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function _parseOptions(_arg1:Object, _arg2:Object):Object{ var _local4:String; var _local5:Array; var _local6:Number; var _local7:Array; var _local3:Object = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; if (_arg1){ for (_local4 in _arg1) { _local3[_local4] = _arg1[_local4]; }; }; if (_local3.clip == undefined){ throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite.")); }; _arg1 = _local3.clip.loaderInfo.parameters.mochiad_options; if (_arg1){ _local5 = _arg1.split("&"); _local6 = 0; while (_local6 < _local5.length) { _local7 = _local5[_local6].split("="); _local3[unescape(_local7[0])] = unescape(_local7[1]); _local6++; }; }; if (_local3.id == "test"){ trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!"); }; return (_local3); } public static function _cleanup(_arg1:Object):void{ var k:String; var lc:LocalConnection; var f:Function; var mc = _arg1; if (("lc" in mc)){ lc = mc.lc; f = function ():void{ try { lc.client = null; lc.close(); } catch(e:Error) { }; }; setTimeout(f, 0); }; var idx:Number = DisplayObjectContainer(mc).numChildren; while (idx > 0) { idx = (idx - 1); DisplayObjectContainer(mc).removeChildAt(idx); }; for (k in mc) { delete mc[k]; }; } public static function load(_arg1:Object):MovieClip{ var clip:Object; var k:String; var server:String; var hostname:String; var lc:LocalConnection; var name:String; var loader:Loader; var g:Function; var req:URLRequest; var v:Object; var options = _arg1; var DEFAULTS:Object = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"}; options = _slot1._parseOptions(options, DEFAULTS); options.swfv = 9; options.mav = _slot1.getVersion(); clip = options.clip; if (!_slot1._isNetworkAvailable()){ return (null); }; try { if (clip._mochiad_loaded){ return (null); }; } catch(e:Error) { throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); }; var depth:Number = options.depth; delete options.depth; var mc:MovieClip = createEmptyMovieClip(clip, "_mochiad", depth); var wh:Array = _slot1._getRes(options, clip); options.res = ((wh[0] + "x") + wh[1]); options.server = (options.server + options.id); delete options.id; clip._mochiad_loaded = true; if (clip.loaderInfo.loaderURL.indexOf("http") == 0){ options.as3_swf = clip.loaderInfo.loaderURL; }; var lv:URLVariables = new URLVariables(); for (k in options) { v = options[k]; if (!(v is Function)){ lv[k] = v; }; }; server = lv.server; delete lv.server; hostname = _allowDomains(server); lc = new LocalConnection(); lc.client = mc; name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_"); lc.allowDomain("*", "localhost"); lc.allowInsecureDomain("*", "localhost"); lc.connect(name); mc.lc = lc; mc.lcName = name; lv.lc = name; lv.st = getTimer(); loader = new Loader(); g = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); _slot1.unload(clip); }; loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g); req = new URLRequest(((server + ".swf?cacheBust=") + new Date().getTime())); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; loader.load(req); mc.addChild(loader); mc._mochiad_ctr = loader; return (mc); } public static function runMethod(_arg1:Object, _arg2:String, _arg3:Array):Object{ var _local4:Array = _arg2.split("."); var _local5:Number = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return (undefined); }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; if (typeof(_arg1[_local4[_local5]]) == "function"){ return (_arg1[_local4[_local5]].apply(_arg1, _arg3)); }; return (undefined); } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{ var _local4:MovieClip = new MovieClip(); if (((false) && (_arg3))){ _arg1.addChildAt(_local4, _arg3); } else { _arg1.addChild(_local4); }; _arg1[_arg2] = _local4; _local4["_name"] = _arg2; return (_local4); } public static function _getRes(_arg1:Object, _arg2:Object):Array{ var _local6:Array; var _local3:Object = _arg2.getBounds(_arg2.root); var _local4:Number = 0; var _local5:Number = 0; if (typeof(_arg1.res) != "undefined"){ _local6 = _arg1.res.split("x"); _local4 = parseFloat(_local6[0]); _local5 = parseFloat(_local6[1]); } else { _local4 = (_local3.xMax - _local3.xMin); _local5 = (_local3.yMax - _local3.yMin); }; if ((((_local4 == 0)) || ((_local5 == 0)))){ _local4 = _arg2.stage.stageWidth; _local5 = _arg2.stage.stageHeight; }; return ([_local4, _local5]); } public static function adShowing(_arg1:Object):void{ _arg1.origFrameRate = _arg1.stage.frameRate; _arg1.stage.frameRate = 30; } public static function getValue(_arg1:Object, _arg2:String):Object{ var _local3:Array = _arg2.split("."); var _local4:Number = 0; while (_local4 < (_local3.length - 1)) { if ((((_arg1[_local3[_local4]] == undefined)) || ((_arg1[_local3[_local4]] == null)))){ return (undefined); }; _arg1 = _arg1[_local3[_local4]]; _local4++; }; return (_arg1[_local3[_local4]]); } public static function rpc(_arg1:Object, _arg2:Number, _arg3:Object):void{ var _local4:Object; var _local5:Object; switch (_arg3.id){ case "setValue": _slot1.setValue(_arg1, _arg3.objectName, _arg3.value); break; case "getValue": _local4 = _slot1.getValue(_arg1, _arg3.objectName); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local4); break; case "runMethod": _local5 = _slot1.runMethod(_arg1, _arg3.method, _arg3.args); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local5); break; default: trace(("[mochiads rpc] unknown rpc id: " + _arg3.id)); }; } public static function setValue(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Array = _arg2.split("."); var _local5:Number = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return; }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; _arg1[_local4[_local5]] = _arg3; } public static function showPreGameAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var complete:Boolean; var unloaded:Boolean; var sendHostProgress:Boolean; var fn:Function; var r:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }, ad_progress:function (_arg1:Number):void{ }}; options = _slot1._parseOptions(options, DEFAULTS); if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){ options.ad_started(); fn = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); return; }; clip = options.clip; var ad_msec:Number = 11000; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; var fadeout_time:Number = options.fadeout_time; delete options.fadeout_time; if (!_slot1.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ _slot1._cleanup(mc); var fn:Function = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); }; var wh:Array = _slot1._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.x = (w * -0.5); chk.y = (h * -0.5); var bar:MovieClip = createEmptyMovieClip(chk, "_mochiad_bar", 4); if (options.no_progress_bar){ bar.visible = false; delete options.no_progress_bar; } else { bar.x = 10; bar.y = (h - 20); }; var bar_color:Number = options.color; delete options.color; var bar_background:Number = options.background; delete options.background; var bar_outline:Number = options.outline; delete options.outline; var backing_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 1); var backing:Object = backing_mc.graphics; backing.beginFill(bar_background); backing.moveTo(0, 0); backing.lineTo((w - 20), 0); backing.lineTo((w - 20), 10); backing.lineTo(0, 10); backing.lineTo(0, 0); backing.endFill(); var inside_mc:MovieClip = createEmptyMovieClip(bar, "_inside", 2); var inside:Object = inside_mc.graphics; inside.beginFill(bar_color); inside.moveTo(0, 0); inside.lineTo((w - 20), 0); inside.lineTo((w - 20), 10); inside.lineTo(0, 10); inside.lineTo(0, 0); inside.endFill(); inside_mc.scaleX = 0; var outline_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 3); var outline:Object = outline_mc.graphics; outline.lineStyle(0, bar_outline, 100); outline.moveTo(0, 0); outline.lineTo((w - 20), 0); outline.lineTo((w - 20), 10); outline.lineTo(0, 10); outline.lineTo(0, 0); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.last_pcnt = 0; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { _slot1.unload(clip); delete this["onEnterFrame"]; }; }; complete = false; unloaded = false; var f:Function = function (_arg1:Event):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); complete = true; if (unloaded){ _slot1.unload(clip); }; }; clip.loaderInfo.addEventListener(Event.COMPLETE, f); if ((clip.root is MovieClip)){ r = (clip.root as MovieClip); if (r.framesLoaded >= r.totalFrames){ complete = true; }; }; mc.unloadAd = function ():void{ unloaded = true; if (complete){ _slot1.unload(clip); }; }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = _arg1; }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ _slot1.rpc(clip, _arg1, _arg2); }; mc.rpcTestFn = function (_arg1:String):Object{ trace(("[MOCHIAD rpcTestFn] " + _arg1)); return (_arg1); }; mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; sendHostProgress = false; mc.sendHostLoadProgress = function (_arg1:String):void{ sendHostProgress = true; }; chk["onEnterFrame"] = function ():void{ var _local11:Number; if (((!(this.parent)) || (!(this.parent.parent)))){ delete this["onEnterFrame"]; return; }; var _local1:Object = this.parent.parent.root; var _local2:Object = this.parent._mochiad_ctr; var _local3:Number = (getTimer() - this.started); var _local4:Boolean; var _local5:Number = _local1.loaderInfo.bytesTotal; var _local6:Number = _local1.loaderInfo.bytesLoaded; if (complete){ _local6 = Math.max(1, _local6); _local5 = _local6; }; var _local7:Number = ((100 * _local6) / _local5); var _local8:Number = ((100 * _local3) / chk.ad_msec); var _local9:Object = this._mochiad_bar._inside; var _local10:Number = Math.min(100, Math.min(((_local7) || (0)), _local8)); _local10 = Math.max(this.last_pcnt, _local10); this.last_pcnt = _local10; _local9.scaleX = (_local10 * 0.01); options.ad_progress(_local10); if (sendHostProgress){ clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local7}); if (_local7 == 100){ sendHostProgress = false; }; }; if (!chk.showing){ _local11 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local11 > 0){ chk.showing = true; chk.started = getTimer(); _slot1.adShowing(clip); } else { if ((((_local3 > chk.ad_timeout)) && ((_local7 == 100)))){ options.ad_failed(); _local4 = true; }; }; }; if (_local3 > chk.ad_msec){ _local4 = true; }; if (((complete) && (_local4))){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = chk.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function showPreloaderAd(_arg1:Object):void{ trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0"); _slot1.showPreGameAd(_arg1); } public static function showTimedAd(_arg1:Object):void{ trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0"); _slot1.showInterLevelAd(_arg1); } public static function doOnEnterFrame(_arg1:MovieClip):void{ var mc = _arg1; var f:Function = function (_arg1:Object):void{ if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){ mc.onEnterFrame(); } else { _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; }; mc.addEventListener(Event.ENTER_FRAME, f); } } }//package mochi
Section 216
//wbPlayerCam (WBE.Cameras.wbPlayerCam) package WBE.Cameras { import flash.display.*; import WBE.Managers.*; import Game.GameWorld.*; import caurina.transitions.*; public class wbPlayerCam extends MovieClip { private var totalDist:Number; private var bottomBound:Number; private var pixelShiftLayer:MovieClip; private var _rotationZ:Number; private var scaleLayer:MovieClip; private var topBound:Number; private var effectLayer:MovieClip; private var destRotation:Number; private var xChange:Number;// = 0 private var backgroundsLayer:MovieClip; private var ySpeed:Number;// = 0 private var speed:Number; private var _zPos:Number; private var callBack:Function; private var f:Number;// = 10 private var rotationSpeed:Number;// = 0 private var moveStarted:Boolean;// = false private var staticBackgroundLayer:MovieClip; private var yChange:Number;// = 0 private var standardSpeed:Number;// = 0 private var _xPos:Number; private var foregroundsLayer:MovieClip; private var tweenSpeed:Boolean; private var xSpeed:Number;// = 0 private var oneZ:Number; private var leftBound:Number; private var rotLayer:MovieClip; private var rightBound:Number; private var zChange:Number;// = 0 private var desiredSpeed:Number; private var rotationChange:Number;// = 0 private var zoom:Number;// = 1000 private var pixelShift:Number;// = 1 private var worldLayer:MovieClip; private var zSpeed:Number;// = 0 private var destX:Number; private var destY:Number; private var destZ:Number; private var _yPos:Number; private static var allowInstantiation:Boolean; private static var instance:wbPlayerCam; public function wbPlayerCam(){ oneZ = (zoom * f); speed = standardSpeed; super(); if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use wbPlayerCam.getInstance() instead of new.")); }; } public function setRotation(_arg1:Number):void{ this.rotationZ = _arg1; } public function getRotation():Number{ return (this.rotationZ); } private function setSpeed():void{ var _local1:Number = Math.sqrt((Math.pow(Math.abs((this.getX() - this.destX)), 2) + Math.pow(Math.abs((this.getY() - this.destY)), 2))); var _local2:Number = ((this.totalDist - _local1) / this.totalDist); var _local3:Number = this.desiredSpeed; var _local4:Number = 0.5; var _local5:Number = 0.2; var _local6:Number = (_local3 * Math.exp((-(Math.pow((_local2 - _local4), 2)) / (2 * Math.pow(_local5, 2))))); this.speed = _local6; if (this.speed < (1 / 5000)){ this.speed = (1 / 5000); }; } public function setScale(_arg1:Number):void{ setZ(scaleToZ(_arg1)); } public function init():void{ this.staticBackgroundLayer = new MovieClip(); this.addChild(this.staticBackgroundLayer); this.effectLayer = new MovieClip(); this.addChild(this.effectLayer); pixelShiftLayer = new MovieClip(); this.addChild(pixelShiftLayer); rotLayer = new MovieClip(); pixelShiftLayer.addChild(rotLayer); scaleLayer = new MovieClip(); rotLayer.addChild(scaleLayer); backgroundsLayer = new MovieClip(); scaleLayer.addChild(backgroundsLayer); worldLayer = new MovieClip(); scaleLayer.addChild(worldLayer); foregroundsLayer = new MovieClip(); scaleLayer.addChild(foregroundsLayer); this.x = (wbSettingsManager.getInstance().getWorldSettings("width") / 2); this.y = (wbSettingsManager.getInstance().getWorldSettings("height") / 2); this.worldLayer.y = wbSettingsManager.getInstance().getWorldSettings("height"); this.setX(0); this.setY(0); this.setZ(oneZ); this.setRotation(0); this.destX = this.xPos; this.destY = this.yPos; this.destZ = this.zPos; this.destRotation = this.rotationZ; this.zSpeed = this.standardSpeed; } public function getEffectLayer():MovieClip{ return (this.effectLayer); } public function getForegroundsLayer():MovieClip{ return (this.foregroundsLayer); } public function get yPos():Number{ return (this._yPos); } public function moveTo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{ this.callBack = null; this.destX = _arg1; this.destY = _arg2; this.destZ = _arg3; this.destRotation = _arg4; this.xChange = Math.abs((this.getX() - this.destX)); this.yChange = Math.abs((this.getY() - this.destY)); this.zChange = Math.abs((this.getZ() - this.destZ)); this.rotationChange = Math.abs((this.getRotation() - this.destRotation)); } public function setY(_arg1:Number):void{ this.yPos = _arg1; } public function removeInstance():void{ instance = null; allowInstantiation = true; } public function setX(_arg1:Number):void{ this.xPos = _arg1; } public function set yPos(_arg1:Number):void{ if (this._yPos != _arg1){ if (((!(isNaN(this.bottomBound))) && ((_arg1 < this.bottomBound)))){ this._yPos = this.bottomBound; } else { if (((!(isNaN(this.topBound))) && ((_arg1 > this.topBound)))){ this._yPos = this.topBound; } else { this._yPos = _arg1; }; }; this.worldLayer.y = (this._yPos + wbSettingsManager.getInstance().getWorldSettings("height")); World.getInstance().setBackgoundsY(this._yPos); }; } public function attachWorld(_arg1:MovieClip):void{ worldLayer.addChild(_arg1); } public function setZ(_arg1:Number):void{ this.zPos = _arg1; } public function setBottomBound(_arg1:Number):void{ this.bottomBound = (_arg1 + (wbSettingsManager.getInstance().getWorldSettings("height") / 2)); } public function set rotationZ(_arg1:Number):void{ if (_arg1 > 360){ _arg1 = (_arg1 - 360); } else { if (_arg1 < 0){ _arg1 = (_arg1 + 360); }; }; this._rotationZ = _arg1; this.rotLayer.rotation = -(this._rotationZ); } override public function toString():String{ return ("wbPlayerCam"); } public function moveRotation(_arg1:Number):void{ if (((!((_arg1 == 0))) && ((Math.abs(_arg1) < 0.01)))){ _arg1 = ((_arg1 / Math.abs(_arg1)) * 0.01); }; this.rotationZ = (this.rotationZ + _arg1); this.setRotation(this.rotationZ); } public function moveToWithCallback(_arg1:Number, _arg2:Number, _arg3:Function, _arg4:String=null, _arg5:Number=NaN):void{ this.callBack = _arg3; if (((!(isNaN(this.leftBound))) && ((_arg1 < this.leftBound)))){ this.destX = this.leftBound; } else { if (((!(isNaN(this.rightBound))) && ((_arg1 > this.rightBound)))){ this.destX = this.rightBound; } else { this.destX = _arg1; }; }; if (((!(isNaN(this.bottomBound))) && ((_arg2 < this.bottomBound)))){ this.destY = this.bottomBound; } else { if (((!(isNaN(this.topBound))) && ((_arg2 > this.topBound)))){ this.destY = this.topBound; } else { this.destY = _arg2; }; }; this.destZ = this.zPos; this.destRotation = this.rotationZ; this.xChange = Math.abs((this.getX() - this.destX)); this.yChange = Math.abs((this.getY() - this.destY)); this.zChange = 0; this.rotationChange = 0; this.totalDist = Math.sqrt((Math.pow(this.xChange, 2) + Math.pow(this.yChange, 2))); this.tweenSpeed = false; switch (_arg4){ case "time": this.speed = (1 / _arg5); break; case "speed": this.speed = (1 / (this.totalDist / _arg5)); break; case "tween": this.desiredSpeed = (1 / _arg5); this.tweenSpeed = true; default: this.speed = this.standardSpeed; }; this.moveStarted = true; } public function set xPos(_arg1:Number):void{ if (this._xPos != _arg1){ if (((!(isNaN(this.leftBound))) && ((_arg1 < this.leftBound)))){ this._xPos = this.leftBound; } else { if (((!(isNaN(this.rightBound))) && ((_arg1 > this.rightBound)))){ this._xPos = this.rightBound; } else { this._xPos = _arg1; }; }; this.worldLayer.x = -(this._xPos); World.getInstance().setBackgoundsX(this._xPos); }; } public function get zPos():Number{ return (this._zPos); } public function setLeftBound(_arg1:Number):void{ this.leftBound = (_arg1 + (wbSettingsManager.getInstance().getWorldSettings("width") / 2)); } public function removeWorld(_arg1:MovieClip):void{ worldLayer.removeChild(_arg1); } public function scaleToZ(_arg1:Number):Number{ return (((zoom * f) / _arg1)); } public function moveX(_arg1:Number):void{ var _local2:Number; if (_arg1 != 0){ _local2 = (this.xPos + _arg1); setX(_local2); }; } public function moveY(_arg1:Number):void{ var _local2:Number; if (_arg1 != 0){ _local2 = (this.yPos + _arg1); setY(_local2); }; } public function moveZ(_arg1:Number):void{ if (((!((_arg1 == 0))) && ((Math.abs(_arg1) < 0.001)))){ _arg1 = ((_arg1 / Math.abs(_arg1)) * 0.001); }; this.zPos = (this.zPos + _arg1); this.setZ(this.zPos); } public function moveToX(_arg1:Number, _arg2:Number=20):void{ Tweener.removeTweens(this, "xPos"); Tweener.addTween(this, {xPos:_arg1, time:_arg2, useFrames:true, transition:"easeOutExpo"}); } public function moveToY(_arg1:Number, _arg2:Number=20):void{ Tweener.removeTweens(this, "yPos"); Tweener.addTween(this, {yPos:_arg1, time:_arg2, useFrames:true, transition:"easeOutExpo"}); } public function moveToZ(_arg1:Number, _arg2:Number=20):void{ Tweener.removeTweens(this, "zPos"); Tweener.addTween(this, {zPos:_arg1, time:_arg2, useFrames:true, transition:"easeOutExpo"}); } public function zToScale(_arg1:Number):Number{ return (((zoom * f) / _arg1)); } public function get xPos():Number{ return (this._xPos); } public function getStaticBackgroundLayer():MovieClip{ return (this.staticBackgroundLayer); } public function getY():Number{ return (yPos); } public function getZ():Number{ return (zPos); } public function update():void{ var _local1:Boolean; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; if (this.moveStarted){ if (this.tweenSpeed){ this.setSpeed(); }; _local1 = false; _local2 = this.getZ(); if (this.getZ() < this.destZ){ this.moveZ(zSpeed); if (this.getZ() > this.destZ){ this.setZ(this.destZ); } else { _local1 = true; }; } else { if (this.getZ() > this.destZ){ this.moveZ(-(zSpeed)); if (this.getZ() <= this.destZ){ this.setZ(this.destZ); } else { _local1 = true; }; }; }; if (zChange > 0.01){ _local4 = Math.abs((_local2 - this.getZ())); _local3 = (_local4 / zChange); } else { _local3 = speed; }; if (_local3 == 0){ _local3 = speed; }; if (this.getX() > this.destX){ this.moveX((-(xChange) * _local3)); if (this.getX() < this.destX){ this.setX(this.destX); } else { _local1 = true; }; } else { if (this.getX() < this.destX){ this.moveX((xChange * _local3)); if (this.getX() > this.destX){ this.setX(this.destX); } else { _local1 = true; }; }; }; if (this.getY() > this.destY){ this.moveY((-(yChange) * _local3)); if (this.getY() < this.destY){ this.setY(this.destY); } else { _local1 = true; }; } else { if (this.getY() < this.destY){ this.moveY((yChange * _local3)); if (this.getY() > this.destY){ this.setY(this.destY); } else { _local1 = true; }; }; }; if (rotationSpeed > 0){ if (this.getRotation() < this.destRotation){ this.moveRotation((rotationChange * _local3)); if (this.getRotation() >= this.destRotation){ this.setRotation(this.destRotation); } else { _local1 = true; }; } else { if (this.getRotation() > this.destRotation){ _local5 = this.getRotation(); this.moveRotation((rotationChange * _local3)); if ((((_local5 > this.getRotation())) && ((this.getRotation() >= this.destRotation)))){ this.setRotation(this.destRotation); } else { _local1 = true; }; }; }; } else { if (this.getRotation() > this.destRotation){ this.moveRotation((rotationChange * _local3)); if (this.getRotation() <= this.destRotation){ this.setRotation(this.destRotation); } else { _local1 = true; }; } else { if (this.getRotation() < this.destRotation){ _local5 = this.getRotation(); this.moveRotation((rotationChange * _local3)); if ((((_local5 < this.getRotation())) && ((this.getRotation() <= this.destRotation)))){ this.setRotation(this.destRotation); } else { _local1 = true; }; }; }; }; if (!_local1){ moveStarted = false; if (this.callBack != null){ this.callBack.call(); this.callBack = null; }; }; }; if (wbSettingsManager.getInstance().getWorldSettings("pixelShift")){ this.x = (this.x + this.pixelShift); this.pixelShiftLayer.x = (this.pixelShiftLayer.x - this.pixelShift); this.y = (this.y + this.pixelShift); this.pixelShiftLayer.y = (this.pixelShiftLayer.y - this.pixelShift); this.pixelShift = -(this.pixelShift); }; } public function setRightBound(_arg1:Number):void{ this.rightBound = (_arg1 - (wbSettingsManager.getInstance().getWorldSettings("width") / 2)); } public function setTopBound(_arg1:Number):void{ this.topBound = (_arg1 - (wbSettingsManager.getInstance().getWorldSettings("height") / 2)); } public function get rotationZ():Number{ return (this._rotationZ); } public function getX():Number{ return (this.xPos); } public function resetBounds():void{ this.leftBound = NaN; this.rightBound = NaN; this.topBound = NaN; this.bottomBound = NaN; } public function getBackgroundsLayer():MovieClip{ return (this.backgroundsLayer); } public function set zPos(_arg1:Number):void{ var _local2:Number; if (this._zPos != _arg1){ this._zPos = _arg1; _local2 = this.zToScale(this._zPos); this.scaleLayer.scaleX = _local2; this.scaleLayer.scaleY = _local2; }; } public static function getInstance():wbPlayerCam{ if (instance == null){ allowInstantiation = true; instance = new (wbPlayerCam); allowInstantiation = false; }; return (instance); } } }//package WBE.Cameras
Section 217
//Log (WBE.Debug.Log) package WBE.Debug { import WBE.Managers.*; public class Log { private var includeTime:Boolean;// = true private var lowestPriority:int; private var writeToTrace:Boolean;// = true private var writeToConsole:Boolean;// = true private static var allowInstantiation:Boolean; private static var instance:Log; public function Log(){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use Log.getInstance() instead of new.")); }; this.lowestPriority = wbSettingsManager.getInstance().getSettings("logPriority"); this.includeTime = wbSettingsManager.getInstance().getSettings("logTime"); this.writeToConsole = wbSettingsManager.getInstance().getSettings("logConsole"); this.writeToTrace = wbSettingsManager.getInstance().getSettings("logTrace"); } public function toString():String{ return ("Log"); } public function removeInstance():void{ instance = null; allowInstantiation = true; } public function write(_arg1, _arg2:int, _arg3:String="", _arg4:String=""):void{ var _local5:String; if (_arg2 >= this.lowestPriority){ _local5 = new String(); if (this.includeTime){ _local5 = (_local5 + (new Date().toString() + " ")); }; if (_arg3 != ""){ _local5 = (_local5 + (_arg3 + "::")); }; if (_arg4 != ""){ _local5 = (_local5 + (_arg4 + ":")); }; if (!(((_arg3 == "")) && ((_arg4 == "")))){ _local5 = (_local5 + " "); }; _local5 = (_local5 + _arg1); if (this.writeToConsole){ wbConsole.getInstance().write(_local5); }; if (this.writeToTrace){ trace(_local5); }; }; } public static function i(_arg1:Object):void{ var _local2 = ""; _local2 = _arg1.toString(); Log.getInstance().write("init", -5, _local2, ""); } public static function t(_arg1, _arg2:Object=null, _arg3:String=""):void{ var _local4 = ""; if (_arg2 != null){ _local4 = _arg2.toString(); }; Log.getInstance().write(_arg1, 0, _local4, _arg3); } public static function f(_arg1:Object, _arg2:String):void{ var _local3 = ""; _local3 = _arg1.toString(); Log.getInstance().write("execute", -4, _local3, _arg2); } public static function w(_arg1, _arg2:Object=null, _arg3:String=""):void{ var _local4 = ""; if (_arg2 != null){ _local4 = _arg2.toString(); }; Log.getInstance().write(_arg1, 0, _local4, _arg3); } public static function wp(_arg1, _arg2:int, _arg3:Object=null, _arg4:String=""):void{ var _local5 = ""; if (_arg3 != null){ _local5 = _arg3.toString(); }; Log.getInstance().write(_arg1, _arg2, _local5, _arg4); } public static function getInstance():Log{ if (instance == null){ allowInstantiation = true; instance = new (Log); allowInstantiation = false; }; return (instance); } public static function io(_arg1, _arg2:Object=null, _arg3:String=""):void{ var _local4 = ""; if (_arg2 != null){ _local4 = _arg2.toString(); }; Log.getInstance().write(_arg1, -3, _local4, _arg3); } } }//package WBE.Debug
Section 218
//wbConsole (WBE.Debug.wbConsole) package WBE.Debug { import flash.display.*; import flash.events.*; import WBE.Managers.*; public class wbConsole extends MovieClip { private var mc:MovieClip; private static var allowInstantiation:Boolean; private static var instance:wbConsole; public function wbConsole(){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use wbConsole.getInstance() instead of new.")); }; this.mc = MovieClip(wbAssetManager.getInstance().getGraphics("Console")); this.addChild(this.mc); this.mc.background.addEventListener(MouseEvent.MOUSE_DOWN, downMouse); this.mc.background.addEventListener(MouseEvent.MOUSE_UP, upMouse); this.visible = false; } public function upMouse(_arg1:MouseEvent):void{ this.stopDrag(); } public function toggle():void{ this.visible = !(this.visible); } public function removeInstance():void{ instance = null; allowInstantiation = true; } public function downMouse(_arg1:MouseEvent):void{ this.startDrag(); } override public function toString():String{ return ("wbConsole"); } public function write(_arg1:String):void{ var _local2:String = ((_arg1 + "\n") + this.mc.outputPane.text); this.mc.outputPane.text = _local2; } public static function getInstance():wbConsole{ if (instance == null){ allowInstantiation = true; instance = new (wbConsole); allowInstantiation = false; }; return (instance); } } }//package WBE.Debug
Section 219
//wbDynamicObject (WBE.GameWorld.wbDynamicObject) package WBE.GameWorld { import flash.display.*; import flash.geom.*; public class wbDynamicObject extends wbGameObject { private var speed:Point; override public function update():void{ } override public function toString():String{ return ("wbDynamicObject"); } override public function collide(_arg1:MovieClip):void{ } } }//package WBE.GameWorld
Section 220
//wbGameObject (WBE.GameWorld.wbGameObject) package WBE.GameWorld { import flash.display.*; import flash.events.*; import WBE.Managers.*; public class wbGameObject extends MovieClip { protected var _yPos:Number; protected var shadowMC:DisplayObject; private var removeCallBack:Object; protected var state:int; private var worldWidth:int; protected var mc:MovieClip; private var removeCounter:int; private var worldHeight:int; protected var _xPos:Number; protected var _rotationZ:Number;// = 0 protected var id:String; private var cyclical:Boolean; private var gm:wbAssetManager; protected var hitBox:MovieClip; public static var HIT:int = 1; public static var DEAD:int = 3; public static var NORMAL:int = 0; public static var DYING:int = 2; public function wbGameObject():void{ cyclical = Boolean(wbSettingsManager.getInstance().getWorldSettings("cyclical")); worldWidth = wbSettingsManager.getInstance().getWorldSettings("width"); worldHeight = wbSettingsManager.getInstance().getWorldSettings("height"); super(); gm = wbAssetManager.getInstance(); this.state = wbGameObject.NORMAL; var _local1:MovieClip = MovieClip(gm.getGraphics(this.id)); this.mc = _local1; this.hitBox = this.mc.hitBox; this.shadowMC = gm.getShadowMC(this.id); this.addChild(this.mc); this.updateGraphics(); } public function setRotation(_arg1:Number):void{ this._rotationZ = _arg1; this.updateGraphics(); } public function updateGraphics():void{ if (cyclical){ if (this._xPos <= (-(worldWidth) / 2)){ this._xPos = (this._xPos + worldWidth); } else { if (this._xPos > (worldWidth / 2)){ this._xPos = (this._xPos - worldWidth); }; }; if (this._yPos <= (-(worldHeight) / 2)){ this._yPos = (this._yPos + worldHeight); } else { if (this._yPos > (worldHeight / 2)){ this._yPos = (this._yPos - worldHeight); }; }; }; gm = wbAssetManager.getInstance(); this.gm.convertObjectOrientation(this); if (shadowMC != null){ this.shadowMC.x = this.x; this.shadowMC.y = this.y; }; } public function getMC():MovieClip{ return (this.mc); } public function set rotationZ(_arg1:Number):void{ this._rotationZ = _arg1; this.updateGraphics(); } public function remove(_arg1:Object):void{ this.state = wbGameObject.DYING; this.removeCallBack = _arg1; this.stage.addEventListener(Event.ENTER_FRAME, monitorDeath); this.removeCounter = 0; this.startRemoval(); } public function set yPos(_arg1:Number):void{ this._yPos = _arg1; this.updateGraphics(); } public function update():void{ } public function removeShadow():void{ this.shadowMC = null; } public function get rotationZ():Number{ return (this._rotationZ); } public function getRotation():Number{ return (this._rotationZ); } public function getShadow():DisplayObject{ return (this.shadowMC); } public function destroy(_arg1:Object):void{ this.stage.removeEventListener(Event.ENTER_FRAME, monitorDeath); _arg1.call(_arg1, this); } public function get yPos():Number{ return (this._yPos); } private function monitorDeath(_arg1:Event):void{ this.removeCounter++; if (this.removeCounter > 1000){ wbStateManager.getInstance().error((("The object with id " + this.id) + " was removed, but the state was never set to DEAD"), this); }; if (this.state == wbGameObject.DEAD){ this.destroy(this.removeCallBack); }; } public function getHitBox():MovieClip{ return (this.hitBox); } public function getState():int{ return (this.state); } public function getID():String{ return (this.id); } protected function startRemoval():void{ this.state = wbGameObject.DEAD; } override public function toString():String{ return ("wbGameObject"); } public function get xPos():Number{ return (this._xPos); } public function collide(_arg1:MovieClip):void{ } public function set xPos(_arg1:Number):void{ this._xPos = _arg1; this.updateGraphics(); } } }//package WBE.GameWorld
Section 221
//wbWorld (WBE.GameWorld.wbWorld) package WBE.GameWorld { import flash.display.*; import WBE.Managers.*; import flash.utils.*; import WBE.Helpers.*; import Game.GameWorld.*; import WBE.Cameras.*; import flash.filters.*; public class wbWorld extends MovieClip { private var backgroundOffsetX:int;// = 0 private var backgroundOffsetY:int;// = 0 protected var cyclical:Boolean; protected var shadowMask:MovieClip; protected var staticObjects:Dictionary; protected var objectLayer:MovieClip; protected var worldWidth:int; protected var dynamicObjects:Dictionary; protected var worldHeight:int; protected var objectLayers:Dictionary; protected var doCollision:Boolean; protected var player:Player; protected var backgroundList:Dictionary; protected var playerLayer:MovieClip; protected static var shadowLayer:int = 2; public function wbWorld(_arg1:Object){ cyclical = Boolean(wbSettingsManager.getInstance().getWorldSettings("cyclical")); doCollision = Boolean(wbSettingsManager.getInstance().getWorldSettings("doCollision")); worldWidth = wbSettingsManager.getInstance().getWorldSettings("width"); worldHeight = wbSettingsManager.getInstance().getWorldSettings("height"); super(); if (!(_arg1 is World)){ throw (new Error("Error: wbWorld must be created from World.")); }; } public function setBackgoundsY(_arg1:Number):void{ var _local2:Object; for each (_local2 in this.backgroundList) { if (_local2.vertiFixed){ } else { if (_local2.parralax){ _local2.mc.y = (((-(_arg1) + this.backgroundOffsetY) + _local2.yOffset) / _local2.bgZ); } else { _local2.mc.y = ((-(_arg1) + this.backgroundOffsetY) + _local2.yOffset); }; }; }; } public function destroyDynamicObject(_arg1:wbGameObject):void{ if (dynamicObjects[_arg1] != null){ if (_arg1.getShadow() != null){ removeShadow(_arg1); }; objectLayers[dynamicObjects[_arg1].layer].removeChild(_arg1); delete this.dynamicObjects[_arg1]; }; } private function sortBackgrounds():void{ var _local2:Object; var _local3:Number; var _local1:Array = new Array(); for each (_local2 in this.backgroundList) { _local1.push(_local2); }; _local1.sortOn("bgZ", Array.NUMERIC); _local3 = 0; while (_local3 < _local1.length) { if (_local1[_local3].bgZ <= 0){ wbPlayerCam.getInstance().getBackgroundsLayer().addChild(_local1[_local3].mc); } else { wbPlayerCam.getInstance().getForegroundsLayer().addChild(_local1[_local3].mc); }; _local3++; }; } public function getRelativePosition(_arg1:wbGameObject, _arg2:wbGameObject):wbVector2{ var _local3:int = (_arg2.xPos - _arg1.xPos); var _local4:int = (_arg2.yPos - _arg1.yPos); if (cyclical){ if (_local3 <= (-(this.worldWidth) / 2)){ _local3 = (_local3 + this.worldWidth); } else { if (_local3 > (this.worldWidth / 2)){ _local3 = (_local3 - this.worldWidth); }; }; if (_local4 <= (-(this.worldHeight) / 2)){ _local4 = (_local4 + this.worldHeight); } else { if (_local4 > (this.worldHeight / 2)){ _local4 = (_local4 - this.worldHeight); }; }; }; return (new wbVector2(_local3, _local4)); } public function addStaticObject(_arg1:wbGameObject, _arg2:int):void{ var _local3:int; if (_arg2 >= shadowLayer){ _local3 = (_arg2 + 1); } else { _local3 = _arg2; }; createLayersBelow(_local3); this.staticObjects[_arg1] = {object:_arg1, layer:_local3}; if (this.objectLayers[_local3] == null){ this.objectLayers[_local3] = new MovieClip(); this.objectLayer.addChildAt(this.objectLayers[_local3], _local3); }; this.objectLayers[_local3].addChild(_arg1); if (_arg1.getShadow() != null){ this.addShadow(_arg1); }; } public function init():void{ this.objectLayer = new MovieClip(); this.addChild(this.objectLayer); this.backgroundList = new Dictionary(); World.getInstance().deleteBackgrounds(); wbAssetManager.getInstance().getBackgroundData(); this.playerLayer = new MovieClip(); this.addChild(this.playerLayer); this.staticObjects = new Dictionary(true); this.dynamicObjects = new Dictionary(true); this.objectLayers = new Dictionary(); } public function emptyLayer(_arg1:int):void{ var _local2:int; var _local3:Object; var _local4:int; if (_arg1 >= shadowLayer){ _local2 = (_arg1 + 1); } else { _local2 = _arg1; }; if (objectLayers[_local2] != null){ _local4 = objectLayers[_local2].numChildren; for each (_local3 in this.dynamicObjects) { if (_local3.layer == _local2){ _local3.object.destroy(destroyDynamicObject); }; }; for each (_local3 in this.staticObjects) { if (_local3.layer == _local2){ _local3.object.destroy(destroyStaticObject); }; }; }; } override public function toString():String{ return ("wbWorld"); } public function getBackgroundByBackgroundID(_arg1:String):MovieClip{ var _local2:Object; for each (_local2 in this.backgroundList) { if (_local2.backgroundID == _arg1){ return (_local2.mc); }; }; wbStateManager.getInstance().error((("background with backgroundID " + _arg1) + " does not exist")); return (null); } public function addShadow(_arg1:MovieClip):void{ if (this.objectLayers[shadowLayer] == null){ createLayersBelow(shadowLayer); createShadowLayer(); }; var _local2:MovieClip = _arg1.getShadow(); if (_local2 == null){ return; }; shadowMask.addChild(_local2); _local2.x = _arg1.x; _local2.y = _arg1.y; _local2.scaleX = _arg1.getMC().scaleX; _local2.scaleY = _arg1.getMC().scaleY; } private function checkCollisions():void{ var _local1:Object; if (player){ for each (_local1 in this.staticObjects) { if (_local1.object.getState() == wbGameObject.NORMAL){ if (this.player.getHitBox().hitTestObject(_local1.object.getHitBox())){ this.player.collide(_local1.object); }; }; }; for each (_local1 in this.dynamicObjects) { if (_local1.object.getState() == wbGameObject.NORMAL){ if (this.player.getHitBox().hitTestObject(_local1.object.getHitBox())){ this.player.collide(_local1.object); }; }; }; }; } public function removeDynamicObject(_arg1:wbGameObject):void{ if (dynamicObjects[_arg1] != null){ if (_arg1.getShadow() != null){ removeShadow(_arg1); }; _arg1.remove(destroyDynamicObject); }; } public function addDynamicObject(_arg1:wbGameObject, _arg2:int):void{ var _local3:int; if (_arg2 >= shadowLayer){ _local3 = (_arg2 + 1); } else { _local3 = _arg2; }; createLayersBelow(_local3); this.dynamicObjects[_arg1] = {object:_arg1, layer:_local3}; if (this.objectLayers[_local3] == null){ this.objectLayers[_local3] = new MovieClip(); this.objectLayer.addChildAt(this.objectLayers[_local3], _local3); }; this.objectLayers[_local3].addChild(_arg1); if (_arg1.getShadow() != null){ addShadow(_arg1); }; } public function removeShadow(_arg1:wbGameObject):void{ shadowMask.removeChild(_arg1.getShadow()); _arg1.removeShadow(); } public function getDynamicObjects():Dictionary{ return (this.dynamicObjects); } public function step():void{ var _local1:Object; if (doCollision){ this.checkCollisions(); }; for each (_local1 in this.dynamicObjects) { _local1.object.update(); }; if (this.player){ this.player.update(); }; } public function attachBackground(_arg1:Object):void{ var _local2:Number; var _local3:BlurFilter; var _local4:Array; var _local5:Number; _arg1.mc.x = (_arg1.mc.x + this.backgroundOffsetX); _arg1.mc.y = (_arg1.mc.y + this.backgroundOffsetY); _arg1.mc.x = (_arg1.mc.x + _arg1.xOffset); _arg1.mc.y = (_arg1.mc.y + _arg1.yOffset); setBackgoundsX(wbPlayerCam.getInstance().getX()); setBackgoundsY(wbPlayerCam.getInstance().getY()); if (_arg1.blurWithZ){ _local2 = (Math.sqrt(Math.abs(_arg1.bgZ)) * 5); _local3 = new BlurFilter(_local2, _local2); _local4 = _arg1.mc.filters; _local4.push(_local3); _arg1.mc.filters = _local4; }; if (_arg1.scaleWithZ){ _local5 = 1; if (_arg1.bgZ < 0){ _local5 = Math.abs((1 / ((_arg1.bgZ - 10) / 10))); }; if (_arg1.bgZ > 0){ _local5 = (1 * ((_arg1.bgZ + 10) / 10)); }; _arg1.mc.scaleX = (_arg1.mc.scaleX * _local5); _arg1.mc.scaleY = (_arg1.mc.scaleY * _local5); }; this.backgroundList[_arg1.mc] = _arg1; sortBackgrounds(); } public function deleteBackgrounds():void{ var _local1:Object; for each (_local1 in this.backgroundList) { if (wbPlayerCam.getInstance().getBackgroundsLayer().getChildByName(_local1.mc.name) != null){ wbPlayerCam.getInstance().getBackgroundsLayer().removeChild(_local1.mc); } else { if (wbPlayerCam.getInstance().getForegroundsLayer().getChildByName(_local1.mc.name) != null){ wbPlayerCam.getInstance().getForegroundsLayer().removeChild(_local1.mc); }; }; delete _local1.mc; }; this.backgroundList = new Dictionary(); } public function addPlayer():Player{ this.player = Player.getInstance(); this.playerLayer.addChild(player); return (this.player); } public function setBackgroundOffset(_arg1:Number, _arg2:Number):void{ this.backgroundOffsetX = _arg1; this.backgroundOffsetY = _arg2; } public function getDistance(_arg1:wbGameObject, _arg2:wbGameObject):Number{ var _local3:int = Math.abs((_arg2.x - _arg1.x)); var _local4:int = Math.abs((_arg2.y - _arg1.y)); if (cyclical){ if (_local3 > (this.worldWidth / 2)){ _local3 = (this.worldWidth - _local3); }; if (_local4 > (this.worldHeight / 2)){ _local4 = (this.worldHeight - _local4); }; }; var _local5:Number = Math.sqrt(((_local3 * _local3) + (_local4 * _local4))); return (_local5); } public function removeWorld():void{ var _local1:Object; for each (_local1 in this.dynamicObjects) { _local1.object.destroy(destroyDynamicObject); }; for each (_local1 in this.staticObjects) { _local1.object.destroy(destroyStaticObject); }; this.removeChild(this.objectLayer); this.removeChild(this.playerLayer); } public function removeStaticObject(_arg1:wbGameObject):void{ if (staticObjects[_arg1] != null){ if (_arg1.getShadow() != null){ removeShadow(_arg1); }; _arg1.remove(destroyStaticObject); }; } private function createLayersBelow(_arg1:int):void{ var _local2:int; while (_local2 < _arg1) { if (this.objectLayers[_local2] == null){ if (_local2 == shadowLayer){ this.createShadowLayer(); } else { this.objectLayers[_local2] = new MovieClip(); this.objectLayer.addChildAt(this.objectLayers[_local2], _local2); }; }; _local2++; }; } private function createShadowLayer():void{ var _local1:MovieClip = new MovieClip(); _local1.graphics.beginFill(0); _local1.graphics.drawRect((-(worldWidth) / 2), (-(worldHeight) / 2), (worldWidth * 2), (worldHeight * 2)); _local1.graphics.endFill(); _local1.alpha = 0.3; this.objectLayers[shadowLayer] = _local1; this.objectLayer.addChildAt(this.objectLayers[shadowLayer], shadowLayer); this.shadowMask = new MovieClip(); this.objectLayers[shadowLayer].mask = this.shadowMask; this.objectLayers[shadowLayer].addChild(shadowMask); } public function destroyStaticObject(_arg1:wbGameObject):void{ if (staticObjects[_arg1] != null){ if (_arg1.getShadow() != null){ removeShadow(_arg1); }; objectLayers[staticObjects[_arg1].layer].removeChild(_arg1); delete this.staticObjects[_arg1]; }; } public function getObjectNr():int{ var _local2:MovieClip; var _local1:int; for each (_local2 in objectLayers) { _local1 = (_local1 + _local2.numChildren); }; return (_local1); } public function setBackgoundsX(_arg1:Number):void{ var _local2:Object; for each (_local2 in this.backgroundList) { if (_local2.horiFixed){ } else { if (_local2.parralax){ _local2.mc.x = (((_arg1 + this.backgroundOffsetX) + _local2.xOffset) / _local2.bgZ); } else { _local2.mc.x = ((_arg1 + this.backgroundOffsetX) + _local2.xOffset); }; }; }; } } }//package WBE.GameWorld
Section 222
//Copier (WBE.Helpers.Copier) package WBE.Helpers { public class Copier { public static function copyArray(_arg1:Array):Array{ var _local3:*; var _local2:Array = new Array(); var _local4:int; while (_local4 < _arg1.length) { _local3 = _arg1[_local4]; if ((((((((_local3 is Number)) || ((_local3 is int)))) || ((_local3 is String)))) || ((_local3 is Boolean)))){ _local2.push(_local3); } else { if ((_local3 is Array)){ _local2.push(Copier.copyArray(_local3)); } else { _local2.push(_local3); }; }; _local4++; }; return (_local2); } public static function copyObject(_arg1:Object):Object{ var _local3:*; var _local4:String; var _local2:Object = new Object(); for (_local4 in _arg1) { _local3 = _arg1[_local4]; if ((((((((_local3 is Number)) || ((_local3 is int)))) || ((_local3 is String)))) || ((_local3 is Boolean)))){ _local2[_local4] = _local3; } else { if ((_local3 is Array)){ _local2[_local4] = Copier.copyArray(_local3); } else { _local2[_local4] = _local3; }; }; }; return (_local2); } } }//package WBE.Helpers
Section 223
//MD5 (WBE.Helpers.MD5) package WBE.Helpers { public class MD5 { public static const HEX_FORMAT_LOWERCASE:uint = 0; public static const HEX_FORMAT_UPPERCASE:uint = 1; public static const BASE64_PAD_CHARACTER_DEFAULT_COMPLIANCE:String = ""; public static const BASE64_PAD_CHARACTER_RFC_COMPLIANCE:String = "="; public static var hexcase:uint = 0; public static var b64pad:String = ""; public static function md5_gg(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn(((_arg2 & _arg4) | (_arg3 & ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function md5_cmn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Number{ return (safe_add(bit_rol(safe_add(safe_add(_arg2, _arg1), safe_add(_arg4, _arg6)), _arg5), _arg3)); } public static function binl_md5(_arg1:Array, _arg2:Number):Array{ var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; _arg1[(_arg2 >> 5)] = (_arg1[(_arg2 >> 5)] | (128 << (_arg2 % 32))); _arg1[((((_arg2 + 64) >>> 9) << 4) + 14)] = _arg2; var _local3:Number = 1732584193; var _local4:Number = -271733879; var _local5:Number = -1732584194; var _local6:Number = 271733878; var _local7:Number = 0; while (_local7 < _arg1.length) { _local8 = _local3; _local9 = _local4; _local10 = _local5; _local11 = _local6; _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 7, -680876936); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 1)], 12, -389564586); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 17, 606105819); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 3)], 22, -1044525330); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 7, -176418897); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 5)], 12, 1200080426); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 17, -1473231341); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 7)], 22, -45705983); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 7, 1770035416); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 9)], 12, -1958414417); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 17, -42063); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 11)], 22, -1990404162); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 7, 1804603682); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 13)], 12, -40341101); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 17, -1502002290); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 15)], 22, 1236535329); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 5, -165796510); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 6)], 9, -1069501632); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 14, 643717713); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 0)], 20, -373897302); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 5, -701558691); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 10)], 9, 38016083); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 14, -660478335); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 4)], 20, -405537848); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 5, 568446438); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 14)], 9, -1019803690); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 14, -187363961); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 8)], 20, 1163531501); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 5, -1444681467); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 2)], 9, -51403784); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 14, 1735328473); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 12)], 20, -1926607734); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 4, -378558); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 8)], 11, -2022574463); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 16, 1839030562); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 14)], 23, -35309556); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 4, -1530992060); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 4)], 11, 1272893353); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 16, -155497632); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 10)], 23, -1094730640); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 4, 681279174); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 0)], 11, -358537222); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 16, -722521979); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 6)], 23, 76029189); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 4, -640364487); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 12)], 11, -421815835); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 16, 530742520); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 2)], 23, -995338651); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 6, -198630844); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 7)], 10, 1126891415); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 15, -1416354905); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 5)], 21, -57434055); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 6, 1700485571); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 3)], 10, -1894986606); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 15, -1051523); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 1)], 21, -2054922799); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 6, 1873313359); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 15)], 10, -30611744); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 15, -1560198380); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 13)], 21, 1309151649); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 6, -145523070); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 11)], 10, -1120210379); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 15, 718787259); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 9)], 21, -343485551); _local3 = safe_add(_local3, _local8); _local4 = safe_add(_local4, _local9); _local5 = safe_add(_local5, _local10); _local6 = safe_add(_local6, _local11); _local7 = (_local7 + 16); }; return ([_local3, _local4, _local5, _local6]); } public static function str2rstr_utf16le(_arg1:String):String{ var _local2 = ""; var _local3:Number = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode((_arg1.charCodeAt(_local3) & 0xFF), ((_arg1.charCodeAt(_local3) >>> 8) & 0xFF))); _local3++; }; return (_local2); } public static function hex_hmac_md5(_arg1:String, _arg2:String):String{ return (rstr2hex(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)))); } public static function binl2rstr(_arg1:Array):String{ var _local2 = ""; var _local3:Number = 0; while (_local3 < (_arg1.length * 32)) { _local2 = (_local2 + String.fromCharCode(((_arg1[(_local3 >> 5)] >>> (_local3 % 32)) & 0xFF))); _local3 = (_local3 + 8); }; return (_local2); } public static function md5_ff(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn(((_arg2 & _arg3) | (~(_arg2) & _arg4)), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function md5_ii(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn((_arg3 ^ (_arg2 | ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function rstr2binl(_arg1:String):Array{ var _local3:Number; var _local2:Array = new Array((_arg1.length >> 2)); _local3 = 0; while (_local3 < _local2.length) { _local2[_local3] = 0; _local3++; }; _local3 = 0; while (_local3 < (_arg1.length * 8)) { _local2[(_local3 >> 5)] = (_local2[(_local3 >> 5)] | ((_arg1.charCodeAt((_local3 / 8)) & 0xFF) << (_local3 % 32))); _local3 = (_local3 + 8); }; return (_local2); } public static function md5_vm_test():Boolean{ return ((hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72")); } public static function b64_md5(_arg1:String):String{ return (rstr2b64(rstr_md5(str2rstr_utf8(_arg1)))); } public static function any_hmac_md5(_arg1:String, _arg2:String, _arg3:String):String{ return (rstr2any(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)), _arg3)); } public static function hex_md5(_arg1:String):String{ return (rstr2hex(rstr_md5(str2rstr_utf8(_arg1)))); } public static function bit_rol(_arg1:Number, _arg2:Number):Number{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } public static function encrypt(_arg1:String):String{ return (hex_md5(_arg1)); } public static function md5_hh(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn(((_arg2 ^ _arg3) ^ _arg4), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function rstr2hex(_arg1:String):String{ var _local4:Number; var _local2:String = (hexcase) ? "0123456789ABCDEF" : "0123456789abcdef"; var _local3 = ""; var _local5:Number = 0; while (_local5 < _arg1.length) { _local4 = _arg1.charCodeAt(_local5); _local3 = (_local3 + (_local2.charAt(((_local4 >>> 4) & 15)) + _local2.charAt((_local4 & 15)))); _local5++; }; return (_local3); } public static function any_md5(_arg1:String, _arg2:String):String{ return (rstr2any(rstr_md5(str2rstr_utf8(_arg1)), _arg2)); } public static function b64_hmac_md5(_arg1:String, _arg2:String):String{ return (rstr2b64(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)))); } public static function rstr2b64(_arg1:String):String{ var _local6:Number; var _local7:Number; var _local2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; var _local3 = ""; var _local4:Number = _arg1.length; var _local5:Number = 0; while (_local5 < _local4) { _local6 = (((_arg1.charCodeAt(_local5) << 16) | (((_local5 + 1) < _local4)) ? (_arg1.charCodeAt((_local5 + 1)) << 8) : 0) | (((_local5 + 2) < _local4)) ? _arg1.charCodeAt((_local5 + 2)) : 0); _local7 = 0; while (_local7 < 4) { if (((_local5 * 8) + (_local7 * 6)) > (_arg1.length * 8)){ _local3 = (_local3 + b64pad); } else { _local3 = (_local3 + _local2.charAt(((_local6 >>> (6 * (3 - _local7))) & 63))); }; _local7++; }; _local5 = (_local5 + 3); }; return (_local3); } public static function safe_add(_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))); } public static function str2rstr_utf8(_arg1:String):String{ var _local4:Number; var _local5:Number; var _local2 = ""; var _local3:Number = -1; while (++_local3 < _arg1.length) { _local4 = _arg1.charCodeAt(_local3); _local5 = (((_local3 + 1) < _arg1.length)) ? _arg1.charCodeAt((_local3 + 1)) : 0; if ((((((((0xD800 <= _local4)) && ((_local4 <= 56319)))) && ((0xDC00 <= _local5)))) && ((_local5 <= 57343)))){ _local4 = ((65536 + ((_local4 & 1023) << 10)) + (_local5 & 1023)); _local3++; }; if (_local4 <= 127){ _local2 = (_local2 + String.fromCharCode(_local4)); } else { if (_local4 <= 2047){ _local2 = (_local2 + String.fromCharCode((192 | ((_local4 >>> 6) & 31)), (128 | (_local4 & 63)))); } else { if (_local4 <= 0xFFFF){ _local2 = (_local2 + String.fromCharCode((224 | ((_local4 >>> 12) & 15)), (128 | ((_local4 >>> 6) & 63)), (128 | (_local4 & 63)))); } else { if (_local4 <= 2097151){ _local2 = (_local2 + String.fromCharCode((240 | ((_local4 >>> 18) & 7)), (128 | ((_local4 >>> 12) & 63)), (128 | ((_local4 >>> 6) & 63)), (128 | (_local4 & 63)))); }; }; }; }; }; return (_local2); } public static function rstr_hmac_md5(_arg1:String, _arg2:String):String{ var _local3:Array = rstr2binl(_arg1); if (_local3.length > 16){ _local3 = binl_md5(_local3, (_arg1.length * 8)); }; var _local4:Array = new Array(16); var _local5:Array = new Array(16); var _local6:Number = 0; while (_local6 < 16) { _local4[_local6] = (_local3[_local6] ^ 909522486); _local5[_local6] = (_local3[_local6] ^ 1549556828); _local6++; }; var _local7:Array = binl_md5(_local4.concat(rstr2binl(_arg2)), (0x0200 + (_arg2.length * 8))); return (binl2rstr(binl_md5(_local5.concat(_local7), (0x0200 + 128)))); } public static function str2rstr_utf16be(_arg1:String):String{ var _local2 = ""; var _local3:Number = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode(((_arg1.charCodeAt(_local3) >>> 8) & 0xFF), (_arg1.charCodeAt(_local3) & 0xFF))); _local3++; }; return (_local2); } public static function rstr2any(_arg1:String, _arg2:String):String{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Array; var _local3:Number = _arg2.length; var _local4:Array = []; var _local9:Array = new Array((_arg1.length / 2)); _local5 = 0; while (_local5 < _local9.length) { _local9[_local5] = ((_arg1.charCodeAt((_local5 * 2)) << 8) | _arg1.charCodeAt(((_local5 * 2) + 1))); _local5++; }; while (_local9.length > 0) { _local8 = []; _local7 = 0; _local5 = 0; while (_local5 < _local9.length) { _local7 = ((_local7 << 16) + _local9[_local5]); _local6 = Math.floor((_local7 / _local3)); _local7 = (_local7 - (_local6 * _local3)); if ((((_local8.length > 0)) || ((_local6 > 0)))){ _local8[_local8.length] = _local6; }; _local5++; }; _local4[_local4.length] = _local7; _local9 = _local8; }; var _local10 = ""; _local5 = (_local4.length - 1); while (_local5 >= 0) { _local10 = (_local10 + _arg2.charAt(_local4[_local5])); _local5--; }; return (_local10); } public static function rstr_md5(_arg1:String):String{ return (binl2rstr(binl_md5(rstr2binl(_arg1), (_arg1.length * 8)))); } } }//package WBE.Helpers
Section 224
//wbCircleFlowMap (WBE.Helpers.wbCircleFlowMap) package WBE.Helpers { import flash.display.*; public class wbCircleFlowMap extends MovieClip { private var colorCircleBitmap:Bitmap; private var transformationLayer:MovieClip; public static const INWARD:int = 1; public static const COUNTERCLOCKWISE:int = 3; public static const CLOCKWISE:int = 2; public static const OUTWARD:int = 0; public function wbCircleFlowMap(_arg1:Number, _arg2:Number, _arg3:Boolean=true, _arg4:Number=0, _arg5:int=2):void{ var _local10:Number; var _local11:wbVector2; var _local12:wbVector2; var _local13:Number; var _local14:Number; super(); var _local6:Number = Math.max(_arg1, _arg2); var _local7:Number = (_local6 / 2); var _local8:BitmapData = new BitmapData(_local6, _local6, true, 2139029759); this.colorCircleBitmap = new Bitmap(_local8); this.transformationLayer = new MovieClip(); this.transformationLayer.addChild(this.colorCircleBitmap); this.addChild(this.transformationLayer); switch (_arg5){ case wbCircleFlowMap.CLOCKWISE: this.transformationLayer.width = _arg1; this.transformationLayer.height = _arg2; break; case wbCircleFlowMap.COUNTERCLOCKWISE: this.transformationLayer.rotation = 180; this.transformationLayer.width = _arg1; this.transformationLayer.height = _arg2; this.transformationLayer.x = _arg1; this.transformationLayer.y = _arg2; break; case wbCircleFlowMap.OUTWARD: this.transformationLayer.width = _arg2; this.transformationLayer.height = _arg1; this.transformationLayer.rotation = 90; this.transformationLayer.x = _arg1; break; case wbCircleFlowMap.INWARD: this.transformationLayer.width = _arg2; this.transformationLayer.height = _arg1; this.transformationLayer.rotation = 270; this.transformationLayer.y = _arg2; break; }; var _local9:Number = 0; while (_local9 < _local8.width) { _local10 = 0; while (_local10 < _local8.height) { _local11 = new wbVector2(0, 0); _local11.x = (_local9 - (_local8.width / 2)); _local11.y = (_local10 - (_local8.height / 2)); _local12 = new wbVector2(0, 0); _local13 = _local11.length(); _local12.x = (((_local11.x / _local7) * 127.5) + 127.5); _local12.y = (((_local11.y / _local7) * 127.5) + 127.5); _local12.x = (0xFF - _local12.x); _local14 = 0xFF; if (_arg3){ if (_local13 > _local7){ } else { if (_local13 < _arg4){ _local14 = 0xFF; } else { _local14 = (0xFF * (1 - ((_local13 - _arg4) / (_local7 - _arg4)))); }; }; }; if (_local13 > _local7){ _local14 = 0; }; _local8.setPixel32(_local9, _local10, RGBtoHEXwithAlpha(_local14, _local12.x, _local12.y, 0)); _local10++; }; _local9++; }; } private function RGBtoHEXwithAlpha(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ var _local5:Number = ((((_arg1 << 24) ^ (_arg2 << 16)) ^ (_arg3 << 8)) ^ _arg4); return (_local5); } private function RGBtoHEX(_arg1:Number, _arg2:Number, _arg3:Number):Number{ var _local4:Number = (((_arg1 << 16) ^ (_arg2 << 8)) ^ _arg3); return (_local4); } override public function toString():String{ return ("wbCircleFlowMap"); } private static function HEXtoRGB(_arg1:Number):Object{ var _local2:Number = (_arg1 >> 16); var _local3:Number = ((_arg1 ^ (_local2 << 16)) >> 8); var _local4:Number = ((_arg1 ^ (_local2 << 16)) ^ (_local3 << 8)); return ({r:_local2, g:_local3, b:_local4}); } } }//package WBE.Helpers
Section 225
//wbDatabaseConnection (WBE.Helpers.wbDatabaseConnection) package WBE.Helpers { import flash.events.*; import WBE.Managers.*; import flash.utils.*; import flash.net.*; public class wbDatabaseConnection { private var callback:Object; private var local:SharedObject; private var sendXML:XML; private var callbackWithObject:Boolean; private var requestWB:URLRequest; private var key:String; public function wbDatabaseConnection(_arg1:String, _arg2:String, _arg3:String):void{ var gameName = _arg1; var key = _arg2; var url = _arg3; super(); if (wbSettingsManager.getInstance().getSettings("localDB")){ try { this.local = SharedObject.getLocal(gameName); } catch(error:Error) { if (wbSettingsManager.getInstance().getSettings("traces")){ trace(("SharedObject Error:" + error.toString())); }; }; } else { this.key = key; this.requestWB = new URLRequest(); this.requestWB.url = (((url + "standard") + gameName) + ".php"); }; this.sendXML = new XML(); this.sendXML = <db></db> ; this.sendXML["game"] = gameName; } public function doAction(_arg1:Dictionary, _arg2:Object, _arg3:Boolean=false):void{ this.callback = _arg2; this.callbackWithObject = _arg3; prepareXML(_arg1); sendData(); } private function loaderMissing(_arg1:IOErrorEvent):void{ if (wbSettingsManager.getInstance().getSettings("traces")){ trace("ERROR loader missing"); }; } public function toString():String{ return ("wbDatabaseConnection"); } private function prepareXML(_arg1:Dictionary):void{ var _local2:String; var _local3:String; for (_local3 in _arg1) { switch (_local3){ case "table": this.sendXML["table"] = _arg1[_local3].table; break; case "recordid": this.sendXML["recordid"] = _arg1[_local3].recordid; break; case "select": this.sendXML["action"] = _local3; for (_local2 in _arg1[_local3]) { this.sendXML[_local3][_local2] = _arg1[_local3][_local2].column; }; break; case "sort": this.sendXML[_local3].column = _arg1[_local3].column; this.sendXML[_local3].direction = _arg1[_local3].direction; if (_arg1[_local3].top){ this.sendXML[_local3].top = _arg1[_local3].top; }; break; case "custom": case "insert": case "update": this.sendXML["action"] = _local3; case "where": case "default": for (_local2 in _arg1[_local3]) { this.sendXML[_local3][_arg1[_local3][_local2].column] = _arg1[_local3][_local2].value; this.sendXML[_local3][_arg1[_local3][_local2].column].@type = _arg1[_local3][_local2].type; }; break; }; }; } private function sendData():void{ var _local1:URLLoader = new URLLoader(); var _local2:URLVariables = new URLVariables(); var _local3:String = MD5.hex_hmac_md5(this.key, this.sendXML); _local2.xmlData = String(this.sendXML); _local2.hashData = _local3; this.requestWB.data = _local2; _local1.load(this.requestWB); _local1.addEventListener(Event.COMPLETE, receiveData); _local1.addEventListener(IOErrorEvent.IO_ERROR, loaderMissing); } private function receiveData(_arg1:Event):void{ var _local3:Object; var _local4:String; var _local5:*; var _local6:Class; var _local7:int; if (wbSettingsManager.getInstance().getSettings("traces")){ trace(("receiveData XML:\n " + _arg1.target.data), this); }; var _local2:XML = new XML(_arg1.target.data); if (((this.callbackWithObject) && (!((this.callback == null))))){ _local3 = {xml:_local2}; this.callback.call(this.callback, _local3); this.callback = null; } else { if (this.callback != null){ _local7 = 0; while (_local7 < _local2.children().length()) { _local4 = String(_local2.children()[_local7].name()); _local5 = _local2.children()[_local7]; if (wbSettingsManager.getInstance().getSettings("traces")){ trace(((("callback " + _local4) + " ") + _local5), this); }; _local6 = wbVarManager.getInstance().getVarType(_local4); wbVarManager.getInstance().setVar(_local4, _local6(_local5)); _local7++; }; this.callback.call(this.callback); this.callback = null; }; }; } } }//package WBE.Helpers
Section 226
//wbFlookie (WBE.Helpers.wbFlookie) package WBE.Helpers { import WBE.Managers.*; import flash.net.*; public class wbFlookie { private var callback:Object; private var callbackWithObject:Boolean; private var local:SharedObject; private var key:String; public function wbFlookie():void{ super(); try { this.local = SharedObject.getLocal(wbSettingsManager.getInstance().getSettings("gameName")); } catch(error:Error) { if (wbSettingsManager.getInstance().getSettings("traces")){ trace(("SharedObject Error:" + error.toString())); }; }; } public function doAction(_arg1:String, _arg2:Object, _arg3:Boolean=false, _arg4:Object=null):void{ var _local8:Object; var _local9:Number; var _local14:Array; var _local15:XML; var _local16:int; if (wbSettingsManager.getInstance().getSettings("traces")){ trace("wbFlookie doAction:", _arg1); }; var _local5:int = wbVarManager.getInstance().getVar("saveSlot"); var _local6:Array = new Array(); var _local7:Array = new Array(); var _local10:int; var _local11:XML = new XML(); _local11 = <body></body> ; var _local12:Object = new Object(); var _local13 = ""; if (_arg4 != null){ if (((!((_arg4.gameType == ""))) && ((((_arg4.gameTypeValue == "")) || ((_arg4.gameTypeValue == null)))))){ _local13 = wbVarManager.getInstance().getVar("gameType"); } else { if (((!((_arg4.gameTypeValue == ""))) || (!((_arg4.gameTypeValue == null))))){ _local13 = _arg4.gameTypeValue; }; }; }; switch (_arg1){ case "slots": wbVarManager.getInstance().initVars(); if (this.local.data["slotNames"]){ _local16 = 0; wbVarManager.getInstance().setVar("slotNames", this.local.data["slotNames"]); _local10 = 0; while (_local10 < this.local.data["slotNames"].length) { if (this.local.data["slotNames"][_local10]){ _local16++; _local5 = _local10; }; _local10++; }; if (_local16 > 0){ wbVarManager.getInstance().setVar("existingSaveGame", true); }; if (_local16 == 1){ wbVarManager.getInstance().setVar("saveSlot", _local5); _arg3 = true; _local12.exit = "one"; }; } else { wbVarManager.getInstance().setVar("slotNames", []); }; break; case "save": wbVarManager.getInstance().setVar("existingSaveGame", true); if (wbVarManager.getInstance().getVar("nameSaveGame") == ""){ wbVarManager.getInstance().setVar("nameSaveGame", wbVarManager.getInstance().getForm("saveName").name); }; _local14 = wbVarManager.getInstance().getAllVarNames(); _local10 = 0; while (_local10 < _local14.length) { _local8 = new Object(); _local8.name = _local14[_local10]; _local8.value = wbVarManager.getInstance().getVar(_local14[_local10]); _local7.push(_local8); _local10++; }; this.local.data[("varArray" + String(_local5))] = _local7; if (this.local.data["slotNames"]){ _local6 = this.local.data["slotNames"]; }; _local6[_local5] = wbVarManager.getInstance().getVar("nameSaveGame"); this.local.data["slotNames"] = _local6; localStore(); break; case "load": if (this.local.data[("varArray" + String(_local5))]){ _local7 = this.local.data[("varArray" + String(_local5))]; _local10 = 0; while (_local10 < _local7.length) { wbVarManager.getInstance().setVar(_local7[_local10].name, _local7[_local10].value); _local10++; }; }; break; case "writescore": if (this.local.data[("scoreArray" + _local13)]){ _local7 = this.local.data[("scoreArray" + _local13)]; }; _local8 = new Object(); _local8.name = wbVarManager.getInstance().getForm("score").name; _local8.score = wbVarManager.getInstance().getVar("score"); _local7.push(_local8); this.local.data[("scoreArray" + _local13)] = _local7; localStore(); break; case "highscore": if (this.local.data[("scoreArray" + _local13)]){ _local7 = this.local.data[("scoreArray" + _local13)]; }; _local7.sortOn("score", (Array.NUMERIC | Array.DESCENDING)); _local9 = _local7.length; if (_arg4.listSize != null){ if (_local9 > _arg4.listSize){ _local9 = _arg4.listSize; }; }; _local10 = 0; while (_local10 < _local9) { _local15 = new XML(); _local15 = <item> <rank></rank> <name></name> <score></score> </item> ; _local15["rank"] = (_local10 + 1); _local15["name"] = _local7[_local10].name; _local15["score"] = _local7[_local10].score; _local11.appendChild(_local15); _local10++; }; _local12 = {xml:_local11}; break; default: if (wbSettingsManager.getInstance().getSettings("traces")){ trace("ERROR wbFlookie: Unknown action: ", _arg1); }; }; wbVarManager.getInstance().setVar("progressSaved", true); if (((_arg3) && (!((_arg2 == null))))){ _arg2.call(_arg2, _local12); } else { if (_arg2 != null){ _arg2.call(_arg2); _arg2 = null; }; }; } public function toString():String{ return ("wbFlookie"); } public function clear():void{ this.local.clear(); } private function localStore():void{ this.local.flush(); this.local.close(); } } }//package WBE.Helpers
Section 227
//wbFormValidator (WBE.Helpers.wbFormValidator) package WBE.Helpers { import WBE.Managers.*; public class wbFormValidator { private static var allowInstantiation:Boolean; private static var instance:wbFormValidator; public function wbFormValidator(){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use wbFormValidator.getInstance() instead of new.")); }; } public function validateField(_arg1:String, _arg2):Boolean{ switch (_arg1){ case "obligatory": if (_arg2 == ""){ return (false); }; break; case "email": if (_arg2.indexOf("@") == -1){ return (false); }; break; case "default": wbStateManager.getInstance().error(("Default error: " + _arg1), this); break; }; return (true); } public function toString():String{ return ("wbFormValidator"); } public static function getInstance():wbFormValidator{ if (instance == null){ allowInstantiation = true; instance = new (wbFormValidator); allowInstantiation = false; }; return (instance); } } }//package WBE.Helpers
Section 228
//wbKeyConverter (WBE.Helpers.wbKeyConverter) package WBE.Helpers { import WBE.Debug.*; public class wbKeyConverter { public function toString():String{ return ("wbKeyConverter"); } public function getKeyCode(_arg1:String):int{ var _local2:int; switch (_arg1){ case "left": _local2 = 37; break; case "up": _local2 = 38; break; case "right": _local2 = 39; break; case "down": _local2 = 40; break; case "space": _local2 = 32; break; case "enter": _local2 = 13; break; case "esc": _local2 = 27; break; case "backspace": _local2 = 8; break; case "shift": _local2 = 16; break; case "ctrl": _local2 = 17; break; case "alt": _local2 = 18; break; case "caps": _local2 = 20; break; case "tab": _local2 = 9; break; case "del": _local2 = 46; break; case "'": _local2 = 22; break; case ",": _local2 = 188; break; case "-": _local2 = 189; break; case ".": _local2 = 190; break; case "/": _local2 = 191; break; case "0": _local2 = 48; break; case "1": _local2 = 49; break; case "2": _local2 = 50; break; case "3": _local2 = 51; break; case "4": _local2 = 52; break; case "5": _local2 = 53; break; case "6": _local2 = 54; break; case "7": _local2 = 55; break; case "8": _local2 = 56; break; case "9": _local2 = 57; break; case ";": _local2 = 186; break; case "=": _local2 = 187; break; case "a": _local2 = 65; break; case "b": _local2 = 66; break; case "c": _local2 = 67; break; case "d": _local2 = 68; break; case "e": _local2 = 69; break; case "f": _local2 = 70; break; case "g": _local2 = 71; break; case "h": _local2 = 72; break; case "i": _local2 = 73; break; case "j": _local2 = 74; break; case "k": _local2 = 75; break; case "l": _local2 = 76; break; case "m": _local2 = 77; break; case "n": _local2 = 78; break; case "o": _local2 = 79; break; case "p": _local2 = 80; break; case "q": _local2 = 81; break; case "r": _local2 = 82; break; case "s": _local2 = 83; break; case "t": _local2 = 84; break; case "u": _local2 = 85; break; case "v": _local2 = 86; break; case "w": _local2 = 87; break; case "x": _local2 = 88; break; case "y": _local2 = 89; break; case "z": _local2 = 90; break; case "[": _local2 = 219; break; case "\\": _local2 = 220; break; case "]": _local2 = 221; break; case "`": _local2 = 192; break; case "§": _local2 = 167; break; default: Log.w((("Error: " + _arg1) + " is unknown"), this); }; return (_local2); } } }//package WBE.Helpers
Section 229
//wbVector2 (WBE.Helpers.wbVector2) package WBE.Helpers { public class wbVector2 { public var x:Number; public var y:Number; public function wbVector2(_arg1:Number, _arg2:Number){ this.x = _arg1; this.y = _arg2; } public function added(_arg1:wbVector2):void{ this.x = (this.x + _arg1.x); this.y = (this.y + _arg1.y); } public function subbed(_arg1:wbVector2):void{ this.x = (this.x - _arg1.x); this.y = (this.y - _arg1.y); } public function angleRad(_arg1:wbVector2):Number{ var _local2:Number = Math.acos((this.dot(_arg1) / (this.length() * _arg1.length()))); return (_local2); } public function sub(_arg1:wbVector2):wbVector2{ return (new wbVector2((this.x - _arg1.x), (this.y - _arg1.y))); } public function dot(_arg1:wbVector2):Number{ return (((this.x * _arg1.x) + (this.y * _arg1.y))); } public function scale(_arg1:Number):wbVector2{ return (new wbVector2((this.x * _arg1), (this.y * _arg1))); } public function reset():void{ this.x = 0; this.y = 0; } public function rotateRad(_arg1:Number):wbVector2{ return (new wbVector2(((Math.cos(_arg1) * this.x) - (Math.sin(_arg1) * this.y)), ((Math.sin(_arg1) * this.x) + (Math.sin(_arg1) * this.y)))); } public function project(_arg1:wbVector2):wbVector2{ return (_arg1.scale((this.dot(_arg1) / _arg1.length()))); } public function scaled(_arg1:Number):void{ this.x = (this.x * _arg1); this.y = (this.y * _arg1); } public function add(_arg1:wbVector2):wbVector2{ return (new wbVector2((this.x + _arg1.x), (this.y + _arg1.y))); } public function set(_arg1:Number, _arg2:Number):void{ this.x = _arg1; this.y = _arg2; } public function length():Number{ return (Math.sqrt((Math.pow(this.x, 2) + Math.pow(this.y, 2)))); } public function normal():wbVector2{ return (new wbVector2((this.x / this.length()), (this.y / this.length()))); } public function rotateDeg(_arg1:Number):wbVector2{ _arg1 = ((_arg1 / 180) * Math.PI); return (new wbVector2(((Math.cos(_arg1) * this.x) - (Math.sin(_arg1) * this.y)), ((Math.sin(_arg1) * this.x) + (Math.sin(_arg1) * this.y)))); } public function toString():String{ return (((x + ":") + y)); } public function angleDeg(_arg1:wbVector2):Number{ var _local2:Number = Math.acos((this.dot(_arg1) / (this.length() * _arg1.length()))); _local2 = ((_local2 / Math.PI) * 180); return (_local2); } public function equal(_arg1:wbVector2):Boolean{ if ((((this.x == _arg1.x)) && ((this.y == _arg1.y)))){ return (true); }; return (false); } public function copy(_arg1:wbVector2):void{ this.x = _arg1.x; this.y = _arg1.y; } public function setX(_arg1:Number):void{ this.x = _arg1; } public function normalized():void{ var _local1:Number = this.length(); this.x = (this.x / _local1); this.y = (this.y / _local1); } public function distance(_arg1:wbVector2):Number{ return (Math.sqrt((Math.pow((this.x - _arg1.x), 2) + Math.pow((this.y - _arg1.y), 2)))); } public function setY(_arg1:Number):void{ this.y = _arg1; } } }//package WBE.Helpers
Section 230
//wbMain (WBE.Main.wbMain) package WBE.Main { import flash.display.*; import com.kongregate.as3.client.events.*; import flash.events.*; import com.kongregate.as3.client.*; import WBE.Managers.*; public class wbMain extends MovieClip { private var interval:int; private var mochiMC:MovieClip; private var kongregate:KongregateAPI; private var introClip:MovieClip; private var currentStepFunction:Object; private var engineStarted:Boolean;// = false private var sm:wbStateManager; private var sponsorIntroClip:MovieClip; private var nextFrameTime:int; private var frameRate:int;// = 30 private var initCount:int;// = 0 private var sponsorFrame:int;// = 0 private var stepping:Boolean;// = false private var introMask:MovieClip; private function loadMochi():void{ if (((!(wbSettingsManager.getInstance().getSettings("debug"))) && (wbSettingsManager.getInstance().getSettings("mochi")))){ this.mochiMC = new mochi(); this.addChild(this.mochiMC); mochiMC.setMain(this); } else { this.loadSponsorIntro(); }; } private function initStateManagerStep():void{ if (this.initCount == 0){ this.sm.init(); } else { if (this.initCount == 2){ this.currentStepFunction = stateManagerStep; }; }; this.initCount++; } private function stateManagerStep():void{ this.sm.step(); } private function startEngine():void{ if (!this.engineStarted){ this.engineStarted = true; this.addEventListener(Event.ENTER_FRAME, step); wbAssetManager.getInstance().init(); }; } private function loadSponsorIntro():void{ var _local1:MovieClip; if (((!(wbSettingsManager.getInstance().getSettings("debug"))) && (wbSettingsManager.getInstance().getSettings("sponsorIntro")))){ _local1 = new SponsorIntro(); sponsorIntroLoaded(_local1); } else { this.loadIntroClip(); }; } private function introStep():void{ if (this.introClip != null){ if (this.introClip.currentLabel == "end"){ if (this.introClip != null){ this.removeChild(this.introClip); this.introClip = null; }; this.currentStepFunction = initStateManagerStep; }; }; } public function step(_arg1:Event):void{ this.stepping = true; this.currentStepFunction.call(); this.stepping = false; } private function loadIntroClip():void{ if (!wbSettingsManager.getInstance().getSettings("debug")){ this.introClip = new load(); this.addChild(this.introClip); this.introClip.scaleX = (this.introClip.scaleY = Math.max((wbSettingsManager.getInstance().getWorldSettings("width") / 750), (wbSettingsManager.getInstance().getWorldSettings("height") / 450))); this.introClip.x = (wbSettingsManager.getInstance().getWorldSettings("width") / 2); this.introClip.y = (wbSettingsManager.getInstance().getWorldSettings("height") / 2); this.currentStepFunction = introStep; } else { this.currentStepFunction = loadGraphicsStep; }; this.startEngine(); } private function sponsorIntroLoaded(_arg1:MovieClip):void{ this.sponsorIntroClip = _arg1; this.sponsorIntroClip.x = (wbSettingsManager.getInstance().getWorldSettings("width") / 2); this.sponsorIntroClip.y = (wbSettingsManager.getInstance().getWorldSettings("height") / 2); this.addChild(this.sponsorIntroClip); this.currentStepFunction = sponsorIntroStep; this.startEngine(); } private function sponsorIntroStep():void{ if (this.sponsorFrame == 215){ if (this.contains(this.sponsorIntroClip)){ this.removeChild(this.sponsorIntroClip); }; this.loadIntroClip(); }; this.sponsorFrame++; } private function introLoaded(_arg1:Event):void{ this.introClip = _arg1.target.content; this.addChild(this.introClip); if (introClip.mainMC == null){ if (wbSettingsManager.getInstance().getSettings("traces")){ trace("intro not in correct format"); }; }; this.introClip.scaleX = (this.introClip.scaleY = Math.max((wbSettingsManager.getInstance().getWorldSettings("width") / 750), (wbSettingsManager.getInstance().getWorldSettings("height") / 450))); this.introClip.mainMC.x = (wbSettingsManager.getInstance().getWorldSettings("width") / 2); this.introClip.mainMC.y = (wbSettingsManager.getInstance().getWorldSettings("height") / 2); } public function setLoaderInfo(_arg1:LoaderInfo):void{ if (((wbSettingsManager.getInstance().getSettings("debug")) || (this.isAllowedURL(_arg1.loaderURL, wbSettingsManager.getInstance().getSettings("allowedURLs"))))){ this.kongregate = new KongregateAPI(); this.addChild(kongregate); kongregate.addEventListener(KongregateEvent.COMPLETE, kongregateConnected); this.loadMochi(); this.sm = wbStateManager.getInstance(); this.addChild(sm); }; } public function mochiDone():void{ this.removeChild(this.mochiMC); this.loadSponsorIntro(); } private function checkURL(_arg1:String, _arg2:String):Boolean{ var _local3:Array = _arg1.split("://"); var _local4:String = _local3[(_local3.length - 1)]; _local4 = _local4.split(":")[0]; _local4 = _local4.split("/")[0]; return ((_local4.indexOf(_arg2) == (_local4.length - _arg2.length))); } override public function toString():String{ return ("wbMain"); } private function isAllowedURL(_arg1:String, _arg2:Array):Boolean{ if (_arg2.length == 0){ return (true); }; var _local3:int; while (_local3 < _arg2.length) { if (checkURL(_arg1, _arg2[_local3])){ return (true); }; _local3++; }; return (false); } private function kongregateConnected(_arg1:KongregateEvent):void{ } private function loadGraphicsStep():void{ if (wbAssetManager.getInstance().libLoadingCompleted()){ if (this.introClip != null){ this.removeChild(this.introClip); this.introClip = null; }; this.currentStepFunction = initStateManagerStep; }; } } }//package WBE.Main
Section 231
//wbPreLoader (WBE.Main.wbPreLoader) package WBE.Main { import flash.events.*; import flash.display.*; import flash.utils.*; public class wbPreLoader extends MovieClip { private var sponsorIntro:MovieClip; private var loader:loadBar; private var gameLoaded:Boolean;// = false private var introPlayed:Boolean;// = false public function wbPreLoader(){ this.loader = new loadBar(); this.loader.gotoAndStop(1); this.addChild(this.loader); this.loader.x = (370 - (this.loader.width / 2)); this.loader.y = 300; stop(); this.sponsorIntro = new SponsorIntro(); this.sponsorIntro.x = 400; this.sponsorIntro.y = 200; this.addChild(this.sponsorIntro); stage.scaleMode = StageScaleMode.SHOW_ALL; stage.align = StageAlign.TOP_LEFT; this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress); this.addEventListener(Event.ENTER_FRAME, step); } public function onProgress(_arg1:ProgressEvent):void{ var _local2:Number; var _local3:Number; var _local4:Number; if (framesLoaded == totalFrames){ root.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, onProgress); this.gameLoaded = true; } else { _local2 = _arg1.bytesTotal; _local3 = _arg1.bytesLoaded; _local4 = (_local3 / _local2); this.loader.gotoAndStop(Math.round((_local4 * 100))); }; } private function init():void{ var _local2:Object; var _local1:Class = Class(getDefinitionByName("WBE.Main.wbMain")); if (_local1){ _local2 = new (_local1); _local2.setLoaderInfo(this.loaderInfo); addChild((_local2 as DisplayObject)); }; } override public function toString():String{ return ("wbPreLoader"); } private function step(_arg1:Event):void{ if (this.sponsorIntro.clip.currentLabel == "end"){ this.introPlayed = true; }; if (((this.introPlayed) && (this.gameLoaded))){ this.gotoMain(); }; } public function gotoMain():void{ this.removeChild(this.loader); this.removeChild(this.sponsorIntro); this.removeEventListener(Event.ENTER_FRAME, step); nextFrame(); init(); } } }//package WBE.Main
Section 232
//wbAssetManager (WBE.Managers.wbAssetManager) package WBE.Managers { import flash.display.*; import flash.geom.*; import flash.utils.*; import Game.GameWorld.*; import Game.Data.*; import flash.media.*; public class wbAssetManager { private var externalAssetManager:wbExternalAssetManager; private var libManager:wbLibManager; private var assetData:AssetData; private static var allowInstantiation:Boolean; private static var instance:wbAssetManager; public function wbAssetManager():void{ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use wbAssetManager.getInstance() instead of new.")); }; } private function getGraphicInfo(_arg1:String, _arg2:Boolean=false):Object{ var _local3:Object = assetData.graphicsDict[_arg1]; if (_local3 == null){ if (_arg2){ return (null); }; if (wbSettingsManager.getInstance().getSettings("traces")){ trace((_arg1 + ": id not in graphics dictionary")); }; return (null); //unresolved jump }; return (_local3); } public function getGraphics(_arg1:String, _arg2:Boolean=false):DisplayObject{ var _local3:Object = getGraphicInfo(_arg1, _arg2); if (_local3 == null){ _local3 = {mcName:_arg1}; }; if (_local3.external){ return (DisplayObject(this.externalAssetManager.getGraphicalAsset(_local3.url))); }; return (getDisplayObject(_local3, false, _arg2)); } public function getGridHeight():Number{ return (assetData.gridHeight); } public function stopPlaying(_arg1:DisplayObject):void{ var _local2:int; if (_arg1 != null){ if (_arg1.hasOwnProperty("stop")){ MovieClip(_arg1).stop(); }; if (_arg1.hasOwnProperty("numChildren")){ _local2 = 0; while (_local2 < DisplayObjectContainer(_arg1).numChildren) { stopPlaying(DisplayObjectContainer(_arg1).getChildAt(_local2)); _local2++; }; }; }; } public function libLoadingCompleted():Boolean{ return (this.libManager.loadingComplete()); } public function makeRepetativeBackground(_arg1:Number, _arg2:Number):MovieClip{ var _local3:MovieClip = new MovieClip(); var _local4:MovieClip = MovieClip(getGraphics("bgFill")); _local3.addChild(_local4); _local4.x = (_local4.width / 2); _local4.y = (_local4.height / 2); var _local5:BitmapData = new BitmapData(_local4.width, _local4.height, false, 0xFFFFFF); var _local6:Matrix = new Matrix(); _local6.rotate((Math.PI / 4)); _local5.draw(_local3, new Matrix()); var _local7:MovieClip = new MovieClip(); _local7.graphics.beginBitmapFill(_local5, _local6, true); _local7.graphics.drawRect((-(_arg1) / 2), (-(_arg2) / 2), _arg1, _arg2); _local7.graphics.endFill(); return (_local7); } public function init():void{ this.assetData = AssetData.getInstance(this); this.libManager = new wbLibManager(this.assetData.assetLibs); this.externalAssetManager = new wbExternalAssetManager(); } public function convertOrientation(_arg1:Number, _arg2:Number, _arg3:Number):Object{ return (this.assetData.convertOrientation(_arg1, _arg2, _arg3)); } public function convertObjectOrientation(_arg1:MovieClip):void{ this.assetData.convertObjectOrientation(_arg1); } public function getAudio(_arg1:String):Object{ var mcClass:Object; var id = _arg1; var acData:Object = getAudioInfo(id); if (acData.external){ return (this.externalAssetManager.getAudioAsset(acData.url)); }; var asset:Object = this.libManager.getAssetFromLibs(acData.acName); if ((((asset == null)) && (acData.ac))){ asset = (new acData.ac() as Class); }; if (asset == null){ try { mcClass = getDefinitionByName(acData.acName); asset = new (mcClass); } catch(error:ReferenceError) { wbStateManager.getInstance().error((id + ": audio item not found in libraries")); asset = null; }; }; return ({sound:Sound(asset), volume:acData.volume}); } public function getLibLoadProgress():int{ return (this.libManager.getLoadProgress()); } public function convertOrientationBack(_arg1:int, _arg2:int):Array{ return (this.assetData.convertOrientationBack(_arg1, _arg2)); } public function getGridWidth():Number{ return (assetData.gridWidth); } private function getDisplayObject(_arg1:Object, _arg2:Boolean=false, _arg3:Boolean=false):DisplayObject{ var mcName:String; var mcClass:Object; var color:ColorTransform; var mcData = _arg1; var getShadow = _arg2; var supressExistanceError = _arg3; var xScale:Number = 1; var yScale:Number = 1; mcName = mcData.mcName; if (getShadow){ if ((((((mcData.showShadow == undefined)) || (mcData.showShadow))) && (wbSettingsManager.getInstance().getWorldSettings("drawShadows")))){ mcName = (mcName + "shadow"); } else { return (null); }; }; var mc:DisplayObject = DisplayObject(this.libManager.getAssetFromLibs(mcName)); if ((((mc == null)) && (mcData.mcClass))){ mc = new mcData.mcClass(); }; if (mc == null){ try { mcClass = getDefinitionByName(mcName); mc = new (mcClass); } catch(error:ReferenceError) { if (supressExistanceError){ return (null); }; if (getShadow){ return (null); }; wbStateManager.getInstance().error((mcName + ": graphical item not found in libraries")); mc = null; }; }; if (mcData.colTrans){ color = new ColorTransform(); color.redOffset = mcData.colTrans[0]; color.greenOffset = mcData.colTrans[1]; color.blueOffset = mcData.colTrans[2]; mc.transform.colorTransform = color; }; if (mcData.sizes){ xScale = (mcData.sizes[0] / mc.width); yScale = (mcData.sizes[1] / mc.height); } else { if (mcData.scale){ var _local5 = mcData.scale; yScale = _local5; xScale = _local5; }; }; mc.scaleX = xScale; mc.scaleY = yScale; if (mcData.alpha){ mc.alpha = mcData.alpha; }; if (wbSettingsManager.getInstance().getWorldSettings("ghostMode")){ mc.alpha = 0.5; }; return (mc); } public function getShadowMC(_arg1:String):DisplayObject{ var _local2:Object = getGraphicInfo(_arg1); return (getDisplayObject(_local2, true)); } private function getAudioInfo(_arg1:String, _arg2:Boolean=false):Object{ var _local3:Object = assetData.audioDict[_arg1]; if (_local3 == null){ if (_arg2){ return (null); }; if (wbSettingsManager.getInstance().getSettings("traces")){ trace((_arg1 + ": id not in audio dictionary")); }; return (null); //unresolved jump }; return (_local3); } public function getBackgroundData():void{ var _local1:String; var _local2:Object; var _local3:String; for (_local1 in this.assetData.bgGraphicsDict) { _local2 = this.assetData.bgGraphicsDict[_local1]; _local3 = _local1; _local2.mc = MovieClip(getDisplayObject(_local2)); _local2.id = _local3; if (_local2.bgZ == undefined){ _local2.bgZ = -100; }; if (_local2.xOffset == undefined){ _local2.xOffset = 0; }; if (_local2.yOffset == undefined){ _local2.yOffset = 0; }; World.getInstance().attachBackground(_local2); }; } public function toString():String{ return ("wbAssetManager"); } public function getColorTransform(_arg1:Number):ColorTransform{ var _local2:Number = 0.6; switch (_arg1){ case 1: return (new ColorTransform(2, _local2, _local2)); case 2: return (new ColorTransform(2, 2, _local2)); case 3: return (new ColorTransform(_local2, _local2, 2)); case 4: return (new ColorTransform(_local2, 2, _local2)); }; return (new ColorTransform(2, 2, 2)); } public static function getInstance():wbAssetManager{ if (instance == null){ allowInstantiation = true; instance = new (wbAssetManager); allowInstantiation = false; }; return (instance); } } }//package WBE.Managers
Section 233
//wbAudioManager (WBE.Managers.wbAudioManager) package WBE.Managers { import flash.events.*; import flash.utils.*; import caurina.transitions.*; import flash.media.*; public class wbAudioManager { private var currentBGM:String; private var muteOff:Boolean;// = true public var volume:Number;// = 1 private var prevSoundOn:Boolean; public var prevVolume:Number;// = 1 private var playing:Dictionary; private var prevMusicOn:Boolean; private var sounds:Dictionary; private var bgmPlaying:Boolean;// = false private var maxSounds:int;// = 3 private var soundsPlaying:int; private var bgmCallBack; private var _soundVolume:Number;// = 1 public var soundOn:Boolean;// = true private var bgm:Object; private var _audioVolume:Number;// = 1 private var audioOn:Boolean;// = true private var _musicVolume:Number;// = 1 private var musicOn:Boolean;// = true private var loopedSounds:Dictionary; private var bgmC:SoundChannel; private var soundChannels:Dictionary; private static var allowInstantiation:Boolean; private static var instance:wbAudioManager; public function wbAudioManager(){ bgmC = new SoundChannel(); super(); if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use wbAudioManager.getInstance() instead of new.")); }; this.sounds = new Dictionary(); this.loopedSounds = new Dictionary(); this.soundChannels = new Dictionary(); this.playing = new Dictionary(); } private function bgmSingleComplete(_arg1:Event):void{ this.bgmC.removeEventListener(Event.SOUND_COMPLETE, bgmSingleComplete); this.bgmPlaying = false; if (this.bgmCallBack){ this.bgmCallBack.call(); }; } public function toggleMute():void{ if (this.muteOff){ this.prevSoundOn = this.soundOn; this.prevMusicOn = this.musicOn; this.toggleSound(false); this.toggleMusic(false); this.muteOff = false; } else { this.muteOff = true; this.toggleSound(this.prevSoundOn); this.toggleMusic(this.prevMusicOn); }; } public function set soundVolume(_arg1:Number):void{ var _local2:SoundTransform; var _local3:Number; var _local4:String; this._soundVolume = _arg1; if (this._soundVolume < 0){ this._soundVolume = 0; }; for (_local4 in this.soundChannels) { if (this.playing[_local4]){ _local3 = 1; if (this.sounds[_local4].volume != null){ _local3 = this.sounds[_local4].volume; }; _local2 = new SoundTransform((this.soundVolume * _local3), 0); this.soundChannels[_local4].soundTransform = _local2; }; }; } public function isMuteOff():Boolean{ return (this.muteOff); } public function get soundVolume():Number{ return (this._soundVolume); } public function get musicVolume():Number{ return (this._musicVolume); } public function setVolume(_arg1:Number):void{ this.volume = _arg1; if (this.volume < 0){ this.volume = 0; }; if (this.volume > 1){ this.volume = 1; }; } public function toggleMusic(_arg1=null):void{ if (!this.muteOff){ if (_arg1 != null){ this.prevMusicOn = _arg1; } else { this.prevMusicOn = !(this.prevMusicOn); }; } else { if (_arg1 != null){ this.musicOn = _arg1; } else { this.musicOn = !(this.musicOn); }; if (!this.musicOn){ Tweener.addTween(this, {musicVolume:0, time:0.7}); } else { if (this.bgmPlaying){ Tweener.addTween(this, {musicVolume:this.volume, time:0.7}); }; }; }; } public function playSound(_arg1:String, _arg2:Boolean=false, _arg3=null):void{ var _local4:Number; var _local5:SoundTransform; if (this.soundOn){ if (this.sounds[_arg1] == null){ this.sounds[_arg1] = wbAssetManager.getInstance().getAudio(_arg1); this.soundChannels[_arg1] = new SoundChannel(); if (_arg2){ this.loopedSounds[_arg1] = 0; }; this.playing[_arg1] = false; }; _local4 = 1; if (this.sounds[_arg1].volume != null){ _local4 = this.sounds[_arg1].volume; }; _local5 = new SoundTransform((volume * _local4), 0); if (_arg2){ this.soundChannels[_arg1] = this.sounds[_arg1].sound.play(0, 100000, _local5); } else { this.soundChannels[_arg1] = this.sounds[_arg1].sound.play(0, 0, _local5); }; if (_arg3){ SoundChannel(this.soundChannels[_arg1]).addEventListener(Event.SOUND_COMPLETE, _arg3); }; this.playing[_arg1] = true; }; } public function stopSound(_arg1:String):void{ if (((!((this.sounds[_arg1] == null))) && (this.playing[_arg1]))){ if (this.soundChannels[_arg1] != null){ this.soundChannels[_arg1].stop(); }; this.playing[_arg1] = false; if (this.loopedSounds[_arg1] != null){ delete this.loopedSounds[_arg1]; }; }; } public function toggleSound(_arg1=null):void{ var _local2:String; if (!this.muteOff){ if (_arg1 != null){ this.prevMusicOn = _arg1; } else { this.prevMusicOn = !(this.prevMusicOn); }; } else { if (_arg1 != null){ this.soundOn = _arg1; } else { this.soundOn = !(this.soundOn); }; if (!this.soundOn){ Tweener.addTween(this, {soundVolume:0, time:0.7}); } else { Tweener.addTween(this, {soundVolume:this.volume, time:0.7}); }; }; } public function set musicVolume(_arg1:Number):void{ this._musicVolume = _arg1; if (this._musicVolume < 0){ this._musicVolume = 0; }; var _local2:Number = 1; if (this.bgm.volume != null){ _local2 = this.bgm.volume; }; var _local3:SoundTransform = new SoundTransform((this.musicVolume * _local2), 0); if (this.bgmC){ this.bgmC.soundTransform = _local3; }; } public function toggleAll():void{ this.audioOn = !(this.audioOn); this.toggleSound(this.audioOn); this.toggleMusic(this.audioOn); } public function isSoundOn():Boolean{ return (this.soundOn); } public function isAllOn():Boolean{ return (this.audioOn); } public function isMusicOn():Boolean{ return (this.musicOn); } private function bgmLoopComplete(_arg1:Event):void{ this.bgmC.removeEventListener(Event.SOUND_COMPLETE, bgmLoopComplete); var _local2:Number = 1; if (this.bgm.volume != null){ _local2 = this.bgm.volume; }; var _local3:SoundTransform = new SoundTransform((this.musicVolume * _local2), 0); this.bgmC = this.bgm.sound.play(0, 0, _local3); this.bgmC.addEventListener(Event.SOUND_COMPLETE, bgmLoopComplete); if (this.bgmCallBack){ this.bgmCallBack.call(); }; } public function stopSounds():void{ var _local1:String; for (_local1 in this.soundChannels) { this.stopSound(_local1); }; } public function changeVolume(_arg1:int):void{ this.setVolume((this.volume + (_arg1 * 0.2))); } public function toString():String{ return ("wbAudioManager"); } public function stopBGM():void{ this.bgmC.stop(); this.bgmPlaying = false; this.bgmC.removeEventListener(Event.SOUND_COMPLETE, bgmLoopComplete); this.bgmC.removeEventListener(Event.SOUND_COMPLETE, bgmSingleComplete); } public function playBGM(_arg1:String, _arg2:Boolean=true, _arg3=null, _arg4:Boolean=false):void{ var _local5:Number; var _local6:SoundTransform; if (((((_arg4) || (!(this.bgmPlaying)))) || (!((this.currentBGM == _arg1))))){ this.currentBGM = _arg1; if (this.bgmC){ this.bgmC.stop(); }; this.bgm = wbAssetManager.getInstance().getAudio(_arg1); this.bgmC = new SoundChannel(); this.bgmPlaying = true; _local5 = 1; if (this.bgm.volume != null){ _local5 = this.bgm.volume; }; _local6 = new SoundTransform((this.musicVolume * _local5), 0); this.bgmCallBack = _arg3; this.bgmC = this.bgm.sound.play(0, 0, _local6); if (_arg2){ this.bgmC.addEventListener(Event.SOUND_COMPLETE, bgmLoopComplete); } else { this.bgmC.addEventListener(Event.SOUND_COMPLETE, bgmSingleComplete); }; }; } public function pause(_arg1:Boolean):void{ if (_arg1){ this.prevVolume = this.volume; this.setVolume(0); } else { this.setVolume(this.prevVolume); }; } public static function getInstance():wbAudioManager{ if (instance == null){ allowInstantiation = true; instance = new (wbAudioManager); allowInstantiation = false; }; return (instance); } } }//package WBE.Managers
Section 234
//wbDatabaseManager (WBE.Managers.wbDatabaseManager) package WBE.Managers { import flash.events.*; import flash.utils.*; import WBE.Helpers.*; import Game.Data.*; import WBE.Debug.*; import flash.net.*; public class wbDatabaseManager { private var callback; private var data:Dictionary; private var actions:Dictionary; private static var allowInstantiation:Boolean; private static var instance:wbDatabaseManager; public function wbDatabaseManager(){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use wbDatabaseManager.getInstance() instead of new.")); }; } public function doAction(_arg1:String, _arg2:Object=null, _arg3:Array=null):void{ var _local6:Object; var _local7:Object; var _local8:int; var _local9:int; if (_arg1 == "armorScore"){ this.armorScore(_arg3[0].armorAction); return; }; if (wbSettingsManager.getInstance().getSettings("traces")){ trace("wbDatabaseManager doAction:", _arg1); }; var _local4:Boolean = this.actions[_arg1].callbackWithObject; var _local5:Dictionary = new Dictionary(); if (!wbSettingsManager.getInstance().getSettings("localDB")){ _local5 = this.data[actions[_arg1].input]; _local5 = getValues(_local5); if (_arg3 != null){ _local8 = 0; while (_local8 < _arg3.length) { _local6 = _arg3[_local8]; _local9 = 0; while (_local9 < _local5[_local6.dictName].length) { if (_local5[_local6.dictName][_local9].varData == _local6.gameType){ _local5[_local6.dictName][_local9].value = _local6.value; }; _local9++; }; _local8++; }; }; _local7 = DatabaseData.getInstance(this); new wbDatabaseConnection(_local7.gameName, _local7.key, _local7.WBurl).doAction(_local5, _arg2, _local4); } else { new wbFlookie().doAction(_arg1, _arg2, _local4); }; } public function toString():String{ return ("wbDatabaseManager"); } private function dataOnLoad(_arg1:Event):void{ wbStateManager.getInstance().dbDone(); } public function init():void{ this.actions = DatabaseData.getInstance(this).dbActions; this.data = DatabaseData.getInstance(this).dbData; } public function armorScore(_arg1:String):void{ var _local5:Number; var _local2:URLRequest = new URLRequest("http://rankz.armorbot.com/submit/as3_v0.php"); _local2.method = URLRequestMethod.POST; var _local3:URLVariables = new URLVariables(); var _local4:URLLoader = new URLLoader(); _local4.dataFormat = URLLoaderDataFormat.TEXT; switch (_arg1){ case DatabaseData.CITY_CLEARED: _local3.flashkey = "R3NleE9EVGk="; _local5 = wbVarManager.getInstance().getVar("citiesCompleted"); _local3.bmFtZTE = wbVarManager.getInstance().getVar("nameSaveGame"); break; case DatabaseData.GAME_COMPLETED_PERCENTAGE: _local3.flashkey = "c2xORWdkZEI="; _local5 = wbVarManager.getInstance().getVar("gameCompletedPerc"); _local3.bmFtZTE = wbVarManager.getInstance().getVar("nameSaveGame"); break; case DatabaseData.EXTRA: if (wbVarManager.getInstance().getVar("currentLevel") == -1){ _local3.flashkey = "UGtkblZQaE8="; } else { if (wbVarManager.getInstance().getVar("currentLevel") == -2){ _local3.flashkey = "TmhLY2RVWUo="; } else { _local3.flashkey = "c1ZacGRiZVU="; }; }; _local5 = wbVarManager.getInstance().getVar("maxHeight"); _local3.bmFtZTE = wbVarManager.getInstance().getForm("score").name; _local4.addEventListener(Event.COMPLETE, dataOnLoad); break; default: if (wbSettingsManager.getInstance().getSettings("traces")){ trace("WARNING armorScore UNKNOWN type", _arg1); }; }; _local3.SU0249 = "MzY5MWolZSVhJW4lcw=="; var _local6 = (_local5 + "Z"); _local3.c2NvcmUx = _local6.split("0").join("U"); _local3.c2NvcmUx = _local3.c2NvcmUx.split("").join("A"); _local3.c2NvcmUx = _local3.c2NvcmUx.split("AU").join("Y"); _local3.c2NvcmUx = _local3.c2NvcmUx.split("A1").join("B"); _local3.c2NvcmUx = _local3.c2NvcmUx.split(".").join("N"); _local2.data = _local3; _local4.load(_local2); wbStateManager.getInstance().dbDone(); } public function delFlookie():void{ new wbFlookie().clear(); } private function getValues(_arg1:Dictionary):Dictionary{ var _local2:Object; var _local3:Object; var _local4:int; for (_local3 in _arg1) { _local4 = 0; while (_local4 < _arg1[_local3].length) { _local2 = _arg1[_local3][_local4]; if (_local2.defaultData != undefined){ Log.wp(_local2.defaultData, -1, this); _local2.value = _local2.defaultData; } else { if (_local2.varData != undefined){ Log.wp(_local2.varData, -1, this); _local2.value = wbVarManager.getInstance().getVar(_local2.varData); } else { if (_local2.form != undefined){ Log.wp(wbVarManager.getInstance().getForm(_local2.form), -1, this); _local2.value = wbVarManager.getInstance().getForm(_local2.form)[_local2.element]; } else { if (_local2.varDataObject != undefined){ Log.wp(_local2.varDataObject, -1, this); _local2.value = wbVarManager.getInstance().getVar(_local2.varDataObject)[_local2.property]; }; }; }; }; _local4++; }; }; return (_arg1); } public static function getInstance():wbDatabaseManager{ if (instance == null){ allowInstantiation = true; instance = new (wbDatabaseManager); allowInstantiation = false; }; return (instance); } } }//package WBE.Managers
Section 235
//wbDebugManager (WBE.Managers.wbDebugManager) package WBE.Managers { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.text.*; public class wbDebugManager extends MovieClip { private var frameRateMC:MovieClip; private var maxfRateArrayLength:Number;// = 100 private var curFrameRate:Number; private var frameCounter:int; private var measureStartTime:int; private var measureAve:Number;// = 0 private var frateText:TextField; private var measuring:Boolean;// = false private var aveText:TextField; private var variationText:TextField; private var frameCount:int;// = 30 private var measureStd:Number;// = 0 private var measurePrevTime:int; private var displayDebug:Boolean;// = false private var frameRateArray:Array; private var setFrameText:TextField; private var keysDown:Array; private var maxCounter:Number; private static var allowInstantiation:Boolean; private static var instance:wbDebugManager; public function wbDebugManager(){ keysDown = [0, 0]; super(); if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use wbDebugManager.getInstance() instead of new.")); }; } private function setDebuggerText():void{ var _local1:Number = (this.measureAve / (this.maxCounter * this.maxfRateArrayLength)); var _local2:Number = (this.measureStd / (this.maxCounter * this.maxfRateArrayLength)); this.frateText.text = ("Rate: " + curFrameRate); if (isNaN(_local1)){ this.aveText.text = "Ave: Calculating"; } else { this.aveText.text = ("Ave: " + _local1); }; if (isNaN(_local2)){ this.variationText.text = "Stdev: Calculating"; } else { this.variationText.text = ("Stdev: " + _local2); }; setFrameText.text = (((("Set: " + wbSettingsManager.getInstance().getSettings("frameRate")) + " (") + this.stage.frameRate) + ")"); } public function init():void{ this.mouseEnabled = false; this.frameRateMC = new MovieClip(); this.frameRateMC.mouseEnabled = false; this.addChild(this.frameRateMC); this.aveText = new TextField(); this.aveText.defaultTextFormat = wbSettingsManager.getInstance().getTextFormat("debug"); this.aveText.mouseEnabled = false; this.aveText.selectable = false; this.aveText.x = 10; this.aveText.y = 20; this.frateText = new TextField(); this.frateText.defaultTextFormat = wbSettingsManager.getInstance().getTextFormat("debug"); this.frateText.mouseEnabled = false; this.frateText.selectable = false; this.frateText.x = 10; this.frateText.y = 10; this.variationText = new TextField(); this.variationText.defaultTextFormat = wbSettingsManager.getInstance().getTextFormat("debug"); this.variationText.mouseEnabled = false; this.variationText.selectable = false; this.variationText.x = 10; this.variationText.y = 30; this.setFrameText = new TextField(); this.setFrameText.defaultTextFormat = wbSettingsManager.getInstance().getTextFormat("debug"); this.setFrameText.mouseEnabled = false; this.setFrameText.selectable = false; this.setFrameText.x = 10; this.setFrameText.y = 40; this.frameRateMC.addChild(this.frateText); this.frameRateMC.addChild(this.aveText); this.frameRateMC.addChild(this.variationText); this.frameRateMC.addChild(this.setFrameText); } public function startMeasuring():void{ this.frameRateArray = new Array(); this.measuring = true; this.measureStartTime = getTimer(); this.measurePrevTime = getTimer(); this.measureAve = 0; this.measureStd = 0; this.maxCounter = 0; } public function on():void{ this.stage.addEventListener(KeyboardEvent.KEY_UP, controlUp); this.stage.addEventListener(KeyboardEvent.KEY_DOWN, controlDown); setFrameText.text = (((("Set: " + wbSettingsManager.getInstance().getSettings("frameRate")) + " (") + this.stage.frameRate) + ")"); this.displayDebug = true; } private function controlDown(_arg1:KeyboardEvent):void{ switch (_arg1.keyCode){ case 219: keysDown[0] = 1; break; case 221: keysDown[1] = 1; break; }; } private function controlUp(_arg1:KeyboardEvent):void{ switch (_arg1.keyCode){ case 219: keysDown[0] = 0; break; case 221: keysDown[1] = 0; break; }; } public function step():void{ var _local1:int; var _local2:Object; var _local3:int; var _local4:int; if (this.measuring){ _local1 = getTimer(); if (_local1 != this.measurePrevTime){ this.curFrameRate = (1000 / (_local1 - this.measurePrevTime)); this.measurePrevTime = _local1; this.frameRateArray.push(this.curFrameRate); }; if (this.frameRateArray.length == this.maxfRateArrayLength){ this.maxCounter++; _local2 = calculateAvgStd(); this.frameRateArray = new Array(); this.measureStd = (this.measureStd + (_local2.std * _local2.arrayLength)); this.measureAve = (this.measureAve + (_local2.avg * _local2.arrayLength)); }; }; if (this.displayDebug){ if (!this.measuring){ startMeasuring(); }; this.frameCounter--; if (this.frameCounter <= 0){ setDebuggerText(); this.frameCounter = this.frameCount; }; _local3 = (-(keysDown[0]) + keysDown[1]); if (_local3 != 0){ _local4 = (wbSettingsManager.getInstance().getSettings("frameRate") + _local3); if (_local4 < 1){ _local4 = 1; } else { if (_local4 > 120){ _local4 = 120; }; }; wbSettingsManager.getInstance().setSettings("frameRate", _local4); }; }; } public function off():void{ this.stage.removeEventListener(KeyboardEvent.KEY_UP, controlUp); this.stage.removeEventListener(KeyboardEvent.KEY_DOWN, controlDown); this.displayDebug = false; } public function stopMeasuring():void{ this.measuring = false; var _local1:int = getTimer(); var _local2:int = ((_local1 - this.measureStartTime) / 1000); var _local3:Object = calculateAvgStd(); if (_local3.arrayLength > 0){ this.measureStd = (this.measureStd + (_local3.std * _local3.arrayLength)); this.measureAve = (this.measureAve + (_local3.avg * _local3.arrayLength)); }; var _local4:Number = (this.measureAve / ((this.maxCounter * this.maxfRateArrayLength) + _local3.arrayLength)); var _local5:Number = (this.measureStd / ((this.maxCounter * this.maxfRateArrayLength) + _local3.arrayLength)); wbVarManager.getInstance().setVar("levelFrameRate", Math.round(_local4)); wbVarManager.getInstance().setVar("levelDevFrameRate", Math.round(_local5)); wbVarManager.getInstance().setVar("levelTime", int(_local2)); } override public function toString():String{ return ("wbDebugManager"); } private function calculateAvgStd():Object{ var _local3:int; var _local1:Number = 0; var _local2:Number = 0; var _local4:int = this.frameRateArray.length; _local3 = 0; while (_local3 < _local4) { _local1 = (_local1 + this.frameRateArray[_local3]); _local3++; }; _local1 = (_local1 / _local4); _local3 = 0; while (_local3 < _local4) { _local2 = (_local2 + Math.sqrt(Math.pow((this.frameRateArray[_local3] - _local1), 2))); _local3++; }; _local2 = (_local2 / _local4); return ({avg:_local1, std:_local2, arrayLength:_local4}); } public static function getInstance():wbDebugManager{ if (instance == null){ allowInstantiation = true; instance = new (wbDebugManager); allowInstantiation = false; }; return (instance); } } }//package WBE.Managers
Section 236
//wbDynamicAudioManager (WBE.Managers.wbDynamicAudioManager) package WBE.Managers { import flash.utils.*; import Game.Data.*; public class wbDynamicAudioManager { private var changeAudioType:Boolean;// = false private var dynamicAudioData:Dictionary; private var currentBGMIndex:int; private var currentBGMType:String; private var currentBGMList:Array; private var stateAudioData:Dictionary; private var bgmPlayOrder:String; private var audioPlaying:Boolean;// = false public static const RANDOM:String = "random"; public static const LOOP:String = "loop"; public static const SINGLE:String = "single"; public static const ORDER:String = "order"; public static const STATE:String = "State"; private static var allowInstantiation:Boolean; private static var instance:wbDynamicAudioManager; public function wbDynamicAudioManager(){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use wbDynamicAudioManager.getInstance() instead of new.")); }; this.dynamicAudioData = DynamicAudioData.getInstance(this).getDynamicAudioData(); this.stateAudioData = DynamicAudioData.getInstance(this).getStateAudioData(); } public function changeState(_arg1:String):void{ if (this.stateAudioData[_arg1]){ this.currentBGMList = this.stateAudioData[_arg1]; this.currentBGMType = STATE; this.bgmPlayOrder = ORDER; this.changeAudioType = false; this.currentBGMIndex = 0; if (this.currentBGMList){ this.playNextBGMInList(); }; }; } private function playNextAudioType():void{ if (this.dynamicAudioData[this.currentBGMType]){ this.changeAudioType = false; this.currentBGMList = this.dynamicAudioData[this.currentBGMType].audio; this.bgmPlayOrder = this.dynamicAudioData[this.currentBGMType].playOrder; this.currentBGMIndex = 0; this.playNextBGMInList(); }; } public function toString():String{ return ("wbDynamicAudioManager"); } public function setAudioType(_arg1:String):void{ if (this.currentBGMType != _arg1){ if (((this.dynamicAudioData[this.currentBGMType]) && (this.dynamicAudioData[this.currentBGMType].transitionOut))){ wbAudioManager.getInstance().playSound(this.dynamicAudioData[this.currentBGMType].transitionOut); }; this.currentBGMType = _arg1; if (this.dynamicAudioData[this.currentBGMType]){ if (this.dynamicAudioData[this.currentBGMType].transition){ this.changeAudioType = true; this.currentBGMList = this.dynamicAudioData[this.dynamicAudioData[this.currentBGMType].transition].audio; this.bgmPlayOrder = this.dynamicAudioData[this.dynamicAudioData[this.currentBGMType].transition].playOrder; this.currentBGMIndex = 0; this.playNextBGMInList(); } else { if (this.dynamicAudioData[this.currentBGMType].transitionIn){ wbAudioManager.getInstance().playSound(this.dynamicAudioData[this.currentBGMType].transitionIn); this.playNextAudioType(); } else { if (!this.audioPlaying){ this.playNextAudioType(); } else { this.changeAudioType = true; }; }; }; }; }; } private function onBGMLoopComplete():void{ if (this.changeAudioType){ this.playNextAudioType(); }; } private function onBGMPlayComplete():void{ this.audioPlaying = false; if (this.changeAudioType){ this.playNextAudioType(); } else { if (this.currentBGMList){ this.currentBGMIndex++; this.playNextBGMInList(); }; }; } public function playNextBGMInList():void{ var _local1:Object; switch (this.bgmPlayOrder){ case ORDER: if (this.currentBGMIndex >= this.currentBGMList.length){ this.currentBGMIndex = 0; }; _local1 = this.currentBGMList[this.currentBGMIndex]; break; case RANDOM: _local1 = this.currentBGMList[Math.floor((Math.random() * this.currentBGMList.length))]; break; }; switch (_local1.type){ case SINGLE: this.audioPlaying = true; wbAudioManager.getInstance().playBGM(_local1.ac, false, onBGMPlayComplete, true); break; case LOOP: this.audioPlaying = true; wbAudioManager.getInstance().playBGM(_local1.ac, true, onBGMLoopComplete); break; }; } public static function getInstance():wbDynamicAudioManager{ if (instance == null){ allowInstantiation = true; instance = new (wbDynamicAudioManager); allowInstantiation = false; }; return (instance); } } }//package WBE.Managers
Section 237
//wbExternalAssetManager (WBE.Managers.wbExternalAssetManager) package WBE.Managers { import flash.net.*; import flash.media.*; public class wbExternalAssetManager { public function wbExternalAssetManager():void{ } public function getAudioAsset(_arg1:String){ var _local2:URLRequest = new URLRequest(_arg1); var _local3:Sound = new Sound(); _local3.load(_local2); _local3.play(); return (null); } public function getGraphicalAsset(_arg1:String):void{ } public function toString():String{ return ("wbExternalAssetManager"); } } }//package WBE.Managers
Section 238
//wbGameInputManager (WBE.Managers.wbGameInputManager) package WBE.Managers { import flash.display.*; import flash.events.*; import flash.utils.*; import WBE.Helpers.*; import Game.Data.*; public class wbGameInputManager { private var stageRef:Stage; private var keysDown:Dictionary; private static var allowInstantiation:Boolean; private static var instance:wbGameInputManager; public function wbGameInputManager(){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use wbGameInputManager.getInstance() instead of new.")); }; } private function conditionMet(_arg1:Object, _arg2:int):Boolean{ switch (_arg1.condition){ case "e": if (_arg2 == _arg1.conditionVal){ return (true); }; return (false); }; return (false); } private function upKey(_arg1:KeyboardEvent):void{ var _local2:int; var _local3:Object; if (this.keysDown[_arg1.keyCode] != null){ this.keysDown[_arg1.keyCode].counter = 0; }; if (!wbStateManager.getInstance().isModalLayerOn()){ if (this.keysDown[_arg1.keyCode] != null){ _local2 = 0; while (_local2 < this.keysDown[_arg1.keyCode].listeners.length) { _local3 = this.keysDown[_arg1.keyCode].listeners[_local2]; if (_local3.upValue != null){ _local3.func.call(_local3.func, _local3.upValue); } else { _local3.func.call(); }; _local2++; }; }; }; } private function addEventListeners():void{ this.stageRef.addEventListener(KeyboardEvent.KEY_DOWN, downKey); this.stageRef.addEventListener(KeyboardEvent.KEY_UP, upKey); } private function removeEventListeners():void{ this.stageRef.removeEventListener(KeyboardEvent.KEY_DOWN, downKey); this.stageRef.removeEventListener(KeyboardEvent.KEY_UP, upKey); } public function init(_arg1:Stage):void{ var _local3:int; var _local4:Object; var _local5:int; this.stageRef = _arg1; this.keysDown = new Dictionary(); var _local2:Dictionary = GameInputData.getInstance(this).keyMapping; for each (_local4 in _local2) { _local5 = 0; while (_local5 < _local4.keys.length) { _local3 = new wbKeyConverter().getKeyCode(_local4.keys[_local5]); if (this.keysDown[_local3] == null){ this.keysDown[_local3] = new Object(); this.keysDown[_local3].listeners = new Array(); this.keysDown[_local3].counter = 0; }; this.keysDown[_local3].listeners.push(_local4); _local5++; }; }; addEventListeners(); } public function removeInstance():void{ instance = null; allowInstantiation = true; removeEventListeners(); GameInputData.getInstance(this).removeInstance(); } public function toString():String{ return ("wbGameInputManager"); } public function focusLost():void{ var _local1:*; var _local2:int; var _local3:Object; for (_local1 in this.keysDown) { if (((!((this.keysDown[_local1] == null))) && ((this.keysDown[_local1].counter > 0)))){ this.keysDown[_local1].counter = 0; _local2 = 0; while (_local2 < this.keysDown[_local1].listeners.length) { _local3 = this.keysDown[_local1].listeners[_local2]; if (_local3.upValue != null){ _local3.func.call(_local3.func, _local3.upValue); } else { _local3.func.call(); }; _local2++; }; }; }; } private function downKey(_arg1:KeyboardEvent):void{ var _local2:int; var _local3:Object; if (!wbStateManager.getInstance().isModalLayerOn()){ if (this.keysDown[_arg1.keyCode] != null){ this.keysDown[_arg1.keyCode].counter++; _local2 = 0; while (_local2 < this.keysDown[_arg1.keyCode].listeners.length) { _local3 = this.keysDown[_arg1.keyCode].listeners[_local2]; if (this.conditionMet(_local3, this.keysDown[_arg1.keyCode].counter)){ if (_local3.downValue != null){ _local3.func.call(_local3.func, _local3.downValue); }; }; _local2++; }; }; }; } public static function getInstance():wbGameInputManager{ if (instance == null){ allowInstantiation = true; instance = new (wbGameInputManager); allowInstantiation = false; }; return (instance); } } }//package WBE.Managers
Section 239
//wbLibManager (WBE.Managers.wbLibManager) package WBE.Managers { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.system.*; import flash.net.*; public class wbLibManager { private var totalBytes:Dictionary; private var libDict:Dictionary; private var libPriorityList:Array; private var loadingCounter:int; private var loadingDone:Boolean;// = false private var totalLoadSize:Number;// = 0 private var loadProgress:Dictionary; private static var allowInstantiation:Boolean; private static var instance:wbLibManager; public function wbLibManager(_arg1:Dictionary){ var _local2:Object; super(); if (wbSettingsManager.getInstance().getSettings("traces")){ trace("wbLibManager"); }; this.libDict = new Dictionary(); this.loadProgress = new Dictionary(); this.totalBytes = new Dictionary(); this.loadingCounter = 0; for each (_local2 in _arg1) { this.loadingCounter++; }; for each (_local2 in _arg1) { loadLib(_local2.url); }; updateLibPriorityList(_arg1); } private function libProgress(_arg1:ProgressEvent):void{ this.totalBytes[_arg1.target] = _arg1.target.bytesTotal; this.loadProgress[_arg1.target] = _arg1.target.bytesLoaded; } public function loadingComplete():Boolean{ return ((this.loadingCounter == 0)); } private function urlError(_arg1:Event):void{ if (wbSettingsManager.getInstance().getSettings("traces")){ trace("urlError", _arg1.target, _arg1.target.url); }; wbStateManager.getInstance().error((("library " + _arg1.target) + " not found")); } public function getSourceURL():String{ var _local1:String = wbVarManager.getInstance().getVar("gameURL"); return (_local1.substring(0, (_local1.lastIndexOf("/") + 1))); } public function getLoadProgress():int{ var _local2:Number; var _local3:Number; var _local4:Number; var _local1:Number = 0; for each (_local2 in this.loadProgress) { _local1 = (_local1 + _local2); }; _local3 = 0; for each (_local4 in this.totalBytes) { _local3 = (_local3 + _local4); }; return (Math.round(((100 * _local1) / _local3))); } public function libLoaded(_arg1:Event):void{ if (wbSettingsManager.getInstance().getSettings("traces")){ trace("libLoaded", _arg1.target, _arg1.target.url); }; this.loadingCounter--; } public function toString():String{ return ("wbLibManager"); } private function isNotNull(_arg1, _arg2:int, _arg3:Array):Boolean{ return (!((_arg1 == null))); } public function getAssetFromLibs(_arg1:String):Object{ var mc:Object; var mcClass:Object; var lib:Loader; var id = _arg1; var i:Number = 0; while (i < this.libPriorityList.length) { lib = libDict[this.libPriorityList[i]]; try { mcClass = Class(lib.contentLoaderInfo.applicationDomain.getDefinition(id)); } catch(e:Error) { mcClass = null; }; if (mcClass != null){ return (new (mcClass)); }; i = (i + 1); }; return (null); } private function libInit(_arg1:Event):void{ if (wbSettingsManager.getInstance().getSettings("traces")){ trace("libInit", _arg1.target, _arg1.target.url); }; } private function updateLibPriorityList(_arg1:Dictionary):void{ var _local3:String; this.libPriorityList = new Array(); var _local2:Array = new Array(); for (_local3 in _arg1) { if (_arg1[_local3].priority != null){ this.libPriorityList[_arg1[_local3].priority] = _arg1[_local3].url; } else { _local2.push(_arg1[_local3].url); }; }; this.libPriorityList = this.libPriorityList.concat(_local2); this.libPriorityList = this.libPriorityList.filter(isNotNull); this.libPriorityList = this.libPriorityList.reverse(); } public function loadLib(_arg1:String):void{ if (wbSettingsManager.getInstance().getSettings("traces")){ trace("loadLib", _arg1); }; var _local2:LoaderContext = new LoaderContext(); _local2.applicationDomain = new ApplicationDomain(); var _local3:Loader = new Loader(); _local3.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, libProgress); _local3.contentLoaderInfo.addEventListener(Event.COMPLETE, libLoaded); _local3.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, urlError); _local3.load(new URLRequest(((getSourceURL() + wbSettingsManager.getInstance().getSettings("libPath")) + _arg1))); this.libDict[_arg1] = _local3; } } }//package WBE.Managers
Section 240
//wbSettingsManager (WBE.Managers.wbSettingsManager) package WBE.Managers { import flash.utils.*; import flash.text.*; import Game.Data.*; public class wbSettingsManager { private var settingsData:SettingsData; private static var allowInstantiation:Boolean; private static var instance:wbSettingsManager; public function wbSettingsManager(){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use wbwbSettingsManager.getInstance() instead of new.")); }; settingsData = SettingsData.getInstance(this); } public function getSettings(_arg1:String){ return (settingsData.settings[_arg1]); } public function setSettings(_arg1:String, _arg2):void{ settingsData.settings[_arg1] = _arg2; } public function getPoints(_arg1:Object):Dictionary{ if ((_arg1 is wbVarManager)){ return (settingsData.points); }; wbStateManager.getInstance().error("Illegal call, this function can only be called by called by wbVarManager", this, "getPoints"); return (null); } public function toggleTurbo():void{ settingsData.settings["turbo"] = !(settingsData.settings["turbo"]); } public function toString():String{ return ("wbSettingsManager"); } public function getURL(_arg1:String):String{ return (settingsData.urls[_arg1]); } public function getFilterSet(_arg1:String):Array{ return (settingsData.filterSets[_arg1]); } public function removeInstance():void{ } public function getTextFormat(_arg1:String):TextFormat{ if (settingsData.textFormats[_arg1] != null){ return (settingsData.textFormats[_arg1]); }; return (settingsData.textFormats["default"]); } public function getWorldSettings(_arg1:String):int{ return (settingsData.worldSettings[_arg1]); } public static function getInstance():wbSettingsManager{ if (instance == null){ allowInstantiation = true; instance = new (wbSettingsManager); allowInstantiation = false; }; return (instance); } } }//package WBE.Managers
Section 241
//wbStateManager (WBE.Managers.wbStateManager) package WBE.Managers { import flash.display.*; import flash.events.*; import Game.States.*; import WBE.States.*; import flash.utils.*; import WBE.Helpers.*; import Game.Data.*; import caurina.transitions.*; import WBE.Debug.*; import WBE.UI.*; public class wbStateManager extends MovieClip { private var states:Dictionary; private var prevDisabledMode:String; private var modalLayerClip:MovieClip; private var disabledMC:MovieClip; private var nextStateData:Object; private var infoWindow:MovieClip; private var prevGameArgs:Object; private var bg:MovieClip; private var modalLayers:Dictionary; private var overlay:MovieClip; private var nextState:wbState; private var currentStateData:Object; private var gameMenu:MovieClip; private var prevMode:String; private var currentStateNr:int; private var dm:wbDebugManager; private var animation:MovieClip; private var currentState:wbState; private var lastState:int; private var mode:String;// = "state" private var modalLayer:MovieClip; public var frameRateOn:Boolean;// = false private var databaseManager:wbDatabaseManager; private var vm:wbVarManager; private var activityIndicator:MovieClip; private var modalLayerShown:Boolean;// = false private var back:MovieClip; private static var allowInstantiation:Boolean; private static var instance:wbStateManager; public function wbStateManager():void{ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use wbStateManager.getInstance() instead of new.")); }; } public function flookieDone(_arg1:Object=null):void{ if (_arg1 != null){ this.getNextState(_arg1.exit); } else { this.getNextState("done"); }; } public function togglePause():void{ if (this.mode == "pause"){ this.setPause(false); } else { this.setPause(true); }; } public function getCurrentState():wbState{ return (this.currentState); } public function error(_arg1:String, _arg2:Object=null, _arg3:String=""):void{ this.mode = "error"; Log.w(("There was an error: " + _arg1), _arg2, _arg3); } public function init():void{ this.states = new Dictionary(true); this.currentStateNr = 0; this.lastState = 0; this.back = new MovieClip(); this.overlay = new MovieClip(); this.modalLayerClip = new MovieClip(); this.modalLayers = new Dictionary(); this.addChild(back); this.addChild(wbTooltipManager.getInstance()); this.addChild(overlay); this.addChild(this.modalLayerClip); this.overlay.mouseEnabled = false; this.dm = wbDebugManager.getInstance(); this.dm.init(); this.vm = wbVarManager.getInstance(); this.databaseManager = wbDatabaseManager.getInstance(); this.databaseManager.init(); if (wbSettingsManager.getInstance().getSettings("checkForFlookie")){ new wbFlookie().doAction("slots", null); }; this.addStageListeners(); this.start(); } public function exitState(_arg1:String):void{ this.getNextState(_arg1); } public function push(_arg1:wbState):void{ this.lastState++; this.states[this.lastState] = _arg1; } public function toggleSound():void{ wbAudioManager.getInstance().toggleSound(); } public function dbDone(_arg1:Object=null):void{ this.getNextState("done"); } public function removeFromOverlay(_arg1:DisplayObject):void{ if (this.overlay.getChildByName(_arg1.name)){ this.overlay.removeChild(_arg1); if (this.overlay.numChildren == 0){ this.overlay.visible = false; }; }; } public function music(_arg1:MouseEvent):void{ this.toggleMusic(); } private function stageDeactivate(_arg1:Event):void{ if ((this.currentState is wbGameState)){ this.setDisabled(true); }; } public function toggleMusic():void{ wbAudioManager.getInstance().toggleMusic(); } public function openInfoWindow(_arg1:String):void{ this.setPause(true); this.infoWindow = new wbInfoWindow(_arg1, this.currentState); this.addToModalLayer(this.infoWindow, false); } private function stageFocusIn(_arg1:Event):void{ } public function closeInfoWindow():void{ this.setPause(false); if (this.infoWindow != null){ this.removeFromModalLayer(this.infoWindow); this.infoWindow = null; }; } public function submitScore():void{ if ((this.currentState is GameState)){ GameState(this.currentState).submitScore(); }; } public function toggleDebug():void{ Log.w("toggleDebug"); if (wbSettingsManager.getInstance().getSettings("debug")){ if (this.frameRateOn){ this.dm.off(); this.overlay.removeChild(this.dm); } else { this.overlay.addChild(this.dm); this.dm.on(); }; this.frameRateOn = !(this.frameRateOn); }; } private function removeModalLayer(_arg1:MovieClip):void{ _arg1.modal_bg.removeEventListener(MouseEvent.MOUSE_DOWN, modalLayerBlockMouse); _arg1.modal_bg.removeEventListener(MouseEvent.MOUSE_MOVE, modalLayerBlockMouse); _arg1.modal_bg.removeEventListener(MouseEvent.MOUSE_OUT, modalLayerBlockMouse); _arg1.modal_bg.removeEventListener(MouseEvent.MOUSE_OVER, modalLayerBlockMouse); _arg1.modal_bg.removeEventListener(MouseEvent.MOUSE_UP, modalLayerBlockMouse); _arg1.modal_bg.removeEventListener(MouseEvent.MOUSE_WHEEL, modalLayerBlockMouse); } public function toggleConsole():void{ Log.w("toggleConsole"); if (wbSettingsManager.getInstance().getSettings("debug")){ wbConsole.getInstance().toggle(); }; } public function start():void{ var _local1:wbConsole; if (this.currentState != null){ throw (new Error("wbStateManager allready started")); }; if (this.mode != "error"){ this.currentStateData = StateData.getInstance(this).states[StateData.getInstance(this).startState]; this.currentStateData.id = StateData.getInstance(this).startState; wbDynamicAudioManager.getInstance().changeState(StateData.getInstance(this).startState); this.currentState = this.createStateFromData(this.currentStateData); this.back.addChild(this.currentState); this.currentState.enter(); if (wbSettingsManager.getInstance().getSettings("debug")){ if (this.frameRateOn){ this.overlay.addChild(this.dm); this.dm.on(); }; _local1 = wbConsole.getInstance(); this.overlay.addChild(_local1); }; this.stage.addEventListener(KeyboardEvent.KEY_UP, controlUp); }; } override public function toString():String{ return ("wbStateManager"); } public function endGame():void{ wbVarManager.getInstance().stopTime(); } private function stageFocusOut(_arg1:Event):void{ this.stage.stageFocusRect = false; this.stage.focus = this.currentState; } public function showModalLayer():void{ this.modalLayer = this.createModalLayer(); this.modalLayerClip.addChild(this.modalLayer); this.modalLayerShown = true; } public function closeGameMenu():void{ this.setPause(false); if (this.gameMenu != null){ this.gameMenu.remove(); this.removeFromModalLayer(this.gameMenu); this.gameMenu = null; }; } public function removeFromModalLayer(_arg1:MovieClip):void{ if (this.modalLayers[_arg1] != null){ this.removeModalLayer(this.modalLayers[_arg1].getChildByName("modalLayer")); this.modalLayerClip.removeChild(this.modalLayers[_arg1]); delete this.modalLayers[_arg1]; }; } public function showOverlay():void{ this.overlay.visible = true; } public function dbSessionCreated():void{ } public function closeShopGameMenu():void{ new wbFlookie().doAction("save", null); this.closeGameMenu(); } public function createStateFromData(_arg1:Object):wbState{ var stateName:String; var stateClass:Object; var stateData = _arg1; stateName = (stateData.type + "State"); try { stateClass = (getDefinitionByName(("Game.States." + stateName)) as Class); } catch(e:ReferenceError) { try { stateClass = (getDefinitionByName(("WBE.States.wb" + stateName)) as Class); } catch(e:ReferenceError) { this.error((stateName + " could not be found")); }; }; var state:wbState = new stateClass(stateData.args); return (state); } public function findNextState(_arg1:String, _arg2:String):Object{ var _local6:String; var _local7:Object; var _local3 = "getNextState"; Log.w(((("currentStateID: " + _arg1) + " exitCode: ") + _arg2), this, _local3); var _local4:Array = StateData.getInstance(this).states[_arg1].next; var _local5:int; while (_local5 < _local4.length) { if (_local4[_local5][0] == _arg2){ _local6 = _local4[_local5][1]; _local7 = StateData.getInstance(this).states[_local6]; _local7.id = _local6; return (_local7); }; _local5++; }; throw (new Error("No next state could be found")); } public function getNextState(_arg1:String):void{ this.closeGameMenu(); if (this.mode == "db"){ this.removeChild(this.activityIndicator); this.activityIndicator = null; this.bg = null; }; if (this.mode == "flookie"){ this.bg = null; }; this.currentStateData = findNextState(currentStateData.id, _arg1); wbDynamicAudioManager.getInstance().changeState(this.currentStateData.id); if (((!((this.currentStateData.type == "anim"))) && (!((this.currentState == null))))){ this.currentState.exit(); this.back.removeChild(this.currentState); delete ??getglobalscope [this.back.getChildByName(this.currentState.name)]; }; switch (this.currentStateData.type){ case "db": this.currentState = null; this.activityIndicator = MovieClip(wbAssetManager.getInstance().getGraphics("activityIndicator")); this.activityIndicator.x = (wbSettingsManager.getInstance().getWorldSettings("width") / 2); this.activityIndicator.y = (wbSettingsManager.getInstance().getWorldSettings("height") / 2); this.addChild(this.activityIndicator); wbDatabaseManager.getInstance().doAction(this.currentStateData.args.type, dbDone, [this.currentStateData.args]); this.mode = "db"; break; case "flookie": this.currentState = null; new wbFlookie().doAction(this.currentStateData.args.action, flookieDone, false, this.currentStateData.args); break; case "anim": this.animation = MovieClip(wbAssetManager.getInstance().getGraphics(this.currentStateData.args.id)); this.addChild(this.animation); this.animation.addEventListener(MouseEvent.MOUSE_DOWN, modalLayerBlockMouse); this.animation.addEventListener(MouseEvent.MOUSE_MOVE, modalLayerBlockMouse); this.animation.addEventListener(MouseEvent.MOUSE_OUT, modalLayerBlockMouse); this.animation.addEventListener(MouseEvent.MOUSE_OVER, modalLayerBlockMouse); this.animation.addEventListener(MouseEvent.MOUSE_UP, modalLayerBlockMouse); this.animation.addEventListener(MouseEvent.MOUSE_WHEEL, modalLayerBlockMouse); this.mode = "anim"; break; default: this.mode = "state"; this.currentState = this.createStateFromData(this.currentStateData); this.back.addChild(this.currentState); this.currentState.enter(); break; }; } public function hideOverlay():void{ this.overlay.visible = false; } public function addToOverlay(_arg1:DisplayObject):void{ this.overlay.addChild(_arg1); this.overlay.visible = true; } public function getPrevGameArgs():Object{ return (this.prevGameArgs); } public function setPause(_arg1:Boolean):void{ if (((_arg1) && (!((this.mode == "pause"))))){ this.prevMode = this.mode; this.mode = "pause"; } else { if (((!(_arg1)) && ((this.mode == "pause")))){ this.mode = this.prevMode; }; }; } public function closeModalLayer(_arg1:Event):void{ this.removeFromModalLayer(_arg1.currentTarget.parent.getChildByName("mc")); } private function createModalLayer():MovieClip{ var _local1:MovieClip = MovieClip(wbAssetManager.getInstance().getGraphics("modalLayer")); _local1.alpha = 0.5; _local1.modal_bg.width = wbSettingsManager.getInstance().getWorldSettings("width"); _local1.modal_bg.height = wbSettingsManager.getInstance().getWorldSettings("height"); _local1.modal_bg.addEventListener(MouseEvent.MOUSE_DOWN, modalLayerBlockMouse); _local1.modal_bg.addEventListener(MouseEvent.MOUSE_MOVE, modalLayerBlockMouse); _local1.modal_bg.addEventListener(MouseEvent.MOUSE_OUT, modalLayerBlockMouse); _local1.modal_bg.addEventListener(MouseEvent.MOUSE_OVER, modalLayerBlockMouse); _local1.modal_bg.addEventListener(MouseEvent.MOUSE_UP, modalLayerBlockMouse); _local1.modal_bg.addEventListener(MouseEvent.MOUSE_WHEEL, modalLayerBlockMouse); _local1.modal_bg.useHandCursor = false; return (_local1); } public function setPrevGameArgs(_arg1:Object):void{ this.prevGameArgs = _arg1; } public function step():void{ var _local1:String; switch (this.mode){ case "state": Tweener.onEnterFrame(new Event("")); _local1 = this.currentState.step(); if (_local1 != ""){ this.getNextState(_local1); }; break; case "db": break; case "flookie": break; case "anim": if (this.animation.currentLabel == "end"){ this.removeChild(this.animation); this.animation.removeEventListener(MouseEvent.MOUSE_DOWN, modalLayerBlockMouse); this.animation.removeEventListener(MouseEvent.MOUSE_MOVE, modalLayerBlockMouse); this.animation.removeEventListener(MouseEvent.MOUSE_OUT, modalLayerBlockMouse); this.animation.removeEventListener(MouseEvent.MOUSE_OVER, modalLayerBlockMouse); this.animation.removeEventListener(MouseEvent.MOUSE_UP, modalLayerBlockMouse); this.animation.removeEventListener(MouseEvent.MOUSE_WHEEL, modalLayerBlockMouse); if (this.currentState != null){ this.currentState.exit(); this.back.removeChild(this.currentState); delete ??getglobalscope [this.back.getChildByName(this.currentState.name)]; }; this.currentState = null; this.getNextState("end"); }; break; case "error": break; case "pause": if (this.gameMenu){ this.gameMenu.step(); }; break; }; this.dm.step(); this.vm.step(); } public function addToModalLayer(_arg1:MovieClip, _arg2:Boolean=true):void{ var _local5:DisplayObject; var _local6:Number; var _local3:MovieClip = new MovieClip(); var _local4:MovieClip = this.createModalLayer(); _local4.name = "modalLayer"; _local3.addChild(_local4); _arg1.x = ((_local3.width / 2) - (_arg1.width / 2)); _arg1.y = ((_local3.height / 2) - (_arg1.height / 2)); _local3.addChild(_arg1); _arg1.name = "mc"; this.modalLayers[_arg1] = _local3; this.modalLayerClip.addChild(_local3); if (_arg2){ _local5 = DisplayObject(wbAssetManager.getInstance().getGraphics("modalLayerClose_btn")); _local6 = 5; _local5.addEventListener(MouseEvent.MOUSE_UP, closeModalLayer); _local5.x = (((_arg1.x + _arg1.width) - _local5.width) - _local6); _local5.y = (_arg1.y + _local6); _local3.addChild(_local5); }; } private function mouseUpDisabled(_arg1:Event):void{ _arg1.stopImmediatePropagation(); this.setDisabled(false); } public function audio(_arg1:MouseEvent):void{ this.toggleSound(); } public function controlUp(_arg1:KeyboardEvent):void{ switch (_arg1.keyCode){ case 65: if (((_arg1.altKey) || (_arg1.shiftKey))){ this.toggleConsole(); }; break; case 192: this.toggleConsole(); break; case 68: if (((_arg1.altKey) || (_arg1.shiftKey))){ this.toggleDebug(); }; break; case 56: break; case 57: break; }; } public function openGameMenu(_arg1:String):void{ this.setPause(true); this.gameMenu = new wbGameMenu(_arg1, this.currentState); this.addToModalLayer(this.gameMenu, false); } private function modalLayerBlockMouse(_arg1:MouseEvent):void{ _arg1.stopImmediatePropagation(); } public function toggleGameMenu(_arg1:String):void{ if (this.gameMenu != null){ this.closeGameMenu(); } else { this.openGameMenu(_arg1); }; } private function addStageListeners():void{ this.stage.addEventListener(Event.DEACTIVATE, stageDeactivate); this.stage.addEventListener(FocusEvent.FOCUS_IN, stageFocusIn); this.stage.addEventListener(FocusEvent.FOCUS_OUT, stageFocusOut); } public function isModalLayerOn():Boolean{ return (this.modalLayerShown); } public function belongsToCurrentState(_arg1:MovieClip):Boolean{ var _local2:DisplayObjectContainer = _arg1; while (_local2 != null) { if (_local2 == this.states[this.currentStateNr]){ return (true); }; _local2 = _local2.parent; }; return (false); } public function isPaused():Boolean{ return ((this.mode == "pause")); } public function setDisabled(_arg1:Boolean):void{ var _local2:MovieClip; var _local3:MovieClip; if (((_arg1) && ((this.disabledMC == null)))){ this.prevDisabledMode = this.mode; this.mode = "pause"; this.disabledMC = new MovieClip(); _local2 = MovieClip(wbAssetManager.getInstance().getGraphics("pausedMessageBG")); _local3 = MovieClip(wbAssetManager.getInstance().getGraphics("pausedMessageMC")); _local2.width = wbSettingsManager.getInstance().getWorldSettings("width"); _local2.height = wbSettingsManager.getInstance().getWorldSettings("height"); this.disabledMC.addChild(_local2); this.disabledMC.addChild(_local3); _local3.x = ((_local2.width / 2) - (_local3.width / 2)); _local3.y = ((_local2.height / 2) - (_local3.height / 2)); _local3.mouseEnabled = false; this.addToModalLayer(this.disabledMC, false); this.disabledMC.addEventListener(MouseEvent.MOUSE_UP, mouseUpDisabled); wbAudioManager.getInstance().pause(true); wbGameInputManager.getInstance().focusLost(); } else { if (((!(_arg1)) && (!((this.disabledMC == null))))){ this.mode = this.prevDisabledMode; this.disabledMC.removeEventListener(MouseEvent.MOUSE_UP, mouseUpDisabled); this.removeFromModalLayer(this.disabledMC); this.disabledMC = null; wbAudioManager.getInstance().pause(false); }; }; } public static function getGameState():GameState{ var _local1:wbState = wbStateManager.getInstance().getCurrentState(); if ((_local1 is GameState)){ return (GameState(_local1)); }; return (null); } public static function getInstance():wbStateManager{ if (instance == null){ allowInstantiation = true; instance = new (wbStateManager); allowInstantiation = false; }; return (instance); } } }//package WBE.Managers
Section 242
//wbTooltipManager (WBE.Managers.wbTooltipManager) package WBE.Managers { import flash.display.*; import flash.events.*; import caurina.transitions.*; public class wbTooltipManager extends MovieClip { private var defaultDelay:int;// = 20 private var tooltip:MovieClip; private var defaultTime:int;// = 40 private var tooltipCaller:Object; private static var allowInstantiation:Boolean; private static var instance:wbTooltipManager; public function wbTooltipManager(){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use wbTooltipManager.getInstance() instead of new.")); }; this.mouseEnabled = false; this.mouseChildren = false; } public function hideTooltip(_arg1:Object):void{ var caller = _arg1; if (this.tooltipCaller == caller){ if (this.tooltip != null){ this.removeChild(this.tooltip); }; this.tooltip = null; this.tooltipCaller = null; try { this.stage.removeEventListener(MouseEvent.MOUSE_MOVE, moveMouse); } catch(e:Error) { }; }; } public function getTooltip():MovieClip{ return (this.tooltip); } override public function toString():String{ return ("wbTooltipManager"); } public function showTooltip(_arg1:Object, _arg2:String, _arg3=null, _arg4=null):void{ if (this.tooltipCaller != _arg1){ if (this.tooltip != null){ this.tooltipCaller.removeChild(this.tooltip); }; this.tooltipCaller = _arg1; this.tooltip = MovieClip(wbAssetManager.getInstance().getGraphics("tooltip")); this.tooltip.alpha = 0; this.tooltip.textField.text = _arg2; this.tooltip.textField.embedFonts = true; this.tooltip.bg.width = (this.tooltip.textField.textWidth + 40); this.tooltip.textField.width = this.tooltip.bg.width; this.addChild(this.tooltip); this.positionTooltip(this.stage.mouseX, this.stage.mouseY); this.stage.addEventListener(MouseEvent.MOUSE_MOVE, moveMouse); if (!_arg3){ _arg3 = this.defaultDelay; }; if (!_arg4){ _arg4 = this.defaultTime; }; Tweener.addTween(this.tooltip, {alpha:1, delay:_arg3, time:_arg4, useFrames:true, transition:"easeOutExpo"}); }; } private function moveMouse(_arg1:MouseEvent):void{ if (this.tooltip != null){ this.positionTooltip(_arg1.stageX, _arg1.stageY); }; _arg1.updateAfterEvent(); } public function removeInstance():void{ } private function positionTooltip(_arg1:Number, _arg2:Number):void{ this.tooltip.x = _arg1; this.tooltip.y = _arg2; var _local3:Number = wbSettingsManager.getInstance().getWorldSettings("width"); if ((this.tooltip.x + this.tooltip.width) > _local3){ this.tooltip.x = (_local3 - this.tooltip.width); }; if ((this.tooltip.y - this.tooltip.height) < 0){ this.tooltip.y = this.tooltip.height; }; } public static function getInstance():wbTooltipManager{ if (instance == null){ allowInstantiation = true; instance = new (wbTooltipManager); allowInstantiation = false; }; return (instance); } } }//package WBE.Managers
Section 243
//wbVarManager (WBE.Managers.wbVarManager) package WBE.Managers { import flash.utils.*; import WBE.Helpers.*; import Game.Data.*; import WBE.Debug.*; import de.polygonal.math.*; import com.electrotank.util.*; public class wbVarManager { private var totalScores:Dictionary; private var timing:Boolean; private var levelScores:Dictionary; private var initialVars:Dictionary; private var frameTimers:Array; private var randomizer:PM_PRNG; private var points:Dictionary; private var prevTime:int; private var forms:Dictionary; private var vars:Dictionary; private var varFunctions:Dictionary; private static var allowInstantiation:Boolean; private static var instance:wbVarManager; public function wbVarManager(){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use wbVarManager.getInstance() instead of new.")); }; this.vars = new Dictionary(); this.forms = VarData.getInstance(this).forms; this.initialVars = new Dictionary(); this.initialVars["mode"] = {value:"", type:String}; this.initialVars["frameNr"] = {value:0, type:int}; this.initialVars["time"] = {value:0, type:int}; this.initialVars["score"] = {value:0, type:int}; this.initialVars["rank"] = {value:0, type:int}; this.initialVars["totalPlayers"] = {value:0, type:int}; this.initialVars["playerid"] = {value:0, type:int}; this.initialVars["sessionid"] = {value:0, type:int}; this.initialVars["playthroughid"] = {value:0, type:int}; this.initialVars["levelFrameRate"] = {type:Number}; this.initialVars["levelDevFrameRate"] = {type:Number}; this.initialVars["levelTime"] = {type:Number}; this.initialVars["gameURL"] = {value:"", type:String}; this.initialVars["saveSlot"] = {value:-1, type:int}; this.initialVars["slotNames"] = {value:null, type:Array}; this.initialVars["existingSaveGame"] = {value:false, type:Boolean}; this.initialVars["nameSaveGame"] = {value:"", type:String}; this.initialVars["gameType"] = {value:"", type:String}; this.initVars(); this.varFunctions = VarData.getInstance(this).varFunctions; this.frameTimers = new Array(); this.totalScores = new Dictionary(); this.levelScores = new Dictionary(); this.points = wbSettingsManager.getInstance().getPoints(this); this.randomizer = new PM_PRNG(); this.randomizer.seed = Math.floor((Math.random() * 1000)); this.randomizer.nextDouble(); } public function getForm(_arg1:String):Object{ var _local2 = "getForm"; Log.w(_arg1, this, _local2); if (this.forms[_arg1] != null){ return (this.forms[_arg1]); }; wbStateManager.getInstance().error((("Form " + _arg1) + " does not exist"), this, _local2); return (null); } public function getAllVarNames():Array{ var _local2:String; var _local1:Array = new Array(); for (_local2 in this.vars) { _local1.push(_local2); }; return (_local1); } public function addToVar(_arg1:String, _arg2):void{ var _local3 = "addToVar"; if ((((this.vars[_arg1].type == int)) || ((this.vars[_arg1].type == Number)))){ MemoryCrypto.incrementValue(_arg1, _arg2); } else { wbStateManager.getInstance().error(((("Error: Can only add to vars of type int or Number " + _arg1) + " is of type ") + this.vars[_arg1].type), this, _local3); }; } public function setForm(_arg1:String, _arg2:Object):void{ var _local3 = "setForm"; Log.w(_arg1, this, _local3); if (this.forms[_arg1] != null){ this.forms[_arg1] = _arg2; } else { wbStateManager.getInstance().error((("Form " + _arg1) + " does not exist"), this, _local3); }; } public function startTime():void{ this.timing = true; MemoryCrypto.setValue("time", 0); this.prevTime = new Date().getTime(); } public function getVarType(_arg1:String):Class{ if (this.vars[_arg1] != null){ return (this.vars[_arg1].type); }; throw (new Error((("variable " + _arg1) + " does not exist."))); } public function step():void{ var _local1:Number; MemoryCrypto.incrementValue("frameNr", 1); if (this.timing){ _local1 = new Date().getTime(); MemoryCrypto.incrementValue("time", (_local1 - prevTime)); prevTime = _local1; }; checkFrameTimers(); } private function checkFrameTimers():void{ var _local1:Object; if (this.frameTimers.length > 0){ _local1 = this.frameTimers[(this.frameTimers.length - 1)]; if (_local1.endFrame <= MemoryCrypto.getValue("frameNr")){ _local1.callback.call(); this.frameTimers.pop(); this.checkFrameTimers(); }; }; } public function resumeTime():void{ this.timing = true; this.prevTime = new Date().getTime(); } public function initVars():void{ var _local2:String; var _local1:Dictionary = VarData.getInstance(this).vars; for (_local2 in this.initialVars) { this.vars[_local2] = Copier.copyObject(this.initialVars[_local2]); }; for (_local2 in _local1) { this.vars[_local2] = Copier.copyObject(_local1[_local2]); }; for (_local2 in this.vars) { if ((((((this.vars[_local2].type == int)) || ((this.vars[_local2].type == Number)))) && (!((this.vars[_local2].valueOf == null))))){ MemoryCrypto.setValue(_local2, this.vars[_local2].value); }; }; } public function _random():Number{ var _local1:int; while (_local1 < Math.floor((Math.random() * 10))) { this.randomizer.nextDouble(); _local1++; }; return (this.randomizer.nextDouble()); } public function setVar(_arg1:String, _arg2):void{ if ((((_arg1 == "tutorState")) && (wbSettingsManager.getInstance().getSettings("traces")))){ trace("setvar", _arg1, _arg2); }; var _local3 = "setVar"; if (this.vars[_arg1] != null){ if ((_arg2 is this.vars[_arg1].type)){ if ((((this.vars[_arg1].type == int)) || ((this.vars[_arg1].type == Number)))){ MemoryCrypto.setValue(_arg1, _arg2); } else { this.vars[_arg1].value = _arg2; }; } else { wbStateManager.getInstance().error(((("Type error: Variable " + _arg1) + " is of type ") + this.vars[_arg1].type), this, _local3); }; } else { wbStateManager.getInstance().error((("variable " + _arg1) + " does not exist."), this, _local3); }; } public function toString():String{ return ("wbVarManager"); } public function getCurrentTime():Number{ return ((MemoryCrypto.getValue("time") / 1000)); } public function getVar(_arg1:String){ if (this.vars[_arg1] != null){ if ((((this.vars[_arg1].type == int)) || ((this.vars[_arg1].type == Number)))){ return (MemoryCrypto.getValue(_arg1)); }; return (this.vars[_arg1].value); //unresolved jump }; if (this.varFunctions[_arg1] != null){ return (this.varFunctions[_arg1].call()); }; throw (new Error((("variable " + _arg1) + " does not exist."))); } public function addScore(_arg1:String, _arg2:Number=NaN):void{ if (this.levelScores[_arg1]){ var _local3 = this.levelScores; var _local4 = _arg1; var _local5 = (_local3[_local4] + 1); _local3[_local4] = _local5; } else { this.levelScores[_arg1] = 1; }; if (isNaN(_arg2)){ if (this.points[_arg1]){ MemoryCrypto.incrementValue("score", this.points[_arg1]); }; } else { MemoryCrypto.incrementValue("score", _arg2); }; } public function removeInstance():void{ } public function addFrameTimer(_arg1:int, _arg2:Object):void{ this.frameTimers.push({endFrame:(MemoryCrypto.getValue("frameNr") + _arg1), callback:_arg2}); this.frameTimers.sortOn("endFrame", Array.DESCENDING); } public function stopTime():void{ this.timing = false; } public static function random():Number{ return (wbVarManager.getInstance()._random()); } public static function getInstance():wbVarManager{ if (instance == null){ allowInstantiation = true; instance = new (wbVarManager); allowInstantiation = false; }; return (instance); } } }//package WBE.Managers
Section 244
//wbMode (WBE.Modes.wbMode) package WBE.Modes { import WBE.Managers.*; import flash.utils.*; import flash.text.*; public class wbMode { protected var currentStep:String; protected var announce:TextField; protected var stepPhase:int;// = 0 protected var stepFunctions:Dictionary; private var doCurrentStep:Boolean;// = true public function wbMode(_arg1:Object):void{ var _local2:TextFormat = new TextFormat(); _local2.color = 0xFFFF00; _local2.size = 40; _local2.font = "Trajan Pro"; _local2.align = "center"; _local2.bold = true; this.announce = new TextField(); this.announce.defaultTextFormat = _local2; this.announce.x = 200; this.announce.y = 200; this.announce.width = 200; this.announce.height = 100; this.stepFunctions = new Dictionary(); this.stepFunctions["default"] = {func:defaultStep, type:"loop", next:"default"}; this.currentStep = "default"; } public function getGameMenuType():String{ return ("Default"); } protected function removeSub():void{ } public function remove():void{ this.removeSub(); } public function nextPhase(_arg1:String=""):void{ if (_arg1 == ""){ this.currentStep = this.stepFunctions[this.currentStep].next; } else { this.currentStep = _arg1; }; this.doCurrentStep = true; switch (this.stepFunctions[this.currentStep].type){ case "loop": break; case "single": break; case "stop": break; case "wait": wbVarManager.getInstance().addFrameTimer(this.stepFunctions[this.currentStep].time, waitDone); break; }; } public function step():void{ var _local1:String; if (this.stepFunctions[this.currentStep].type == "stop"){ if (this.doCurrentStep){ this.stepFunctions[this.currentStep].func.call(); this.doCurrentStep = false; }; } else { _local1 = this.stepFunctions[this.currentStep].type; this.stepFunctions[this.currentStep].func.call(); if (_local1 == "single"){ this.nextPhase(); }; }; } private function waitDone():void{ this.nextPhase(); } private function defaultStep():void{ } } }//package WBE.Modes
Section 245
//wbGameState (WBE.States.wbGameState) package WBE.States { import flash.display.*; import WBE.Managers.*; import flash.utils.*; import Game.GameWorld.*; import Game.Modes.*; import WBE.Cameras.*; import WBE.UI.*; public class wbGameState extends wbState { protected var interf:wbInterface; protected var world:World; protected var gameLoaded:Boolean;// = false protected var args:Object; protected var mode:Mode; protected var camera:wbPlayerCam; private var cameraLayer:MovieClip; private var pause:Boolean;// = false protected var modeType:String; public function wbGameState(_arg1:Object):void{ camera = wbPlayerCam.getInstance(); interf = wbInterface.getInstance(); world = World.getInstance(); super(); this.args = _arg1; var _local2:wbStateManager = wbStateManager.getInstance(); this.cameraLayer = new MovieClip(); this.addChild(this.cameraLayer); this.cameraLayer.addChild(camera); this.addChild(interf); } override public function toString():String{ return ("wbGameState"); } override public function step():String{ if (this.gameLoaded){ this.interf.update(); this.world.step(); this.camera.update(); this.mode.step(); }; return (super.step()); } public function getCurrentMode():Mode{ return (this.mode); } protected function loadGameDone():void{ this.gameLoaded = true; this.camera.init(); this.world.init(); this.interf.init(this.args.mode, this); this.camera.attachWorld(this.world); this.stage.stageFocusRect = false; this.stage.focus = this; wbGameInputManager.getInstance().init(this.stage); this.modeType = this.args.mode; wbStateManager.getInstance().setPrevGameArgs(this.args); var _local1 = (("Game.Modes." + this.modeType) + "Mode"); var _local2:Class = (getDefinitionByName(_local1) as Class); this.mode = new _local2(this.args); } override public function exit():void{ wbGameInputManager.getInstance().removeInstance(); this.camera.removeInstance(); this.interf.removeInstance(); this.world.removeInstance(); this.camera.removeWorld(world); } override public function enter():void{ this.loadGame(); } protected function loadGame():void{ this.loadGameDone(); } } }//package WBE.States
Section 246
//wbMenuState (WBE.States.wbMenuState) package WBE.States { import flash.display.*; import WBE.Managers.*; import flash.utils.*; import WBE.Helpers.*; import Game.Data.*; import WBE.Debug.*; import WBE.UI.*; public class wbMenuState extends wbState { private var forms:Dictionary; private var menuGraphics:MovieClip; private var ui_items:Dictionary; private var md:Dictionary; private var menuID:String; public function wbMenuState(_arg1:Object){ this.menuID = _arg1.id; this.md = MenuData.getInstance(this).menus[this.menuID]; } override public function getBackground():MovieClip{ return (this.menuGraphics); } override public function exit():void{ var _local1:wbUI_Item; for each (_local1 in this.ui_items) { _local1.remove(); }; wbAssetManager.getInstance().stopPlaying(this.menuGraphics); this.removeChild(this.menuGraphics); } override public function step():String{ var _local2:Object; var _local1:String = super.step(); for each (_local2 in this.ui_items) { _local2.update(); }; return (_local1); } override public function validate():Boolean{ var _local1:Object; var _local2:String; var _local3:int; var _local4:Object; for (_local2 in this.forms) { _local1 = new Object(); _local3 = 0; while (_local3 < this.forms[_local2].length) { if (wbFormValidator.getInstance().validateField(this.forms[_local2][_local3].getItemData().validate, this.forms[_local2][_local3].getText())){ _local1[this.forms[_local2][_local3].getID()] = this.forms[_local2][_local3].getText(); } else { for (_local4 in this.ui_items) { if (this.ui_items[_local4] == "wbUI_Input"){ this.ui_items[_local4].showErrorBox(); }; }; return (false); }; _local3++; }; wbVarManager.getInstance().setForm(_local2, _local1); }; return (true); } override public function enter():void{ this.stage.stageFocusRect = false; this.stage.focus = this; var _local1:MovieClip = MovieClip(wbAssetManager.getInstance().getGraphics((this.menuID + "MenuBG"), true)); if (_local1 != null){ this.addChild(_local1); } else { Log.w((("warning: " + this.menuID) + "MenuBG not found")); }; this.menuGraphics = MovieClip(wbAssetManager.getInstance().getGraphics((this.menuID + "Menu"), true)); var _local2:Boolean; if (this.menuGraphics == null){ _local2 = false; this.menuGraphics = new MovieClip(); }; this.addChild(this.menuGraphics); var _local3:wbUI = new wbUI(this.md, this.menuGraphics, this, _local2); this.ui_items = _local3.getItems(); this.forms = _local3.getForms(); } override public function toString():String{ return ("wbMenuState"); } } }//package WBE.States
Section 247
//wbState (WBE.States.wbState) package WBE.States { import flash.display.*; public class wbState extends MovieClip { private var exitCode:String; public function wbState(){ this.exitCode = ""; } public function getBackground():MovieClip{ return (new MovieClip()); } public function validate():Boolean{ return (true); } public function enter():void{ } override public function toString():String{ return ("wbState"); } public function step():String{ return (this.exitCode); } public function requestExit(_arg1:String):void{ this.exitCode = _arg1; } public function exit():void{ } } }//package WBE.States
Section 248
//wbStoryState (WBE.States.wbStoryState) package WBE.States { import flash.display.*; import WBE.Managers.*; import WBE.UI.*; public class wbStoryState extends wbState { protected var buttonHeight:Number;// = 30 protected var animation:MovieClip; protected var storyEnded:Boolean;// = false protected var skipButton:wbUI_Button; protected var buttonWidth:Number;// = 60 protected var buttonSpacing:Number;// = 20 protected var continueButton:wbUI_Button; protected var args:Object; public function wbStoryState(_arg1:Object){ this.args = _arg1; } override public function step():String{ var _local1:String = super.step(); if ((((this.animation.currentLabel == "end")) && (!(this.storyEnded)))){ this.endStory(); }; return (_local1); } public function exitStory(_arg1:String="end"):void{ if (wbSettingsManager.getInstance().getSettings("traces")){ trace("exitStory:", _arg1); }; this.requestExit(_arg1); } override public function toString():String{ return ("wbStoryState"); } protected function endStory():void{ this.storyEnded = true; this.animation.gotoAndStop("end"); if (this.skipButton){ this.skipButton.visible = false; }; if (this.args.autoContinue == true){ this.exitStory(); } else { this.args.label = "Continue"; this.args.func = exitStory; this.continueButton = new wbUI_Button(this.args, ((wbSettingsManager.getInstance().getWorldSettings("width") - buttonWidth) - buttonSpacing), ((wbSettingsManager.getInstance().getWorldSettings("height") - buttonHeight) - buttonSpacing), buttonWidth, buttonHeight, this); this.addChild(this.continueButton); }; } override public function exit():void{ if (this.animation){ this.removeChild(this.animation); }; if (this.skipButton){ this.removeChild(this.skipButton); }; if (this.continueButton){ this.removeChild(this.continueButton); }; } override public function enter():void{ if (wbSettingsManager.getInstance().getSettings("traces")){ trace("wbStoryState"); }; this.animation = MovieClip(wbAssetManager.getInstance().getGraphics(args.id)); this.addChild(this.animation); this.args.label = "Skip"; this.args.action = "stateFunc"; this.args.func = endStory; if (this.args.skippable){ this.skipButton = new wbUI_Button(this.args, ((wbSettingsManager.getInstance().getWorldSettings("width") - buttonWidth) - buttonSpacing), ((wbSettingsManager.getInstance().getWorldSettings("height") - buttonHeight) - buttonSpacing), buttonWidth, buttonHeight, this); this.addChild(this.skipButton); }; } } }//package WBE.States
Section 249
//wbDialog (WBE.UI.wbDialog) package WBE.UI { import flash.display.*; import WBE.Managers.*; import flash.utils.*; public class wbDialog extends MovieClip { private var buttons:Array; private var prevFocus:InteractiveObject; private var keyMapping:Dictionary; private var funcMapping:Dictionary; private var mc:MovieClip; private var buttonData:Array; public function wbDialog(_arg1:Array, _arg2:String){ var _local4:MovieClip; var _local8:Number; super(); this.buttonData = _arg1; var _local3:wbStateManager = wbStateManager.getInstance(); this.mc = MovieClip(wbAssetManager.getInstance().getGraphics("DialogMC")); this.addChild(this.mc); this.prevFocus = _local3.stage.focus; this.mc.text.text = _arg2; this.keyMapping = new Dictionary(); this.funcMapping = new Dictionary(); this.buttons = new Array(); var _local5:Number = (((this.mc.width - 20) / this.buttonData.length) - 20); var _local6:Number = 60; var _local7:Number = 140; var _local9:int; while (_local9 < this.buttonData.length) { this.funcMapping[_local9] = this.buttonData[_local9].func; this.buttonData[_local9].action = "func"; this.buttonData[_local9].funcArgs = [_local9]; this.buttonData[_local9].func = callFunction; if (this.buttonData[_local9].format == null){ this.buttonData[_local9].format = "button"; }; if (this.buttonData[_local9].mc == null){ this.buttonData[_local9].mc = "dialogButton"; }; _local4 = new wbUI_Button(this.buttonData[_local9], _local6, _local7, _local5, 40, null); _local6 = (_local6 + (_local4.width + 20)); this.addChild(_local4); this.buttons.push(_local4); _local9++; }; _local3.addToModalLayer(this, false); } private function remove():void{ var _local1:int; while (_local1 < this.buttons.length) { this.buttons[_local1].remove(); _local1++; }; var _local2:wbStateManager = wbStateManager.getInstance(); this.removeChild(this.mc); _local2.removeFromModalLayer(this); if (this.prevFocus != null){ _local2.stage.stageFocusRect = false; _local2.stage.focus = this.prevFocus; }; } private function callFunction(_arg1:int):void{ if (this.funcMapping[_arg1] != null){ this.funcMapping[_arg1].call(); }; this.remove(); } } }//package WBE.UI
Section 250
//wbGameMenu (WBE.UI.wbGameMenu) package WBE.UI { import flash.display.*; import WBE.Managers.*; import WBE.States.*; import flash.utils.*; import Game.Data.*; public class wbGameMenu extends MovieClip { private var bg:MovieClip; private var prevFocus:InteractiveObject; private var gameMenuItems:Dictionary; private var sm:wbStateManager; private var gameMenuData:Dictionary; private var menu:MovieClip; public static var GET_MENU_TYPE:String = "getMenuType"; public function wbGameMenu(_arg1:String, _arg2:wbState){ if (_arg1 == GET_MENU_TYPE){ _arg1 = wbStateManager.getGameState().getCurrentMode().getGameMenuType(); }; this.gameMenuData = GameMenuData.getInstance(this).getGameMenuData(_arg1); this.sm = wbStateManager.getInstance(); this.menu = MovieClip(wbAssetManager.getInstance().getGraphics((_arg1 + "GameMenu"), true)); this.prevFocus = sm.stage.focus; var _local3:Boolean; if (this.menu == null){ _local3 = false; this.menu = new MovieClip(); }; this.addChild(this.menu); var _local4:wbUI = new wbUI(gameMenuData, this.menu, _arg2, _local3); this.gameMenuItems = _local4.getItems(); } public function step():void{ var item:Object; for each (item in this.gameMenuItems) { try { item.update(); } catch(e:Error) { }; }; } public function remove():void{ var _local1:wbUI_Item; for each (_local1 in this.gameMenuItems) { _local1.remove(); }; this.removeChild(this.menu); if (this.prevFocus != null){ sm.stage.stageFocusRect = false; sm.stage.focus = this.prevFocus; }; } override public function toString():String{ return ("wbGameMenu"); } } }//package WBE.UI
Section 251
//wbInfoWindow (WBE.UI.wbInfoWindow) package WBE.UI { import flash.display.*; import WBE.Managers.*; import WBE.States.*; import flash.utils.*; import Game.Data.*; public class wbInfoWindow extends MovieClip { private var infoWindowItems:Dictionary; private var prevFocus:InteractiveObject; private var infoWindowData:Dictionary; private var sm:wbStateManager; private var infoWindow:MovieClip; public function wbInfoWindow(_arg1:String, _arg2:wbState){ this.infoWindowData = InfoWindowData.getInstance(this).getInfoWindowData(_arg1); this.sm = wbStateManager.getInstance(); this.infoWindow = MovieClip(wbAssetManager.getInstance().getGraphics((_arg1 + "InfoWindow"), true)); this.prevFocus = sm.stage.focus; var _local3:Boolean; if (this.infoWindow == null){ _local3 = false; this.infoWindow = new MovieClip(); }; this.addChild(this.infoWindow); var _local4:wbUI = new wbUI(infoWindowData, this.infoWindow, _arg2, _local3); this.infoWindowItems = _local4.getItems(); } private function remove():void{ var _local1:wbUI_Item; for each (_local1 in this.infoWindowItems) { _local1.remove(); }; this.removeChild(this.infoWindow); if (this.prevFocus != null){ sm.stage.stageFocusRect = false; sm.stage.focus = this.prevFocus; }; } override public function toString():String{ return ("wbinfoWindow"); } public function buttonFunc(_arg1:String):void{ switch (_arg1){ case "close": this.sm.removeFromModalLayer(this); break; }; } } }//package WBE.UI
Section 252
//wbInterface (WBE.UI.wbInterface) package WBE.UI { import flash.display.*; import WBE.Managers.*; import WBE.States.*; import flash.utils.*; import Game.Data.*; public class wbInterface extends MovieClip { private var interfaceItems:Dictionary; private var interf:MovieClip; private static var allowInstantiation:Boolean; private static var instance:wbInterface; public function wbInterface(){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use wbInterface.getInstance() instead of new.")); }; } public function init(_arg1:String, _arg2:wbState):void{ var _local3:Dictionary = InterfaceData.getInstance(this).interfaces[_arg1]; this.interf = MovieClip(wbAssetManager.getInstance().getGraphics((_arg1 + "Interface"), true)); var _local4:Boolean; if (this.interf == null){ _local4 = false; this.interf = new MovieClip(); }; this.addChild(this.interf); var _local5:wbUI = new wbUI(_local3, interf, _arg2, _local4); this.interfaceItems = _local5.getItems(); } public function hideItem(_arg1:String):void{ if (this.interfaceItems[_arg1] != null){ this.interfaceItems[_arg1].visible = false; }; } public function update():void{ var item:Object; for each (item in this.interfaceItems) { try { item.update(); } catch(e:Error) { }; }; } public function removeInstance():void{ var _local1:wbUI_Item; for each (_local1 in this.interfaceItems) { _local1.remove(); }; wbAssetManager.getInstance().stopPlaying(this.interf); this.removeChild(this.interf); instance = null; allowInstantiation = true; } override public function toString():String{ return ("wbInterface"); } public function showItem(_arg1:String):void{ if (this.interfaceItems[_arg1] != null){ this.interfaceItems[_arg1].visible = true; }; } public static function getInstance():wbInterface{ if (instance == null){ allowInstantiation = true; instance = new (wbInterface); allowInstantiation = false; }; return (instance); } } }//package WBE.UI
Section 253
//wbUI (WBE.UI.wbUI) package WBE.UI { import flash.display.*; import WBE.Managers.*; import WBE.States.*; import flash.utils.*; import WBE.Debug.*; public class wbUI { private var uiItems:Dictionary; private var availableUI_Items:Array; private var forms:Dictionary; public function wbUI(_arg1:Dictionary, _arg2:MovieClip, _arg3:wbState, _arg4:Boolean=true):void{ var uiItemCon:DisplayObject; var uiItem:wbUI_Item; var key:String; var i:int; var item:String; var mc:MovieClip; var conLabel:String; var uiClassName:String; var uiClass:Object; var childMC:DisplayObject; var toRemove:Array; var uiData = _arg1; var parentMC = _arg2; var state = _arg3; var conDetected = _arg4; uiItems = new Dictionary(); forms = new Dictionary(); availableUI_Items = [wbInterface, wbUI_Button, wbUI_Output, wbUI_Input, wbUI_MCButton, wbUI_HighScoreList, wbUI_RadioButton, wbUI_ToggleButton, wbUI_AudioButton, wbUI_SlotButton]; super(); Log.i(this); var defaultButtonWidth:Number = 100; var defaultButtonheight:Number = 40; var padding:Number = 5; var lastBottomY:Number = padding; var lastRightX:Number = padding; var indexedData:Array = new Array(); var unindexedData:Array = new Array(); for (key in uiData) { if (uiData[key].index != null){ indexedData[uiData[key].index] = key; } else { unindexedData.push(key); }; }; indexedData = indexedData.concat(unindexedData); i = 0; while (i < indexedData.length) { item = indexedData[i]; if (item == null){ } else { if (((!(wbSettingsManager.getInstance().getSettings("debug"))) && ((uiData[item].debug == true)))){ } else { if (uiData[item].type == "MCButton"){ if (!conDetected){ wbStateManager.getInstance().error(((("MCbutton " + uiData[item].label) + " declared, but no parentMC given in ") + item), this); }; mc = MovieClip(parentMC.getChildByName(item)); uiItem = new wbUI_MCButton(mc, uiData[item], state); parentMC.addChild(uiItem); } else { conLabel = (item + "Con"); try { uiClassName = ("UI_" + uiData[item].type); uiClass = (getDefinitionByName(("Game.UI." + uiClassName)) as Class); } catch(e:ReferenceError) { try { uiClassName = ("wbUI_" + uiData[item].type); uiClass = (getDefinitionByName(("WBE.UI." + uiClassName)) as Class); } catch(e:ReferenceError) { wbStateManager.getInstance().error((uiClassName + " could not be found")); break; }; }; uiItemCon = parentMC.getChildByName(conLabel); if (uiItemCon == null){ uiItem = new uiClass(uiData[item], lastRightX, lastBottomY, defaultButtonWidth, defaultButtonheight, state); lastBottomY = (lastBottomY + (defaultButtonheight + padding)); if ((lastBottomY + defaultButtonheight) > wbSettingsManager.getInstance().getWorldSettings("height")){ lastBottomY = padding; lastRightX = (lastRightX + (defaultButtonWidth + padding)); }; } else { uiItem = new uiClass(uiData[item], uiItemCon.x, uiItemCon.y, uiItemCon.width, uiItemCon.height, state); parentMC.removeChild(uiItemCon); }; if (uiData[item].form != null){ if (this.forms[uiData[item].form] == null){ this.forms[uiData[item].form] = new Array(); }; this.forms[uiData[item].form].push(uiItem); }; uiItem.name = item; parentMC.addChild(uiItem); if (uiData[item].type == "Input"){ uiItem.setCursorFocus(); }; }; this.uiItems[uiItem.name] = uiItem; uiItem.init(); }; }; i = (i + 1); }; if (!wbSettingsManager.getInstance().getSettings("debug")){ toRemove = new Array(); i = 0; while (i < parentMC.numChildren) { childMC = parentMC.getChildAt(i); if (childMC.name.lastIndexOf("Con") == (childMC.name.length - 3)){ toRemove.push(childMC); }; i = (i + 1); }; i = 0; while (i < toRemove.length) { parentMC.removeChild(toRemove[i]); i = (i + 1); }; }; } public function getItems():Dictionary{ return (this.uiItems); } public function getForms():Dictionary{ return (this.forms); } } }//package WBE.UI
Section 254
//wbUI_AudioButton (WBE.UI.wbUI_AudioButton) package WBE.UI { import WBE.Managers.*; import WBE.States.*; public class wbUI_AudioButton extends wbUI_ToggleButton { public function wbUI_AudioButton(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:wbState){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); switch (_arg1.audioType){ case "music": this.itemData.func = wbAudioManager.getInstance().toggleMusic; this.toggledOn = wbAudioManager.getInstance().isMusicOn(); break; case "sound": this.itemData.func = wbAudioManager.getInstance().toggleSound; this.toggledOn = wbAudioManager.getInstance().isSoundOn(); break; case "mute": this.itemData.func = wbAudioManager.getInstance().toggleMute; this.toggledOn = wbAudioManager.getInstance().isMuteOff(); break; case "all": this.itemData.func = wbAudioManager.getInstance().toggleAll; this.toggledOn = wbAudioManager.getInstance().isAllOn(); break; }; _arg1.action = "func"; this.updateToggleGraphics(); } override public function toString():String{ return ("wbUI_AudioButton"); } } }//package WBE.UI
Section 255
//wbUI_Button (WBE.UI.wbUI_Button) package WBE.UI { import flash.display.*; import flash.events.*; import WBE.Managers.*; import WBE.States.*; import flash.text.*; import WBE.Helpers.*; import WBE.Debug.*; import flash.net.*; public class wbUI_Button extends wbUI_Item { protected var hasDownEvent:Boolean;// = false protected var toolTip:String; protected var buttonLabel:String; protected var mouseIsDown:Boolean;// = false protected var button:MovieClip; public function wbUI_Button(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:wbState){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); if (this.itemData.keyBind){ if (!(this.itemData.keyBind is Array)){ this.itemData.keyBind = [this.itemData.keyBind]; }; wbStateManager.getInstance().stage.addEventListener(KeyboardEvent.KEY_UP, upKey); }; this.buttonLabel = this.itemData.label; this.addButton(); if (this.button.detector != null){ this.button.detector.addEventListener(MouseEvent.MOUSE_UP, buttonPushed); this.button.detector.addEventListener(MouseEvent.MOUSE_DOWN, onDownMouse); this.button.detector.addEventListener(MouseEvent.MOUSE_OVER, onOverMouse); this.button.detector.addEventListener(MouseEvent.MOUSE_OUT, onOutMouse); } else { this.button.addEventListener(MouseEvent.MOUSE_UP, buttonPushed); }; this.hasDownEvent = !((this.itemData.downFunc == null)); if (this.itemData.active){ if (wbVarManager.getInstance().getVar(this.itemData.active) == ((null) || (false))){ this.setButtonActive(false); }; }; } private function stageMouseUp(_arg1:Event):void{ var e = _arg1; this.mouseIsDown = false; wbStateManager.getInstance().stage.removeEventListener(MouseEvent.MOUSE_UP, stageMouseUp); if (this.hasDownEvent){ try { requestAction(); } catch(e:Error) { Log.w("down action could not be executed", this); }; }; } protected function onDownMouse(_arg1:MouseEvent):void{ _arg1.stopImmediatePropagation(); this.mouseIsDown = true; if (this.button.currentLabel != "down"){ this.button.gotoAndPlay("down"); }; if (this.hasDownEvent){ this.requestAction(true); }; wbStateManager.getInstance().stage.addEventListener(MouseEvent.MOUSE_UP, stageMouseUp); } override public function remove():void{ super.remove(); if (this.button.detector != null){ this.button.detector.removeEventListener(MouseEvent.MOUSE_UP, buttonPushed); this.button.detector.removeEventListener(MouseEvent.MOUSE_DOWN, onDownMouse); this.button.detector.removeEventListener(MouseEvent.MOUSE_OVER, onOverMouse); this.button.detector.removeEventListener(MouseEvent.MOUSE_OUT, onOutMouse); } else { this.button.removeEventListener(MouseEvent.MOUSE_UP, buttonPushed); }; if (this.getChildByName(this.button.name) != null){ this.removeChild(this.button); }; if (this.itemData.keyBind){ wbStateManager.getInstance().stage.removeEventListener(KeyboardEvent.KEY_UP, upKey); }; } protected function buttonPushed(_arg1:MouseEvent):void{ if (this.mouseIsDown){ _arg1.stopImmediatePropagation(); this.mouseIsDown = false; wbStateManager.getInstance().stage.removeEventListener(MouseEvent.MOUSE_UP, stageMouseUp); this.requestAction(); if (this.button.currentLabel != "over"){ this.button.gotoAndPlay("over"); }; }; } protected function onOverMouse(_arg1:MouseEvent):void{ _arg1.stopPropagation(); if (this.button.currentLabel != "over"){ this.button.gotoAndPlay("over"); }; } protected function setButtonActive(_arg1:Boolean):void{ this.button.visible = _arg1; } protected function upKey(_arg1:KeyboardEvent):void{ var _local2:int; while (_local2 < this.itemData.keyBind.length) { if (_arg1.keyCode == new wbKeyConverter().getKeyCode(this.itemData.keyBind[_local2])){ this.requestAction(); return; }; _local2++; }; } protected function addKeyBindToLabel(_arg1:TextField):void{ var _local2:TextFormat; var _local3:int; var _local4:int; if (this.itemData.keyBind){ _local2 = _arg1.getTextFormat(); _local2.underline = true; _local3 = 0; while (_local3 < this.itemData.keyBind.length) { _local4 = _arg1.text.indexOf(this.itemData.keyBind[_local3].toUpperCase()); if (_local4 != -1){ _arg1.replaceText(_local4, (_local4 + this.itemData.keyBind[_local3].length), this.itemData.keyBind[_local3].toUpperCase()); _arg1.setTextFormat(_local2, _local4, (_local4 + this.itemData.keyBind[_local3].length)); return; }; _local4 = _arg1.text.indexOf(this.itemData.keyBind[_local3]); if (_local4 != -1){ _arg1.replaceText(_local4, (_local4 + this.itemData.keyBind[_local3].length), this.itemData.keyBind[_local3]); _arg1.setTextFormat(_local2, _local4, (_local4 + this.itemData.keyBind[_local3].length)); return; }; _local3++; }; _arg1.appendText(((" (" + this.itemData.keyBind[0]) + ")")); }; } override protected function removeTooltipListeners():void{ wbTooltipManager.getInstance().hideTooltip(this); if (this.button.detector != null){ this.button.detector.removeEventListener(MouseEvent.MOUSE_OVER, showTooltip); this.button.detector.removeEventListener(MouseEvent.MOUSE_OUT, hideTooltip); } else { this.button.removeEventListener(MouseEvent.MOUSE_OVER, showTooltip); this.button.removeEventListener(MouseEvent.MOUSE_OUT, hideTooltip); }; } protected function doAction(_arg1:Boolean=false):void{ var mouseDownAction = _arg1; switch (this.itemData.action){ case "exit": if (wbStateManager.getInstance().isPaused()){ wbStateManager.getInstance().exitState(this.itemData.exit); } else { this.state.requestExit(this.itemData.exit); }; break; case "gameMenu": wbStateManager.getInstance().openGameMenu(this.itemData.menuType); break; case "validate": if (this.state.validate()){ this.state.requestExit(this.itemData.exit); }; break; case "func": if (!mouseDownAction){ if (this.itemData.funcArgs != null){ this.itemData.func.call(this.itemData.func, this.itemData.funcArgs); } else { this.itemData.func.call(); }; } else { if (this.itemData.downFuncArgs != null){ this.itemData.downFunc.call(this.itemData.downFunc, this.itemData.downFuncArgs); } else { this.itemData.downFunc.call(); }; }; break; case "parentFunc": try { Object(this.parent.parent).buttonFunc(this.itemData.func); } catch(e:Error) { Log.w((this.parent.parent + " does not have function buttonFunc"), this); }; break; case "stateFunc": this.itemData.func.call(this.state); break; case "externalLink": navigateToURL(new URLRequest(this.itemData.url), "_blank"); break; case "default": wbStateManager.getInstance().error(("Default error: " + this.itemData.action), this); }; } protected function requestAction(_arg1:Boolean=false):void{ var _local2:String; var _local3:Array; if (_arg1){ this.doAction(true); return; }; if (this.itemData.confirm){ _local3 = [{label:"Yes", func:doAction}, {label:"No", func:null, keyBind:["esc", "p"]}]; if (this.itemData.confirmtext != null){ _local2 = this.itemData.confirmtext; } else { _local2 = "Are you sure?"; }; new wbDialog(_local3, _local2); } else { this.doAction(); }; } override public function toString():String{ return ("wbUI_Button"); } protected function setButtonEnabled(_arg1:Boolean):void{ if (_arg1){ this.button.alpha = 1; this.mouseEnabled = true; this.mouseChildren = true; } else { this.button.alpha = 0.5; this.mouseEnabled = false; this.mouseChildren = false; }; } protected function addText():void{ var _local1:Number; var _local2:Number; var _local3:TextField; var _local4:TextFormat; if (this.buttonLabel == null){ this.buttonLabel = ""; }; if (this.button.title != null){ this.button.title.textField.text = this.buttonLabel; if (this.itemData.keyLabel == true){ this.addKeyBindToLabel(this.button.title.textField); }; _local1 = this.button.title.textField.width; _local2 = this.button.title.textField.height; if (this.button.scaleX < this.button.scaleY){ this.button.title.textField.scaleY = (this.button.scaleX / this.button.scaleY); } else { this.button.title.textField.scaleX = (this.button.scaleY / this.button.scaleX); }; this.button.title.textField.x = (this.button.title.textField.x + ((_local1 - this.button.title.textField.width) / 2)); this.button.title.textField.y = (this.button.title.textField.y + ((_local2 - this.button.title.textField.height) / 2)); } else { this.toolTip = this.itemData.toolTip; _local3 = new TextField(); _local3.width = this.itemWidth; _local3.height = this.itemHeight; _local3.y = (_local3.y + (this.itemHeight / 4)); _local3.selectable = false; _local3.mouseEnabled = false; _local3.text = this.buttonLabel; _local4 = wbSettingsManager.getInstance().getTextFormat(this.itemData.format); _local3.setTextFormat(_local4); this.addKeyBindToLabel(_local3); this.addChild(_local3); }; } protected function addButton():void{ if (this.itemData.mc == null){ this.button = MovieClip(wbAssetManager.getInstance().getGraphics("button")); if ((((this.button == null)) && (wbSettingsManager.getInstance().getSettings("traces")))){ trace("BUTTON WARNING: standard button not defined"); }; } else { this.button = MovieClip(wbAssetManager.getInstance().getGraphics(this.itemData.mc)); if ((((this.button == null)) && (wbSettingsManager.getInstance().getSettings("traces")))){ trace((("BUTTON WARNING: " + this.itemData.mc) + " not defined")); }; }; this.addChild(this.button); this.button.width = this.itemWidth; this.button.height = this.itemHeight; this.x = this.xPos; this.y = this.yPos; this.button.buttonMode = true; addText(); } protected function onOutMouse(_arg1:MouseEvent):void{ _arg1.stopPropagation(); if (this.button.currentLabel != "up"){ this.button.gotoAndPlay("up"); }; } override protected function addTooltipListeners():void{ if (this.button.detector != null){ this.button.detector.addEventListener(MouseEvent.MOUSE_OVER, showTooltip); this.button.detector.addEventListener(MouseEvent.MOUSE_OUT, hideTooltip); } else { this.button.addEventListener(MouseEvent.MOUSE_OVER, showTooltip); this.button.addEventListener(MouseEvent.MOUSE_OUT, hideTooltip); }; } } }//package WBE.UI
Section 256
//wbUI_HighScoreList (WBE.UI.wbUI_HighScoreList) package WBE.UI { import flash.display.*; import WBE.Managers.*; import WBE.States.*; import WBE.Helpers.*; import fl.controls.*; import fl.data.*; import fl.controls.dataGridClasses.*; public class wbUI_HighScoreList extends wbUI_Item { private var activityIndicator:MovieClip; private var toolTip:String; private var highScoresAvailable:Boolean; private var highScoreList:DisplayObject; private var highScoreData:Object; private var myDataGrid:DataGrid; public function wbUI_HighScoreList(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:wbState):void{ var _local7:*; super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); this.myDataGrid = new DataGrid(); this.myDataGrid.x = _arg2; this.myDataGrid.y = _arg3; this.myDataGrid.width = _arg4; this.myDataGrid.height = _arg5; this.myDataGrid.resizableColumns = false; this.activityIndicator = MovieClip(wbAssetManager.getInstance().getGraphics("activityIndicator")); this.activityIndicator.x = (_arg2 + (_arg4 / 2)); this.activityIndicator.y = (_arg3 + (_arg5 / 2)); this.addChild(this.activityIndicator); this.highScoreData = _arg1; this.highScoresAvailable = false; if (this.highScoreData.args.gameType != null){ if (this.highScoreData.args.value == null){ _local7 = wbVarManager.getInstance().getVar(this.highScoreData.args.gameType); } else { _local7 = this.highScoreData.args.value; }; if (!wbSettingsManager.getInstance().getSettings("localDB")){ wbDatabaseManager.getInstance().doAction("highscore", receiveData, [{dictName:"where", gameType:this.highScoreData.args.gameType, value:_local7}]); } else { this.removeChild(this.activityIndicator); this.activityIndicator = null; new wbFlookie().doAction("highscore", receiveData, true, {gameType:this.highScoreData.args.gameType, gameTypeValue:this.highScoreData.args.value, listSize:this.highScoreData.args.listSize}); }; } else { if (!wbSettingsManager.getInstance().getSettings("localDB")){ wbDatabaseManager.getInstance().doAction("highscore", receiveData); } else { this.removeChild(this.activityIndicator); this.activityIndicator = null; new wbFlookie().doAction("highscore", receiveData, true); }; }; } override public function remove():void{ super.remove(); if (this.highScoresAvailable){ this.removeChild(this.myDataGrid); this.highScoresAvailable = false; }; } public function receiveData(_arg1:Object):void{ if (_arg1.xml.children().length() > 0){ this.highScoresAvailable = true; createTable(XML(_arg1.xml)); } else { if (wbSettingsManager.getInstance().getSettings("traces")){ trace("No highscores found"); }; }; } private function createTable(_arg1:XML):void{ var _local9:DisplayObject; var _local2:DataProvider = new DataProvider(_arg1); var _local3:Array = []; var _local4:int; while (_local4 < _arg1.children()[0].children().length()) { _local3[_local4] = new DataGridColumn(String(_arg1.children()[0].children()[_local4].name())); _local4++; }; _local3[0].width = 20; _local3[1].width = 30; _local3[2].width = 30; _local4 = 0; while (_local4 < _arg1.children()[0].children().length()) { this.myDataGrid.addColumn(_local3[_local4]); _local4++; }; var _local5:HeaderRenderer = new HeaderRenderer(); _local5.setStyle("embedFonts", true); var _local6:HeaderRenderer = new HeaderRenderer(); _local6.setStyle("embedFonts", true); var _local7:HeaderRenderer = new HeaderRenderer(); _local7.setStyle("embedFonts", true); _local3[0].headerRenderer = _local5; _local3[1].headerRenderer = _local6; _local3[2].headerRenderer = _local7; this.myDataGrid.setRendererStyle("embedFonts", true); this.myDataGrid.setRendererStyle("textFormat", wbSettingsManager.getInstance().getTextFormat(highScoreData.columnFormat)); this.myDataGrid.setStyle("headerTextFormat", wbSettingsManager.getInstance().getTextFormat(highScoreData.headerFormat)); this.myDataGrid.dataProvider = _local2; this.myDataGrid.sortableColumns = false; this.myDataGrid.selectable = false; this.myDataGrid.mouseChildren = false; var _local8:Number = wbVarManager.getInstance().getVar("rank"); if ((((_local8 > 0)) && ((_local8 <= this.highScoreData.args.listSize)))){ _local9 = wbAssetManager.getInstance().getGraphics("highScoreHighlight"); _local9.x = this.myDataGrid.x; _local9.y = (((this.myDataGrid.rowHeight * (_local8 - 1)) + this.myDataGrid.headerHeight) + this.yPos); _local9.width = this.myDataGrid.width; _local9.height = this.myDataGrid.rowHeight; this.addChild(_local9); }; if (this.activityIndicator != null){ this.removeChild(this.activityIndicator); }; this.addChild(myDataGrid); } override public function toString():String{ return ("wbUI_HighScoreList"); } } }//package WBE.UI
Section 257
//wbUI_Input (WBE.UI.wbUI_Input) package WBE.UI { import flash.display.*; import WBE.Managers.*; import WBE.States.*; import fl.controls.*; public class wbUI_Input extends wbUI_Item { private var inputField:TextInput; private var errorBox:MovieClip; public function wbUI_Input(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:wbState){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); this.errorBox = MovieClip(wbAssetManager.getInstance().getGraphics("inputFieldError")); this.errorBox.x = (this.errorBox.x - 5); this.errorBox.y = (this.errorBox.y - 5); this.errorBox.width = (_arg4 + 10); this.errorBox.height = (_arg5 + 10); this.errorBox.visible = false; this.addChild(errorBox); this.inputField = new TextInput(); this.addChild(inputField); this.inputField.width = _arg4; this.inputField.height = _arg5; this.inputField.textField.type = "input"; this.inputField.maxChars = _arg1.maxChars; if (_arg1.restrict){ this.inputField.restrict = _arg1.restrict; } else { this.inputField.restrict = "^{}[]()'\""; }; this.x = _arg2; this.y = _arg3; this.inputField.tabIndex = this.itemData.tabIndex; this.inputField.maxChars = this.itemData.maxChars; this.inputField.setStyle("embedFonts", true); this.inputField.setStyle("textFormat", wbSettingsManager.getInstance().getTextFormat(_arg1.format)); this.inputField.textField.text = wbVarManager.getInstance().getForm(_arg1.form)[_arg1.id]; } public function getID():String{ return (this.itemData.id); } public function getText():String{ return (this.inputField.text); } public function hideErrorBox():void{ this.errorBox.visible = false; } public function showErrorBox():void{ this.errorBox.visible = true; } override public function setCursorFocus():void{ if (this.itemData.focus){ this.stage.focus = this.inputField.textField; this.inputField.textField.setSelection(0, this.inputField.textField.text.length); }; } override public function toString():String{ return ("wbUI_Input"); } } }//package WBE.UI
Section 258
//wbUI_Item (WBE.UI.wbUI_Item) package WBE.UI { import flash.display.*; import flash.events.*; import WBE.Managers.*; import WBE.States.*; public class wbUI_Item extends MovieClip { protected var state:wbState; protected var itemWidth:Number; protected var itemHeight:Number; protected var yPos:Number; protected var xPos:Number; protected var itemData:Object; public function wbUI_Item(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:wbState){ this.itemData = _arg1; this.xPos = _arg2; this.yPos = _arg3; this.itemWidth = _arg4; this.itemHeight = _arg5; this.state = _arg6; this.filters = wbSettingsManager.getInstance().getFilterSet(_arg1.filterSet); } protected function removeTooltipListeners():void{ wbTooltipManager.getInstance().hideTooltip(this); try { this.removeEventListener(MouseEvent.MOUSE_OVER, showTooltip); this.removeEventListener(MouseEvent.MOUSE_OUT, hideTooltip); } catch(e:Error) { }; } public function remove():void{ if (this.itemData.tooltip != null){ this.removeTooltipListeners(); }; } public function setCursorFocus():void{ } protected function hideTooltip(_arg1:MouseEvent):void{ wbTooltipManager.getInstance().hideTooltip(this); } public function update():void{ } protected function addTooltipListeners():void{ this.addEventListener(MouseEvent.MOUSE_OVER, showTooltip); this.addEventListener(MouseEvent.MOUSE_OUT, hideTooltip); } protected function showTooltip(_arg1:MouseEvent):void{ wbTooltipManager.getInstance().showTooltip(this, this.itemData.tooltip, this.itemData.tooltipDelay, this.itemData.tooltipTime); } override public function toString():String{ return ("wbUI_Item"); } public function init():void{ if (this.itemData.tooltip != null){ this.addTooltipListeners(); }; } public function getItemData():Object{ return (this.itemData); } } }//package WBE.UI
Section 259
//wbUI_MCButton (WBE.UI.wbUI_MCButton) package WBE.UI { import flash.display.*; import WBE.States.*; public class wbUI_MCButton extends wbUI_Button { private var mc:MovieClip; public function wbUI_MCButton(_arg1:MovieClip, _arg2:Object, _arg3:wbState){ this.mc = _arg1; super(_arg2, 0, 0, 0, 0, _arg3); } override public function toString():String{ return ("wbUI_MCButton"); } override protected function addButton():void{ this.button = MovieClip(this.mc); this.mc.buttonMode = true; this.addChild(this.button); } } }//package WBE.UI
Section 260
//wbUI_Output (WBE.UI.wbUI_Output) package WBE.UI { import WBE.Managers.*; import WBE.States.*; import flash.text.*; public class wbUI_Output extends wbUI_Item { protected var outputField:TextField; public function wbUI_Output(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:wbState){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); this.outputField = new TextField(); this.addChild(outputField); this.outputField.width = _arg4; this.outputField.height = _arg5; this.outputField.embedFonts = true; this.outputField.selectable = false; this.outputField.defaultTextFormat = wbSettingsManager.getInstance().getTextFormat(_arg1.format); if (this.itemData.multiline == true){ this.outputField.multiline = this.itemData.multiline; this.outputField.wordWrap = this.itemData.multiline; }; update(); this.x = _arg2; this.y = _arg3; } override public function update():void{ if (this.itemData.htmlText == true){ this.outputField.htmlText = wbVarManager.getInstance().getVar(this.itemData.varData); } else { this.outputField.text = wbVarManager.getInstance().getVar(this.itemData.varData); }; } override public function toString():String{ return ("wbUI_Output"); } public function getText():String{ return (this.outputField.text); } } }//package WBE.UI
Section 261
//wbUI_RadioButton (WBE.UI.wbUI_RadioButton) package WBE.UI { import WBE.States.*; import fl.controls.*; public class wbUI_RadioButton extends wbUI_Item { private var btn:RadioButton; public function wbUI_RadioButton(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:wbState){ super(itemData, _arg2, _arg3, _arg4, _arg5, _arg6); this.btn = new RadioButton(); this.btn.selected = false; this.addChild(btn); this.btn.move(10, 10); this.x = _arg2; this.y = _arg3; this.btn.tabEnabled = false; this.btn.tabIndex = -1; } override public function toString():String{ return ("wbUI_RadioButton"); } } }//package WBE.UI
Section 262
//wbUI_SlotButton (WBE.UI.wbUI_SlotButton) package WBE.UI { import WBE.Managers.*; import WBE.States.*; public class wbUI_SlotButton extends wbUI_Button { public function wbUI_SlotButton(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:wbState){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); if (this.itemData.slot != null){ if (wbVarManager.getInstance().getVar("slotNames")[this.itemData.slot]){ this.buttonLabel = wbVarManager.getInstance().getVar("slotNames")[this.itemData.slot]; if (this.itemData.active){ wbVarManager.getInstance().setVar(this.itemData.active, true); this.setButtonActive(wbVarManager.getInstance().getVar(this.itemData.active)); }; this.addText(); } else { if (this.itemData.confirm){ this.itemData.confirm = false; }; }; }; } override protected function doAction(_arg1:Boolean=false):void{ switch (this.itemData.action){ case "exit": if (this.itemData.slot != null){ wbVarManager.getInstance().setVar("saveSlot", this.itemData.slot); }; if (wbStateManager.getInstance().isPaused()){ wbStateManager.getInstance().exitState(this.itemData.exit); } else { this.state.requestExit(this.itemData.exit); }; break; case "default": wbStateManager.getInstance().error(("Default error: " + this.itemData.action), this); }; } override public function toString():String{ return ("wbUI_SlotButton"); } } }//package WBE.UI
Section 263
//wbUI_ToggleButton (WBE.UI.wbUI_ToggleButton) package WBE.UI { import flash.display.*; import flash.events.*; import WBE.Managers.*; import WBE.States.*; public class wbUI_ToggleButton extends wbUI_Button { protected var toggledOn:Boolean;// = true public function wbUI_ToggleButton(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:wbState){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); updateToggleGraphics(); } override protected function addButton():void{ this.button = MovieClip(wbAssetManager.getInstance().getGraphics(this.itemData.mc)); this.addChild(this.button); this.button.width = this.itemWidth; this.button.height = this.itemHeight; this.button.buttonMode = true; this.x = this.xPos; this.y = this.yPos; } public function updateToggleGraphics():void{ if (this.button.toggledOn != null){ this.button.toggledOn.visible = this.toggledOn; }; if (this.button.toggledOff != null){ this.button.toggledOff.visible = !(this.toggledOn); }; } override protected function buttonPushed(_arg1:MouseEvent):void{ if (this.mouseIsDown){ _arg1.stopImmediatePropagation(); this.toggledOn = !(this.toggledOn); updateToggleGraphics(); super.buttonPushed(_arg1); }; } override public function toString():String{ return ("wbUI_ToggleButton"); } } }//package WBE.UI
Section 264
//ag_intro_mc (ag_intro_mc) package { import flash.display.*; public dynamic class ag_intro_mc extends MovieClip { public function ag_intro_mc(){ addFrameScript(0, frame1, 191, frame192); } function frame1(){ stop(); gotoAndPlay(2); } function frame192(){ stop(); } } }//package
Section 265
//applause3a (applause3a) package { import flash.media.*; public dynamic class applause3a extends Sound { } }//package
Section 266
//ArmorMiniButton (ArmorMiniButton) package { import flash.display.*; public dynamic class ArmorMiniButton extends MovieClip { public var detector:MovieClip; public function ArmorMiniButton(){ addFrameScript(9, frame10, 19, frame20, 29, frame30, 39, frame40); } function frame10(){ stop(); } function frame20(){ stop(); } function frame30(){ stop(); } function frame40(){ stop(); } } }//package
Section 267
//BBconsoleMC (BBconsoleMC) package { import flash.display.*; import fl.controls.*; public dynamic class BBconsoleMC extends MovieClip { public var outputPane:TextArea; public var background:MovieClip; } }//package
Section 268
//BBinputFieldErrorMC (BBinputFieldErrorMC) package { import flash.display.*; public dynamic class BBinputFieldErrorMC extends MovieClip { } }//package
Section 269
//BBplayer1MC (BBplayer1MC) package { import flash.display.*; public dynamic class BBplayer1MC extends MovieClip { public var hitBox:MovieClip; public function BBplayer1MC(){ addFrameScript(9, frame10, 18, frame19, 28, frame29, 38, frame39, 48, frame49, 58, frame59, 69, frame70, 75, frame76, 89, frame90, 99, frame100); } function frame70(){ gotoAndPlay("jumpDown"); } function frame76(){ stop(); } function frame90(){ stop(); } function frame10(){ gotoAndPlay("idle"); } function frame100(){ stop(); } function frame19(){ gotoAndPlay("movingUp"); } function frame29(){ gotoAndPlay("movingDown"); } function frame39(){ gotoAndPlay("movingLeft"); } function frame49(){ gotoAndPlay("movingRight"); } function frame59(){ gotoAndPlay("jumpUp"); } } }//package
Section 270
//bonusMC (bonusMC) package { import flash.display.*; public dynamic class bonusMC extends MovieClip { } }//package
Section 271
//brickIntro (brickIntro) package { import flash.display.*; public dynamic class brickIntro extends MovieClip { public function brickIntro(){ addFrameScript(97, frame98); } function frame98(){ stop(); } } }//package
Section 272
//Button_disabledSkin (Button_disabledSkin) package { import flash.display.*; public dynamic class Button_disabledSkin extends MovieClip { } }//package
Section 273
//Button_downSkin (Button_downSkin) package { import flash.display.*; public dynamic class Button_downSkin extends MovieClip { } }//package
Section 274
//Button_emphasizedSkin (Button_emphasizedSkin) package { import flash.display.*; public dynamic class Button_emphasizedSkin extends MovieClip { } }//package
Section 275
//Button_overSkin (Button_overSkin) package { import flash.display.*; public dynamic class Button_overSkin extends MovieClip { } }//package
Section 276
//Button_selectedDisabledSkin (Button_selectedDisabledSkin) package { import flash.display.*; public dynamic class Button_selectedDisabledSkin extends MovieClip { } }//package
Section 277
//Button_selectedDownSkin (Button_selectedDownSkin) package { import flash.display.*; public dynamic class Button_selectedDownSkin extends MovieClip { } }//package
Section 278
//Button_selectedOverSkin (Button_selectedOverSkin) package { import flash.display.*; public dynamic class Button_selectedOverSkin extends MovieClip { } }//package
Section 279
//Button_selectedUpSkin (Button_selectedUpSkin) package { import flash.display.*; public dynamic class Button_selectedUpSkin extends MovieClip { } }//package
Section 280
//Button_upSkin (Button_upSkin) package { import flash.display.*; public dynamic class Button_upSkin extends MovieClip { } }//package
Section 281
//cash (cash) package { import flash.media.*; public dynamic class cash extends Sound { } }//package
Section 282
//CellRenderer_disabledSkin (CellRenderer_disabledSkin) package { import flash.display.*; public dynamic class CellRenderer_disabledSkin extends MovieClip { } }//package
Section 283
//CellRenderer_downSkin (CellRenderer_downSkin) package { import flash.display.*; public dynamic class CellRenderer_downSkin extends MovieClip { } }//package
Section 284
//CellRenderer_overSkin (CellRenderer_overSkin) package { import flash.display.*; public dynamic class CellRenderer_overSkin extends MovieClip { } }//package
Section 285
//CellRenderer_selectedDisabledSkin (CellRenderer_selectedDisabledSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDisabledSkin extends MovieClip { } }//package
Section 286
//CellRenderer_selectedDownSkin (CellRenderer_selectedDownSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDownSkin extends MovieClip { } }//package
Section 287
//CellRenderer_selectedOverSkin (CellRenderer_selectedOverSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedOverSkin extends MovieClip { } }//package
Section 288
//CellRenderer_selectedUpSkin (CellRenderer_selectedUpSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedUpSkin extends MovieClip { } }//package
Section 289
//CellRenderer_upSkin (CellRenderer_upSkin) package { import flash.display.*; public dynamic class CellRenderer_upSkin extends MovieClip { } }//package
Section 290
//circleMC (circleMC) package { import flash.display.*; public dynamic class circleMC extends MovieClip { } }//package
Section 291
//ClassicGameMenu (ClassicGameMenu) package { import flash.display.*; public dynamic class ClassicGameMenu extends MovieClip { public var backCon:MovieClip; public var resumeCon:MovieClip; public var howToPlayCon:MovieClip; public var submitCon:MovieClip; public var resetCon:MovieClip; } }//package
Section 292
//ColumnStretch_cursor (ColumnStretch_cursor) package { import flash.display.*; public dynamic class ColumnStretch_cursor extends MovieClip { } }//package
Section 293
//creditsBgMC (creditsBgMC) package { import flash.display.*; public dynamic class creditsBgMC extends MovieClip { public var bg:MovieClip; public var shoppeEyesCon:shoppeEyesMC; public var creditsText:MovieClip; public function creditsBgMC(){ addFrameScript(0, frame1, 467, frame468); } function frame468(){ stop(); } function frame1(){ } } }//package
Section 294
//curHeightLine (curHeightLine) package { import flash.display.*; public dynamic class curHeightLine extends MovieClip { public var line:MovieClip; } }//package
Section 295
//DataGrid_skin (DataGrid_skin) package { import flash.display.*; public dynamic class DataGrid_skin extends MovieClip { } }//package
Section 296
//DataGridCellEditor_skin (DataGridCellEditor_skin) package { import flash.display.*; public dynamic class DataGridCellEditor_skin extends MovieClip { } }//package
Section 297
//DefaultGameMenu (DefaultGameMenu) package { import flash.display.*; public dynamic class DefaultGameMenu extends MovieClip { public var walkthroughCon:MovieClip; public var backCon:MovieClip; public var resumeCon:MovieClip; public var howToPlayCon:MovieClip; public var submitCon:MovieClip; public var resetCon:MovieClip; } }//package
Section 298
//DialogMC (DialogMC) package { import flash.display.*; import flash.text.*; public dynamic class DialogMC extends MovieClip { public var text:TextField; } }//package
Section 299
//dialogScrollButton (dialogScrollButton) package { import flash.display.*; public dynamic class dialogScrollButton extends MovieClip { public var title:MovieClip; public var detector:invisibleThing; public function dialogScrollButton(){ addFrameScript(22, frame23, 55, frame56, 65, frame66, 75, frame76); } function frame76(){ stop(); } function frame23(){ gotoAndPlay("up"); } function frame56(){ stop(); } function frame66(){ stop(); } } }//package
Section 300
//dropping_1 (dropping_1) package { import flash.media.*; public dynamic class dropping_1 extends Sound { } }//package
Section 301
//dropping_2 (dropping_2) package { import flash.media.*; public dynamic class dropping_2 extends Sound { } }//package
Section 302
//dropping_3 (dropping_3) package { import flash.media.*; public dynamic class dropping_3 extends Sound { } }//package
Section 303
//ExtraInterface (ExtraInterface) package { import flash.display.*; public dynamic class ExtraInterface extends MovieClip { public var nextBlock4Con:interfaceItemCon; public var soundCon:interfaceItemCon; public var nextBlock1Con:interfaceItemCon; public var discardsDetectorCon:MovieClip; public var backCon:interfaceItemCon; public var blocksCon:interfaceItemCon; public var musicCon:interfaceItemCon; public var currentBricksCon:interfaceItemCon; public var shiftMoveDetectorCon:MovieClip; public var livesDetectorCon:MovieClip; public var nextBlock2Con:interfaceItemCon; public var tutorCon:larryStoryMC; public var nextBlock5Con:interfaceItemCon; public var curHeightCon:interfaceItemCon; public var blocksDetectorCon:MovieClip; public var undosDetectorCon:MovieClip; public var nextBlock3Con:interfaceItemCon; public var zoomCon:interfaceItemCon; public var armorCon:interfaceItemCon; public var currentBricksDetectorCon:MovieClip; public var maxHeightCon:interfaceItemCon; public var textBalloonCon:interfaceItemCon; } }//package
Section 304
//extraMenu (extraMenu) package { import flash.display.*; public dynamic class extraMenu extends MovieClip { public var soundCon:interfaceItemCon; public var toArmorSite:kongregateLink; public var backCon:MovieClip; public var musicCon:interfaceItemCon; public var highscoreCon:MovieClip; public var easyCon:MovieClip; public var hardCon:MovieClip; public var toSobchekSite:MovieClip; public var mediumCon:MovieClip; public var toWBSite:MovieClip; public var to9MeterSite:MovieClip; } }//package
Section 305
//filler1 (filler1) package { import flash.media.*; public dynamic class filler1 extends Sound { } }//package
Section 306
//filler1and2 (filler1and2) package { import flash.media.*; public dynamic class filler1and2 extends Sound { } }//package
Section 307
//filler2 (filler2) package { import flash.media.*; public dynamic class filler2 extends Sound { } }//package
Section 308
//filler3a (filler3a) package { import flash.media.*; public dynamic class filler3a extends Sound { } }//package
Section 309
//filler3ab (filler3ab) package { import flash.media.*; public dynamic class filler3ab extends Sound { } }//package
Section 310
//filler3b (filler3b) package { import flash.media.*; public dynamic class filler3b extends Sound { } }//package
Section 311
//focusRectSkin (focusRectSkin) package { import flash.display.*; public dynamic class focusRectSkin extends MovieClip { } }//package
Section 312
//gameMenuButton (gameMenuButton) package { import flash.display.*; public dynamic class gameMenuButton extends MovieClip { public var title:MovieClip; public var detector:invisibleThing; public function gameMenuButton(){ addFrameScript(22, frame23, 55, frame56, 65, frame66, 75, frame76); } function frame76(){ stop(); } function frame23(){ gotoAndPlay("up"); } function frame56(){ stop(); } function frame66(){ stop(); } } }//package
Section 313
//gameoverMenu (gameoverMenu) package { import flash.display.*; public dynamic class gameoverMenu extends MovieClip { public var nameCon:MovieClip; public var backCon:MovieClip; public var playAgainCon:MovieClip; public var scoreCon:MovieClip; public var sendCon:MovieClip; } }//package
Section 314
//garryStoryMC (garryStoryMC) package { import flash.display.*; public dynamic class garryStoryMC extends MovieClip { public var shadow:MovieClip; public function garryStoryMC(){ addFrameScript(11, frame12, 22, frame23, 33, frame34, 59, frame60, 70, frame71, 81, frame82, 92, frame93, 103, frame104, 114, frame115); } function frame71(){ gotoAndPlay("plain"); } function frame82(){ gotoAndPlay("surprised"); } function frame12(){ gotoAndPlay("idle"); } function frame93(){ gotoAndPlay("angry"); } function frame23(){ gotoAndPlay("talk"); } function frame104(){ gotoAndPlay("sad"); } function frame34(){ gotoAndPlay("panic"); } function frame115(){ gotoAndPlay("happy"); } function frame60(){ gotoAndPlay("victory"); } } }//package
Section 315
//grid (grid) package { import flash.display.*; public dynamic class grid extends MovieClip { } }//package
Section 316
//Ground (Ground) package { import flash.display.*; public dynamic class Ground extends MovieClip { } }//package
Section 317
//harryStoryMC (harryStoryMC) package { import flash.display.*; public dynamic class harryStoryMC extends MovieClip { public var shadow:MovieClip; public function harryStoryMC(){ addFrameScript(11, frame12, 22, frame23, 33, frame34, 59, frame60, 70, frame71, 81, frame82, 92, frame93, 103, frame104, 114, frame115, 125, frame126, 177, frame178); } function frame71(){ gotoAndPlay("plain"); } function frame82(){ gotoAndPlay("surprised"); } function frame178(){ stop(); } function frame12(){ gotoAndPlay("idle"); } function frame93(){ gotoAndPlay("angry"); } function frame23(){ gotoAndPlay("talk"); } function frame104(){ gotoAndPlay("evil"); } function frame34(){ gotoAndPlay("panic"); } function frame115(){ gotoAndPlay("sad"); } function frame126(){ gotoAndPlay("happy"); } function frame60(){ gotoAndPlay("victory"); } } }//package
Section 318
//HeaderRenderer_disabledSkin (HeaderRenderer_disabledSkin) package { import flash.display.*; public dynamic class HeaderRenderer_disabledSkin extends MovieClip { } }//package
Section 319
//HeaderRenderer_downSkin (HeaderRenderer_downSkin) package { import flash.display.*; public dynamic class HeaderRenderer_downSkin extends MovieClip { } }//package
Section 320
//HeaderRenderer_overSkin (HeaderRenderer_overSkin) package { import flash.display.*; public dynamic class HeaderRenderer_overSkin extends MovieClip { } }//package
Section 321
//HeaderRenderer_selectedDisabledSkin (HeaderRenderer_selectedDisabledSkin) package { import flash.display.*; public dynamic class HeaderRenderer_selectedDisabledSkin extends MovieClip { } }//package
Section 322
//HeaderRenderer_selectedDownSkin (HeaderRenderer_selectedDownSkin) package { import flash.display.*; public dynamic class HeaderRenderer_selectedDownSkin extends MovieClip { } }//package
Section 323
//HeaderRenderer_selectedOverSkin (HeaderRenderer_selectedOverSkin) package { import flash.display.*; public dynamic class HeaderRenderer_selectedOverSkin extends MovieClip { } }//package
Section 324
//HeaderRenderer_selectedUpSkin (HeaderRenderer_selectedUpSkin) package { import flash.display.*; public dynamic class HeaderRenderer_selectedUpSkin extends MovieClip { } }//package
Section 325
//HeaderRenderer_upSkin (HeaderRenderer_upSkin) package { import flash.display.*; public dynamic class HeaderRenderer_upSkin extends MovieClip { } }//package
Section 326
//HeaderSortArrow_ascIcon (HeaderSortArrow_ascIcon) package { import flash.display.*; public dynamic class HeaderSortArrow_ascIcon extends MovieClip { } }//package
Section 327
//HeaderSortArrow_descIcon (HeaderSortArrow_descIcon) package { import flash.display.*; public dynamic class HeaderSortArrow_descIcon extends MovieClip { } }//package
Section 328
//Hexo1 (Hexo1) package { import flash.display.*; public dynamic class Hexo1 extends MovieClip { } }//package
Section 329
//Hexo2 (Hexo2) package { import flash.display.*; public dynamic class Hexo2 extends MovieClip { } }//package
Section 330
//Hexo3 (Hexo3) package { import flash.display.*; public dynamic class Hexo3 extends MovieClip { } }//package
Section 331
//Hexo4 (Hexo4) package { import flash.display.*; public dynamic class Hexo4 extends MovieClip { } }//package
Section 332
//highScore1Menu (highScore1Menu) package { import flash.display.*; public dynamic class highScore1Menu extends MovieClip { public var backCon:MovieClip; public var easyCon:MovieClip; public var hardCon:MovieClip; public var mediumCon:MovieClip; public var highScoreListCon:MovieClip; } }//package
Section 333
//highScore2Menu (highScore2Menu) package { import flash.display.*; public dynamic class highScore2Menu extends MovieClip { public var backCon:MovieClip; public var easyCon:MovieClip; public var hardCon:MovieClip; public var mediumCon:MovieClip; public var highScoreListCon:MovieClip; } }//package
Section 334
//highScore3Menu (highScore3Menu) package { import flash.display.*; public dynamic class highScore3Menu extends MovieClip { public var backCon:MovieClip; public var easyCon:MovieClip; public var hardCon:MovieClip; public var mediumCon:MovieClip; public var highScoreListCon:MovieClip; } }//package
Section 335
//highscoreHighlight (highscoreHighlight) package { import flash.display.*; public dynamic class highscoreHighlight extends MovieClip { } }//package
Section 336
//highScoreMenu (highScoreMenu) package { import flash.display.*; public dynamic class highScoreMenu extends MovieClip { public var soundCon:interfaceItemCon; public var toArmorSite:kongregateLink; public var backCon:MovieClip; public var musicCon:interfaceItemCon; public var easyCon:MovieClip; public var hardCon:MovieClip; public var toSobchekSite:MovieClip; public var mediumCon:MovieClip; public var toWBSite:MovieClip; public var to9MeterSite:MovieClip; } }//package
Section 337
//HowToPlayInfoWindow (HowToPlayInfoWindow) package { import flash.display.*; public dynamic class HowToPlayInfoWindow extends MovieClip { public var closeCon:MovieClip; } }//package
Section 338
//interfaceItemCon (interfaceItemCon) package { import flash.display.*; public dynamic class interfaceItemCon extends MovieClip { } }//package
Section 339
//invisibleThing (invisibleThing) package { import flash.display.*; public dynamic class invisibleThing extends MovieClip { } }//package
Section 340
//kongregateLink (kongregateLink) package { import flash.display.*; public dynamic class kongregateLink extends MovieClip { public var detector:MovieClip; public function kongregateLink(){ addFrameScript(9, frame10, 19, frame20, 29, frame30, 39, frame40); } function frame10(){ stop(); } function frame20(){ stop(); } function frame30(){ stop(); } function frame40(){ stop(); } } }//package
Section 341
//larryStoryMC (larryStoryMC) package { import flash.display.*; public dynamic class larryStoryMC extends MovieClip { public var shadow:MovieClip; public function larryStoryMC(){ addFrameScript(11, frame12, 85, frame86, 159, frame160, 201, frame202, 227, frame228, 238, frame239, 249, frame250, 260, frame261, 271, frame272, 282, frame283, 293, frame294, 304, frame305); } function frame272(){ gotoAndPlay("evil"); } function frame305(){ gotoAndPlay("pushy"); } function frame160(){ gotoAndPlay("idle"); } function frame86(){ gotoAndPlay("idle"); } function frame202(){ gotoAndPlay("idle"); } function frame12(){ gotoAndPlay("idle"); } function frame283(){ gotoAndPlay("sad"); } function frame228(){ gotoAndPlay("victory"); } function frame239(){ gotoAndPlay("plain"); } function frame294(){ gotoAndPlay("happy"); } function frame250(){ gotoAndPlay("surprised"); } function frame261(){ gotoAndPlay("angry"); } } }//package
Section 342
//levelSelectMap (levelSelectMap) package { import flash.display.*; public dynamic class levelSelectMap extends MovieClip { public var connection15_17:MovieClip; public var connection1_2:MovieClip; public var connection21_22:MovieClip; public var connection10_11:MovieClip; public var connection8_9:MovieClip; public var zeppelins:MovieClip; public var connection16_19:MovieClip; public var connection22_24:MovieClip; public var connection11_12:MovieClip; public var level10:MovieClip; public var level11:MovieClip; public var level12:MovieClip; public var level13:MovieClip; public var level14:MovieClip; public var level15:MovieClip; public var level16:MovieClip; public var level18:MovieClip; public var level19:MovieClip; public var level17:MovieClip; public var level20:MovieClip; public var level21:MovieClip; public var level22:MovieClip; public var level23:MovieClip; public var level24:MovieClip; public var connection17_18:MovieClip; public var connection17_19:MovieClip; public var connection6_7:MovieClip; public var connection12_14:MovieClip; public var connection12_15:MovieClip; public var connection23_24:MovieClip; public var connection12_13:MovieClip; public var connection5_6:MovieClip; public var connection5_8:MovieClip; public var garry:garryStoryMC; public var connection7_12:MovieClip; public var level1:MovieClip; public var level2:MovieClip; public var level3:MovieClip; public var level4:MovieClip; public var level5:MovieClip; public var level6:MovieClip; public var level7:MovieClip; public var level9:MovieClip; public var connection18_21:MovieClip; public var level8:MovieClip; public var connection13_16:MovieClip; public var connection4_5:MovieClip; public var connection8_10:MovieClip; public var savedMessage:MovieClip; public var connection3_5:MovieClip; public var foregrounds:MovieClip; public var connection19_20:MovieClip; public var connection19_23:MovieClip; public var connection14_17:MovieClip; public var connection14_16:MovieClip; public var connection20_21:MovieClip; public var connection2_4:MovieClip; public var connection2_3:MovieClip; public var connection9_11:MovieClip; } }//package
Section 343
//levelSelectMenu (levelSelectMenu) package { import flash.display.*; import flash.text.*; public dynamic class levelSelectMenu extends MovieClip { public var completeStatusCon:TextField; public var soundCon:interfaceItemCon; public var discardsDetectorCon:MovieClip; public var backCon:mainMenuButton; public var discardsStatusCon:MovieClip; public var musicCon:interfaceItemCon; public var previewsDetectorCon:MovieClip; public var goldDetectorCon:MovieClip; public var shiftMoveDetectorCon:MovieClip; public var livesDetectorCon:MovieClip; public var levelSelectMapCon:MovieClip; public var shoppeButton:ShoppeButton; public var undosDetectorCon:MovieClip; public var goldStatusCon:TextField; public var armorCon:interfaceItemCon; public var previewsStatusCon:MovieClip; public var undosStatusCon:MovieClip; public var livesStatusCon:MovieClip; public var shiftMoveStatusCon:shiftMoveIndicator; public var citiesStatusCon:TextField; } }//package
Section 344
//levelSelectMouseoverMCBrickGoal (levelSelectMouseoverMCBrickGoal) package { import flash.display.*; public dynamic class levelSelectMouseoverMCBrickGoal extends MovieClip { public var texts:MovieClip; } }//package
Section 345
//levelSelectMouseoverMCHeightGoal (levelSelectMouseoverMCHeightGoal) package { import flash.display.*; public dynamic class levelSelectMouseoverMCHeightGoal extends MovieClip { public var texts:MovieClip; } }//package
Section 346
//levelSelectMouseoverMCNoDrop (levelSelectMouseoverMCNoDrop) package { import flash.display.*; public dynamic class levelSelectMouseoverMCNoDrop extends MovieClip { public var texts:MovieClip; } }//package
Section 347
//levelSelectMouseoverMCPuzzle (levelSelectMouseoverMCPuzzle) package { import flash.display.*; public dynamic class levelSelectMouseoverMCPuzzle extends MovieClip { public var texts:MovieClip; } }//package
Section 348
//load (load) package { import flash.display.*; public dynamic class load extends MovieClip { public function load(){ addFrameScript(183, frame184); } function frame184(){ stop(); } } }//package
Section 349
//loadBar (loadBar) package { import flash.display.*; public dynamic class loadBar extends MovieClip { public function loadBar(){ addFrameScript(99, frame100); } function frame100(){ stop(); } } }//package
Section 350
//loadMenu (loadMenu) package { import flash.display.*; public dynamic class loadMenu extends MovieClip { public var soundCon:interfaceItemCon; public var toArmorSite:kongregateLink; public var backCon:MovieClip; public var musicCon:interfaceItemCon; public var slot3Con:MovieClip; public var slot1Con:MovieClip; public var toSobchekSite:MovieClip; public var toWBSite:MovieClip; public var slot2Con:MovieClip; public var to9MeterSite:MovieClip; } }//package
Section 351
//loadSpinner (loadSpinner) package { import flash.display.*; public dynamic class loadSpinner extends MovieClip { } }//package
Section 352
//loop1 (loop1) package { import flash.media.*; public dynamic class loop1 extends Sound { } }//package
Section 353
//loop2 (loop2) package { import flash.media.*; public dynamic class loop2 extends Sound { } }//package
Section 354
//loop3 (loop3) package { import flash.media.*; public dynamic class loop3 extends Sound { } }//package
Section 355
//loop4 (loop4) package { import flash.media.*; public dynamic class loop4 extends Sound { } }//package
Section 356
//loop5 (loop5) package { import flash.media.*; public dynamic class loop5 extends Sound { } }//package
Section 357
//loop6thema1 (loop6thema1) package { import flash.media.*; public dynamic class loop6thema1 extends Sound { } }//package
Section 358
//loop6thema2 (loop6thema2) package { import flash.media.*; public dynamic class loop6thema2 extends Sound { } }//package
Section 359
//mainBackground_mc (mainBackground_mc) package { import flash.display.*; public dynamic class mainBackground_mc extends MovieClip { } }//package
Section 360
//mainMenu (mainMenu) package { import flash.display.*; public dynamic class mainMenu extends MovieClip { public var soundCon:interfaceItemCon; public var toArmorSite:kongregateLink; public var clearFlookieCon:MovieClip; public var musicCon:interfaceItemCon; public var howToPlayCon:MovieClip; public var extraCon:MovieClip; public var toSobchekSite:MovieClip; public var newCon:MovieClip; public var loadCon:MovieClip; public var playMoreGamesCon:MovieClip; public var toWBSite:MovieClip; public var to9MeterSite:MovieClip; } }//package
Section 361
//mainMenuButton (mainMenuButton) package { import flash.display.*; public dynamic class mainMenuButton extends MovieClip { public var detector:invisibleThing; public function mainMenuButton(){ addFrameScript(22, frame23, 55, frame56, 65, frame66, 75, frame76); } function frame76(){ stop(); } function frame23(){ gotoAndPlay("up"); } function frame56(){ stop(); } function frame66(){ stop(); } } }//package
Section 362
//maxHeightLabel (maxHeightLabel) package { import flash.display.*; import flash.text.*; public dynamic class maxHeightLabel extends MovieClip { public var textF:TextField; } }//package
Section 363
//maxHeightLine (maxHeightLine) package { import flash.display.*; public dynamic class maxHeightLine extends MovieClip { public var line:MovieClip; } }//package
Section 364
//messageAreaMC (messageAreaMC) package { import flash.display.*; public dynamic class messageAreaMC extends MovieClip { public var textMC:MovieClip; } }//package
Section 365
//mistGenerationParticles (mistGenerationParticles) package { import flash.display.*; public dynamic class mistGenerationParticles extends MovieClip { } }//package
Section 366
//mistSourceMC (mistSourceMC) package { import flash.display.*; public dynamic class mistSourceMC extends MovieClip { } }//package
Section 367
//mochi (mochi) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.utils.*; import flash.text.*; import flash.system.*; import mochi.*; import flash.net.*; import flash.media.*; import flash.filters.*; import flash.errors.*; import adobe.utils.*; import flash.accessibility.*; import flash.external.*; import flash.printing.*; import flash.ui.*; import flash.xml.*; public dynamic class mochi extends MovieClip { public var main:Object; public function mochi(){ addFrameScript(0, frame1, 1, frame2); } public function setMain(_arg1:Object):void{ main = _arg1; } function frame1(){ MochiAd.showPreGameAd({clip:this, id:"5ef5e5e8938af8cf", res:"400x500", background:7709891, color:80492, outline:0xFFFFFF, no_bg:true}); } function frame2(){ stop(); main.mochiDone(); } } }//package
Section 368
//modalLayer (modalLayer) package { import flash.display.*; public dynamic class modalLayer extends MovieClip { public var modal_bg:SimpleButton; } }//package
Section 369
//modalLayerClose_btn (modalLayerClose_btn) package { import flash.display.*; public dynamic class modalLayerClose_btn extends SimpleButton { } }//package
Section 370
//MusicButton (MusicButton) package { import flash.display.*; public dynamic class MusicButton extends MovieClip { public var detector:MovieClip; public var toggledOff:MovieClip; public function MusicButton(){ addFrameScript(9, frame10, 19, frame20, 29, frame30, 39, frame40); } function frame10(){ stop(); } function frame20(){ stop(); } function frame30(){ stop(); } function frame40(){ stop(); } } }//package
Section 371
//OpenMenuButton (OpenMenuButton) package { import flash.display.*; public dynamic class OpenMenuButton extends MovieClip { public var detector:MovieClip; public function OpenMenuButton(){ addFrameScript(9, frame10, 19, frame20, 29, frame30, 39, frame40); } function frame10(){ stop(); } function frame20(){ stop(); } function frame30(){ stop(); } function frame40(){ stop(); } } }//package
Section 372
//pausedMessageBG (pausedMessageBG) package { import flash.display.*; public dynamic class pausedMessageBG extends MovieClip { } }//package
Section 373
//pausedMessageMC (pausedMessageMC) package { import flash.display.*; public dynamic class pausedMessageMC extends MovieClip { public function pausedMessageMC(){ addFrameScript(55, frame56); } function frame56(){ stop(); } } }//package
Section 374
//Pento1 (Pento1) package { import flash.display.*; public dynamic class Pento1 extends MovieClip { } }//package
Section 375
//Pento10 (Pento10) package { import flash.display.*; public dynamic class Pento10 extends MovieClip { } }//package
Section 376
//Pento11 (Pento11) package { import flash.display.*; public dynamic class Pento11 extends MovieClip { } }//package
Section 377
//Pento12 (Pento12) package { import flash.display.*; public dynamic class Pento12 extends MovieClip { } }//package
Section 378
//Pento13 (Pento13) package { import flash.display.*; public dynamic class Pento13 extends MovieClip { } }//package
Section 379
//Pento14 (Pento14) package { import flash.display.*; public dynamic class Pento14 extends MovieClip { } }//package
Section 380
//Pento2 (Pento2) package { import flash.display.*; public dynamic class Pento2 extends MovieClip { } }//package
Section 381
//Pento3 (Pento3) package { import flash.display.*; public dynamic class Pento3 extends MovieClip { } }//package
Section 382
//Pento4 (Pento4) package { import flash.display.*; public dynamic class Pento4 extends MovieClip { } }//package
Section 383
//Pento5 (Pento5) package { import flash.display.*; public dynamic class Pento5 extends MovieClip { } }//package
Section 384
//Pento6 (Pento6) package { import flash.display.*; public dynamic class Pento6 extends MovieClip { } }//package
Section 385
//Pento7 (Pento7) package { import flash.display.*; public dynamic class Pento7 extends MovieClip { } }//package
Section 386
//Pento8 (Pento8) package { import flash.display.*; public dynamic class Pento8 extends MovieClip { } }//package
Section 387
//Pento9 (Pento9) package { import flash.display.*; public dynamic class Pento9 extends MovieClip { } }//package
Section 388
//PlayInterface (PlayInterface) package { import flash.display.*; public dynamic class PlayInterface extends MovieClip { public var undosLeftCon:interfaceItemCon; public var nextBlock4Con:interfaceItemCon; public var soundCon:interfaceItemCon; public var nextBlock1Con:interfaceItemCon; public var discardsDetectorCon:MovieClip; public var backCon:interfaceItemCon; public var blocksCon:interfaceItemCon; public var shiftMoveCon:shiftMoveIndicator; public var livesLeftCon:interfaceItemCon; public var musicCon:interfaceItemCon; public var currentBricksCon:interfaceItemCon; public var objectivesTextCon:interfaceItemCon; public var shiftMoveDetectorCon:MovieClip; public var livesDetectorCon:MovieClip; public var nextBlock2Con:interfaceItemCon; public var tutorCon:larryStoryMC; public var nextBlock5Con:interfaceItemCon; public var curHeightCon:interfaceItemCon; public var blocksDetectorCon:MovieClip; public var undosDetectorCon:MovieClip; public var discardsLeftCon:interfaceItemCon; public var nextBlock3Con:interfaceItemCon; public var zoomCon:interfaceItemCon; public var armorCon:interfaceItemCon; public var currentBricksDetectorCon:MovieClip; public var maxHeightCon:interfaceItemCon; public var textBalloonCon:interfaceItemCon; } }//package
Section 389
//popSound (popSound) package { import flash.media.*; public dynamic class popSound extends Sound { } }//package
Section 390
//RadioButton_disabledIcon (RadioButton_disabledIcon) package { import flash.display.*; public dynamic class RadioButton_disabledIcon extends MovieClip { } }//package
Section 391
//RadioButton_downIcon (RadioButton_downIcon) package { import flash.display.*; public dynamic class RadioButton_downIcon extends MovieClip { } }//package
Section 392
//RadioButton_overIcon (RadioButton_overIcon) package { import flash.display.*; public dynamic class RadioButton_overIcon extends MovieClip { } }//package
Section 393
//RadioButton_selectedDisabledIcon (RadioButton_selectedDisabledIcon) package { import flash.display.*; public dynamic class RadioButton_selectedDisabledIcon extends MovieClip { } }//package
Section 394
//RadioButton_selectedDownIcon (RadioButton_selectedDownIcon) package { import flash.display.*; public dynamic class RadioButton_selectedDownIcon extends MovieClip { } }//package
Section 395
//RadioButton_selectedOverIcon (RadioButton_selectedOverIcon) package { import flash.display.*; public dynamic class RadioButton_selectedOverIcon extends MovieClip { } }//package
Section 396
//RadioButton_selectedUpIcon (RadioButton_selectedUpIcon) package { import flash.display.*; public dynamic class RadioButton_selectedUpIcon extends MovieClip { } }//package
Section 397
//RadioButton_upIcon (RadioButton_upIcon) package { import flash.display.*; public dynamic class RadioButton_upIcon extends MovieClip { } }//package
Section 398
//saveMenu (saveMenu) package { import flash.display.*; public dynamic class saveMenu extends MovieClip { public var soundCon:interfaceItemCon; public var toArmorSite:kongregateLink; public var backCon:MovieClip; public var musicCon:interfaceItemCon; public var slot3Con:MovieClip; public var slot1Con:MovieClip; public var toSobchekSite:MovieClip; public var toWBSite:MovieClip; public var slot2Con:MovieClip; public var to9MeterSite:MovieClip; } }//package
Section 399
//saveNameMenu (saveNameMenu) package { import flash.display.*; public dynamic class saveNameMenu extends MovieClip { public var soundCon:interfaceItemCon; public var toArmorSite:kongregateLink; public var backCon:MovieClip; public var musicCon:interfaceItemCon; public var nameCon:MovieClip; public var toSobchekSite:MovieClip; public var sendCon:MovieClip; public var toWBSite:MovieClip; public var to9MeterSite:MovieClip; } }//package
Section 400
//ScrollArrowDown_disabledSkin (ScrollArrowDown_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_disabledSkin extends MovieClip { } }//package
Section 401
//ScrollArrowDown_downSkin (ScrollArrowDown_downSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_downSkin extends MovieClip { } }//package
Section 402
//ScrollArrowDown_overSkin (ScrollArrowDown_overSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_overSkin extends MovieClip { } }//package
Section 403
//ScrollArrowDown_upSkin (ScrollArrowDown_upSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_upSkin extends MovieClip { } }//package
Section 404
//ScrollArrowUp_disabledSkin (ScrollArrowUp_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_disabledSkin extends MovieClip { } }//package
Section 405
//ScrollArrowUp_downSkin (ScrollArrowUp_downSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_downSkin extends MovieClip { } }//package
Section 406
//ScrollArrowUp_overSkin (ScrollArrowUp_overSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_overSkin extends MovieClip { } }//package
Section 407
//ScrollArrowUp_upSkin (ScrollArrowUp_upSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_upSkin extends MovieClip { } }//package
Section 408
//ScrollBar_thumbIcon (ScrollBar_thumbIcon) package { import flash.display.*; public dynamic class ScrollBar_thumbIcon extends MovieClip { } }//package
Section 409
//scrollButton (scrollButton) package { import flash.display.*; public dynamic class scrollButton extends MovieClip { public var title:MovieClip; public var detector:invisibleThing; public function scrollButton(){ addFrameScript(22, frame23, 55, frame56, 65, frame66, 75, frame76); } function frame76(){ stop(); } function frame23(){ gotoAndPlay("up"); } function frame56(){ stop(); } function frame66(){ stop(); } } }//package
Section 410
//ScrollThumb_downSkin (ScrollThumb_downSkin) package { import flash.display.*; public dynamic class ScrollThumb_downSkin extends MovieClip { } }//package
Section 411
//ScrollThumb_overSkin (ScrollThumb_overSkin) package { import flash.display.*; public dynamic class ScrollThumb_overSkin extends MovieClip { } }//package
Section 412
//ScrollThumb_upSkin (ScrollThumb_upSkin) package { import flash.display.*; public dynamic class ScrollThumb_upSkin extends MovieClip { } }//package
Section 413
//ScrollTrack_skin (ScrollTrack_skin) package { import flash.display.*; public dynamic class ScrollTrack_skin extends MovieClip { } }//package
Section 414
//shiftMoveIndicator (shiftMoveIndicator) package { import flash.display.*; public dynamic class shiftMoveIndicator extends MovieClip { public var disabled:MovieClip; public function shiftMoveIndicator(){ addFrameScript(0, frame1, 1, frame2, 2, frame3); } function frame3(){ stop(); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package
Section 415
//shopBuyButton (shopBuyButton) package { import flash.display.*; public dynamic class shopBuyButton extends MovieClip { public var detector:invisibleThing; public function shopBuyButton(){ addFrameScript(22, frame23, 55, frame56, 65, frame66, 75, frame76); } function frame76(){ stop(); } function frame23(){ gotoAndPlay("up"); } function frame56(){ stop(); } function frame66(){ stop(); } } }//package
Section 416
//ShopGameMenu (ShopGameMenu) package { import flash.display.*; public dynamic class ShopGameMenu extends MovieClip { public var shiftDetectorCon:MovieClip; public var undosCon:shopBuyButton; public var textBalloonCon:MovieClip; public var discardsDetectorCon:MovieClip; public var discardsCurCon:MovieClip; public var shiftNameCon:MovieClip; public var previewNameCon:MovieClip; public var previewCurCon:MovieClip; public var undosCurCon:MovieClip; public var livesCurCon:MovieClip; public var discardsCostCon:MovieClip; public var previewDetectorCon:MovieClip; public var undosCostCon:MovieClip; public var shiftCurCon:MovieClip; public var livesCostCon:MovieClip; public var livesDetectorCon:MovieClip; public var livesCon:shopBuyButton; public var exitCon:MovieClip; public var undosNextCon:MovieClip; public var livesNextCon:MovieClip; public var shiftCostCon:MovieClip; public var discardsNextCon:MovieClip; public var undosDetectorCon:MovieClip; public var shiftCon:shopBuyButton; public var discardsNameCon:MovieClip; public var discardsCon:shopBuyButton; public var previewCostCon:MovieClip; public var creditsCon:MovieClip; public var shiftNextCon:MovieClip; public var previewNextCon:MovieClip; public var shoppeEyesCon:shoppeEyesMC; public var undosNameCon:MovieClip; public var previewCon:shopBuyButton; public var livesNameCon:MovieClip; } }//package
Section 417
//ShoppeButton (ShoppeButton) package { import flash.display.*; public dynamic class ShoppeButton extends MovieClip { public var detector:MovieClip; public function ShoppeButton(){ addFrameScript(9, frame10, 28, frame29, 38, frame39, 48, frame49); } function frame10(){ stop(); } function frame29(){ gotoAndPlay("over"); } function frame39(){ stop(); } function frame49(){ stop(); } } }//package
Section 418
//shoppeEyesMC (shoppeEyesMC) package { import flash.display.*; public dynamic class shoppeEyesMC extends MovieClip { public var pupilRight:MovieClip; public var pupilLeft:MovieClip; } }//package
Section 419
//showscoreMenu (showscoreMenu) package { import flash.display.*; public dynamic class showscoreMenu extends MovieClip { public var backCon:MovieClip; public var playAgainCon:MovieClip; public var scoreCon:MovieClip; public var highScoreListCon:MovieClip; } }//package
Section 420
//skipButton (skipButton) package { import flash.display.*; public dynamic class skipButton extends MovieClip { public var title:MovieClip; public var detector:invisibleThing; public function skipButton(){ addFrameScript(22, frame23, 55, frame56, 65, frame66, 75, frame76); } function frame76(){ stop(); } function frame23(){ gotoAndPlay("up"); } function frame56(){ stop(); } function frame66(){ stop(); } } }//package
Section 421
//sound16 (sound16) package { import flash.media.*; public dynamic class sound16 extends Sound { } }//package
Section 422
//SoundButton (SoundButton) package { import flash.display.*; public dynamic class SoundButton extends MovieClip { public var detector:MovieClip; public var toggledOff:MovieClip; public function SoundButton(){ addFrameScript(9, frame10, 19, frame20, 29, frame30, 39, frame40); } function frame10(){ stop(); } function frame20(){ stop(); } function frame30(){ stop(); } function frame40(){ stop(); } } }//package
Section 423
//spinnerMC (spinnerMC) package { import flash.display.*; public dynamic class spinnerMC extends MovieClip { } }//package
Section 424
//SponsorIntro (SponsorIntro) package { import flash.events.*; import flash.display.*; import flash.net.*; public dynamic class SponsorIntro extends MovieClip { public var clip:ag_intro_mc; public function SponsorIntro(){ addFrameScript(0, frame1); } public function gotoSponsor(_arg1:MouseEvent){ var _local2:URLRequest; _local2 = new URLRequest("http://www.armorgames.com/"); navigateToURL(_local2, "_blank"); } function frame1(){ this.addEventListener(MouseEvent.MOUSE_UP, gotoSponsor); } } }//package
Section 425
//stone1a (stone1a) package { import flash.media.*; public dynamic class stone1a extends Sound { } }//package
Section 426
//storyBgMC (storyBgMC) package { import flash.display.*; import flash.text.*; public dynamic class storyBgMC extends MovieClip { public var charName:TextField; public var textBalloon:MovieClip; public var storyText:TextField; public var pressAnyKey:TextField; } }//package
Section 427
//storyFinalBgMC (storyFinalBgMC) package { import flash.display.*; import flash.text.*; public dynamic class storyFinalBgMC extends MovieClip { public var charName:TextField; public var textBalloon:MovieClip; public var storyText:TextField; public var pressAnyKey:TextField; } }//package
Section 428
//submitscoreMenu (submitscoreMenu) package { import flash.display.*; public dynamic class submitscoreMenu extends MovieClip { public var nameCon:MovieClip; public var backCon:MovieClip; public var playAgainCon:MovieClip; public var scoreCon:MovieClip; public var sendCon:MovieClip; } }//package
Section 429
//Tetro_I (Tetro_I) package { import flash.display.*; public dynamic class Tetro_I extends MovieClip { } }//package
Section 430
//Tetro_J (Tetro_J) package { import flash.display.*; public dynamic class Tetro_J extends MovieClip { } }//package
Section 431
//Tetro_L (Tetro_L) package { import flash.display.*; public dynamic class Tetro_L extends MovieClip { } }//package
Section 432
//Tetro_O (Tetro_O) package { import flash.display.*; public dynamic class Tetro_O extends MovieClip { } }//package
Section 433
//Tetro_S (Tetro_S) package { import flash.display.*; public dynamic class Tetro_S extends MovieClip { } }//package
Section 434
//Tetro_T (Tetro_T) package { import flash.display.*; public dynamic class Tetro_T extends MovieClip { } }//package
Section 435
//Tetro_Z (Tetro_Z) package { import flash.display.*; public dynamic class Tetro_Z extends MovieClip { } }//package
Section 436
//TextArea_disabledSkin (TextArea_disabledSkin) package { import flash.display.*; public dynamic class TextArea_disabledSkin extends MovieClip { } }//package
Section 437
//TextArea_upSkin (TextArea_upSkin) package { import flash.display.*; public dynamic class TextArea_upSkin extends MovieClip { } }//package
Section 438
//textBalloonIngameMC (textBalloonIngameMC) package { import flash.display.*; public dynamic class textBalloonIngameMC extends MovieClip { } }//package
Section 439
//textBalloonMC (textBalloonMC) package { import flash.display.*; public dynamic class textBalloonMC extends MovieClip { } }//package
Section 440
//TextInput_disabledSkin (TextInput_disabledSkin) package { import flash.display.*; public dynamic class TextInput_disabledSkin extends MovieClip { } }//package
Section 441
//TextInput_upSkin (TextInput_upSkin) package { import flash.display.*; public dynamic class TextInput_upSkin extends MovieClip { } }//package
Section 442
//tooltip (tooltip) package { import flash.display.*; import flash.text.*; public dynamic class tooltip extends MovieClip { public var bg:MovieClip; public var textField:TextField; public function tooltip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 443
//upArrow (upArrow) package { import flash.display.*; public dynamic class upArrow extends MovieClip { } }//package
Section 444
//ZoomButton (ZoomButton) package { import flash.display.*; public dynamic class ZoomButton extends MovieClip { public var detector:MovieClip; public function ZoomButton(){ addFrameScript(9, frame10, 19, frame20, 29, frame30, 39, frame40); } function frame10(){ stop(); } function frame20(){ stop(); } function frame30(){ stop(); } function frame40(){ stop(); } } }//package

Library Items

Symbol 1 GraphicUsed by:16
Symbol 2 GraphicUsed by:16
Symbol 3 GraphicUsed by:16
Symbol 4 SoundUsed by:16
Symbol 5 SoundUsed by:16
Symbol 6 GraphicUsed by:16
Symbol 7 GraphicUsed by:8
Symbol 8 MovieClipUses:7Used by:16
Symbol 9 SoundUsed by:16
Symbol 10 SoundUsed by:16
Symbol 11 SoundUsed by:16
Symbol 12 GraphicUsed by:13
Symbol 13 ButtonUses:12Used by:16
Symbol 14 SoundUsed by:16
Symbol 15 SoundUsed by:16
Symbol 16 MovieClip {ag_intro_mc} [ag_intro_mc]Uses:1 2 3 4 5 6 8 9 10 11 13 14 15Used by:17
Symbol 17 MovieClip {SponsorIntro} [SponsorIntro]Uses:16
Symbol 18 GraphicUsed by:19
Symbol 19 MovieClipUses:18Used by:23
Symbol 20 GraphicUsed by:23
Symbol 21 GraphicUsed by:22
Symbol 22 MovieClipUses:21Used by:23
Symbol 23 MovieClip {loadBar} [loadBar]Uses:19 20 22
Symbol 24 MovieClip {com.kongregate.as3.client.KongregateAPI} [com.kongregate.as3.client.KongregateAPI]
Symbol 25 MovieClip {mochi} [mochi]
Symbol 26 GraphicUsed by:39
Symbol 27 GraphicUsed by:28
Symbol 28 MovieClipUses:27Used by:39
Symbol 29 GraphicUsed by:39
Symbol 30 GraphicUsed by:31
Symbol 31 MovieClipUses:30Used by:39
Symbol 32 GraphicUsed by:33
Symbol 33 MovieClipUses:32Used by:39 818
Symbol 34 GraphicUsed by:37
Symbol 35 FontUsed by:36
Symbol 36 TextUses:35Used by:37
Symbol 37 ButtonUses:34 36Used by:38
Symbol 38 MovieClip {intro_fla.webLink_7} [intro_fla.webLink_7]Uses:37Used by:39
Symbol 39 MovieClip {load} [load]Uses:26 28 29 31 33 38
Symbol 40 GraphicUsed by:41
Symbol 41 MovieClipUses:40Used by:45
Symbol 42 BitmapUsed by:43 111
Symbol 43 GraphicUses:42Used by:44
Symbol 44 MovieClipUses:43Used by:45 251 773 1210
Symbol 45 MovieClipUses:41 44Used by:46 173 287
Symbol 46 MovieClipUses:45Used by:49
Symbol 47 FontUsed by:48 62 132 134 135 136 141 142 252 267 268 269 270 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 291 292 715 737 741 742 743 744 751 752 775 823 1007 1009 1012 1014 1015 1016 1021 1031 1032 1038 1087 1088 1106 1234 1235 1251 1252 1257 1258 1259 1260 1261 1262 1263 1264 1265 1274
Symbol 48 EditableTextUses:47Used by:49
Symbol 49 MovieClip {DialogMC} [DialogMC]Uses:46 48
Symbol 50 Sound {cash} [cash]
Symbol 51 BitmapUsed by:52
Symbol 52 GraphicUses:51Used by:53
Symbol 53 MovieClip {Pento3} [Pento3]Uses:52
Symbol 54 Sound {popSound} [popSound]
Symbol 55 GraphicUsed by:56
Symbol 56 MovieClip {pausedMessageBG} [pausedMessageBG]Uses:55
Symbol 57 Sound {dropping_1} [dropping_1]
Symbol 58 GraphicUsed by:59
Symbol 59 MovieClip {highscoreHighlight} [highscoreHighlight]Uses:58
Symbol 60 Sound {filler3ab} [filler3ab]
Symbol 61 FontUsed by:62 271 737 741 742 743 744 1014 1015 1016 1038 1087
Symbol 62 EditableTextUses:47 61 736Used by:63
Symbol 63 MovieClip {menuLib_fla.gameMenuTitle_472} [menuLib_fla.gameMenuTitle_472]Uses:62Used by:68 69
Symbol 64 GraphicUsed by:65 73 74
Symbol 65 MovieClip {invisibleThing} [invisibleThing]Uses:64Used by:68 69 133 454 461 468 479 490 502 511 517 535 544 552 562 565 569 572 580 591 594 607 618 626 659 664 787 813 1013 1040 1175
Symbol 66 GraphicUsed by:67
Symbol 67 MovieClipUses:66Used by:68 1175
Symbol 68 MovieClip {gameMenuButton} [gameMenuButton]Uses:63 65 67
Symbol 69 MovieClip {skipButton} [skipButton]Uses:63 65
Symbol 70 BitmapUsed by:71
Symbol 71 GraphicUses:70Used by:72
Symbol 72 MovieClip {Tetro_T} [Tetro_T]Uses:71
Symbol 73 MovieClipUses:64Used by:74 165 784 819 1026 1171 1190 1233 1273
Symbol 74 Button {modalLayerClose_btn} [modalLayerClose_btn]Uses:73 64
Symbol 75 GraphicUsed by:76
Symbol 76 MovieClipUses:75Used by:155
Symbol 77 GraphicUsed by:78
Symbol 78 MovieClipUses:77Used by:108 1256
Symbol 79 GraphicUsed by:80
Symbol 80 MovieClipUses:79Used by:108 987 997 1256
Symbol 81 GraphicUsed by:82
Symbol 82 MovieClipUses:81Used by:108 987 997 1256
Symbol 83 GraphicUsed by:84
Symbol 84 MovieClipUses:83Used by:108 987 997 1256
Symbol 85 GraphicUsed by:86
Symbol 86 MovieClipUses:85Used by:108 987 997 1256
Symbol 87 GraphicUsed by:88
Symbol 88 MovieClipUses:87Used by:108 987 997 1256
Symbol 89 GraphicUsed by:90
Symbol 90 MovieClipUses:89Used by:108 987 997 1256
Symbol 91 GraphicUsed by:92
Symbol 92 MovieClipUses:91Used by:108 987 997 1256
Symbol 93 GraphicUsed by:94
Symbol 94 MovieClipUses:93Used by:108 1256
Symbol 95 GraphicUsed by:96
Symbol 96 MovieClipUses:95Used by:108 987 997 1256
Symbol 97 GraphicUsed by:108
Symbol 98 GraphicUsed by:99
Symbol 99 MovieClipUses:98Used by:108 987 990 997 1256
Symbol 100 GraphicUsed by:101 890 997
Symbol 101 MovieClipUses:100Used by:108 1256
Symbol 102 GraphicUsed by:103
Symbol 103 MovieClipUses:102Used by:108 987 990 997 1256
Symbol 104 GraphicUsed by:105
Symbol 105 MovieClipUses:104Used by:108 987 997
Symbol 106 GraphicUsed by:107
Symbol 107 MovieClipUses:106Used by:108 1256
Symbol 108 MovieClipUses:78 80 82 84 86 88 90 92 94 96 97 99 101 103 105 107Used by:115
Symbol 109 GraphicUsed by:110
Symbol 110 MovieClipUses:109Used by:113
Symbol 111 GraphicUses:42Used by:112
Symbol 112 MovieClipUses:111Used by:113
Symbol 113 MovieClipUses:110 112Used by:115 1256
Symbol 114 GraphicUsed by:115
Symbol 115 MovieClipUses:108 113 114Used by:155
Symbol 116 GraphicUsed by:155
Symbol 117 GraphicUsed by:118 774
Symbol 118 MovieClipUses:117Used by:155 174 253 287 297 348 820 826 1008 1010 1027 1033 1107 1120 1187 1211 1236 1253 1275
Symbol 119 GraphicUsed by:129
Symbol 120 GraphicUsed by:121
Symbol 121 MovieClipUses:120Used by:129
Symbol 122 GraphicUsed by:129
Symbol 123 GraphicUsed by:124
Symbol 124 MovieClipUses:123Used by:129
Symbol 125 GraphicUsed by:126
Symbol 126 MovieClipUses:125Used by:129 987 997
Symbol 127 GraphicUsed by:128
Symbol 128 MovieClipUses:127Used by:129 987 997
Symbol 129 MovieClip {shoppeEyesMC} [shoppeEyesMC]Uses:119 121 122 124 126 128Used by:155 1267
Symbol 130 GraphicUsed by:131
Symbol 131 MovieClipUses:130Used by:133 266 287 1013
Symbol 132 TextUses:47Used by:133
Symbol 133 MovieClip {shopBuyButton} [shopBuyButton]Uses:131 132 65Used by:155
Symbol 134 TextUses:47Used by:155
Symbol 135 TextUses:47Used by:155
Symbol 136 TextUses:47Used by:155
Symbol 137 GraphicUsed by:140
Symbol 138 GraphicUsed by:139
Symbol 139 MovieClipUses:138Used by:140
Symbol 140 MovieClipUses:137 139Used by:155 726
Symbol 141 TextUses:47Used by:155
Symbol 142 TextUses:47Used by:155
Symbol 143 GraphicUsed by:144
Symbol 144 MovieClipUses:143Used by:155 726 1008 1187
Symbol 145 GraphicUsed by:146
Symbol 146 MovieClipUses:145Used by:148
Symbol 147 GraphicUsed by:148
Symbol 148 MovieClipUses:146 147Used by:155 726 1008 1187
Symbol 149 GraphicUsed by:150
Symbol 150 MovieClipUses:149Used by:155 726 1008 1187
Symbol 151 GraphicUsed by:152
Symbol 152 MovieClipUses:151Used by:155 727
Symbol 153 GraphicUsed by:154
Symbol 154 MovieClipUses:153Used by:155
Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu]Uses:76 115 116 118 129 133 134 135 136 140 141 142 144 148 150 152 154
Symbol 156 BitmapUsed by:157
Symbol 157 GraphicUses:156Used by:158
Symbol 158 MovieClip {Pento9} [Pento9]Uses:157
Symbol 159 GraphicUsed by:160
Symbol 160 MovieClipUses:159Used by:165 1171 1190 1233 1273
Symbol 161 GraphicUsed by:162
Symbol 162 MovieClipUses:161Used by:165
Symbol 163 GraphicUsed by:164
Symbol 164 MovieClipUses:163Used by:165 1233
Symbol 165 MovieClip {MusicButton} [MusicButton]Uses:160 162 164 73
Symbol 166 GraphicUsed by:170
Symbol 167 BitmapUsed by:168 217 218 235 250
Symbol 168 GraphicUses:167Used by:169
Symbol 169 MovieClipUses:168Used by:170
Symbol 170 MovieClipUses:166 169Used by:173
Symbol 171 GraphicUsed by:172
Symbol 172 MovieClipUses:171Used by:173
Symbol 173 MovieClipUses:45 170 172Used by:174 348
Symbol 174 MovieClip {DefaultGameMenu} [DefaultGameMenu]Uses:173 118
Symbol 175 GraphicUsed by:221
Symbol 176 GraphicUsed by:177
Symbol 177 MovieClipUses:176Used by:193 221
Symbol 178 GraphicUsed by:179
Symbol 179 MovieClipUses:178Used by:193 221
Symbol 180 GraphicUsed by:181
Symbol 181 MovieClipUses:180Used by:193 221
Symbol 182 GraphicUsed by:183
Symbol 183 MovieClipUses:182Used by:193 221
Symbol 184 GraphicUsed by:192
Symbol 185 GraphicUsed by:186
Symbol 186 MovieClipUses:185Used by:192 201 204 212 685 689 691 695
Symbol 187 GraphicUsed by:188
Symbol 188 MovieClipUses:187Used by:192 201 204 212 685 689 691 695
Symbol 189 GraphicUsed by:190
Symbol 190 MovieClipUses:189Used by:192 204 212 685 689 691 695
Symbol 191 GraphicUsed by:192
Symbol 192 MovieClipUses:184 186 188 190 191Used by:193 221
Symbol 193 MovieClipUses:177 179 181 183 192Used by:221
Symbol 194 GraphicUsed by:221
Symbol 195 GraphicUsed by:196
Symbol 196 MovieClipUses:195Used by:221
Symbol 197 GraphicUsed by:201
Symbol 198 GraphicUsed by:199
Symbol 199 MovieClipUses:198Used by:201 997
Symbol 200 GraphicUsed by:201
Symbol 201 MovieClipUses:197 186 188 199 200Used by:221
Symbol 202 GraphicUsed by:204
Symbol 203 GraphicUsed by:204
Symbol 204 MovieClipUses:202 186 188 190 203Used by:221
Symbol 205 GraphicUsed by:206
Symbol 206 MovieClipUses:205Used by:221
Symbol 207 GraphicUsed by:212
Symbol 208 GraphicUsed by:209
Symbol 209 MovieClipUses:208Used by:212
Symbol 210 GraphicUsed by:211
Symbol 211 MovieClipUses:210Used by:212
Symbol 212 MovieClipUses:207 186 188 190 209 211Used by:221
Symbol 213 GraphicUsed by:214
Symbol 214 MovieClipUses:213Used by:221
Symbol 215 GraphicUsed by:219 251 773 1210
Symbol 216 BitmapUsed by:217
Symbol 217 GraphicUses:167 216Used by:219 251 773 1210
Symbol 218 GraphicUses:167Used by:219 251 773 1210
Symbol 219 MovieClipUses:215 217 218Used by:221
Symbol 220 GraphicUsed by:221
Symbol 221 MovieClip {harryStoryMC} [harryStoryMC]Uses:175 193 177 183 181 179 192 194 196 201 204 206 212 214 219 220
Symbol 222 GraphicUsed by:251 773 1210
Symbol 223 GraphicUsed by:224
Symbol 224 MovieClipUses:223Used by:251 773 1210
Symbol 225 GraphicUsed by:226
Symbol 226 MovieClipUses:225Used by:251 773 1210
Symbol 227 GraphicUsed by:228 1130
Symbol 228 MovieClipUses:227Used by:251 773 1210
Symbol 229 BitmapUsed by:230
Symbol 230 GraphicUses:229Used by:231
Symbol 231 MovieClipUses:230Used by:251 773 1210
Symbol 232 GraphicUsed by:236
Symbol 233 BitmapUsed by:234
Symbol 234 GraphicUses:233Used by:236
Symbol 235 GraphicUses:167Used by:236
Symbol 236 MovieClipUses:232 234 235Used by:251 773 1210
Symbol 237 GraphicUsed by:238
Symbol 238 MovieClipUses:237Used by:251 773 867 1159 1186 1210
Symbol 239 GraphicUsed by:240
Symbol 240 MovieClipUses:239Used by:251 773 867 1186 1210
Symbol 241 GraphicUsed by:242
Symbol 242 MovieClipUses:241Used by:251 773 1210
Symbol 243 GraphicUsed by:244
Symbol 244 MovieClipUses:243Used by:251 773 867 1186 1210
Symbol 245 GraphicUsed by:246
Symbol 246 MovieClipUses:245Used by:251 773 1210
Symbol 247 GraphicUsed by:248
Symbol 248 MovieClipUses:247Used by:251 773 1210
Symbol 249 GraphicUsed by:251 773 1210
Symbol 250 GraphicUses:167Used by:251 773 1210
Symbol 251 MovieClip {menuLib_fla.generalMenuBgTall_210} [menuLib_fla.generalMenuBgTall_210]Uses:222 224 226 228 231 236 215 217 218 238 240 242 244 246 248 249 44 250Used by:253 297 1010 1107 1120 1275
Symbol 252 TextUses:47Used by:253
Symbol 253 MovieClip {highScore3Menu} [highScore3Menu]Uses:251 118 252
Symbol 254 BitmapUsed by:255
Symbol 255 GraphicUses:254Used by:256
Symbol 256 MovieClip {Tetro_I} [Tetro_I]Uses:255
Symbol 257 Sound {loop1} [loop1]
Symbol 258 Sound {loop2} [loop2]
Symbol 259 BitmapUsed by:260
Symbol 260 GraphicUses:259Used by:261
Symbol 261 MovieClip {Pento13} [Pento13]Uses:260
Symbol 262 Sound {dropping_2} [dropping_2]
Symbol 263 Sound {stone1a} [stone1a]
Symbol 264 GraphicUsed by:265
Symbol 265 MovieClipUses:264Used by:266 287
Symbol 266 MovieClipUses:131 265Used by:287
Symbol 267 TextUses:47Used by:287
Symbol 268 TextUses:47Used by:287
Symbol 269 TextUses:47Used by:287
Symbol 270 TextUses:47Used by:287
Symbol 271 TextUses:61Used by:287
Symbol 272 TextUses:47Used by:287
Symbol 273 TextUses:47Used by:287
Symbol 274 TextUses:47Used by:287
Symbol 275 TextUses:47Used by:287
Symbol 276 TextUses:47Used by:287
Symbol 277 TextUses:47Used by:287
Symbol 278 TextUses:47Used by:287
Symbol 279 TextUses:47Used by:287
Symbol 280 TextUses:47Used by:287
Symbol 281 TextUses:47Used by:287
Symbol 282 TextUses:47Used by:287
Symbol 283 TextUses:47Used by:287
Symbol 284 TextUses:47Used by:287
Symbol 285 TextUses:47Used by:287
Symbol 286 TextUses:47Used by:287
Symbol 287 MovieClip {HowToPlayInfoWindow} [HowToPlayInfoWindow]Uses:45 118 266 131 265 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286
Symbol 288 BitmapUsed by:289
Symbol 289 GraphicUses:288Used by:290
Symbol 290 MovieClip {Tetro_J} [Tetro_J]Uses:289
Symbol 291 TextUses:47Used by:297 1120
Symbol 292 TextUses:47Used by:297 1120
Symbol 293 GraphicUsed by:294
Symbol 294 MovieClipUses:293Used by:295
Symbol 295 MovieClipUses:294Used by:296
Symbol 296 MovieClipUses:295Used by:297 1120
Symbol 297 MovieClip {gameoverMenu} [gameoverMenu]Uses:251 118 291 292 296
Symbol 298 BitmapUsed by:299
Symbol 299 GraphicUses:298Used by:300
Symbol 300 MovieClip {Pento14} [Pento14]Uses:299
Symbol 301 GraphicUsed by:302
Symbol 302 MovieClipUses:301Used by:305
Symbol 303 GraphicUsed by:304
Symbol 304 MovieClipUses:303Used by:305
Symbol 305 MovieClip {Ground} [Ground]Uses:302 304
Symbol 306 GraphicUsed by:307
Symbol 307 MovieClipUses:306Used by:347
Symbol 308 GraphicUsed by:309
Symbol 309 MovieClipUses:308Used by:345 346 1318 1321 1337
Symbol 310 MovieClip {fl.core.ComponentShim} [fl.core.ComponentShim]Used by:345 346 1277 1293 1313 1318 1321 1337 1360
Symbol 311 GraphicUsed by:312 1319
Symbol 312 MovieClip {TextArea_disabledSkin} [TextArea_disabledSkin]Uses:311Used by:346
Symbol 313 GraphicUsed by:314 1317 1320
Symbol 314 MovieClip {TextArea_upSkin} [TextArea_upSkin]Uses:313Used by:346
Symbol 315 GraphicUsed by:316
Symbol 316 MovieClip {focusRectSkin} [focusRectSkin]Uses:315Used by:345 346 1277 1318 1321 1337
Symbol 317 GraphicUsed by:318
Symbol 318 MovieClip {ScrollTrack_skin} [ScrollTrack_skin]Uses:317Used by:345 1277
Symbol 319 GraphicUsed by:322
Symbol 320 GraphicUsed by:321 324 328 338 1294
Symbol 321 MovieClipUses:320Used by:322 332 334
Symbol 322 MovieClip {ScrollArrowUp_downSkin} [ScrollArrowUp_downSkin]Uses:319 321Used by:345 1277
Symbol 323 GraphicUsed by:324
Symbol 324 MovieClip {ScrollArrowDown_downSkin} [ScrollArrowDown_downSkin]Uses:323 320Used by:345 1277
Symbol 325 GraphicUsed by:326
Symbol 326 MovieClip {ScrollThumb_downSkin} [ScrollThumb_downSkin]Uses:325Used by:345 1277
Symbol 327 GraphicUsed by:328
Symbol 328 MovieClip {ScrollArrowDown_overSkin} [ScrollArrowDown_overSkin]Uses:327 320Used by:345 1277
Symbol 329 GraphicUsed by:330
Symbol 330 MovieClip {ScrollThumb_overSkin} [ScrollThumb_overSkin]Uses:329Used by:345 1277
Symbol 331 GraphicUsed by:332
Symbol 332 MovieClip {ScrollArrowUp_overSkin} [ScrollArrowUp_overSkin]Uses:331 321Used by:345 1277
Symbol 333 GraphicUsed by:334
Symbol 334 MovieClip {ScrollArrowUp_upSkin} [ScrollArrowUp_upSkin]Uses:333 321Used by:345 1277
Symbol 335 GraphicUsed by:336
Symbol 336 MovieClip {ScrollThumb_upSkin} [ScrollThumb_upSkin]Uses:335Used by:345 1277
Symbol 337 GraphicUsed by:338
Symbol 338 MovieClip {ScrollArrowDown_upSkin} [ScrollArrowDown_upSkin]Uses:337 320Used by:345 1277
Symbol 339 GraphicUsed by:340
Symbol 340 MovieClip {ScrollArrowDown_disabledSkin} [ScrollArrowDown_disabledSkin]Uses:339Used by:345 1277
Symbol 341 GraphicUsed by:342
Symbol 342 MovieClip {ScrollArrowUp_disabledSkin} [ScrollArrowUp_disabledSkin]Uses:341Used by:345 1277
Symbol 343 GraphicUsed by:344
Symbol 344 MovieClip {ScrollBar_thumbIcon} [ScrollBar_thumbIcon]Uses:343Used by:345 1277
Symbol 345 MovieClip {fl.controls.UIScrollBar} [fl.controls.UIScrollBar]Uses:309 310 316 318 322 324 326 328 330 332 334 336 338 340 342 344Used by:346
Symbol 346 MovieClip {fl.controls.TextArea} [fl.controls.TextArea]Uses:309 310 312 314 316 345Used by:347
Symbol 347 MovieClip {BBconsoleMC} [BBconsoleMC]Uses:307 346
Symbol 348 MovieClip {ClassicGameMenu} [ClassicGameMenu]Uses:173 118
Symbol 349 Sound {applause3a} [applause3a]
Symbol 350 GraphicUsed by:351
Symbol 351 MovieClipUses:350Used by:352 1220
Symbol 352 MovieClip {mistGenerationParticles} [mistGenerationParticles]Uses:351
Symbol 353 GraphicUsed by:727
Symbol 354 GraphicUsed by:727
Symbol 355 GraphicUsed by:727
Symbol 356 BitmapUsed by:357
Symbol 357 GraphicUses:356Used by:358
Symbol 358 MovieClipUses:357Used by:727
Symbol 359 GraphicUsed by:360
Symbol 360 MovieClipUses:359Used by:727
Symbol 361 GraphicUsed by:362
Symbol 362 MovieClipUses:361Used by:727
Symbol 363 GraphicUsed by:364
Symbol 364 MovieClipUses:363Used by:727
Symbol 365 GraphicUsed by:366
Symbol 366 MovieClipUses:365Used by:727
Symbol 367 GraphicUsed by:368
Symbol 368 MovieClipUses:367Used by:727
Symbol 369 GraphicUsed by:370
Symbol 370 MovieClipUses:369Used by:727
Symbol 371 GraphicUsed by:372
Symbol 372 MovieClipUses:371Used by:727
Symbol 373 GraphicUsed by:374
Symbol 374 MovieClipUses:373Used by:727
Symbol 375 GraphicUsed by:376
Symbol 376 MovieClipUses:375Used by:727
Symbol 377 GraphicUsed by:378
Symbol 378 MovieClipUses:377Used by:727
Symbol 379 GraphicUsed by:380
Symbol 380 MovieClipUses:379Used by:727
Symbol 381 GraphicUsed by:382
Symbol 382 MovieClipUses:381Used by:727
Symbol 383 GraphicUsed by:384
Symbol 384 MovieClipUses:383Used by:727
Symbol 385 GraphicUsed by:386
Symbol 386 MovieClipUses:385Used by:727
Symbol 387 GraphicUsed by:388
Symbol 388 MovieClipUses:387Used by:727
Symbol 389 GraphicUsed by:390
Symbol 390 MovieClipUses:389Used by:727
Symbol 391 GraphicUsed by:392
Symbol 392 MovieClipUses:391Used by:727
Symbol 393 GraphicUsed by:394
Symbol 394 MovieClipUses:393Used by:727
Symbol 395 GraphicUsed by:396
Symbol 396 MovieClipUses:395Used by:727
Symbol 397 GraphicUsed by:398
Symbol 398 MovieClipUses:397Used by:727
Symbol 399 GraphicUsed by:400
Symbol 400 MovieClipUses:399Used by:727
Symbol 401 GraphicUsed by:402
Symbol 402 MovieClipUses:401Used by:727
Symbol 403 GraphicUsed by:404
Symbol 404 MovieClipUses:403Used by:727
Symbol 405 GraphicUsed by:406
Symbol 406 MovieClipUses:405Used by:727
Symbol 407 GraphicUsed by:408
Symbol 408 MovieClipUses:407Used by:727
Symbol 409 GraphicUsed by:410
Symbol 410 MovieClipUses:409Used by:727
Symbol 411 GraphicUsed by:412
Symbol 412 MovieClipUses:411Used by:727
Symbol 413 GraphicUsed by:414
Symbol 414 MovieClipUses:413Used by:727
Symbol 415 GraphicUsed by:416
Symbol 416 MovieClipUses:415Used by:727
Symbol 417 GraphicUsed by:418
Symbol 418 MovieClipUses:417Used by:727
Symbol 419 GraphicUsed by:420
Symbol 420 MovieClipUses:419Used by:727
Symbol 421 GraphicUsed by:422
Symbol 422 MovieClipUses:421Used by:727
Symbol 423 GraphicUsed by:424
Symbol 424 MovieClipUses:423Used by:634 635 727
Symbol 425 GraphicUsed by:426
Symbol 426 MovieClipUses:425Used by:727
Symbol 427 GraphicUsed by:428
Symbol 428 MovieClipUses:427Used by:727
Symbol 429 GraphicUsed by:430
Symbol 430 MovieClipUses:429Used by:727
Symbol 431 GraphicUsed by:432
Symbol 432 MovieClipUses:431Used by:727
Symbol 433 GraphicUsed by:434
Symbol 434 MovieClipUses:433Used by:727
Symbol 435 GraphicUsed by:436
Symbol 436 MovieClipUses:435Used by:635 727
Symbol 437 GraphicUsed by:727
Symbol 438 GraphicUsed by:727
Symbol 439 GraphicUsed by:440
Symbol 440 MovieClipUses:439Used by:635 727
Symbol 441 GraphicUsed by:727
Symbol 442 GraphicUsed by:727
Symbol 443 GraphicUsed by:444
Symbol 444 MovieClipUses:443Used by:727
Symbol 445 GraphicUsed by:727
Symbol 446 GraphicUsed by:447
Symbol 447 MovieClipUses:446Used by:454 461 468 490 502 562 565 569 580 591 607 618 626 659 664
Symbol 448 GraphicUsed by:454
Symbol 449 GraphicUsed by:450
Symbol 450 MovieClipUses:449Used by:453 592
Symbol 451 GraphicUsed by:452
Symbol 452 MovieClipUses:451Used by:453 571
Symbol 453 MovieClipUses:450 452Used by:454
Symbol 454 MovieClip {menuLib_fla.city1_287} [menuLib_fla.city1_287]Uses:447 448 453 65Used by:727
Symbol 455 GraphicUsed by:461
Symbol 456 GraphicUsed by:457
Symbol 457 MovieClipUses:456Used by:460 561
Symbol 458 GraphicUsed by:459
Symbol 459 MovieClipUses:458Used by:460 551
Symbol 460 MovieClipUses:457 459Used by:461
Symbol 461 MovieClip {menuLib_fla.city2_292} [menuLib_fla.city2_292]Uses:447 455 460 65Used by:727
Symbol 462 GraphicUsed by:468
Symbol 463 GraphicUsed by:464
Symbol 464 MovieClipUses:463Used by:467 663
Symbol 465 GraphicUsed by:466
Symbol 466 MovieClipUses:465Used by:467 510 663
Symbol 467 MovieClipUses:464 466Used by:468
Symbol 468 MovieClip {menuLib_fla.city3_296} [menuLib_fla.city3_296]Uses:447 462 467 65Used by:727
Symbol 469 GraphicUsed by:470
Symbol 470 MovieClipUses:469Used by:479
Symbol 471 GraphicUsed by:479
Symbol 472 GraphicUsed by:473
Symbol 473 MovieClipUses:472Used by:478 534
Symbol 474 GraphicUsed by:477
Symbol 475 GraphicUsed by:476
Symbol 476 MovieClipUses:475Used by:477 658
Symbol 477 MovieClipUses:474 476Used by:478
Symbol 478 MovieClipUses:473 477Used by:479
Symbol 479 MovieClip {menuLib_fla.city4_300} [menuLib_fla.city4_300]Uses:470 471 478 65Used by:727
Symbol 480 GraphicUsed by:490
Symbol 481 GraphicUsed by:482
Symbol 482 MovieClipUses:481Used by:489 571
Symbol 483 GraphicUsed by:484
Symbol 484 MovieClipUses:483Used by:489
Symbol 485 GraphicUsed by:486
Symbol 486 MovieClipUses:485Used by:489 551
Symbol 487 GraphicUsed by:488
Symbol 488 MovieClipUses:487Used by:489 571
Symbol 489 MovieClipUses:482 484 486 488Used by:490
Symbol 490 MovieClip {menuLib_fla.city5_306} [menuLib_fla.city5_306]Uses:447 480 489 65Used by:727
Symbol 491 GraphicUsed by:502
Symbol 492 GraphicUsed by:502
Symbol 493 GraphicUsed by:494
Symbol 494 MovieClipUses:493Used by:501 663
Symbol 495 GraphicUsed by:496
Symbol 496 MovieClipUses:495Used by:501 663
Symbol 497 GraphicUsed by:498
Symbol 498 MovieClipUses:497Used by:501 658
Symbol 499 GraphicUsed by:500
Symbol 500 MovieClipUses:499Used by:501
Symbol 501 MovieClipUses:494 496 498 500Used by:502
Symbol 502 MovieClip {menuLib_fla.city6_312} [menuLib_fla.city6_312]Uses:491 447 492 501 65Used by:727
Symbol 503 GraphicUsed by:504
Symbol 504 MovieClipUses:503Used by:511 517 535 572
Symbol 505 GraphicUsed by:511
Symbol 506 GraphicUsed by:507
Symbol 507 MovieClipUses:506Used by:510
Symbol 508 GraphicUsed by:509
Symbol 509 MovieClipUses:508Used by:510
Symbol 510 MovieClipUses:507 466 509Used by:511
Symbol 511 MovieClip {menuLib_fla.city8_318} [menuLib_fla.city8_318]Uses:504 505 510 65Used by:727
Symbol 512 GraphicUsed by:517
Symbol 513 GraphicUsed by:516
Symbol 514 GraphicUsed by:515
Symbol 515 MovieClipUses:514Used by:516 663
Symbol 516 MovieClipUses:513 515Used by:517 565
Symbol 517 MovieClip {menuLib_fla.city9_323} [menuLib_fla.city9_323]Uses:504 512 516 65Used by:727
Symbol 518 GraphicUsed by:535
Symbol 519 GraphicUsed by:534
Symbol 520 GraphicUsed by:521
Symbol 521 MovieClipUses:520Used by:534
Symbol 522 GraphicUsed by:523
Symbol 523 MovieClipUses:522Used by:534
Symbol 524 GraphicUsed by:525
Symbol 525 MovieClipUses:524Used by:534
Symbol 526 GraphicUsed by:527
Symbol 527 MovieClipUses:526Used by:534
Symbol 528 GraphicUsed by:529
Symbol 529 MovieClipUses:528Used by:534
Symbol 530 GraphicUsed by:531
Symbol 531 MovieClipUses:530Used by:534 590
Symbol 532 GraphicUsed by:533
Symbol 533 MovieClipUses:532Used by:534
Symbol 534 MovieClipUses:519 521 523 525 473 527 529 531 533Used by:535
Symbol 535 MovieClip {menuLib_fla.city10_326} [menuLib_fla.city10_326]Uses:504 518 534 65Used by:727
Symbol 536 GraphicUsed by:537
Symbol 537 MovieClipUses:536Used by:544 552 594
Symbol 538 GraphicUsed by:544
Symbol 539 GraphicUsed by:540
Symbol 540 MovieClipUses:539Used by:543
Symbol 541 GraphicUsed by:542
Symbol 542 MovieClipUses:541Used by:543
Symbol 543 MovieClipUses:540 542Used by:544
Symbol 544 MovieClip {menuLib_fla.city11_335} [menuLib_fla.city11_335]Uses:537 538 543 65Used by:727
Symbol 545 GraphicUsed by:552
Symbol 546 GraphicUsed by:552
Symbol 547 GraphicUsed by:548
Symbol 548 MovieClipUses:547Used by:551
Symbol 549 GraphicUsed by:550
Symbol 550 MovieClipUses:549Used by:551 592
Symbol 551 MovieClipUses:486 548 459 550Used by:552
Symbol 552 MovieClip {menuLib_fla.city12_340} [menuLib_fla.city12_340]Uses:545 537 546 551 65Used by:727
Symbol 553 GraphicUsed by:562
Symbol 554 GraphicUsed by:562
Symbol 555 GraphicUsed by:556
Symbol 556 MovieClipUses:555Used by:561 625
Symbol 557 GraphicUsed by:558
Symbol 558 MovieClipUses:557Used by:561
Symbol 559 GraphicUsed by:560
Symbol 560 MovieClipUses:559Used by:561
Symbol 561 MovieClipUses:556 457 558 560Used by:562
Symbol 562 MovieClip {menuLib_fla.city7_344} [menuLib_fla.city7_344]Uses:553 447 554 561 65Used by:727
Symbol 563 GraphicUsed by:565
Symbol 564 GraphicUsed by:565
Symbol 565 MovieClip {menuLib_fla.city14_349} [menuLib_fla.city14_349]Uses:563 447 564 516 65Used by:727
Symbol 566 GraphicUsed by:569
Symbol 567 GraphicUsed by:568
Symbol 568 MovieClipUses:567Used by:569
Symbol 569 MovieClip {menuLib_fla.city13_350} [menuLib_fla.city13_350]Uses:447 566 568 65Used by:727
Symbol 570 GraphicUsed by:572
Symbol 571 MovieClipUses:452 482 488Used by:572
Symbol 572 MovieClip {menuLib_fla.city15_352} [menuLib_fla.city15_352]Uses:504 570 571 65Used by:727
Symbol 573 GraphicUsed by:580
Symbol 574 GraphicUsed by:580
Symbol 575 GraphicUsed by:576
Symbol 576 MovieClipUses:575Used by:579 658
Symbol 577 GraphicUsed by:578
Symbol 578 MovieClipUses:577Used by:579
Symbol 579 MovieClipUses:576 578Used by:580
Symbol 580 MovieClip {menuLib_fla.city16_354} [menuLib_fla.city16_354]Uses:573 447 574 579 65Used by:727
Symbol 581 GraphicUsed by:591
Symbol 582 GraphicUsed by:583
Symbol 583 MovieClipUses:582Used by:590
Symbol 584 GraphicUsed by:585
Symbol 585 MovieClipUses:584Used by:590
Symbol 586 GraphicUsed by:587
Symbol 587 MovieClipUses:586Used by:590
Symbol 588 GraphicUsed by:589
Symbol 589 MovieClipUses:588Used by:590
Symbol 590 MovieClipUses:531 583 585 587 589Used by:591
Symbol 591 MovieClip {menuLib_fla.city17_358} [menuLib_fla.city17_358]Uses:447 581 590 65Used by:727
Symbol 592 MovieClipUses:450 550Used by:594
Symbol 593 GraphicUsed by:594
Symbol 594 MovieClip {menuLib_fla.city18_364} [menuLib_fla.city18_364]Uses:537 592 593 65Used by:727
Symbol 595 GraphicUsed by:607
Symbol 596 GraphicUsed by:597
Symbol 597 MovieClipUses:596Used by:606
Symbol 598 GraphicUsed by:599
Symbol 599 MovieClipUses:598Used by:606
Symbol 600 GraphicUsed by:601
Symbol 601 MovieClipUses:600Used by:606
Symbol 602 GraphicUsed by:603
Symbol 603 MovieClipUses:602Used by:606
Symbol 604 GraphicUsed by:605
Symbol 605 MovieClipUses:604Used by:606
Symbol 606 MovieClipUses:597 599 601 603 605Used by:607
Symbol 607 MovieClip {menuLib_fla.city19_366} [menuLib_fla.city19_366]Uses:447 595 606 65Used by:727
Symbol 608 GraphicUsed by:618
Symbol 609 GraphicUsed by:610
Symbol 610 MovieClipUses:609Used by:617
Symbol 611 GraphicUsed by:612
Symbol 612 MovieClipUses:611Used by:617
Symbol 613 GraphicUsed by:614
Symbol 614 MovieClipUses:613Used by:617
Symbol 615 GraphicUsed by:616
Symbol 616 MovieClipUses:615Used by:617
Symbol 617 MovieClipUses:610 612 614 616Used by:618
Symbol 618 MovieClip {menuLib_fla.city20_373} [menuLib_fla.city20_373]Uses:447 608 617 65Used by:727
Symbol 619 GraphicUsed by:626
Symbol 620 GraphicUsed by:621
Symbol 621 MovieClipUses:620Used by:625
Symbol 622 GraphicUsed by:623
Symbol 623 MovieClipUses:622Used by:625
Symbol 624 GraphicUsed by:625
Symbol 625 MovieClipUses:556 621 623 624Used by:626
Symbol 626 MovieClip {menuLib_fla.city23_379} [menuLib_fla.city23_379]Uses:447 619 625 65Used by:727
Symbol 627 GraphicUsed by:628
Symbol 628 MovieClipUses:627Used by:654
Symbol 629 GraphicUsed by:654
Symbol 630 GraphicUsed by:635
Symbol 631 GraphicUsed by:634
Symbol 632 GraphicUsed by:633
Symbol 633 MovieClipUses:632Used by:634 1204
Symbol 634 MovieClipUses:631 424 633Used by:635
Symbol 635 MovieClip {menuLib_fla.st_kasteelRots_385} [menuLib_fla.st_kasteelRots_385]Uses:630 424 440 436 634Used by:654
Symbol 636 GraphicUsed by:637
Symbol 637 MovieClipUses:636Used by:654
Symbol 638 GraphicUsed by:651
Symbol 639 GraphicUsed by:650
Symbol 640 GraphicUsed by:641
Symbol 641 MovieClipUses:640Used by:650
Symbol 642 GraphicUsed by:643
Symbol 643 MovieClipUses:642Used by:650
Symbol 644 GraphicUsed by:645
Symbol 645 MovieClipUses:644Used by:650
Symbol 646 GraphicUsed by:647
Symbol 647 MovieClipUses:646Used by:650
Symbol 648 GraphicUsed by:649
Symbol 649 MovieClipUses:648Used by:650
Symbol 650 MovieClipUses:639 641 643 645 647 649Used by:651
Symbol 651 MovieClip {menuLib_fla.st_kasteel_389} [menuLib_fla.st_kasteel_389]Uses:638 650Used by:654
Symbol 652 GraphicUsed by:653 719 754
Symbol 653 MovieClipUses:652Used by:654
Symbol 654 MovieClip {menuLib_fla.city24_383} [menuLib_fla.city24_383]Uses:628 629 635 637 651 653Used by:727
Symbol 655 GraphicUsed by:659
Symbol 656 GraphicUsed by:657
Symbol 657 MovieClipUses:656Used by:658
Symbol 658 MovieClipUses:498 576 476 657Used by:659
Symbol 659 MovieClip {menuLib_fla.city21_397} [menuLib_fla.city21_397]Uses:447 655 658 65Used by:727
Symbol 660 GraphicUsed by:664
Symbol 661 GraphicUsed by:662
Symbol 662 MovieClipUses:661Used by:663
Symbol 663 MovieClipUses:464 466 515 496 662 494Used by:664
Symbol 664 MovieClip {menuLib_fla.city22_400} [menuLib_fla.city22_400]Uses:447 660 663 65Used by:727
Symbol 665 GraphicUsed by:666
Symbol 666 MovieClipUses:665Used by:667
Symbol 667 MovieClip {menuLib_fla.foregrounds_403} [menuLib_fla.foregrounds_403]Uses:666Used by:727
Symbol 668 GraphicUsed by:669
Symbol 669 MovieClipUses:668Used by:696
Symbol 670 GraphicUsed by:671
Symbol 671 MovieClipUses:670Used by:696
Symbol 672 GraphicUsed by:673
Symbol 673 MovieClipUses:672Used by:696
Symbol 674 GraphicUsed by:675
Symbol 675 MovieClipUses:674Used by:696
Symbol 676 GraphicUsed by:677
Symbol 677 MovieClipUses:676Used by:696
Symbol 678 GraphicUsed by:679
Symbol 679 MovieClipUses:678Used by:696
Symbol 680 GraphicUsed by:685
Symbol 681 GraphicUsed by:682
Symbol 682 MovieClipUses:681Used by:685 689 691 695
Symbol 683 GraphicUsed by:684
Symbol 684 MovieClipUses:683Used by:685 689 691 695
Symbol 685 MovieClipUses:680 190 186 188 682 684Used by:696
Symbol 686 GraphicUsed by:687
Symbol 687 MovieClipUses:686Used by:696
Symbol 688 GraphicUsed by:689
Symbol 689 MovieClipUses:688 190 186 188 682 684Used by:696
Symbol 690 GraphicUsed by:691
Symbol 691 MovieClipUses:690 190 186 188 682 684Used by:696
Symbol 692 GraphicUsed by:693
Symbol 693 MovieClipUses:692Used by:696
Symbol 694 GraphicUsed by:695
Symbol 695 MovieClipUses:694 190 186 188 682 684Used by:696
Symbol 696 MovieClip {garryStoryMC} [garryStoryMC]Uses:669 671 673 675 677 679 685 687 689 691 693 695Used by:727
Symbol 697 GraphicUsed by:706
Symbol 698 ShapeTweeningUsed by:706
Symbol 699 ShapeTweeningUsed by:706
Symbol 700 ShapeTweeningUsed by:706
Symbol 701 ShapeTweeningUsed by:706
Symbol 702 ShapeTweeningUsed by:706
Symbol 703 ShapeTweeningUsed by:706
Symbol 704 ShapeTweeningUsed by:706
Symbol 705 GraphicUsed by:706
Symbol 706 MovieClipUses:697 698 699 700 701 702 703 704 705Used by:714
Symbol 707 GraphicUsed by:713
Symbol 708 ShapeTweeningUsed by:713
Symbol 709 ShapeTweeningUsed by:713
Symbol 710 ShapeTweeningUsed by:713
Symbol 711 ShapeTweeningUsed by:713
Symbol 712 GraphicUsed by:713
Symbol 713 MovieClipUses:707 708 709 710 711 712Used by:714
Symbol 714 MovieClipUses:706 713Used by:727
Symbol 715 TextUses:47Used by:722
Symbol 716 GraphicUsed by:717
Symbol 717 MovieClipUses:716Used by:720
Symbol 718 ShapeTweeningUsed by:719
Symbol 719 MovieClipUses:718 652Used by:720
Symbol 720 MovieClipUses:717 719Used by:721
Symbol 721 MovieClip {spinnerMC} [spinnerMC]Uses:720Used by:722
Symbol 722 MovieClip {menuLib_fla.progressSaved_429} [menuLib_fla.progressSaved_429]Uses:715 721Used by:727
Symbol 723 GraphicUsed by:726
Symbol 724 GraphicUsed by:725
Symbol 725 MovieClipUses:724Used by:726
Symbol 726 MovieClipUses:723 725 140 144 148 150Used by:727
Symbol 727 MovieClip {levelSelectMap} [levelSelectMap]Uses:353 354 355 358 360 362 364 366 368 370 372 374 376 378 380 382 384 386 388 390 392 394 396 398 400 402 404 406 408 410 412 414 416 418 420 422 424 426 428 430 432 434 436 437 438 440 441 442 444 445 454 461 468 479 490 502 511 517 535 544 552 562 565 569 572 580 591 594 607 618 626 654 659 664 667 696 714 722 726 152
Symbol 728 GraphicUsed by:729
Symbol 729 MovieClipUses:728Used by:730
Symbol 730 MovieClip {curHeightLine} [curHeightLine]Uses:729
Symbol 731 BitmapUsed by:732
Symbol 732 GraphicUses:731Used by:733
Symbol 733 MovieClip {Hexo1} [Hexo1]Uses:732
Symbol 734 GraphicUsed by:735
Symbol 735 MovieClipUses:734Used by:738
Symbol 736 FontUsed by:62 737 741 742 743 744 1014 1015 1016 1038 1087 1217
Symbol 737 EditableTextUses:47 61 736Used by:738
Symbol 738 MovieClip {tooltip} [tooltip]Uses:735 737
Symbol 739 GraphicUsed by:740
Symbol 740 MovieClipUses:739Used by:746 750 1090 1230
Symbol 741 EditableTextUses:47 61 736Used by:745
Symbol 742 EditableTextUses:47 61 736Used by:745
Symbol 743 EditableTextUses:47 61 736Used by:745
Symbol 744 EditableTextUses:47 61 736Used by:745
Symbol 745 MovieClip {menuLib_fla.levelSelectMouseoverText_72} [menuLib_fla.levelSelectMouseoverText_72]Uses:741 742 743 744Used by:746 750 1090 1230
Symbol 746 MovieClip {levelSelectMouseoverMCHeightGoal} [levelSelectMouseoverMCHeightGoal]Uses:740 745
Symbol 747 BitmapUsed by:748
Symbol 748 GraphicUses:747Used by:749
Symbol 749 MovieClip {Hexo4} [Hexo4]Uses:748
Symbol 750 MovieClip {levelSelectMouseoverMCBrickGoal} [levelSelectMouseoverMCBrickGoal]Uses:740 745
Symbol 751 TextUses:47Used by:754
Symbol 752 TextUses:47Used by:753
Symbol 753 MovieClipUses:752Used by:754
Symbol 754 MovieClip {pausedMessageMC} [pausedMessageMC]Uses:652 751 753
Symbol 755 GraphicUsed by:756
Symbol 756 MovieClipUses:755Used by:759
Symbol 757 GraphicUsed by:758
Symbol 758 MovieClipUses:757Used by:759
Symbol 759 MovieClip {grid} [grid]Uses:756 758
Symbol 760 GraphicUsed by:761
Symbol 761 MovieClip {textBalloonIngameMC} [textBalloonIngameMC]Uses:760
Symbol 762 GraphicUsed by:773
Symbol 763 GraphicUsed by:769
Symbol 764 BitmapUsed by:765 1154
Symbol 765 GraphicUses:764Used by:766
Symbol 766 MovieClipUses:765Used by:769
Symbol 767 GraphicUsed by:768
Symbol 768 MovieClipUses:767Used by:769
Symbol 769 MovieClipUses:763 766 768Used by:773 1210
Symbol 770 GraphicUsed by:773 1210
Symbol 771 GraphicUsed by:772
Symbol 772 MovieClipUses:771Used by:773 1210
Symbol 773 MovieClip {menuLib_fla.generalMenuBg_205} [menuLib_fla.generalMenuBg_205]Uses:224 226 228 222 762 769 231 236 215 217 218 238 240 242 244 246 248 249 44 770 772 250Used by:820 826 1033 1236 1253
Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]Uses:117Used by:820 826 1008 1027 1033 1187 1211 1236 1253
Symbol 775 TextUses:47Used by:820
Symbol 776 GraphicUsed by:783
Symbol 777 BitmapUsed by:778
Symbol 778 GraphicUses:777Used by:779
Symbol 779 MovieClipUses:778Used by:783 1273
Symbol 780 GraphicUsed by:783
Symbol 781 GraphicUsed by:782
Symbol 782 MovieClipUses:781Used by:783 1273
Symbol 783 MovieClipUses:776 779 780 782Used by:784
Symbol 784 MovieClip {kongregateLink} [kongregateLink]Uses:783 73Used by:820 826 1033 1211 1236 1253 1266
Symbol 785 GraphicUsed by:786
Symbol 786 MovieClipUses:785Used by:787 1266
Symbol 787 MovieClip {menuLib_fla.sobcheckSiteLinkButton_201} [menuLib_fla.sobcheckSiteLinkButton_201]Uses:786 65Used by:820 826 1033 1211 1236 1253
Symbol 788 FontUsed by:789
Symbol 789 TextUses:788Used by:820
Symbol 790 GraphicUsed by:812
Symbol 791 GraphicUsed by:793 801
Symbol 792 GraphicUsed by:793
Symbol 793 MovieClipUses:791 792Used by:812
Symbol 794 GraphicUsed by:797 798 807 1267
Symbol 795 BitmapUsed by:796
Symbol 796 GraphicUses:795Used by:797
Symbol 797 MovieClipUses:794 796Used by:798
Symbol 798 MovieClipUses:794 797Used by:799
Symbol 799 MovieClipUses:798Used by:801
Symbol 800 GraphicUsed by:801
Symbol 801 MovieClipUses:791 799 800Used by:812
Symbol 802 GraphicUsed by:804 808 810
Symbol 803 GraphicUsed by:804
Symbol 804 MovieClipUses:802 803Used by:812
Symbol 805 BitmapUsed by:806
Symbol 806 GraphicUses:805Used by:807
Symbol 807 MovieClipUses:794 806Used by:808
Symbol 808 MovieClipUses:802 807Used by:812
Symbol 809 GraphicUsed by:810
Symbol 810 MovieClipUses:802 809Used by:812
Symbol 811 GraphicUsed by:812
Symbol 812 MovieClipUses:790 793 801 804 808 810 811Used by:813 1266
Symbol 813 MovieClip {menuLib_fla.negenMeterSiteLinkButton_202} [menuLib_fla.negenMeterSiteLinkButton_202]Uses:812 65Used by:820 826 1033 1211 1236 1253
Symbol 814 GraphicUsed by:815
Symbol 815 MovieClipUses:814Used by:818
Symbol 816 GraphicUsed by:817
Symbol 817 MovieClipUses:816Used by:818
Symbol 818 MovieClipUses:815 817 33Used by:819 1266
Symbol 819 MovieClip {menuLib_fla.siteLinkButton_203} [menuLib_fla.siteLinkButton_203]Uses:818 73Used by:820 826 1033 1211 1236 1253
Symbol 820 MovieClip {highScoreMenu} [highScoreMenu]Uses:773 774 118 775 784 787 789 813 819
Symbol 821 GraphicUsed by:822
Symbol 822 MovieClip {BBinputFieldErrorMC} [BBinputFieldErrorMC]Uses:821
Symbol 823 TextUses:47Used by:826
Symbol 824 FontUsed by:825
Symbol 825 TextUses:824Used by:826 1033 1211 1236 1253
Symbol 826 MovieClip {loadMenu} [loadMenu]Uses:773 118 774 823 784 787 813 819 825
Symbol 827 GraphicUsed by:828
Symbol 828 MovieClipUses:827Used by:1008 1187
Symbol 829 GraphicUsed by:867
Symbol 830 GraphicUsed by:831
Symbol 831 MovieClipUses:830Used by:867 1186
Symbol 832 GraphicUsed by:833
Symbol 833 MovieClipUses:832Used by:867 1186
Symbol 834 GraphicUsed by:835
Symbol 835 MovieClipUses:834Used by:867 1186
Symbol 836 GraphicUsed by:837
Symbol 837 MovieClipUses:836Used by:867 1186
Symbol 838 GraphicUsed by:839
Symbol 839 MovieClipUses:838Used by:867 1186
Symbol 840 GraphicUsed by:841
Symbol 841 MovieClipUses:840Used by:867 1186
Symbol 842 GraphicUsed by:843
Symbol 843 MovieClipUses:842Used by:867 1186
Symbol 844 GraphicUsed by:845
Symbol 845 MovieClipUses:844Used by:867 1186
Symbol 846 GraphicUsed by:847
Symbol 847 MovieClipUses:846Used by:867 1186
Symbol 848 GraphicUsed by:849
Symbol 849 MovieClipUses:848Used by:867 1186
Symbol 850 GraphicUsed by:851
Symbol 851 MovieClipUses:850Used by:867 1186
Symbol 852 GraphicUsed by:853
Symbol 853 MovieClipUses:852Used by:867 1186
Symbol 854 GraphicUsed by:855
Symbol 855 MovieClipUses:854Used by:860
Symbol 856 GraphicUsed by:857
Symbol 857 MovieClipUses:856Used by:860
Symbol 858 GraphicUsed by:859
Symbol 859 MovieClipUses:858Used by:860
Symbol 860 MovieClipUses:855 857 859Used by:867 1186
Symbol 861 GraphicUsed by:862
Symbol 862 MovieClipUses:861Used by:864 867 1186
Symbol 863 GraphicUsed by:864
Symbol 864 MovieClipUses:863 862Used by:867 1186
Symbol 865 GraphicUsed by:866
Symbol 866 MovieClipUses:865Used by:867 1186
Symbol 867 MovieClipUses:829 831 833 835 837 839 841 843 845 847 849 244 240 851 853 860 862 864 238 866Used by:1008
Symbol 868 GraphicUsed by:1008 1187
Symbol 869 GraphicUsed by:872
Symbol 870 GraphicUsed by:871
Symbol 871 MovieClipUses:870Used by:872
Symbol 872 MovieClipUses:869 871Used by:1008 1187
Symbol 873 FontUsed by:874
Symbol 874 TextUses:873Used by:1008 1187
Symbol 875 GraphicUsed by:876
Symbol 876 MovieClipUses:875Used by:987 988 997
Symbol 877 GraphicUsed by:878
Symbol 878 MovieClipUses:877Used by:987 997
Symbol 879 GraphicUsed by:987
Symbol 880 ShapeTweeningUsed by:890 997
Symbol 881 ShapeTweeningUsed by:890
Symbol 882 ShapeTweeningUsed by:890
Symbol 883 ShapeTweeningUsed by:890
Symbol 884 ShapeTweeningUsed by:890
Symbol 885 ShapeTweeningUsed by:890
Symbol 886 ShapeTweeningUsed by:890
Symbol 887 ShapeTweeningUsed by:890
Symbol 888 ShapeTweeningUsed by:890
Symbol 889 ShapeTweeningUsed by:890
Symbol 890 MovieClipUses:100 880 881 882 883 884 885 886 887 888 889Used by:987 997
Symbol 891 GraphicUsed by:892
Symbol 892 MovieClipUses:891Used by:987 990 997
Symbol 893 GraphicUsed by:894
Symbol 894 MovieClipUses:893Used by:987 990 997
Symbol 895 GraphicUsed by:986 997
Symbol 896 ShapeTweeningUsed by:986 997
Symbol 897 ShapeTweeningUsed by:986 997
Symbol 898 ShapeTweeningUsed by:986 997
Symbol 899 ShapeTweeningUsed by:986 997
Symbol 900 ShapeTweeningUsed by:986 997
Symbol 901 ShapeTweeningUsed by:986 997
Symbol 902 GraphicUsed by:986 997
Symbol 903 ShapeTweeningUsed by:986 997
Symbol 904 ShapeTweeningUsed by:986
Symbol 905 ShapeTweeningUsed by:986
Symbol 906 ShapeTweeningUsed by:986
Symbol 907 ShapeTweeningUsed by:986
Symbol 908 ShapeTweeningUsed by:986
Symbol 909 ShapeTweeningUsed by:986
Symbol 910 ShapeTweeningUsed by:986
Symbol 911 ShapeTweeningUsed by:986
Symbol 912 ShapeTweeningUsed by:986
Symbol 913 ShapeTweeningUsed by:986
Symbol 914 ShapeTweeningUsed by:986
Symbol 915 ShapeTweeningUsed by:986
Symbol 916 ShapeTweeningUsed by:986
Symbol 917 ShapeTweeningUsed by:986
Symbol 918 ShapeTweeningUsed by:986
Symbol 919 ShapeTweeningUsed by:986
Symbol 920 ShapeTweeningUsed by:986
Symbol 921 ShapeTweeningUsed by:986
Symbol 922 ShapeTweeningUsed by:986
Symbol 923 ShapeTweeningUsed by:986
Symbol 924 ShapeTweeningUsed by:986
Symbol 925 ShapeTweeningUsed by:986
Symbol 926 ShapeTweeningUsed by:986
Symbol 927 ShapeTweeningUsed by:986
Symbol 928 ShapeTweeningUsed by:986
Symbol 929 ShapeTweeningUsed by:986
Symbol 930 ShapeTweeningUsed by:986
Symbol 931 ShapeTweeningUsed by:986
Symbol 932 ShapeTweeningUsed by:986
Symbol 933 ShapeTweeningUsed by:986
Symbol 934 ShapeTweeningUsed by:986
Symbol 935 ShapeTweeningUsed by:986
Symbol 936 ShapeTweeningUsed by:986
Symbol 937 ShapeTweeningUsed by:986
Symbol 938 ShapeTweeningUsed by:986
Symbol 939 ShapeTweeningUsed by:986
Symbol 940 ShapeTweeningUsed by:986
Symbol 941 ShapeTweeningUsed by:986
Symbol 942 ShapeTweeningUsed by:986
Symbol 943 ShapeTweeningUsed by:986
Symbol 944 ShapeTweeningUsed by:986
Symbol 945 ShapeTweeningUsed by:986
Symbol 946 ShapeTweeningUsed by:986
Symbol 947 ShapeTweeningUsed by:986
Symbol 948 ShapeTweeningUsed by:986
Symbol 949 ShapeTweeningUsed by:986
Symbol 950 ShapeTweeningUsed by:986
Symbol 951 ShapeTweeningUsed by:986
Symbol 952 ShapeTweeningUsed by:986
Symbol 953 ShapeTweeningUsed by:986
Symbol 954 ShapeTweeningUsed by:986
Symbol 955 ShapeTweeningUsed by:986
Symbol 956 ShapeTweeningUsed by:986
Symbol 957 ShapeTweeningUsed by:986
Symbol 958 ShapeTweeningUsed by:986
Symbol 959 ShapeTweeningUsed by:986
Symbol 960 ShapeTweeningUsed by:986
Symbol 961 ShapeTweeningUsed by:986
Symbol 962 ShapeTweeningUsed by:986
Symbol 963 ShapeTweeningUsed by:986
Symbol 964 ShapeTweeningUsed by:986
Symbol 965 ShapeTweeningUsed by:986
Symbol 966 ShapeTweeningUsed by:986
Symbol 967 ShapeTweeningUsed by:986
Symbol 968 ShapeTweeningUsed by:986
Symbol 969 ShapeTweeningUsed by:986
Symbol 970 ShapeTweeningUsed by:986
Symbol 971 ShapeTweeningUsed by:986
Symbol 972 ShapeTweeningUsed by:986
Symbol 973 ShapeTweeningUsed by:986
Symbol 974 ShapeTweeningUsed by:986
Symbol 975 ShapeTweeningUsed by:986
Symbol 976 ShapeTweeningUsed by:986
Symbol 977 ShapeTweeningUsed by:986
Symbol 978 ShapeTweeningUsed by:986
Symbol 979 ShapeTweeningUsed by:986
Symbol 980 ShapeTweeningUsed by:986
Symbol 981 ShapeTweeningUsed by:986
Symbol 982 ShapeTweeningUsed by:986
Symbol 983 ShapeTweeningUsed by:986
Symbol 984 GraphicUsed by:986
Symbol 985 GraphicUsed by:986
Symbol 986 MovieClipUses:895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985Used by:987 997
Symbol 987 MovieClipUses:876 80 82 84 86 88 90 92 878 96 879 99 126 890 103 128 892 894 105 986Used by:997
Symbol 988 MovieClipUses:876Used by:997
Symbol 989 GraphicUsed by:990
Symbol 990 MovieClipUses:99 103 892 894 989Used by:997
Symbol 991 GraphicUsed by:992
Symbol 992 MovieClipUses:991Used by:997
Symbol 993 GraphicUsed by:994
Symbol 994 MovieClipUses:993Used by:997 1256
Symbol 995 GraphicUsed by:996
Symbol 996 MovieClipUses:995Used by:997
Symbol 997 MovieClip {larryStoryMC} [larryStoryMC]Uses:987 988 80 82 84 86 88 90 92 878 96 126 890 990 128 105 986 992 99 103 894 892 199 994 876 100 880 895 896 897 898 899 900 901 902 903 996Used by:1008 1187
Symbol 998 GraphicUsed by:999
Symbol 999 MovieClipUses:998Used by:1008 1187
Symbol 1000 GraphicUsed by:1001
Symbol 1001 MovieClipUses:1000Used by:1008 1187
Symbol 1002 GraphicUsed by:1003
Symbol 1003 MovieClipUses:1002Used by:1008 1019
Symbol 1004 GraphicUsed by:1008 1019
Symbol 1005 GraphicUsed by:1006
Symbol 1006 MovieClipUses:1005Used by:1008
Symbol 1007 TextUses:47Used by:1008
Symbol 1008 MovieClip {ExtraInterface} [ExtraInterface]Uses:828 867 868 872 874 997 999 1001 144 148 150 1003 1004 1006 774 1007 118
Symbol 1009 TextUses:47Used by:1010
Symbol 1010 MovieClip {highScore1Menu} [highScore1Menu]Uses:251 118 1009
Symbol 1011 GraphicUsed by:1013
Symbol 1012 TextUses:47Used by:1013
Symbol 1013 MovieClip {mainMenuButton} [mainMenuButton]Uses:131 1011 1012 65Used by:1027
Symbol 1014 EditableTextUses:47 61 736Used by:1027
Symbol 1015 EditableTextUses:47 61 736Used by:1027
Symbol 1016 EditableTextUses:47 61 736Used by:1027
Symbol 1017 GraphicUsed by:1018
Symbol 1018 MovieClipUses:1017Used by:1019
Symbol 1019 MovieClip {shiftMoveIndicator} [shiftMoveIndicator]Uses:1003 1018 1004Used by:1027 1187
Symbol 1020 GraphicUsed by:1026
Symbol 1021 TextUses:47Used by:1026
Symbol 1022 GraphicUsed by:1023
Symbol 1023 MovieClipUses:1022Used by:1026
Symbol 1024 GraphicUsed by:1026
Symbol 1025 GraphicUsed by:1026
Symbol 1026 MovieClip {ShoppeButton} [ShoppeButton]Uses:1020 1021 1023 73 1024 1025Used by:1027
Symbol 1027 MovieClip {levelSelectMenu} [levelSelectMenu]Uses:118 774 1013 1014 1015 1016 1019 1026
Symbol 1028 BitmapUsed by:1029
Symbol 1029 GraphicUses:1028Used by:1030
Symbol 1030 MovieClip {Tetro_O} [Tetro_O]Uses:1029
Symbol 1031 TextUses:47Used by:1033
Symbol 1032 TextUses:47Used by:1033
Symbol 1033 MovieClip {saveNameMenu} [saveNameMenu]Uses:773 118 1031 774 1032 784 787 813 819 825
Symbol 1034 Sound {loop3} [loop3]
Symbol 1035 BitmapUsed by:1036
Symbol 1036 GraphicUses:1035Used by:1037
Symbol 1037 MovieClip {Tetro_Z} [Tetro_Z]Uses:1036
Symbol 1038 EditableTextUses:47 61 736Used by:1039
Symbol 1039 MovieClip {menuLib_fla.menuTitle_452} [menuLib_fla.menuTitle_452]Uses:1038Used by:1040 1175
Symbol 1040 MovieClip {dialogScrollButton} [dialogScrollButton]Uses:1039 65
Symbol 1041 GraphicUsed by:1042
Symbol 1042 MovieClipUses:1041Used by:1089 1204 1267
Symbol 1043 GraphicUsed by:1044
Symbol 1044 MovieClipUses:1043Used by:1089 1204 1267
Symbol 1045 GraphicUsed by:1046
Symbol 1046 MovieClipUses:1045Used by:1089 1204 1267
Symbol 1047 GraphicUsed by:1048
Symbol 1048 MovieClipUses:1047Used by:1089 1267
Symbol 1049 GraphicUsed by:1050
Symbol 1050 MovieClipUses:1049Used by:1089 1204 1267
Symbol 1051 GraphicUsed by:1052
Symbol 1052 MovieClipUses:1051Used by:1089 1204 1267
Symbol 1053 GraphicUsed by:1054
Symbol 1054 MovieClipUses:1053Used by:1089 1204 1267
Symbol 1055 GraphicUsed by:1056
Symbol 1056 MovieClipUses:1055Used by:1089 1204 1267
Symbol 1057 GraphicUsed by:1058
Symbol 1058 MovieClipUses:1057Used by:1089 1204 1267
Symbol 1059 GraphicUsed by:1060
Symbol 1060 MovieClipUses:1059Used by:1089 1204 1267
Symbol 1061 GraphicUsed by:1062
Symbol 1062 MovieClipUses:1061Used by:1089 1204 1267
Symbol 1063 GraphicUsed by:1064
Symbol 1064 MovieClipUses:1063Used by:1089 1204 1267
Symbol 1065 GraphicUsed by:1066
Symbol 1066 MovieClipUses:1065Used by:1089 1204 1267
Symbol 1067 GraphicUsed by:1068
Symbol 1068 MovieClipUses:1067Used by:1089 1204 1267
Symbol 1069 GraphicUsed by:1070
Symbol 1070 MovieClipUses:1069Used by:1089 1204 1267
Symbol 1071 GraphicUsed by:1072
Symbol 1072 MovieClipUses:1071Used by:1089 1204 1267
Symbol 1073 GraphicUsed by:1074
Symbol 1074 MovieClipUses:1073Used by:1089 1204 1267
Symbol 1075 GraphicUsed by:1076
Symbol 1076 MovieClipUses:1075Used by:1089 1204 1267
Symbol 1077 GraphicUsed by:1078
Symbol 1078 MovieClipUses:1077Used by:1080
Symbol 1079 GraphicUsed by:1080
Symbol 1080 MovieClipUses:1078 1079Used by:1089 1204 1267
Symbol 1081 GraphicUsed by:1082
Symbol 1082 MovieClipUses:1081Used by:1089 1204 1267
Symbol 1083 GraphicUsed by:1084
Symbol 1084 MovieClipUses:1083Used by:1089 1204
Symbol 1085 FontUsed by:1086
Symbol 1086 EditableTextUses:1085Used by:1089 1204
Symbol 1087 EditableTextUses:47 61 736Used by:1089 1204
Symbol 1088 EditableTextUses:47Used by:1089 1204
Symbol 1089 MovieClip {storyBgMC} [storyBgMC]Uses:1042 1044 1046 1048 1050 1052 1054 1056 1058 1060 1062 1064 1066 1068 1070 1072 1074 1076 1080 1082 1084 1086 1087 1088
Symbol 1090 MovieClip {levelSelectMouseoverMCPuzzle} [levelSelectMouseoverMCPuzzle]Uses:740 745
Symbol 1091 BitmapUsed by:1092
Symbol 1092 GraphicUses:1091Used by:1093
Symbol 1093 MovieClip {Pento4} [Pento4]Uses:1092
Symbol 1094 GraphicUsed by:1095
Symbol 1095 MovieClipUses:1094Used by:1096
Symbol 1096 MovieClip {loadSpinner} [loadSpinner]Uses:1095
Symbol 1097 GraphicUsed by:1098
Symbol 1098 MovieClipUses:1097Used by:1105
Symbol 1099 GraphicUsed by:1100
Symbol 1100 MovieClipUses:1099Used by:1103
Symbol 1101 GraphicUsed by:1102
Symbol 1102 MovieClipUses:1101Used by:1103
Symbol 1103 MovieClipUses:1100 1102Used by:1105
Symbol 1104 GraphicUsed by:1105
Symbol 1105 MovieClip {BBplayer1MC} [BBplayer1MC]Uses:1098 1103 1104
Symbol 1106 TextUses:47Used by:1107
Symbol 1107 MovieClip {showscoreMenu} [showscoreMenu]Uses:251 118 1106
Symbol 1108 BitmapUsed by:1109
Symbol 1109 GraphicUses:1108Used by:1110
Symbol 1110 MovieClip {Pento1} [Pento1]Uses:1109
Symbol 1111 BitmapUsed by:1112
Symbol 1112 GraphicUses:1111Used by:1113
Symbol 1113 MovieClip {Pento2} [Pento2]Uses:1112
Symbol 1114 BitmapUsed by:1115
Symbol 1115 GraphicUses:1114Used by:1116
Symbol 1116 MovieClip {Hexo2} [Hexo2]Uses:1115
Symbol 1117 GraphicUsed by:1118
Symbol 1118 MovieClip {upArrow} [upArrow]Uses:1117
Symbol 1119 Sound {filler1} [filler1]
Symbol 1120 MovieClip {submitscoreMenu} [submitscoreMenu]Uses:251 118 291 292 296
Symbol 1121 Sound {filler2} [filler2]
Symbol 1122 GraphicUsed by:1123
Symbol 1123 MovieClipUses:1122Used by:1131
Symbol 1124 GraphicUsed by:1125
Symbol 1125 MovieClipUses:1124Used by:1131
Symbol 1126 GraphicUsed by:1127
Symbol 1127 MovieClipUses:1126Used by:1131
Symbol 1128 GraphicUsed by:1129
Symbol 1129 MovieClipUses:1128Used by:1131
Symbol 1130 MovieClipUses:227Used by:1131
Symbol 1131 MovieClipUses:1123 1125 1127 1129 1130Used by:1159
Symbol 1132 GraphicUsed by:1133
Symbol 1133 MovieClipUses:1132Used by:1159
Symbol 1134 GraphicUsed by:1159
Symbol 1135 GraphicUsed by:1136
Symbol 1136 MovieClipUses:1135Used by:1139
Symbol 1137 GraphicUsed by:1138
Symbol 1138 MovieClipUses:1137Used by:1139
Symbol 1139 MovieClipUses:1136 1138Used by:1159
Symbol 1140 GraphicUsed by:1141
Symbol 1141 MovieClipUses:1140Used by:1144
Symbol 1142 GraphicUsed by:1143
Symbol 1143 MovieClipUses:1142Used by:1144
Symbol 1144 MovieClipUses:1141 1143Used by:1159
Symbol 1145 GraphicUsed by:1146
Symbol 1146 MovieClipUses:1145Used by:1149
Symbol 1147 GraphicUsed by:1148
Symbol 1148 MovieClipUses:1147Used by:1149
Symbol 1149 MovieClipUses:1146 1148Used by:1159
Symbol 1150 GraphicUsed by:1151
Symbol 1151 MovieClipUses:1150Used by:1159
Symbol 1152 GraphicUsed by:1159
Symbol 1153 GraphicUsed by:1156
Symbol 1154 GraphicUses:764Used by:1155
Symbol 1155 MovieClipUses:1154Used by:1156
Symbol 1156 MovieClipUses:1153 1155Used by:1159
Symbol 1157 GraphicUsed by:1158
Symbol 1158 MovieClipUses:1157Used by:1159
Symbol 1159 MovieClip {brickIntro} [brickIntro]Uses:1131 1133 1134 1139 1144 1149 1151 1152 238 1156 1158
Symbol 1160 Sound {filler3b} [filler3b]
Symbol 1161 BitmapUsed by:1162
Symbol 1162 GraphicUses:1161Used by:1163
Symbol 1163 MovieClip {Pento6} [Pento6]Uses:1162
Symbol 1164 Sound {loop5} [loop5]
Symbol 1165 Sound {filler3a} [filler3a]
Symbol 1166 GraphicUsed by:1167
Symbol 1167 MovieClip {textBalloonMC} [textBalloonMC]Uses:1166
Symbol 1168 Sound {loop4} [loop4]
Symbol 1169 GraphicUsed by:1170
Symbol 1170 MovieClipUses:1169Used by:1171
Symbol 1171 MovieClip {OpenMenuButton} [OpenMenuButton]Uses:160 1170 73
Symbol 1172 BitmapUsed by:1173
Symbol 1173 GraphicUses:1172Used by:1174
Symbol 1174 MovieClip {Pento5} [Pento5]Uses:1173
Symbol 1175 MovieClip {scrollButton} [scrollButton]Uses:1039 65 67
Symbol 1176 BitmapUsed by:1177
Symbol 1177 GraphicUses:1176Used by:1178
Symbol 1178 MovieClip {Pento10} [Pento10]Uses:1177
Symbol 1179 GraphicUsed by:1180
Symbol 1180 MovieClipUses:1179Used by:1181
Symbol 1181 MovieClip {maxHeightLine} [maxHeightLine]Uses:1180
Symbol 1182 GraphicUsed by:1184
Symbol 1183 GraphicUsed by:1184
Symbol 1184 MovieClip {mainBackground_mc} [mainBackground_mc]Uses:1182 1183
Symbol 1185 GraphicUsed by:1186
Symbol 1186 MovieClipUses:1185 845 831 833 835 837 839 841 843 847 849 244 240 851 853 860 862 864 238 866Used by:1187
Symbol 1187 MovieClip {PlayInterface} [PlayInterface]Uses:828 1186 868 872 874 997 144 148 150 1019 999 1001 774 118
Symbol 1188 GraphicUsed by:1189
Symbol 1189 MovieClipUses:1188Used by:1190
Symbol 1190 MovieClip {ZoomButton} [ZoomButton]Uses:160 1189 73
Symbol 1191 Sound {sound16} [sound16]
Symbol 1192 BitmapUsed by:1193
Symbol 1193 GraphicUses:1192Used by:1194
Symbol 1194 MovieClip {Hexo3} [Hexo3]Uses:1193
Symbol 1195 Sound {dropping_3} [dropping_3]
Symbol 1196 GraphicUsed by:1204
Symbol 1197 GraphicUsed by:1198
Symbol 1198 MovieClipUses:1197Used by:1204
Symbol 1199 GraphicUsed by:1204
Symbol 1200 GraphicUsed by:1203
Symbol 1201 GraphicUsed by:1202
Symbol 1202 MovieClipUses:1201Used by:1203
Symbol 1203 MovieClipUses:1200 1202Used by:1204
Symbol 1204 MovieClip {storyFinalBgMC} [storyFinalBgMC]Uses:1196 1042 1044 1046 1050 1052 1054 1056 1058 633 1060 1062 1064 1066 1068 1070 1072 1074 1076 1080 1082 1198 1199 1203 1084 1086 1087 1088
Symbol 1205 GraphicUsed by:1210
Symbol 1206 GraphicUsed by:1210
Symbol 1207 GraphicUsed by:1208
Symbol 1208 MovieClipUses:1207Used by:1210
Symbol 1209 GraphicUsed by:1210
Symbol 1210 MovieClip {menuLib_fla.mainMenuBG_183} [menuLib_fla.mainMenuBG_183]Uses:222 224 226 1205 769 231 236 215 217 218 238 240 242 244 246 248 249 44 770 1206 772 250 1208 228 1209Used by:1211
Symbol 1211 MovieClip {mainMenu} [mainMenu]Uses:1210 784 787 813 819 825 118 774
Symbol 1212 Sound {filler1and2} [filler1and2]
Symbol 1213 Sound {loop6thema2} [loop6thema2]
Symbol 1214 GraphicUsed by:1215
Symbol 1215 ButtonUses:1214Used by:1216
Symbol 1216 MovieClip {modalLayer} [modalLayer]Uses:1215
Symbol 1217 EditableTextUses:736Used by:1218
Symbol 1218 MovieClip {brickWorldLib_fla.messageAreaTextfield_33} [brickWorldLib_fla.messageAreaTextfield_33]Uses:1217Used by:1219
Symbol 1219 MovieClip {messageAreaMC} [messageAreaMC]Uses:1218
Symbol 1220 MovieClipUses:351Used by:1221
Symbol 1221 MovieClip {mistSourceMC} [mistSourceMC]Uses:1220
Symbol 1222 FontUsed by:1223
Symbol 1223 EditableTextUses:1222Used by:1224
Symbol 1224 MovieClip {maxHeightLabel} [maxHeightLabel]Uses:1223
Symbol 1225 BitmapUsed by:1226
Symbol 1226 GraphicUses:1225Used by:1227
Symbol 1227 MovieClip {Pento8} [Pento8]Uses:1226
Symbol 1228 GraphicUsed by:1229
Symbol 1229 MovieClip {circleMC} [circleMC]Uses:1228
Symbol 1230 MovieClip {levelSelectMouseoverMCNoDrop} [levelSelectMouseoverMCNoDrop]Uses:740 745
Symbol 1231 GraphicUsed by:1232
Symbol 1232 MovieClipUses:1231Used by:1233
Symbol 1233 MovieClip {SoundButton} [SoundButton]Uses:160 1232 164 73
Symbol 1234 TextUses:47Used by:1236
Symbol 1235 TextUses:47Used by:1236
Symbol 1236 MovieClip {extraMenu} [extraMenu]Uses:773 118 1234 774 1235 784 787 813 819 825
Symbol 1237 BitmapUsed by:1238
Symbol 1238 GraphicUses:1237Used by:1239
Symbol 1239 MovieClip {Pento7} [Pento7]Uses:1238
Symbol 1240 BitmapUsed by:1241
Symbol 1241 GraphicUses:1240Used by:1242
Symbol 1242 MovieClip {Pento12} [Pento12]Uses:1241
Symbol 1243 BitmapUsed by:1244
Symbol 1244 GraphicUses:1243Used by:1245
Symbol 1245 MovieClip {Tetro_S} [Tetro_S]Uses:1244
Symbol 1246 BitmapUsed by:1247
Symbol 1247 GraphicUses:1246Used by:1248
Symbol 1248 MovieClip {Pento11} [Pento11]Uses:1247
Symbol 1249 GraphicUsed by:1250
Symbol 1250 MovieClip {bonusMC} [bonusMC]Uses:1249
Symbol 1251 TextUses:47Used by:1253
Symbol 1252 TextUses:47Used by:1253
Symbol 1253 MovieClip {saveMenu} [saveMenu]Uses:773 118 1251 1252 774 784 787 813 819 825
Symbol 1254 GraphicUsed by:1256
Symbol 1255 GraphicUsed by:1256
Symbol 1256 MovieClipUses:1254 78 80 82 84 86 88 90 92 94 96 99 101 103 107 994 113 1255Used by:1267
Symbol 1257 TextUses:47Used by:1266
Symbol 1258 TextUses:47Used by:1266
Symbol 1259 TextUses:47Used by:1266
Symbol 1260 TextUses:47Used by:1266
Symbol 1261 TextUses:47Used by:1266
Symbol 1262 TextUses:47Used by:1266
Symbol 1263 TextUses:47Used by:1266
Symbol 1264 TextUses:47Used by:1266
Symbol 1265 TextUses:47Used by:1266
Symbol 1266 MovieClip {menuLib_fla.creditsText_49} [menuLib_fla.creditsText_49]Uses:1257 1258 1259 784 786 818 1260 1261 1262 1263 1264 812 1265Used by:1267
Symbol 1267 MovieClip {creditsBgMC} [creditsBgMC]Uses:1042 1044 1046 1048 1050 1052 1054 1056 1058 1060 1062 1064 1066 1068 1070 1072 1074 1076 1080 1082 1256 129 794 1266
Symbol 1268 BitmapUsed by:1269
Symbol 1269 GraphicUses:1268Used by:1270
Symbol 1270 MovieClip {Tetro_L} [Tetro_L]Uses:1269
Symbol 1271 GraphicUsed by:1273
Symbol 1272 GraphicUsed by:1273
Symbol 1273 MovieClip {ArmorMiniButton} [ArmorMiniButton]Uses:160 1271 779 1272 782 73
Symbol 1274 TextUses:47Used by:1275
Symbol 1275 MovieClip {highScore2Menu} [highScore2Menu]Uses:251 1274 118
Symbol 1276 Sound {loop6thema1} [loop6thema1]
Symbol 1277 MovieClip {fl.controls.ScrollBar} [fl.controls.ScrollBar]Uses:318 310 316 322 324 326 328 330 332 334 336 338 340 342 344Used by:1318
Symbol 1278 GraphicUsed by:1279
Symbol 1279 MovieClip {HeaderRenderer_upSkin} [HeaderRenderer_upSkin]Uses:1278Used by:1293
Symbol 1280 GraphicUsed by:1281
Symbol 1281 MovieClip {HeaderRenderer_disabledSkin} [HeaderRenderer_disabledSkin]Uses:1280Used by:1293
Symbol 1282 GraphicUsed by:1283 1288
Symbol 1283 MovieClip {HeaderRenderer_downSkin} [HeaderRenderer_downSkin]Uses:1282Used by:1293
Symbol 1284 GraphicUsed by:1285
Symbol 1285 MovieClip {HeaderRenderer_overSkin} [HeaderRenderer_overSkin]Uses:1284Used by:1293
Symbol 1286 GraphicUsed by:1287
Symbol 1287 MovieClip {HeaderRenderer_selectedDisabledSkin} [HeaderRenderer_selectedDisabledSkin]Uses:1286Used by:1293
Symbol 1288 MovieClip {HeaderRenderer_selectedDownSkin} [HeaderRenderer_selectedDownSkin]Uses:1282Used by:1293
Symbol 1289 GraphicUsed by:1290
Symbol 1290 MovieClip {HeaderRenderer_selectedOverSkin} [HeaderRenderer_selectedOverSkin]Uses:1289Used by:1293
Symbol 1291 GraphicUsed by:1292
Symbol 1292 MovieClip {HeaderRenderer_selectedUpSkin} [HeaderRenderer_selectedUpSkin]Uses:1291Used by:1293
Symbol 1293 MovieClip {fl.controls.dataGridClasses.HeaderRenderer} [fl.controls.dataGridClasses.HeaderRenderer]Uses:1279 310 1281 1283 1285 1287 1288 1290 1292Used by:1318
Symbol 1294 MovieClip {HeaderSortArrow_ascIcon} [HeaderSortArrow_ascIcon]Uses:320Used by:1318
Symbol 1295 GraphicUsed by:1296
Symbol 1296 MovieClip {HeaderSortArrow_descIcon} [HeaderSortArrow_descIcon]Uses:1295Used by:1318
Symbol 1297 GraphicUsed by:1298
Symbol 1298 MovieClip {CellRenderer_upSkin} [CellRenderer_upSkin]Uses:1297Used by:1313
Symbol 1299 GraphicUsed by:1300
Symbol 1300 MovieClip {CellRenderer_disabledSkin} [CellRenderer_disabledSkin]Uses:1299Used by:1313
Symbol 1301 GraphicUsed by:1302
Symbol 1302 MovieClip {CellRenderer_downSkin} [CellRenderer_downSkin]Uses:1301Used by:1313
Symbol 1303 GraphicUsed by:1304
Symbol 1304 MovieClip {CellRenderer_overSkin} [CellRenderer_overSkin]Uses:1303Used by:1313
Symbol 1305 GraphicUsed by:1306
Symbol 1306 MovieClip {CellRenderer_selectedDisabledSkin} [CellRenderer_selectedDisabledSkin]Uses:1305Used by:1313
Symbol 1307 GraphicUsed by:1308
Symbol 1308 MovieClip {CellRenderer_selectedDownSkin} [CellRenderer_selectedDownSkin]Uses:1307Used by:1313
Symbol 1309 GraphicUsed by:1310
Symbol 1310 MovieClip {CellRenderer_selectedOverSkin} [CellRenderer_selectedOverSkin]Uses:1309Used by:1313
Symbol 1311 GraphicUsed by:1312
Symbol 1312 MovieClip {CellRenderer_selectedUpSkin} [CellRenderer_selectedUpSkin]Uses:1311Used by:1313
Symbol 1313 MovieClip {fl.controls.listClasses.CellRenderer} [fl.controls.listClasses.CellRenderer]Uses:1298 310 1300 1302 1304 1306 1308 1310 1312Used by:1318
Symbol 1314 GraphicUsed by:1315
Symbol 1315 MovieClip {ColumnStretch_cursor} [ColumnStretch_cursor]Uses:1314Used by:1318
Symbol 1316 MovieClip {DataGrid_skin} [DataGrid_skin]Used by:1318
Symbol 1317 MovieClip {DataGridCellEditor_skin} [DataGridCellEditor_skin]Uses:313Used by:1318
Symbol 1318 MovieClip {fl.controls.DataGrid} [fl.controls.DataGrid]Uses:309 310 1293 1294 1296 1313 316 1315 1316 1277 1317
Symbol 1319 MovieClip {TextInput_disabledSkin} [TextInput_disabledSkin]Uses:311Used by:1321
Symbol 1320 MovieClip {TextInput_upSkin} [TextInput_upSkin]Uses:313Used by:1321
Symbol 1321 MovieClip {fl.controls.TextInput} [fl.controls.TextInput]Uses:309 310 1319 1320 316
Symbol 1322 GraphicUsed by:1323
Symbol 1323 MovieClip {RadioButton_upIcon} [RadioButton_upIcon]Uses:1322Used by:1337
Symbol 1324 GraphicUsed by:1325 1334
Symbol 1325 MovieClip {RadioButton_overIcon} [RadioButton_overIcon]Uses:1324Used by:1337
Symbol 1326 GraphicUsed by:1327 1335
Symbol 1327 MovieClip {RadioButton_downIcon} [RadioButton_downIcon]Uses:1326Used by:1337
Symbol 1328 GraphicUsed by:1329 1336
Symbol 1329 MovieClip {RadioButton_disabledIcon} [RadioButton_disabledIcon]Uses:1328Used by:1337
Symbol 1330 GraphicUsed by:1333
Symbol 1331 GraphicUsed by:1332
Symbol 1332 MovieClipUses:1331Used by:1333 1334 1335 1336
Symbol 1333 MovieClip {RadioButton_selectedUpIcon} [RadioButton_selectedUpIcon]Uses:1330 1332Used by:1337
Symbol 1334 MovieClip {RadioButton_selectedOverIcon} [RadioButton_selectedOverIcon]Uses:1324 1332Used by:1337
Symbol 1335 MovieClip {RadioButton_selectedDownIcon} [RadioButton_selectedDownIcon]Uses:1326 1332Used by:1337
Symbol 1336 MovieClip {RadioButton_selectedDisabledIcon} [RadioButton_selectedDisabledIcon]Uses:1328 1332Used by:1337
Symbol 1337 MovieClip {fl.controls.RadioButton} [fl.controls.RadioButton]Uses:309 310 1323 1325 1327 1329 1333 1334 1335 1336 316
Symbol 1338 GraphicUsed by:1339
Symbol 1339 MovieClipUses:1338Used by:1360
Symbol 1340 GraphicUsed by:1341
Symbol 1341 MovieClip {Button_disabledSkin} [Button_disabledSkin]Uses:1340Used by:1360
Symbol 1342 GraphicUsed by:1343
Symbol 1343 MovieClip {Button_downSkin} [Button_downSkin]Uses:1342Used by:1360
Symbol 1344 GraphicUsed by:1345
Symbol 1345 MovieClip {Button_emphasizedSkin} [Button_emphasizedSkin]Uses:1344Used by:1360
Symbol 1346 GraphicUsed by:1347
Symbol 1347 MovieClip {Button_overSkin} [Button_overSkin]Uses:1346Used by:1360
Symbol 1348 GraphicUsed by:1349
Symbol 1349 MovieClip {Button_selectedDisabledSkin} [Button_selectedDisabledSkin]Uses:1348Used by:1360
Symbol 1350 GraphicUsed by:1351
Symbol 1351 MovieClip {Button_selectedDownSkin} [Button_selectedDownSkin]Uses:1350Used by:1360
Symbol 1352 GraphicUsed by:1353
Symbol 1353 MovieClip {Button_selectedOverSkin} [Button_selectedOverSkin]Uses:1352Used by:1360
Symbol 1354 GraphicUsed by:1355
Symbol 1355 MovieClip {Button_selectedUpSkin} [Button_selectedUpSkin]Uses:1354Used by:1360
Symbol 1356 GraphicUsed by:1357
Symbol 1357 MovieClip {Button_upSkin} [Button_upSkin]Uses:1356Used by:1360
Symbol 1358 GraphicUsed by:1359
Symbol 1359 MovieClipUses:1358Used by:1360
Symbol 1360 MovieClip {fl.controls.Button} [fl.controls.Button]Uses:1339 310 1341 1343 1345 1347 1349 1351 1353 1355 1357 1359

Instance Names

"clip"Symbol 17 MovieClip {SponsorIntro} [SponsorIntro] Frame 1Symbol 16 MovieClip {ag_intro_mc} [ag_intro_mc]
"webLinkText"Symbol 38 MovieClip {intro_fla.webLink_7} [intro_fla.webLink_7] Frame 1Symbol 37 Button
"text"Symbol 49 MovieClip {DialogMC} [DialogMC] Frame 1Symbol 48 EditableText
"textField"Symbol 63 MovieClip {menuLib_fla.gameMenuTitle_472} [menuLib_fla.gameMenuTitle_472] Frame 1Symbol 62 EditableText
"title"Symbol 68 MovieClip {gameMenuButton} [gameMenuButton] Frame 1Symbol 63 MovieClip {menuLib_fla.gameMenuTitle_472} [menuLib_fla.gameMenuTitle_472]
"detector"Symbol 68 MovieClip {gameMenuButton} [gameMenuButton] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"title"Symbol 69 MovieClip {skipButton} [skipButton] Frame 1Symbol 63 MovieClip {menuLib_fla.gameMenuTitle_472} [menuLib_fla.gameMenuTitle_472]
"detector"Symbol 69 MovieClip {skipButton} [skipButton] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"pupilLeft"Symbol 129 MovieClip {shoppeEyesMC} [shoppeEyesMC] Frame 1Symbol 121 MovieClip
"pupilRight"Symbol 129 MovieClip {shoppeEyesMC} [shoppeEyesMC] Frame 1Symbol 124 MovieClip
"detector"Symbol 133 MovieClip {shopBuyButton} [shopBuyButton] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"exitCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"shoppeEyesCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 129 MovieClip {shoppeEyesMC} [shoppeEyesMC]
"creditsCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"livesCurCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"undosCurCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"discardsCurCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"previewCurCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"shiftCurCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"livesNextCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"undosNextCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"discardsNextCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"previewNextCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"shiftNextCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"livesCostCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"undosCostCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"discardsCostCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"previewCostCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"shiftCostCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"previewCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 133 MovieClip {shopBuyButton} [shopBuyButton]
"livesNameCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"undosNameCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"discardsNameCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"previewNameCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"shiftNameCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"livesCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 133 MovieClip {shopBuyButton} [shopBuyButton]
"discardsCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 133 MovieClip {shopBuyButton} [shopBuyButton]
"undosCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 133 MovieClip {shopBuyButton} [shopBuyButton]
"shiftCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 133 MovieClip {shopBuyButton} [shopBuyButton]
"textBalloonCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"previewDetectorCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"livesDetectorCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"discardsDetectorCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"undosDetectorCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"shiftDetectorCon"Symbol 155 MovieClip {ShopGameMenu} [ShopGameMenu] Frame 1Symbol 118 MovieClip
"toggledOff"Symbol 165 MovieClip {MusicButton} [MusicButton] Frame 1Symbol 164 MovieClip
"detector"Symbol 165 MovieClip {MusicButton} [MusicButton] Frame 1Symbol 73 MovieClip
"submitCon"Symbol 174 MovieClip {DefaultGameMenu} [DefaultGameMenu] Frame 1Symbol 118 MovieClip
"resetCon"Symbol 174 MovieClip {DefaultGameMenu} [DefaultGameMenu] Frame 1Symbol 118 MovieClip
"howToPlayCon"Symbol 174 MovieClip {DefaultGameMenu} [DefaultGameMenu] Frame 1Symbol 118 MovieClip
"walkthroughCon"Symbol 174 MovieClip {DefaultGameMenu} [DefaultGameMenu] Frame 1Symbol 118 MovieClip
"resumeCon"Symbol 174 MovieClip {DefaultGameMenu} [DefaultGameMenu] Frame 1Symbol 118 MovieClip
"backCon"Symbol 174 MovieClip {DefaultGameMenu} [DefaultGameMenu] Frame 1Symbol 118 MovieClip
"shadow"Symbol 221 MovieClip {harryStoryMC} [harryStoryMC] Frame 1Symbol 193 MovieClip
"beamTest_mc"Symbol 251 MovieClip {menuLib_fla.generalMenuBgTall_210} [menuLib_fla.generalMenuBgTall_210] Frame 1Symbol 226 MovieClip
"beamTest_mc"Symbol 251 MovieClip {menuLib_fla.generalMenuBgTall_210} [menuLib_fla.generalMenuBgTall_210] Frame 1Symbol 226 MovieClip
"beamTest_mc"Symbol 251 MovieClip {menuLib_fla.generalMenuBgTall_210} [menuLib_fla.generalMenuBgTall_210] Frame 1Symbol 226 MovieClip
"beamTest_mc"Symbol 251 MovieClip {menuLib_fla.generalMenuBgTall_210} [menuLib_fla.generalMenuBgTall_210] Frame 1Symbol 226 MovieClip
"highScoreListCon"Symbol 253 MovieClip {highScore3Menu} [highScore3Menu] Frame 1Symbol 118 MovieClip
"backCon"Symbol 253 MovieClip {highScore3Menu} [highScore3Menu] Frame 1Symbol 118 MovieClip
"hardCon"Symbol 253 MovieClip {highScore3Menu} [highScore3Menu] Frame 1Symbol 118 MovieClip
"easyCon"Symbol 253 MovieClip {highScore3Menu} [highScore3Menu] Frame 1Symbol 118 MovieClip
"mediumCon"Symbol 253 MovieClip {highScore3Menu} [highScore3Menu] Frame 1Symbol 118 MovieClip
"closeCon"Symbol 287 MovieClip {HowToPlayInfoWindow} [HowToPlayInfoWindow] Frame 1Symbol 118 MovieClip
"backCon"Symbol 297 MovieClip {gameoverMenu} [gameoverMenu] Frame 1Symbol 118 MovieClip
"nameCon"Symbol 297 MovieClip {gameoverMenu} [gameoverMenu] Frame 1Symbol 118 MovieClip
"scoreCon"Symbol 297 MovieClip {gameoverMenu} [gameoverMenu] Frame 1Symbol 118 MovieClip
"sendCon"Symbol 297 MovieClip {gameoverMenu} [gameoverMenu] Frame 1Symbol 118 MovieClip
"playAgainCon"Symbol 297 MovieClip {gameoverMenu} [gameoverMenu] Frame 1Symbol 118 MovieClip
"background"Symbol 347 MovieClip {BBconsoleMC} [BBconsoleMC] Frame 1Symbol 307 MovieClip
"outputPane"Symbol 347 MovieClip {BBconsoleMC} [BBconsoleMC] Frame 1Symbol 346 MovieClip {fl.controls.TextArea} [fl.controls.TextArea]
"submitCon"Symbol 348 MovieClip {ClassicGameMenu} [ClassicGameMenu] Frame 1Symbol 118 MovieClip
"resetCon"Symbol 348 MovieClip {ClassicGameMenu} [ClassicGameMenu] Frame 1Symbol 118 MovieClip
"howToPlayCon"Symbol 348 MovieClip {ClassicGameMenu} [ClassicGameMenu] Frame 1Symbol 118 MovieClip
"backCon"Symbol 348 MovieClip {ClassicGameMenu} [ClassicGameMenu] Frame 1Symbol 118 MovieClip
"resumeCon"Symbol 348 MovieClip {ClassicGameMenu} [ClassicGameMenu] Frame 1Symbol 118 MovieClip
"base"Symbol 454 MovieClip {menuLib_fla.city1_287} [menuLib_fla.city1_287] Frame 1Symbol 447 MovieClip
"buildings"Symbol 454 MovieClip {menuLib_fla.city1_287} [menuLib_fla.city1_287] Frame 1Symbol 453 MovieClip
"hitBox"Symbol 454 MovieClip {menuLib_fla.city1_287} [menuLib_fla.city1_287] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"base"Symbol 461 MovieClip {menuLib_fla.city2_292} [menuLib_fla.city2_292] Frame 1Symbol 447 MovieClip
"buildings"Symbol 461 MovieClip {menuLib_fla.city2_292} [menuLib_fla.city2_292] Frame 1Symbol 460 MovieClip
"hitBox"Symbol 461 MovieClip {menuLib_fla.city2_292} [menuLib_fla.city2_292] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"base"Symbol 468 MovieClip {menuLib_fla.city3_296} [menuLib_fla.city3_296] Frame 1Symbol 447 MovieClip
"buildings"Symbol 468 MovieClip {menuLib_fla.city3_296} [menuLib_fla.city3_296] Frame 1Symbol 467 MovieClip
"hitBox"Symbol 468 MovieClip {menuLib_fla.city3_296} [menuLib_fla.city3_296] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"base"Symbol 479 MovieClip {menuLib_fla.city4_300} [menuLib_fla.city4_300] Frame 1Symbol 470 MovieClip
"buildings"Symbol 479 MovieClip {menuLib_fla.city4_300} [menuLib_fla.city4_300] Frame 1Symbol 478 MovieClip
"hitBox"Symbol 479 MovieClip {menuLib_fla.city4_300} [menuLib_fla.city4_300] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"base"Symbol 490 MovieClip {menuLib_fla.city5_306} [menuLib_fla.city5_306] Frame 1Symbol 447 MovieClip
"buildings"Symbol 490 MovieClip {menuLib_fla.city5_306} [menuLib_fla.city5_306] Frame 1Symbol 489 MovieClip
"hitBox"Symbol 490 MovieClip {menuLib_fla.city5_306} [menuLib_fla.city5_306] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"base"Symbol 502 MovieClip {menuLib_fla.city6_312} [menuLib_fla.city6_312] Frame 1Symbol 447 MovieClip
"buildings"Symbol 502 MovieClip {menuLib_fla.city6_312} [menuLib_fla.city6_312] Frame 1Symbol 501 MovieClip
"hitBox"Symbol 502 MovieClip {menuLib_fla.city6_312} [menuLib_fla.city6_312] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"base"Symbol 511 MovieClip {menuLib_fla.city8_318} [menuLib_fla.city8_318] Frame 1Symbol 504 MovieClip
"buildings"Symbol 511 MovieClip {menuLib_fla.city8_318} [menuLib_fla.city8_318] Frame 1Symbol 510 MovieClip
"hitBox"Symbol 511 MovieClip {menuLib_fla.city8_318} [menuLib_fla.city8_318] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"base"Symbol 517 MovieClip {menuLib_fla.city9_323} [menuLib_fla.city9_323] Frame 1Symbol 504 MovieClip
"buildings"Symbol 517 MovieClip {menuLib_fla.city9_323} [menuLib_fla.city9_323] Frame 1Symbol 516 MovieClip
"hitBox"Symbol 517 MovieClip {menuLib_fla.city9_323} [menuLib_fla.city9_323] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"base"Symbol 535 MovieClip {menuLib_fla.city10_326} [menuLib_fla.city10_326] Frame 1Symbol 504 MovieClip
"buildings"Symbol 535 MovieClip {menuLib_fla.city10_326} [menuLib_fla.city10_326] Frame 1Symbol 534 MovieClip
"hitBox"Symbol 535 MovieClip {menuLib_fla.city10_326} [menuLib_fla.city10_326] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"base"Symbol 544 MovieClip {menuLib_fla.city11_335} [menuLib_fla.city11_335] Frame 1Symbol 537 MovieClip
"buildings"Symbol 544 MovieClip {menuLib_fla.city11_335} [menuLib_fla.city11_335] Frame 1Symbol 543 MovieClip
"hitBox"Symbol 544 MovieClip {menuLib_fla.city11_335} [menuLib_fla.city11_335] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"base"Symbol 552 MovieClip {menuLib_fla.city12_340} [menuLib_fla.city12_340] Frame 1Symbol 537 MovieClip
"buildings"Symbol 552 MovieClip {menuLib_fla.city12_340} [menuLib_fla.city12_340] Frame 1Symbol 551 MovieClip
"hitBox"Symbol 552 MovieClip {menuLib_fla.city12_340} [menuLib_fla.city12_340] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"base"Symbol 562 MovieClip {menuLib_fla.city7_344} [menuLib_fla.city7_344] Frame 1Symbol 447 MovieClip
"buildings"Symbol 562 MovieClip {menuLib_fla.city7_344} [menuLib_fla.city7_344] Frame 1Symbol 561 MovieClip
"hitBox"Symbol 562 MovieClip {menuLib_fla.city7_344} [menuLib_fla.city7_344] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"base"Symbol 565 MovieClip {menuLib_fla.city14_349} [menuLib_fla.city14_349] Frame 1Symbol 447 MovieClip
"buildings"Symbol 565 MovieClip {menuLib_fla.city14_349} [menuLib_fla.city14_349] Frame 1Symbol 516 MovieClip
"hitBox"Symbol 565 MovieClip {menuLib_fla.city14_349} [menuLib_fla.city14_349] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"base"Symbol 569 MovieClip {menuLib_fla.city13_350} [menuLib_fla.city13_350] Frame 1Symbol 447 MovieClip
"buildings"Symbol 569 MovieClip {menuLib_fla.city13_350} [menuLib_fla.city13_350] Frame 1Symbol 568 MovieClip
"hitBox"Symbol 569 MovieClip {menuLib_fla.city13_350} [menuLib_fla.city13_350] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"base"Symbol 572 MovieClip {menuLib_fla.city15_352} [menuLib_fla.city15_352] Frame 1Symbol 504 MovieClip
"buildings"Symbol 572 MovieClip {menuLib_fla.city15_352} [menuLib_fla.city15_352] Frame 1Symbol 571 MovieClip
"hitBox"Symbol 572 MovieClip {menuLib_fla.city15_352} [menuLib_fla.city15_352] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"base"Symbol 580 MovieClip {menuLib_fla.city16_354} [menuLib_fla.city16_354] Frame 1Symbol 447 MovieClip
"buildings"Symbol 580 MovieClip {menuLib_fla.city16_354} [menuLib_fla.city16_354] Frame 1Symbol 579 MovieClip
"hitBox"Symbol 580 MovieClip {menuLib_fla.city16_354} [menuLib_fla.city16_354] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"base"Symbol 591 MovieClip {menuLib_fla.city17_358} [menuLib_fla.city17_358] Frame 1Symbol 447 MovieClip
"buildings"Symbol 591 MovieClip {menuLib_fla.city17_358} [menuLib_fla.city17_358] Frame 1Symbol 590 MovieClip
"hitBox"Symbol 591 MovieClip {menuLib_fla.city17_358} [menuLib_fla.city17_358] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"base"Symbol 594 MovieClip {menuLib_fla.city18_364} [menuLib_fla.city18_364] Frame 1Symbol 537 MovieClip
"buildings"Symbol 594 MovieClip {menuLib_fla.city18_364} [menuLib_fla.city18_364] Frame 1Symbol 592 MovieClip
"hitBox"Symbol 594 MovieClip {menuLib_fla.city18_364} [menuLib_fla.city18_364] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"base"Symbol 607 MovieClip {menuLib_fla.city19_366} [menuLib_fla.city19_366] Frame 1Symbol 447 MovieClip
"buildings"Symbol 607 MovieClip {menuLib_fla.city19_366} [menuLib_fla.city19_366] Frame 1Symbol 606 MovieClip
"hitBox"Symbol 607 MovieClip {menuLib_fla.city19_366} [menuLib_fla.city19_366] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"base"Symbol 618 MovieClip {menuLib_fla.city20_373} [menuLib_fla.city20_373] Frame 1Symbol 447 MovieClip
"buildings"Symbol 618 MovieClip {menuLib_fla.city20_373} [menuLib_fla.city20_373] Frame 1Symbol 617 MovieClip
"hitBox"Symbol 618 MovieClip {menuLib_fla.city20_373} [menuLib_fla.city20_373] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"base"Symbol 626 MovieClip {menuLib_fla.city23_379} [menuLib_fla.city23_379] Frame 1Symbol 447 MovieClip
"buildings"Symbol 626 MovieClip {menuLib_fla.city23_379} [menuLib_fla.city23_379] Frame 1Symbol 625 MovieClip
"hitBox"Symbol 626 MovieClip {menuLib_fla.city23_379} [menuLib_fla.city23_379] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"base"Symbol 635 MovieClip {menuLib_fla.st_kasteelRots_385} [menuLib_fla.st_kasteelRots_385] Frame 11Symbol 634 MovieClip
"building"Symbol 651 MovieClip {menuLib_fla.st_kasteel_389} [menuLib_fla.st_kasteel_389] Frame 11Symbol 650 MovieClip
"base"Symbol 654 MovieClip {menuLib_fla.city24_383} [menuLib_fla.city24_383] Frame 1Symbol 635 MovieClip {menuLib_fla.st_kasteelRots_385} [menuLib_fla.st_kasteelRots_385]
"buildings"Symbol 654 MovieClip {menuLib_fla.city24_383} [menuLib_fla.city24_383] Frame 1Symbol 651 MovieClip {menuLib_fla.st_kasteel_389} [menuLib_fla.st_kasteel_389]
"hitBox"Symbol 654 MovieClip {menuLib_fla.city24_383} [menuLib_fla.city24_383] Frame 1Symbol 653 MovieClip
"base"Symbol 659 MovieClip {menuLib_fla.city21_397} [menuLib_fla.city21_397] Frame 1Symbol 447 MovieClip
"buildings"Symbol 659 MovieClip {menuLib_fla.city21_397} [menuLib_fla.city21_397] Frame 1Symbol 658 MovieClip
"hitBox"Symbol 659 MovieClip {menuLib_fla.city21_397} [menuLib_fla.city21_397] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"base"Symbol 664 MovieClip {menuLib_fla.city22_400} [menuLib_fla.city22_400] Frame 1Symbol 447 MovieClip
"buildings"Symbol 664 MovieClip {menuLib_fla.city22_400} [menuLib_fla.city22_400] Frame 1Symbol 663 MovieClip
"hitBox"Symbol 664 MovieClip {menuLib_fla.city22_400} [menuLib_fla.city22_400] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"light"Symbol 667 MovieClip {menuLib_fla.foregrounds_403} [menuLib_fla.foregrounds_403] Frame 1Symbol 666 MovieClip
"shadow"Symbol 696 MovieClip {garryStoryMC} [garryStoryMC] Frame 1Symbol 669 MovieClip
"shadow"Symbol 696 MovieClip {garryStoryMC} [garryStoryMC] Frame 94Symbol 693 MovieClip
"shadow"Symbol 696 MovieClip {garryStoryMC} [garryStoryMC] Frame 105Symbol 669 MovieClip
"connection1_2"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 360 MovieClip
"connection2_4"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 362 MovieClip
"connection2_3"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 364 MovieClip
"connection3_5"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 366 MovieClip
"connection4_5"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 368 MovieClip
"connection5_8"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 370 MovieClip
"connection5_6"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 372 MovieClip
"connection8_9"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 374 MovieClip
"connection8_10"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 376 MovieClip
"connection6_7"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 378 MovieClip
"connection10_11"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 380 MovieClip
"connection11_12"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 382 MovieClip
"connection7_12"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 384 MovieClip
"connection12_13"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 386 MovieClip
"connection13_16"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 388 MovieClip
"connection15_17"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 390 MovieClip
"connection14_17"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 392 MovieClip
"connection17_19"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 394 MovieClip
"connection19_20"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 396 MovieClip
"connection19_23"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 398 MovieClip
"connection20_21"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 400 MovieClip
"connection18_21"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 402 MovieClip
"connection17_18"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 404 MovieClip
"connection23_24"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 406 MovieClip
"connection21_22"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 408 MovieClip
"connection22_24"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 410 MovieClip
"connection9_11"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 412 MovieClip
"connection12_14"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 414 MovieClip
"connection14_16"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 416 MovieClip
"connection16_19"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 418 MovieClip
"connection12_15"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 420 MovieClip
"level1"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 454 MovieClip {menuLib_fla.city1_287} [menuLib_fla.city1_287]
"level2"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 461 MovieClip {menuLib_fla.city2_292} [menuLib_fla.city2_292]
"level3"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 468 MovieClip {menuLib_fla.city3_296} [menuLib_fla.city3_296]
"level4"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 479 MovieClip {menuLib_fla.city4_300} [menuLib_fla.city4_300]
"level5"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 490 MovieClip {menuLib_fla.city5_306} [menuLib_fla.city5_306]
"level6"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 502 MovieClip {menuLib_fla.city6_312} [menuLib_fla.city6_312]
"level8"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 511 MovieClip {menuLib_fla.city8_318} [menuLib_fla.city8_318]
"level9"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 517 MovieClip {menuLib_fla.city9_323} [menuLib_fla.city9_323]
"level10"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 535 MovieClip {menuLib_fla.city10_326} [menuLib_fla.city10_326]
"level11"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 544 MovieClip {menuLib_fla.city11_335} [menuLib_fla.city11_335]
"level12"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 552 MovieClip {menuLib_fla.city12_340} [menuLib_fla.city12_340]
"level7"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 562 MovieClip {menuLib_fla.city7_344} [menuLib_fla.city7_344]
"level14"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 565 MovieClip {menuLib_fla.city14_349} [menuLib_fla.city14_349]
"level13"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 569 MovieClip {menuLib_fla.city13_350} [menuLib_fla.city13_350]
"level15"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 572 MovieClip {menuLib_fla.city15_352} [menuLib_fla.city15_352]
"level16"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 580 MovieClip {menuLib_fla.city16_354} [menuLib_fla.city16_354]
"level17"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 591 MovieClip {menuLib_fla.city17_358} [menuLib_fla.city17_358]
"level18"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 594 MovieClip {menuLib_fla.city18_364} [menuLib_fla.city18_364]
"level19"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 607 MovieClip {menuLib_fla.city19_366} [menuLib_fla.city19_366]
"level20"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 618 MovieClip {menuLib_fla.city20_373} [menuLib_fla.city20_373]
"level23"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 626 MovieClip {menuLib_fla.city23_379} [menuLib_fla.city23_379]
"level24"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 654 MovieClip {menuLib_fla.city24_383} [menuLib_fla.city24_383]
"level21"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 659 MovieClip {menuLib_fla.city21_397} [menuLib_fla.city21_397]
"level22"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 664 MovieClip {menuLib_fla.city22_400} [menuLib_fla.city22_400]
"foregrounds"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 667 MovieClip {menuLib_fla.foregrounds_403} [menuLib_fla.foregrounds_403]
"garry"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 696 MovieClip {garryStoryMC} [garryStoryMC]
"zeppelins"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 714 MovieClip
"savedMessage"Symbol 727 MovieClip {levelSelectMap} [levelSelectMap] Frame 1Symbol 722 MovieClip {menuLib_fla.progressSaved_429} [menuLib_fla.progressSaved_429]
"line"Symbol 730 MovieClip {curHeightLine} [curHeightLine] Frame 1Symbol 729 MovieClip
"bg"Symbol 738 MovieClip {tooltip} [tooltip] Frame 1Symbol 735 MovieClip
"textField"Symbol 738 MovieClip {tooltip} [tooltip] Frame 1Symbol 737 EditableText
"levelName"Symbol 745 MovieClip {menuLib_fla.levelSelectMouseoverText_72} [menuLib_fla.levelSelectMouseoverText_72] Frame 1Symbol 741 EditableText
"goals"Symbol 745 MovieClip {menuLib_fla.levelSelectMouseoverText_72} [menuLib_fla.levelSelectMouseoverText_72] Frame 1Symbol 742 EditableText
"goldInfo"Symbol 745 MovieClip {menuLib_fla.levelSelectMouseoverText_72} [menuLib_fla.levelSelectMouseoverText_72] Frame 1Symbol 743 EditableText
"points"Symbol 745 MovieClip {menuLib_fla.levelSelectMouseoverText_72} [menuLib_fla.levelSelectMouseoverText_72] Frame 1Symbol 744 EditableText
"texts"Symbol 746 MovieClip {levelSelectMouseoverMCHeightGoal} [levelSelectMouseoverMCHeightGoal] Frame 1Symbol 745 MovieClip {menuLib_fla.levelSelectMouseoverText_72} [menuLib_fla.levelSelectMouseoverText_72]
"texts"Symbol 750 MovieClip {levelSelectMouseoverMCBrickGoal} [levelSelectMouseoverMCBrickGoal] Frame 1Symbol 745 MovieClip {menuLib_fla.levelSelectMouseoverText_72} [menuLib_fla.levelSelectMouseoverText_72]
"beamTest_mc"Symbol 773 MovieClip {menuLib_fla.generalMenuBg_205} [menuLib_fla.generalMenuBg_205] Frame 1Symbol 226 MovieClip
"beamTest_mc"Symbol 773 MovieClip {menuLib_fla.generalMenuBg_205} [menuLib_fla.generalMenuBg_205] Frame 1Symbol 226 MovieClip
"beamTest_mc"Symbol 773 MovieClip {menuLib_fla.generalMenuBg_205} [menuLib_fla.generalMenuBg_205] Frame 1Symbol 226 MovieClip
"beamTest_mc"Symbol 773 MovieClip {menuLib_fla.generalMenuBg_205} [menuLib_fla.generalMenuBg_205] Frame 1Symbol 226 MovieClip
"detector"Symbol 784 MovieClip {kongregateLink} [kongregateLink] Frame 1Symbol 73 MovieClip
"detector"Symbol 787 MovieClip {menuLib_fla.sobcheckSiteLinkButton_201} [menuLib_fla.sobcheckSiteLinkButton_201] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"detector"Symbol 813 MovieClip {menuLib_fla.negenMeterSiteLinkButton_202} [menuLib_fla.negenMeterSiteLinkButton_202] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"detector"Symbol 819 MovieClip {menuLib_fla.siteLinkButton_203} [menuLib_fla.siteLinkButton_203] Frame 1Symbol 73 MovieClip
"soundCon"Symbol 820 MovieClip {highScoreMenu} [highScoreMenu] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"musicCon"Symbol 820 MovieClip {highScoreMenu} [highScoreMenu] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"backCon"Symbol 820 MovieClip {highScoreMenu} [highScoreMenu] Frame 1Symbol 118 MovieClip
"hardCon"Symbol 820 MovieClip {highScoreMenu} [highScoreMenu] Frame 1Symbol 118 MovieClip
"easyCon"Symbol 820 MovieClip {highScoreMenu} [highScoreMenu] Frame 1Symbol 118 MovieClip
"mediumCon"Symbol 820 MovieClip {highScoreMenu} [highScoreMenu] Frame 1Symbol 118 MovieClip
"toArmorSite"Symbol 820 MovieClip {highScoreMenu} [highScoreMenu] Frame 1Symbol 784 MovieClip {kongregateLink} [kongregateLink]
"toSobchekSite"Symbol 820 MovieClip {highScoreMenu} [highScoreMenu] Frame 1Symbol 787 MovieClip {menuLib_fla.sobcheckSiteLinkButton_201} [menuLib_fla.sobcheckSiteLinkButton_201]
"to9MeterSite"Symbol 820 MovieClip {highScoreMenu} [highScoreMenu] Frame 1Symbol 813 MovieClip {menuLib_fla.negenMeterSiteLinkButton_202} [menuLib_fla.negenMeterSiteLinkButton_202]
"toWBSite"Symbol 820 MovieClip {highScoreMenu} [highScoreMenu] Frame 1Symbol 819 MovieClip {menuLib_fla.siteLinkButton_203} [menuLib_fla.siteLinkButton_203]
"slot1Con"Symbol 826 MovieClip {loadMenu} [loadMenu] Frame 1Symbol 118 MovieClip
"slot3Con"Symbol 826 MovieClip {loadMenu} [loadMenu] Frame 1Symbol 118 MovieClip
"slot2Con"Symbol 826 MovieClip {loadMenu} [loadMenu] Frame 1Symbol 118 MovieClip
"soundCon"Symbol 826 MovieClip {loadMenu} [loadMenu] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"musicCon"Symbol 826 MovieClip {loadMenu} [loadMenu] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"backCon"Symbol 826 MovieClip {loadMenu} [loadMenu] Frame 1Symbol 118 MovieClip
"toArmorSite"Symbol 826 MovieClip {loadMenu} [loadMenu] Frame 1Symbol 784 MovieClip {kongregateLink} [kongregateLink]
"toSobchekSite"Symbol 826 MovieClip {loadMenu} [loadMenu] Frame 1Symbol 787 MovieClip {menuLib_fla.sobcheckSiteLinkButton_201} [menuLib_fla.sobcheckSiteLinkButton_201]
"to9MeterSite"Symbol 826 MovieClip {loadMenu} [loadMenu] Frame 1Symbol 813 MovieClip {menuLib_fla.negenMeterSiteLinkButton_202} [menuLib_fla.negenMeterSiteLinkButton_202]
"toWBSite"Symbol 826 MovieClip {loadMenu} [loadMenu] Frame 1Symbol 819 MovieClip {menuLib_fla.siteLinkButton_203} [menuLib_fla.siteLinkButton_203]
"shadow"Symbol 997 MovieClip {larryStoryMC} [larryStoryMC] Frame 1Symbol 987 MovieClip
"tutorCon"Symbol 1008 MovieClip {ExtraInterface} [ExtraInterface] Frame 1Symbol 997 MovieClip {larryStoryMC} [larryStoryMC]
"soundCon"Symbol 1008 MovieClip {ExtraInterface} [ExtraInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"musicCon"Symbol 1008 MovieClip {ExtraInterface} [ExtraInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"zoomCon"Symbol 1008 MovieClip {ExtraInterface} [ExtraInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"backCon"Symbol 1008 MovieClip {ExtraInterface} [ExtraInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"armorCon"Symbol 1008 MovieClip {ExtraInterface} [ExtraInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"maxHeightCon"Symbol 1008 MovieClip {ExtraInterface} [ExtraInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"curHeightCon"Symbol 1008 MovieClip {ExtraInterface} [ExtraInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"nextBlock1Con"Symbol 1008 MovieClip {ExtraInterface} [ExtraInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"nextBlock2Con"Symbol 1008 MovieClip {ExtraInterface} [ExtraInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"nextBlock3Con"Symbol 1008 MovieClip {ExtraInterface} [ExtraInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"nextBlock4Con"Symbol 1008 MovieClip {ExtraInterface} [ExtraInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"nextBlock5Con"Symbol 1008 MovieClip {ExtraInterface} [ExtraInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"blocksCon"Symbol 1008 MovieClip {ExtraInterface} [ExtraInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"currentBricksCon"Symbol 1008 MovieClip {ExtraInterface} [ExtraInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"textBalloonCon"Symbol 1008 MovieClip {ExtraInterface} [ExtraInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"discardsDetectorCon"Symbol 1008 MovieClip {ExtraInterface} [ExtraInterface] Frame 1Symbol 118 MovieClip
"shiftMoveDetectorCon"Symbol 1008 MovieClip {ExtraInterface} [ExtraInterface] Frame 1Symbol 118 MovieClip
"undosDetectorCon"Symbol 1008 MovieClip {ExtraInterface} [ExtraInterface] Frame 1Symbol 118 MovieClip
"livesDetectorCon"Symbol 1008 MovieClip {ExtraInterface} [ExtraInterface] Frame 1Symbol 118 MovieClip
"blocksDetectorCon"Symbol 1008 MovieClip {ExtraInterface} [ExtraInterface] Frame 1Symbol 118 MovieClip
"currentBricksDetectorCon"Symbol 1008 MovieClip {ExtraInterface} [ExtraInterface] Frame 1Symbol 118 MovieClip
"highScoreListCon"Symbol 1010 MovieClip {highScore1Menu} [highScore1Menu] Frame 1Symbol 118 MovieClip
"backCon"Symbol 1010 MovieClip {highScore1Menu} [highScore1Menu] Frame 1Symbol 118 MovieClip
"hardCon"Symbol 1010 MovieClip {highScore1Menu} [highScore1Menu] Frame 1Symbol 118 MovieClip
"easyCon"Symbol 1010 MovieClip {highScore1Menu} [highScore1Menu] Frame 1Symbol 118 MovieClip
"mediumCon"Symbol 1010 MovieClip {highScore1Menu} [highScore1Menu] Frame 1Symbol 118 MovieClip
"detector"Symbol 1013 MovieClip {mainMenuButton} [mainMenuButton] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"disabled"Symbol 1019 MovieClip {shiftMoveIndicator} [shiftMoveIndicator] Frame 1Symbol 1018 MovieClip
"detector"Symbol 1026 MovieClip {ShoppeButton} [ShoppeButton] Frame 1Symbol 73 MovieClip
"levelSelectMapCon"Symbol 1027 MovieClip {levelSelectMenu} [levelSelectMenu] Frame 1Symbol 118 MovieClip
"soundCon"Symbol 1027 MovieClip {levelSelectMenu} [levelSelectMenu] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"musicCon"Symbol 1027 MovieClip {levelSelectMenu} [levelSelectMenu] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"backCon"Symbol 1027 MovieClip {levelSelectMenu} [levelSelectMenu] Frame 1Symbol 1013 MovieClip {mainMenuButton} [mainMenuButton]
"discardsStatusCon"Symbol 1027 MovieClip {levelSelectMenu} [levelSelectMenu] Frame 1Symbol 118 MovieClip
"undosStatusCon"Symbol 1027 MovieClip {levelSelectMenu} [levelSelectMenu] Frame 1Symbol 118 MovieClip
"livesStatusCon"Symbol 1027 MovieClip {levelSelectMenu} [levelSelectMenu] Frame 1Symbol 118 MovieClip
"previewsStatusCon"Symbol 1027 MovieClip {levelSelectMenu} [levelSelectMenu] Frame 1Symbol 118 MovieClip
"armorCon"Symbol 1027 MovieClip {levelSelectMenu} [levelSelectMenu] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"discardsDetectorCon"Symbol 1027 MovieClip {levelSelectMenu} [levelSelectMenu] Frame 1Symbol 118 MovieClip
"undosDetectorCon"Symbol 1027 MovieClip {levelSelectMenu} [levelSelectMenu] Frame 1Symbol 118 MovieClip
"livesDetectorCon"Symbol 1027 MovieClip {levelSelectMenu} [levelSelectMenu] Frame 1Symbol 118 MovieClip
"previewsDetectorCon"Symbol 1027 MovieClip {levelSelectMenu} [levelSelectMenu] Frame 1Symbol 118 MovieClip
"goldDetectorCon"Symbol 1027 MovieClip {levelSelectMenu} [levelSelectMenu] Frame 1Symbol 118 MovieClip
"shiftMoveDetectorCon"Symbol 1027 MovieClip {levelSelectMenu} [levelSelectMenu] Frame 1Symbol 118 MovieClip
"goldStatusCon"Symbol 1027 MovieClip {levelSelectMenu} [levelSelectMenu] Frame 1Symbol 1014 EditableText
"completeStatusCon"Symbol 1027 MovieClip {levelSelectMenu} [levelSelectMenu] Frame 1Symbol 1015 EditableText
"citiesStatusCon"Symbol 1027 MovieClip {levelSelectMenu} [levelSelectMenu] Frame 1Symbol 1016 EditableText
"shiftMoveStatusCon"Symbol 1027 MovieClip {levelSelectMenu} [levelSelectMenu] Frame 1Symbol 1019 MovieClip {shiftMoveIndicator} [shiftMoveIndicator]
"shoppeButton"Symbol 1027 MovieClip {levelSelectMenu} [levelSelectMenu] Frame 1Symbol 1026 MovieClip {ShoppeButton} [ShoppeButton]
"nameCon"Symbol 1033 MovieClip {saveNameMenu} [saveNameMenu] Frame 1Symbol 118 MovieClip
"sendCon"Symbol 1033 MovieClip {saveNameMenu} [saveNameMenu] Frame 1Symbol 118 MovieClip
"soundCon"Symbol 1033 MovieClip {saveNameMenu} [saveNameMenu] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"musicCon"Symbol 1033 MovieClip {saveNameMenu} [saveNameMenu] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"backCon"Symbol 1033 MovieClip {saveNameMenu} [saveNameMenu] Frame 1Symbol 118 MovieClip
"toArmorSite"Symbol 1033 MovieClip {saveNameMenu} [saveNameMenu] Frame 1Symbol 784 MovieClip {kongregateLink} [kongregateLink]
"toSobchekSite"Symbol 1033 MovieClip {saveNameMenu} [saveNameMenu] Frame 1Symbol 787 MovieClip {menuLib_fla.sobcheckSiteLinkButton_201} [menuLib_fla.sobcheckSiteLinkButton_201]
"to9MeterSite"Symbol 1033 MovieClip {saveNameMenu} [saveNameMenu] Frame 1Symbol 813 MovieClip {menuLib_fla.negenMeterSiteLinkButton_202} [menuLib_fla.negenMeterSiteLinkButton_202]
"toWBSite"Symbol 1033 MovieClip {saveNameMenu} [saveNameMenu] Frame 1Symbol 819 MovieClip {menuLib_fla.siteLinkButton_203} [menuLib_fla.siteLinkButton_203]
"textField"Symbol 1039 MovieClip {menuLib_fla.menuTitle_452} [menuLib_fla.menuTitle_452] Frame 1Symbol 1038 EditableText
"title"Symbol 1040 MovieClip {dialogScrollButton} [dialogScrollButton] Frame 1Symbol 1039 MovieClip {menuLib_fla.menuTitle_452} [menuLib_fla.menuTitle_452]
"detector"Symbol 1040 MovieClip {dialogScrollButton} [dialogScrollButton] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"textBalloon"Symbol 1089 MovieClip {storyBgMC} [storyBgMC] Frame 1Symbol 1084 MovieClip
"storyText"Symbol 1089 MovieClip {storyBgMC} [storyBgMC] Frame 1Symbol 1086 EditableText
"pressAnyKey"Symbol 1089 MovieClip {storyBgMC} [storyBgMC] Frame 1Symbol 1087 EditableText
"charName"Symbol 1089 MovieClip {storyBgMC} [storyBgMC] Frame 1Symbol 1088 EditableText
"texts"Symbol 1090 MovieClip {levelSelectMouseoverMCPuzzle} [levelSelectMouseoverMCPuzzle] Frame 1Symbol 745 MovieClip {menuLib_fla.levelSelectMouseoverText_72} [menuLib_fla.levelSelectMouseoverText_72]
"hitBox"Symbol 1105 MovieClip {BBplayer1MC} [BBplayer1MC] Frame 1Symbol 1098 MovieClip
"highScoreListCon"Symbol 1107 MovieClip {showscoreMenu} [showscoreMenu] Frame 1Symbol 118 MovieClip
"scoreCon"Symbol 1107 MovieClip {showscoreMenu} [showscoreMenu] Frame 1Symbol 118 MovieClip
"playAgainCon"Symbol 1107 MovieClip {showscoreMenu} [showscoreMenu] Frame 1Symbol 118 MovieClip
"backCon"Symbol 1107 MovieClip {showscoreMenu} [showscoreMenu] Frame 1Symbol 118 MovieClip
"backCon"Symbol 1120 MovieClip {submitscoreMenu} [submitscoreMenu] Frame 1Symbol 118 MovieClip
"nameCon"Symbol 1120 MovieClip {submitscoreMenu} [submitscoreMenu] Frame 1Symbol 118 MovieClip
"sendCon"Symbol 1120 MovieClip {submitscoreMenu} [submitscoreMenu] Frame 1Symbol 118 MovieClip
"playAgainCon"Symbol 1120 MovieClip {submitscoreMenu} [submitscoreMenu] Frame 1Symbol 118 MovieClip
"scoreCon"Symbol 1120 MovieClip {submitscoreMenu} [submitscoreMenu] Frame 1Symbol 118 MovieClip
"detector"Symbol 1171 MovieClip {OpenMenuButton} [OpenMenuButton] Frame 1Symbol 73 MovieClip
"title"Symbol 1175 MovieClip {scrollButton} [scrollButton] Frame 1Symbol 1039 MovieClip {menuLib_fla.menuTitle_452} [menuLib_fla.menuTitle_452]
"detector"Symbol 1175 MovieClip {scrollButton} [scrollButton] Frame 1Symbol 65 MovieClip {invisibleThing} [invisibleThing]
"line"Symbol 1181 MovieClip {maxHeightLine} [maxHeightLine] Frame 1Symbol 1180 MovieClip
"tutorCon"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 997 MovieClip {larryStoryMC} [larryStoryMC]
"shiftMoveCon"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 1019 MovieClip {shiftMoveIndicator} [shiftMoveIndicator]
"soundCon"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"musicCon"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"zoomCon"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"backCon"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"armorCon"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"maxHeightCon"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"curHeightCon"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"nextBlock1Con"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"nextBlock2Con"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"nextBlock3Con"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"nextBlock4Con"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"nextBlock5Con"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"objectivesTextCon"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"blocksCon"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"currentBricksCon"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"livesLeftCon"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"discardsLeftCon"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"undosLeftCon"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"textBalloonCon"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"discardsDetectorCon"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 118 MovieClip
"shiftMoveDetectorCon"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 118 MovieClip
"undosDetectorCon"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 118 MovieClip
"livesDetectorCon"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 118 MovieClip
"blocksDetectorCon"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 118 MovieClip
"currentBricksDetectorCon"Symbol 1187 MovieClip {PlayInterface} [PlayInterface] Frame 1Symbol 118 MovieClip
"detector"Symbol 1190 MovieClip {ZoomButton} [ZoomButton] Frame 1Symbol 73 MovieClip
"textBalloon"Symbol 1204 MovieClip {storyFinalBgMC} [storyFinalBgMC] Frame 1Symbol 1084 MovieClip
"storyText"Symbol 1204 MovieClip {storyFinalBgMC} [storyFinalBgMC] Frame 1Symbol 1086 EditableText
"pressAnyKey"Symbol 1204 MovieClip {storyFinalBgMC} [storyFinalBgMC] Frame 1Symbol 1087 EditableText
"charName"Symbol 1204 MovieClip {storyFinalBgMC} [storyFinalBgMC] Frame 1Symbol 1088 EditableText
"beamTest_mc"Symbol 1210 MovieClip {menuLib_fla.mainMenuBG_183} [menuLib_fla.mainMenuBG_183] Frame 1Symbol 226 MovieClip
"beamTest_mc"Symbol 1210 MovieClip {menuLib_fla.mainMenuBG_183} [menuLib_fla.mainMenuBG_183] Frame 1Symbol 226 MovieClip
"beamTest_mc"Symbol 1210 MovieClip {menuLib_fla.mainMenuBG_183} [menuLib_fla.mainMenuBG_183] Frame 1Symbol 226 MovieClip
"beamTest_mc"Symbol 1210 MovieClip {menuLib_fla.mainMenuBG_183} [menuLib_fla.mainMenuBG_183] Frame 1Symbol 226 MovieClip
"toArmorSite"Symbol 1211 MovieClip {mainMenu} [mainMenu] Frame 1Symbol 784 MovieClip {kongregateLink} [kongregateLink]
"toSobchekSite"Symbol 1211 MovieClip {mainMenu} [mainMenu] Frame 1Symbol 787 MovieClip {menuLib_fla.sobcheckSiteLinkButton_201} [menuLib_fla.sobcheckSiteLinkButton_201]
"to9MeterSite"Symbol 1211 MovieClip {mainMenu} [mainMenu] Frame 1Symbol 813 MovieClip {menuLib_fla.negenMeterSiteLinkButton_202} [menuLib_fla.negenMeterSiteLinkButton_202]
"toWBSite"Symbol 1211 MovieClip {mainMenu} [mainMenu] Frame 1Symbol 819 MovieClip {menuLib_fla.siteLinkButton_203} [menuLib_fla.siteLinkButton_203]
"newCon"Symbol 1211 MovieClip {mainMenu} [mainMenu] Frame 1Symbol 118 MovieClip
"extraCon"Symbol 1211 MovieClip {mainMenu} [mainMenu] Frame 1Symbol 118 MovieClip
"soundCon"Symbol 1211 MovieClip {mainMenu} [mainMenu] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"musicCon"Symbol 1211 MovieClip {mainMenu} [mainMenu] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"howToPlayCon"Symbol 1211 MovieClip {mainMenu} [mainMenu] Frame 1Symbol 118 MovieClip
"loadCon"Symbol 1211 MovieClip {mainMenu} [mainMenu] Frame 1Symbol 118 MovieClip
"clearFlookieCon"Symbol 1211 MovieClip {mainMenu} [mainMenu] Frame 1Symbol 118 MovieClip
"playMoreGamesCon"Symbol 1211 MovieClip {mainMenu} [mainMenu] Frame 1Symbol 118 MovieClip
"modal_bg"Symbol 1216 MovieClip {modalLayer} [modalLayer] Frame 1Symbol 1215 Button
"textField"Symbol 1218 MovieClip {brickWorldLib_fla.messageAreaTextfield_33} [brickWorldLib_fla.messageAreaTextfield_33] Frame 1Symbol 1217 EditableText
"textMC"Symbol 1219 MovieClip {messageAreaMC} [messageAreaMC] Frame 1Symbol 1218 MovieClip {brickWorldLib_fla.messageAreaTextfield_33} [brickWorldLib_fla.messageAreaTextfield_33]
"textF"Symbol 1224 MovieClip {maxHeightLabel} [maxHeightLabel] Frame 1Symbol 1223 EditableText
"texts"Symbol 1230 MovieClip {levelSelectMouseoverMCNoDrop} [levelSelectMouseoverMCNoDrop] Frame 1Symbol 745 MovieClip {menuLib_fla.levelSelectMouseoverText_72} [menuLib_fla.levelSelectMouseoverText_72]
"toggledOff"Symbol 1233 MovieClip {SoundButton} [SoundButton] Frame 1Symbol 164 MovieClip
"detector"Symbol 1233 MovieClip {SoundButton} [SoundButton] Frame 1Symbol 73 MovieClip
"easyCon"Symbol 1236 MovieClip {extraMenu} [extraMenu] Frame 1Symbol 118 MovieClip
"hardCon"Symbol 1236 MovieClip {extraMenu} [extraMenu] Frame 1Symbol 118 MovieClip
"mediumCon"Symbol 1236 MovieClip {extraMenu} [extraMenu] Frame 1Symbol 118 MovieClip
"highscoreCon"Symbol 1236 MovieClip {extraMenu} [extraMenu] Frame 1Symbol 118 MovieClip
"soundCon"Symbol 1236 MovieClip {extraMenu} [extraMenu] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"musicCon"Symbol 1236 MovieClip {extraMenu} [extraMenu] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"backCon"Symbol 1236 MovieClip {extraMenu} [extraMenu] Frame 1Symbol 118 MovieClip
"toArmorSite"Symbol 1236 MovieClip {extraMenu} [extraMenu] Frame 1Symbol 784 MovieClip {kongregateLink} [kongregateLink]
"toSobchekSite"Symbol 1236 MovieClip {extraMenu} [extraMenu] Frame 1Symbol 787 MovieClip {menuLib_fla.sobcheckSiteLinkButton_201} [menuLib_fla.sobcheckSiteLinkButton_201]
"to9MeterSite"Symbol 1236 MovieClip {extraMenu} [extraMenu] Frame 1Symbol 813 MovieClip {menuLib_fla.negenMeterSiteLinkButton_202} [menuLib_fla.negenMeterSiteLinkButton_202]
"toWBSite"Symbol 1236 MovieClip {extraMenu} [extraMenu] Frame 1Symbol 819 MovieClip {menuLib_fla.siteLinkButton_203} [menuLib_fla.siteLinkButton_203]
"slot1Con"Symbol 1253 MovieClip {saveMenu} [saveMenu] Frame 1Symbol 118 MovieClip
"slot3Con"Symbol 1253 MovieClip {saveMenu} [saveMenu] Frame 1Symbol 118 MovieClip
"slot2Con"Symbol 1253 MovieClip {saveMenu} [saveMenu] Frame 1Symbol 118 MovieClip
"backCon"Symbol 1253 MovieClip {saveMenu} [saveMenu] Frame 1Symbol 118 MovieClip
"soundCon"Symbol 1253 MovieClip {saveMenu} [saveMenu] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"musicCon"Symbol 1253 MovieClip {saveMenu} [saveMenu] Frame 1Symbol 774 MovieClip {interfaceItemCon} [interfaceItemCon]
"toArmorSite"Symbol 1253 MovieClip {saveMenu} [saveMenu] Frame 1Symbol 784 MovieClip {kongregateLink} [kongregateLink]
"toSobchekSite"Symbol 1253 MovieClip {saveMenu} [saveMenu] Frame 1Symbol 787 MovieClip {menuLib_fla.sobcheckSiteLinkButton_201} [menuLib_fla.sobcheckSiteLinkButton_201]
"to9MeterSite"Symbol 1253 MovieClip {saveMenu} [saveMenu] Frame 1Symbol 813 MovieClip {menuLib_fla.negenMeterSiteLinkButton_202} [menuLib_fla.negenMeterSiteLinkButton_202]
"toWBSite"Symbol 1253 MovieClip {saveMenu} [saveMenu] Frame 1Symbol 819 MovieClip {menuLib_fla.siteLinkButton_203} [menuLib_fla.siteLinkButton_203]
"toArmorSite"Symbol 1266 MovieClip {menuLib_fla.creditsText_49} [menuLib_fla.creditsText_49] Frame 1Symbol 784 MovieClip {kongregateLink} [kongregateLink]
"bg"Symbol 1267 MovieClip {creditsBgMC} [creditsBgMC] Frame 1Symbol 1256 MovieClip
"shoppeEyesCon"Symbol 1267 MovieClip {creditsBgMC} [creditsBgMC] Frame 1Symbol 129 MovieClip {shoppeEyesMC} [shoppeEyesMC]
"creditsText"Symbol 1267 MovieClip {creditsBgMC} [creditsBgMC] Frame 1Symbol 1266 MovieClip {menuLib_fla.creditsText_49} [menuLib_fla.creditsText_49]
"detector"Symbol 1273 MovieClip {ArmorMiniButton} [ArmorMiniButton] Frame 1Symbol 73 MovieClip
"highScoreListCon"Symbol 1275 MovieClip {highScore2Menu} [highScore2Menu] Frame 1Symbol 118 MovieClip
"backCon"Symbol 1275 MovieClip {highScore2Menu} [highScore2Menu] Frame 1Symbol 118 MovieClip
"hardCon"Symbol 1275 MovieClip {highScore2Menu} [highScore2Menu] Frame 1Symbol 118 MovieClip
"easyCon"Symbol 1275 MovieClip {highScore2Menu} [highScore2Menu] Frame 1Symbol 118 MovieClip
"mediumCon"Symbol 1275 MovieClip {highScore2Menu} [highScore2Menu] Frame 1Symbol 118 MovieClip

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1458 bytes "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description rdf:about='' xmlns ..."
ScriptLimits (65)Timeline Frame 1MaxRecursionDepth: 1000, ScriptTimeout: 60 seconds
ExportAssets (56)Timeline Frame 1Symbol 17 as "SponsorIntro"
ExportAssets (56)Timeline Frame 1Symbol 23 as "loadBar"
ExportAssets (56)Timeline Frame 1Symbol 16 as "ag_intro_mc"
ExportAssets (56)Timeline Frame 2Symbol 24 as "com.kongregate.as3.client.KongregateAPI"
ExportAssets (56)Timeline Frame 2Symbol 25 as "mochi"
ExportAssets (56)Timeline Frame 2Symbol 39 as "load"
ExportAssets (56)Timeline Frame 2Symbol 38 as "intro_fla.webLink_7"
ExportAssets (56)Timeline Frame 2Symbol 49 as "DialogMC"
ExportAssets (56)Timeline Frame 2Symbol 50 as "cash"
ExportAssets (56)Timeline Frame 2Symbol 53 as "Pento3"
ExportAssets (56)Timeline Frame 2Symbol 54 as "popSound"
ExportAssets (56)Timeline Frame 2Symbol 56 as "pausedMessageBG"
ExportAssets (56)Timeline Frame 2Symbol 57 as "dropping_1"
ExportAssets (56)Timeline Frame 2Symbol 59 as "highscoreHighlight"
ExportAssets (56)Timeline Frame 2Symbol 60 as "filler3ab"
ExportAssets (56)Timeline Frame 2Symbol 68 as "gameMenuButton"
ExportAssets (56)Timeline Frame 2Symbol 69 as "skipButton"
ExportAssets (56)Timeline Frame 2Symbol 72 as "Tetro_T"
ExportAssets (56)Timeline Frame 2Symbol 74 as "modalLayerClose_btn"
ExportAssets (56)Timeline Frame 2Symbol 155 as "ShopGameMenu"
ExportAssets (56)Timeline Frame 2Symbol 158 as "Pento9"
ExportAssets (56)Timeline Frame 2Symbol 165 as "MusicButton"
ExportAssets (56)Timeline Frame 2Symbol 174 as "DefaultGameMenu"
ExportAssets (56)Timeline Frame 2Symbol 221 as "harryStoryMC"
ExportAssets (56)Timeline Frame 2Symbol 253 as "highScore3Menu"
ExportAssets (56)Timeline Frame 2Symbol 256 as "Tetro_I"
ExportAssets (56)Timeline Frame 2Symbol 257 as "loop1"
ExportAssets (56)Timeline Frame 2Symbol 258 as "loop2"
ExportAssets (56)Timeline Frame 2Symbol 261 as "Pento13"
ExportAssets (56)Timeline Frame 2Symbol 262 as "dropping_2"
ExportAssets (56)Timeline Frame 2Symbol 263 as "stone1a"
ExportAssets (56)Timeline Frame 2Symbol 287 as "HowToPlayInfoWindow"
ExportAssets (56)Timeline Frame 2Symbol 290 as "Tetro_J"
ExportAssets (56)Timeline Frame 2Symbol 297 as "gameoverMenu"
ExportAssets (56)Timeline Frame 2Symbol 300 as "Pento14"
ExportAssets (56)Timeline Frame 2Symbol 305 as "Ground"
ExportAssets (56)Timeline Frame 2Symbol 347 as "BBconsoleMC"
ExportAssets (56)Timeline Frame 2Symbol 348 as "ClassicGameMenu"
ExportAssets (56)Timeline Frame 2Symbol 349 as "applause3a"
ExportAssets (56)Timeline Frame 2Symbol 352 as "mistGenerationParticles"
ExportAssets (56)Timeline Frame 2Symbol 727 as "levelSelectMap"
ExportAssets (56)Timeline Frame 2Symbol 730 as "curHeightLine"
ExportAssets (56)Timeline Frame 2Symbol 733 as "Hexo1"
ExportAssets (56)Timeline Frame 2Symbol 65 as "invisibleThing"
ExportAssets (56)Timeline Frame 2Symbol 738 as "tooltip"
ExportAssets (56)Timeline Frame 2Symbol 746 as "levelSelectMouseoverMCHeightGoal"
ExportAssets (56)Timeline Frame 2Symbol 749 as "Hexo4"
ExportAssets (56)Timeline Frame 2Symbol 750 as "levelSelectMouseoverMCBrickGoal"
ExportAssets (56)Timeline Frame 2Symbol 754 as "pausedMessageMC"
ExportAssets (56)Timeline Frame 2Symbol 759 as "grid"
ExportAssets (56)Timeline Frame 2Symbol 761 as "textBalloonIngameMC"
ExportAssets (56)Timeline Frame 2Symbol 820 as "highScoreMenu"
ExportAssets (56)Timeline Frame 2Symbol 822 as "BBinputFieldErrorMC"
ExportAssets (56)Timeline Frame 2Symbol 826 as "loadMenu"
ExportAssets (56)Timeline Frame 2Symbol 1008 as "ExtraInterface"
ExportAssets (56)Timeline Frame 2Symbol 1010 as "highScore1Menu"
ExportAssets (56)Timeline Frame 2Symbol 1027 as "levelSelectMenu"
ExportAssets (56)Timeline Frame 2Symbol 1030 as "Tetro_O"
ExportAssets (56)Timeline Frame 2Symbol 1033 as "saveNameMenu"
ExportAssets (56)Timeline Frame 2Symbol 1034 as "loop3"
ExportAssets (56)Timeline Frame 2Symbol 1037 as "Tetro_Z"
ExportAssets (56)Timeline Frame 2Symbol 1040 as "dialogScrollButton"
ExportAssets (56)Timeline Frame 2Symbol 1089 as "storyBgMC"
ExportAssets (56)Timeline Frame 2Symbol 1090 as "levelSelectMouseoverMCPuzzle"
ExportAssets (56)Timeline Frame 2Symbol 1093 as "Pento4"
ExportAssets (56)Timeline Frame 2Symbol 1096 as "loadSpinner"
ExportAssets (56)Timeline Frame 2Symbol 1105 as "BBplayer1MC"
ExportAssets (56)Timeline Frame 2Symbol 1107 as "showscoreMenu"
ExportAssets (56)Timeline Frame 2Symbol 1110 as "Pento1"
ExportAssets (56)Timeline Frame 2Symbol 1113 as "Pento2"
ExportAssets (56)Timeline Frame 2Symbol 1026 as "ShoppeButton"
ExportAssets (56)Timeline Frame 2Symbol 1116 as "Hexo2"
ExportAssets (56)Timeline Frame 2Symbol 1118 as "upArrow"
ExportAssets (56)Timeline Frame 2Symbol 1119 as "filler1"
ExportAssets (56)Timeline Frame 2Symbol 1120 as "submitscoreMenu"
ExportAssets (56)Timeline Frame 2Symbol 1121 as "filler2"
ExportAssets (56)Timeline Frame 2Symbol 1159 as "brickIntro"
ExportAssets (56)Timeline Frame 2Symbol 1160 as "filler3b"
ExportAssets (56)Timeline Frame 2Symbol 1019 as "shiftMoveIndicator"
ExportAssets (56)Timeline Frame 2Symbol 1163 as "Pento6"
ExportAssets (56)Timeline Frame 2Symbol 1164 as "loop5"
ExportAssets (56)Timeline Frame 2Symbol 1165 as "filler3a"
ExportAssets (56)Timeline Frame 2Symbol 1167 as "textBalloonMC"
ExportAssets (56)Timeline Frame 2Symbol 1168 as "loop4"
ExportAssets (56)Timeline Frame 2Symbol 1171 as "OpenMenuButton"
ExportAssets (56)Timeline Frame 2Symbol 1174 as "Pento5"
ExportAssets (56)Timeline Frame 2Symbol 1175 as "scrollButton"
ExportAssets (56)Timeline Frame 2Symbol 1178 as "Pento10"
ExportAssets (56)Timeline Frame 2Symbol 1181 as "maxHeightLine"
ExportAssets (56)Timeline Frame 2Symbol 1184 as "mainBackground_mc"
ExportAssets (56)Timeline Frame 2Symbol 1187 as "PlayInterface"
ExportAssets (56)Timeline Frame 2Symbol 1190 as "ZoomButton"
ExportAssets (56)Timeline Frame 2Symbol 1191 as "sound16"
ExportAssets (56)Timeline Frame 2Symbol 1194 as "Hexo3"
ExportAssets (56)Timeline Frame 2Symbol 1195 as "dropping_3"
ExportAssets (56)Timeline Frame 2Symbol 1204 as "storyFinalBgMC"
ExportAssets (56)Timeline Frame 2Symbol 997 as "larryStoryMC"
ExportAssets (56)Timeline Frame 2Symbol 1013 as "mainMenuButton"
ExportAssets (56)Timeline Frame 2Symbol 1211 as "mainMenu"
ExportAssets (56)Timeline Frame 2Symbol 1212 as "filler1and2"
ExportAssets (56)Timeline Frame 2Symbol 1213 as "loop6thema2"
ExportAssets (56)Timeline Frame 2Symbol 1216 as "modalLayer"
ExportAssets (56)Timeline Frame 2Symbol 129 as "shoppeEyesMC"
ExportAssets (56)Timeline Frame 2Symbol 1219 as "messageAreaMC"
ExportAssets (56)Timeline Frame 2Symbol 1221 as "mistSourceMC"
ExportAssets (56)Timeline Frame 2Symbol 1224 as "maxHeightLabel"
ExportAssets (56)Timeline Frame 2Symbol 1227 as "Pento8"
ExportAssets (56)Timeline Frame 2Symbol 1229 as "circleMC"
ExportAssets (56)Timeline Frame 2Symbol 1230 as "levelSelectMouseoverMCNoDrop"
ExportAssets (56)Timeline Frame 2Symbol 1233 as "SoundButton"
ExportAssets (56)Timeline Frame 2Symbol 1236 as "extraMenu"
ExportAssets (56)Timeline Frame 2Symbol 1239 as "Pento7"
ExportAssets (56)Timeline Frame 2Symbol 1242 as "Pento12"
ExportAssets (56)Timeline Frame 2Symbol 1245 as "Tetro_S"
ExportAssets (56)Timeline Frame 2Symbol 133 as "shopBuyButton"
ExportAssets (56)Timeline Frame 2Symbol 696 as "garryStoryMC"
ExportAssets (56)Timeline Frame 2Symbol 1248 as "Pento11"
ExportAssets (56)Timeline Frame 2Symbol 1250 as "bonusMC"
ExportAssets (56)Timeline Frame 2Symbol 1253 as "saveMenu"
ExportAssets (56)Timeline Frame 2Symbol 1267 as "creditsBgMC"
ExportAssets (56)Timeline Frame 2Symbol 1270 as "Tetro_L"
ExportAssets (56)Timeline Frame 2Symbol 1273 as "ArmorMiniButton"
ExportAssets (56)Timeline Frame 2Symbol 1275 as "highScore2Menu"
ExportAssets (56)Timeline Frame 2Symbol 1276 as "loop6thema1"
ExportAssets (56)Timeline Frame 2Symbol 63 as "menuLib_fla.gameMenuTitle_472"
ExportAssets (56)Timeline Frame 2Symbol 251 as "menuLib_fla.generalMenuBgTall_210"
ExportAssets (56)Timeline Frame 2Symbol 346 as "fl.controls.TextArea"
ExportAssets (56)Timeline Frame 2Symbol 607 as "menuLib_fla.city19_366"
ExportAssets (56)Timeline Frame 2Symbol 461 as "menuLib_fla.city2_292"
ExportAssets (56)Timeline Frame 2Symbol 722 as "menuLib_fla.progressSaved_429"
ExportAssets (56)Timeline Frame 2Symbol 468 as "menuLib_fla.city3_296"
ExportAssets (56)Timeline Frame 2Symbol 562 as "menuLib_fla.city7_344"
ExportAssets (56)Timeline Frame 2Symbol 569 as "menuLib_fla.city13_350"
ExportAssets (56)Timeline Frame 2Symbol 544 as "menuLib_fla.city11_335"
ExportAssets (56)Timeline Frame 2Symbol 552 as "menuLib_fla.city12_340"
ExportAssets (56)Timeline Frame 2Symbol 454 as "menuLib_fla.city1_287"
ExportAssets (56)Timeline Frame 2Symbol 659 as "menuLib_fla.city21_397"
ExportAssets (56)Timeline Frame 2Symbol 626 as "menuLib_fla.city23_379"
ExportAssets (56)Timeline Frame 2Symbol 490 as "menuLib_fla.city5_306"
ExportAssets (56)Timeline Frame 2Symbol 667 as "menuLib_fla.foregrounds_403"
ExportAssets (56)Timeline Frame 2Symbol 594 as "menuLib_fla.city18_364"
ExportAssets (56)Timeline Frame 2Symbol 565 as "menuLib_fla.city14_349"
ExportAssets (56)Timeline Frame 2Symbol 535 as "menuLib_fla.city10_326"
ExportAssets (56)Timeline Frame 2Symbol 572 as "menuLib_fla.city15_352"
ExportAssets (56)Timeline Frame 2Symbol 654 as "menuLib_fla.city24_383"
ExportAssets (56)Timeline Frame 2Symbol 618 as "menuLib_fla.city20_373"
ExportAssets (56)Timeline Frame 2Symbol 517 as "menuLib_fla.city9_323"
ExportAssets (56)Timeline Frame 2Symbol 580 as "menuLib_fla.city16_354"
ExportAssets (56)Timeline Frame 2Symbol 479 as "menuLib_fla.city4_300"
ExportAssets (56)Timeline Frame 2Symbol 664 as "menuLib_fla.city22_400"
ExportAssets (56)Timeline Frame 2Symbol 511 as "menuLib_fla.city8_318"
ExportAssets (56)Timeline Frame 2Symbol 591 as "menuLib_fla.city17_358"
ExportAssets (56)Timeline Frame 2Symbol 502 as "menuLib_fla.city6_312"
ExportAssets (56)Timeline Frame 2Symbol 745 as "menuLib_fla.levelSelectMouseoverText_72"
ExportAssets (56)Timeline Frame 2Symbol 819 as "menuLib_fla.siteLinkButton_203"
ExportAssets (56)Timeline Frame 2Symbol 774 as "interfaceItemCon"
ExportAssets (56)Timeline Frame 2Symbol 813 as "menuLib_fla.negenMeterSiteLinkButton_202"
ExportAssets (56)Timeline Frame 2Symbol 784 as "kongregateLink"
ExportAssets (56)Timeline Frame 2Symbol 773 as "menuLib_fla.generalMenuBg_205"
ExportAssets (56)Timeline Frame 2Symbol 787 as "menuLib_fla.sobcheckSiteLinkButton_201"
ExportAssets (56)Timeline Frame 2Symbol 1039 as "menuLib_fla.menuTitle_452"
ExportAssets (56)Timeline Frame 2Symbol 1210 as "menuLib_fla.mainMenuBG_183"
ExportAssets (56)Timeline Frame 2Symbol 1218 as "brickWorldLib_fla.messageAreaTextfield_33"
ExportAssets (56)Timeline Frame 2Symbol 1266 as "menuLib_fla.creditsText_49"
ExportAssets (56)Timeline Frame 2Symbol 316 as "focusRectSkin"
ExportAssets (56)Timeline Frame 2Symbol 314 as "TextArea_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1277 as "fl.controls.ScrollBar"
ExportAssets (56)Timeline Frame 2Symbol 310 as "fl.core.ComponentShim"
ExportAssets (56)Timeline Frame 2Symbol 345 as "fl.controls.UIScrollBar"
ExportAssets (56)Timeline Frame 2Symbol 312 as "TextArea_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 721 as "spinnerMC"
ExportAssets (56)Timeline Frame 2Symbol 651 as "menuLib_fla.st_kasteel_389"
ExportAssets (56)Timeline Frame 2Symbol 635 as "menuLib_fla.st_kasteelRots_385"
ExportAssets (56)Timeline Frame 2Symbol 1293 as "fl.controls.dataGridClasses.HeaderRenderer"
ExportAssets (56)Timeline Frame 2Symbol 1318 as "fl.controls.DataGrid"
ExportAssets (56)Timeline Frame 2Symbol 1321 as "fl.controls.TextInput"
ExportAssets (56)Timeline Frame 2Symbol 1337 as "fl.controls.RadioButton"
ExportAssets (56)Timeline Frame 2Symbol 1360 as "fl.controls.Button"
ExportAssets (56)Timeline Frame 2Symbol 334 as "ScrollArrowUp_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 340 as "ScrollArrowDown_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 332 as "ScrollArrowUp_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 322 as "ScrollArrowUp_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 324 as "ScrollArrowDown_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 338 as "ScrollArrowDown_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 344 as "ScrollBar_thumbIcon"
ExportAssets (56)Timeline Frame 2Symbol 342 as "ScrollArrowUp_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 330 as "ScrollThumb_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 326 as "ScrollThumb_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 328 as "ScrollArrowDown_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 318 as "ScrollTrack_skin"
ExportAssets (56)Timeline Frame 2Symbol 336 as "ScrollThumb_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1290 as "HeaderRenderer_selectedOverSkin"
ExportAssets (56)Timeline Frame 2Symbol 1279 as "HeaderRenderer_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1285 as "HeaderRenderer_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 1288 as "HeaderRenderer_selectedDownSkin"
ExportAssets (56)Timeline Frame 2Symbol 1292 as "HeaderRenderer_selectedUpSkin"
ExportAssets (56)Timeline Frame 2Symbol 1287 as "HeaderRenderer_selectedDisabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1281 as "HeaderRenderer_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1283 as "HeaderRenderer_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1313 as "fl.controls.listClasses.CellRenderer"
ExportAssets (56)Timeline Frame 2Symbol 1317 as "DataGridCellEditor_skin"
ExportAssets (56)Timeline Frame 2Symbol 1315 as "ColumnStretch_cursor"
ExportAssets (56)Timeline Frame 2Symbol 1316 as "DataGrid_skin"
ExportAssets (56)Timeline Frame 2Symbol 1296 as "HeaderSortArrow_descIcon"
ExportAssets (56)Timeline Frame 2Symbol 1294 as "HeaderSortArrow_ascIcon"
ExportAssets (56)Timeline Frame 2Symbol 1319 as "TextInput_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1320 as "TextInput_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1327 as "RadioButton_downIcon"
ExportAssets (56)Timeline Frame 2Symbol 1336 as "RadioButton_selectedDisabledIcon"
ExportAssets (56)Timeline Frame 2Symbol 1335 as "RadioButton_selectedDownIcon"
ExportAssets (56)Timeline Frame 2Symbol 1333 as "RadioButton_selectedUpIcon"
ExportAssets (56)Timeline Frame 2Symbol 1329 as "RadioButton_disabledIcon"
ExportAssets (56)Timeline Frame 2Symbol 1334 as "RadioButton_selectedOverIcon"
ExportAssets (56)Timeline Frame 2Symbol 1325 as "RadioButton_overIcon"
ExportAssets (56)Timeline Frame 2Symbol 1323 as "RadioButton_upIcon"
ExportAssets (56)Timeline Frame 2Symbol 1341 as "Button_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1345 as "Button_emphasizedSkin"
ExportAssets (56)Timeline Frame 2Symbol 1353 as "Button_selectedOverSkin"
ExportAssets (56)Timeline Frame 2Symbol 1349 as "Button_selectedDisabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1357 as "Button_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1343 as "Button_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1355 as "Button_selectedUpSkin"
ExportAssets (56)Timeline Frame 2Symbol 1351 as "Button_selectedDownSkin"
ExportAssets (56)Timeline Frame 2Symbol 1347 as "Button_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 1306 as "CellRenderer_selectedDisabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1310 as "CellRenderer_selectedOverSkin"
ExportAssets (56)Timeline Frame 2Symbol 1300 as "CellRenderer_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1308 as "CellRenderer_selectedDownSkin"
ExportAssets (56)Timeline Frame 2Symbol 1312 as "CellRenderer_selectedUpSkin"
ExportAssets (56)Timeline Frame 2Symbol 1298 as "CellRenderer_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1302 as "CellRenderer_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1304 as "CellRenderer_overSkin"
SerialNumber (41)Timeline Frame 1

Labels

"WBE_Main_wbPreLoader"Frame 1
"two"Frame 2
"end"Symbol 16 MovieClip {ag_intro_mc} [ag_intro_mc] Frame 192
"end"Symbol 39 MovieClip {load} [load] Frame 184
"up"Symbol 68 MovieClip {gameMenuButton} [gameMenuButton] Frame 1
"over"Symbol 68 MovieClip {gameMenuButton} [gameMenuButton] Frame 24
"down"Symbol 68 MovieClip {gameMenuButton} [gameMenuButton] Frame 57
"hit"Symbol 68 MovieClip {gameMenuButton} [gameMenuButton] Frame 67
"up"Symbol 69 MovieClip {skipButton} [skipButton] Frame 1
"over"Symbol 69 MovieClip {skipButton} [skipButton] Frame 24
"down"Symbol 69 MovieClip {skipButton} [skipButton] Frame 57
"hit"Symbol 69 MovieClip {skipButton} [skipButton] Frame 67
"up"Symbol 133 MovieClip {shopBuyButton} [shopBuyButton] Frame 1
"over"Symbol 133 MovieClip {shopBuyButton} [shopBuyButton] Frame 24
"down"Symbol 133 MovieClip {shopBuyButton} [shopBuyButton] Frame 57
"hit"Symbol 133 MovieClip {shopBuyButton} [shopBuyButton] Frame 67
"up"Symbol 165 MovieClip {MusicButton} [MusicButton] Frame 1
"over"Symbol 165 MovieClip {MusicButton} [MusicButton] Frame 11
"down"Symbol 165 MovieClip {MusicButton} [MusicButton] Frame 21
"hit"Symbol 165 MovieClip {MusicButton} [MusicButton] Frame 31
"idle"Symbol 221 MovieClip {harryStoryMC} [harryStoryMC] Frame 1
"talk"Symbol 221 MovieClip {harryStoryMC} [harryStoryMC] Frame 13
"panic"Symbol 221 MovieClip {harryStoryMC} [harryStoryMC] Frame 24
"victory"Symbol 221 MovieClip {harryStoryMC} [harryStoryMC] Frame 35
"plain"Symbol 221 MovieClip {harryStoryMC} [harryStoryMC] Frame 61
"surprised"Symbol 221 MovieClip {harryStoryMC} [harryStoryMC] Frame 72
"angry"Symbol 221 MovieClip {harryStoryMC} [harryStoryMC] Frame 83
"evil"Symbol 221 MovieClip {harryStoryMC} [harryStoryMC] Frame 94
"sad"Symbol 221 MovieClip {harryStoryMC} [harryStoryMC] Frame 105
"happy"Symbol 221 MovieClip {harryStoryMC} [harryStoryMC] Frame 116
"dead"Symbol 221 MovieClip {harryStoryMC} [harryStoryMC] Frame 127
"dark"Symbol 635 MovieClip {menuLib_fla.st_kasteelRots_385} [menuLib_fla.st_kasteelRots_385] Frame 1
"light"Symbol 635 MovieClip {menuLib_fla.st_kasteelRots_385} [menuLib_fla.st_kasteelRots_385] Frame 11
"dark"Symbol 651 MovieClip {menuLib_fla.st_kasteel_389} [menuLib_fla.st_kasteel_389] Frame 1
"light"Symbol 651 MovieClip {menuLib_fla.st_kasteel_389} [menuLib_fla.st_kasteel_389] Frame 11
"idle"Symbol 696 MovieClip {garryStoryMC} [garryStoryMC] Frame 1
"talk"Symbol 696 MovieClip {garryStoryMC} [garryStoryMC] Frame 13
"panic"Symbol 696 MovieClip {garryStoryMC} [garryStoryMC] Frame 24
"victory"Symbol 696 MovieClip {garryStoryMC} [garryStoryMC] Frame 35
"plain"Symbol 696 MovieClip {garryStoryMC} [garryStoryMC] Frame 61
"surprised"Symbol 696 MovieClip {garryStoryMC} [garryStoryMC] Frame 72
"angry"Symbol 696 MovieClip {garryStoryMC} [garryStoryMC] Frame 83
"sad"Symbol 696 MovieClip {garryStoryMC} [garryStoryMC] Frame 94
"happy"Symbol 696 MovieClip {garryStoryMC} [garryStoryMC] Frame 105
"up"Symbol 784 MovieClip {kongregateLink} [kongregateLink] Frame 1
"over"Symbol 784 MovieClip {kongregateLink} [kongregateLink] Frame 11
"down"Symbol 784 MovieClip {kongregateLink} [kongregateLink] Frame 21
"hit"Symbol 784 MovieClip {kongregateLink} [kongregateLink] Frame 31
"up"Symbol 787 MovieClip {menuLib_fla.sobcheckSiteLinkButton_201} [menuLib_fla.sobcheckSiteLinkButton_201] Frame 1
"over"Symbol 787 MovieClip {menuLib_fla.sobcheckSiteLinkButton_201} [menuLib_fla.sobcheckSiteLinkButton_201] Frame 11
"down"Symbol 787 MovieClip {menuLib_fla.sobcheckSiteLinkButton_201} [menuLib_fla.sobcheckSiteLinkButton_201] Frame 21
"hit"Symbol 787 MovieClip {menuLib_fla.sobcheckSiteLinkButton_201} [menuLib_fla.sobcheckSiteLinkButton_201] Frame 31
"up"Symbol 813 MovieClip {menuLib_fla.negenMeterSiteLinkButton_202} [menuLib_fla.negenMeterSiteLinkButton_202] Frame 1
"over"Symbol 813 MovieClip {menuLib_fla.negenMeterSiteLinkButton_202} [menuLib_fla.negenMeterSiteLinkButton_202] Frame 11
"down"Symbol 813 MovieClip {menuLib_fla.negenMeterSiteLinkButton_202} [menuLib_fla.negenMeterSiteLinkButton_202] Frame 21
"hit"Symbol 813 MovieClip {menuLib_fla.negenMeterSiteLinkButton_202} [menuLib_fla.negenMeterSiteLinkButton_202] Frame 31
"intro"Symbol 819 MovieClip {menuLib_fla.siteLinkButton_203} [menuLib_fla.siteLinkButton_203] Frame 1
"up"Symbol 819 MovieClip {menuLib_fla.siteLinkButton_203} [menuLib_fla.siteLinkButton_203] Frame 11
"over"Symbol 819 MovieClip {menuLib_fla.siteLinkButton_203} [menuLib_fla.siteLinkButton_203] Frame 21
"down"Symbol 819 MovieClip {menuLib_fla.siteLinkButton_203} [menuLib_fla.siteLinkButton_203] Frame 31
"hit"Symbol 819 MovieClip {menuLib_fla.siteLinkButton_203} [menuLib_fla.siteLinkButton_203] Frame 41
"idle"Symbol 997 MovieClip {larryStoryMC} [larryStoryMC] Frame 1
"talk"Symbol 997 MovieClip {larryStoryMC} [larryStoryMC] Frame 13
"sadTalk"Symbol 997 MovieClip {larryStoryMC} [larryStoryMC] Frame 87
"panic"Symbol 997 MovieClip {larryStoryMC} [larryStoryMC] Frame 161
"victory"Symbol 997 MovieClip {larryStoryMC} [larryStoryMC] Frame 203
"plain"Symbol 997 MovieClip {larryStoryMC} [larryStoryMC] Frame 229
"surprised"Symbol 997 MovieClip {larryStoryMC} [larryStoryMC] Frame 240
"angry"Symbol 997 MovieClip {larryStoryMC} [larryStoryMC] Frame 251
"evil"Symbol 997 MovieClip {larryStoryMC} [larryStoryMC] Frame 262
"sad"Symbol 997 MovieClip {larryStoryMC} [larryStoryMC] Frame 273
"happy"Symbol 997 MovieClip {larryStoryMC} [larryStoryMC] Frame 284
"pushy"Symbol 997 MovieClip {larryStoryMC} [larryStoryMC] Frame 295
"up"Symbol 1013 MovieClip {mainMenuButton} [mainMenuButton] Frame 1
"over"Symbol 1013 MovieClip {mainMenuButton} [mainMenuButton] Frame 24
"down"Symbol 1013 MovieClip {mainMenuButton} [mainMenuButton] Frame 57
"hit"Symbol 1013 MovieClip {mainMenuButton} [mainMenuButton] Frame 67
"up"Symbol 1026 MovieClip {ShoppeButton} [ShoppeButton] Frame 1
"over"Symbol 1026 MovieClip {ShoppeButton} [ShoppeButton] Frame 11
"down"Symbol 1026 MovieClip {ShoppeButton} [ShoppeButton] Frame 30
"hit"Symbol 1026 MovieClip {ShoppeButton} [ShoppeButton] Frame 40
"up"Symbol 1040 MovieClip {dialogScrollButton} [dialogScrollButton] Frame 1
"over"Symbol 1040 MovieClip {dialogScrollButton} [dialogScrollButton] Frame 24
"down"Symbol 1040 MovieClip {dialogScrollButton} [dialogScrollButton] Frame 57
"hit"Symbol 1040 MovieClip {dialogScrollButton} [dialogScrollButton] Frame 67
"idle"Symbol 1105 MovieClip {BBplayer1MC} [BBplayer1MC] Frame 1
"movingUp"Symbol 1105 MovieClip {BBplayer1MC} [BBplayer1MC] Frame 11
"movingDown"Symbol 1105 MovieClip {BBplayer1MC} [BBplayer1MC] Frame 20
"movingLeft"Symbol 1105 MovieClip {BBplayer1MC} [BBplayer1MC] Frame 30
"movingRight"Symbol 1105 MovieClip {BBplayer1MC} [BBplayer1MC] Frame 40
"jumpUp"Symbol 1105 MovieClip {BBplayer1MC} [BBplayer1MC] Frame 50
"jumpDown"Symbol 1105 MovieClip {BBplayer1MC} [BBplayer1MC] Frame 60
"hit"Symbol 1105 MovieClip {BBplayer1MC} [BBplayer1MC] Frame 71
"hitDone"Symbol 1105 MovieClip {BBplayer1MC} [BBplayer1MC] Frame 76
"death"Symbol 1105 MovieClip {BBplayer1MC} [BBplayer1MC] Frame 77
"deathDone"Symbol 1105 MovieClip {BBplayer1MC} [BBplayer1MC] Frame 90
"attack"Symbol 1105 MovieClip {BBplayer1MC} [BBplayer1MC] Frame 91
"attackDone"Symbol 1105 MovieClip {BBplayer1MC} [BBplayer1MC] Frame 100
"end"Symbol 1159 MovieClip {brickIntro} [brickIntro] Frame 98
"up"Symbol 1171 MovieClip {OpenMenuButton} [OpenMenuButton] Frame 1
"over"Symbol 1171 MovieClip {OpenMenuButton} [OpenMenuButton] Frame 11
"down"Symbol 1171 MovieClip {OpenMenuButton} [OpenMenuButton] Frame 21
"hit"Symbol 1171 MovieClip {OpenMenuButton} [OpenMenuButton] Frame 31
"up"Symbol 1175 MovieClip {scrollButton} [scrollButton] Frame 1
"over"Symbol 1175 MovieClip {scrollButton} [scrollButton] Frame 24
"down"Symbol 1175 MovieClip {scrollButton} [scrollButton] Frame 57
"hit"Symbol 1175 MovieClip {scrollButton} [scrollButton] Frame 67
"up"Symbol 1190 MovieClip {ZoomButton} [ZoomButton] Frame 1
"over"Symbol 1190 MovieClip {ZoomButton} [ZoomButton] Frame 11
"down"Symbol 1190 MovieClip {ZoomButton} [ZoomButton] Frame 21
"hit"Symbol 1190 MovieClip {ZoomButton} [ZoomButton] Frame 31
"up"Symbol 1233 MovieClip {SoundButton} [SoundButton] Frame 1
"over"Symbol 1233 MovieClip {SoundButton} [SoundButton] Frame 11
"down"Symbol 1233 MovieClip {SoundButton} [SoundButton] Frame 21
"hit"Symbol 1233 MovieClip {SoundButton} [SoundButton] Frame 31
"end"Symbol 1267 MovieClip {creditsBgMC} [creditsBgMC] Frame 468
"up"Symbol 1273 MovieClip {ArmorMiniButton} [ArmorMiniButton] Frame 1
"over"Symbol 1273 MovieClip {ArmorMiniButton} [ArmorMiniButton] Frame 11
"down"Symbol 1273 MovieClip {ArmorMiniButton} [ArmorMiniButton] Frame 21
"hit"Symbol 1273 MovieClip {ArmorMiniButton} [ArmorMiniButton] Frame 31




http://swfchan.com/18/89772/info.shtml
Created: 28/3 -2019 19:26:55 Last modified: 28/3 -2019 19:26:55 Server time: 29/04 -2024 12:14:11