Section 1
//b2CircleDef (Box2D.Collision.Shapes.b2CircleDef)
package Box2D.Collision.Shapes {
import Box2D.Common.Math.*;
public class b2CircleDef extends b2ShapeDef {
public var
:b2Vec2;
public var radius:Number;
public function b2CircleDef(){
= 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_radius:Number;
public var m_localPosition:b2Vec2;
public function b2CircleShape(_arg1:b2ShapeDef){
var _local2:b2CircleDef;
m_localPosition = new b2Vec2();
super(_arg1);
_local2 = (_arg1 as b2CircleDef);
m_type = e_circleShape;
m_localPosition.SetV(_local2.
);
m_radius = _local2.radius;
}
override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{
var _local3:b2Mat22;
var _local4:Number;
var _local5:Number;
_local3 = _arg1.R;
_local4 = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y)));
_local5 = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y)));
_local4 = (_arg2.x - _local4);
_local5 = (_arg2.y - _local5);
return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius)));
}
public function ():b2Vec2{
return (m_localPosition);
}
override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{
var _local6:b2Mat22;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
_local6 = _arg1.R;
_local7 = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y)));
_local8 = (_arg1.position.x + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y)));
_local9 = (_arg4.p1.x - _local7);
_local10 = (_arg4.p1.y - _local8);
_local11 = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius));
if (_local11 < 0){
return (false);
};
_local12 = (_arg4.p2.x - _arg4.p1.x);
_local13 = (_arg4.p2.y - _arg4.p1.y);
_local14 = ((_local9 * _local12) + (_local10 * _local13));
_local15 = ((_local12 * _local12) + (_local13 * _local13));
_local16 = ((_local14 * _local14) - (_local15 * _local11));
if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){
return (false);
};
_local17 = -((_local14 + Math.sqrt(_local16)));
if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){
_local17 = (_local17 / _local15);
_arg2[0] = _local17;
_arg3.x = (_local9 + (_local17 * _local12));
_arg3.y = (_local10 + (_local17 * _local13));
_arg3.Normalize();
return (true);
};
return (false);
}
override public function ComputeMass(_arg1:b2MassData):void{
_arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius);
_arg1.center.SetV(m_localPosition);
_arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y))));
}
override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{
var _local4:b2Mat22;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
_local4 = _arg2.R;
_local5 = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y)));
_local6 = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y)));
_local4 = _arg3.R;
_local7 = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y)));
_local8 = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y)));
_arg1.lowerBound.Set((((_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));
}
public function ():Number{
return (m_radius);
}
override public function UpdateSweepRadius(_arg1:b2Vec2):void{
var _local2:Number;
var _local3:Number;
_local2 = (m_localPosition.x - _arg1.x);
_local3 = (m_localPosition.y - _arg1.y);
_local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3)));
m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop);
}
override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{
var _local3:b2Mat22;
var _local4:Number;
var _local5:Number;
_local3 = _arg2.R;
_local4 = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y)));
_local5 = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y)));
_arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius));
_arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius));
}
}
}//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 b2FilterData(){
categoryBits = 1;
maskBits = 0xFFFF;
groupIndex = 0;
super();
}
public function Copy():b2FilterData{
var _local1:b2FilterData;
_local1 = 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(){
mass = 0;
center = new b2Vec2(0, 0);
I = 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 vertexCount:int;
public var vertices:Array;
private static var s_mat:b2Mat22 = new b2Mat22();
public function b2PolygonDef(){
var _local1:int;
vertices = new Array(b2Settings.b2_maxPolygonVertices);
super();
type = b2Shape.e_polygonShape;
vertexCount = 0;
_local1 = 0;
while (_local1 < b2Settings.b2_maxPolygonVertices) {
vertices[_local1] = new b2Vec2();
_local1++;
};
}
public function (_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.Dynamics.*;
import Box2D.Collision.*;
import Box2D.Common.*;
public class b2PolygonShape extends b2Shape {
public var
:Array;
public var :Array;
private var :b2Vec2;
public var :b2OBB;
public var :Array;
public var :b2Vec2;
public var
:int;
private static var s_computeMat:b2Mat22 = new b2Mat22();
private static var s_sweptAABB1:b2AABB = new b2AABB();
private static var s_sweptAABB2:b2AABB = new b2AABB();
public function b2PolygonShape(_arg1:b2ShapeDef){
var _local2:b2PolygonDef;
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
= new b2Vec2();
= new b2OBB();
= new Array(b2Settings.b2_maxPolygonVertices);
= new Array(b2Settings.b2_maxPolygonVertices);
= new Array(b2Settings.b2_maxPolygonVertices);
super(_arg1);
m_type = e_polygonShape;
_local2 = (_arg1 as b2PolygonDef);
= _local2.vertexCount;
_local4 = _local3;
_local5 = _local3;
_local3 = 0;
while (_local3 <
) {
[_local3] = _local2.vertices[_local3].Copy();
_local3++;
};
_local3 = 0;
while (_local3 <
) {
_local4 = _local3;
_local5 = (((_local3 + 1) <
)) ? (_local3 + 1) : 0;
_local6 = (
[_local5].x -
[_local4].x);
_local7 = (
[_local5].y -
[_local4].y);
_local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7)));
[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8));
_local3++;
};
= ComputeCentroid(_local2.vertices, _local2.vertexCount);
ComputeOBB(,
,
);
_local3 = 0;
while (_local3 <
) {
_local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (
- 1);
_local5 = _local3;
_local9 = [_local4].x;
_local10 = [_local4].y;
_local11 = [_local5].x;
_local12 = [_local5].y;
_local13 = (
[_local3].x - .x);
_local14 = (
[_local3].y - .y);
_local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop);
_local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop);
_local17 = (1 / ((_local9 * _local12) - (_local10 * _local11)));
[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + .x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + .y));
_local3++;
};
}
override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{
var _local3:b2Vec2;
var _local4:b2Mat22;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:int;
var _local10:Number;
_local4 = _arg1.R;
_local5 = (_arg2.x - _arg1.position.x);
_local6 = (_arg2.y - _arg1.position.y);
_local7 = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y));
_local8 = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y));
_local9 = 0;
while (_local9 <
) {
_local3 =
[_local9];
_local5 = (_local7 - _local3.x);
_local6 = (_local8 - _local3.y);
_local3 = [_local9];
_local10 = ((_local3.x * _local5) + (_local3.y * _local6));
if (_local10 > 0){
return (false);
};
_local9++;
};
return (true);
}
public function GetCoreVertices():Array{
return ();
}
override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:b2Mat22;
var _local11:b2Vec2;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:int;
var _local19:int;
var _local20:Number;
var _local21:Number;
_local6 = 0;
_local7 = _arg5;
_local8 = (_arg4.p1.x - _arg1.position.x);
_local9 = (_arg4.p1.y - _arg1.position.y);
_local10 = _arg1.R;
_local12 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y));
_local13 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y));
_local8 = (_arg4.p2.x - _arg1.position.x);
_local9 = (_arg4.p2.y - _arg1.position.y);
_local10 = _arg1.R;
_local14 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y));
_local15 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y));
_local16 = (_local14 - _local12);
_local17 = (_local15 - _local13);
_local18 = -1;
_local19 = 0;
while (_local19 <
) {
_local11 =
[_local19];
_local8 = (_local11.x - _local12);
_local9 = (_local11.y - _local13);
_local11 = [_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 = [_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);
}
public function ():b2Vec2{
return ();
}
override public function ComputeMass(_arg1:b2MassData):void{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:int;
var _local10:b2Vec2;
var _local11:b2Vec2;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
_local2 = 0;
_local3 = 0;
_local4 = 0;
_local5 = 0;
_local6 = 0;
_local7 = 0;
_local8 = (1 / 3);
_local9 = 0;
while (_local9 <
) {
_local10 =
[_local9];
_local11 = (((_local9 + 1) <
)) ?
[int((_local9 + 1))] :
[0];
_local12 = (_local10.x - _local6);
_local13 = (_local10.y - _local7);
_local14 = (_local11.x - _local6);
_local15 = (_local11.y - _local7);
_local16 = ((_local12 * _local15) - (_local13 * _local14));
_local17 = (0.5 * _local16);
_local4 = (_local4 + _local17);
_local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x)));
_local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y)));
_local18 = _local6;
_local19 = _local7;
_local20 = _local12;
_local21 = _local13;
_local22 = _local14;
_local23 = _local15;
_local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18));
_local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19));
_local5 = (_local5 + (_local16 * (_local24 + _local25)));
_local9++;
};
_arg1.mass = (m_density * _local4);
_local2 = (_local2 * (1 / _local4));
_local3 = (_local3 * (1 / _local4));
_arg1.center.Set(_local2, _local3);
_arg1.I = (m_density * _local5);
}
public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{
var _local4:b2Vec2;
var _local5:b2Mat22;
var _local6:Number;
var _local7:Number;
var _local8:int;
var _local9:Number;
var _local10:int;
var _local11:Number;
_local5 = _arg1.R;
_local6 = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y));
_local7 = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y));
_local8 = 0;
_local4 = [0];
_local9 = ((_local4.x * _local6) + (_local4.y * _local7));
_local10 = 1;
while (_local10 <
) {
_local4 = [_local10];
_local11 = ((_local4.x * _local6) + (_local4.y * _local7));
if (_local11 > _local9){
_local8 = _local10;
_local9 = _local11;
};
_local10++;
};
_local5 = _arg1.R;
_local4 = [_local8];
.x = (_arg1.position.x + ((_local5.col1.x * _local4.x) + (_local5.col2.x * _local4.y)));
.y = (_arg1.position.y + ((_local5.col1.y * _local4.x) + (_local5.col2.y * _local4.y)));
return ();
}
public function GetVertexCount():int{
return (
);
}
override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{
var _local4:b2AABB;
var _local5:b2AABB;
_local4 = s_sweptAABB1;
_local5 = s_sweptAABB2;
ComputeAABB(_local4, _arg2);
ComputeAABB(_local5, _arg3);
_arg1.lowerBound.Set(((_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 (
);
}
public function ():Array{
return ();
}
public function GetOBB():b2OBB{
return ();
}
public function GetFirstVertex(_arg1:b2XForm):b2Vec2{
return (b2Math.b2MulX(_arg1, [0]));
}
public function (_arg1:b2XForm):b2Vec2{
return (b2Math.b2MulX(_arg1, ));
}
override public function UpdateSweepRadius(_arg1:b2Vec2):void{
var _local2:b2Vec2;
var _local3:int;
var _local4:Number;
var _local5:Number;
m_sweepRadius = 0;
_local3 = 0;
while (_local3 <
) {
_local2 = [_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 ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{
var _local3:b2Mat22;
var _local4:b2Vec2;
var _local5:b2Mat22;
var _local6:b2Mat22;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
_local5 = s_computeMat;
_local3 = _arg2.R;
_local4 = .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 = .R.col2;
_local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y));
_local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y));
_local5.Abs();
_local6 = _local5;
_local4 = .extents;
_local7 = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y));
_local8 = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y));
_local3 = _arg2.R;
_local4 = .center;
_local9 = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)));
_local10 = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)));
_arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8));
_arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8));
}
public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{
var _local3:b2Vec2;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:int;
var _local9:b2Vec2;
var _local10:b2Vec2;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
_local3 = new b2Vec2();
_local4 = 0;
_local5 = 0;
_local6 = 0;
_local7 = (1 / 3);
_local8 = 0;
while (_local8 < _arg2) {
_local9 = _arg1[_local8];
_local10 = (((_local8 + 1) < _arg2)) ? _arg1[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 _local5:Array;
var _local6:Number;
var _local7:b2Vec2;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:int;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:b2Mat22;
_local5 = new Array((b2Settings.b2_maxPolygonVertices + 1));
_local4 = 0;
while (_local4 < _arg3) {
_local5[_local4] = _arg2[_local4];
_local4++;
};
_local5[_arg3] = _local5[0];
_local6 = Number.MAX_VALUE;
_local4 = 1;
while (_local4 <= _arg3) {
_local7 = _local5[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_type:int;
public var m_sweepRadius:Number;
public var m_density:Number;
public var :b2FilterData;
public var m_friction:Number;
public var m_next:b2Shape;
public var m_restitution:Number;
public var m_userData;
public var
:Boolean;
public var
: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;
= b2Pair.b2_nullProxy;
= _arg1..Copy();
= _arg1.;
}
public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{
return (false);
}
public function ():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 ():Number{
return (m_restitution);
}
public function
():Number{
return (m_friction);
}
public function GetFilterData():b2FilterData{
return ( .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{
var _local3:b2AABB;
var _local4:Boolean;
if (
== b2Pair.b2_nullProxy){
return;
};
_arg1.DestroyProxy(
);
_local3 = s_resetAABB;
ComputeAABB(_local3, _arg2);
_local4 = _arg1.InRange(_local3);
if (_local4){
= _arg1.CreateProxy(_local3, this);
} else {
= b2Pair.b2_nullProxy;
};
}
public function
(_arg1:b2FilterData):void{
= _arg1.Copy();
}
public function GetUserData(){
return (m_userData);
}
public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{
var _local4:b2AABB;
if (
== b2Pair.b2_nullProxy){
return (false);
};
_local4 = s_syncAABB;
ComputeSweptAABB(_local4, _arg2, _arg3);
if (_arg1.InRange(_local4)){
_arg1.MoveProxy(
, _local4);
return (true);
};
return (false);
}
public function ComputeMass(_arg1:b2MassData):void{
}
public function
():Boolean{
return (
);
}
public function DestroyProxy(_arg1:b2BroadPhase):void{
if (
!= b2Pair.b2_nullProxy){
_arg1.DestroyProxy(
);
= b2Pair.b2_nullProxy;
};
}
public function UpdateSweepRadius(_arg1:b2Vec2):void{
}
public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{
}
public function
():b2Body{
return (m_body);
}
public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{
var _local3:b2AABB;
var _local4:Boolean;
_local3 = s_proxyAABB;
ComputeAABB(_local3, _arg2);
_local4 = _arg1.InRange(_local3);
if (_local4){
= _arg1.CreateProxy(_local3, this);
} else {
= b2Pair.b2_nullProxy;
};
}
public function SetUserData(_arg1):void{
m_userData = _arg1;
}
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 :Boolean;// = false
public var density:Number;// = 0
public var type:int;
public var restitution:Number;// = 0
public var userData;// = null
public var :b2FilterData;
public var friction:Number;// = 0.2
public function b2ShapeDef(){
type = b2Shape.e_unknownShape;
userData = null;
friction = 0.2;
restitution = 0;
density = 0;
= false;
= 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;
var _local2:Number;
var _local3:Boolean;
_local1 = (upperBound.x - lowerBound.x);
_local2 = (upperBound.y - lowerBound.y);
_local3 = (((_local1 >= 0)) && ((_local2 >= 0)));
_local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid()));
return (_local3);
}
}
}//package Box2D.Collision
Section 10
//b2Bound (Box2D.Collision.b2Bound)
package Box2D.Collision {
public class b2Bound {
public var proxyId:uint;
public var stabbingCount:uint;
public var value:uint;
public function Swap(_arg1:b2Bound):void{
var _local2:uint;
var _local3:uint;
var _local4:uint;
_local2 = value;
_local3 = proxyId;
_local4 = stabbingCount;
value = _arg1.value;
proxyId = _arg1.proxyId;
stabbingCount = _arg1.stabbingCount;
_arg1.value = _local2;
_arg1.proxyId = _local3;
_arg1.stabbingCount = _local4;
}
public function IsLower():Boolean{
return (((value & 1) == 0));
}
public function IsUpper():Boolean{
return (((value & 1) == 1));
}
}
}//package Box2D.Collision
Section 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_quantizationFactor:b2Vec2;
public var m_worldAABB:b2AABB;
public var m_bounds:Array;
public var :uint;
public var m_proxyCount:int;
public var m_proxyPool:Array;
public var :int;
public var m_pairManager:b2PairManager;
public var :uint;
public var
:Array;
public static const b2_nullEdge:uint = b2Settings.USHRT_MAX;
public static const b2_invalid:uint = b2Settings.USHRT_MAX;
public static var s_validate:Boolean = false;
public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){
var _local3:int;
var _local4:Number;
var _local5:Number;
var _local6:b2Proxy;
var _local7:int;
m_pairManager = new b2PairManager();
m_proxyPool = new Array(b2Settings.b2_maxPairs);
m_bounds = new Array((2 * b2Settings.b2_maxProxies));
= 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) {
[_local3] = 0;
_local3++;
};
m_bounds = new Array(2);
_local3 = 0;
while (_local3 < 2) {
m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies));
_local7 = 0;
while (_local7 < (2 * b2Settings.b2_maxProxies)) {
m_bounds[_local3][_local7] = new b2Bound();
_local7++;
};
_local3++;
};
_local4 = (_arg1.upperBound.x - _arg1.lowerBound.x);
_local5 = (_arg1.upperBound.y - _arg1.lowerBound.y);
m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4);
m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5);
_local3 = 0;
while (_local3 < (b2Settings.b2_maxProxies - 1)) {
_local6 = new b2Proxy();
m_proxyPool[_local3] = _local6;
_local6.SetNext((_local3 + 1));
_local6.timeStamp = 0;
_local6.overlapCount = b2_invalid;
_local6.userData = null;
_local3++;
};
_local6 = new b2Proxy();
m_proxyPool[int((b2Settings.b2_maxProxies - 1))] = _local6;
_local6.SetNext(b2Pair.b2_nullProxy);
_local6.timeStamp = 0;
_local6.overlapCount = b2_invalid;
_local6.userData = null;
= 0;
= 1;
= 0;
}
public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{
var _local4:Array;
var _local5:Array;
var _local6:uint;
var _local7:uint;
var _local8:Array;
var _local9:Array;
var _local10:int;
var _local11:int;
var _local12:b2Proxy;
_local4 = new Array();
_local5 = new Array();
(_local4, _local5, _arg1);
_local8 = [_local6];
_local9 = [_local7];
(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0);
(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1);
_local10 = 0;
_local11 = 0;
while ((((_local11 < )) && ((_local10 < _arg3)))) {
_local12 = m_proxyPool[
[_local11]];
_arg2[_local11] = _local12.userData;
_local11++;
_local10++;
};
= 0;
();
return (_local10);
}
public function Commit():void{
m_pairManager.Commit();
}
public function (_arg1:int):b2Proxy{
var _local2:b2Proxy;
_local2 = m_proxyPool[_arg1];
if ((((_arg1 == b2Pair.b2_nullProxy)) || ((_local2.IsValid() == false)))){
return (null);
};
return (_local2);
}
private function ():void{
var _local1:uint;
if ( == b2Settings.USHRT_MAX){
_local1 = 0;
while (_local1 < b2Settings.b2_maxProxies) {
(m_proxyPool[_local1] as b2Proxy).timeStamp = 0;
_local1++;
};
= 1;
} else {
++;
};
}
private function (_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{
var _local8:uint;
var _local9:uint;
var _local10:b2Bound;
var _local11:uint;
var _local12:int;
var _local13:int;
var _local14:b2Proxy;
_local8 = BinarySearch(_arg5, _arg6, _arg3);
_local9 = BinarySearch(_arg5, _arg6, _arg4);
_local11 = _local8;
while (_local11 < _local9) {
_local10 = _arg5[_local11];
if (_local10.IsLower()){
(_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]){
(_local10.proxyId);
_local13--;
};
};
_local12--;
};
};
_arg1[0] = _local8;
_arg2[0] = _local9;
}
private function (_arg1:b2Proxy, _arg2:b2Proxy):Boolean{
var _local3:int;
var _local4:Array;
var _local5:b2Bound;
var _local6:b2Bound;
_local3 = 0;
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 (_arg1:Array, _arg2:Array, _arg3:b2AABB):void{
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
_local4 = _arg3.lowerBound.x;
_local5 = _arg3.lowerBound.y;
_local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x);
_local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y);
_local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x);
_local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y);
_local6 = _arg3.upperBound.x;
_local7 = _arg3.upperBound.y;
_local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x);
_local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y);
_local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x);
_local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y);
_arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1));
_arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1);
_arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1));
_arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1);
}
public function CreateProxy(_arg1:b2AABB, _arg2):uint{
var _local3:uint;
var _local4:b2Proxy;
var _local5:uint;
var _local6:uint;
var _local7:Array;
var _local8:Array;
var _local9:int;
var _local10:int;
var _local11:Array;
var _local12:uint;
var _local13:uint;
var _local14:Array;
var _local15:Array;
var _local16:Array;
var _local17:int;
var _local18:int;
var _local19:b2Bound;
var _local20:b2Bound;
var _local21:b2Bound;
var _local22:int;
var _local23:b2Proxy;
_local5 = ;
_local4 = m_proxyPool[_local5];
= _local4.GetNext();
_local4.overlapCount = 0;
_local4.userData = _arg2;
_local6 = (2 * m_proxyCount);
_local7 = new Array();
_local8 = new Array();
(_local7, _local8, _arg1);
_local9 = 0;
while (_local9 < 2) {
_local11 = m_bounds[_local9];
_local14 = [_local12];
_local15 = [_local13];
(_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++;
_local10 = 0;
while (_local10 < ) {
m_pairManager.AddBufferedPair(_local5,
[_local10]);
_local10++;
};
m_pairManager.Commit();
= 0;
();
return (_local5);
}
public function DestroyProxy(_arg1:uint):void{
var _local2:b2Bound;
var _local3:b2Bound;
var _local4:b2Proxy;
var _local5:int;
var _local6:int;
var _local7:int;
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;
_local4 = m_proxyPool[_arg1];
_local5 = (2 * m_proxyCount);
_local6 = 0;
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++;
};
([0], [0], _local11, _local12, _local8, (_local5 - 2), _local6);
_local6++;
};
_local7 = 0;
while (_local7 < ) {
m_pairManager.RemoveBufferedPair(_arg1,
[_local7]);
_local7++;
};
m_pairManager.Commit();
= 0;
();
_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();
= _arg1;
m_proxyCount--;
}
public function (_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{
var _local3:int;
var _local4:Array;
var _local5:b2Bound;
_local3 = 0;
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 _local5:int;
var _local6:b2Bound;
var _local7:uint;
var _local8:uint;
var _local9:uint;
var _local10:b2Bound;
_local5 = 0;
while (_local5 < 2) {
_local6 = m_bounds[_local5];
_local7 = (2 * m_proxyCount);
_local8 = 0;
_local9 = 0;
while (_local9 < _local7) {
_local10 = _local6[_local9];
if (_local10.IsLower() == true){
_local8++;
} else {
_local8--;
};
_local9++;
};
_local5++;
};
}
private function (_arg1:uint):void{
var _local2:b2Proxy;
_local2 = m_proxyPool[_arg1];
if (_local2.timeStamp < ){
_local2.timeStamp = ;
_local2.overlapCount = 1;
} else {
_local2.overlapCount = 2;
[] = _arg1;
++;
};
}
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 _local12:uint;
var _local13:b2Proxy;
var _local14:b2BoundValues;
var _local15:b2BoundValues;
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;
};
_local12 = (2 * m_proxyCount);
_local13 = m_proxyPool[_arg1];
_local14 = new b2BoundValues();
(_local14.lowerValues, _local14.upperValues, _arg2);
_local15 = 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 ((_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 ((_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 ((_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 ((_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 _local4:int;
var _local5:int;
var _local6:int;
var _local7:b2Bound;
_local4 = 0;
_local5 = (_arg2 - 1);
while (_local4 <= _local5) {
_local6 = ((_local4 + _local5) / 2);
_local7 = _arg1[_local6];
if (_local7.value > _arg3){
_local5 = (_local6 - 1);
} else {
if (_local7.value < _arg3){
_local4 = (_local6 + 1);
} else {
return (uint(_local6));
};
};
};
return (uint(_local4));
}
}
}//package Box2D.Collision
Section 13
//b2BufferedPair (Box2D.Collision.b2BufferedPair)
package Box2D.Collision {
public class b2BufferedPair {
public var proxyId1:uint;
public var proxyId2:uint;
}
}//package Box2D.Collision
Section 14
//b2Collision (Box2D.Collision.b2Collision)
package Box2D.Collision {
import Box2D.Common.Math.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
public class b2Collision {
public static const b2_nullFeature:uint = 0xFF;
private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2();
public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{
var _local6:int;
var _local7:Array;
var _local8:Array;
var _local9:int;
var _local10:Array;
var _local11:b2Mat22;
var _local12:b2Vec2;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:int;
var _local18:Number;
var _local19:int;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
_local6 = _arg1.
;
_local7 = _arg1.
;
_local8 = _arg1.;
_local9 = _arg4.
;
_local10 = _arg4.
;
_local11 = _arg2.R;
_local12 = _local8[_arg3];
_local13 = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y));
_local14 = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y));
_local11 = _arg5.R;
_local15 = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14));
_local16 = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14));
_local17 = 0;
_local18 = Number.MAX_VALUE;
_local19 = 0;
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;
_local20 = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)));
_local21 = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)));
_local12 = _local10[_local17];
_local11 = _arg5.R;
_local22 = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)));
_local23 = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)));
_local22 = (_local22 - _local20);
_local23 = (_local23 - _local21);
_local24 = ((_local22 * _local13) + (_local23 * _local14));
return (_local24);
}
public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{
var _local3:b2Vec2;
var _local4:b2Vec2;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
_local3 = _arg2.lowerBound;
_local4 = _arg1.upperBound;
_local5 = (_local3.x - _local4.x);
_local6 = (_local3.y - _local4.y);
_local3 = _arg1.lowerBound;
_local4 = _arg2.upperBound;
_local7 = (_local3.x - _local4.x);
_local8 = (_local3.y - _local4.y);
if ((((_local5 > 0)) || ((_local6 > 0)))){
return (false);
};
if ((((_local7 > 0)) || ((_local8 > 0)))){
return (false);
};
return (true);
}
public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{
var _local7:int;
var _local8:Array;
var _local9:int;
var _local10:Array;
var _local11:Array;
var _local12:b2Mat22;
var _local13:b2Vec2;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:int;
var _local18:Number;
var _local19:int;
var _local20:ClipVertex;
var _local21:int;
var _local22:int;
var _local23:Number;
_local7 = _arg2.
;
_local8 = _arg2.;
_local9 = _arg5.
;
_local10 = _arg5.
;
_local11 = _arg5.;
_local12 = _arg3.R;
_local13 = _local8[_arg4];
_local14 = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y));
_local15 = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y));
_local12 = _arg6.R;
_local16 = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15));
_local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15));
_local14 = _local16;
_local17 = 0;
_local18 = Number.MAX_VALUE;
_local19 = 0;
while (_local19 < _local9) {
_local13 = _local11[_local19];
_local23 = ((_local14 * _local13.x) + (_local15 * _local13.y));
if (_local23 < _local18){
_local18 = _local23;
_local17 = _local19;
};
_local19++;
};
_local21 = _local17;
_local22 = (((_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..referenceEdge = _arg4;
_local20.id..incidentEdge = _local21;
_local20.id..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..referenceEdge = _arg4;
_local20.id..incidentEdge = _local22;
_local20.id..incidentVertex = 1;
}
public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{
var _local6:ClipVertex;
var _local7:int;
var _local8:Array;
var _local9:Number;
var _local10:int;
var _local11:Array;
var _local12:Number;
var _local13:b2PolygonShape;
var _local14:b2PolygonShape;
var _local15:b2XForm;
var _local16:b2XForm;
var _local17:int;
var _local18:uint;
var _local19:Number;
var _local20:Number;
var _local21:Array;
var _local22:int;
var _local23:Array;
var _local24:b2Vec2;
var _local25:b2Vec2;
var _local26:b2Vec2;
var _local27:b2Vec2;
var _local28:b2Vec2;
var _local29:Number;
var _local30:Number;
var _local31:Number;
var _local32:Array;
var _local33:Array;
var _local34:int;
var _local35:int;
var _local36:int;
var _local37:b2Vec2;
var _local38:Number;
var _local39:b2ManifoldPoint;
_arg1.pointCount = 0;
_local7 = 0;
_local8 = [_local7];
_local9 = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5);
_local7 = _local8[0];
if (_local9 > 0){
return;
};
_local10 = 0;
_local11 = [_local10];
_local12 = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3);
_local10 = _local11[0];
if (_local12 > 0){
return;
};
_local15 = new b2XForm();
_local16 = new b2XForm();
_local19 = 0.98;
_local20 = 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;
};
_local21 = [new ClipVertex(), new ClipVertex()];
FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16);
_local22 = _local13.
;
_local23 = _local13.
;
_local24 = _local23[_local17];
_local25 = _local24.Copy();
if ((_local17 + 1) < _local22){
_local24 = _local23[int((_local17 + 1))];
_local37 = _local24.Copy();
} else {
_local24 = _local23[0];
_local37 = _local24.Copy();
};
_local26 = b2Math.SubtractVV(_local37, _local25);
_local27 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25));
_local27.Normalize();
_local28 = b2Math.b2CrossVF(_local27, 1);
_local25 = b2Math.b2MulX(_local15, _local25);
_local37 = b2Math.b2MulX(_local15, _local37);
_local29 = b2Math.b2Dot(_local28, _local25);
_local30 = -(b2Math.b2Dot(_local27, _local25));
_local31 = b2Math.b2Dot(_local27, _local37);
_local32 = [new ClipVertex(), new ClipVertex()];
_local33 = [new ClipVertex(), new ClipVertex()];
_local34 = ClipSegmentToLine(_local32, _local21, _local27.(), _local30);
if (_local34 < 2){
return;
};
_local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31);
if (_local34 < 2){
return;
};
_arg1.normal = (_local18) ? _local28.() : _local28.Copy();
_local35 = 0;
_local36 = 0;
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..flip = _local18;
_local35++;
};
_local36++;
};
_arg1.pointCount = _local35;
}
public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{
var _local6:int;
var _local7:Array;
var _local8:b2Vec2;
var _local9:b2Mat22;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:int;
var _local15:Number;
var _local16:int;
var _local17:Number;
var _local18:int;
var _local19:Number;
var _local20:int;
var _local21:Number;
var _local22:int;
var _local23:Number;
var _local24:int;
var _local25:Number;
_local6 = _arg2.
;
_local7 = _arg2.;
_local9 = _arg5.R;
_local8 = _arg4.;
_local10 = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)));
_local11 = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)));
_local9 = _arg3.R;
_local8 = _arg2.;
_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))));
_local12 = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y));
_local13 = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y));
_local14 = 0;
_local15 = -(Number.MAX_VALUE);
_local16 = 0;
while (_local16 < _local6) {
_local8 = _local7[_local16];
_local25 = ((_local8.x * _local12) + (_local8.y * _local13));
if (_local25 > _local15){
_local15 = _local25;
_local14 = _local16;
};
_local16++;
};
_local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5);
if (_local17 > 0){
return (_local17);
};
_local18 = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1);
_local19 = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5);
if (_local19 > 0){
return (_local19);
};
_local20 = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0;
_local21 = 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 _local10: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);
_local10 = (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 _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:b2ManifoldPoint;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
_arg1.pointCount = 0;
_local6 = _arg3.R;
_local7 = _arg2.m_localPosition;
_local8 = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y)));
_local9 = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y)));
_local6 = _arg5.R;
_local7 = _arg4.m_localPosition;
_local10 = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y)));
_local11 = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y)));
_local12 = (_local10 - _local8);
_local13 = (_local11 - _local9);
_local14 = ((_local12 * _local12) + (_local13 * _local13));
_local15 = _arg2.m_radius;
_local16 = _arg4.m_radius;
_local17 = (_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;
_local19 = _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));
_local20 = (0.5 * (_local8 + _local10));
_local21 = (0.5 * (_local9 + _local11));
_local22 = (_local20 - _arg3.position.x);
_local23 = (_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 _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:int;
var _local19:Number;
var _local20:Number;
var _local21:int;
var _local22:Array;
var _local23:Array;
var _local24:int;
var _local25:int;
var _local26:int;
var _local27:b2Vec2;
var _local28:Number;
var _local29:Number;
var _local30:Number;
var _local31:Number;
var _local32:Number;
var _local33:Number;
var _local34:Number;
_arg1.pointCount = 0;
_local12 = _arg5.R;
_local11 = _arg4.m_localPosition;
_local13 = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)));
_local14 = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)));
_local7 = (_local13 - _arg3.position.x);
_local8 = (_local14 - _arg3.position.y);
_local12 = _arg3.R;
_local15 = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y));
_local16 = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y));
_local18 = 0;
_local19 = -(Number.MAX_VALUE);
_local20 = _arg4.m_radius;
_local21 = _arg2.
;
_local22 = _arg2.
;
_local23 = _arg2.;
_local24 = 0;
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..incidentEdge = _local18;
_local6.id..incidentVertex = b2_nullFeature;
_local6.id..referenceEdge = 0;
_local6.id..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;
};
_local25 = _local18;
_local26 = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0;
_local11 = _local22[_local25];
_local27 = _local22[_local26];
_local28 = (_local27.x - _local11.x);
_local29 = (_local27.y - _local11.y);
_local30 = Math.sqrt(((_local28 * _local28) + (_local29 * _local29)));
_local28 = (_local28 / _local30);
_local29 = (_local29 / _local30);
_local7 = (_local15 - _local11.x);
_local8 = (_local16 - _local11.y);
_local31 = ((_local7 * _local28) + (_local8 * _local29));
_local6 = _arg1.points[0];
if (_local31 <= 0){
_local32 = _local11.x;
_local33 = _local11.y;
_local6.id..incidentEdge = b2_nullFeature;
_local6.id..incidentVertex = _local25;
} else {
if (_local31 >= _local30){
_local32 = _local27.x;
_local33 = _local27.y;
_local6.id..incidentEdge = b2_nullFeature;
_local6.id..incidentVertex = _local26;
} else {
_local32 = ((_local28 * _local31) + _local11.x);
_local33 = ((_local29 * _local31) + _local11.y);
_local6.id..incidentEdge = _local18;
_local6.id..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..referenceEdge = 0;
_local6.id..flip = 0;
}
}
}//package Box2D.Collision
Section 15
//b2ContactID (Box2D.Collision.b2ContactID)
package Box2D.Collision {
public class b2ContactID {
public var _key:uint;
public var :Features;
public function b2ContactID(){
= new Features();
super();
. = this;
}
public function Set(_arg1:b2ContactID):void{
key = _arg1._key;
}
public function Copy():b2ContactID{
var _local1:b2ContactID;
_local1 = new b2ContactID();
_local1.key = key;
return (_local1);
}
public function get key():uint{
return (_key);
}
public function set key(_arg1:uint):void{
_key = _arg1;
. = (_key & 0xFF);
. = (((_key & 0xFF00) >> 8) & 0xFF);
. = (((_key & 0xFF0000) >> 16) & 0xFF);
. = (((_key & 4278190080) >> 24) & 0xFF);
}
}
}//package Box2D.Collision
Section 16
//b2ContactPoint (Box2D.Collision.b2ContactPoint)
package Box2D.Collision {
import Box2D.Common.Math.*;
import Box2D.Collision.Shapes.*;
public class b2ContactPoint {
public var 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 friction:Number;
public var velocity:b2Vec2;
public function b2ContactPoint(){
position = new b2Vec2();
velocity = new b2Vec2();
normal = new b2Vec2();
id = new b2ContactID();
super();
}
}
}//package Box2D.Collision
Section 17
//b2Distance (Box2D.Collision.b2Distance)
package Box2D.Collision {
import Box2D.Common.Math.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
public class b2Distance {
private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()];
private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()];
private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()];
private static var gPoint:b2Point = new b2Point();
public static var g_GJK_Iterations:int = 0;
public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{
var _local4:Number;
var _local5:int;
var _local6:b2Vec2;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
_local4 = (100 * Number.MIN_VALUE);
_local5 = 0;
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 _local8:Array;
var _local9:Array;
var _local10:Array;
var _local11:int;
var _local12:Number;
var _local13:int;
var _local14:int;
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;
_local8 = s_p1s;
_local9 = s_p2s;
_local10 = s_points;
_local11 = 0;
_arg1.SetV(_arg3.GetFirstVertex(_arg4));
_arg2.SetV(_arg5.GetFirstVertex(_arg6));
_local12 = 0;
_local13 = 20;
_local14 = 0;
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 _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
_local7 = _arg4.R;
_local8 = _arg3.m_localPosition;
_local9 = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y)));
_local10 = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y)));
_local7 = _arg6.R;
_local8 = _arg5.m_localPosition;
_local11 = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y)));
_local12 = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y)));
_local13 = (_local11 - _local9);
_local14 = (_local12 - _local10);
_local15 = ((_local13 * _local13) + (_local14 * _local14));
_local16 = (_arg3.m_radius - b2Settings.b2_toiSlop);
_local17 = (_arg5.m_radius - b2Settings.b2_toiSlop);
_local18 = (_local16 + _local17);
if (_local15 > (_local18 * _local18)){
_local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14)));
_local13 = (_local13 / _local19);
_local14 = (_local14 / _local19);
_local20 = (_local19 - _local18);
_arg1.x = (_local9 + (_local16 * _local13));
_arg1.y = (_local10 + (_local16 * _local14));
_arg2.x = (_local11 - (_local17 * _local13));
_arg2.y = (_local12 - (_local17 * _local14));
return (_local20);
};
if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){
_local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14)));
_local13 = (_local13 / _local19);
_local14 = (_local14 / _local19);
_arg1.x = (_local9 + (_local16 * _local13));
_arg1.y = (_local10 + (_local16 * _local14));
_arg2.x = _arg1.x;
_arg2.y = _arg1.y;
return (0);
};
_arg1.x = _local9;
_arg1.y = _local10;
_arg2.x = _arg1.x;
_arg2.y = _arg1.y;
return (0);
}
public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{
var _local6:b2Vec2;
var _local7:b2Vec2;
var _local8:b2Vec2;
var _local9:b2Vec2;
var _local10:b2Vec2;
var _local11:b2Vec2;
var _local12:b2Vec2;
var _local13:b2Vec2;
var _local14:b2Vec2;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _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 _local39:Number;
var _local40:Number;
var _local41: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];
_local14 = _arg4[2];
_local15 = _local6.x;
_local16 = _local6.y;
_local17 = _local7.x;
_local18 = _local7.y;
_local19 = _local8.x;
_local20 = _local8.y;
_local21 = (_local17 - _local15);
_local22 = (_local18 - _local16);
_local23 = (_local19 - _local15);
_local24 = (_local20 - _local16);
_local25 = (_local19 - _local17);
_local26 = (_local20 - _local18);
_local27 = -(((_local15 * _local21) + (_local16 * _local22)));
_local28 = ((_local17 * _local21) + (_local18 * _local22));
_local29 = -(((_local15 * _local23) + (_local16 * _local24)));
_local30 = ((_local19 * _local23) + (_local20 * _local24));
_local31 = -(((_local17 * _local25) + (_local18 * _local26)));
_local32 = ((_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);
};
_local33 = ((_local21 * _local24) - (_local22 * _local23));
_local34 = (_local33 * ((_local15 * _local18) - (_local16 * _local17)));
_local36 = (_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);
};
_local37 = (_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);
};
_local38 = ((_local36 + _local37) + _local34);
_local38 = (1 / _local38);
_local39 = (_local36 * _local38);
_local40 = (_local37 * _local38);
_local41 = ((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 _local9:b2Point;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
_local9 = gPoint;
_local8 = _arg5.m_localPosition;
_local7 = _arg6.R;
_local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y)));
_local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y)));
_local10 = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity);
_local11 = (_arg5.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;
var _local8:int;
_local7 = _arg3.m_type;
_local8 = _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 _local6:b2Vec2;
var _local7:b2Vec2;
var _local8:b2Vec2;
var _local9:b2Vec2;
var _local10:b2Vec2;
var _local11:b2Vec2;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
_local6 = _arg5[0];
_local7 = _arg5[1];
_local8 = _arg3[0];
_local9 = _arg3[1];
_local10 = _arg4[0];
_local11 = _arg4[1];
_local12 = -(_local7.x);
_local13 = -(_local7.y);
_local14 = (_local6.x - _local7.x);
_local15 = (_local6.y - _local7.y);
_local16 = 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 points:Array;
public var pointCount:int;// = 0
public var normal:b2Vec2;
public function b2Manifold(){
var _local1:int;
pointCount = 0;
super();
points = new Array(b2Settings.b2_maxManifoldPoints);
_local1 = 0;
while (_local1 < b2Settings.b2_maxManifoldPoints) {
points[_local1] = new b2ManifoldPoint();
_local1++;
};
normal = new b2Vec2();
}
public function Set(_arg1:b2Manifold):void{
var _local2:int;
pointCount = _arg1.pointCount;
_local2 = 0;
while (_local2 < b2Settings.b2_maxManifoldPoints) {
(points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]);
_local2++;
};
normal.SetV(_arg1.normal);
}
public function Reset():void{
var _local1:int;
_local1 = 0;
while (_local1 < b2Settings.b2_maxManifoldPoints) {
(points[_local1] as b2ManifoldPoint).Reset();
_local1++;
};
normal.SetZero();
pointCount = 0;
}
}
}//package Box2D.Collision
Section 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 userData;// = null
public var proxyId1:uint;
public var proxyId2:uint;
public var status:uint;
public var next:uint;
public static var e_pairFinal:uint = 4;
public static var b2_tableMask:int = (b2_tableCapacity - 1);
public static var e_pairRemoved:uint = 2;
public static var b2_nullPair:uint = b2Settings.USHRT_MAX;
public static var e_pairBuffered:uint = 1;
public static var b2_nullProxy:uint = b2Settings.USHRT_MAX;
public static var b2_tableCapacity:int = b2Settings.b2_maxPairs;
public function b2Pair(){
userData = null;
super();
}
public function SetBuffered():void{
status = (status | e_pairBuffered);
}
public function IsBuffered():Boolean{
return (((status & e_pairBuffered) == e_pairBuffered));
}
public function IsFinal():Boolean{
return (((status & e_pairFinal) == e_pairFinal));
}
public function ClearRemoved():void{
status = (status & ~(e_pairRemoved));
}
public function SetFinal():void{
status = (status | e_pairFinal);
}
public function IsRemoved():Boolean{
return (((status & e_pairRemoved) == e_pairRemoved));
}
public function ClearBuffered():void{
status = (status & ~(e_pairBuffered));
}
public function SetRemoved():void{
status = (status | e_pairRemoved);
}
}
}//package Box2D.Collision
Section 22
//b2PairCallback (Box2D.Collision.b2PairCallback)
package Box2D.Collision {
public class b2PairCallback {
public function PairRemoved(_arg1, _arg2, _arg3):void{
}
public function PairAdded(_arg1, _arg2){
return (null);
}
}
}//package Box2D.Collision
Section 23
//b2PairManager (Box2D.Collision.b2PairManager)
package Box2D.Collision {
import Box2D.Common.Math.*;
import Box2D.Common.*;
public class b2PairManager {
public var m_pairCount:int;
public var
:Array;
public var :b2PairCallback;
public var m_pairs:Array;
public var :int;
public var m_hashTable:Array;
public var m_broadPhase:b2BroadPhase;
public var :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++;
};
= new Array(b2Settings.b2_maxPairs);
_local1 = 0;
while (_local1 < b2Settings.b2_maxPairs) {
[_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;
= 0;
}
private function (_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{
var _local4:b2Pair;
var _local5:uint;
_local5 = 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 (_arg1:uint, _arg2:uint):b2Pair{
var _local3:uint;
var _local4:uint;
if (_arg1 > _arg2){
_local4 = _arg1;
_arg1 = _arg2;
_arg2 = _local4;
};
_local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask);
return ( (_arg1, _arg2, _local3));
}
private function
():void{
}
public function Commit():void{
var _local1:b2BufferedPair;
var _local2:int;
var _local3:int;
var _local4:Array;
var _local5:b2Pair;
var _local6:b2Proxy;
var _local7:b2Proxy;
_local3 = 0;
_local4 = m_broadPhase.m_proxyPool;
_local2 = 0;
while (_local2 < ) {
_local1 =
[_local2];
_local5 = (_local1.proxyId1, _local1.proxyId2);
_local5.ClearBuffered();
_local6 = _local4[_local5.proxyId1];
_local7 = _local4[_local5.proxyId2];
if (_local5.IsRemoved()){
if (_local5.IsFinal() == true){
.PairRemoved(_local6.userData, _local7.userData, _local5.userData);
};
_local1 =
[_local3];
_local1.proxyId1 = _local5.proxyId1;
_local1.proxyId2 = _local5.proxyId2;
_local3++;
} else {
if (_local5.IsFinal() == false){
_local5.userData = .PairAdded(_local6.userData, _local7.userData);
_local5.SetFinal();
};
};
_local2++;
};
_local2 = 0;
while (_local2 < _local3) {
_local1 =
[_local2];
(_local1.proxyId1, _local1.proxyId2);
_local2++;
};
= 0;
if (b2BroadPhase.s_validate){
();
};
}
public function RemoveBufferedPair(_arg1:int, _arg2:int):void{
var _local3:b2BufferedPair;
var _local4:b2Pair;
_local4 = (_arg1, _arg2);
if (_local4 == null){
return;
};
if (_local4.IsBuffered() == false){
_local4.SetBuffered();
_local3 =
[];
_local3.proxyId1 = _local4.proxyId1;
_local3.proxyId2 = _local4.proxyId2;
++;
};
_local4.SetRemoved();
if (b2BroadPhase.s_validate){
();
};
}
private function (_arg1:uint, _arg2:uint){
var _local3:b2Pair;
var _local4:uint;
var _local5:uint;
var _local6:b2Pair;
var _local7:uint;
var _local8:uint;
var _local9:*;
if (_arg1 > _arg2){
_local7 = _arg1;
_arg1 = _arg2;
_arg2 = _local7;
};
_local4 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask);
_local5 = m_hashTable[_local4];
_local6 = null;
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 = ;
_local3.proxyId1 = b2Pair.b2_nullProxy;
_local3.proxyId2 = b2Pair.b2_nullProxy;
_local3.userData = null;
_local3.status = 0;
= _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;
= _arg2;
}
public function AddBufferedPair(_arg1:int, _arg2:int):void{
var _local3:b2BufferedPair;
var _local4:b2Pair;
_local4 = (_arg1, _arg2);
if (_local4.IsBuffered() == false){
_local4.SetBuffered();
_local3 =
[];
_local3.proxyId1 = _local4.proxyId1;
_local3.proxyId2 = _local4.proxyId2;
++;
};
_local4.ClearRemoved();
if (b2BroadPhase.s_validate){
();
};
}
private function (_arg1:uint, _arg2:uint):b2Pair{
var _local3:uint;
var _local4:b2Pair;
var _local5:uint;
var _local6:uint;
if (_arg1 > _arg2){
_local6 = _arg1;
_arg1 = _arg2;
_arg2 = _local6;
};
_local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask);
_local4 = (_arg1, _arg2, _local3);
if (_local4 != null){
return (_local4);
};
_local5 = ;
_local4 = m_pairs[_local5];
= _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 ():void{
}
public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{
return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2))));
}
public static function Hash(_arg1:uint, _arg2:uint):uint{
var _local3:uint;
_local3 = (((_arg2 << 16) & 4294901760) | _arg1);
_local3 = (~(_local3) + ((_local3 << 15) & 4294934528));
_local3 = (_local3 ^ ((_local3 >> 12) & 1048575));
_local3 = (_local3 + ((_local3 << 2) & 4294967292));
_local3 = (_local3 ^ ((_local3 >> 4) & 268435455));
_local3 = (_local3 * 2057);
_local3 = (_local3 ^ ((_local3 >> 16) & 0xFFFF));
return (_local3);
}
public static function Equals(_arg1:b2Pair, _arg2:uint, _arg3:uint):Boolean{
return ((((_arg1.proxyId1 == _arg2)) && ((_arg1.proxyId2 == _arg3))));
}
}
}//package Box2D.Collision
Section 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 lowerBounds:Array;
public var upperBounds:Array;
public var userData;// = null
public var timeStamp:uint;
public function b2Proxy(){
lowerBounds = [uint(0), uint(0)];
upperBounds = [uint(0), uint(0)];
userData = null;
super();
}
public function GetNext():uint{
return (lowerBounds[0]);
}
public function IsValid():Boolean{
return (!((overlapCount == b2BroadPhase.b2_invalid)));
}
public function SetNext(_arg1:uint):void{
lowerBounds[0] = (_arg1 & 0xFFFF);
}
}
}//package Box2D.Collision
Section 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 _local5:b2Vec2;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
_local5 = _arg3.p1;
_local6 = (_arg3.p2.x - _local5.x);
_local7 = (_arg3.p2.y - _local5.y);
_local8 = (p2.x - p1.x);
_local9 = (p2.y - p1.y);
_local10 = _local9;
_local11 = -(_local8);
_local12 = (100 * Number.MIN_VALUE);
_local13 = -(((_local6 * _local10) + (_local7 * _local11)));
if (_local13 > _local12){
_local14 = (_local5.x - p1.x);
_local15 = (_local5.y - p1.y);
_local16 = ((_local14 * _local10) + (_local15 * _local11));
if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){
_local17 = ((-(_local7) * _local15) + (_local7 * _local14));
if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){
_local16 = (_local16 / _local13);
_local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11)));
_local10 = (_local10 / _local18);
_local11 = (_local11 / _local18);
_arg1[0] = _local16;
_arg2.Set(_local10, _local11);
return (true);
};
};
};
return (false);
}
}
}//package Box2D.Collision
Section 27
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact)
package Box2D.Collision {
import Box2D.Common.Math.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
public class b2TimeOfImpact {
public static var s_xf1:b2XForm = new b2XForm();
public static var s_xf2:b2XForm = new b2XForm();
public static var s_p1:b2Vec2 = new b2Vec2();
public static var s_p2:b2Vec2 = new b2Vec2();
public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{
var _local5:Number;
var _local6:Number;
var _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:b2Vec2;
var _local18:b2Vec2;
var _local19:int;
var _local20:int;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
var _local26:b2XForm;
var _local27:b2XForm;
var _local28:Number;
var _local29:Number;
var _local30:Number;
var _local31:Number;
_local7 = _arg1.m_sweepRadius;
_local8 = _arg3.m_sweepRadius;
_local9 = _arg2.t0;
_local10 = (_arg2.c.x - _arg2.c0.x);
_local11 = (_arg2.c.y - _arg2.c0.y);
_local12 = (_arg4.c.x - _arg4.c0.x);
_local13 = (_arg4.c.y - _arg4.c0.y);
_local14 = (_arg2.a - _arg2.a0);
_local15 = (_arg4.a - _arg4.a0);
_local16 = 0;
_local17 = s_p1;
_local18 = s_p2;
_local19 = 20;
_local20 = 0;
_local21 = 0;
_local22 = 0;
_local23 = 0;
_local24 = 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 v:b2Vec2;
public var id:b2ContactID;
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 :int;
public var :int;
public var :int;
public var :int;
public var :b2ContactID;
public function get referenceEdge():int{
return ();
}
public function set incidentVertex(_arg1:int):void{
= _arg1;
._key = ((._key & 4278255615) | (( << 16) & 0xFF0000));
}
public function get flip():int{
return ();
}
public function get incidentEdge():int{
return ();
}
public function set referenceEdge(_arg1:int):void{
= _arg1;
._key = ((._key & 4294967040) | ( & 0xFF));
}
public function set flip(_arg1:int):void{
= _arg1;
._key = ((._key & 0xFFFFFF) | (( << 24) & 4278190080));
}
public function get incidentVertex():int{
return ();
}
public function set incidentEdge(_arg1:int):void{
= _arg1;
._key = ((._key & 4294902015) | (( << 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 Set(_arg1:Number):void{
var _local2:Number;
var _local3:Number;
_local2 = Math.cos(_arg1);
_local3 = Math.sin(_arg1);
col1.x = _local2;
col2.x = -(_local3);
col1.y = _local3;
col2.y = _local2;
}
public function (_arg1:b2Vec2, _arg2:b2Vec2):void{
col1.SetV(_arg1);
col2.SetV(_arg2);
}
public function SetZero():void{
col1.x = 0;
col2.x = 0;
col1.y = 0;
col2.y = 0;
}
public function SetM(_arg1:b2Mat22):void{
col1.SetV(_arg1.col1);
col2.SetV(_arg1.col2);
}
public function AddM(_arg1:b2Mat22):void{
col1.x = (col1.x + _arg1.col1.x);
col1.y = (col1.y + _arg1.col1.y);
col2.x = (col2.x + _arg1.col2.x);
col2.y = (col2.y + _arg1.col2.y);
}
public function Abs():void{
col1.Abs();
col2.Abs();
}
public function Copy():b2Mat22{
return (new b2Mat22(0, col1, col2));
}
public function Invert(_arg1:b2Mat22):b2Mat22{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
_local2 = col1.x;
_local3 = col2.x;
_local4 = col1.y;
_local5 = col2.y;
_local6 = ((_local2 * _local5) - (_local3 * _local4));
_local6 = (1 / _local6);
_arg1.col1.x = (_local6 * _local5);
_arg1.col2.x = (-(_local6) * _local3);
_arg1.col1.y = (-(_local6) * _local4);
_arg1.col2.y = (_local6 * _local2);
return (_arg1);
}
public function GetAngle():Number{
return (Math.atan2(col1.y, col1.x));
}
public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
_local4 = col1.x;
_local5 = col2.x;
_local6 = col1.y;
_local7 = col2.y;
_local8 = ((_local4 * _local7) - (_local5 * _local6));
_local8 = (1 / _local8);
_arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3)));
_arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2)));
return (_arg1);
}
}
}//package Box2D.Common.Math
Section 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;
_local3 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x));
return (_local3);
}
public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2;
_local3 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y));
return (_local3);
}
public static function b2IsValid(_arg1:Number):Boolean{
return (isFinite(_arg1));
}
public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2;
_local3 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y));
return (_local3);
}
public static function b2MulX(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2;
_local3 = b2MulMV(_arg1.R, _arg2);
_local3.x = (_local3.x + _arg1.position.x);
_local3.y = (_local3.y + _arg1.position.y);
return (_local3);
}
public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{
var _local3:Number;
var _local4:Number;
_local3 = (_arg1.x - _arg2.x);
_local4 = (_arg1.y - _arg2.y);
return (((_local3 * _local3) + (_local4 * _local4)));
}
public static function b2Swap(_arg1:Array, _arg2:Array):void{
var _local3:*;
_local3 = _arg1[0];
_arg1[0] = _arg2[0];
_arg2[0] = _local3;
}
public static function b2AbsM(_arg1:b2Mat22):b2Mat22{
var _local2:b2Mat22;
_local2 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2));
return (_local2);
}
public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2;
_local3 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y));
return (_local3);
}
public static function b2MulXT(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2;
var _local4:Number;
_local3 = SubtractVV(_arg2, _arg1.position);
_local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y));
_local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y));
_local3.x = _local4;
return (_local3);
}
public static function b2Abs(_arg1:Number):Number{
return (((_arg1 > 0)) ? _arg1 : -(_arg1));
}
public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{
return (b2Max(_arg2, b2Min(_arg1, _arg3)));
}
public static function b2AbsV(_arg1:b2Vec2):b2Vec2{
var _local2:b2Vec2;
_local2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y));
return (_local2);
}
public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2;
_local3 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y));
return (_local3);
}
public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{
return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x)));
}
public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{
return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y)));
}
public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2;
_local3 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x));
return (_local3);
}
public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{
var _local3:b2Mat22;
_local3 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2));
return (_local3);
}
public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{
var _local3:Number;
var _local4:Number;
_local3 = (_arg1.x - _arg2.x);
_local4 = (_arg1.y - _arg2.y);
return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4))));
}
public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{
var _local3:b2Vec2;
var _local4:b2Vec2;
var _local5:b2Mat22;
_local3 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1));
_local4 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2));
_local5 = new b2Mat22(0, _local3, _local4);
return (_local5);
}
public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2;
_local3 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y));
return (_local3);
}
public static function b2IsPowerOfTwo(_arg1:uint):Boolean{
var _local2:Boolean;
_local2 = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0)));
return (_local2);
}
public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{
return (b2MaxV(_arg2, b2MinV(_arg1, _arg3)));
}
public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{
var _local3:Number;
_local3 = Math.random();
_local3 = (((_arg2 - _arg1) * _local3) + _arg1);
return (_local3);
}
public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2;
_local3 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2));
return (_local3);
}
public static function b2Min(_arg1:Number, _arg2:Number):Number{
return (((_arg1 < _arg2)) ? _arg1 : _arg2);
}
public static function b2Random():Number{
return (((Math.random() * 2) - 1));
}
public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{
var _local3:b2Mat22;
_local3 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2));
return (_local3);
}
public static function b2NextPowerOfTwo(_arg1:uint):uint{
_arg1 = (_arg1 | ((_arg1 >> 1) & 2147483647));
_arg1 = (_arg1 | ((_arg1 >> 2) & 1073741823));
_arg1 = (_arg1 | ((_arg1 >> 4) & 268435455));
_arg1 = (_arg1 | ((_arg1 >> 8) & 0xFFFFFF));
_arg1 = (_arg1 | ((_arg1 >> 16) & 0xFFFF));
return ((_arg1 + 1));
}
public static function b2Max(_arg1:Number, _arg2:Number):Number{
return (((_arg1 > _arg2)) ? _arg1 : _arg2);
}
public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2;
_local3 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y)));
return (_local3);
}
}
}//package Box2D.Common.Math
Section 32
//b2Sweep (Box2D.Common.Math.b2Sweep)
package Box2D.Common.Math {
public class b2Sweep {
public var localCenter:b2Vec2;
public var c:b2Vec2;
public var a:Number;
public var c0:b2Vec2;
public var a0:Number;
public var t0:Number;
public function b2Sweep(){
localCenter = new b2Vec2();
c0 = new b2Vec2();
c = new b2Vec2();
super();
}
public function Advance(_arg1:Number):void{
var _local2:Number;
if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){
_local2 = ((_arg1 - t0) / (1 - t0));
c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x));
c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y));
a0 = (((1 - _local2) * a0) + (_local2 * a));
t0 = _arg1;
};
}
public function GetXForm(_arg1:b2XForm, _arg2:Number):void{
var _local3:b2Mat22;
var _local4:Number;
var _local5:Number;
if ((1 - t0) > Number.MIN_VALUE){
_local4 = ((_arg2 - t0) / (1 - t0));
_arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x));
_arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y));
_local5 = (((1 - _local4) * a0) + (_local4 * a));
_arg1.R.Set(_local5);
} else {
_arg1.position.SetV(c);
_arg1.R.Set(a);
};
_local3 = _arg1.R;
_arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y)));
_arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y)));
}
}
}//package Box2D.Common.Math
Section 33
//b2Vec2 (Box2D.Common.Math.b2Vec2)
package Box2D.Common.Math {
public class b2Vec2 {
public var x:Number;
public var y:Number;
public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{
x = _arg1;
y = _arg2;
}
public function Set(_arg1:Number=0, _arg2:Number=0):void{
x = _arg1;
y = _arg2;
}
public function Multiply(_arg1:Number):void{
x = (x * _arg1);
y = (y * _arg1);
}
public function Length():Number{
return (Math.sqrt(((x * x) + (y * y))));
}
public function LengthSquared():Number{
return (((x * x) + (y * y)));
}
public function SetZero():void{
x = 0;
y = 0;
}
public function Add(_arg1:b2Vec2):void{
x = (x + _arg1.x);
y = (y + _arg1.y);
}
public function (_arg1:Number):b2Vec2{
var _local2:Number;
_local2 = Length();
return (new b2Vec2((Math.cos(_arg1) * _local2), (Math.sin(_arg1) * _local2)));
}
public function (_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 ():b2Vec2{
return (new b2Vec2(-(x), -(y)));
}
public function (_arg1:Number):void{
var _local2:Number;
_local2 = x;
x = (_arg1 * y);
y = (-(_arg1) * _local2);
}
public function Abs():void{
if (x < 0){
x = -(x);
};
if (y < 0){
y = -(y);
};
}
public function Copy():b2Vec2{
return (new b2Vec2(x, y));
}
public function getAngle(_arg1:b2Vec2=null):Number{
if (_arg1 == null){
return (Math.atan2((0 - y), (0 - x)));
};
return (Math.atan2((_arg1.y - y), (_arg1.x - x)));
}
public function IsValid():Boolean{
return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y))));
}
public function (_arg1:b2Vec2):void{
x = ((x < _arg1.x)) ? x : _arg1.x;
y = ((y < _arg1.y)) ? y : _arg1.y;
}
public function (_arg1:b2Mat22):void{
var _local2:Number;
_local2 = x;
x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y));
y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y));
}
public function (_arg1:b2Mat22):void{
var _local2:Number;
_local2 = b2Math.b2Dot(this, _arg1.col1);
y = b2Math.b2Dot(this, _arg1.col2);
x = _local2;
}
public function Normalize():Number{
var _local1:Number;
var _local2:Number;
_local1 = Math.sqrt(((x * x) + (y * y)));
if (_local1 < Number.MIN_VALUE){
return (0);
};
_local2 = (1 / _local1);
x = (x * _local2);
y = (y * _local2);
return (_local1);
}
public function (_arg1:Number):void{
var _local2:Number;
_local2 = x;
x = (-(_arg1) * y);
y = (_arg1 * _local2);
}
public function (_arg1:b2Vec2):void{
x = (x - _arg1.x);
y = (y - _arg1.y);
}
public function toString():String{
return ((((("b2Vector (x:" + x) + ",y:") + 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 R:b2Mat22;
public var position:b2Vec2;
public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{
position = new b2Vec2();
R = new b2Mat22();
super();
if (_arg1){
position.SetV(_arg1);
R.SetM(_arg2);
};
}
public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{
position.SetV(_arg1);
R.SetM(_arg2);
}
public function Set(_arg1:b2XForm):void{
position.SetV(_arg1.position);
R.SetM(_arg1.R);
}
public function SetIdentity():void{
position.SetZero();
R.SetIdentity();
}
}
}//package Box2D.Common.Math
Section 35
//b2Color (Box2D.Common.b2Color)
package Box2D.Common {
import Box2D.Common.Math.*;
public class b2Color {
private var :uint;// = 0
private var
:uint;// = 0
private var :uint;// = 0
public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){
= 0;
= 0;
= 0;
super();
= uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1)));
= uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1)));
= uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1)));
}
public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{
= uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1)));
= uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1)));
= uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1)));
}
public function get color():uint{
return ((( | ( << 8)) | (
<< 16)));
}
public function set r(_arg1:Number):void{
= uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1)));
}
public function set b(_arg1:Number):void{
= uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1)));
}
public function set g(_arg1:Number):void{
= 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.Common.Math.*;
import Box2D.Collision.Shapes.*;
import Box2D.Dynamics.*;
import Box2D.Collision.*;
public class b2CircleContact extends b2Contact {
private var
:Array;
private var
:b2Manifold;
public var m_manifold:b2Manifold;
private static const s_evalCP:b2ContactPoint = new b2ContactPoint();
public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){
var _local3:b2ManifoldPoint;
= [new b2Manifold()];
= new b2Manifold();
super(_arg1, _arg2);
m_manifold =
[0];
m_manifold.pointCount = 0;
_local3 = m_manifold.points[0];
_local3.normalImpulse = 0;
_local3.tangentImpulse = 0;
}
override public function GetManifolds():Array{
return (
);
}
override public function Evaluate(_arg1:b2ContactListener):void{
var _local2:b2Vec2;
var _local3:b2Vec2;
var _local4:b2ManifoldPoint;
var _local5:b2Body;
var _local6:b2Body;
var _local7:b2ContactPoint;
var _local8:b2ManifoldPoint;
_local5 = m_shape1.m_body;
_local6 = m_shape2.m_body;
.Set(m_manifold);
b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf);
_local7 = 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 (
.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 =
.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 ((((
.pointCount > 0)) && (_arg1))){
_local4 =
.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(
.normal);
_local7.separation = _local4.separation;
_local7.id.key = _local4.id._key;
_arg1.Remove(_local7);
};
};
}
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.Common.Math.*;
import Box2D.Collision.Shapes.*;
import Box2D.Dynamics.*;
import Box2D.Collision.*;
import Box2D.Common.*;
public class b2Contact {
public var m_shape1:b2Shape;
public var m_shape2:b2Shape;
public var m_prev:b2Contact;
public var m_toi:Number;
public var m_next:b2Contact;
public var m_friction:Number;
public var m_manifoldCount:int;
public var m_node1:b2ContactEdge;
public var m_node2:b2ContactEdge;
public var m_restitution:Number;
public var m_flags:uint;
public static var e_toiFlag:uint = 8;
public static var e_nonSolidFlag:uint = 1;
public static var e_slowFlag:uint = 2;
public static var e_islandFlag:uint = 4;
public static var s_registers:Array;
public static var s_initialized:Boolean = false;
public function b2Contact(_arg1:b2Shape=null, _arg2:b2Shape=null){
m_node1 = new b2ContactEdge();
m_node2 = new b2ContactEdge();
super();
m_flags = 0;
if (((!(_arg1)) || (!(_arg2)))){
m_shape1 = null;
m_shape2 = null;
return;
};
if (((_arg1.
()) || (_arg2.
()))){
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
():b2Shape{
return (m_shape1);
}
public function
():Boolean{
return (((m_flags & e_nonSolidFlag) == 0));
}
public function GetNext():b2Contact{
return (m_next);
}
public function GetManifolds():Array{
return (null);
}
public function
():b2Shape{
return (m_shape2);
}
public function
():int{
return (m_manifoldCount);
}
public function Update(_arg1:b2ContactListener):void{
var _local2:int;
var _local3:int;
var _local4:b2Body;
var _local5:b2Body;
_local2 = m_manifoldCount;
Evaluate(_arg1);
_local3 = m_manifoldCount;
_local4 = m_shape1.m_body;
_local5 = 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 _local1:int;
var _local2:int;
s_registers = new Array(b2Shape.e_shapeTypeCount);
_local1 = 0;
while (_local1 < b2Shape.e_shapeTypeCount) {
s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount);
_local2 = 0;
while (_local2 < b2Shape.e_shapeTypeCount) {
s_registers[_local1][_local2] = new b2ContactRegister();
_local2++;
};
_local1++;
};
AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape);
AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape);
AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape);
}
public static function Destroy(_arg1:b2Contact, _arg2):void{
var _local3:int;
var _local4:int;
var _local5:b2ContactRegister;
var _local6:Function;
if (_arg1.m_manifoldCount > 0){
_arg1.m_shape1.m_body.WakeUp();
_arg1.m_shape2.m_body.WakeUp();
};
_local3 = _arg1.m_shape1.m_type;
_local4 = _arg1.m_shape2.m_type;
_local5 = s_registers[_local3][_local4];
_local6 = _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 _local4:int;
var _local5:int;
var _local6:b2ContactRegister;
var _local7:Function;
var _local8:b2Contact;
var _local9:int;
var _local10:b2Manifold;
if (s_initialized == false){
InitializeRegisters();
s_initialized = true;
};
_local4 = _arg1.m_type;
_local5 = _arg2.m_type;
_local6 = s_registers[_local4][_local5];
_local7 = _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.();
_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 restitution:Number;
public var body1:b2Body;
public var manifold:b2Manifold;
public var normal:b2Vec2;
public var body2:b2Body;
public var friction:Number;
public var pointCount:int;
public function b2ContactConstraint(){
var _local1:int;
normal = new b2Vec2();
super();
points = new Array(b2Settings.b2_maxManifoldPoints);
_local1 = 0;
while (_local1 < b2Settings.b2_maxManifoldPoints) {
points[_local1] = new b2ContactConstraintPoint();
_local1++;
};
}
}
}//package Box2D.Dynamics.Contacts
Section 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 equalizedMass:Number;
public var tangentMass: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 next:b2ContactEdge;
public var other:b2Body;
public var contact:b2Contact;
public var prev: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.Common.Math.*;
import Box2D.Collision.Shapes.*;
import Box2D.Collision.*;
public class b2ContactResult {
public var normal:b2Vec2;
public var position:b2Vec2;
public var shape1:b2Shape;
public var shape2:b2Shape;
public var normalImpulse:Number;
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 :int;
public var m_constraints:Array;
public var m_allocator;
public var
:b2TimeStep;
public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){
var _local5:b2Contact;
var _local6:int;
var _local7:b2Vec2;
var _local8:b2Mat22;
var _local9:int;
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;
= new b2TimeStep();
m_constraints = new Array();
super();
.dt = _arg1.dt;
.inv_dt = _arg1.inv_dt;
.maxIterations = _arg1.maxIterations;
m_allocator = _arg4;
= 0;
_local6 = 0;
while (_local6 < _arg3) {
_local5 = _arg2[_local6];
= ( + _local5.m_manifoldCount);
_local6++;
};
_local6 = 0;
while (_local6 < ) {
m_constraints[_local6] = new b2ContactConstraint();
_local6++;
};
_local9 = 0;
_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 _local5:int;
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;
_local5 = 0;
while (_local5 < ) {
_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 _local2:Number;
var _local3:b2Mat22;
var _local4:b2Vec2;
var _local5:int;
var _local6:b2ContactConstraint;
var _local7:b2Body;
var _local8:b2Body;
var _local9:b2Vec2;
var _local10:Number;
var _local11:b2Vec2;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:int;
var _local20:int;
var _local21:b2ContactConstraintPoint;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
var _local26:Number;
var _local27:Number;
var _local28:Number;
var _local29:Number;
var _local30:Number;
var _local31:Number;
var _local32:Number;
var _local33:Number;
var _local34:Number;
var _local35:Number;
var _local36:Number;
var _local37:Number;
var _local38:Number;
_local2 = 0;
_local5 = 0;
while (_local5 < ) {
_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 _local19:int;
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;
_local19 = 0;
while (_local19 < ) {
_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 _local1:int;
var _local2:b2ContactConstraint;
var _local3:b2Manifold;
var _local4:int;
var _local5:b2ManifoldPoint;
var _local6:b2ContactConstraintPoint;
_local1 = 0;
while (_local1 < ) {
_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 GetManifolds():Array{
return (null);
}
override public function Evaluate(_arg1:b2ContactListener):void{
}
}
}//package Box2D.Dynamics.Contacts
Section 46
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact)
package Box2D.Dynamics.Contacts {
import Box2D.Common.Math.*;
import Box2D.Collision.Shapes.*;
import Box2D.Dynamics.*;
import Box2D.Collision.*;
import Box2D.Common.*;
public class b2PolyAndCircleContact extends b2Contact {
private var
:Array;
private var
:b2Manifold;
public var m_manifold:b2Manifold;
private static const s_evalCP:b2ContactPoint = new b2ContactPoint();
public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){
var _local3:b2ManifoldPoint;
= [new b2Manifold()];
= new b2Manifold();
super(_arg1, _arg2);
m_manifold =
[0];
b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape));
b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape));
m_manifold.pointCount = 0;
_local3 = m_manifold.points[0];
_local3.normalImpulse = 0;
_local3.tangentImpulse = 0;
}
override public function GetManifolds():Array{
return (
);
}
override public function Evaluate(_arg1:b2ContactListener):void{
var _local2:int;
var _local3:b2Vec2;
var _local4:b2Vec2;
var _local5:b2ManifoldPoint;
var _local6:b2Body;
var _local7:b2Body;
var _local8:Array;
var _local9:b2ContactPoint;
var _local10:b2ManifoldPoint;
var _local11:Boolean;
var _local12:uint;
var _local13:int;
_local6 = m_shape1.m_body;
_local7 = m_shape2.m_body;
.Set(m_manifold);
b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf);
_local8 = [false, false];
_local9 = 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 <
.pointCount) {
if (_local8[_local13] == true){
} else {
_local5 =
.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 <
.pointCount) {
if (_local8[_local2]){
} else {
_local5 =
.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(
.normal);
_local9.separation = _local5.separation;
_local9.id.key = _local5.id._key;
_arg1.Remove(_local9);
};
_local2++;
};
}
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.Common.Math.*;
import Box2D.Collision.Shapes.*;
import Box2D.Dynamics.*;
import Box2D.Collision.*;
public class b2PolygonContact extends b2Contact {
private var
:Array;
private var
:b2Manifold;
public var m_manifold:b2Manifold;
private static const s_evalCP:b2ContactPoint = new b2ContactPoint();
public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{
= new b2Manifold();
= [new b2Manifold()];
super(_arg1, _arg2);
m_manifold =
[0];
m_manifold.pointCount = 0;
}
override public function GetManifolds():Array{
return (
);
}
override public function Evaluate(_arg1:b2ContactListener):void{
var _local2:b2Vec2;
var _local3:b2Vec2;
var _local4:b2ManifoldPoint;
var _local5:b2Body;
var _local6:b2Body;
var _local7:b2ContactPoint;
var _local8:int;
var _local9:Array;
var _local10:b2ManifoldPoint;
var _local11:Boolean;
var _local12:uint;
var _local13:int;
_local5 = m_shape1.m_body;
_local6 = m_shape2.m_body;
.Set(m_manifold);
b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf);
_local9 = [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 <
.pointCount) {
if (_local9[_local13] == true){
} else {
_local4 =
.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 <
.pointCount) {
if (_local9[_local8]){
} else {
_local4 =
.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(
.normal);
_local7.separation = _local4.separation;
_local7.id.key = _local4.id._key;
_arg1.Remove(_local7);
};
_local8++;
};
}
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_mass:Number;
public var
:b2Vec2;
public var m_impulse:Number;
public var :Number;
public var
:Number;
public var m_localAnchor2:b2Vec2;
public var m_localAnchor1:b2Vec2;
public var :Number;
public var m_gamma:Number;
public var :Number;
public function b2DistanceJoint(_arg1:b2DistanceJointDef){
var _local2:b2Mat22;
var _local3:Number;
var _local4:Number;
m_localAnchor1 = new b2Vec2();
m_localAnchor2 = new b2Vec2();
= new b2Vec2();
super(_arg1);
m_localAnchor1.SetV(_arg1.localAnchor1);
m_localAnchor2.SetV(_arg1.localAnchor2);
= _arg1.length;
= _arg1.frequencyHz;
= _arg1.dampingRatio;
m_impulse = 0;
m_gamma = 0;
= 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 GetReactionForce():b2Vec2{
var _local1:b2Vec2;
_local1 = new b2Vec2();
_local1.SetV(
);
_local1.Multiply((m_inv_dt * m_impulse));
return (_local1);
}
override public function SolvePositionConstraints():Boolean{
var _local1:b2Mat22;
var _local2:b2Body;
var _local3:b2Body;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
if (
> 0){
return (true);
};
_local2 = m_body1;
_local3 = m_body2;
_local1 = _local2.m_xf.R;
_local4 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x);
_local5 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y);
_local6 = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5));
_local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5));
_local4 = _local6;
_local1 = _local3.m_xf.R;
_local7 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x);
_local8 = (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;
_local9 = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4);
_local10 = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5);
_local11 = Math.sqrt(((_local9 * _local9) + (_local10 * _local10)));
_local9 = (_local9 / _local11);
_local10 = (_local10 / _local11);
_local12 = (_local11 - );
_local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection);
_local13 = (-(m_mass) * _local12);
.Set(_local9, _local10);
_local14 = (_local13 *
.x);
_local15 = (_local13 *
.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 InitVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Mat22;
var _local3:Number;
var _local4:b2Body;
var _local5:b2Body;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
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);
_local7 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y);
_local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7));
_local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7));
_local6 = _local3;
_local2 = _local5.m_xf.R;
_local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x);
_local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y);
_local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9));
_local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9));
_local8 = _local3;
.x = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6);
.y = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7);
_local10 = Math.sqrt(((
.x *
.x) + (
.y *
.y)));
if (_local10 > b2Settings.b2_linearSlop){
.Multiply((1 / _local10));
} else {
.SetZero();
};
_local11 = ((_local6 *
.y) - (_local7 *
.x));
_local12 = ((_local8 *
.y) - (_local9 *
.x));
_local13 = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12));
m_mass = (1 / _local13);
if (
> 0){
_local14 = (_local10 - );
_local15 = ((2 * Math.PI) *
);
_local16 = (((2 * m_mass) * ) * _local15);
_local17 = ((m_mass * _local15) * _local15);
m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17))));
= (((_local14 * _arg1.dt) * _local17) * m_gamma);
m_mass = (1 / (_local13 + m_gamma));
};
if (_arg1.warmStarting){
m_impulse = (m_impulse * _arg1.dtRatio);
_local18 = (m_impulse *
.x);
_local19 = (m_impulse *
.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 SolveVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Mat22;
var _local3:b2Body;
var _local4:b2Body;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
_local3 = m_body1;
_local4 = m_body2;
_local2 = _local3.m_xf.R;
_local5 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x);
_local6 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y);
_local7 = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6));
_local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6));
_local5 = _local7;
_local2 = _local4.m_xf.R;
_local8 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x);
_local9 = (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;
_local10 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6));
_local11 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5));
_local12 = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9));
_local13 = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8));
_local14 = ((
.x * (_local12 - _local10)) + (
.y * (_local13 - _local11)));
_local15 = (-(m_mass) * ((_local14 + ) + (m_gamma * m_impulse)));
m_impulse = (m_impulse + _local15);
_local16 = (_local15 *
.x);
_local17 = (_local15 *
.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 length:Number;
public var dampingRatio:Number;
public var frequencyHz:Number;
public var localAnchor2:b2Vec2;
public var localAnchor1:b2Vec2;
public function b2DistanceJointDef(){
localAnchor1 = new b2Vec2();
localAnchor2 = new b2Vec2();
super();
type = b2Joint.e_distanceJoint;
length = 1;
frequencyHz = 0;
dampingRatio = 0;
}
public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{
var _local5:Number;
var _local6:Number;
body1 = _arg1;
body2 = _arg2;
localAnchor1.SetV(body1.GetLocalPoint(_arg3));
localAnchor2.SetV(body2.GetLocalPoint(_arg4));
_local5 = (_arg4.x - _arg3.x);
_local6 = (_arg4.y - _arg3.y);
length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6)));
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_force:Number;
public var m_mass:Number;
public var
:b2PrismaticJoint;
public var :b2PrismaticJoint;
public var :b2Body;
public var :b2Body;
public var m_constant:Number;
public var :b2RevoluteJoint;
public var :b2RevoluteJoint;
public var m_groundAnchor1:b2Vec2;
public var m_groundAnchor2:b2Vec2;
public var m_localAnchor1:b2Vec2;
public var m_localAnchor2:b2Vec2;
public var m_ratio:Number;
public var :b2Jacobian;
public function b2GearJoint(_arg1:b2GearJointDef){
var _local2:int;
var _local3:int;
var _local4:Number;
var _local5:Number;
m_groundAnchor1 = new b2Vec2();
m_groundAnchor2 = new b2Vec2();
m_localAnchor1 = new b2Vec2();
m_localAnchor2 = new b2Vec2();
= new b2Jacobian();
super(_arg1);
_local2 = _arg1..m_type;
_local3 = _arg1..m_type;
= null;
= null;
= null;
= null;
= _arg1..m_body1;
m_body1 = _arg1..m_body2;
if (_local2 == b2Joint.e_revoluteJoint){
= (_arg1. as b2RevoluteJoint);
m_groundAnchor1.SetV(.m_localAnchor1);
m_localAnchor1.SetV(.m_localAnchor2);
_local4 = .GetJointAngle();
} else {
= (_arg1. as b2PrismaticJoint);
m_groundAnchor1.SetV(
.m_localAnchor1);
m_localAnchor1.SetV(
.m_localAnchor2);
_local4 =
.GetJointTranslation();
};
= _arg1..m_body1;
m_body2 = _arg1..m_body2;
if (_local3 == b2Joint.e_revoluteJoint){
= (_arg1. as b2RevoluteJoint);
m_groundAnchor2.SetV(.m_localAnchor1);
m_localAnchor2.SetV(.m_localAnchor2);
_local5 = .GetJointAngle();
} else {
= (_arg1. as b2PrismaticJoint);
m_groundAnchor2.SetV(.m_localAnchor1);
m_localAnchor2.SetV(.m_localAnchor2);
_local5 = .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 GetReactionForce():b2Vec2{
var _local1:b2Vec2;
_local1 = new b2Vec2((m_force * .linear2.x), (m_force * .linear2.y));
return (_local1);
}
override public function SolvePositionConstraints():Boolean{
var _local1:Number;
var _local2:b2Body;
var _local3:b2Body;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
_local1 = 0;
_local2 = m_body1;
_local3 = m_body2;
if (){
_local4 = .GetJointAngle();
} else {
_local4 =
.GetJointTranslation();
};
if (){
_local5 = .GetJointAngle();
} else {
_local5 = .GetJointTranslation();
};
_local6 = (m_constant - (_local4 + (m_ratio * _local5)));
_local7 = (-(m_mass) * _local6);
_local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * .linear1.x));
_local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * .linear1.y));
_local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * .angular1));
_local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * .linear2.x));
_local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * .linear2.y));
_local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * .angular2));
_local2.SynchronizeTransform();
_local3.SynchronizeTransform();
return ((_local1 < b2Settings.b2_linearSlop));
}
override public function InitVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Body;
var _local4:b2Body;
var _local5:b2Body;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:b2Mat22;
var _local11:b2Vec2;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
_local2 = ;
_local3 = ;
_local4 = m_body1;
_local5 = m_body2;
_local14 = 0;
.SetZero();
if (){
.angular1 = -1;
_local14 = (_local14 + _local4.m_invI);
} else {
_local10 = _local2.m_xf.R;
_local11 =
.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));
.linear1.Set(-(_local6), -(_local7));
.angular1 = -(_local12);
_local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12)));
};
if (){
.angular2 = -(m_ratio);
_local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI));
} else {
_local10 = _local3.m_xf.R;
_local11 = .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));
.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7));
.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) * .linear1.x));
_local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * .linear1.y));
_local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * .angular1));
_local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * .linear2.x));
_local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * .linear2.y));
_local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * .angular2));
} else {
m_force = 0;
};
}
override public function GetReactionTorque():Number{
var _local1:b2Mat22;
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local1 = m_body2.m_xf.R;
_local2 = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x);
_local3 = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y);
_local4 = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3));
_local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3));
_local2 = _local4;
_local4 = ((m_force * .angular2) - ((_local2 * (m_force * .linear2.y)) - (_local3 * (m_force * .linear2.x))));
return (_local4);
}
public function GetRatio():Number{
return (m_ratio);
}
override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Body;
var _local4:Number;
var _local5:Number;
var _local6:Number;
_local2 = m_body1;
_local3 = m_body2;
_local4 = .Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity);
_local5 = ((-(_arg1.inv_dt) * m_mass) * _local4);
m_force = (m_force + _local5);
_local6 = (_arg1.dt * _local5);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * .linear1.x));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * .linear1.y));
_local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * .angular1));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * .linear2.x));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * .linear2.y));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * .angular2));
}
}
}//package Box2D.Dynamics.Joints
Section 51
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef)
package Box2D.Dynamics.Joints {
public class b2GearJointDef extends b2JointDef {
public var :b2Joint;
public var :b2Joint;
public var ratio:Number;
public function b2GearJointDef(){
type = b2Joint.e_gearJoint;
= null;
= 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 angular2:Number;
public var angular1:Number;
public function b2Jacobian(){
linear1 = new b2Vec2();
linear2 = new b2Vec2();
super();
}
public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{
linear1.SetV(_arg1);
angular1 = _arg2;
linear2.SetV(_arg3);
angular2 = _arg4;
}
public function SetZero():void{
linear1.SetZero();
angular1 = 0;
linear2.SetZero();
angular2 = 0;
}
public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{
return ((((((linear1.x * _arg1.x) + (linear1.y * _arg1.y)) + (angular1 * _arg2)) + ((linear2.x * _arg3.x) + (linear2.y * _arg3.y))) + (angular2 * _arg4)));
}
}
}//package Box2D.Dynamics.Joints
Section 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 GetAnchor1():b2Vec2{
return (null);
}
public function GetAnchor2():b2Vec2{
return (null);
}
public function InitVelocityConstraints(_arg1:b2TimeStep):void{
}
public function GetType():int{
return (m_type);
}
public function
():b2Body{
return (m_body2);
}
public function GetNext():b2Joint{
return (m_next);
}
public function GetReactionTorque():Number{
return (0);
}
public function GetUserData(){
return (m_userData);
}
public function GetReactionForce():b2Vec2{
return (null);
}
public function SolvePositionConstraints():Boolean{
return (false);
}
public function SetUserData(_arg1):void{
m_userData = _arg1;
}
public function
():b2Body{
return (m_body1);
}
public function SolveVelocityConstraints(_arg1:b2TimeStep):void{
}
public function InitPositionConstraints():void{
}
public static function Destroy(_arg1:b2Joint, _arg2):void{
}
public static function Create(_arg1:b2JointDef, _arg2):b2Joint{
var _local3:b2Joint;
_local3 = null;
switch (_arg1.type){
case e_distanceJoint:
_local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef));
break;
case e_mouseJoint:
_local3 = new b2MouseJoint((_arg1 as b2MouseJointDef));
break;
case e_prismaticJoint:
_local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef));
break;
case e_revoluteJoint:
_local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef));
break;
case e_pulleyJoint:
_local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef));
break;
case e_gearJoint:
_local3 = new b2GearJoint((_arg1 as b2GearJointDef));
break;
default:
break;
};
return (_local3);
}
}
}//package Box2D.Dynamics.Joints
Section 54
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef)
package Box2D.Dynamics.Joints {
import Box2D.Dynamics.*;
public class b2JointDef {
public var collideConnected:Boolean;
public var body1:b2Body;
public var body2:b2Body;
public var userData;
public var type:int;
public function b2JointDef(){
type = b2Joint.e_unknownJoint;
userData = null;
body1 = null;
body2 = null;
collideConnected = false;
}
}
}//package Box2D.Dynamics.Joints
Section 55
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge)
package Box2D.Dynamics.Joints {
import Box2D.Dynamics.*;
public class b2JointEdge {
public var joint:b2Joint;
public var other:b2Body;
public var next:b2JointEdge;
public var prev:b2JointEdge;
}
}//package Box2D.Dynamics.Joints
Section 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 {
public var
:Number;
public var m_mass:b2Mat22;
public var
:b2Vec2;
public var m_impulse:b2Vec2;
public var
:b2Vec2;
private var :b2Mat22;
private var :b2Mat22;
private var :b2Mat22;
public var m_gamma:Number;
public var
:b2Vec2;
public var
:Number;
public function b2MouseJoint(_arg1:b2MouseJointDef){
var _local2:Number;
var _local3:Number;
var _local4:b2Mat22;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
= new b2Mat22();
= new b2Mat22();
= new b2Mat22();
= new b2Vec2();
= new b2Vec2();
m_impulse = new b2Vec2();
m_mass = new b2Mat22();
= new b2Vec2();
super(_arg1);
.SetV(_arg1.target);
_local2 = (
.x - m_body2.m_xf.position.x);
_local3 = (
.y - m_body2.m_xf.position.y);
_local4 = m_body2.m_xf.R;
.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y));
.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y));
= _arg1.;
m_impulse.SetZero();
_local5 = m_body2.m_mass;
_local6 = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz);
_local7 = (((2 * _local5) * _arg1.dampingRatio) * _local6);
_local8 = ((_arg1.timeStep * _local5) * (_local6 * _local6));
m_gamma = (1 / (_local7 + _local8));
= (_local8 / (_local7 + _local8));
}
override public function GetAnchor1():b2Vec2{
return (
);
}
override public function GetAnchor2():b2Vec2{
return (m_body2.GetWorldPoint(
));
}
override public function GetReactionForce():b2Vec2{
return (m_impulse);
}
override public function SolvePositionConstraints():Boolean{
return (true);
}
override public function InitVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Mat22;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
_local2 = m_body2;
_local3 = _local2.m_xf.R;
_local4 = (
.x - _local2.m_sweep.localCenter.x);
_local5 = (
.y - _local2.m_sweep.localCenter.y);
_local6 = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5));
_local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5));
_local4 = _local6;
_local7 = _local2.m_invMass;
_local8 = _local2.m_invI;
.col1.x = _local7;
.col2.x = 0;
.col1.y = 0;
.col2.y = _local7;
.col1.x = ((_local8 * _local5) * _local5);
.col2.x = ((-(_local8) * _local4) * _local5);
.col1.y = ((-(_local8) * _local4) * _local5);
.col2.y = ((_local8 * _local4) * _local4);
.SetM();
.AddM();
.col1.x = (.col1.x + m_gamma);
.col2.y = (.col2.y + m_gamma);
.Invert(m_mass);
.x = ((_local2.m_sweep.c.x + _local4) -
.x);
.y = ((_local2.m_sweep.c.y + _local5) -
.y);
_local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98);
_local9 = (_arg1.dt * m_impulse.x);
_local10 = (_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 GetReactionTorque():Number{
return (0);
}
public function
(_arg1:b2Vec2):void{
if (m_body2.IsSleeping()){
m_body2.WakeUp();
};
= _arg1;
}
override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Mat22;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
_local2 = m_body2;
_local3 = _local2.m_xf.R;
_local6 = (
.x - _local2.m_sweep.localCenter.x);
_local7 = (
.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;
_local8 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7));
_local9 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6));
_local3 = m_mass;
_local4 = ((_local8 + ((
* _arg1.inv_dt) *
.x)) + ((m_gamma * _arg1.dt) * m_impulse.x));
_local5 = ((_local9 + ((
* _arg1.inv_dt) *
.y)) + ((m_gamma * _arg1.dt) * m_impulse.y));
_local10 = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)));
_local11 = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)));
_local12 = m_impulse.x;
_local13 = m_impulse.y;
m_impulse.x = (m_impulse.x + _local10);
m_impulse.y = (m_impulse.y + _local11);
_local14 = m_impulse.Length();
if (_local14 >
){
m_impulse.Multiply((
/ _local14));
};
_local10 = (m_impulse.x - _local12);
_local11 = (m_impulse.y - _local13);
_local15 = (_arg1.dt * _local10);
_local16 = (_arg1.dt * _local11);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16));
_local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15))));
}
}
}//package Box2D.Dynamics.Joints
Section 57
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef)
package Box2D.Dynamics.Joints {
import Box2D.Common.Math.*;
public class b2MouseJointDef extends b2JointDef {
public var frequencyHz:Number;
public var dampingRatio:Number;
public var :Number;
public var target:b2Vec2;
public var timeStep:Number;
public function b2MouseJointDef(){
target = new b2Vec2();
super();
type = b2Joint.e_mouseJoint;
= 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 :Number;
public var :Number;
public var m_localXAxis1:b2Vec2;
public var m_torque:Number;
public var m_enableLimit:Boolean;
public var m_motorForce:Number;
public var m_force:Number;
public var
:b2Vec2;
public var m_motorMass:Number;
public var :Number;
public var m_localAnchor1:b2Vec2;
public var m_localAnchor2:b2Vec2;
public var :Number;
public var m_limitState:int;
public var
:Number;
public var
:Number;
public var
:b2Jacobian;
public var m_limitPositionImpulse:Number;
public var m_motorSpeed:Number;
public var
:b2Jacobian;
public var m_enableMotor:Boolean;
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();
= new b2Vec2();
= new b2Jacobian();
= new b2Jacobian();
super(_arg1);
m_localAnchor1.SetV(_arg1.localAnchor1);
m_localAnchor2.SetV(_arg1.localAnchor2);
m_localXAxis1.SetV(_arg1.);
.x = -(m_localXAxis1.y);
.y = m_localXAxis1.x;
= _arg1.referenceAngle;
.SetZero();
= 0;
m_force = 0;
= 0;
m_torque = 0;
.SetZero();
m_motorMass = 0;
m_motorForce = 0;
m_limitForce = 0;
m_limitPositionImpulse = 0;
= _arg1.;
= _arg1.;
= _arg1.
;
m_motorSpeed = _arg1.motorSpeed;
m_enableLimit = _arg1.enableLimit;
m_enableMotor = _arg1.enableMotor;
}
override public function GetAnchor1():b2Vec2{
return (m_body1.GetWorldPoint(m_localAnchor1));
}
override public function GetAnchor2():b2Vec2{
return (m_body2.GetWorldPoint(m_localAnchor2));
}
public function EnableMotor(_arg1:Boolean):void{
m_enableMotor = _arg1;
}
public function GetUpperLimit():Number{
return (
);
}
public function GetLowerLimit():Number{
return ( );
}
public function GetJointTranslation():Number{
var _local1:b2Body;
var _local2:b2Body;
var _local3:b2Mat22;
var _local4:b2Vec2;
var _local5:b2Vec2;
var _local6:Number;
var _local7:Number;
var _local8:b2Vec2;
var _local9:Number;
_local1 = m_body1;
_local2 = m_body2;
_local4 = _local1.GetWorldPoint(m_localAnchor1);
_local5 = _local2.GetWorldPoint(m_localAnchor2);
_local6 = (_local5.x - _local4.x);
_local7 = (_local5.y - _local4.y);
_local8 = _local1.GetWorldVector(m_localXAxis1);
_local9 = ((_local8.x * _local6) + (_local8.y * _local7));
return (_local9);
}
public function SetLimits(_arg1:Number, _arg2:Number):void{
= _arg1;
= _arg2;
}
public function GetMotorSpeed():Number{
return (m_motorSpeed);
}
override public function GetReactionForce():b2Vec2{
var _local1:b2Mat22;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local1 = m_body1.m_xf.R;
_local2 = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y)));
_local3 = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y)));
_local4 = (m_force * ((_local1.col1.x *
.x) + (_local1.col2.x *
.y)));
_local5 = (m_force * ((_local1.col1.y *
.x) + (_local1.col2.y *
.y)));
return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5))));
}
override public function SolvePositionConstraints():Boolean{
var _local1:Number;
var _local2:Number;
var _local3:b2Body;
var _local4:b2Body;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:b2Mat22;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
var _local26:Number;
var _local27:Number;
var _local28:Number;
var _local29:Number;
var _local30:Number;
var _local31:Number;
var _local32:Number;
_local3 = m_body1;
_local4 = m_body2;
_local5 = _local3.m_invMass;
_local6 = _local4.m_invMass;
_local7 = _local3.m_invI;
_local8 = _local4.m_invI;
_local9 = _local3.m_xf.R;
_local11 = (m_localAnchor1.x - _local3.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;
_local21 = ((_local9.col1.x *
.x) + (_local9.col2.x *
.y));
_local22 = ((_local9.col1.y *
.x) + (_local9.col2.y *
.y));
_local23 = ((_local21 * _local19) + (_local22 * _local20));
_local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection);
_local24 = (-(
) * _local23);
_local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) *
.linear1.x));
_local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) *
.linear1.y));
_local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) *
.angular1));
_local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) *
.linear2.x));
_local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) *
.linear2.y));
_local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) *
.angular2));
_local25 = b2Math.b2Abs(_local23);
_local26 = ((_local4.m_sweep.a - _local3.m_sweep.a) - );
_local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection);
_local27 = (-( ) * _local26);
_local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27));
_local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27));
_local3.SynchronizeTransform();
_local4.SynchronizeTransform();
_local28 = b2Math.b2Abs(_local26);
if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){
_local9 = _local3.m_xf.R;
_local11 = (m_localAnchor1.x - _local3.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 - );
_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 -
);
_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) *
.linear1.x));
_local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) *
.linear1.y));
_local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) *
.angular1));
_local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) *
.linear2.x));
_local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) *
.linear2.y));
_local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) *
.angular2));
_local3.SynchronizeTransform();
_local4.SynchronizeTransform();
};
return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop))));
}
public function GetJointSpeed():Number{
var _local1:b2Body;
var _local2:b2Body;
var _local3:b2Mat22;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:b2Vec2;
var _local16:b2Vec2;
var _local17:b2Vec2;
var _local18:Number;
var _local19:Number;
var _local20:Number;
_local1 = m_body1;
_local2 = m_body2;
_local3 = _local1.m_xf.R;
_local4 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x);
_local5 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y);
_local6 = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5));
_local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5));
_local4 = _local6;
_local3 = _local2.m_xf.R;
_local7 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x);
_local8 = (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;
_local9 = (_local1.m_sweep.c.x + _local4);
_local10 = (_local1.m_sweep.c.y + _local5);
_local11 = (_local2.m_sweep.c.x + _local7);
_local12 = (_local2.m_sweep.c.y + _local8);
_local13 = (_local11 - _local9);
_local14 = (_local12 - _local10);
_local15 = _local1.GetWorldVector(m_localXAxis1);
_local16 = _local1.m_linearVelocity;
_local17 = _local2.m_linearVelocity;
_local18 = _local1.m_angularVelocity;
_local19 = _local2.m_angularVelocity;
_local20 = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4)))));
return (_local20);
}
public function SetMotorSpeed(_arg1:Number):void{
m_motorSpeed = _arg1;
}
override public function InitVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Body;
var _local4:b2Mat22;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
var _local26:Number;
var _local27:Number;
var _local28:Number;
_local2 = m_body1;
_local3 = m_body2;
_local4 = _local2.m_xf.R;
_local6 = (m_localAnchor1.x - _local2.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;
_local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x);
_local9 = (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;
_local10 = _local2.m_invMass;
_local11 = _local3.m_invMass;
_local12 = _local2.m_invI;
_local13 = _local3.m_invI;
_local4 = _local2.m_xf.R;
_local14 = ((_local4.col1.x *
.x) + (_local4.col2.x *
.y));
_local15 = ((_local4.col1.y *
.x) + (_local4.col2.y *
.y));
_local16 = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x);
_local17 = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y);
.linear1.x = -(_local14);
.linear1.y = -(_local15);
.linear2.x = _local14;
.linear2.y = _local15;
.angular1 = -(((_local16 * _local15) - (_local17 * _local14)));
.angular2 = ((_local8 * _local15) - (_local9 * _local14));
= (((_local10 + ((_local12 *
.angular1) *
.angular1)) + _local11) + ((_local13 *
.angular2) *
.angular2));
= (1 /
);
= (_local12 + _local13);
if ( > Number.MIN_VALUE){
= (1 / );
};
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));
.linear1.x = -(_local18);
.linear1.y = -(_local19);
.linear2.x = _local18;
.linear2.y = _local19;
.angular1 = -(((_local16 * _local19) - (_local17 * _local18)));
.angular2 = ((_local8 * _local19) - (_local9 * _local18));
m_motorMass = (((_local10 + ((_local12 *
.angular1) *
.angular1)) + _local11) + ((_local13 *
.angular2) *
.angular2));
m_motorMass = (1 / m_motorMass);
if (m_enableLimit){
_local20 = (_local16 - _local6);
_local21 = (_local17 - _local7);
_local22 = ((_local18 * _local20) + (_local19 * _local21));
if (b2Math.b2Abs((
- )) < (2 * b2Settings.b2_linearSlop)){
m_limitState = e_equalLimits;
} else {
if (_local22 <= ){
if (m_limitState != e_atLowerLimit){
m_limitForce = 0;
};
m_limitState = e_atLowerLimit;
} else {
if (_local22 >=
){
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 *
.linear1.x) + ((m_motorForce + m_limitForce) *
.linear1.x)));
_local24 = (_arg1.dt * ((m_force *
.linear1.y) + ((m_motorForce + m_limitForce) *
.linear1.y)));
_local25 = (_arg1.dt * ((m_force *
.linear2.x) + ((m_motorForce + m_limitForce) *
.linear2.x)));
_local26 = (_arg1.dt * ((m_force *
.linear2.y) + ((m_motorForce + m_limitForce) *
.linear2.y)));
_local27 = (_arg1.dt * (((m_force *
.angular1) - m_torque) + ((m_motorForce + m_limitForce) *
.angular1)));
_local28 = (_arg1.dt * (((m_force *
.angular2) + m_torque) + ((m_motorForce + m_limitForce) *
.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
():Number{
return (m_motorForce);
}
public function
(_arg1:Number):void{
= _arg1;
}
public function EnableLimit(_arg1:Boolean):void{
m_enableLimit = _arg1;
}
override public function GetReactionTorque():Number{
return (m_torque);
}
public function IsLimitEnabled():Boolean{
return (m_enableLimit);
}
public function IsMotorEnabled():Boolean{
return (m_enableMotor);
}
override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Body;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
_local2 = m_body1;
_local3 = m_body2;
_local4 = _local2.m_invMass;
_local5 = _local3.m_invMass;
_local6 = _local2.m_invI;
_local7 = _local3.m_invI;
_local9 =
.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity);
_local10 = ((-(_arg1.inv_dt) *
) * _local9);
m_force = (m_force + _local10);
_local11 = (_arg1.dt * _local10);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) *
.linear1.x));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) *
.linear1.y));
_local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) *
.angular1));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) *
.linear2.x));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) *
.linear2.y));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) *
.angular2));
_local12 = (_local3.m_angularVelocity - _local2.m_angularVelocity);
_local13 = ((-(_arg1.inv_dt) * ) * _local12);
m_torque = (m_torque + _local13);
_local14 = (_arg1.dt * _local13);
_local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14));
_local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14));
if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){
_local15 = (
.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), -( ), );
_local16 = (m_motorForce - _local17);
_local11 = (_arg1.dt * _local16);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) *
.linear1.x));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) *
.linear1.y));
_local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) *
.angular1));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) *
.linear2.x));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) *
.linear2.y));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) *
.angular2));
};
if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){
_local18 =
.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) *
.linear1.x));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) *
.linear1.y));
_local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) *
.angular1));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) *
.linear2.x));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) *
.linear2.y));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) *
.angular2));
};
}
}
}//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 :b2Vec2;
public var referenceAngle:Number;
public var
:Number;
public var motorSpeed:Number;
public var :Number;
public var localAnchor1:b2Vec2;
public var localAnchor2:b2Vec2;
public var enableLimit:Boolean;
public var enableMotor:Boolean;
public var :Number;
public function b2PrismaticJointDef(){
localAnchor1 = new b2Vec2();
localAnchor2 = new b2Vec2();
= new b2Vec2();
super();
type = b2Joint.e_prismaticJoint;
.Set(1, 0);
referenceAngle = 0;
enableLimit = false;
= 0;
= 0;
enableMotor = false;
= 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);
= 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 :b2Body;
public var :Number;
public var :Number;
public var :Number;
public var :int;
public var :int;
public var :Number;
public var m_force:Number;
public var
:Number;
public var m_constant:Number;
public var :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 :Number;
public var :Number;
public var :Number;
public var :Number;
public var :b2Vec2;
public var :b2Vec2;
public var :Number;
public static const b2_minPulleyLength:Number = 2;
public function b2PulleyJoint(_arg1:b2PulleyJointDef){
var _local2:b2Mat22;
var _local3:Number;
var _local4:Number;
m_groundAnchor1 = new b2Vec2();
m_groundAnchor2 = new b2Vec2();
m_localAnchor1 = new b2Vec2();
m_localAnchor2 = new b2Vec2();
= new b2Vec2();
= new b2Vec2();
super(_arg1);
= m_body1.m_world.;
m_groundAnchor1.x = (_arg1..x - .m_xf.position.x);
m_groundAnchor1.y = (_arg1..y - .m_xf.position.y);
m_groundAnchor2.x = (_arg1. .x - .m_xf.position.x);
m_groundAnchor2.y = (_arg1. .y - .m_xf.position.y);
m_localAnchor1.SetV(_arg1.localAnchor1);
m_localAnchor2.SetV(_arg1.localAnchor2);
m_ratio = _arg1.ratio;
m_constant = (_arg1. + (m_ratio * _arg1.));
= b2Math.b2Min(_arg1., (m_constant - (m_ratio * b2_minPulleyLength)));
= b2Math.b2Min(_arg1., ((m_constant - b2_minPulleyLength) / m_ratio));
m_force = 0;
= 0;
= 0;
}
public function GetGroundAnchor2():b2Vec2{
var _local1:b2Vec2;
_local1 = .m_xf.position.Copy();
_local1.Add(m_groundAnchor2);
return (_local1);
}
override public function GetAnchor1():b2Vec2{
return (m_body1.GetWorldPoint(m_localAnchor1));
}
override public function GetAnchor2():b2Vec2{
return (m_body2.GetWorldPoint(m_localAnchor2));
}
override public function GetReactionForce():b2Vec2{
var _local1:b2Vec2;
_local1 = .Copy();
_local1.Multiply(m_force);
return (_local1);
}
override public function SolvePositionConstraints():Boolean{
var _local1:b2Body;
var _local2:b2Body;
var _local3:b2Mat22;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
_local1 = m_body1;
_local2 = m_body2;
_local4 = (.m_xf.position.x + m_groundAnchor1.x);
_local5 = (.m_xf.position.y + m_groundAnchor1.y);
_local6 = (.m_xf.position.x + m_groundAnchor2.x);
_local7 = (.m_xf.position.y + m_groundAnchor2.y);
_local23 = 0;
if ( == 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);
.Set((_local12 - _local4), (_local13 - _local5));
.Set((_local14 - _local6), (_local15 - _local7));
_local16 = .Length();
_local17 = .Length();
if (_local16 > b2Settings.b2_linearSlop){
.Multiply((1 / _local16));
} else {
.SetZero();
};
if (_local17 > b2Settings.b2_linearSlop){
.Multiply((1 / _local17));
} else {
.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 = (-() * _local18);
_local20 = ;
= b2Math.b2Max(0, ( + _local19));
_local19 = ( - _local20);
_local12 = (-(_local19) * .x);
_local13 = (-(_local19) * .y);
_local14 = ((-(m_ratio) * _local19) * .x);
_local15 = ((-(m_ratio) * _local19) * .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 ( == 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);
.Set((_local12 - _local4), (_local13 - _local5));
_local16 = .Length();
if (_local16 > b2Settings.b2_linearSlop){
.x = (.x * (1 / _local16));
.y = (.y * (1 / _local16));
} else {
.SetZero();
};
_local18 = ( - _local16);
_local23 = b2Math.b2Max(_local23, -(_local18));
_local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0);
_local19 = (-() * _local18);
_local21 =
;
= b2Math.b2Max(0, (
+ _local19));
_local19 = (
- _local21);
_local12 = (-(_local19) * .x);
_local13 = (-(_local19) * .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 ( == 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);
.Set((_local14 - _local6), (_local15 - _local7));
_local17 = .Length();
if (_local17 > b2Settings.b2_linearSlop){
.x = (.x * (1 / _local17));
.y = (.y * (1 / _local17));
} else {
.SetZero();
};
_local18 = ( - _local17);
_local23 = b2Math.b2Max(_local23, -(_local18));
_local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0);
_local19 = (-() * _local18);
_local21 = ;
= b2Math.b2Max(0, ( + _local19));
_local19 = ( - _local21);
_local14 = (-(_local19) * .x);
_local15 = (-(_local19) * .y);
_local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14));
_local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15));
_local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14))));
_local2.SynchronizeTransform();
};
return ((_local23 < b2Settings.b2_linearSlop));
}
override public function InitVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Body;
var _local4:b2Mat22;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
var _local26:Number;
_local2 = m_body1;
_local3 = m_body2;
_local4 = _local2.m_xf.R;
_local5 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x);
_local6 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y);
_local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6));
_local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6));
_local5 = _local7;
_local4 = _local3.m_xf.R;
_local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x);
_local9 = (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;
_local10 = (_local2.m_sweep.c.x + _local5);
_local11 = (_local2.m_sweep.c.y + _local6);
_local12 = (_local3.m_sweep.c.x + _local8);
_local13 = (_local3.m_sweep.c.y + _local9);
_local14 = (.m_xf.position.x + m_groundAnchor1.x);
_local15 = (.m_xf.position.y + m_groundAnchor1.y);
_local16 = (.m_xf.position.x + m_groundAnchor2.x);
_local17 = (.m_xf.position.y + m_groundAnchor2.y);
.Set((_local10 - _local14), (_local11 - _local15));
.Set((_local12 - _local16), (_local13 - _local17));
_local18 = .Length();
_local19 = .Length();
if (_local18 > b2Settings.b2_linearSlop){
.Multiply((1 / _local18));
} else {
.SetZero();
};
if (_local19 > b2Settings.b2_linearSlop){
.Multiply((1 / _local19));
} else {
.SetZero();
};
_local20 = ((m_constant - _local18) - (m_ratio * _local19));
if (_local20 > 0){
= e_inactiveLimit;
m_force = 0;
} else {
= e_atUpperLimit;
= 0;
};
if (_local18 < ){
= e_inactiveLimit;
= 0;
} else {
= e_atUpperLimit;
= 0;
};
if (_local19 < ){
= e_inactiveLimit;
= 0;
} else {
= e_atUpperLimit;
= 0;
};
_local21 = ((_local5 * .y) - (_local6 * .x));
_local22 = ((_local8 * .y) - (_local9 * .x));
= (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21));
= (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22));
= ( + ((m_ratio * m_ratio) * ));
= (1 / );
= (1 / );
= (1 / );
if (_arg1.warmStarting){
_local23 = ((_arg1.dt * (-(m_force) - )) * .x);
_local24 = ((_arg1.dt * (-(m_force) - )) * .y);
_local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - )) * .x);
_local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - )) * .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;
= 0;
= 0;
};
}
override public function GetReactionTorque():Number{
return (0);
}
public function GetRatio():Number{
return (m_ratio);
}
public function
():Number{
var _local1:b2Vec2;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local1 = m_body2.GetWorldPoint(m_localAnchor2);
_local2 = (.m_xf.position.x + m_groundAnchor2.x);
_local3 = (.m_xf.position.y + m_groundAnchor2.y);
_local4 = (_local1.x - _local2);
_local5 = (_local1.y - _local3);
return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5))));
}
override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Body;
var _local4:b2Mat22;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
_local2 = m_body1;
_local3 = m_body2;
_local4 = _local2.m_xf.R;
_local5 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x);
_local6 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y);
_local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6));
_local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6));
_local5 = _local7;
_local4 = _local3.m_xf.R;
_local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x);
_local9 = (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 ( == 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 = (-(((.x * _local10) + (.y * _local11))) - (m_ratio * ((.x * _local12) + (.y * _local13))));
_local19 = ((-(_arg1.inv_dt) * ) * _local18);
_local20 = m_force;
m_force = b2Math.b2Max(0, (m_force + _local19));
_local19 = (m_force - _local20);
_local14 = ((-(_arg1.dt) * _local19) * .x);
_local15 = ((-(_arg1.dt) * _local19) * .y);
_local16 = (((-(_arg1.dt) * m_ratio) * _local19) * .x);
_local17 = (((-(_arg1.dt) * m_ratio) * _local19) * .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 ( == e_atUpperLimit){
_local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6));
_local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5));
_local18 = -(((.x * _local10) + (.y * _local11)));
_local19 = ((-(_arg1.inv_dt) * ) * _local18);
_local20 = ;
= b2Math.b2Max(0, ( + _local19));
_local19 = ( - _local20);
_local14 = ((-(_arg1.dt) * _local19) * .x);
_local15 = ((-(_arg1.dt) * _local19) * .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 ( == e_atUpperLimit){
_local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9));
_local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8));
_local18 = -(((.x * _local12) + (.y * _local13)));
_local19 = ((-(_arg1.inv_dt) * ) * _local18);
_local20 = ;
= b2Math.b2Max(0, ( + _local19));
_local19 = ( - _local20);
_local16 = ((-(_arg1.dt) * _local19) * .x);
_local17 = ((-(_arg1.dt) * _local19) * .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 ():Number{
var _local1:b2Vec2;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local1 = m_body1.GetWorldPoint(m_localAnchor1);
_local2 = (.m_xf.position.x + m_groundAnchor1.x);
_local3 = (.m_xf.position.y + m_groundAnchor1.y);
_local4 = (_local1.x - _local2);
_local5 = (_local1.y - _local3);
return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5))));
}
public function GetGroundAnchor1():b2Vec2{
var _local1:b2Vec2;
_local1 = .m_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 :Number;
public var :Number;
public var :Number;
public var :Number;
public var ratio:Number;
public var :b2Vec2;
public var :b2Vec2;
public var localAnchor1:b2Vec2;
public var localAnchor2:b2Vec2;
public function b2PulleyJointDef(){
= new b2Vec2();
= new b2Vec2();
localAnchor1 = new b2Vec2();
localAnchor2 = new b2Vec2();
super();
type = b2Joint.e_pulleyJoint;
.Set(-1, 1);
.Set(1, 1);
localAnchor1.Set(-1, 0);
localAnchor2.Set(1, 0);
= 0;
= 0;
= 0;
= 0;
ratio = 1;
collideConnected = true;
}
public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
body1 = _arg1;
body2 = _arg2;
.SetV(_arg3);
.SetV(_arg4);
localAnchor1 = body1.GetLocalPoint(_arg5);
localAnchor2 = body2.GetLocalPoint(_arg6);
_local8 = (_arg5.x - _arg3.x);
_local9 = (_arg5.y - _arg3.y);
= Math.sqrt(((_local8 * _local8) + (_local9 * _local9)));
_local10 = (_arg6.x - _arg4.x);
_local11 = (_arg6.y - _arg4.y);
= Math.sqrt(((_local10 * _local10) + (_local11 * _local11)));
ratio = _arg7;
_local12 = ( + (ratio * ));
= (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength));
= ((_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_motorForce:Number;
public var :b2Mat22;
public var m_enableLimit:Boolean;
public var m_limitState:int;
public var m_motorMass:Number;
public var m_localAnchor1:b2Vec2;
public var m_localAnchor2:b2Vec2;
private var :b2Mat22;
private var :b2Mat22;
private var :b2Mat22;
private var :b2Mat22;
public var :b2Vec2;
public var m_motorSpeed:Number;
public var m_enableMotor:Boolean;
public var m_limitPositionImpulse:Number;
public var :Number;
public var :Number;
public var
:Number;
public var :Number;
public static var tImpulse:b2Vec2 = new b2Vec2();
public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){
= new b2Mat22();
= new b2Mat22();
= new b2Mat22();
= new b2Mat22();
m_localAnchor1 = new b2Vec2();
m_localAnchor2 = new b2Vec2();
= new b2Vec2();
= new b2Mat22();
super(_arg1);
m_localAnchor1.SetV(_arg1.localAnchor1);
m_localAnchor2.SetV(_arg1.localAnchor2);
= _arg1.referenceAngle;
.Set(0, 0);
m_motorForce = 0;
m_limitForce = 0;
m_limitPositionImpulse = 0;
= _arg1.;
= _arg1.
;
= _arg1.;
m_motorSpeed = _arg1.motorSpeed;
m_enableLimit = _arg1.enableLimit;
m_enableMotor = _arg1.enableMotor;
}
override public function GetAnchor1():b2Vec2{
return (m_body1.GetWorldPoint(m_localAnchor1));
}
override public function GetAnchor2():b2Vec2{
return (m_body2.GetWorldPoint(m_localAnchor2));
}
public function EnableMotor(_arg1:Boolean):void{
m_enableMotor = _arg1;
}
public function GetUpperLimit():Number{
return ();
}
public function GetLowerLimit():Number{
return (
);
}
public function SetLimits(_arg1:Number, _arg2:Number):void{
= _arg1;
= _arg2;
}
public function GetMotorSpeed():Number{
return (m_motorSpeed);
}
override public function GetReactionForce():b2Vec2{
return ( );
}
override public function SolvePositionConstraints():Boolean{
var _local1:Number;
var _local2:Number;
var _local3:b2Body;
var _local4:b2Body;
var _local5:Number;
var _local6:b2Mat22;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
var _local26:Number;
_local3 = m_body1;
_local4 = m_body2;
_local5 = 0;
_local6 = _local3.m_xf.R;
_local7 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x);
_local8 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y);
_local9 = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8));
_local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8));
_local7 = _local9;
_local6 = _local4.m_xf.R;
_local10 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x);
_local11 = (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;
_local12 = (_local3.m_sweep.c.x + _local7);
_local13 = (_local3.m_sweep.c.y + _local8);
_local14 = (_local4.m_sweep.c.x + _local10);
_local15 = (_local4.m_sweep.c.y + _local11);
_local16 = (_local14 - _local12);
_local17 = (_local15 - _local13);
_local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17)));
_local18 = _local3.m_invMass;
_local19 = _local4.m_invMass;
_local20 = _local3.m_invI;
_local21 = _local4.m_invI;
.col1.x = (_local18 + _local19);
.col2.x = 0;
.col1.y = 0;
.col2.y = (_local18 + _local19);
.col1.x = ((_local20 * _local8) * _local8);
.col2.x = ((-(_local20) * _local7) * _local8);
.col1.y = ((-(_local20) * _local7) * _local8);
.col2.y = ((_local20 * _local7) * _local7);
.col1.x = ((_local21 * _local11) * _local11);
.col2.x = ((-(_local21) * _local10) * _local11);
.col1.y = ((-(_local21) * _local10) * _local11);
.col2.y = ((_local21 * _local10) * _local10);
.SetM();
.AddM();
.AddM();
.Solve(tImpulse, -(_local16), -(_local17));
_local22 = tImpulse.x;
_local23 = tImpulse.y;
_local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22));
_local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23));
_local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22))));
_local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22));
_local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23));
_local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22))));
_local3.SynchronizeTransform();
_local4.SynchronizeTransform();
_local24 = 0;
if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){
_local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - );
_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 -
);
_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 - );
_local24 = b2Math.b2Max(0, _local2);
_local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection);
_local26 = (-(m_motorMass) * _local2);
_local1 = m_limitPositionImpulse;
m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0);
_local26 = (m_limitPositionImpulse - _local1);
};
};
};
_local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26));
_local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26));
_local3.SynchronizeTransform();
_local4.SynchronizeTransform();
};
return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop))));
}
public function GetJointSpeed():Number{
return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity));
}
public function SetMotorSpeed(_arg1:Number):void{
m_motorSpeed = _arg1;
}
public function (_arg1:Number):void{
= _arg1;
}
public function GetJointAngle():Number{
return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - ));
}
override public function InitVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Body;
var _local4:b2Mat22;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
_local2 = m_body1;
_local3 = m_body2;
_local4 = _local2.m_xf.R;
_local6 = (m_localAnchor1.x - _local2.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;
_local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x);
_local9 = (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;
_local10 = _local2.m_invMass;
_local11 = _local3.m_invMass;
_local12 = _local2.m_invI;
_local13 = _local3.m_invI;
.col1.x = (_local10 + _local11);
.col2.x = 0;
.col1.y = 0;
.col2.y = (_local10 + _local11);
.col1.x = ((_local12 * _local7) * _local7);
.col2.x = ((-(_local12) * _local6) * _local7);
.col1.y = ((-(_local12) * _local6) * _local7);
.col2.y = ((_local12 * _local6) * _local6);
.col1.x = ((_local13 * _local9) * _local9);
.col2.x = ((-(_local13) * _local8) * _local9);
.col1.y = ((-(_local13) * _local8) * _local9);
.col2.y = ((_local13 * _local8) * _local8);
.SetM();
.AddM();
.AddM();
.Invert();
m_motorMass = (1 / (_local12 + _local13));
if (m_enableMotor == false){
m_motorForce = 0;
};
if (m_enableLimit){
_local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - );
if (b2Math.b2Abs(( -
)) < (2 * b2Settings.b2_angularSlop)){
m_limitState = e_equalLimits;
} else {
if (_local14 <=
){
if (m_limitState != e_atLowerLimit){
m_limitForce = 0;
};
m_limitState = e_atLowerLimit;
} else {
if (_local14 >= ){
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) * .x));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * .y));
_local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * .y) - (_local7 * .x)) + m_motorForce) + m_limitForce)));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * .x));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * .y));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * .y) - (_local9 * .x)) + m_motorForce) + m_limitForce)));
} else {
.SetZero();
m_motorForce = 0;
m_limitForce = 0;
};
m_limitPositionImpulse = 0;
}
public function EnableLimit(_arg1:Boolean):void{
m_enableLimit = _arg1;
}
public function
():Number{
return (m_motorForce);
}
override public function GetReactionTorque():Number{
return (m_limitForce);
}
public function IsLimitEnabled():Boolean{
return (m_enableLimit);
}
public function IsMotorEnabled():Boolean{
return (m_enableMotor);
}
override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Body;
var _local4:b2Mat22;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
_local2 = m_body1;
_local3 = m_body2;
_local4 = _local2.m_xf.R;
_local6 = (m_localAnchor1.x - _local2.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;
_local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x);
_local9 = (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;
_local11 = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7));
_local12 = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6));
_local13 = (-(_arg1.inv_dt) * ((.col1.x * _local11) + (.col2.x * _local12)));
_local14 = (-(_arg1.inv_dt) * ((.col1.y * _local11) + (.col2.y * _local12)));
.x = ( .x + _local13);
.y = ( .y + _local14);
_local15 = (_arg1.dt * _local13);
_local16 = (_arg1.dt * _local14);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16));
_local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15))));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16));
_local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15))));
if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){
_local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed);
_local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17);
_local19 = m_motorForce;
m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(), );
_local18 = (m_motorForce - _local19);
_local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18));
};
if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){
_local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity);
_local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20);
if (m_limitState == e_equalLimits){
m_limitForce = (m_limitForce + _local21);
} else {
if (m_limitState == e_atLowerLimit){
_local10 = m_limitForce;
m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0);
_local21 = (m_limitForce - _local10);
} else {
if (m_limitState == e_atUpperLimit){
_local10 = m_limitForce;
m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0);
_local21 = (m_limitForce - _local10);
};
};
};
_local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21));
};
}
}
}//package Box2D.Dynamics.Joints
Section 63
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef)
package Box2D.Dynamics.Joints {
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
public class b2RevoluteJointDef extends b2JointDef {
public var referenceAngle:Number;
public var
:Number;
public var :Number;
public var motorSpeed:Number;
public var :Number;
public var localAnchor1:b2Vec2;
public var localAnchor2:b2Vec2;
public var enableLimit:Boolean;
public var enableMotor:Boolean;
public function b2RevoluteJointDef(){
localAnchor1 = new b2Vec2();
localAnchor2 = new b2Vec2();
super();
type = b2Joint.e_revoluteJoint;
localAnchor1.Set(0, 0);
localAnchor2.Set(0, 0);
referenceAngle = 0;
= 0;
= 0;
= 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.Common.Math.*;
import Box2D.Collision.Shapes.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Dynamics.Contacts.*;
public class b2Body {
public var m_next:b2Body;
public var m_contactList:b2ContactEdge;
public var m_angularVelocity:Number;
public var m_shapeList:b2Shape;
public var m_force:b2Vec2;
public var m_mass:Number;
public var m_sweep:b2Sweep;
public var m_xf:b2XForm;
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_angularDamping:Number;
public var m_invI:Number;
public var m_linearVelocity:b2Vec2;
public var m_sleepTime:Number;
public var m_shapeCount:int;
public var m_jointList:b2JointEdge;
public var :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){
var _local3:b2Mat22;
var _local4:b2Vec2;
m_xf = new b2XForm();
m_sweep = new b2Sweep();
m_linearVelocity = new b2Vec2();
m_force = new b2Vec2();
super();
m_flags = 0;
if (_arg1.
){
m_flags = (m_flags | e_bulletFlag);
};
if (_arg1.){
m_flags = (m_flags | e_fixedRotationFlag);
};
if (_arg1.){
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..center);
m_sweep.t0 = 1;
m_sweep.a0 = (m_sweep.a = _arg1.angle);
_local3 = m_xf.R;
_local4 = 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.;
m_angularDamping = _arg1.
;
m_force.Set(0, 0);
m_torque = 0;
m_linearVelocity.SetZero();
m_angularVelocity = 0;
m_sleepTime = 0;
m_invMass = 0;
= 0;
m_invI = 0;
m_mass = _arg1..mass;
if (m_mass > 0){
m_invMass = (1 / m_mass);
};
if ((m_flags & b2Body.e_fixedRotationFlag) == 0){
= _arg1..I;
};
if ( > 0){
m_invI = (1 / );
};
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 (_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 (_arg1:b2Vec2):void{
m_linearVelocity.SetV(_arg1);
}
public function WakeUp():void{
m_flags = (m_flags & ~(e_sleepFlag));
m_sleepTime = 0;
}
public function ():b2Vec2{
return (m_sweep.localCenter);
}
public function (_arg1:Number):void{
if (IsSleeping()){
WakeUp();
};
m_torque = (m_torque + _arg1);
}
public function
():Boolean{
return (((m_flags & e_frozenFlag) == e_frozenFlag));
}
public function ():Boolean{
return ((m_type == e_dynamicType));
}
public function ():b2Vec2{
return (m_linearVelocity);
}
public function SynchronizeTransform():void{
var _local1:b2Mat22;
var _local2:b2Vec2;
m_xf.R.Set(m_sweep.a);
_local1 = m_xf.R;
_local2 = m_sweep.localCenter;
m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y)));
m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y)));
}
public function ():Number{
return ();
}
public function IsSleeping():Boolean{
return (((m_flags & e_sleepFlag) == e_sleepFlag));
}
public function SetMassFromShapes():void{
var _local1:b2Shape;
var _local2:Number;
var _local3:Number;
var _local4:b2MassData;
var _local5:b2Mat22;
var _local6:b2Vec2;
var _local7:int;
if (m_world.m_lock == true){
return;
};
m_mass = 0;
m_invMass = 0;
= 0;
m_invI = 0;
_local2 = 0;
_local3 = 0;
_local4 = s_massData;
_local1 = m_shapeList;
while (_local1) {
_local1.ComputeMass(_local4);
m_mass = (m_mass + _local4.mass);
_local2 = (_local2 + (_local4.mass * _local4.center.x));
_local3 = (_local3 + (_local4.mass * _local4.center.y));
= ( + _local4.I);
_local1 = _local1.m_next;
};
if (m_mass > 0){
m_invMass = (1 / m_mass);
_local2 = (_local2 * m_invMass);
_local3 = (_local3 * m_invMass);
};
if (((( > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){
= ( - (m_mass * ((_local2 * _local2) + (_local3 * _local3))));
m_invI = (1 / );
} else {
= 0;
m_invI = 0;
};
m_sweep.localCenter.Set(_local2, _local3);
_local5 = m_xf.R;
_local6 = m_sweep.localCenter;
m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y));
m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y));
m_sweep.c.x = (m_sweep.c.x + m_xf.position.x);
m_sweep.c.y = (m_sweep.c.y + m_xf.position.y);
m_sweep.c0.SetV(m_sweep.c);
_local1 = m_shapeList;
while (_local1) {
_local1.UpdateSweepRadius(m_sweep.localCenter);
_local1 = _local1.m_next;
};
_local7 = 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 (_arg1:b2Vec2, _arg2:Number):Boolean{
var _local3:b2Shape;
var _local4:b2Mat22;
var _local5:b2Vec2;
var _local6:Boolean;
var _local7:Boolean;
if (m_world.m_lock == true){
return (true);
};
if (
()){
return (false);
};
m_xf.R.Set(_arg2);
m_xf.position.SetV(_arg1);
_local4 = m_xf.R;
_local5 = m_sweep.localCenter;
m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y));
m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y));
m_sweep.c.x = (m_sweep.c.x + m_xf.position.x);
m_sweep.c.y = (m_sweep.c.y + m_xf.position.y);
m_sweep.c0.SetV(m_sweep.c);
m_sweep.a0 = (m_sweep.a = _arg2);
_local6 = false;
_local3 = m_shapeList;
while (_local3) {
_local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf);
if (_local7 == false){
_local6 = true;
break;
};
_local3 = _local3.m_next;
};
if (_local6 == true){
m_flags = (m_flags | e_frozenFlag);
m_linearVelocity.SetZero();
m_angularVelocity = 0;
_local3 = m_shapeList;
while (_local3) {
_local3.DestroyProxy(m_world.m_broadPhase);
_local3 = _local3.m_next;
};
return (false);
};
m_world.m_broadPhase.Commit();
return (true);
}
public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{
return (b2Math.b2MulXT(m_xf, _arg1));
}
public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Boolean=true):void{
if (((IsSleeping()) && (_arg3))){
WakeUp();
};
m_force.x = (m_force.x + _arg1.x);
m_force.y = (m_force.y + _arg1.y);
m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x)));
}
public function SynchronizeShapes():Boolean{
var _local1:b2XForm;
var _local2:b2Mat22;
var _local3:b2Vec2;
var _local4:b2Shape;
var _local5:Boolean;
_local1 = s_xf1;
_local1.R.Set(m_sweep.a0);
_local2 = _local1.R;
_local3 = m_sweep.localCenter;
_local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y)));
_local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y)));
_local5 = true;
_local4 = m_shapeList;
while (_local4) {
_local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf);
if (_local5 == false){
break;
};
_local4 = _local4.m_next;
};
if (_local5 == false){
m_flags = (m_flags | e_frozenFlag);
m_linearVelocity.SetZero();
m_angularVelocity = 0;
_local4 = m_shapeList;
while (_local4) {
_local4.DestroyProxy(m_world.m_broadPhase);
_local4 = _local4.m_next;
};
return (false);
};
return (true);
}
public function GetAngle():Number{
return (m_sweep.a);
}
public function GetXForm():b2XForm{
return (m_xf);
}
public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{
if (IsSleeping()){
WakeUp();
};
m_linearVelocity.x = (m_linearVelocity.x + (m_invMass * _arg1.x));
m_linearVelocity.y = (m_linearVelocity.y + (m_invMass * _arg1.y));
m_angularVelocity = (m_angularVelocity + (m_invI * (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))));
}
public function GetNext():b2Body{
return (m_next);
}
public function
():Number{
return (m_mass);
}
public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{
var _local2:b2Mat22;
var _local3:b2Vec2;
_local2 = m_xf.R;
_local3 = 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
():Number{
return (m_angularVelocity);
}
public function
(_arg1:Number):void{
m_angularVelocity = _arg1;
}
public function
(_arg1:b2MassData):void{
var _local2:b2Shape;
var _local3:b2Mat22;
var _local4:b2Vec2;
var _local5:int;
if (m_world.m_lock == true){
return;
};
m_invMass = 0;
= 0;
m_invI = 0;
m_mass = _arg1.mass;
if (m_mass > 0){
m_invMass = (1 / m_mass);
};
if ((m_flags & b2Body.e_fixedRotationFlag) == 0){
= _arg1.I;
};
if ( > 0){
m_invI = (1 / );
};
m_sweep.localCenter.SetV(_arg1.center);
_local3 = m_xf.R;
_local4 = 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;
};
_local5 = 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 (_arg1:Boolean):void{
if (_arg1){
m_flags = (m_flags | e_bulletFlag);
} else {
m_flags = (m_flags & ~(e_bulletFlag));
};
}
public function CreateShape(_arg1:b2ShapeDef):b2Shape{
var _local2:b2Shape;
if (m_world.m_lock == true){
return (null);
};
_local2 = b2Shape.Create(_arg1, m_world.m_blockAllocator);
_local2.m_next = m_shapeList;
m_shapeList = _local2;
m_shapeCount++;
_local2.m_body = this;
_local2.CreateProxy(m_world.m_broadPhase, m_xf);
_local2.UpdateSweepRadius(m_sweep.localCenter);
return (_local2);
}
public function IsConnected(_arg1:b2Body):Boolean{
var _local2:b2JointEdge;
_local2 = m_jointList;
while (_local2) {
if (_local2.other == _arg1){
return ((_local2.joint.m_collideConnected == false));
};
_local2 = _local2.next;
};
return (false);
}
public function DestroyShape(_arg1:b2Shape):void{
var _local2:b2Shape;
var _local3:b2Shape;
var _local4:Boolean;
if (m_world.m_lock == true){
return;
};
_arg1.DestroyProxy(m_world.m_broadPhase);
_local2 = m_shapeList;
_local3 = null;
_local4 = false;
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
(_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;
var _local3:b2Vec2;
_local2 = m_xf.R;
_local3 = 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 ():b2World{
return (m_world);
}
public function GetPosition():b2Vec2{
return (m_xf.position);
}
}
}//package Box2D.Dynamics
Section 65
//b2BodyDef (Box2D.Dynamics.b2BodyDef)
package Box2D.Dynamics {
import Box2D.Common.Math.*;
import Box2D.Collision.Shapes.*;
public class b2BodyDef {
public var isSleeping:Boolean;
public var position:b2Vec2;
public var
:Boolean;
public var :Boolean;
public var userData;
public var
:Number;
public var :Boolean;
public var angle:Number;
public var :Number;
public var :b2MassData;
public function b2BodyDef(){
= new b2MassData();
position = new b2Vec2();
super();
.center.SetZero();
.mass = 0;
.I = 0;
userData = null;
position.Set(0, 0);
angle = 0;
= 0;
= 0;
= true;
isSleeping = false;
= false;
= 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;
var _local4:b2FilterData;
var _local5:Boolean;
_local3 = _arg1.GetFilterData();
_local4 = _arg2.GetFilterData();
if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){
return ((_local3.groupIndex > 0));
};
_local5 = ((!(((_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.Common.Math.*;
import Box2D.Collision.Shapes.*;
import Box2D.Collision.*;
import Box2D.Dynamics.Contacts.*;
public class b2ContactManager extends b2PairCallback {
public var m_world:b2World;
public var :Boolean;
public var
:b2NullContact;
private static const s_evalCP:b2ContactPoint = new b2ContactPoint();
public function b2ContactManager(){
= new b2NullContact();
super();
m_world = null;
= false;
}
override public function PairAdded(_arg1, _arg2){
var _local3:b2Shape;
var _local4:b2Shape;
var _local5:b2Body;
var _local6:b2Body;
var _local7:b2Contact;
_local3 = (_arg1 as b2Shape);
_local4 = (_arg2 as b2Shape);
_local5 = _local3.m_body;
_local6 = _local4.m_body;
if (((_local5.IsStatic()) && (_local6.IsStatic()))){
return (
);
};
if (_local3.m_body == _local4.m_body){
return (
);
};
if (_local6.IsConnected(_local5)){
return (
);
};
if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){
return (
);
};
_local7 = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator);
if (_local7 == null){
return (
);
};
_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);
}
override public function PairRemoved(_arg1, _arg2, _arg3):void{
var _local4:b2Contact;
if (_arg3 == null){
return;
};
_local4 = (_arg3 as b2Contact);
if (_local4 ==
){
return;
};
Destroy(_local4);
}
public function Destroy(_arg1:b2Contact):void{
var _local2:b2Shape;
var _local3:b2Shape;
var _local4:int;
var _local5:b2Body;
var _local6:b2Body;
var _local7: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;
_local2 = _arg1.m_shape1;
_local3 = _arg1.m_shape2;
_local4 = _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;
};
_local5 = _local2.m_body;
_local6 = _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--;
}
public function Collide():void{
var _local1:b2Contact;
var _local2:b2Body;
var _local3:b2Body;
_local1 = 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 Box2D.Common.Math.*;
import Box2D.Collision.Shapes.*;
import Box2D.Collision.*;
import Box2D.Common.*;
import flash.display.*;
import Box2D.Dynamics.Contacts.*;
public class b2DebugDraw {
public var :Number;// = 1
public var m_fillAlpha:Number;// = 1
public var :Number;// = 1
public var m_lineThickness:Number;// = 1
public var m_drawFlags:uint;
public var m_sprite:Sprite;
public var m_drawScale:Number;// = 1
public static var e_coreShapeBit:uint = 4;
public static var e_shapeBit:uint = 1;
public static var e_centerOfMassBit:uint = 64;
public static var e_aabbBit:uint = 8;
public static var e_obbBit:uint = 16;
public static var e_pairBit:uint = 32;
public static var e_jointBit:uint = 2;
public function b2DebugDraw(){
m_drawScale = 1;
m_lineThickness = 1;
= 1;
m_fillAlpha = 1;
= 1;
super();
m_drawFlags = 0;
}
public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{
var _local4:int;
m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, );
m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale));
m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha);
_local4 = 1;
while (_local4 < _arg2) {
m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale));
_local4++;
};
m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale));
m_sprite.graphics.endFill();
}
public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{
m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, );
m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale));
}
public function DrawXForm(_arg1:b2XForm):void{
m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, );
m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale));
m_sprite.graphics.lineTo(((_arg1.position.x + ( * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + ( * _arg1.R.col1.y)) * m_drawScale));
m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, );
m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale));
m_sprite.graphics.lineTo(((_arg1.position.x + ( * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + ( * _arg1.R.col2.y)) * m_drawScale));
}
public function (_arg1:uint):void{
m_drawFlags = (m_drawFlags & ~(_arg1));
}
public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{
m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, );
m_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 (_arg1:uint):void{
m_drawFlags = _arg1;
}
public function (_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_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale));
m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale));
}
public function GetFlags():uint{
return (m_drawFlags);
}
public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{
var _local4:int;
m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, );
m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale));
_local4 = 1;
while (_local4 < _arg2) {
m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale));
_local4++;
};
m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale));
}
}
}//package Box2D.Dynamics
Section 71
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener)
package Box2D.Dynamics {
import Box2D.Collision.Shapes.*;
import Box2D.Dynamics.Joints.*;
public class b2DestructionListener {
public function SayGoodbyeJoint(_arg1:b2Joint):void{
}
public function SayGoodbyeShape(_arg1:b2Shape):void{
}
}
}//package Box2D.Dynamics
Section 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 :Array;
public var :b2ContactListener;
public var m_positionIterationCount:int;
public var
:int;
public var m_bodies:Array;
public var :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();
= _arg1;
m_contactCapacity = _arg2;
= _arg3;
m_bodyCount = 0;
m_contactCount = 0;
m_jointCount = 0;
m_allocator = _arg4;
= _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++;
};
= new Array(_arg3);
_local6 = 0;
while (_local6 < _arg3) {
[_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++;
[_local2] = _arg1;
}
public function (_arg1:Array):void{
var _local2:b2Mat22;
var _local3:b2Vec2;
var _local4:int;
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 ( == null){
return;
};
_local4 = 0;
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;
.Result(_local7);
_local13++;
};
_local11++;
};
_local4++;
};
}
public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{
var _local5:int;
var _local6:b2Body;
var _local7:b2Joint;
var _local8:b2ContactSolver;
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++;
};
_local8 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator);
_local8.InitVelocityConstraints(_arg1);
_local5 = 0;
while (_local5 < m_jointCount) {
_local7 = [_local5];
_local7.InitVelocityConstraints(_arg1);
_local5++;
};
_local5 = 0;
while (_local5 < _arg1.maxIterations) {
_local8.SolveVelocityConstraints();
_local9 = 0;
while (_local9 < m_jointCount) {
_local7 = [_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 = [_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 = [_local5];
_local12 = _local7.SolvePositionConstraints();
_local11 = ((_local11) && (_local12));
_local5++;
};
if (((_local10) && (_local11))){
break;
};
m_positionIterationCount++;
};
};
(_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 AddContact(_arg1:b2Contact):void{
var _local2 = m_contactCount++;
m_contacts[_local2] = _arg1;
}
public function Clear():void{
m_bodyCount = 0;
m_contactCount = 0;
m_jointCount = 0;
}
public function SolveTOI(_arg1:b2TimeStep):void{
var _local2:int;
var _local3:b2ContactSolver;
var _local4:Number;
var _local5:b2Body;
var _local6:Boolean;
_local3 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator);
_local2 = 0;
while (_local2 < _arg1.maxIterations) {
_local3.SolveVelocityConstraints();
_local2++;
};
_local2 = 0;
while (_local2 < m_bodyCount) {
_local5 = m_bodies[_local2];
if (_local5.IsStatic()){
} else {
_local5.m_sweep.c0.SetV(_local5.m_sweep.c);
_local5.m_sweep.a0 = _local5.m_sweep.a;
_local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x));
_local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y));
_local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity));
_local5.SynchronizeTransform();
};
_local2++;
};
_local4 = 0.75;
_local2 = 0;
while (_local2 < _arg1.maxIterations) {
_local6 = _local3.SolvePositionConstraints(_local4);
if (_local6){
break;
};
_local2++;
};
(_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.Common.Math.*;
import Box2D.Collision.Shapes.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.*;
import Box2D.Common.*;
import Box2D.Dynamics.Contacts.*;
public class b2World {
public var :Number;
public var :b2BoundaryListener;
public var m_contactList:b2Contact;
public var m_blockAllocator;
public var m_contactListener:b2ContactListener;
public var :Boolean;
public var m_broadPhase:b2BroadPhase;
public var :b2DestructionListener;
public var m_jointCount:int;
public var m_bodyCount:int;
public var m_lock:Boolean;
public var m_positionIterationCount:int;
public var :b2Body;
public var m_contactCount:int;
public var :b2DebugDraw;
public var m_contactFilter:b2ContactFilter;
public var :b2Body;
public var ;
public var m_jointList:b2Joint;
public var :b2Vec2;
public var :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){
var _local4:b2BodyDef;
= new b2ContactManager();
super();
= null;
= null;
m_contactFilter = b2ContactFilter.b2_defaultFilter;
m_contactListener = null;
= null;
= 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;
= _arg3;
= _arg2;
m_lock = false;
= 0;
.m_world = this;
m_broadPhase = new b2BroadPhase(_arg1, );
_local4 = new b2BodyDef();
= CreateBody(_local4);
}
public function (_arg1:b2Joint):void{
var _local2:b2Body;
var _local3:b2Body;
var _local4:b2XForm;
var _local5:b2XForm;
var _local6:b2Vec2;
var _local7:b2Vec2;
var _local8:b2Vec2;
var _local9:b2Vec2;
var _local10:b2Color;
var _local11:b2PulleyJoint;
var _local12:b2Vec2;
var _local13:b2Vec2;
_local2 = _arg1.m_body1;
_local3 = _arg1.m_body2;
_local4 = _local2.m_xf;
_local5 = _local3.m_xf;
_local6 = _local4.position;
_local7 = _local5.position;
_local8 = _arg1.GetAnchor1();
_local9 = _arg1.GetAnchor2();
_local10 = s_jointColor;
switch (_arg1.m_type){
case b2Joint.e_distanceJoint:
.DrawSegment(_local8, _local9, _local10);
break;
case b2Joint.e_pulleyJoint:
_local11 = (_arg1 as b2PulleyJoint);
_local12 = _local11.GetGroundAnchor1();
_local13 = _local11.GetGroundAnchor2();
.DrawSegment(_local12, _local8, _local10);
.DrawSegment(_local13, _local9, _local10);
.DrawSegment(_local12, _local13, _local10);
break;
case b2Joint.e_mouseJoint:
.DrawSegment(_local8, _local9, _local10);
break;
default:
if (_local2 != ){
.DrawSegment(_local6, _local8, _local10);
};
.DrawSegment(_local8, _local9, _local10);
if (_local3 != ){
.DrawSegment(_local7, _local9, _local10);
};
};
}
public function (_arg1:b2Shape):void{
_arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf);
}
public function SetDebugDraw(_arg1:b2DebugDraw):void{
= _arg1;
}
public function (_arg1:Boolean):void{
m_continuousPhysics = _arg1;
}
public function
():int{
return (m_broadPhase.m_proxyCount);
}
public function ():void{
var _local1:uint;
var _local2:int;
var _local3:b2Body;
var _local4:b2Shape;
var _local5:b2Joint;
var _local6:b2BroadPhase;
var _local7:b2Vec2;
var _local8:b2Vec2;
var _local9:b2Vec2;
var _local10:b2Color;
var _local11:b2XForm;
var _local12:b2AABB;
var _local13:b2AABB;
var _local14:Array;
var _local15:Boolean;
var _local16:uint;
var _local17:b2Pair;
var _local18:b2Proxy;
var _local19:b2Proxy;
var _local20:b2Vec2;
var _local21:b2Vec2;
var _local22:b2Proxy;
var _local23:b2PolygonShape;
var _local24:b2OBB;
var _local25:b2Vec2;
var _local26:b2Mat22;
var _local27:b2Vec2;
var _local28:Number;
if ( == null){
return;
};
.m_sprite.graphics.clear();
_local1 = .GetFlags();
_local7 = new b2Vec2();
_local8 = new b2Vec2();
_local9 = new b2Vec2();
_local10 = new b2Color(0, 0, 0);
_local12 = new b2AABB();
_local13 = new b2AABB();
_local14 = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()];
if ((_local1 & b2DebugDraw.e_shapeBit)){
_local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit);
_local3 = ;
while (_local3) {
_local11 = _local3.m_xf;
_local4 = _local3.GetShapeList();
while (_local4) {
if (_local3.IsStatic()){
(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15);
} else {
if (_local3.IsSleeping()){
(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15);
} else {
(_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) {
(_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));
.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);
.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);
.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 = ;
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++;
};
.DrawPolygon(_local14, 4, _local10);
};
_local4 = _local4.m_next;
};
_local3 = _local3.m_next;
};
};
if ((_local1 & b2DebugDraw.e_centerOfMassBit)){
_local3 = ;
while (_local3) {
_local11 = s_xf;
_local11.R = _local3.m_xf.R;
_local11.position = _local3.GetWorldCenter();
.DrawXForm(_local11);
_local3 = _local3.m_next;
};
};
}
public function DestroyBody(_arg1:b2Body):void{
var _local2:b2JointEdge;
var _local3:b2Shape;
var _local4:b2JointEdge;
var _local5:b2Shape;
if (m_lock == true){
return;
};
_local2 = _arg1.m_jointList;
while (_local2) {
_local4 = _local2;
_local2 = _local2.next;
if (){
.SayGoodbyeJoint(_local4.joint);
};
(_local4.joint);
};
_local3 = _arg1.m_shapeList;
while (_local3) {
_local5 = _local3;
_local3 = _local3.m_next;
if (){
.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 == ){
= _arg1.m_next;
};
m_bodyCount--;
}
public function (_arg1:b2ContactFilter):void{
m_contactFilter = _arg1;
}
public function ():b2Body{
return ();
}
public function (_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{
var _local5:b2Color;
var _local6:b2CircleShape;
var _local7:b2Vec2;
var _local8:Number;
var _local9:b2Vec2;
var _local10:int;
var _local11:b2PolygonShape;
var _local12:int;
var _local13:Array;
var _local14:Array;
var _local15:Array;
_local5 = s_coreColor;
switch (_arg1.m_type){
case b2Shape.e_circleShape:
_local6 = (_arg1 as b2CircleShape);
_local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition);
_local8 = _local6.m_radius;
_local9 = _arg2.R.col1;
.DrawSolidCircle(_local7, _local8, _local9, _arg3);
if (_arg4){
.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++;
};
.DrawSolidPolygon(_local14, _local12, _arg3);
if (_arg4){
_local15 = _local11.GetCoreVertices();
_local10 = 0;
while (_local10 < _local12) {
_local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]);
_local10++;
};
.DrawPolygon(_local14, _local12, _local5);
};
break;
};
}
public function ():int{
return (m_contactCount);
}
public function Solve(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Island;
var _local4:b2Contact;
var _local5:b2Joint;
var _local6:int;
var _local7:Array;
var _local8:b2Body;
var _local9:int;
var _local10:int;
var _local11:b2Body;
var _local12:b2ContactEdge;
var _local13:b2JointEdge;
var _local14:Boolean;
m_positionIterationCount = 0;
_local3 = new b2Island(m_bodyCount, m_contactCount, m_jointCount, , m_contactListener);
_local2 = ;
while (_local2) {
_local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag));
_local2 = _local2.m_next;
};
_local4 = m_contactList;
while (_local4) {
_local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag));
_local4 = _local4.m_next;
};
_local5 = m_jointList;
while (_local5) {
_local5.m_islandFlag = false;
_local5 = _local5.m_next;
};
_local6 = m_bodyCount;
_local7 = new Array(_local6);
_local8 = ;
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_positionCorrection, );
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 = ;
while (_local2) {
if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){
} else {
if (_local2.IsStatic()){
} else {
_local14 = _local2.SynchronizeShapes();
if ((((_local14 == false)) && (!(( == null))))){
.Violation(_local2);
};
};
};
_local2 = _local2.m_next;
};
m_broadPhase.Commit();
}
public function (_arg1:b2AABB, _arg2:Array, _arg3:int):int{
var _local4:Array;
var _local5:int;
var _local6:int;
_local4 = new Array(_arg3);
_local5 = m_broadPhase.QueryAABB(_arg1, _local4, _arg3);
_local6 = 0;
while (_local6 < _local5) {
_arg2[_local6] = _local4[_local6];
_local6++;
};
return (_local5);
}
public function (_arg1:b2Vec2):void{
= _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 _local8:b2Island;
var _local9:int;
var _local10:Array;
var _local11:b2Contact;
var _local12:b2Contact;
var _local13:Number;
var _local14:b2Body;
var _local15:int;
var _local16:b2TimeStep;
var _local17:int;
var _local18:Number;
var _local19:Number;
var _local20:b2Body;
var _local21:Boolean;
_local8 = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, , m_contactListener);
_local9 = m_bodyCount;
_local10 = new Array(_local9);
_local2 = ;
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)) && (!(( == null))))){
.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 Validate():void{
m_broadPhase.Validate();
}
public function ():int{
return (m_broadPhase.m_pairManager.m_pairCount);
}
public function ():b2Body{
return ();
}
public function (_arg1:Boolean):void{
m_warmStarting = _arg1;
}
public function (_arg1:Boolean):void{
m_positionCorrection = _arg1;
}
public function (_arg1:b2JointDef):b2Joint{
var _local2:b2Joint;
var _local3:b2Body;
var _local4:b2Shape;
_local2 = b2Joint.Create(_arg1, m_blockAllocator);
_local2.m_prev = null;
_local2.m_next = m_jointList;
if (m_jointList){
m_jointList.m_prev = _local2;
};
m_jointList = _local2;
m_jointCount++;
_local2.m_node1.joint = _local2;
_local2.m_node1.other = _local2.m_body2;
_local2.m_node1.prev = null;
_local2.m_node1.next = _local2.m_body1.m_jointList;
if (_local2.m_body1.m_jointList){
_local2.m_body1.m_jointList.prev = _local2.m_node1;
};
_local2.m_body1.m_jointList = _local2.m_node1;
_local2.m_node2.joint = _local2;
_local2.m_node2.other = _local2.m_body1;
_local2.m_node2.prev = null;
_local2.m_node2.next = _local2.m_body2.m_jointList;
if (_local2.m_body2.m_jointList){
_local2.m_body2.m_jointList.prev = _local2.m_node2;
};
_local2.m_body2.m_jointList = _local2.m_node2;
if (_arg1.collideConnected == false){
_local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2;
_local4 = _local3.m_shapeList;
while (_local4) {
_local4.RefilterProxy(m_broadPhase, _local3.m_xf);
_local4 = _local4.m_next;
};
};
return (_local2);
}
public function (_arg1:b2Joint):void{
var _local2:Boolean;
var _local3:b2Body;
var _local4:b2Body;
var _local5:b2Body;
var _local6:b2Shape;
_local2 = _arg1.m_collideConnected;
if (_arg1.m_prev){
_arg1.m_prev.m_next = _arg1.m_next;
};
if (_arg1.m_next){
_arg1.m_next.m_prev = _arg1.m_prev;
};
if (_arg1 == m_jointList){
m_jointList = _arg1.m_next;
};
_local3 = _arg1.m_body1;
_local4 = _arg1.m_body2;
_local3.WakeUp();
_local4.WakeUp();
if (_arg1.m_node1.prev){
_arg1.m_node1.prev.next = _arg1.m_node1.next;
};
if (_arg1.m_node1.next){
_arg1.m_node1.next.prev = _arg1.m_node1.prev;
};
if (_arg1.m_node1 == _local3.m_jointList){
_local3.m_jointList = _arg1.m_node1.next;
};
_arg1.m_node1.prev = null;
_arg1.m_node1.next = null;
if (_arg1.m_node2.prev){
_arg1.m_node2.prev.next = _arg1.m_node2.next;
};
if (_arg1.m_node2.next){
_arg1.m_node2.next.prev = _arg1.m_node2.prev;
};
if (_arg1.m_node2 == _local4.m_jointList){
_local4.m_jointList = _arg1.m_node2.next;
};
_arg1.m_node2.prev = null;
_arg1.m_node2.next = null;
b2Joint.Destroy(_arg1, m_blockAllocator);
m_jointCount--;
if (_local2 == false){
_local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4;
_local6 = _local5.m_shapeList;
while (_local6) {
_local6.RefilterProxy(m_broadPhase, _local5.m_xf);
_local6 = _local6.m_next;
};
};
}
public function (_arg1:b2ContactListener):void{
m_contactListener = _arg1;
}
public function CreateBody(_arg1:b2BodyDef):b2Body{
var _local2:b2Body;
if (m_lock == true){
return (null);
};
_local2 = new b2Body(_arg1, this);
_local2.m_prev = null;
_local2.m_next = ;
if (){
.m_prev = _local2;
};
= _local2;
m_bodyCount++;
return (_local2);
}
public function
(_arg1:b2BoundaryListener):void{
= _arg1;
}
public function (_arg1:b2DestructionListener):void{
= _arg1;
}
public function Step(_arg1:Number, _arg2:int):void{
var _local3:b2TimeStep;
m_lock = true;
_local3 = new b2TimeStep();
_local3.dt = _arg1;
_local3.maxIterations = _arg2;
if (_arg1 > 0){
_local3.inv_dt = (1 / _arg1);
} else {
_local3.inv_dt = 0;
};
_local3.dtRatio = ( * _arg1);
_local3.positionCorrection = m_positionCorrection;
_local3.warmStarting = m_warmStarting;
.Collide();
if (_local3.dt > 0){
Solve(_local3);
};
if (((m_continuousPhysics) && ((_local3.dt > 0)))){
SolveTOI(_local3);
};
();
= _local3.inv_dt;
m_lock = false;
}
public function ():int{
return (m_bodyCount);
}
public function ():int{
return (m_jointCount);
}
}
}//package Box2D.Dynamics
Section 75
//AuxFunctions (caurina.transitions.AuxFunctions)
package caurina.transitions {
public class AuxFunctions {
public static function getObjectLength(_arg1:Object):uint{
var _local2:uint;
var _local3:String;
_local2 = 0;
for (_local3 in _arg1) {
_local2++;
};
return (_local2);
}
public static function isInArray(_arg1:String, _arg2:Array):Boolean{
var _local3:uint;
var _local4:uint;
_local3 = _arg2.length;
_local4 = 0;
while (_local4 < _local3) {
if (_arg2[_local4] == _arg1){
return (true);
};
_local4++;
};
return (false);
}
public static function numberToG(_arg1:Number):Number{
return (((_arg1 & 0xFF00) >> 8));
}
public static function numberToB(_arg1:Number):Number{
return ((_arg1 & 0xFF));
}
public static function numberToR(_arg1:Number):Number{
return (((_arg1 & 0xFF0000) >> 16));
}
}
}//package caurina.transitions
Section 76
//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):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:Number=NaN, _arg6:Number=NaN):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 == 2){
return ((_arg2 + _arg3));
};
if (!_arg6){
_arg6 = (_arg4 * (0.3 * 1.5));
};
if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){
_arg5 = _arg3;
_local7 = (_arg6 / 4);
} else {
_local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5)));
};
if (_arg1 < 1){
--_arg1;
return (((-0.5 * ((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6)))) + _arg2));
};
--_arg1;
return ((((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6))) * 0.5) + _arg3) + _arg2));
}
public static function easeInOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):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):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:Number=NaN):Number{
if (!_arg5){
_arg5 = 1.70158;
};
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
_arg5 = (_arg5 * 1.525);
return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) - _arg5))) + _arg2));
};
_arg1 = (_arg1 - 2);
_arg5 = (_arg5 * 1.525);
return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 2)) + _arg2));
}
public static function easeOutInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutCubic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4));
};
return (easeInCubic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4));
}
public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
}
public static function easeOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN):Number{
if (!_arg5){
_arg5 = 1.70158;
};
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 1)) + _arg2));
}
public static function easeInOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):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:Number=NaN):Number{
if (!_arg5){
_arg5 = 1.70158;
};
_arg1 = (_arg1 / _arg4);
return (((((_arg3 * _arg1) * _arg1) * (((_arg5 + 1) * _arg1) - _arg5)) + _arg2));
}
public static function easeInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeOutInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutQuint((_arg1 * 2), _arg2, (_arg3 / 2), _arg4));
};
return (easeInQuint(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4));
}
public static function easeOutInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutBounce((_arg1 * 2), _arg2, (_arg3 / 2), _arg4));
};
return (easeInBounce(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4));
}
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):Number{
return (((_arg1)==_arg4) ? (_arg2 + _arg3) : ((_arg3 * (-(Math.pow(2, ((-10 * _arg1) / _arg4))) + 1)) + _arg2));
}
public static function easeOutInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN):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):Number{
return (((_arg1)==0) ? _arg2 : ((_arg3 * Math.pow(2, (10 * ((_arg1 / _arg4) - 1)))) + _arg2));
}
public static function easeInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return (((((_arg3 * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeInOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):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):Number{
_arg1 = (_arg1 / _arg4);
return ((((_arg3 * _arg1) * _arg1) + _arg2));
}
public static function easeInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (((_arg3 - easeOutBounce((_arg4 - _arg1), 0, _arg3, _arg4)) + _arg2));
}
public static function easeOutInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutExpo((_arg1 * 2), _arg2, (_arg3 / 2), _arg4));
};
return (easeInExpo(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4));
}
public static function easeOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):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):Number{
return ((((-(_arg3) * Math.cos(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg3) + _arg2));
}
public static function easeInOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):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):Number{
_arg1 = (_arg1 / _arg4);
return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2));
}
public static function easeOutInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN, _arg6:Number=NaN):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutElastic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5, _arg6));
};
return (easeInElastic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5, _arg6));
}
public static function easeInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN, _arg6:Number=NaN):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / _arg4);
if (_arg1 == 1){
return ((_arg2 + _arg3));
};
if (!_arg6){
_arg6 = (_arg4 * 0.3);
};
if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){
_arg5 = _arg3;
_local7 = (_arg6 / 4);
} else {
_local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5)));
};
--_arg1;
return ((-(((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6)))) + _arg2));
}
public static function easeOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):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):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutQuad((_arg1 * 2), _arg2, (_arg3 / 2), _arg4));
};
return (easeInQuad(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4));
}
public static function easeOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (((_arg3 * Math.sin(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg2));
}
public static function easeInOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):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):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):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):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutSine((_arg1 * 2), _arg2, (_arg3 / 2), _arg4));
};
return (easeInSine(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4));
}
public static function easeInOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):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));
};
--_arg1;
return ((((_arg3 / 2) * (-(Math.pow(2, (-10 * _arg1))) + 2)) + _arg2));
}
public static function easeOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN, _arg6:Number=NaN):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / _arg4);
if (_arg1 == 1){
return ((_arg2 + _arg3));
};
if (!_arg6){
_arg6 = (_arg4 * 0.3);
};
if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){
_arg5 = _arg3;
_local7 = (_arg6 / 4);
} else {
_local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5)));
};
return (((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6))) + _arg3) + _arg2));
}
public static function easeOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):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):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutQuart((_arg1 * 2), _arg2, (_arg3 / 2), _arg4));
};
return (easeInQuart(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4));
}
public static function easeOutInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutCirc((_arg1 * 2), _arg2, (_arg3 / 2), _arg4));
};
return (easeInCirc(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4));
}
}
}//package caurina.transitions
Section 77
//PropertyInfoObj (caurina.transitions.PropertyInfoObj)
package caurina.transitions {
public class PropertyInfoObj {
public var modifierParameters:Array;
public var valueComplete:Number;
public var modifierFunction:Function;
public var hasModifier:Boolean;
public var valueStart:Number;
public function PropertyInfoObj(_arg1:Number, _arg2:Number, _arg3:Function, _arg4:Array){
valueStart = _arg1;
valueComplete = _arg2;
hasModifier = Boolean(_arg3);
modifierFunction = _arg3;
modifierParameters = _arg4;
}
public function toString():String{
var _local1:String;
_local1 = "\n[PropertyInfoObj ";
_local1 = (_local1 + ("valueStart:" + String(valueStart)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("valueComplete:" + String(valueComplete)));
_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;
_local1 = new PropertyInfoObj(valueStart, valueComplete, modifierFunction, modifierParameters);
return (_local1);
}
}
}//package caurina.transitions
Section 78
//SpecialPropertiesDefault (caurina.transitions.SpecialPropertiesDefault)
package caurina.transitions {
import flash.media.*;
import flash.filters.*;
import flash.geom.*;
public class SpecialPropertiesDefault {
public function SpecialPropertiesDefault(){
trace("SpecialProperties is a static class and should not be instantiated.");
}
public static function _sound_volume_get(_arg1:Object):Number{
return (_arg1.soundTransform.volume);
}
public static function _color_splitter(_arg1):Array{
var _local2:Array;
_local2 = new Array();
if (_arg1 == null){
_local2.push({name:"_color_ra", value:1});
_local2.push({name:"_color_rb", value:0});
_local2.push({name:"_color_ga", value:1});
_local2.push({name:"_color_gb", value:0});
_local2.push({name:"_color_ba", value:1});
_local2.push({name:"_color_bb", value:0});
} else {
_local2.push({name:"_color_ra", value:0});
_local2.push({name:"_color_rb", value:AuxFunctions.numberToR(_arg1)});
_local2.push({name:"_color_ga", value:0});
_local2.push({name:"_color_gb", value:AuxFunctions.numberToG(_arg1)});
_local2.push({name:"_color_ba", value:0});
_local2.push({name:"_color_bb", value:AuxFunctions.numberToB(_arg1)});
};
return (_local2);
}
public static function frame_get(_arg1:Object):Number{
return (_arg1.currentFrame);
}
public static function _sound_pan_get(_arg1:Object):Number{
return (_arg1.soundTransform.pan);
}
public static function _color_property_get(_arg1:Object, _arg2:Array):Number{
return (_arg1.transform.colorTransform[_arg2[0]]);
}
public static function _sound_volume_set(_arg1:Object, _arg2:Number):void{
var _local3:SoundTransform;
_local3 = _arg1.soundTransform;
_local3.volume = _arg2;
_arg1.soundTransform = _local3;
}
public static function _autoAlpha_get(_arg1:Object):Number{
return (_arg1.alpha);
}
public static function _filter_splitter(_arg1:BitmapFilter):Array{
var _local2:Array;
_local2 = new Array();
if ((_arg1 is BlurFilter)){
_local2.push({name:"_blur_blurX", value:BlurFilter(_arg1).blurX});
_local2.push({name:"_blur_blurY", value:BlurFilter(_arg1).blurY});
_local2.push({name:"_blur_quality", value:BlurFilter(_arg1).quality});
} else {
trace("??");
};
return (_local2);
}
public static function init():void{
Tweener.registerSpecialProperty("_frame", frame_get, frame_set);
Tweener.registerSpecialProperty("_sound_volume", _sound_volume_get, _sound_volume_set);
Tweener.registerSpecialProperty("_sound_pan", _sound_pan_get, _sound_pan_set);
Tweener.registerSpecialProperty("_color_ra", _color_property_get, _color_property_set, ["redMultiplier"]);
Tweener.registerSpecialProperty("_color_rb", _color_property_get, _color_property_set, ["redOffset"]);
Tweener.registerSpecialProperty("_color_ga", _color_property_get, _color_property_set, ["greenMultiplier"]);
Tweener.registerSpecialProperty("_color_gb", _color_property_get, _color_property_set, ["greenOffset"]);
Tweener.registerSpecialProperty("_color_ba", _color_property_get, _color_property_set, ["blueMultiplier"]);
Tweener.registerSpecialProperty("_color_bb", _color_property_get, _color_property_set, ["blueOffset"]);
Tweener.registerSpecialProperty("_color_aa", _color_property_get, _color_property_set, ["alphaMultiplier"]);
Tweener.registerSpecialProperty("_color_ab", _color_property_get, _color_property_set, ["alphaOffset"]);
Tweener.registerSpecialProperty("_autoAlpha", _autoAlpha_get, _autoAlpha_set);
Tweener.registerSpecialPropertySplitter("_color", _color_splitter);
Tweener.registerSpecialPropertySplitter("_colorTransform", _colorTransform_splitter);
Tweener.registerSpecialProperty("_blur_blurX", _filter_property_get, _filter_property_set, [BlurFilter, "blurX"]);
Tweener.registerSpecialProperty("_blur_blurY", _filter_property_get, _filter_property_set, [BlurFilter, "blurY"]);
Tweener.registerSpecialProperty("_blur_quality", _filter_property_get, _filter_property_set, [BlurFilter, "quality"]);
Tweener.registerSpecialPropertySplitter("_filter", _filter_splitter);
Tweener.registerSpecialPropertyModifier("_bezier", _bezier_modifier, _bezier_get);
}
public static function _sound_pan_set(_arg1:Object, _arg2:Number):void{
var _local3:SoundTransform;
_local3 = _arg1.soundTransform;
_local3.pan = _arg2;
_arg1.soundTransform = _local3;
}
public static function _color_property_set(_arg1:Object, _arg2:Number, _arg3:Array):void{
var _local4:ColorTransform;
_local4 = _arg1.transform.colorTransform;
_local4[_arg3[0]] = _arg2;
_arg1.transform.colorTransform = _local4;
}
public static function _filter_property_get(_arg1:Object, _arg2:Array):Number{
var _local3:Array;
var _local4:uint;
var _local5:Object;
var _local6:String;
var _local7:Object;
_local3 = _arg1.filters;
_local5 = _arg2[0];
_local6 = _arg2[1];
_local4 = 0;
while (_local4 < _local3.length) {
if ((((_local3[_local4] is BlurFilter)) && ((_local5 == BlurFilter)))){
return (_local3[_local4][_local6]);
};
_local4++;
};
switch (_local5){
case BlurFilter:
_local7 = {blurX:0, blurY:0, quality:NaN};
break;
};
return (_local7[_local6]);
}
public static function _bezier_get(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Array):Number{
var _local5:uint;
var _local6:Number;
var _local7:Number;
var _local8:Number;
if (_arg4.length == 1){
return ((_arg1 + (_arg3 * (((2 * (1 - _arg3)) * (_arg4[0] - _arg1)) + (_arg3 * (_arg2 - _arg1))))));
};
_local5 = Math.floor((_arg3 * _arg4.length));
_local6 = ((_arg3 - (_local5 * (1 / _arg4.length))) * _arg4.length);
if (_local5 == 0){
_local7 = _arg1;
_local8 = ((_arg4[0] + _arg4[1]) / 2);
} else {
if (_local5 == (_arg4.length - 1)){
_local7 = ((_arg4[(_local5 - 1)] + _arg4[_local5]) / 2);
_local8 = _arg2;
} else {
_local7 = ((_arg4[(_local5 - 1)] + _arg4[_local5]) / 2);
_local8 = ((_arg4[_local5] + _arg4[(_local5 + 1)]) / 2);
};
};
return ((_local7 + (_local6 * (((2 * (1 - _local6)) * (_arg4[_local5] - _local7)) + (_local6 * (_local8 - _local7))))));
}
public static function frame_set(_arg1:Object, _arg2:Number):void{
_arg1.gotoAndStop(Math.round(_arg2));
}
public static function _filter_property_set(_arg1:Object, _arg2:Number, _arg3:Array):void{
var _local4:Array;
var _local5:uint;
var _local6:Object;
var _local7:String;
var _local8:BitmapFilter;
_local4 = _arg1.filters;
_local6 = _arg3[0];
_local7 = _arg3[1];
_local5 = 0;
while (_local5 < _local4.length) {
if ((((_local4[_local5] is BlurFilter)) && ((_local6 == BlurFilter)))){
_local4[_local5][_local7] = _arg2;
_arg1.filters = _local4;
return;
};
_local5++;
};
if (_local4 == null){
_local4 = new Array();
};
switch (_local6){
case BlurFilter:
_local8 = new BlurFilter(0, 0);
break;
};
_local8[_local7] = _arg2;
_local4.push(_local8);
_arg1.filters = _local4;
}
public static function _autoAlpha_set(_arg1:Object, _arg2:Number):void{
_arg1.alpha = _arg2;
_arg1.visible = (_arg2 > 0);
}
public static function _colorTransform_splitter(_arg1):Array{
var _local2:Array;
_local2 = new Array();
if (_arg1 == null){
_local2.push({name:"_color_ra", value:1});
_local2.push({name:"_color_rb", value:0});
_local2.push({name:"_color_ga", value:1});
_local2.push({name:"_color_gb", value:0});
_local2.push({name:"_color_ba", value:1});
_local2.push({name:"_color_bb", value:0});
} else {
if (_arg1.ra != undefined){
_local2.push({name:"_color_ra", value:_arg1.ra});
};
if (_arg1.rb != undefined){
_local2.push({name:"_color_rb", value:_arg1.rb});
};
if (_arg1.ga != undefined){
_local2.push({name:"_color_ba", value:_arg1.ba});
};
if (_arg1.gb != undefined){
_local2.push({name:"_color_bb", value:_arg1.bb});
};
if (_arg1.ba != undefined){
_local2.push({name:"_color_ga", value:_arg1.ga});
};
if (_arg1.bb != undefined){
_local2.push({name:"_color_gb", value:_arg1.gb});
};
if (_arg1.aa != undefined){
_local2.push({name:"_color_aa", value:_arg1.aa});
};
if (_arg1.ab != undefined){
_local2.push({name:"_color_ab", value:_arg1.ab});
};
};
return (_local2);
}
public static function _bezier_modifier(_arg1):Array{
var _local2:Array;
var _local3:Array;
var _local4:uint;
var _local5:String;
var _local6:Object;
_local2 = [];
if ((_arg1 is Array)){
_local3 = _arg1;
} else {
_local3 = [_arg1];
};
_local6 = {};
_local4 = 0;
while (_local4 < _local3.length) {
for (_local5 in _local3[_local4]) {
if (_local6[_local5] == undefined){
_local6[_local5] = [];
};
_local6[_local5].push(_local3[_local4][_local5]);
};
_local4++;
};
for (_local5 in _local6) {
_local2.push({name:_local5, parameters:_local6[_local5]});
};
return (_local2);
}
}
}//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 setValue:Function;
public function SpecialProperty(_arg1:Function, _arg2:Function, _arg3:Array=null){
getValue = _arg1;
setValue = _arg2;
parameters = _arg3;
}
public function toString():String{
var _local1:String;
_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 + "]");
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:String;
_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 splitValues:Function;
public function SpecialPropertySplitter(_arg1:Function){
splitValues = _arg1;
}
public function toString():String{
var _local1:String;
_local1 = "";
_local1 = (_local1 + "[SpecialPropertySplitter ");
_local1 = (_local1 + ("splitValues:" + String(splitValues)));
_local1 = (_local1 + "]");
return (_local1);
}
}
}//package caurina.transitions
Section 82
//Tweener (caurina.transitions.Tweener)
package caurina.transitions {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class Tweener {
private static var _timeScale:Number = 1;
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{
var _local4:SpecialPropertyModifier;
if (!_inited){
init();
};
_local4 = new SpecialPropertyModifier(_arg2, _arg3);
_specialPropertyModifierList[_arg1] = _local4;
}
public static function registerSpecialProperty(_arg1:String, _arg2:Function, _arg3:Function, _arg4:Array=null):void{
var _local5:SpecialProperty;
if (!_inited){
init();
};
_local5 = new SpecialProperty(_arg2, _arg3, _arg4);
_specialPropertyList[_arg1] = _local5;
}
public static function addCaller(_arg1:Object=null, _arg2:Object=null):Boolean{
var _local4:Array;
var _local5:Number;
var _local6:Number;
var _local7:Object;
var _local8:Number;
var _local9:Number;
var _local10:Function;
var _local11:TweenListObj;
var _local12:Number;
var _local13:String;
if ((((arguments.length < 2)) || ((arguments[0] == undefined)))){
return (false);
};
_local4 = new Array();
if ((arguments[0] is Array)){
_local5 = 0;
while (_local5 < arguments[0].length) {
_local4.push(arguments[0][_local5]);
_local5++;
};
} else {
_local5 = 0;
while (_local5 < (arguments.length - 1)) {
_local4.push(arguments[_local5]);
_local5++;
};
};
_local7 = arguments[(arguments.length - 1)];
if (!_inited){
init();
};
if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){
startEngine();
};
_local8 = (isNaN(_local7.time)) ? 0 : _local7.time;
_local9 = (isNaN(_local7.delay)) ? 0 : _local7.delay;
if (typeof(_local7.transition) == "string"){
_local13 = _local7.transition.toLowerCase();
_local10 = _transitionList[_local13];
} else {
_local10 = _local7.transition;
};
if (!Boolean(_local10)){
_local10 = _transitionList["easeoutexpo"];
};
_local5 = 0;
while (_local5 < _local4.length) {
_local11 = new TweenListObj(_local4[_local5], (_currentTime + ((_local9 * 1000) / _timeScale)), (_currentTime + (((_local9 * 1000) + (_local8 * 1000)) / _timeScale)), (_local7.useFrames == true), _local10);
_local11.properties = null;
_local11.onStart = _local7.onStart;
_local11.onUpdate = _local7.onUpdate;
_local11.onComplete = _local7.onComplete;
_local11.onOverwrite = _local7.onOverwrite;
_local11.onStartParams = _local7.onStartParams;
_local11.onUpdateParams = _local7.onUpdateParams;
_local11.onCompleteParams = _local7.onCompleteParams;
_local11.onOverwriteParams = _local7.onOverwriteParams;
_local11. = true;
_local11.count = _local7.count;
_local11.waitFrames = _local7.waitFrames;
_tweenList.push(_local11);
if ((((_local8 == 0)) && ((_local9 == 0)))){
_local12 = (_tweenList.length - 1);
updateTweenByIndex(_local12);
removeTweenByIndex(_local12);
};
_local5++;
};
return (true);
}
public static function init(_arg1=null):void{
_inited = true;
_transitionList = new Object();
Equations.init();
_specialPropertyList = new Object();
_specialPropertyModifierList = new Object();
_specialPropertySplitterList = new Object();
SpecialPropertiesDefault.init();
}
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 removeTweens(_arg1:Object, ... _args):Boolean{
var _local3:Array;
var _local4:uint;
_local3 = 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 pauseAllTweens():Boolean{
var _local1:Boolean;
var _local2:uint;
if (!Boolean(_tweenList)){
return (false);
};
_local1 = false;
_local2 = 0;
while (_local2 < _tweenList.length) {
pauseTweenByIndex(_local2);
_local1 = true;
_local2++;
};
return (_local1);
}
public static function splitTweens(_arg1:Number, _arg2:Array):uint{
var _local3:TweenListObj;
var _local4:TweenListObj;
var _local5:uint;
var _local6:String;
var _local7:Boolean;
_local3 = _tweenList[_arg1];
_local4 = _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 resumeTweenByIndex(_arg1:Number):Boolean{
var _local2:TweenListObj;
_local2 = _tweenList[_arg1];
if ((((_local2 == null)) || (!(_local2.isPaused)))){
return (false);
};
_local2.timeStart = (_local2.timeStart + (_currentTime - _local2.timePaused));
_local2.timeComplete = (_local2.timeComplete + (_currentTime - _local2.timePaused));
_local2.timePaused = undefined;
_local2.isPaused = false;
return (true);
}
public static function debug_getList():String{
var _local1:String;
var _local2:uint;
var _local3:uint;
_local1 = "";
_local2 = 0;
while (_local2 < _tweenList.length) {
_local1 = (_local1 + (("[" + _local2) + "] ::\n"));
_local3 = 0;
while (_local3 < _tweenList[_local2].properties.length) {
_local1 = (_local1 + ((((" " + _tweenList[_local2].properties[_local3].name) + " -> ") + _tweenList[_local2].properties[_local3].valueComplete) + "\n"));
_local3++;
};
_local2++;
};
return (_local1);
}
public static function getVersion():String{
return ("AS3 1.25.53");
}
public static function onEnterFrame(_arg1:Event):void{
var _local2:Boolean;
updateTime();
_local2 = false;
_local2 = updateTweens();
if (!_local2){
stopEngine();
};
}
public static function updateTime():void{
_currentTime = getTimer();
}
private static function updateTweenByIndex(_arg1:Number):Boolean{
var tTweening:TweenListObj;
var isOver:Boolean;
var mustUpdate:Boolean;
var nv:Number;
var t:Number;
var b:Number;
var c:Number;
var d:Number;
var pName:String;
var tScope:Object;
var tProperty:Object;
var pv:Number;
var i = _arg1;
tTweening = _tweenList[i];
if ((((tTweening == null)) || (!(Boolean(tTweening.scope))))){
return (false);
};
isOver = false;
if (_currentTime >= tTweening.timeStart){
tScope = tTweening.scope;
if (tTweening.){
do {
t = (((tTweening.timeComplete - tTweening.timeStart) / tTweening.count) * (tTweening. + 1));
b = tTweening.timeStart;
c = (tTweening.timeComplete - tTweening.timeStart);
d = (tTweening.timeComplete - tTweening.timeStart);
nv = tTweening.transition(t, b, c, d);
} while (!(_currentTime >= nv));
} else {
mustUpdate = (((((tTweening.skipUpdates < 1)) || (!(tTweening.skipUpdates)))) || ((tTweening. >= tTweening.skipUpdates)));
if (_currentTime >= tTweening.timeComplete){
isOver = true;
mustUpdate = true;
};
if (!tTweening.
){
if (Boolean(tTweening.onStart)){
try {
tTweening.onStart.apply(tScope, tTweening.onStartParams);
} catch(e:Error) {
};
};
for (pName in tTweening.properties) {
pv = getPropertyValue(tScope, pName);
tTweening.properties[pName].valueStart = (isNaN(pv)) ? tTweening.properties[pName].valueComplete : pv;
};
mustUpdate = true;
tTweening.
= true;
};
if (mustUpdate){
for (pName in tTweening.properties) {
tProperty = tTweening.properties[pName];
if (isOver){
nv = tProperty.valueComplete;
} else {
if (tProperty.hasModifier){
t = (_currentTime - tTweening.timeStart);
d = (tTweening.timeComplete - tTweening.timeStart);
nv = tTweening.transition(t, 0, 1, d);
nv = tProperty.modifierFunction(tProperty.valueStart, tProperty.valueComplete, nv, tProperty.modifierParameters);
} else {
t = (_currentTime - tTweening.timeStart);
b = tProperty.valueStart;
c = (tProperty.valueComplete - tProperty.valueStart);
d = (tTweening.timeComplete - tTweening.timeStart);
nv = tTweening.transition(t, b, c, d);
};
};
if (tTweening.rounded){
nv = Math.round(nv);
};
setPropertyValue(tScope, pName, nv);
};
tTweening. = 0;
if (Boolean(tTweening.onUpdate)){
try {
tTweening.onUpdate.apply(tScope, tTweening.onUpdateParams);
} catch(e:Error) {
};
};
} else {
tTweening.++;
};
};
if (((isOver) && (Boolean(tTweening.onComplete)))){
try {
tTweening.onComplete.apply(tScope, tTweening.onCompleteParams);
} catch(e:Error) {
};
};
return (!(isOver));
};
return (true);
}
public static function setTimeScale(_arg1:Number):void{
var _local2:Number;
if (isNaN(_arg1)){
_arg1 = 1;
};
if (_arg1 < 1E-5){
_arg1 = 1E-5;
};
if (_arg1 != _timeScale){
_local2 = 0;
while (_local2 < _tweenList.length) {
_tweenList[_local2].timeStart = (_currentTime - (((_currentTime - _tweenList[_local2].timeStart) * _timeScale) / _arg1));
_tweenList[_local2].timeComplete = (_currentTime - (((_currentTime - _tweenList[_local2].timeComplete) * _timeScale) / _arg1));
if (_tweenList[_local2].timePaused != undefined){
_tweenList[_local2].timePaused = (_currentTime - (((_currentTime - _tweenList[_local2].timePaused) * _timeScale) / _arg1));
};
_local2++;
};
_timeScale = _arg1;
};
}
public static function resumeAllTweens():Boolean{
var _local1:Boolean;
var _local2:uint;
if (!Boolean(_tweenList)){
return (false);
};
_local1 = false;
_local2 = 0;
while (_local2 < _tweenList.length) {
resumeTweenByIndex(_local2);
_local1 = true;
_local2++;
};
return (_local1);
}
private static function startEngine():void{
_engineExists = true;
_tweenList = new Array();
__tweener_controller__ = new MovieClip();
__tweener_controller__.addEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame);
updateTime();
}
public static function removeAllTweens():Boolean{
var _local1:Boolean;
var _local2:uint;
if (!Boolean(_tweenList)){
return (false);
};
_local1 = false;
_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 _local4:Array;
var _local5:Number;
var _local6:Number;
var _local7:String;
var _local8:String;
var _local9:Object;
var _local10:Number;
var _local11:Number;
var _local12:Array;
var _local13:Object;
var _local14:Object;
var _local15:Function;
var _local16:Object;
var _local17:TweenListObj;
var _local18:Number;
var _local19:Array;
var _local20:Array;
var _local21:String;
if ((((arguments.length < 2)) || ((arguments[0] == undefined)))){
return (false);
};
_local4 = new Array();
if ((arguments[0] is Array)){
_local5 = 0;
while (_local5 < arguments[0].length) {
_local4.push(arguments[0][_local5]);
_local5++;
};
} else {
_local5 = 0;
while (_local5 < (arguments.length - 1)) {
_local4.push(arguments[_local5]);
_local5++;
};
};
_local9 = arguments[(arguments.length - 1)];
if (!_inited){
init();
};
if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){
startEngine();
};
_local10 = (isNaN(_local9.time)) ? 0 : _local9.time;
_local11 = (isNaN(_local9.delay)) ? 0 : _local9.delay;
_local12 = new Array();
_local13 = {time:true, delay:true, useFrames:true, skipUpdates:true, transition:true, onStart:true, onUpdate:true, onComplete:true, onOverwrite:true, rounded:true, onStartParams:true, onUpdateParams:true, onCompleteParams:true, onOverwriteParams:true};
_local14 = new Object();
for (_local7 in _local9) {
if (!_local13[_local7]){
if (_specialPropertySplitterList[_local7]){
_local19 = _specialPropertySplitterList[_local7].splitValues(_local9[_local7]);
_local5 = 0;
while (_local5 < _local19.length) {
_local12[_local19[_local5].name] = {valueStart:undefined, valueComplete:_local19[_local5].value};
_local5++;
};
} else {
if (_specialPropertyModifierList[_local7] != undefined){
_local20 = _specialPropertyModifierList[_local7].modifyValues(_local9[_local7]);
_local5 = 0;
while (_local5 < _local20.length) {
_local14[_local20[_local5].name] = {modifierParameters:_local20[_local5].parameters, modifierFunction:_specialPropertyModifierList[_local7].getValue};
_local5++;
};
} else {
_local12[_local7] = {valueStart:undefined, valueComplete:_local9[_local7]};
};
};
};
};
for (_local7 in _local14) {
if (_local12[_local7] != undefined){
_local12[_local7].modifierParameters = _local14[_local7].modifierParameters;
_local12[_local7].modifierFunction = _local14[_local7].modifierFunction;
};
};
if (typeof(_local9.transition) == "string"){
_local21 = _local9.transition.toLowerCase();
_local15 = _transitionList[_local21];
} else {
_local15 = _local9.transition;
};
if (!Boolean(_local15)){
_local15 = _transitionList["easeoutexpo"];
};
_local5 = 0;
while (_local5 < _local4.length) {
_local16 = new Object();
for (_local7 in _local12) {
_local16[_local7] = new PropertyInfoObj(_local12[_local7].valueStart, _local12[_local7].valueComplete, _local12[_local7].modifierFunction, _local12[_local7].modifierParameters);
};
_local17 = new TweenListObj(_local4[_local5], (_currentTime + ((_local11 * 1000) / _timeScale)), (_currentTime + (((_local11 * 1000) + (_local10 * 1000)) / _timeScale)), (_local9.useFrames == true), _local15);
_local17.properties = _local16;
_local17.onStart = _local9.onStart;
_local17.onUpdate = _local9.onUpdate;
_local17.onComplete = _local9.onComplete;
_local17.onOverwrite = _local9.onOverwrite;
_local17.onStartParams = _local9.onStartParams;
_local17.onUpdateParams = _local9.onUpdateParams;
_local17.onCompleteParams = _local9.onCompleteParams;
_local17.onOverwriteParams = _local9.onOverwriteParams;
_local17.rounded = _local9.rounded;
_local17.skipUpdates = _local9.skipUpdates;
removeTweensByTime(_local17.scope, _local17.properties, _local17.timeStart, _local17.timeComplete);
_tweenList.push(_local17);
if ((((_local10 == 0)) && ((_local11 == 0)))){
_local18 = (_tweenList.length - 1);
updateTweenByIndex(_local18);
removeTweenByIndex(_local18);
};
_local5++;
};
return (true);
}
public static function registerTransition(_arg1:String, _arg2:Function):void{
if (!_inited){
init();
};
_transitionList[_arg1] = _arg2;
}
private static function affectTweens(_arg1:Function, _arg2:Object, _arg3:Array):Boolean{
var _local4:Boolean;
var _local5:uint;
var _local6:Array;
var _local7:uint;
var _local8:uint;
var _local9:uint;
_local4 = false;
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;
var _local4:Array;
_local4 = new Array();
_local2 = 0;
while (_local2 < _tweenList.length) {
if (_tweenList[_local2].scope == _arg1){
for (_local3 in _tweenList[_local2].properties) {
_local4.push(_local3);
};
};
_local2++;
};
return (_local4);
}
private static function setPropertyValue(_arg1:Object, _arg2:String, _arg3:Number):void{
if (_specialPropertyList[_arg2] != undefined){
if (Boolean(_specialPropertyList[_arg2].parameters)){
_specialPropertyList[_arg2].setValue(_arg1, _arg3, _specialPropertyList[_arg2].parameters);
} else {
_specialPropertyList[_arg2].setValue(_arg1, _arg3);
};
} else {
_arg1[_arg2] = _arg3;
};
}
private static function getPropertyValue(_arg1:Object, _arg2:String):Number{
if (_specialPropertyList[_arg2] != undefined){
if (Boolean(_specialPropertyList[_arg2].parameters)){
return (_specialPropertyList[_arg2].getValue(_arg1, _specialPropertyList[_arg2].parameters));
};
return (_specialPropertyList[_arg2].getValue(_arg1));
} else {
};
return (!NULL!);
}
public static function isTweening(_arg1:Object):Boolean{
var _local2:uint;
_local2 = 0;
while (_local2 < _tweenList.length) {
if (_tweenList[_local2].scope == _arg1){
return (true);
};
_local2++;
};
return (false);
}
public static function getTweenCount(_arg1:Object):Number{
var _local2:uint;
var _local3:Number;
_local3 = 0;
_local2 = 0;
while (_local2 < _tweenList.length) {
if (_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;
__tweener_controller__.removeEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame);
__tweener_controller__ = null;
}
public static function pauseTweenByIndex(_arg1:Number):Boolean{
var _local2:TweenListObj;
_local2 = _tweenList[_arg1];
if ((((_local2 == null)) || (_local2.isPaused))){
return (false);
};
_local2.timePaused = _currentTime;
_local2.isPaused = true;
return (true);
}
public static function removeTweensByTime(_arg1:Object, _arg2:Object, _arg3:Number, _arg4:Number):Boolean{
var removed:Boolean;
var removedLocally:Boolean;
var i:uint;
var tl:uint;
var pName:String;
var p_scope = _arg1;
var p_properties = _arg2;
var p_timeStart = _arg3;
var p_timeComplete = _arg4;
removed = false;
tl = _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)){
try {
_tweenList[i].onOverwrite.apply(_tweenList[i].scope, _tweenList[i].onOverwriteParams);
} catch(e:Error) {
};
};
_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):void{
var _local3:SpecialPropertySplitter;
if (!_inited){
init();
};
_local3 = new SpecialPropertySplitter(_arg2);
_specialPropertySplitterList[_arg1] = _local3;
}
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 _local3:Array;
var _local4:uint;
_local3 = 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 _local3:Array;
var _local4:uint;
_local3 = 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 onUpdate:Function;
public var useFrames:Boolean;
public var
:Boolean;
public var onOverwriteParams:Array;
public var timeStart:Number;
public var count:Number;
public var :Object;
public var timeComplete:Number;
public var onStartParams:Array;
public var rounded:Boolean;
public var :Number;
public var onUpdateParams:Array;
public var onComplete:Function;
public var properties:Object;
public var onStart:Function;
public var skipUpdates:Number;
public var scope:Object;
public var :Boolean;
public var timePaused:Number;
public var transition:Function;
public var onCompleteParams:Array;
public var :Number;
public var onOverwrite:Function;
public var isPaused:Boolean;
public var waitFrames:Boolean;
public function TweenListObj(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Boolean, _arg5:Function){
scope = _arg1;
timeStart = _arg2;
timeComplete = _arg3;
useFrames = _arg4;
transition = _arg5;
= new Object();
properties = new Object();
isPaused = false;
timePaused = undefined;
= false;
= 0;
= 0;
skipUpdates = 0;
= false;
}
public function clone(_arg1:Boolean):TweenListObj{
var _local2:TweenListObj;
var _local3:String;
_local2 = new TweenListObj(scope, timeStart, timeComplete, useFrames, transition);
_local2.properties = new Array();
for (_local3 in properties) {
_local2.properties[_local3] = properties[_local3].clone();
};
_local2.skipUpdates = skipUpdates;
_local2. = ;
if (!_arg1){
_local2.onStart = onStart;
_local2.onUpdate = onUpdate;
_local2.onComplete = onComplete;
_local2.onOverwrite = onOverwrite;
_local2.onStartParams = onStartParams;
_local2.onUpdateParams = onUpdateParams;
_local2.onCompleteParams = onCompleteParams;
_local2.onOverwriteParams = onOverwriteParams;
};
_local2.rounded = rounded;
_local2.isPaused = isPaused;
_local2.timePaused = timePaused;
_local2. = ;
_local2.count = count;
_local2. = ;
_local2.waitFrames = waitFrames;
_local2.
=
;
return (_local2);
}
public function toString():String{
var _local1:String;
var _local2:uint;
_local1 = "\n[TweenListObj ";
_local1 = (_local1 + ("scope:" + String(scope)));
_local1 = (_local1 + ", properties:");
_local2 = 0;
while (_local2 < properties.length) {
if (_local2 > 0){
_local1 = (_local1 + ",");
};
_local1 = (_local1 + ("[name:" + properties[_local2].name));
_local1 = (_local1 + (",valueStart:" + properties[_local2].valueStart));
_local1 = (_local1 + (",valueComplete:" + properties[_local2].valueComplete));
_local1 = (_local1 + "]");
_local2++;
};
_local1 = (_local1 + (", timeStart:" + String(timeStart)));
_local1 = (_local1 + (", timeComplete:" + String(timeComplete)));
_local1 = (_local1 + (", useFrames:" + String(useFrames)));
_local1 = (_local1 + (", transition:" + String(transition)));
if (skipUpdates){
_local1 = (_local1 + (", skipUpdates:" + String(skipUpdates)));
};
if (){
_local1 = (_local1 + (", updatesSkipped:" + String()));
};
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 (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 (rounded){
_local1 = (_local1 + (", rounded:" + String(rounded)));
};
if (isPaused){
_local1 = (_local1 + (", isPaused:" + String(isPaused)));
};
if (timePaused){
_local1 = (_local1 + (", timePaused:" + String(timePaused)));
};
if (){
_local1 = (_local1 + (", isCaller:" + String()));
};
if (count){
_local1 = (_local1 + (", count:" + String(count)));
};
if (){
_local1 = (_local1 + (", timesCalled:" + String()));
};
if (waitFrames){
_local1 = (_local1 + (", waitFrames:" + String(waitFrames)));
};
if (
){
_local1 = (_local1 + (", hasStarted:" + String(
)));
};
_local1 = (_local1 + "]\n");
return (_local1);
}
}
}//package caurina.transitions
Section 84
//gameFormRelease (classes.gamearea.gameFormRelease)
package classes.gamearea {
import flash.display.*;
import flash.text.*;
public dynamic class gameFormRelease extends MovieClip {
public var gamezheroBtn:SimpleButton;
public var t_time2:TextField;
public var t_time:TextField;
public var playGametext_mc:playGameText;
}
}//package classes.gamearea
Section 85
//FlashChecker (classes.gamezhero.FlashChecker)
package classes.gamezhero {
import flash.display.*;
public dynamic class FlashChecker extends MovieClip {
public var b:SimpleButton;
public function FlashChecker(){
addFrameScript(0, frame1, 1, );
}
function frame1(){
stop();
}
function (){
stop();
}
}
}//package classes.gamezhero
Section 86
//Base64 (com.base64.Base64)
package com.base64 {
import flash.utils.*;
public class Base64 {
public static const version:String = "1.0.0";
private static const BASE64_CHARS:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
public function Base64(){
throw (new Error("Base64 class is static container only"));
}
public static function encode(_arg1:String):String{
var _local2:ByteArray;
_local2 = new ByteArray();
_local2.writeUTFBytes(_arg1);
return (encodeByteArray(_local2));
}
public static function encodeByteArray(_arg1:ByteArray):String{
var _local2:String;
var _local3:Array;
var _local4:Array;
var _local5:uint;
var _local6:uint;
var _local7:uint;
_local2 = "";
_local4 = new Array(4);
_arg1.position = 0;
while (_arg1.bytesAvailable > 0) {
_local3 = new Array();
_local5 = 0;
while ((((_local5 < 3)) && ((_arg1.bytesAvailable > 0)))) {
_local3[_local5] = _arg1.readUnsignedByte();
_local5++;
};
_local4[0] = ((_local3[0] & 252) >> 2);
_local4[1] = (((_local3[0] & 3) << 4) | (_local3[1] >> 4));
_local4[2] = (((_local3[1] & 15) << 2) | (_local3[2] >> 6));
_local4[3] = (_local3[2] & 63);
_local6 = _local3.length;
while (_local6 < 3) {
_local4[(_local6 + 1)] = 64;
_local6++;
};
_local7 = 0;
while (_local7 < _local4.length) {
_local2 = (_local2 + BASE64_CHARS.charAt(_local4[_local7]));
_local7++;
};
};
return (_local2);
}
public static function decode(_arg1:String):String{
var _local2:ByteArray;
_local2 = decodeToByteArray(_arg1);
return (_local2.readUTFBytes(_local2.length));
}
public static function decodeToByteArray(_arg1:String):ByteArray{
var _local2:ByteArray;
var _local3:Array;
var _local4:Array;
var _local5:uint;
var _local6:uint;
var _local7:uint;
_local2 = new ByteArray();
_local3 = new Array(4);
_local4 = new Array(3);
_local5 = 0;
while (_local5 < _arg1.length) {
_local6 = 0;
while ((((_local6 < 4)) && (((_local5 + _local6) < _arg1.length)))) {
_local3[_local6] = BASE64_CHARS.indexOf(_arg1.charAt((_local5 + _local6)));
_local6++;
};
_local4[0] = ((_local3[0] << 2) + ((_local3[1] & 48) >> 4));
_local4[1] = (((_local3[1] & 15) << 4) + ((_local3[2] & 60) >> 2));
_local4[2] = (((_local3[2] & 3) << 6) + _local3[3]);
_local7 = 0;
while (_local7 < _local4.length) {
if (_local3[(_local7 + 1)] == 64){
break;
};
_local2.writeByte(_local4[_local7]);
_local7++;
};
_local5 = (_local5 + 4);
};
_local2.position = 0;
return (_local2);
}
}
}//package com.base64
Section 87
//MoreGames (com.gamezhero.as3.btn.MoreGames)
package com.gamezhero.as3.btn {
import flash.events.*;
import flash.display.*;
import com.gamezhero.as3.*;
public class MoreGames extends SimpleButton {
public function MoreGames(){
this.addEventListener(MouseEvent.CLICK, );
}
private function (_arg1:MouseEvent=null):void{
GamezheroGlobal.getURL((((("http://www.gamezhero.com/?utm_campaign=" + GamezheroGlobal.gameName) + "&utm_source=") + GamezheroGlobal.getDomain()) + "&utm_medium=more_free_games"), "_blank");
}
}
}//package com.gamezhero.as3.btn
Section 88
//TopScore (com.gamezhero.as3.btn.TopScore)
package com.gamezhero.as3.btn {
import flash.events.*;
import flash.display.*;
import com.gamezhero.as3.*;
public class TopScore extends SimpleButton {
public function TopScore(){
this.addEventListener(MouseEvent.CLICK, );
}
private function (_arg1:MouseEvent=null):void{
GamezheroGlobal.getURL((((((("http://www.gamezhero.com/topscore/" + GamezheroGlobal.gameName) + "/top100.html?utm_campaign=") + GamezheroGlobal.gameName) + "&utm_source=") + GamezheroGlobal.getDomain()) + "&utm_medium=top_score"), "_blank");
}
}
}//package com.gamezhero.as3.btn
Section 89
//ZorroLogo (com.gamezhero.as3.btn.ZorroLogo)
package com.gamezhero.as3.btn {
import flash.events.*;
import flash.display.*;
import com.gamezhero.as3.*;
public class ZorroLogo extends SimpleButton {
public function ZorroLogo(){
this.addEventListener(MouseEvent.CLICK, );
}
private function (_arg1:MouseEvent=null):void{
GamezheroGlobal.getURL((((("http://www.gamezhero.com/?utm_campaign=" + GamezheroGlobal.gameName) + "&utm_source=") + GamezheroGlobal.getDomain()) + "&utm_medium=zorro_logo"), "_blank");
}
}
}//package com.gamezhero.as3.btn
Section 90
//MD5 (com.gamezhero.as3.crypto.MD5)
package com.gamezhero.as3.crypto {
import com.gamezhero.as3.utils.*;
public class MD5 {
private function (_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
private function
(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(i, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
private function (_arg1:int, _arg2:int, _arg3:int):int{
return (((_arg1 & _arg2) | (~(_arg1) & _arg3)));
}
private function (_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(g, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
private function h(_arg1:int, _arg2:int, _arg3:int):int{
return (((_arg1 ^ _arg2) ^ _arg3));
}
private function i(_arg1:int, _arg2:int, _arg3:int):int{
return ((_arg2 ^ (_arg1 | ~(_arg3))));
}
private function transform(_arg1:Function, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):int{
var _local9:int;
_local9 = (((_arg2 + int(_arg1(_arg3, _arg4, _arg5))) + _arg6) + _arg8);
return ((IntUtil.rol(_local9, _arg7) + _arg3));
}
private function g(_arg1:int, _arg2:int, _arg3:int):int{
return (((_arg1 & _arg3) | (_arg2 & ~(_arg3))));
}
private function (_arg1:String):Array{
var _local2:Array;
var _local3:int;
var _local4:int;
var _local5:int;
_local2 = new Array();
_local3 = (_arg1.length * 8);
_local4 = 0xFF;
_local5 = 0;
while (_local5 < _local3) {
_local2[(_local5 >> 5)] = (_local2[(_local5 >> 5)] | ((_arg1.charCodeAt((_local5 / 8)) & _local4) << (_local5 % 32)));
_local5 = (_local5 + 8);
};
_local2[(_local3 >> 5)] = (_local2[(_local3 >> 5)] | (128 << (_local3 % 32)));
_local2[((((_local3 + 64) >>> 9) << 4) + 14)] = _local3;
return (_local2);
}
public function hash(_arg1:String):String{
var _local2:int;
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:int;
var _local10:Array;
var _local11:int;
var _local12:int;
_local2 = 1732584193;
_local3 = -271733879;
_local4 = -1732584194;
_local5 = 271733878;
_local10 = (_arg1);
_local11 = _local10.length;
_local12 = 0;
while (_local12 < _local11) {
_local6 = _local2;
_local7 = _local3;
_local8 = _local4;
_local9 = _local5;
_local2 = (_local2, _local3, _local4, _local5, _local10[(_local12 + 0)], 7, -680876936);
_local5 = (_local5, _local2, _local3, _local4, _local10[(_local12 + 1)], 12, -389564586);
_local4 = (_local4, _local5, _local2, _local3, _local10[(_local12 + 2)], 17, 606105819);
_local3 = (_local3, _local4, _local5, _local2, _local10[(_local12 + 3)], 22, -1044525330);
_local2 = (_local2, _local3, _local4, _local5, _local10[(_local12 + 4)], 7, -176418897);
_local5 = (_local5, _local2, _local3, _local4, _local10[(_local12 + 5)], 12, 1200080426);
_local4 = (_local4, _local5, _local2, _local3, _local10[(_local12 + 6)], 17, -1473231341);
_local3 = (_local3, _local4, _local5, _local2, _local10[(_local12 + 7)], 22, -45705983);
_local2 = (_local2, _local3, _local4, _local5, _local10[(_local12 + 8)], 7, 1770035416);
_local5 = (_local5, _local2, _local3, _local4, _local10[(_local12 + 9)], 12, -1958414417);
_local4 = (_local4, _local5, _local2, _local3, _local10[(_local12 + 10)], 17, -42063);
_local3 = (_local3, _local4, _local5, _local2, _local10[(_local12 + 11)], 22, -1990404162);
_local2 = (_local2, _local3, _local4, _local5, _local10[(_local12 + 12)], 7, 1804603682);
_local5 = (_local5, _local2, _local3, _local4, _local10[(_local12 + 13)], 12, -40341101);
_local4 = (_local4, _local5, _local2, _local3, _local10[(_local12 + 14)], 17, -1502002290);
_local3 = (_local3, _local4, _local5, _local2, _local10[(_local12 + 15)], 22, 1236535329);
_local2 = (_local2, _local3, _local4, _local5, _local10[(_local12 + 1)], 5, -165796510);
_local5 = (_local5, _local2, _local3, _local4, _local10[(_local12 + 6)], 9, -1069501632);
_local4 = (_local4, _local5, _local2, _local3, _local10[(_local12 + 11)], 14, 643717713);
_local3 = (_local3, _local4, _local5, _local2, _local10[(_local12 + 0)], 20, -373897302);
_local2 = (_local2, _local3, _local4, _local5, _local10[(_local12 + 5)], 5, -701558691);
_local5 = (_local5, _local2, _local3, _local4, _local10[(_local12 + 10)], 9, 38016083);
_local4 = (_local4, _local5, _local2, _local3, _local10[(_local12 + 15)], 14, -660478335);
_local3 = (_local3, _local4, _local5, _local2, _local10[(_local12 + 4)], 20, -405537848);
_local2 = (_local2, _local3, _local4, _local5, _local10[(_local12 + 9)], 5, 568446438);
_local5 = (_local5, _local2, _local3, _local4, _local10[(_local12 + 14)], 9, -1019803690);
_local4 = (_local4, _local5, _local2, _local3, _local10[(_local12 + 3)], 14, -187363961);
_local3 = (_local3, _local4, _local5, _local2, _local10[(_local12 + 8)], 20, 1163531501);
_local2 = (_local2, _local3, _local4, _local5, _local10[(_local12 + 13)], 5, -1444681467);
_local5 = (_local5, _local2, _local3, _local4, _local10[(_local12 + 2)], 9, -51403784);
_local4 = (_local4, _local5, _local2, _local3, _local10[(_local12 + 7)], 14, 1735328473);
_local3 = (_local3, _local4, _local5, _local2, _local10[(_local12 + 12)], 20, -1926607734);
_local2 = (_local2, _local3, _local4, _local5, _local10[(_local12 + 5)], 4, -378558);
_local5 = (_local5, _local2, _local3, _local4, _local10[(_local12 + 8)], 11, -2022574463);
_local4 = (_local4, _local5, _local2, _local3, _local10[(_local12 + 11)], 16, 1839030562);
_local3 = (_local3, _local4, _local5, _local2, _local10[(_local12 + 14)], 23, -35309556);
_local2 = (_local2, _local3, _local4, _local5, _local10[(_local12 + 1)], 4, -1530992060);
_local5 = (_local5, _local2, _local3, _local4, _local10[(_local12 + 4)], 11, 1272893353);
_local4 = (_local4, _local5, _local2, _local3, _local10[(_local12 + 7)], 16, -155497632);
_local3 = (_local3, _local4, _local5, _local2, _local10[(_local12 + 10)], 23, -1094730640);
_local2 = (_local2, _local3, _local4, _local5, _local10[(_local12 + 13)], 4, 681279174);
_local5 = (_local5, _local2, _local3, _local4, _local10[(_local12 + 0)], 11, -358537222);
_local4 = (_local4, _local5, _local2, _local3, _local10[(_local12 + 3)], 16, -722521979);
_local3 = (_local3, _local4, _local5, _local2, _local10[(_local12 + 6)], 23, 76029189);
_local2 = (_local2, _local3, _local4, _local5, _local10[(_local12 + 9)], 4, -640364487);
_local5 = (_local5, _local2, _local3, _local4, _local10[(_local12 + 12)], 11, -421815835);
_local4 = (_local4, _local5, _local2, _local3, _local10[(_local12 + 15)], 16, 530742520);
_local3 = (_local3, _local4, _local5, _local2, _local10[(_local12 + 2)], 23, -995338651);
_local2 =
(_local2, _local3, _local4, _local5, _local10[(_local12 + 0)], 6, -198630844);
_local5 =
(_local5, _local2, _local3, _local4, _local10[(_local12 + 7)], 10, 1126891415);
_local4 =
(_local4, _local5, _local2, _local3, _local10[(_local12 + 14)], 15, -1416354905);
_local3 =
(_local3, _local4, _local5, _local2, _local10[(_local12 + 5)], 21, -57434055);
_local2 =
(_local2, _local3, _local4, _local5, _local10[(_local12 + 12)], 6, 1700485571);
_local5 =
(_local5, _local2, _local3, _local4, _local10[(_local12 + 3)], 10, -1894986606);
_local4 =
(_local4, _local5, _local2, _local3, _local10[(_local12 + 10)], 15, -1051523);
_local3 =
(_local3, _local4, _local5, _local2, _local10[(_local12 + 1)], 21, -2054922799);
_local2 =
(_local2, _local3, _local4, _local5, _local10[(_local12 + 8)], 6, 1873313359);
_local5 =
(_local5, _local2, _local3, _local4, _local10[(_local12 + 15)], 10, -30611744);
_local4 =
(_local4, _local5, _local2, _local3, _local10[(_local12 + 6)], 15, -1560198380);
_local3 =
(_local3, _local4, _local5, _local2, _local10[(_local12 + 13)], 21, 1309151649);
_local2 =
(_local2, _local3, _local4, _local5, _local10[(_local12 + 4)], 6, -145523070);
_local5 =
(_local5, _local2, _local3, _local4, _local10[(_local12 + 11)], 10, -1120210379);
_local4 =
(_local4, _local5, _local2, _local3, _local10[(_local12 + 2)], 15, 718787259);
_local3 =
(_local3, _local4, _local5, _local2, _local10[(_local12 + 9)], 21, -343485551);
_local2 = (_local2 + _local6);
_local3 = (_local3 + _local7);
_local4 = (_local4 + _local8);
_local5 = (_local5 + _local9);
_local12 = (_local12 + 16);
};
return ((((IntUtil.toHex(_local2) + IntUtil.toHex(_local3)) + IntUtil.toHex(_local4)) + IntUtil.toHex(_local5)));
}
private function (_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(h, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
}
}//package com.gamezhero.as3.crypto
Section 91
//RemotingLevelsEvent (com.gamezhero.as3.remoting.events.RemotingLevelsEvent)
package com.gamezhero.as3.remoting.events {
import flash.events.*;
public class RemotingLevelsEvent extends Event {
private var ;
public static const GET_PAGE_LIST:String = "GET_PAGE_LIST";
public static const SET_LEVEL:String = "SET_LEVEL";
public static const ERROR:String = "LEVEL_REMOTIN_ERROR";
public static const SET_LEVEL_RATE:String = "SET_LEVEL_RATE";
public static const GET_LEVEL:String = "GET_LEVEL";
public static const GET_PAGE_AMOUNT:String = "GET_PAGE_AMOUNT";
public function RemotingLevelsEvent(_arg1:String){
super(_arg1);
}
public function set value(_arg1):void{
= _arg1;
}
override public function toString():String{
return (formatToString("RemotinLevelsEvent"));
}
public function get value(){
return ();
}
}
}//package com.gamezhero.as3.remoting.events
Section 92
//LevelStructure (com.gamezhero.as3.remoting.structure.LevelStructure)
package com.gamezhero.as3.remoting.structure {
public class LevelStructure {
public var level_author:String;
public var level_email:String;
public var level_name:String;
public var level_value:String;
public var level_rate:Number;
public function LevelStructure(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number){
level_name = _arg1;
level_value = _arg2;
level_author = _arg3;
level_rate = _arg5;
level_email = _arg4;
}
public function getArray():Array{
var _local1:Array;
_local1 = new Array();
_local1["level_name"] = level_name;
_local1["level_value"] = level_value;
_local1["level_author"] = level_author;
_local1["level_rate"] = level_rate;
_local1["level_email"] = level_email;
return (_local1);
}
public function toString():String{
return (((((((level_name + " ") + level_author) + " ") + String(level_rate)) + " ") + level_value));
}
}
}//package com.gamezhero.as3.remoting.structure
Section 93
//RemotingEventDispatcher (com.gamezhero.as3.remoting.RemotingEventDispatcher)
package com.gamezhero.as3.remoting {
import flash.events.*;
public class RemotingEventDispatcher extends EventDispatcher {
public function RemotingEventDispatcher(_arg1:IEventDispatcher=null){
super(_arg1);
}
}
}//package com.gamezhero.as3.remoting
Section 94
//RemotingLevelResponder (com.gamezhero.as3.remoting.RemotingLevelResponder)
package com.gamezhero.as3.remoting {
import flash.net.*;
public class RemotingLevelResponder extends Responder {
public var :Function;
public var name:String;// = null
public var
:Function;
public function RemotingLevelResponder(_arg1:String, _arg2:Function, _arg3:Function=null){
name = null;
name = _arg1;
= _arg2;
= _arg3;
super(, );
}
private function (_arg1):void{
.call(null, name, _arg1);
}
private function (_arg1):void{
.call(null, name, _arg1);
}
}
}//package com.gamezhero.as3.remoting
Section 95
//RemotingLevelsGateway (com.gamezhero.as3.remoting.RemotingLevelsGateway)
package com.gamezhero.as3.remoting {
import flash.events.*;
import com.gamezhero.as3.remoting.structure.*;
import com.gamezhero.as3.remoting.events.*;
import com.gamezhero.as3.crypto.*;
import flash.net.*;
public class RemotingLevelsGateway {
private var :RemotingService;
private var
:String;
private var
:RemotingEventDispatcher;
public static const SORT_BY_RATE:uint = 2;
public static const ERROR:String = "REMOTING_LEVEL_ERROR";
public static const SORT_BY_RATE_DEC:uint = 3;
public static const SORT_BY_DATE:uint = 6;
public static const SORT_BY_NAME:uint = 0;
public static const SORT_BY_NAME_DEC:uint = 1;
public static const SORT_BY_DATE_DEC:uint = 7;
public static const SORT_BY_AUTHOR:uint = 4;
public static const SORT_BY_AUTHOR_DEC:uint = 5;
public function RemotingLevelsGateway(_arg1:String=null){
var strServicePath = _arg1;
super();
trace(("Init remoting, path = " + strServicePath));
try {
= new RemotingEventDispatcher();
init(strServicePath);
} catch(e:Error) {
trace("Init remoting error");
};
}
public function getPageList(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{
var _local5:RemotingLevelResponder;
trace("getPageList", _arg1, _arg2, _arg3, _arg4);
_local5 = new RemotingLevelResponder(RemotingLevelsEvent.GET_PAGE_LIST,
,
);
.call("levels.getPageList", (_local5 as Responder), _arg1, _arg2, _arg3, _arg4);
}
public function getPagesAmount(_arg1:Number, _arg2:Number):void{
var _local3:RemotingLevelResponder;
_local3 = new RemotingLevelResponder(RemotingLevelsEvent.GET_PAGE_AMOUNT,
,
);
.call("levels.getPagesAmount", (_local3 as Responder), _arg1, _arg2);
}
public function setLevel(_arg1:Number, _arg2:Number, _arg3:LevelStructure):void{
var _local4:RemotingLevelResponder;
var _local5:String;
var _local6:Array;
_local4 = new RemotingLevelResponder(RemotingLevelsEvent.SET_LEVEL,
,
);
_local5 = new MD5().hash(((_arg1 + _arg3.level_name) + _arg3.level_value));
_local6 = _arg3.getArray();
.call("levels.setLevel", (_local4 as Responder), _arg1, _arg2, _local6, _local5);
}
public function removeEventListener(_arg1:String, _arg2:Function):void{
.removeEventListener(_arg1, _arg2);
}
private function
(_arg1:NetStatusEvent=null):void{
var _local2:RemotingLevelsEvent;
_local2 = new RemotingLevelsEvent(RemotingLevelsEvent.ERROR);
.dispatchEvent(_local2);
}
public function addEventListener(_arg1:String, _arg2:Function):void{
.addEventListener(_arg1, _arg2);
}
public function getLevel(_arg1:Number, _arg2:String):void{
var _local3:RemotingLevelResponder;
_local3 = new RemotingLevelResponder(RemotingLevelsEvent.GET_LEVEL,
,
);
.call("levels.getLevel", (_local3 as Responder), _arg1, _arg2);
}
private function init(_arg1:String=null):void{
= _arg1;
= new RemotingService(
);
.addEventListener(NetStatusEvent.NET_STATUS,
);
}
public function setLevelRate(_arg1:Number, _arg2:String, _arg3:Number):void{
var _local4:RemotingLevelResponder;
var _local5:String;
_local4 = new RemotingLevelResponder(RemotingLevelsEvent.SET_LEVEL_RATE,
,
);
_local5 = new MD5().hash(String(((_arg1 + _arg2) + _arg3)));
.call("levels.setLevelRate", (_local4 as Responder), _arg1, _arg2, _arg3, _local5);
}
private function
(_arg1:String, _arg2:Object):void{
var _local3:RemotingLevelsEvent;
_local3 = new RemotingLevelsEvent(RemotingLevelsEvent.ERROR);
_local3.value = _arg1;
.dispatchEvent(_local3);
}
private function
(_arg1:String, _arg2):void{
var _local3:RemotingLevelsEvent;
_local3 = new RemotingLevelsEvent(_arg1);
_local3.value = _arg2;
.dispatchEvent(_local3);
}
}
}//package com.gamezhero.as3.remoting
Section 96
//RemotingService (com.gamezhero.as3.remoting.RemotingService)
package com.gamezhero.as3.remoting {
import flash.net.*;
public class RemotingService extends NetConnection {
public function RemotingService(_arg1:String){
objectEncoding = ObjectEncoding.AMF3;
connect(_arg1);
}
}
}//package com.gamezhero.as3.remoting
Section 97
//IntUtil (com.gamezhero.as3.utils.IntUtil)
package com.gamezhero.as3.utils {
public class IntUtil {
private static var hexChars:String = "0123456789abcdef";
public static function toHex(_arg1:int, _arg2:Boolean=false):String{
var _local3:String;
var _local4:int;
var _local5:int;
_local3 = "";
if (_arg2){
_local4 = 0;
while (_local4 < 4) {
_local3 = (_local3 + (hexChars.charAt(((_arg1 >> (((3 - _local4) * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> ((3 - _local4) * 8)) & 15))));
_local4++;
};
} else {
_local5 = 0;
while (_local5 < 4) {
_local3 = (_local3 + (hexChars.charAt(((_arg1 >> ((_local5 * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> (_local5 * 8)) & 15))));
_local5++;
};
};
return (_local3);
}
public static function ror(_arg1:int, _arg2:int):uint{
var _local3:int;
_local3 = (32 - _arg2);
return (((_arg1 << _local3) | (_arg1 >>> (32 - _local3))));
}
public static function rol(_arg1:int, _arg2:int):int{
return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2))));
}
}
}//package com.gamezhero.as3.utils
Section 98
//URL (com.gamezhero.as3.utils.URL)
package com.gamezhero.as3.utils {
public class URL {
private var :String;
private var
:String;
private var :String;
private var :String;
private var :String;
private var :String;
private var :String;
private var :String;
private static const PATTERN:RegExp = /^([A-Za-z0-9_+.]{1,8}:\/\/)?([!-~]+@)?([^\/?#:]*)(:[0-9]*)?(\/[^?#]*)?(\?[^#]*)?(\#.*)?/i;
public function URL(_arg1:String):void{
var _local2:Array;
super();
_local2 = _arg1.match(URL.PATTERN);
= _local2[0];
= _local2[1];
= _local2[2];
= _local2[3];
= _local2[4];
= _local2[5];
= _local2[6];
= _local2[7];
}
public function get port():int{
return (((.length <= 0)) ? undefined : int(.substring(1, .length)));
}
public function get query():Object{
var _local1:Object;
var _local2:String;
var _local3:Array;
var _local4:int;
var _local5:Array;
_local1 = {raw:undefined, parsed:undefined};
if ((() && ((.length > 0)))){
_local1.raw = ;
_local2 = .substring(1, .length);
_local3 = _local2.split("&");
_local1.parsed = ((_local3.length > 0)) ? {} : undefined;
_local4 = 0;
while (_local4 < _local3.length) {
_local5 = _local3[_local4].split("=");
_local1.parsed[_local5[0]] = _local5[1];
_local4++;
};
};
return (_local1);
}
public function get fragment():String{
return (((.length <= 0)) ? undefined : );
}
public function get scheme():String{
return ((( .length <= 0)) ? undefined : .substring(0, ( .length - 3)));
}
public function get host():String{
return (((
.length <= 0)) ? undefined :
);
}
public function get path():String{
return (((.length <= 0)) ? undefined : );
}
public function get url():String{
return (((.length <= 0)) ? undefined : );
}
public function get userinfo():Object{
var _local1:Object;
var _local2:Array;
_local1 = {user:undefined, pass:undefined};
if (){
_local2 = .substring(0, (.length - 1)).split(":");
_local1.user = (_local2[0]) ? _local2[0] : _local1.user;
_local1.pass = (_local2[1]) ? _local2[1] : _local1.pas;
};
return (_local1);
}
}
}//package com.gamezhero.as3.utils
Section 99
//GamePreloader (com.gamezhero.as3.GamePreloader)
package com.gamezhero.as3 {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.net.*;
import flash.ui.*;
public class GamePreloader extends MovieClip {
private var obj:Object;
private var :Dictionary;
public var bg:MovieClip;
private var :Number;
public var intro:MovieClip;
private var :MovieClip;
private var :String;
private var :String;
public static const finish:String = "PRELOAD_COMPLETE";
public function GamePreloader(_arg1:MovieClip, _arg2:Object){
var _local3:String;
var _local4:String;
var _local5:ContextMenu;
var _local6:ContextMenuBuiltInItems;
var _local7:String;
var _local8:ContextMenuItem;
= new Dictionary();
super();
obj = new Object();
_local3 = GamezheroGlobal.getDomain(_arg1.stage);
_local4 = GamezheroGlobal.gameName;
obj = _arg2;
obj.gamezhero_url = (((("http://www.gamezhero.com/?utm_campaign=" + _local4) + "&utm_source=") + _local3) + "&utm_medium=preloader");
obj.gamezhero_menu = {Free Online Games @ Gamezhero.com:(((("http://www.gamezhero.com/?utm_campaign=" + _local4) + "&utm_source=") + _local3) + "&utm_medium=context_menu"), Send To Friends:(((((("http://www.gamezhero.com/sendtofriends/" + _local4) + "-onlinegames.html?utm_campaign=") + _local4) + "&utm_source=") + _local3) + "&utm_medium=send_to_friends_context_menu"), Put This Game To Your Blog or Site:(((((("http://www.gamezhero.com/freewebsitegames/" + _local4) + "-onlinegames.html?utm_campaign=") + _local4) + "&utm_source=") + _local3) + "&utm_medium=free_web_site_games_context")};
= _arg1;
.addChild(this);
stage.addEventListener(Event.RESIZE, );
this.addEventListener(Event.ENTER_FRAME, iniPreloader);
= stage.scaleMode;
= stage.align;
= stage.frameRate;
(null);
_local5 = new ContextMenu();
_local5.hideBuiltInItems();
_local6 = _local5.builtInItems;
_local6.quality = true;
_local6.print = true;
for (_local7 in _arg2.gamezhero_menu) {
_local8 = new ContextMenuItem(_local7);
[_local8] = _arg2.gamezhero_menu[_local7];
_local8.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, );
_local5.customItems.push(_local8);
};
.loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, );
.loaderInfo.addEventListener(Event.COMPLETE, );
this.parent.contextMenu = _local5;
this.addEventListener(MouseEvent.MOUSE_DOWN,
);
this.useHandCursor = true;
this.buttonMode = true;
}
public function (_arg1:Event=null):void{
}
public function action(_arg1:Event=null):void{
var _local2:Event;
stage.scaleMode = ;
stage.align = ;
stage.frameRate = ;
this.removeEventListener(Event.ENTER_FRAME, iniPreloader);
stage.removeEventListener(Event.RESIZE, );
.loaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, );
.loaderInfo.removeEventListener(Event.COMPLETE, );
_local2 = new Event(finish);
this.dispatchEvent(_local2);
.removeChild(this);
}
public function
(_arg1:MouseEvent=null):void{
getURL(obj.gamezhero_url);
}
public function getURL(_arg1:String):void{
var _local2:URLRequest;
_local2 = new URLRequest(_arg1);
navigateToURL(_local2, "_blank");
}
public function (_arg1:Event):void{
}
public function (_arg1:Event):void{
var event = _arg1;
try {
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.frameRate = 20;
this["bg"].width = Math.round(stage.stageWidth);
this["bg"].height = Math.round(stage.stageHeight);
this["intro"].x = Math.round((stage.stageWidth / 2));
this["intro"].y = Math.round((stage.stageHeight / 2));
} catch(e:Error) {
};
}
public function (_arg1:ContextMenuEvent=null):void{
getURL( [_arg1.target]);
}
public function iniPreloader(_arg1:Event):void{
var _local2:Number;
_local2 = (-128 + (132 * (.loaderInfo.bytesLoaded / .loaderInfo.bytesTotal)));
this["intro"]["pr"]["begun"].x = (this["intro"]["pr"]["begun"].x - ((this["intro"]["pr"]["begun"].x - _local2) / 5));
if (.loaderInfo.bytesLoaded != .loaderInfo.bytesTotal){
if (this["intro"].currentLabel == "stopFrame"){
this["intro"].stop();
};
} else {
if (this["intro"].currentLabel == "stopFrame"){
this["intro"].play();
};
if (this["intro"].currentFrame == this["intro"].totalFrames){
this["intro"].stop();
action();
};
if (obj.debug){
action();
};
};
}
}
}//package com.gamezhero.as3
Section 100
//GamezheroGlobal (com.gamezhero.as3.GamezheroGlobal)
package com.gamezhero.as3 {
import flash.display.*;
import com.gamezhero.as3.utils.*;
import flash.net.*;
public class GamezheroGlobal {
public static var gameCodeVar:String = "unset";
public static var gameNameVar:String = "unset";
public static var host:String = "error";
public static function getDomain(_arg1:Stage=null):String{
var url:URL;
var stage = _arg1;
if (host != "error"){
return (host);
};
try {
url = new URL(stage.loaderInfo.url);
host = url.host;
if (url.host == null){
host = "local";
};
} catch(e:Error) {
host = "error";
};
return (host);
}
public static function getURL(_arg1:String, _arg2:String):void{
var _local3:URLRequest;
_local3 = new URLRequest(_arg1);
navigateToURL(_local3, _arg2);
}
public static function set gameName(_arg1:String):void{
gameNameVar = _arg1;
}
public static function get gameName():String{
return (gameNameVar);
}
public static function set gameCode(_arg1:String):void{
gameCodeVar = _arg1;
}
public static function get gameCode():String{
return (gameCodeVar);
}
}
}//package com.gamezhero.as3
Section 101
//SubmitArea (com.gamezhero.as3.SubmitArea)
package com.gamezhero.as3 {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.text.*;
import flash.system.*;
public class SubmitArea extends MovieClip {
private var :Number;// = 0
private var :Loader;
private var :Object;
private var :LocalConnection;
private var score:Number;
private var :MovieClip;
private var :Number;
private var :String;
private var
:Object;
public var :String;// = "2.0"
private var :Object;
private var :LocalConnection;
private var :TextField;
private var
:MovieClip;
private var :LocalConnection;
private var :String;
private var :Number;// = 0
private var :String;
private var
:Number;// = 0
private var :MovieClip;
private var :LocalConnection;
private var :String;
private var :Number;
private var :Loader;
public static const SUBMITED:String = "gamezhero_submited";
public static const CONTINUE:String = "gamezhero_continue";
public static const ERROR:String = "gamezhero_error";
public function SubmitArea(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object){
= "2.0";
= 0;
= 0;
= 0;
= new LocalConnection();
= new LocalConnection();
= new LocalConnection();
= new LocalConnection();
= new Loader();
= new Loader();
= new Object();
= new Object();
super();
Security.allowDomain("www.gamezhero.com", "gamezhero.com", "files.gamezhero.com", "*.gamezhero.com");
= new Date().getTime();
= ;
= ("_send_gamezhero_skin_" + );
= ("_recive_gamezhero_skin_" + );
= ("_send_gamezhero_engine_" + );
= ("_recive_gamezhero_engine_" + );
iniEvents();
();
();
(_arg1, _arg2, _arg3, _arg4, _arg5);
}
private function (_arg1:StatusEvent=null):void{
switch (_arg1.level){
case "status":
break;
case "error":
.text = "Error Connections 'Recive From Engine'";
break;
};
}
private function
(_arg1:Event=null){
.text = "Error Loading Engine...";
errorAction();
}
public function ():void{
var _local1:TextFormat;
= new TextField();
.autoSize = TextFieldAutoSize.LEFT;
_local1 = new TextFormat();
_local1.color = 0xFFFFFF;
_local1.size = 11;
_local1.font = "Arial";
.defaultTextFormat = _local1;
this.addChild();
.x = 10;
.y = 10;
}
private function iniEvents():void{
.contentLoaderInfo.addEventListener(Event.INIT, );
.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, );
.contentLoaderInfo.addEventListener(Event.INIT, );
.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,
);
.addEventListener(StatusEvent.STATUS, );
.addEventListener(SecurityErrorEvent.SECURITY_ERROR,
);
.addEventListener(StatusEvent.STATUS, );
.addEventListener(SecurityErrorEvent.SECURITY_ERROR, );
.addEventListener(StatusEvent.STATUS, );
.addEventListener(SecurityErrorEvent.SECURITY_ERROR, );
.addEventListener(StatusEvent.STATUS, );
.addEventListener(SecurityErrorEvent.SECURITY_ERROR, );
}
private function
(_arg1:SecurityErrorEvent=null):void{
errorAction();
}
private function (_arg1):String{
var _local2:String;
var _local3:Number;
_local2 = "";
_local3 = 0;
while (_local3 < _arg1.length) {
_local2 = (_local2 + String.fromCharCode(_arg1[_local3]));
_local3++;
};
return (_local2);
}
public function errorAction():void{
();
();
dispatchEvent(new Event(ERROR));
}
public function submitAction(_arg1:String=""):void{
();
();
dispatchEvent(new Event(SUBMITED));
}
private function (_arg1:SecurityErrorEvent=null):void{
errorAction();
}
private function ():void{
.contentLoaderInfo.removeEventListener(Event.INIT, );
.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, );
.contentLoaderInfo.removeEventListener(Event.INIT, );
.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR,
);
.removeEventListener(StatusEvent.STATUS, );
.removeEventListener(SecurityErrorEvent.SECURITY_ERROR,
);
.removeEventListener(StatusEvent.STATUS, );
.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, );
.removeEventListener(StatusEvent.STATUS, );
.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, );
.removeEventListener(StatusEvent.STATUS, );
.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, );
}
private function (_arg1:SecurityErrorEvent=null):void{
errorAction();
}
private function
():void{
var url:String;
var request:URLRequest;
.text = "Loading Engine...";
url = (([104, 116, 116, 112, 58, 47, 47, 102, 105, 108, 101, 115, 46, 103, 97, 109, 101, 122, 104, 101, 114, 111, 46, 99, 111, 109, 47, 115, 99, 111, 114, 101, 47, 101, 110, 103, 105, 110, 101, 47, 101, 110, 103, 105, 110, 101, 95, 118, 49, 46, 115, 119, 102, 63, 103, 97, 109, 101, 122, 104, 101, 114, 111, 67, 111, 100, 101, 61]) + );
request = new URLRequest(url);
try {
.load(request);
addChild();
} catch(e:Error) {
.text = "Error Loading Engine...";
errorAction();
};
}
private function ():void{
var dom:String;
= new Object();
.engineOk = function (){
.send(, "iniEngine", );
.text = "Engine Connections...";
};
.engineError = function (){
.text = "Error Engine...";
};
.submitActionDone = function (_arg1){
(_arg1);
submitAction();
};
.engineActivated = function (){
iniSkin();
};
dom = ([102, 105, 108, 101, 115, 46, 103, 97, 109, 101, 122, 104, 101, 114, 111, 46, 99, 111, 109]);
.allowDomain(dom);
.allowInsecureDomain(dom);
.client = ;
.connect();
.allowDomain(dom);
.allowInsecureDomain(dom);
}
private function (_arg1:StatusEvent=null):void{
switch (_arg1.level){
case "status":
break;
case "error":
.text = "Error Connections 'Send To Skin'";
break;
};
}
private function (_arg1:Event=null){
.text = "Check Skin Connection... ";
.send(, "skinIsOk");
}
private function (_arg1:StatusEvent=null):void{
switch (_arg1.level){
case "status":
break;
case "error":
.text = "Error Connections 'Send To Engine'";
break;
};
}
private function (_arg1:StatusEvent=null):void{
switch (_arg1.level){
case "status":
break;
case "error":
.text = "Error Connections 'Recive From Skin'";
break;
};
}
private function iniSkin():void{
.x = ;
.y =
;
.text = "";
.send(, "iniSkin", );
}
private function
(){
var url:String;
var request:URLRequest;
.text = "Loading Skin...";
url = (([104, 116, 116, 112, 58, 47, 47, 102, 105, 108, 101, 115, 46, 103, 97, 109, 101, 122, 104, 101, 114, 111, 46, 99, 111, 109, 47, 115, 99, 111, 114, 101, 47, 115, 107, 105, 110, 47, 115, 107, 105, 110, 95, 118, 49, 46, 115, 119, 102, 63, 103, 97, 109, 101, 122, 104, 101, 114, 111, 67, 111, 100, 101, 61]) + );
request = new URLRequest(url);
try {
.load(request);
addChild();
} catch(e:Error) {
.text = "Error Loading Skin...";
errorAction();
};
}
private function ():void{
var dom:String;
= new Object();
.skinOk = function (){
();
};
.submitAction = function (_arg1){
.send(, ([115, 101, 110, 100, 83, 99, 111, 114, 101]), _arg1);
};
.errorInputActin = function (){
};
.continueAction = function (){
continueAction();
};
dom = ([102, 105, 108, 101, 115, 46, 103, 97, 109, 101, 122, 104, 101, 114, 111, 46, 99, 111, 109]);
.allowInsecureDomain(dom);
.allowDomain(dom);
.client =
;
.connect();
.allowInsecureDomain(dom);
.allowDomain(dom);
}
private function (_arg1:Event=null){
.send(, "engineIsOk");
.text = "Check Engine Connection...";
}
private function (_arg1:SecurityErrorEvent=null):void{
errorAction();
}
public function continueAction():void{
();
();
dispatchEvent(new Event(CONTINUE));
}
private function (_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object):void{
= _arg1;
.addChild(this);
= _arg2;
= _arg3;
= Math.abs(Math.round(_arg4));
= _arg5;
.score = ;
.gameName = GamezheroGlobal.gameName;
.gameCode = GamezheroGlobal.gameCode;
.domain = GamezheroGlobal.getDomain(
.stage);
();
();
}
private function (_arg1):void{
var _local2:URLVariables;
var _local3:*;
var _local4:URLRequest;
_local2 = new URLVariables();
for (_local3 in _arg1.vars) {
_local2[_local3] = _arg1.vars[_local3];
};
_local4 = new URLRequest(_arg1.url);
_local4.method = URLRequestMethod.POST;
_local4.data = _local2;
navigateToURL(_local4, "_blank");
}
private function (_arg1:Event=null){
.text = "Error Loading Skin...";
errorAction();
}
private function
():void{
this.removeChild();
this.removeChild();
this.removeChild();
.removeChild(this);
}
}
}//package com.gamezhero.as3
Section 102
//MD5 (com.gamezhero.crypto.MD5)
package com.gamezhero.crypto {
import com.gamezhero.utils.*;
public class MD5 {
private function (_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
private function
(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(i, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
private function (_arg1:int, _arg2:int, _arg3:int):int{
return (((_arg1 & _arg2) | (~(_arg1) & _arg3)));
}
private function (_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(g, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
private function h(_arg1:int, _arg2:int, _arg3:int):int{
return (((_arg1 ^ _arg2) ^ _arg3));
}
private function i(_arg1:int, _arg2:int, _arg3:int):int{
return ((_arg2 ^ (_arg1 | ~(_arg3))));
}
private function transform(_arg1:Function, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):int{
var _local9:int;
_local9 = (((_arg2 + int(_arg1(_arg3, _arg4, _arg5))) + _arg6) + _arg8);
return ((IntUtil.rol(_local9, _arg7) + _arg3));
}
private function g(_arg1:int, _arg2:int, _arg3:int):int{
return (((_arg1 & _arg3) | (_arg2 & ~(_arg3))));
}
private function (_arg1:String):Array{
var _local2:Array;
var _local3:int;
var _local4:int;
var _local5:int;
_local2 = new Array();
_local3 = (_arg1.length * 8);
_local4 = 0xFF;
_local5 = 0;
while (_local5 < _local3) {
_local2[(_local5 >> 5)] = (_local2[(_local5 >> 5)] | ((_arg1.charCodeAt((_local5 / 8)) & _local4) << (_local5 % 32)));
_local5 = (_local5 + 8);
};
_local2[(_local3 >> 5)] = (_local2[(_local3 >> 5)] | (128 << (_local3 % 32)));
_local2[((((_local3 + 64) >>> 9) << 4) + 14)] = _local3;
return (_local2);
}
public function hash(_arg1:String):String{
var _local2:int;
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:int;
var _local10:Array;
var _local11:int;
var _local12:int;
_local2 = 1732584193;
_local3 = -271733879;
_local4 = -1732584194;
_local5 = 271733878;
_local10 = (_arg1);
_local11 = _local10.length;
_local12 = 0;
while (_local12 < _local11) {
_local6 = _local2;
_local7 = _local3;
_local8 = _local4;
_local9 = _local5;
_local2 = (_local2, _local3, _local4, _local5, _local10[(_local12 + 0)], 7, -680876936);
_local5 = (_local5, _local2, _local3, _local4, _local10[(_local12 + 1)], 12, -389564586);
_local4 = (_local4, _local5, _local2, _local3, _local10[(_local12 + 2)], 17, 606105819);
_local3 = (_local3, _local4, _local5, _local2, _local10[(_local12 + 3)], 22, -1044525330);
_local2 = (_local2, _local3, _local4, _local5, _local10[(_local12 + 4)], 7, -176418897);
_local5 = (_local5, _local2, _local3, _local4, _local10[(_local12 + 5)], 12, 1200080426);
_local4 = (_local4, _local5, _local2, _local3, _local10[(_local12 + 6)], 17, -1473231341);
_local3 = (_local3, _local4, _local5, _local2, _local10[(_local12 + 7)], 22, -45705983);
_local2 = (_local2, _local3, _local4, _local5, _local10[(_local12 + 8)], 7, 1770035416);
_local5 = (_local5, _local2, _local3, _local4, _local10[(_local12 + 9)], 12, -1958414417);
_local4 = (_local4, _local5, _local2, _local3, _local10[(_local12 + 10)], 17, -42063);
_local3 = (_local3, _local4, _local5, _local2, _local10[(_local12 + 11)], 22, -1990404162);
_local2 = (_local2, _local3, _local4, _local5, _local10[(_local12 + 12)], 7, 1804603682);
_local5 = (_local5, _local2, _local3, _local4, _local10[(_local12 + 13)], 12, -40341101);
_local4 = (_local4, _local5, _local2, _local3, _local10[(_local12 + 14)], 17, -1502002290);
_local3 = (_local3, _local4, _local5, _local2, _local10[(_local12 + 15)], 22, 1236535329);
_local2 = (_local2, _local3, _local4, _local5, _local10[(_local12 + 1)], 5, -165796510);
_local5 = (_local5, _local2, _local3, _local4, _local10[(_local12 + 6)], 9, -1069501632);
_local4 = (_local4, _local5, _local2, _local3, _local10[(_local12 + 11)], 14, 643717713);
_local3 = (_local3, _local4, _local5, _local2, _local10[(_local12 + 0)], 20, -373897302);
_local2 = (_local2, _local3, _local4, _local5, _local10[(_local12 + 5)], 5, -701558691);
_local5 = (_local5, _local2, _local3, _local4, _local10[(_local12 + 10)], 9, 38016083);
_local4 = (_local4, _local5, _local2, _local3, _local10[(_local12 + 15)], 14, -660478335);
_local3 = (_local3, _local4, _local5, _local2, _local10[(_local12 + 4)], 20, -405537848);
_local2 = (_local2, _local3, _local4, _local5, _local10[(_local12 + 9)], 5, 568446438);
_local5 = (_local5, _local2, _local3, _local4, _local10[(_local12 + 14)], 9, -1019803690);
_local4 = (_local4, _local5, _local2, _local3, _local10[(_local12 + 3)], 14, -187363961);
_local3 = (_local3, _local4, _local5, _local2, _local10[(_local12 + 8)], 20, 1163531501);
_local2 = (_local2, _local3, _local4, _local5, _local10[(_local12 + 13)], 5, -1444681467);
_local5 = (_local5, _local2, _local3, _local4, _local10[(_local12 + 2)], 9, -51403784);
_local4 = (_local4, _local5, _local2, _local3, _local10[(_local12 + 7)], 14, 1735328473);
_local3 = (_local3, _local4, _local5, _local2, _local10[(_local12 + 12)], 20, -1926607734);
_local2 = (_local2, _local3, _local4, _local5, _local10[(_local12 + 5)], 4, -378558);
_local5 = (_local5, _local2, _local3, _local4, _local10[(_local12 + 8)], 11, -2022574463);
_local4 = (_local4, _local5, _local2, _local3, _local10[(_local12 + 11)], 16, 1839030562);
_local3 = (_local3, _local4, _local5, _local2, _local10[(_local12 + 14)], 23, -35309556);
_local2 = (_local2, _local3, _local4, _local5, _local10[(_local12 + 1)], 4, -1530992060);
_local5 = (_local5, _local2, _local3, _local4, _local10[(_local12 + 4)], 11, 1272893353);
_local4 = (_local4, _local5, _local2, _local3, _local10[(_local12 + 7)], 16, -155497632);
_local3 = (_local3, _local4, _local5, _local2, _local10[(_local12 + 10)], 23, -1094730640);
_local2 = (_local2, _local3, _local4, _local5, _local10[(_local12 + 13)], 4, 681279174);
_local5 = (_local5, _local2, _local3, _local4, _local10[(_local12 + 0)], 11, -358537222);
_local4 = (_local4, _local5, _local2, _local3, _local10[(_local12 + 3)], 16, -722521979);
_local3 = (_local3, _local4, _local5, _local2, _local10[(_local12 + 6)], 23, 76029189);
_local2 = (_local2, _local3, _local4, _local5, _local10[(_local12 + 9)], 4, -640364487);
_local5 = (_local5, _local2, _local3, _local4, _local10[(_local12 + 12)], 11, -421815835);
_local4 = (_local4, _local5, _local2, _local3, _local10[(_local12 + 15)], 16, 530742520);
_local3 = (_local3, _local4, _local5, _local2, _local10[(_local12 + 2)], 23, -995338651);
_local2 =
(_local2, _local3, _local4, _local5, _local10[(_local12 + 0)], 6, -198630844);
_local5 =
(_local5, _local2, _local3, _local4, _local10[(_local12 + 7)], 10, 1126891415);
_local4 =
(_local4, _local5, _local2, _local3, _local10[(_local12 + 14)], 15, -1416354905);
_local3 =
(_local3, _local4, _local5, _local2, _local10[(_local12 + 5)], 21, -57434055);
_local2 =
(_local2, _local3, _local4, _local5, _local10[(_local12 + 12)], 6, 1700485571);
_local5 =
(_local5, _local2, _local3, _local4, _local10[(_local12 + 3)], 10, -1894986606);
_local4 =
(_local4, _local5, _local2, _local3, _local10[(_local12 + 10)], 15, -1051523);
_local3 =
(_local3, _local4, _local5, _local2, _local10[(_local12 + 1)], 21, -2054922799);
_local2 =
(_local2, _local3, _local4, _local5, _local10[(_local12 + 8)], 6, 1873313359);
_local5 =
(_local5, _local2, _local3, _local4, _local10[(_local12 + 15)], 10, -30611744);
_local4 =
(_local4, _local5, _local2, _local3, _local10[(_local12 + 6)], 15, -1560198380);
_local3 =
(_local3, _local4, _local5, _local2, _local10[(_local12 + 13)], 21, 1309151649);
_local2 =
(_local2, _local3, _local4, _local5, _local10[(_local12 + 4)], 6, -145523070);
_local5 =
(_local5, _local2, _local3, _local4, _local10[(_local12 + 11)], 10, -1120210379);
_local4 =
(_local4, _local5, _local2, _local3, _local10[(_local12 + 2)], 15, 718787259);
_local3 =
(_local3, _local4, _local5, _local2, _local10[(_local12 + 9)], 21, -343485551);
_local2 = (_local2 + _local6);
_local3 = (_local3 + _local7);
_local4 = (_local4 + _local8);
_local5 = (_local5 + _local9);
_local12 = (_local12 + 16);
};
return ((((IntUtil.toHex(_local2) + IntUtil.toHex(_local3)) + IntUtil.toHex(_local4)) + IntUtil.toHex(_local5)));
}
private function (_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(h, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
}
}//package com.gamezhero.crypto
Section 103
//BlockEvents (com.gamezhero.events.BlockEvents)
package com.gamezhero.events {
import flash.events.*;
public class BlockEvents extends Event {
private var ;
public static const BLOCK_ACTION_CRACH:String = "block_action_crash";
public static const BLOCK_CHANGE_ACTION:String = "block_change_action";
public static const BLOCK_ACTION_FLY:String = "block_fly";
public static const BLOCK_ACTION_SLEEP:String = "block_slip";
public function BlockEvents(_arg1:String){
super(_arg1);
}
override public function toString():String{
return (formatToString("Block Event"));
}
public function get action(){
return ();
}
public function set action(_arg1):void{
= _arg1;
}
}
}//package com.gamezhero.events
Section 104
//GameAreaEvents (com.gamezhero.events.GameAreaEvents)
package com.gamezhero.events {
import flash.events.*;
public class GameAreaEvents extends Event {
private var ;
public static const GAME_AREA_MENU:String = "menu";
public static const GAME_AREA_INTRO:String = "intro";
public static const GAME_AREA_WIN_INTRO:String = "win_intro";
public static const GAME_AREA_EDITOR:String = "editor";
public static const GAME_AREA_SELECTOR:String = "selector";
public static const GAME_AREA_CHANGE:String = "game_area_update";
public static const GAME_AREA_GAME:String = "game";
public static const GAME_AREA_PREVIEW:String = "preview";
public static const GAME_AREA_RELEASE:String = "release";
public static const GAME_AREA_SCORE:String = "score";
public static const GAME_AREA_MAP:String = "map";
public static const GAME_AREA_LANGUAGE:String = "language";
public static const GAME_AREA_TEST:String = "test";
private static var game_area_type_old:String = "menu";
private static var game_area_type:String;
public function GameAreaEvents(_arg1:String){
super(_arg1);
}
public function set gameAreaValue(_arg1):void{
= _arg1;
}
override public function toString():String{
return (formatToString("Game Area Event"));
}
public function get gameAreaValue(){
return ();
}
public static function get gameAreaTypeOld(){
return (game_area_type_old);
}
public static function set gameAreaType(_arg1):void{
game_area_type_old = game_area_type;
game_area_type = _arg1;
}
public static function get gameAreaType(){
return (game_area_type);
}
}
}//package com.gamezhero.events
Section 105
//GameEvents (com.gamezhero.events.GameEvents)
package com.gamezhero.events {
import flash.events.*;
public class GameEvents extends Event {
private var ;
public static const GAME_OVER:String = "game_over";
public static const GAME_CHANGE_LEVEL:String = "game_change_level";
public static const GAME_MISSION_FAIL:String = "game_mission_fail";
public static const GAME_PAUSE:String = "game_pause";
public static const GAME_PUZZLE_COMPLETE:String = "game_puzzle_complete";
public static const GAME_CHANGE_GRAVITY_START:String = "game_change_gravity_start";
public static const GAME_CHANGE_GRAVITY_ACTION:String = "game_change_gravity_action";
public static const GAME_MISSION_COMPLITE:String = "game_mission_complite";
public static const GAME_CHANGE_SHOW:String = "game_change_show";
public static const GAME_PUZZLE_SLEEP:String = "game_puzzle_sleep";
public static const GAME_CHECK_COMPLETE:String = "game_chech_complete";
public static const GAME_CHANGE_GRAVITY_FINISH:String = "game_change_gravity_finish";
public static const GAME_BLOCK_DELETE:String = "game_block_delete";
public static const GAME_ACTIVATE_IMPULS:String = "game_activate_impuls";
public static const GAME_SLEEP:String = "game_sleep";
public static const GAME_UNSLEEP:String = "game_unsleep";
public static const GAME_BLOCK_CREATE:String = "game_block_create";
public static const GAME_UPDATE:String = "game_update";
public function GameEvents(_arg1:String){
super(_arg1);
}
override public function toString():String{
return (formatToString("Game Event"));
}
public function set gameValue(_arg1):void{
= _arg1;
}
public function get gameValue(){
return ();
}
}
}//package com.gamezhero.events
Section 106
//Block (com.gamezhero.game.Block)
package com.gamezhero.game {
import Box2D.Common.Math.*;
import flash.events.*;
import Box2D.Collision.Shapes.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Dynamics.*;
import Box2D.Collision.*;
import Box2D.Common.*;
import flash.display.*;
import com.gamezhero.events.*;
import Box2D.Dynamics.Contacts.*;
import flash.filters.*;
import flash.geom.*;
import com.gamezhero.*;
public class Block extends ObjectOfGame implements IGameObject {
private var
:Number;// = 1
public var gravity_kof:Number;
public var gravity:b2Vec2;
private var :Number;// = 0
private var :String;
public var :Number;
private var :GravityArrow;
private var
:Point;
private var :Array;
private var :Array;
private var :b2Body;
public var :Number;// = 0
private var :Number;// = 1
private var :Array;
private var :Object;
public var _object_static:Boolean;// = false
private var :b2PulleyJointDef;
private var
:Boolean;// = false
private var
:Array;
public function Block(_arg1:MovieClip, _arg2:Object, _arg3:b2Body){
var _local4:b2BodyDef;
var _local5:uint;
var _local6:String;
var _local7:b2PolygonDef;
var _local8:uint;
var _local9:Number;
var _local10:Number;
= 0;
gravity = new b2Vec2(0, 1);
gravity_kof = Global._box2d_max_mass_kof;
= new Array();
= new Object();
= false;
= 1;
= 1;
= new Array();
= new Array();
_object_static = false;
= 0;
= new Array();
super(_arg1, _arg2);
this. = _arg3;
gravity = new b2Vec2(_arg2["gravity"].x, _arg2["gravity"].y);
gravity_kof = gravity.Length();
gravity.Normalize();
if (gravity_kof > Global._box2d_max_mass_kof){
gravity_kof = Global._box2d_max_mass_kof;
};
this.mouseChildren = false;
this.mouseEnabled = true;
this.doubleClickEnabled = true;
_local4 = new b2BodyDef();
_local4.position.Set(Global.toWorldX(_object_pos.x), Global.toWorldY(_object_pos.y));
_local4.angle = Global.toRadian(_object_pos.rotation);
_body = Global._box2d_world.CreateBody(_local4);
while (_local5 < _object_primitives.length) {
_local6 = _object_primitives[_local5].type;
switch (_local6){
case "poligon":
_local7 = new b2PolygonDef();
_local7.vertexCount = _object_primitives[_local5].vertices.length;
_local8 = 0;
while (_local8 < _object_primitives[_local5].vertices.length) {
_local9 = (_object_primitives[_local5].vertices[_local8].x + _object_primitives[_local5].x);
_local10 = (_object_primitives[_local5].vertices[_local8].y + _object_primitives[_local5].y);
_local7.vertices[_local8].Set(Global.toWorldX(_local9), Global.toWorldY(_local10));
_local8++;
};
_local7.density = _object_density;
_local7.friction = _object_friction;
_local7.restitution = _object_restitution;
.push(_local7);
.push(_body.CreateShape(_local7));
break;
};
_local5++;
};
_body.SetMassFromShapes();
_body.m_userData = {target:this, type:"block"};
ini(_arg2);
setStatic(!(_arg2["active"]));
();
}
public function
(_arg1:BlockEvents=null):void{
switch (String(_arg1.action)){
case BlockEvents.BLOCK_ACTION_FLY:
break;
case BlockEvents.BLOCK_ACTION_CRACH:
= 5;
break;
};
= _object_action;
_object_action = _arg1.action;
}
public function (_arg1:GameEvents=null){
var step:*;
var matrix:Array;
var adjust:ColorMatrixFilter;
var event = _arg1;
step = 0.02;
if (
> ){
step = -(step);
};
= (
+ step);
if (Math.abs((
- )) < 0.01){
= ;
};
matrix = new Array();
matrix = matrix.concat([
, 0, 0, 0, 0]);
matrix = matrix.concat([0,
, 0, 0, 0]);
matrix = matrix.concat([0, 0,
, 0, 0]);
matrix = matrix.concat([0, 0, 0, 1, 0]);
adjust = new ColorMatrixFilter(matrix);
if (
== 1){
stage.removeEventListener(GameEvents.GAME_UPDATE, );
try {
this.filters = [];
} catch(e:Error) {
};
} else {
try {
this.filters = [adjust];
} catch(e:Error) {
};
};
}
private function (_arg1:MouseEvent=null):void{
if (
== false){
this. = 2;
= true;
stage.removeEventListener(GameEvents.GAME_UPDATE, );
stage.addEventListener(GameEvents.GAME_UPDATE, );
Global.sound_game.playSound(null, "s_complete_level", 0,
());
};
}
public function (_arg1:String){
var _local2:BlockEvents;
if (_arg1 != _object_action){
_local2 = new BlockEvents(BlockEvents.BLOCK_CHANGE_ACTION);
_local2.action = _arg1;
this.dispatchEvent(_local2);
};
}
public function (_arg1:BlockEvents=null):void{
if (!_body.IsSleeping()){
this.( );
this.changeGameEvent(GameEvents.GAME_UNSLEEP);
};
}
public function (_arg1:Event=null):void{
}
public function
(_arg1:BlockEvents=null):void{
var _local2:b2Vec2;
var _local3:Number;
var _local4:b2ContactEdge;
var _local5:Boolean;
var _local6:uint;
updateSkin(true);
if (_body.IsSleeping()){
this.changeGameEvent(GameEvents.GAME_CHECK_COMPLETE);
this.(BlockEvents.BLOCK_ACTION_SLEEP);
};
_local2 = gravity.Copy();
_local2.Multiply((_body.m_mass * gravity_kof));
_body.ApplyForce(_local2, _body.GetWorldCenter(), false);
_local3 = 0;
_local4 = this._body.m_contactList;
while (_local4) {
_local3 = (_local3 + _local4.contact.GetManifolds()[0].pointCount);
_local4 = _local4.next;
};
.push(_local3);
.splice(0, (.length - 2));
_local5 = true;
_local6 = 0;
while (_local6 < .length) {
if ([0] != [_local6]){
_local5 = false;
break;
};
_local6++;
};
if (_local5){
_local3 = [0];
if ( < _local3){
Global.sound_game.playSound(null, "boom5", 0,
(), (this._body.m_linearVelocity.Length() * (_object_square / 9)));
};
= _local3;
};
}
override public function remove(_arg1:Boolean=true):void{
var i:*;
var gameOverFlag = _arg1;
super.remove(gameOverFlag);
for (i in
) {
_body.DestroyShape((
[i] as b2Shape));
};
Global._box2d_world.DestroyBody(_body);
try {
.startShowOut();
} catch(e:Error) {
};
MovieClip(_goal["gameContainer"]).removeChild(this);
}
public function upAction(_arg1:Event=null):void{
if (.length > 0){
([(.length - 1)] as PowerArrow).stopAction();
};
stage.removeEventListener(MouseEvent.MOUSE_UP, upAction);
if (Global._keyFlags["shift"] != true){
();
};
}
private function
(_arg1:GameEvents=null):void{
var i:uint;
var imp:b2Vec2;
var event = _arg1;
i = 0;
while (i < .length) {
try {
imp = [i].impuls.Copy();
imp.Multiply(_body.m_mass);
_body.ApplyImpulse(imp, [i].point);
([i] as PowerArrow).remove();
} catch(e:Error) {
([i] as PowerArrow).remove();
};
i = (i + 1);
};
= new Array();
if (
== false){
(null);
};
}
public function update(_arg1:GameEvents=null):void{
if (_object_static == true){
};
this.dispatchEvent(new BlockEvents(String(_object_action)));
}
private function (_arg1:GameEvents=null):void{
this.visible = _arg1.gameValue;
}
private function
(_arg1:GameEvents=null):void{
_object_static = true;
();
}
public function isSleeping():Boolean{
return (_body.IsSleeping());
}
public function (_arg1:BlockEvents=null):void{
updateSkin(true);
_object_skin.gotoAndStop((_object_skin.currentFrame + 1));
--;
if ( <= 0){
();
};
}
private function (_arg1:MouseEvent=null):void{
if (
== true){
= false;
this. = 1;
stage.removeEventListener(GameEvents.GAME_UPDATE, );
stage.addEventListener(GameEvents.GAME_UPDATE, );
};
}
private function (_arg1:Event):void{
clearEvents();
}
public function downAction(_arg1:Event=null):void{
var _local2:Number;
var _local3:PowerArrow;
_local2 = new Date().getTime();
_local3 = new PowerArrow(this);
.push(_local3);
stage.addEventListener(MouseEvent.MOUSE_UP, upAction);
= _local2;
}
public function setStatic(_arg1:Boolean):void{
var _local2:*;
if (_arg1 != _object_static){
_object_static = _arg1;
_object_design = !(_object_static);
changeDesign();
for (_local2 in
) {
_body.DestroyShape((
[_local2] as b2Shape));
};
= new Array();
for (_local2 in ) {
if (_object_static == true){
([_local2] as b2PolygonDef).density = 0;
} else {
([_local2] as b2PolygonDef).density = _object_density;
};
.push(_body.CreateShape([_local2]));
};
_body.SetMassFromShapes();
if (_object_static == true){
stage.removeEventListener(GameEvents.GAME_UPDATE, update);
_body.PutToSleep();
} else {
stage.addEventListener(GameEvents.GAME_UPDATE, update);
_body.WakeUp();
};
};
}
public function
():Number{
return (((this.x - 300) / 300));
}
public function (_arg1:GameEvents=null):void{
var event = _arg1;
this.mouseEnabled = true;
trace(1);
try {
if (((!((gravity.x == .impuls.x))) || (!((gravity.y == .impuls.y))))){
gravity = .impuls;
_body.PutToSleep();
_body.WakeUp();
};
gravity_kof = .getImpulsLength();
} catch(e:Error) {
};
trace(2);
();
trace(4);
if (_body.IsSleeping()){
_body.WakeUp();
};
trace(5);
this.(BlockEvents.BLOCK_ACTION_FLY);
trace(6);
}
public function setInSelfPlace(_arg1:Boolean=false):void{
if (_arg1){
();
} else {
();
};
}
public function ():void{
remove();
}
public function (_arg1:GameEvents=null):void{
this.mouseEnabled = false;
if ((((this._object_admin == false)) || ((Global._admin == true)))){
= new GravityArrow(this);
};
}
override public function clearEvents():void{
super.clearEvents();
this.removeEventListener(Event.REMOVED_FROM_STAGE, );
stage.removeEventListener(GameEvents.GAME_UPDATE, update);
stage.removeEventListener(GameEvents.GAME_UPDATE, );
stage.removeEventListener(GameEvents.GAME_ACTIVATE_IMPULS,
);
stage.removeEventListener(GameEvents.GAME_CHANGE_GRAVITY_ACTION, );
stage.removeEventListener(GameEvents.GAME_CHANGE_GRAVITY_FINISH, );
stage.removeEventListener(GameEvents.GAME_CHANGE_SHOW, );
this.removeEventListener(BlockEvents.BLOCK_ACTION_FLY,
);
this.removeEventListener(BlockEvents.BLOCK_ACTION_SLEEP, );
this.removeEventListener(BlockEvents.BLOCK_ACTION_CRACH, );
this.removeEventListener(BlockEvents.BLOCK_CHANGE_ACTION,
);
stage.removeEventListener(GameEvents.GAME_PUZZLE_COMPLETE,
);
this.removeEventListener(MouseEvent.MOUSE_DOWN, downAction);
stage.removeEventListener(MouseEvent.MOUSE_UP, upAction);
}
private function ():void{
if (_object_static == true){
this.removeEventListener(MouseEvent.ROLL_OUT, );
this.removeEventListener(MouseEvent.ROLL_OVER, );
this.removeEventListener(MouseEvent.MOUSE_DOWN, downAction);
stage.removeEventListener(MouseEvent.MOUSE_UP, upAction);
} else {
this.addEventListener(MouseEvent.MOUSE_DOWN, downAction);
};
}
override public function ini(_arg1:Object, _arg2:Boolean=false):void{
super.ini(_arg1);
this.addEventListener(Event.REMOVED_FROM_STAGE, );
stage.addEventListener(GameEvents.GAME_UPDATE, update);
stage.addEventListener(GameEvents.GAME_ACTIVATE_IMPULS,
);
stage.addEventListener(GameEvents.GAME_CHANGE_GRAVITY_ACTION, );
stage.addEventListener(GameEvents.GAME_CHANGE_GRAVITY_FINISH, );
stage.addEventListener(GameEvents.GAME_CHANGE_SHOW, );
this.addEventListener(BlockEvents.BLOCK_ACTION_FLY,
);
this.addEventListener(BlockEvents.BLOCK_ACTION_SLEEP, );
this.addEventListener(BlockEvents.BLOCK_ACTION_CRACH, );
this.addEventListener(BlockEvents.BLOCK_CHANGE_ACTION,
);
stage.addEventListener(GameEvents.GAME_PUZZLE_COMPLETE,
);
this.addEventListener(MouseEvent.MOUSE_DOWN, downAction);
(BlockEvents.BLOCK_ACTION_FLY);
}
}
}//package com.gamezhero.game
Section 107
//BlockShadows (com.gamezhero.game.BlockShadows)
package com.gamezhero.game {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import com.gamezhero.events.*;
import flash.filters.*;
public class BlockShadows extends MovieClip {
private var arr:Array;
private var g:MovieClip;
public function BlockShadows(_arg1:MovieClip){
arr = new Array();
g = _arg1;
super();
g.addChildAt(this, 1);
iniEvents();
();
}
private function iniEvents():void{
stage.addEventListener(GameEvents.GAME_BLOCK_CREATE, );
stage.addEventListener(GameEvents.GAME_BLOCK_DELETE,
);
stage.addEventListener(GameEvents.GAME_UPDATE, update);
this.addEventListener(Event.REMOVED_FROM_STAGE, remove);
stage.addEventListener(GameEvents.GAME_CHANGE_SHOW, );
}
private function
():void{
var i:uint;
i = 0;
while (i < arr.length) {
try {
this.removeChild(arr[i].shadow);
} catch(e:Error) {
trace("Error Delete Shadow Block");
};
i = (i + 1);
};
arr = new Array();
}
private function remove(_arg1:Event=null):void{
clearEvents();
();
}
private function
(_arg1:GameEvents=null):void{
var _local2:Block;
var _local3:uint;
_local2 = (_arg1.gameValue as Block);
_local3 = 0;
while (_local3 < arr.length) {
if (arr[_local3].block == _local2){
this.removeChild(arr[_local3].shadow);
arr.splice(_local3, 1);
break;
};
_local3++;
};
}
private function update(_arg1:GameEvents=null):void{
var _local2:uint;
var _local3:Block;
var _local4:MovieClip;
_local2 = 0;
while (_local2 < arr.length) {
_local3 = (arr[_local2].block as Block);
_local4 = (arr[_local2].shadow as MovieClip);
_local4.x = (_local3.x + 10);
_local4.y = (_local3.y + 10);
_local4.rotation = _local3.rotation;
_local2++;
};
}
public function clearEvents():void{
stage.removeEventListener(GameEvents.GAME_BLOCK_CREATE, );
stage.removeEventListener(GameEvents.GAME_BLOCK_DELETE,
);
stage.removeEventListener(GameEvents.GAME_UPDATE, update);
this.removeEventListener(Event.REMOVED_FROM_STAGE, remove);
stage.removeEventListener(GameEvents.GAME_CHANGE_SHOW, );
}
private function
():void{
var _local1:Array;
var _local2:uint;
var _local3:GameEvents;
_local1 = (g as Game).getBlocks();
_local2 = 0;
while (_local2 < _local1.length) {
_local3 = new GameEvents(GameEvents.GAME_BLOCK_CREATE);
_local3.gameValue = _local1[_local2];
(_local3);
_local2++;
};
}
private function (_arg1:GameEvents=null):void{
trace(">>>> changeShow");
this.visible = _arg1.gameValue;
}
private function (_arg1:GameEvents=null):void{
var _local2:Block;
var _local3:Object;
var _local4:Class;
var _local5:Array;
var _local6:ColorMatrixFilter;
_local2 = (_arg1.gameValue as Block);
_local3 = new Object();
trace((">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> shadow" + _local2._object_type_block));
_local4 = (getDefinitionByName(("shadow" + _local2._object_type_block)) as Class);
_local3.block = _local2;
_local3.shadow = new (_local4);
_local5 = new Array();
_local5 = _local5.concat([-1, 0, 0, 0, 0]);
_local5 = _local5.concat([0, -1, 0, 0, 0]);
_local5 = _local5.concat([0, 0, -1, 0, 0]);
_local5 = _local5.concat([0, 0, 0, 1, 0]);
_local6 = new ColorMatrixFilter(_local5);
(_local3.shadow as MovieClip).filters = [_local6];
this.addChild(_local3.shadow);
arr.push(_local3);
}
}
}//package com.gamezhero.game
Section 108
//Cursor (com.gamezhero.game.Cursor)
package com.gamezhero.game {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import com.gamezhero.events.*;
import caurina.transitions.*;
import flash.ui.*;
public class Cursor extends MovieClip {
public var :MovieClip;
public var vesi:MovieClip;
public var timer:Timer;
public function Cursor(_arg1:MovieClip){
addFrameScript(0, frame1);
super();
_arg1.addChild(this);
this.stop();
this.startDrag(true);
this.mouseChildren = false;
this.mouseEnabled = false;
= (this["vesi"] as MovieClip);
.visible = false;
.stop();
timer = new Timer(4000, 1);
timer.addEventListener(TimerEvent.TIMER, );
Mouse.hide();
iniEvents();
}
private function (_arg1:Event=null):void{
this.alpha = 1;
Mouse.show();
stage.addEventListener(MouseEvent.MOUSE_OVER, );
Tweener.addTween(this, {alpha:0, time:0.5, transition:"easeOutExpo"});
}
private function (_arg1:Boolean=false):void{
if (_arg1){
.visible = true;
.play();
} else {
.visible = false;
.stop();
};
}
private function iniEvents():void{
stage.addEventListener(MouseEvent.MOUSE_UP, );
stage.addEventListener(MouseEvent.MOUSE_DOWN, );
stage.addEventListener(Event.MOUSE_LEAVE, );
stage.addEventListener(GameEvents.GAME_ACTIVATE_IMPULS,
);
stage.addEventListener(GameEvents.GAME_PUZZLE_SLEEP,
);
}
private function (_arg1:TimerEvent=null):void{
timer.stop();
(true);
}
private function
(_arg1:GameEvents=null):void{
timer.stop();
(false);
}
private function (_arg1:Event=null):void{
this.alpha = 0;
Mouse.hide();
stage.removeEventListener(MouseEvent.MOUSE_OVER, );
Tweener.addTween(this, {alpha:1, time:0.5, transition:"easeOutExpo"});
}
function frame1(){
stop();
}
private function
(_arg1:GameEvents=null):void{
timer.stop();
timer = new Timer(4000, 1);
timer.addEventListener(TimerEvent.TIMER, );
timer.start();
();
}
private function (_arg1:MouseEvent=null):void{
gotoAndStop(1);
}
private function (_arg1:MouseEvent=null):void{
();
gotoAndStop(2);
}
}
}//package com.gamezhero.game
Section 109
//EditorPanel (com.gamezhero.game.EditorPanel)
package com.gamezhero.game {
import flash.events.*;
import flash.display.*;
import com.gamezhero.events.*;
import caurina.transitions.*;
import com.gamezhero.*;
import flash.text.*;
import flash.system.*;
public class EditorPanel extends MovieClip {
public var :SimpleButton;
public var :MovieClip;
public var
:SimpleButton;
private var g:MovieClip;
public var menu_mc:MovieClip;
public var :SimpleButton;
public var :SimpleButton;
private var :TextField;
public var :SimpleButton;
public var :SimpleButton;
private var :TextField;
public var :SimpleButton;
public var test_btn:MovieClip;
public var save_puzzle:MovieClip;
public var :SimpleButton;
public var menu:MovieClip;
public var add_block:MovieClip;
public var :SimpleButton;
public var :SimpleButton;
public var :SimpleButton;
public var :MovieClip;
public var
:MovieClip;
public var load_puzzle:MovieClip;
public var :Boolean;// = false
public var :MovieClip;
public var :MovieClip;
public function EditorPanel(_arg1:MovieClip){
= false;
super();
g = _arg1;
menu_mc = this["menu"];
= this["save_puzzle"];
= this["load_puzzle"];
= this["add_block"];
= menu_mc["indicator"];
= menu_mc["add_btn"];
= menu_mc["load_btn"];
= menu_mc["save_btn"];
= menu_mc["test_btn"];
= menu_mc["clear_btn"];
= menu_mc["exit_btn"];
=
["copy_btn"];
=
["close_btn"];
=
["text"];
= ["load_btn"];
= ["close_btn"];
= ["text"];
= ["close_btn"];
g.addChild(this);
iniEvents();
();
= menu_mc;
();
();
}
private function (_arg1=true):void{
var _local2:uint;
if (_arg1){
_local2 = 1;
while (_local2 <= 31) {
trace(_local2, ([("b" + _local2)] as MovieClip));
([("b" + _local2)] as MovieClip).addEventListener(MouseEvent.CLICK, addNewBlock);
([("b" + _local2)] as MovieClip).mouseChildren = false;
_local2++;
};
} else {
_local2 = 1;
while (_local2 <= 31) {
([("b" + _local2)] as MovieClip).removeEventListener(MouseEvent.CLICK, addNewBlock);
_local2++;
};
};
}
private function (_arg1:MouseEvent=null):void{
=
;
.text = (g as Game).getLevel();
(
);
}
private function iniEvents():void{
(true);
stage.addEventListener(GameEvents.GAME_CHANGE_GRAVITY_START, );
stage.addEventListener(GameEvents.GAME_CHANGE_GRAVITY_FINISH, );
.addEventListener(MouseEvent.CLICK, );
.addEventListener(MouseEvent.CLICK, );
.addEventListener(MouseEvent.CLICK, );
.addEventListener(MouseEvent.CLICK, );
.addEventListener(MouseEvent.CLICK, );
.addEventListener(MouseEvent.CLICK, );
stage.addEventListener(GameEvents.GAME_BLOCK_CREATE, );
stage.addEventListener(GameEvents.GAME_BLOCK_DELETE, );
.addEventListener(MouseEvent.CLICK, focusText);
.addEventListener(MouseEvent.CLICK, );
.addEventListener(MouseEvent.CLICK, );
.addEventListener(MouseEvent.CLICK, );
.addEventListener(MouseEvent.CLICK, );
.addEventListener(MouseEvent.CLICK, );
stage.addEventListener(GameEvents.GAME_SLEEP, );
stage.addEventListener(GameEvents.GAME_UNSLEEP, );
}
public function focusText(_arg1:MouseEvent=null):void{
var _local2:TextField;
trace("FOCUS IN");
if (_arg1 == null){
_local2 = ;
} else {
_local2 = (_arg1.target as TextField);
};
_local2.setSelection(0, _local2.text.length);
System.setClipboard(_local2.text);
}
private function (_arg1:MouseEvent=null):void{
= ;
();
}
private function (_arg1:MouseEvent=null):void{
trace(.text);
(g as Game).createLevel(.text);
();
.text = "";
}
private function (_arg1:GameEvents=null){
iniEvents();
if ( == ){
();
};
();
if ( == true){
};
}
private function addNewBlock(_arg1:MouseEvent=null):void{
var _local2:MovieClip;
_local2 = (_arg1.target as MovieClip);
(g as Game).addNewBlock(Number(_local2.name.substr(1)));
}
private function (_arg1:GameEvents=null):void{
var _local2:Number;
var _local3:Array;
var _local4:uint;
trace("DELETE blockDelete");
_local2 = 0;
_local3 = (g as Game).getBlocks();
_local4 = 0;
while (_local4 < _local3.length) {
_local2 = (_local2 + Global._block_gallery[("block_type_" + (_local3[_local4] as Block)._object_type_block)]["square"]);
_local4++;
};
(_local2);
}
public function up():void{
g.removeChild(this);
g.addChild(this);
}
private function (_arg1):void{
var _local2:Number;
var _local3:*;
_local2 = (Global.freeSpace - _arg1);
trace("free ", _local2);
_local3 = 1;
while (_local3 <= 31) {
if (Global._block_gallery[("block_type_" + _local3)]["square"] > _local2){
([("b" + _local3)] as MovieClip).mouseEnabled = false;
([("b" + _local3)] as MovieClip).alpha = 0.2;
} else {
([("b" + _local3)] as MovieClip).mouseEnabled = true;
([("b" + _local3)] as MovieClip).alpha = 1;
};
_local3++;
};
}
private function (_arg1:MouseEvent=null):void{
= ;
();
}
private function (_arg1:MouseEvent=null):void{
Global.testLevel = "-1";
(g as Game).createLevel("-1");
}
private function (_arg1:GameEvents=null){
clearEvents();
stage.addEventListener(GameEvents.GAME_CHANGE_GRAVITY_START, );
stage.addEventListener(GameEvents.GAME_CHANGE_GRAVITY_FINISH, );
();
.mouseEnabled = false;
.alpha = 0.5;
.mouseEnabled = false;
.alpha = 0.5;
}
private function (_arg1:MouseEvent=null):void{
clearEvents();
(g as Game).missionCancel();
}
private function
(_arg1:MovieClip=null):void{
if (_arg1 != null){
this.removeChild(_arg1);
this.addChild(_arg1);
Tweener.addTween(_arg1, {y:0, time:getTime(_arg1), transition:"easeOutExpo"});
};
Tweener.addTween(menu_mc, {y:-(menu_mc.height), time:getTime(menu_mc), transition:"easeOutExpo"});
}
private function (_arg1:MovieClip=null):void{
if (_arg1 != null){
this.removeChild(_arg1);
this.addChild(_arg1);
Tweener.addTween(_arg1, {y:0, time:getTime(_arg1), transition:"easeOutExpo"});
};
}
private function
(_arg1:MouseEvent=null):void{
var _local2:MovieClip;
_local2 = ((_arg1.target as SimpleButton).parent as MovieClip);
(_local2);
}
private function getTime(_arg1:MovieClip):Number{
return (1);
}
private function (_arg1:MouseEvent=null):void{
clearEvents();
(g as Game).missionTest();
}
private function (_arg1:MouseEvent=null):void{
focusText();
(
);
}
private function (_arg1:MovieClip=null):void{
if (_arg1 != null){
Tweener.addTween(_arg1, {y:-(_arg1.height), time:getTime(_arg1), transition:"easeOutExpo"});
};
= menu_mc;
Tweener.addTween(menu_mc, {y:0, time:getTime(menu_mc), transition:"easeOutExpo"});
this.removeChild(menu_mc);
this.addChild(menu_mc);
}
private function (_arg1:MouseEvent=null):void{
var _local2:MovieClip;
_local2 = ((_arg1.target as SimpleButton).parent as MovieClip);
(_local2);
}
private function
(_arg1:MovieClip=null):void{
if (_arg1 != null){
Tweener.addTween(_arg1, {y:-(_arg1.height), time:getTime(_arg1), transition:"easeOutExpo"});
};
}
private function (_arg1:GameEvents=null):void{
.gotoAndStop(1);
.mouseEnabled = false;
.alpha = 0.5;
.mouseEnabled = false;
.alpha = 0.5;
= false;
}
private function clearEvents():void{
(false);
stage.removeEventListener(GameEvents.GAME_CHANGE_GRAVITY_START, );
stage.removeEventListener(GameEvents.GAME_CHANGE_GRAVITY_FINISH, );
.removeEventListener(MouseEvent.CLICK, );
.removeEventListener(MouseEvent.CLICK, );
.removeEventListener(MouseEvent.CLICK, );
.removeEventListener(MouseEvent.CLICK, );
.removeEventListener(MouseEvent.CLICK, );
.removeEventListener(MouseEvent.CLICK, );
stage.removeEventListener(GameEvents.GAME_BLOCK_CREATE, );
stage.removeEventListener(GameEvents.GAME_BLOCK_DELETE, );
.removeEventListener(MouseEvent.CLICK, );
.removeEventListener(MouseEvent.CLICK, );
.removeEventListener(MouseEvent.CLICK, );
.removeEventListener(MouseEvent.CLICK, );
.removeEventListener(MouseEvent.CLICK, );
stage.removeEventListener(GameEvents.GAME_SLEEP, );
stage.removeEventListener(GameEvents.GAME_UNSLEEP, );
}
private function (_arg1:GameEvents=null):void{
var _local2:Number;
var _local3:Array;
var _local4:uint;
_local2 = 0;
_local3 = (g as Game).getBlocks();
_local4 = 0;
while (_local4 < _local3.length) {
_local2 = (_local2 + Global._block_gallery[("block_type_" + (_local3[_local4] as Block)._object_type_block)]["square"]);
_local4++;
};
(_local2);
}
private function (_arg1:GameEvents=null):void{
.gotoAndStop(2);
.mouseEnabled = true;
.alpha = 1;
.mouseEnabled = true;
.alpha = 1;
= true;
}
}
}//package com.gamezhero.game
Section 110
//Game (com.gamezhero.game.Game)
package com.gamezhero.game {
import Box2D.Common.Math.*;
import flash.events.*;
import Box2D.Collision.Shapes.*;
import Box2D.Dynamics.*;
import Box2D.Collision.*;
import Box2D.Common.*;
import flash.display.*;
import flash.utils.*;
import com.gamezhero.events.*;
import flash.geom.*;
import com.gamezhero.*;
import com.gamezhero.gameForms.*;
public class Game extends MovieClip {
private var :Timer;
private var :Timer;
private var :PublishPanel;
public var :b2World;
private var :Timer;
private var :String;// = "game"
private var :Boolean;// = false
private var :EditorPanel;
public var gameContainer:MovieClip;
private var :Number;// = 0
private var construction:LevelConstruction;
private var :Number;
private var :RatePanel;
private var :GameTrack;
private var :BlockShadows;
private var :uint;// = 0
private var :uint;// = 0
private var :Array;
private var :Array;
private var design:LevelDesign;
public var :b2Body;
private var :Boolean;// = true
public var bg_mc:MovieClip;
private var
:Number;
public function Game(){
= false;
= new Array();
= 0;
= "game";
= true;
= 0;
= 0;
super();
this.addEventListener(Event.ENTER_FRAME, iniGame);
}
public function ():void{
clearEvents();
();
Global.sound_interface.stopSounds();
}
private function ():void{
var _local1:Number;
var _local2:b2AABB;
var _local3:b2Vec2;
var _local4:Boolean;
var _local5:b2PolygonDef;
var _local6:b2BodyDef;
var _local7:b2Body;
var _local8:Number;
var _local9:b2DebugDraw;
_local1 = Global._current_level;
_local2 = new b2AABB();
_local2.lowerBound.Set(Global._box2d_lower_bound, Global._box2d_lower_bound);
_local2.upperBound.Set(Global._box2d_upper_bound, Global._box2d_upper_bound);
_local3 = Global._box2d_gravitation;
_local4 = true;
= new b2World(_local2, _local3, _local4);
= Global._box2d_time_step;
gameContainer = new MovieClip();
gameContainer.name = "gameContainer";
gameContainer.mouseEnabled = false;
gameContainer.mouseChildren = true;
this.addChild((gameContainer as DisplayObject));
if (Global._rander){
_local9 = new b2DebugDraw();
_local9.m_sprite = gameContainer;
_local9.m_drawScale = Global._box2d_phys_scale;
_local9.m_fillAlpha = 0.3;
_local9.m_lineThickness = 1;
_local9.m_drawFlags = ((b2DebugDraw.e_shapeBit | b2DebugDraw.e_jointBit) | b2DebugDraw.e_coreShapeBit);
.SetDebugDraw(_local9);
};
_local5 = new b2PolygonDef();
_local6 = new b2BodyDef();
_local8 = 100;
_local6.position.Set(Global.toWorldY(-(_local8)), Global.toWorldY(Global._game_height_2));
_local5.SetAsBox(Global.toWorldY(_local8), Global.toWorldY(Global._game_height_2));
_local5.density = 0;
_local5.friction = 0.8;
_local5.restitution = 0.1;
_local7 = .CreateBody(_local6);
_local7.m_userData = {target:null, type:"floor1"};
_local7.CreateShape(_local5);
_local7.SetMassFromShapes();
_local6.position.Set(Global.toWorldY((Global._game_width + _local8)), Global.toWorldY(Global._game_height_2));
_local7 = .CreateBody(_local6);
_local7.m_userData = {target:null, type:"floor2"};
_local7.CreateShape(_local5);
_local7.SetMassFromShapes();
_local6.position.Set(Global.toWorldY(Global._game_width_2), Global.toWorldY(-(_local8)));
_local5.SetAsBox(Global.toWorldY(Global._game_width_2), Global.toWorldY(_local8));
_local5.density = 0;
_local5.friction = 0.8;
_local5.restitution = 0.1;
_local7 = .CreateBody(_local6);
_local7.m_userData = {target:null, type:"floor3"};
_local7.CreateShape(_local5);
_local7.SetMassFromShapes();
= _local7;
_local6.position.Set(Global.toWorldY(Global._game_width_2), Global.toWorldY((Global._game_height + _local8)));
_local7 = .CreateBody(_local6);
_local7.m_userData = {target:null, type:"floor4"};
_local7.CreateShape(_local5);
_local7.SetMassFromShapes();
}
public function
(_arg1:Number=0):void{
var _local2:String;
_local2 = "win";
if (_arg1 == 1){
_local2 = "win2";
};
}
private function
(_arg1:KeyboardEvent=null):void{
var _local2:GameEvents;
switch (_arg1.keyCode){
case Global._keys["shift"]:
Global._keyFlags["shift"] = false;
_local2 = new GameEvents(GameEvents.GAME_ACTIVATE_IMPULS);
stage.dispatchEvent(_local2);
break;
case Global._keys["h"]:
Global._keyFlags["h"] = false;
break;
case Global._keys["space"]:
Global._keyFlags["space"] = false;
if ( != GameEvents.GAME_CHANGE_GRAVITY_START){
_local2 = new GameEvents(GameEvents.GAME_CHANGE_GRAVITY_START);
= GameEvents.GAME_CHANGE_GRAVITY_START;
Global.sound_game.playSound(null, "s_gravity2");
} else {
_local2 = new GameEvents(GameEvents.GAME_CHANGE_GRAVITY_FINISH);
= GameEvents.GAME_CHANGE_GRAVITY_FINISH;
Global.sound_game.playSound(null, "s_gravity");
};
stage.dispatchEvent(_local2);
break;
};
}
public function missionTest():void{
var _local1:GameAreaEvents;
Global.testLevel = this.getLevel();
();
this.();
_local1 = new GameAreaEvents(GameAreaEvents.GAME_AREA_CHANGE);
_local1.gameAreaValue = GameAreaEvents.GAME_AREA_TEST;
stage.dispatchEvent(_local1);
}
public function (_arg1:TimerEvent):void{
++;
.Step(, Global._box2d_iterations);
stage.dispatchEvent(new GameEvents(GameEvents.GAME_UPDATE));
_arg1.updateAfterEvent();
}
public function getBlocks():Array{
return ( );
}
public function ():void{
var _local1:uint;
_local1 = 0;
while (_local1 < .length) {
( [_local1] as Block).remove();
_local1++;
};
if (design){
design.remove();
};
if (construction){
construction.remove();
};
}
public function addNewBlock(_arg1):void{
var _local2:Object;
var _local3:b2Vec2;
_local2 = new Object();
_local2.type = _arg1;
_local2.pos = (true);
_local2.color = 0xFF9900;
_local2.design = true;
_local2.active = true;
_local3 = new b2Vec2(0, 1);
_local3.Multiply(Global._box2d_max_mass_kof);
_local2.gravity = {x:_local3.x, y:_local3.y};
_local2.admin = false;
(_local2);
}
private function (_arg1:GameEvents=null):void{
var _local2:Block;
var _local3:uint;
_local2 = (_arg1.gameValue as Block);
_local3 = 0;
while (_local3 < .length) {
if (_local2 == [_local3]){
( [_local3] as Block).remove();
.splice(_local3, 1);
stage.focus = stage;
break;
};
_local3++;
};
}
private function finish(_arg1:TimerEvent=null):void{
switch (GameAreaEvents.gameAreaType){
case GameAreaEvents.GAME_AREA_GAME:
();
break;
case GameAreaEvents.GAME_AREA_TEST:
this.clearEvents();
this. ();
break;
case GameAreaEvents.GAME_AREA_PREVIEW:
this.clearEvents();
this. ();
break;
};
}
public function (_arg1:GameEvents=null):void{
var _local2:GameAreaEvents;
();
this.();
_local2 = new GameAreaEvents(GameAreaEvents.GAME_AREA_CHANGE);
_local2.gameAreaValue = GameAreaEvents.GAME_AREA_EDITOR;
stage.dispatchEvent(_local2);
}
public function ():Object{
var _local1:b2Vec2;
_local1 = new b2Vec2(0, 1);
_local1.Multiply(Global._box2d_max_mass_kof);
return ({x:_local1.x, y:_local1.y});
}
public function (_arg1:GameEvents=null):void{
.removeEventListener("timer", );
.addEventListener("timer", );
.start();
}
public function missionFail(_arg1:GameEvents=null):void{
var _local2:GameAreaEvents;
var _local3:GameEvents;
var _local4:int;
();
this.();
_local2 = new GameAreaEvents(GameAreaEvents.GAME_AREA_CHANGE);
if (GameAreaEvents.GAME_AREA_GAME == GameAreaEvents.gameAreaType){
_local4 = 0;
if (Global.setNextLive() == -1){
_local4 = -1;
_local2.gameAreaValue = GameAreaEvents.GAME_AREA_SCORE;
} else {
_local4 = 0;
_local2.gameAreaValue = GameAreaEvents.GAME_AREA_MAP;
};
Global.setLevelScore(_local4);
} else {
trace(("!!!!!!!!!!!!!!!!!!!!!!!!! " + GameAreaEvents.gameAreaTypeOld));
if ((((GameAreaEvents.gameAreaTypeOld == null)) || ((GameAreaEvents.gameAreaTypeOld == undefined)))){
_local2.gameAreaValue = GameAreaEvents.GAME_AREA_MENU;
} else {
_local2.gameAreaValue = GameAreaEvents.gameAreaTypeOld;
};
};
stage.dispatchEvent(_local2);
_local3 = new GameEvents(GameEvents.GAME_OVER);
stage.dispatchEvent(_local3);
}
private function ():void{
var _local1:uint;
_local1 = 0;
while (_local1 < .length) {
if (( [_local1] as Block)._object_static == true){
trace(("DELETE !!!!! " + _local1));
( [_local1] as Block).remove();
.splice(_local1, 1);
_local1--;
};
_local1++;
};
stage.focus = stage;
}
public function (_arg1:GameEvents=null):void{
var how:Boolean;
var i:uint;
var arr_sleeping:Array;
var finishFlag:Boolean;
var eventGame2:GameEvents;
var evnt:GameEvents;
var j:uint;
var z:uint;
var reserved:uint;
var pogreshDx:Number;
var pogresh:Number;
var pogreshAmount:uint;
var g1:Block;
var how2:Boolean;
var g2:Object;
var dx:b2Vec2;
var type:Number;
var rot:Number;
var rotHow:Boolean;
var dx2:Number;
var eventGame:GameEvents;
var event = _arg1;
how = true;
arr_sleeping = new Array();
finishFlag = true;
i = 0;
while (i < this. .length) {
if ((((( [i] as Block).isSleeping() == true)) && ((( [i] as Block)._object_static == false)))){
arr_sleeping.push(( [i] as Block));
} else {
finishFlag = false;
try {
( [i] as Block).setInSelfPlace(false);
} catch(e:Error) {
};
};
i = (i + 1);
};
if (how){
eventGame2 = new GameEvents(GameEvents.GAME_PUZZLE_SLEEP);
stage.dispatchEvent(eventGame2);
evnt = new GameEvents(GameEvents.GAME_SLEEP);
stage.dispatchEvent(evnt);
if (GameAreaEvents.gameAreaType != GameAreaEvents.GAME_AREA_EDITOR){
this. ;
j = 0;
while (j < this. .length) {
this. [j]["reserve"] = false;
j = (j + 1);
};
reserved = 0;
pogreshDx = 3;
pogresh = 0;
pogreshAmount = 0;
j = 0;
while (j < arr_sleeping.length) {
g1 = (arr_sleeping[j] as Block);
how2 = true;
i = 0;
while (i < this. .length) {
g2 = (this. [i] as Object);
if ((((g2["reserve"] == false)) && ((g1._object_type_block == g2["type"])))){
dx = new b2Vec2((g1.x - g2.pos.x), (g1.y - g2.pos.y));
type = g1._object_type_block;
rot = g1.rotation;
rotHow = false;
z = 0;
while (z < Global._block_gallery[("block_type_" + type)]["angles"].length) {
dx2 = Global.angleTransform(Math.abs(((rot + Global._block_gallery[("block_type_" + type)]["angles"][z]) - g2["pos"]["rotation"])));
if (Math.abs(dx2) < pogreshDx){
pogresh = (pogresh + Math.abs(dx2));
pogreshAmount = (pogreshAmount + 1);
rotHow = true;
break;
};
z = (z + 1);
};
if ((((Math.abs(dx.Length()) < pogreshDx)) && (rotHow))){
pogresh = (pogresh + Math.abs(dx.Length()));
pogreshAmount = (pogreshAmount + 1);
this. [i]["reserve"] = true;
reserved = (reserved + 1);
try {
g1.setInSelfPlace(true);
} catch(e:Error) {
trace(e);
};
how2 = false;
break;
};
};
i = (i + 1);
};
if (how2){
try {
g1.setInSelfPlace(false);
} catch(e:Error) {
trace(e);
};
};
j = (j + 1);
};
if ((((((this. .length == reserved)) && ((this. .length > 0)))) && ((finishFlag == true)))){
= (1 - ((pogresh / pogreshAmount) / pogreshDx));
= new Timer(1500, 1);
.addEventListener("timer", finish);
.start();
eventGame = new GameEvents(GameEvents.GAME_PUZZLE_COMPLETE);
stage.dispatchEvent(eventGame);
stage.removeEventListener(GameEvents.GAME_CHECK_COMPLETE, );
};
};
};
}
public function (_arg1:TimerEvent=null):void{
var _local2:GameEvents;
= ( - 0.01);
if ( <= 0){
= 0;
.removeEventListener("timer", );
.stop();
_local2 = new GameEvents(GameEvents.GAME_CHANGE_GRAVITY_ACTION);
stage.dispatchEvent(_local2);
};
}
public function (_arg1:Object, _arg2:Boolean=true):void{
var _local3:Block;
var _local4:GameEvents;
_arg1 = Global.clone(_arg1);
if (GameAreaEvents.gameAreaType != GameAreaEvents.GAME_AREA_EDITOR){
if (_arg2){
_arg1.pos = ();
_arg1.gravity = ();
_arg1.impuls = {x:Math.random(), y:Math.random()};
} else {
_arg1.impuls = {x:0, y:0};
};
} else {
_arg1.impuls = {x:0, y:0};
};
_local3 = new Block(this, _arg1, );
_local4 = new GameEvents(GameEvents.GAME_BLOCK_CREATE);
_local4.gameValue = _local3;
stage.dispatchEvent(_local4);
}
public function missionPreviewComplite(_arg1:GameEvents=null):void{
var _local2:GameAreaEvents;
();
this.();
Global._game_stored_data.data.completedLevels[Global.previewLevelID] = true;
_local2 = new GameAreaEvents(GameAreaEvents.GAME_AREA_CHANGE);
if (GameAreaEvents.gameAreaTypeOld == GameAreaEvents.GAME_AREA_SELECTOR){
_local2.gameAreaValue = GameAreaEvents.GAME_AREA_SELECTOR;
} else {
_local2.gameAreaValue = GameAreaEvents.GAME_AREA_MENU;
};
stage.dispatchEvent(_local2);
}
public function ():void{
var _local1:Number;
var _local2:Number;
var _local3:BitmapData;
var _local4:MovieClip;
var _local5:Bitmap;
_local1 = Global._game_width;
_local2 = Global._game_height;
_local3 = new BitmapData(_local1, _local2, true, 0xFFFFFF);
_local3.draw(root);
_local4 = new MovieClip();
_local5 = new Bitmap(_local3, "auto", true);
_local4.addChild((_local5 as DisplayObject));
this.addChild(_local4);
}
public function pauseGame(_arg1:Boolean):void{
var _local2:GameEvents;
var _local3:PauseMenu;
if ( != _arg1){
= _arg1;
if (){
.stop();
_local3 = new PauseMenu(MovieClip(this));
} else {
.start();
= false;
};
_local2 = new GameEvents(GameEvents.GAME_PAUSE);
_local2.gameValue = ;
stage.dispatchEvent(_local2);
};
}
public function (_arg1:Event=null):void{
}
public function (_arg1:Boolean=false):Object{
var _local2:Object;
var _local3:uint;
var _local4:Number;
var _local5:Number;
var _local6:uint;
var _local7:uint;
var _local8:Number;
var _local9:Number;
var _local10:Boolean;
var _local11:uint;
var _local12:uint;
var _local13:Point;
var _local14:Array;
var _local15:uint;
_local2 = new Object();
_local3 = 6;
_local4 = 100;
_local5 = ((600 - (_local4 * 2)) / _local3);
_local6 = ((_arg1)==true) ? 0 : Number( );
_local7 = ((_arg1)==true) ? 0 : Number( );
_local8 = -1;
_local9 = -1;
_local10 = false;
_local11 = _local6;
while (_local11 < _local3) {
_local12 = _local7;
while (_local12 < _local3) {
_local8 = (_local4 + (_local12 * _local5));
_local9 = (_local4 + (_local11 * _local5));
_local13 = new Point(_local8, _local9);
_arg1 = false;
_local14 = gameContainer.getObjectsUnderPoint(_local13);
_local15 = 0;
while (_local15 < _local14.length) {
if ( (_local14[_local15])){
_arg1 = true;
break;
};
_local15++;
};
if (_arg1 == false){
_local10 = true;
//unresolved jump
};
_local12++;
};
_local11++;
};
if (_local10 == false){
_local11 = 0;
while (_local11 < 10) {
_local8 = (_local4 + ((Math.random() * _local3) * _local5));
_local9 = (_local4 + ((Math.random() * _local3) * _local5));
_local13 = new Point(_local8, _local9);
_arg1 = false;
_local14 = gameContainer.getObjectsUnderPoint(_local13);
_local15 = 0;
while (_local15 < _local14.length) {
if ( (_local14[_local15])){
_arg1 = true;
break;
};
_local15++;
};
if (_arg1 == false){
break;
};
_local11++;
};
};
_local2.x = _local8;
_local2.y = _local9;
_local2.rotation = 0;
= (_local11 + 1);
= (_local12 + 1);
return (_local2);
}
public function missionCancel(_arg1:GameEvents=null):void{
var _local2:GameAreaEvents;
();
this.();
_local2 = new GameAreaEvents(GameAreaEvents.GAME_AREA_CHANGE);
_local2.gameAreaValue = GameAreaEvents.GAME_AREA_MENU;
stage.dispatchEvent(_local2);
}
private function
(_arg1:KeyboardEvent=null):void{
var _local2:GameEvents;
switch (_arg1.keyCode){
case Global._keys["shift"]:
Global._keyFlags["shift"] = true;
break;
case Global._keys["space"]:
Global._keyFlags["space"] = true;
break;
case Global._keys["esc"]:
if (GameAreaEvents.gameAreaType == GameAreaEvents.GAME_AREA_GAME){
pauseGame(true);
};
if (GameAreaEvents.gameAreaType == GameAreaEvents.GAME_AREA_PREVIEW){
pauseGame(true);
};
break;
case Global._keys["h"]:
Global._keyFlags["h"] = true;
if ( != GameEvents.GAME_CHANGE_GRAVITY_START){
= !( );
_local2 = new GameEvents(GameEvents.GAME_CHANGE_SHOW);
_local2.gameValue = ;
stage.dispatchEvent(_local2);
};
break;
case Global._keys["p"]:
pauseGame(true);
break;
};
}
public function (_arg1:TimerEvent=null):void{
= ( + 0.005);
if ( > Global._box2d_time_step){
= Global._box2d_time_step;
.removeEventListener("timer", );
.stop();
};
}
private function (_arg1):Boolean{
var g = _arg1;
if ((g is Block)){
return (true);
};
try {
if ( (g.parent)){
return (true);
} else {
return (false);
};
} catch(e:Error) {
return (false);
};
return (false);
}
public function ():void{
var _local1:uint;
_local1 = 0;
while (_local1 < this. .length) {
( [_local1] as Block).clearEvents();
_local1++;
};
}
public function missionBackToEditor(_arg1:GameEvents=null):void{
var _local2:GameAreaEvents;
();
this.();
_local2 = new GameAreaEvents(GameAreaEvents.GAME_AREA_CHANGE);
_local2.gameAreaValue = GameAreaEvents.GAME_AREA_EDITOR;
stage.dispatchEvent(_local2);
}
public function (_arg1:GameEvents=null):void{
.removeEventListener("timer", );
.addEventListener("timer", );
.start();
}
public function
(_arg1:Event=null):void{
}
public function (_arg1:Event=null):void{
if (GameAreaEvents.gameAreaType == GameAreaEvents.GAME_AREA_GAME){
pauseGame(true);
};
if (GameAreaEvents.gameAreaType == GameAreaEvents.GAME_AREA_PREVIEW){
pauseGame(true);
};
}
public function clearEvents():void{
.stop();
.removeEventListener("timer", );
stage.removeEventListener(GameEvents.GAME_CHANGE_GRAVITY_START, );
stage.removeEventListener(GameEvents.GAME_CHANGE_GRAVITY_FINISH, );
stage.removeEventListener(GameEvents.GAME_BLOCK_CREATE, );
stage.removeEventListener(GameEvents.GAME_BLOCK_DELETE, );
stage.removeEventListener(GameEvents.GAME_MISSION_COMPLITE,
);
stage.removeEventListener(GameEvents.GAME_MISSION_FAIL, missionFail);
stage.removeEventListener(GameEvents.GAME_CHECK_COMPLETE, );
stage.removeEventListener(Event.DEACTIVATE, );
stage.removeEventListener(Event.ACTIVATE, );
this.removeEventListener(Event.ENTER_FRAME, iniGame);
stage.removeEventListener(KeyboardEvent.KEY_DOWN,
);
stage.removeEventListener(KeyboardEvent.KEY_UP,
);
try {
.removeEventListener("timer", finish);
} catch(e:Error) {
};
}
public function getLevel():String{
var _local1:Array;
var _local2:String;
var _local3:uint;
var _local4:String;
var _local5:Block;
var _local6:Object;
var _local7:b2Vec2;
_local1 = new Array();
_local2 = ("var arr:Array = new Array();" + String.fromCharCode(13));
_local2 = (_local2 + (("var block:Object;" + String.fromCharCode(13)) + String.fromCharCode(13)));
_local3 = 0;
while (_local3 < .length) {
_local5 = ( [_local3] as Block);
_local6 = new Object();
_local6.type = _local5._object_type_block;
_local6.pos = {x:_local5.x, y:_local5.y, rotation:_local5.rotation};
_local6.color = _local5._object_color;
_local6.design = ((_local5._object_static == true)) ? false : true;
_local6.active = ((_local5._object_static == true)) ? false : true;
_local7 = _local5.gravity.Copy();
_local7.Normalize();
_local7.Multiply(_local5.gravity_kof);
_local6.gravity = {x:_local7.x, y:_local7.y};
_local6.admin = _local5._object_admin;
if ((((_local6.admin == false)) || ((Global._admin == true)))){
_local1.push(_local6);
};
_local2 = (_local2 + ("block = new Object();" + String.fromCharCode(13)));
_local2 = (_local2 + ((("block.type = " + _local6.type) + ";") + String.fromCharCode(13)));
_local2 = (_local2 + (((((((("block.pos = " + "{x:") + Math.round(_local5.x)) + ",y:") + Math.round(_local5.y)) + ",rotation:") + Math.round(_local5.rotation)) + "};") + String.fromCharCode(13)));
_local2 = (_local2 + ((("block.color = " + _local5._object_color) + ";") + String.fromCharCode(13)));
_local2 = (_local2 + ((("block.design = " + _local6.design) + ";") + String.fromCharCode(13)));
_local2 = (_local2 + ((("block.active = " + _local6.active) + ";") + String.fromCharCode(13)));
_local2 = (_local2 + ((((("block.gravity = {x:" + Math.round(_local7.x)) + ", y:") + Math.round(_local7.y)) + "};") + String.fromCharCode(13)));
_local2 = (_local2 + ("block.admin = true;" + String.fromCharCode(13)));
_local2 = (_local2 + (("arr.push(block);" + String.fromCharCode(13)) + String.fromCharCode(13)));
_local3++;
};
_local4 = Global.crypt(_local1);
return (_local4);
}
public function createLevel(_arg1:String="-1"):void{
var _local2:Number;
var _local3:Number;
var _local4:Event;
var _local5:Boolean;
var _local6:Number;
var _local7:Array;
();
_local4 = new GameEvents(GameEvents.GAME_CHANGE_GRAVITY_FINISH);
= GameEvents.GAME_CHANGE_GRAVITY_FINISH;
= true;
stage.dispatchEvent(_local4);
= new Array();
= new Array();
_local5 = true;
switch (GameAreaEvents.gameAreaType){
case GameAreaEvents.GAME_AREA_GAME:
_local6 = Global._current_level;
_arg1 = Global._levels[_local6]["block"];
_local5 = false;
break;
case GameAreaEvents.GAME_AREA_EDITOR:
if (_arg1 == "-1"){
_arg1 = Global.testLevel;
};
break;
case GameAreaEvents.GAME_AREA_TEST:
_arg1 = Global.testLevel;
break;
case GameAreaEvents.GAME_AREA_PREVIEW:
_arg1 = Global.previewLevel;
break;
};
if (_arg1 == "-1"){
= new Array();
} else {
= (Global.uncrypt(_arg1) as Array);
};
if ((Global._admin == false)){
if (_local5){
_local7 = (Global.uncrypt(Global.editorDefaultBorder) as Array);
_local2 = 0;
while (_local2 < _local7.length) {
.push(_local7[_local2]);
_local2++;
};
};
};
if (GameAreaEvents.gameAreaType != GameAreaEvents.GAME_AREA_EDITOR){
construction = new LevelConstruction(this, );
};
_local2 = 0;
while (_local2 < .length) {
( [_local2], [_local2].active);
_local2++;
};
if (GameAreaEvents.gameAreaType != GameAreaEvents.GAME_AREA_EDITOR){
();
};
if (GameAreaEvents.gameAreaType != GameAreaEvents.GAME_AREA_EDITOR){
design = new LevelDesign(this, );
};
if (){
.up();
};
.start();
}
private function (_arg1:GameEvents=null):void{
var _local2:Block;
_local2 = (_arg1.gameValue as Block);
.push(_local2);
}
public function
(_arg1:GameEvents=null):void{
var _local2:GameAreaEvents;
var _local3:GameEvents;
();
this.();
Global.setLevelScore(1, ,
);
_local2 = new GameAreaEvents(GameAreaEvents.GAME_AREA_CHANGE);
if (Global.setNextLevel() == -1){
_local2.gameAreaValue = GameAreaEvents.GAME_AREA_WIN_INTRO;
} else {
_local2.gameAreaValue = GameAreaEvents.GAME_AREA_MAP;
};
stage.dispatchEvent(_local2);
_local3 = new GameEvents(GameEvents.GAME_OVER);
stage.dispatchEvent(_local3);
}
private function iniGame(_arg1:Event):void{
= 0;
();
Global.sound_game.playSound(null, "s_begin_level");
this.removeEventListener(Event.ENTER_FRAME, iniGame);
= new Timer(Global._iteratioins, 0);
= new Timer(100, 0);
.addEventListener("timer", );
stage.addEventListener(GameEvents.GAME_CHANGE_GRAVITY_START, );
stage.addEventListener(GameEvents.GAME_CHANGE_GRAVITY_FINISH, );
stage.addEventListener(GameEvents.GAME_BLOCK_CREATE, );
stage.addEventListener(GameEvents.GAME_BLOCK_DELETE, );
stage.addEventListener(GameEvents.GAME_MISSION_COMPLITE,
);
stage.addEventListener(GameEvents.GAME_MISSION_FAIL, missionFail);
stage.addEventListener(GameEvents.GAME_CHECK_COMPLETE, );
stage.addEventListener(Event.DEACTIVATE, );
stage.addEventListener(Event.ACTIVATE, );
stage.addEventListener(KeyboardEvent.KEY_DOWN,
);
stage.addEventListener(KeyboardEvent.KEY_UP,
);
();
Global.iniBox2World();
createLevel();
trace(((this + " !!!!!!!!!!!!!! ") + this["bg_mc"]));
(this["bg_mc"] as MovieClip).gotoAndStop(1);
if (GameAreaEvents.GAME_AREA_GAME == GameAreaEvents.gameAreaType){
Global.iniGame(this);
(this["bg_mc"] as MovieClip).gotoAndStop(Number(Global._levels[Global._current_level]["bg"]["skinName"]));
= new BlockShadows(this);
};
if (GameAreaEvents.GAME_AREA_EDITOR == GameAreaEvents.gameAreaType){
(this["bg_mc"] as MovieClip).gotoAndStop(2);
= new EditorPanel(this);
};
if (GameAreaEvents.GAME_AREA_TEST == GameAreaEvents.gameAreaType){
= new PublishPanel(this);
};
if (GameAreaEvents.GAME_AREA_PREVIEW == GameAreaEvents.gameAreaType){
= new RatePanel(this);
};
}
}
}//package com.gamezhero.game
Section 111
//GameTrack (com.gamezhero.game.GameTrack)
package com.gamezhero.game {
import flash.display.*;
import com.gamezhero.events.*;
import flash.filters.*;
import flash.geom.*;
import com.gamezhero.*;
public class GameTrack extends MovieClip {
private var :Point;
private var
:ColorMatrixFilter;
private var how:uint;// = 0
private var
:Rectangle;
private var :BlurFilter;
private var :Bitmap;
private var :BitmapData;
private var :MovieClip;
private var _goal:MovieClip;
public function GameTrack(_arg1:MovieClip, _arg2:MovieClip){
how = 0;
super();
_goal = _arg1;
= _arg2;
_goal.addChildAt(this, 1);
this.mouseEnabled = false;
this.mouseChildren = false;
ini();
}
public function actionGameOver(_arg1:GameEvents=null):void{
remove();
}
public function remove(_arg1:Boolean=true):void{
clearEvents();
_goal.removeChild(this);
}
public function ini():void{
stage.addEventListener(GameEvents.GAME_OVER, actionGameOver);
stage.addEventListener(GameEvents.GAME_UPDATE, update);
iniContruction();
}
public function iniContruction():void{
var _local1:Array;
= new Rectangle(0, 0, Global._game_width, Global._game_height);
= new Point(0, 0);
= new BlurFilter();
= new ColorMatrixFilter();
_local1 = new Array();
_local1 = _local1.concat([0.9, 0, 0, 0, 0]);
_local1 = _local1.concat([0, 0.9, 0, 0, 0]);
_local1 = _local1.concat([0, 0, 0.9, 0, 0]);
_local1 = _local1.concat([0, 0, 0, 0.8, 0]);
.matrix = _local1;
= new BitmapData(Global._game_width, Global._game_height, true, 0xFFFFFF);
= new Bitmap(, "auto", true);
this.addChild(( as DisplayObject));
}
public function update(_arg1:GameEvents=null):void{
.draw();
.applyFilter(,
, , );
.applyFilter(,
, ,
);
}
public function clearEvents():void{
stage.removeEventListener(GameEvents.GAME_OVER, actionGameOver);
stage.removeEventListener(GameEvents.GAME_UPDATE, update);
}
}
}//package com.gamezhero.game
Section 112
//GravityArrow (com.gamezhero.game.GravityArrow)
package com.gamezhero.game {
import Box2D.Common.Math.*;
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import com.gamezhero.events.*;
import flash.geom.*;
import com.gamezhero.*;
public class GravityArrow extends Sprite {
private var :Number;
public var arrow:MovieClip;
private var
:MovieClip;
private var :Number;
public var
:MovieClip;
private var :Number;
private var :b2Vec2;
private var :MovieClip;
private var
:MovieClip;
public var deleter:SimpleButton;
private var
:Number;// = 0
public var arrow2:MovieClip;
public var
:Boolean;
public var colored:MovieClip;
private var
:MovieClip;
private var
:Number;
private var :Number;
private var :Number;// = 0
private var :MovieClip;
private var :MovieClip;
private var
:SimpleButton;
private var :Number;// = 0
private var
:Number;
private var :Timer;
private var :Number;
public var circle:MovieClip;
private var :Number;// = 50
private var :b2Vec2;
public var turner:MovieClip;
private var :Number;// = 0
private var :MovieClip;
public function GravityArrow(_arg1:MovieClip){
var _local2:Point;
= 50;
= 0;
= ( -
);
= 0;
= 0;
= (
- );
= 0;
super();
= Global._box2d_max_mass_kof;
= (this["arrow"] as MovieClip);
= (this["arrow2"] as MovieClip);
= (
["begun"] as MovieClip);
= (this["circle"] as MovieClip);
= (this["deleter"] as SimpleButton);
= (this["turner"] as MovieClip);
= (this["colored"] as MovieClip);
if (Global._admin != true){
.visible = false;
};
.mouseEnabled = false;
.mouseChildren = false;
.mouseEnabled = false;
.mouseChildren = false;
if (GameAreaEvents.gameAreaType != GameAreaEvents.GAME_AREA_EDITOR){
.visible = false;
.visible = false;
.visible = false;
};
this.mouseEnabled = false;
this.
= _arg1;
= (
.parent.parent as MovieClip);
.addChild(this);
_local2 = new Point(stage.mouseX, stage.mouseY);
_local2 =
.globalToLocal(_local2);
this. = _local2.x;
this. = _local2.y;
this.x =
.x;
this.y =
.y;
();
iniEvents();
this.scaleX = 0;
this.scaleY = 0;
}
public function changeGameEvent(_arg1:String, _arg2=null){
var _local3:GameEvents;
_local3 = new GameEvents(_arg1);
_local3.gameValue = _arg2;
stage.dispatchEvent(_local3);
}
public function set power(_arg1:Number):void{
var _local2:Number;
= _arg1;
_local2 = (Math.round((((.totalFrames - 1) * ( -
)) / )) + 1);
.gotoAndStop(_local2);
.width = (.x * 2);
.height =
.width;
}
private function
(_arg1:GameEvents=null):void{
this.alpha = (this.alpha - 0.1);
if (this.alpha <= 0){
this.alpha = 0;
stage.removeEventListener(GameEvents.GAME_UPDATE,
);
remove();
};
}
private function iniEvents():void{
.addEventListener(MouseEvent.MOUSE_DOWN, );
.addEventListener(MouseEvent.MOUSE_DOWN, );
stage.addEventListener(GameEvents.GAME_CHANGE_GRAVITY_FINISH, startShowOut);
stage.addEventListener(GameEvents.GAME_UPDATE,
);
.addEventListener(MouseEvent.MOUSE_DOWN,
);
.addEventListener(MouseEvent.CLICK, );
}
public function getImpulsLength():Number{
return ();
}
public function set point(_arg1:b2Vec2):void{
= _arg1;
}
private function
(_arg1:GameEvents=null):void{
this.scaleX = (this.scaleX + 0.2);
if (this.scaleX >= 1){
stage.removeEventListener(GameEvents.GAME_UPDATE,
);
this.scaleX = 1;
};
this.scaleY = this.scaleX;
}
public function
(_arg1:MouseEvent=null){
= !(
);
(
as Block).setStatic(this.
);
();
}
public function startShowOut(_arg1:GameEvents=null):void{
this.clearEvents();
stage.addEventListener(GameEvents.GAME_UPDATE,
);
}
public function get point():b2Vec2{
return ( );
}
private function (_arg1:MouseEvent=null):void{
var _local2:BitmapData;
var _local3:uint;
_local2 = new BitmapData( .width, .height, true);
_local2.draw( );
_local3 = _local2.getPixel( .mouseX, .mouseY);
trace(_local3);
_local2.dispose();
if (_local3 != 0xFFFFFF){
(
as Block).changeSkin(_local3);
};
}
private function (_arg1:MouseEvent=null):void{
.x = .mouseX;
if (.x > ){
.x = ;
};
();
}
private function (_arg1:MouseEvent=null):void{
.gotoAndPlay(6);
stage.removeEventListener(MouseEvent.MOUSE_MOVE, );
stage.removeEventListener(MouseEvent.MOUSE_UP, );
}
public function (){
.gotoAndStop(((this.
== true)) ? 1 : 2);
.visible = !(this.
);
.visible = !(this.
);
}
public function get impuls():b2Vec2{
return ();
}
private function remove(_arg1:GameEvents=null):void{
var event = _arg1;
clearEvents();
try {
.removeChild(this);
} catch(e:Error) {
trace("ERROR REMOVE GRAVITY ARROR");
};
}
private function (_arg1:MouseEvent=null):void{
.gotoAndPlay(2);
stage.addEventListener(MouseEvent.MOUSE_MOVE, );
stage.addEventListener(MouseEvent.MOUSE_UP, );
}
public function ():void{
var _local1:Number;
this.impuls = (
.gravity as b2Vec2).Copy();
this.power = ((
.gravity_kof * ) /
);
this.
=
._object_static;
this. =
.gravity_kof;
.rotation = Global.toAngle((impuls.getAngle() + Math.PI));
.rotation = .rotation;
turner.rotation = .rotation;
();
_local1 = (Math.round((((.totalFrames - 1) * ( -
)) / )) + 1);
.gotoAndStop(_local1);
.x = this.power;
.width = (.x * 2);
.height =
.width;
}
private function (_arg1:MouseEvent=null){
this.changeGameEvent(GameEvents.GAME_BLOCK_DELETE,
);
}
public function get power():Number{
return ();
}
private function clearEvents():void{
stage.removeEventListener(MouseEvent.MOUSE_MOVE, );
.removeEventListener(MouseEvent.MOUSE_DOWN, );
.removeEventListener(MouseEvent.MOUSE_DOWN, );
stage.removeEventListener(MouseEvent.MOUSE_UP, );
stage.removeEventListener(GameEvents.GAME_CHANGE_GRAVITY_FINISH, startShowOut);
stage.removeEventListener(GameEvents.GAME_UPDATE,
);
stage.removeEventListener(GameEvents.GAME_UPDATE,
);
.removeEventListener(MouseEvent.CLICK, );
.removeEventListener(MouseEvent.MOUSE_DOWN,
);
}
private function (){
var _local1:Point;
var _local2:Point;
var _local3:b2Vec2;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Point;
var _local8:Point;
= stage.mouseX;
= stage.mouseY;
_local1 = new Point( , );
_local1 =
.localToGlobal(_local1);
_local2 = new Point(
, );
_local2 = this.globalToLocal(_local2);
_local3 = new b2Vec2(_local2.x, _local2.y);
.rotation = Global.toAngle((_local3.getAngle() + Math.PI));
.rotation = .rotation;
turner.rotation = .rotation;
_local4 = _local3.Length();
if (_local4 > ){
_local4 = ;
};
if (_local4 <
){
_local4 =
;
};
this.power = _local4;
_local5 = ((this.power -
) / );
_local6 = ( + ( * _local5));
_local7 = new Point(0, 0);
_local7 = this.localToGlobal(_local7);
point = new b2Vec2(Global.toWorldX(_local7.x), Global.toWorldX(_local7.y));
_local8 = new Point(
, );
impuls = new b2Vec2(Global.toWorldX((_local8.x - _local7.x)), Global.toWorldY((_local8.y - _local7.y)));
= (this.power / ( /
));
impuls.Normalize();
}
public function set impuls(_arg1:b2Vec2):void{
= _arg1;
}
}
}//package com.gamezhero.game
Section 113
//IGameObject (com.gamezhero.game.IGameObject)
package com.gamezhero.game {
import com.gamezhero.events.*;
public interface IGameObject {
function ini(_arg1:Object, _arg2:Boolean=false):void;
function clearEvents():void;
function update(_arg1:GameEvents=null):void;
function remove(_arg1:Boolean=true):void;
function actionGameOver(_arg1:GameEvents=null):void;
}
}//package com.gamezhero.game
Section 114
//ItemSelector (com.gamezhero.game.ItemSelector)
package com.gamezhero.game {
import flash.events.*;
import flash.display.*;
import com.gamezhero.as3.*;
import com.gamezhero.*;
import flash.text.*;
import com.gamezhero.gamearea.*;
public class ItemSelector extends MovieClip {
public var title_txt:TextField;
public var amount_txt:TextField;
public var bg:MovieClip;
public var data_txt:TextField;
public var stars:MovieClip;
private var
:Object;
public var author_txt:TextField;
public var play_btn:SimpleButton;
public function ItemSelector(){
= new Object();
super();
clear();
iniEvents();
}
private function iniEvents():void{
(this["play_btn"] as SimpleButton).mouseEnabled = true;
(this["play_btn"] as SimpleButton).addEventListener(MouseEvent.CLICK,
);
}
public function enable():void{
clearEvents();
}
private function
(_arg1:MouseEvent=null):void{
var _local2:String;
_local2 = GamezheroGlobal.getDomain(stage);
if ((((_local2 == "files.gamezhero.com")) || ((_local2 == "local")))){
(this.parent as gameFormSelectore).remotingStep3(
["level_id"]);
} else {
Global.getURL(((
["level_url"] + "&") + Global._urls["shared_levels"]));
};
}
public function clear():void{
this.visible = false;
}
public function update(_arg1):void{
= _arg1;
if (Global._game_stored_data.data.completedLevels == undefined){
Global._game_stored_data.data.completedLevels = new Array();
};
trace(((
["level_id"] + " >>>>>>>>>>> ") + Global._game_stored_data.data.completedLevels[
["level_id"]]));
if (Global._game_stored_data.data.completedLevels[
["level_id"]]){
(this["bg"] as MovieClip).gotoAndStop(2);
} else {
(this["bg"] as MovieClip).gotoAndStop(1);
};
trace("1");
(this["title_txt"] as TextField).text =
["level_name"];
(this["data_txt"] as TextField).text = (
["level_date"] as String).substr(0, (
["level_date"] as String).indexOf(" "));
(this["author_txt"] as TextField).text =
["level_author"];
(this["amount_txt"] as TextField).text =
["level_play_amount"];
trace("2");
(this["stars"] as MovieClip).gotoAndStop(Math.round((100 * (
["level_rate"] / 5))));
this.visible = true;
}
private function clearEvents():void{
(this["play_btn"] as SimpleButton).mouseEnabled = false;
(this["play_btn"] as SimpleButton).removeEventListener(MouseEvent.CLICK,
);
}
}
}//package com.gamezhero.game
Section 115
//LevelConstruction (com.gamezhero.game.LevelConstruction)
package com.gamezhero.game {
import Box2D.Collision.Shapes.*;
import Box2D.Dynamics.*;
import Box2D.Collision.*;
import Box2D.Common.*;
import flash.display.*;
import flash.utils.*;
import com.gamezhero.events.*;
import flash.filters.*;
import flash.geom.*;
import com.gamezhero.*;
public class LevelConstruction extends MovieClip implements IGameObject {
private var :Array;
private var :Array;
private var :Dictionary;
private var _goal:MovieClip;
public function LevelConstruction(_arg1:MovieClip, _arg2:Array){
= new Array();
= new Dictionary();
super();
_goal = _arg1;
= _arg2;
= new Array();
ini(Object());
_goal.addChild(this);
this.mouseEnabled = false;
this.mouseChildren = false;
}
public function ini(_arg1:Object, _arg2:Boolean=false):void{
iniContruction();
}
public function actionGameOver(_arg1:GameEvents=null):void{
remove();
}
public function remove(_arg1:Boolean=true):void{
var i:uint;
var _body:b2Body;
var j:*;
var gameOverFlag = _arg1;
i = 0;
while (i < .length) {
_body = ([i] as b2Body);
for (j in [_body]) {
_body.DestroyShape(([_body][j] as b2Shape));
};
Global._box2d_world.DestroyBody(_body);
i = (i + 1);
};
clearEvents();
try {
_goal.removeChild(this);
} catch(e:Error) {
trace("ERROR REMOVE LEVEL CONSTRUCTOR");
};
}
public function iniContruction():void{
var mc:MovieClip;
var i:uint;
var light:MovieClip;
var trees:MovieClip;
var glow:GlowFilter;
var w:Number;
var h:Number;
var _planet_bmp:*;
var mc_bmp:MovieClip;
var bm:Bitmap;
var info:Object;
var _object_type_block:uint;
var _object_pos:Object;
var _object_color:Number;
var _object_design:Boolean;
var _object_primitives:*;
var _object_friction:*;
var _object_restitution:*;
var _object_density:*;
var _object_skin_class:*;
var ClassSkin:Class;
var blk:MovieClip;
var matrix:Array;
var color:ColorTransform;
var adjust:ColorMatrixFilter;
var bodyDefP:b2BodyDef;
var _body:b2Body;
var j:uint;
var btype:String;
var polyDef:b2PolygonDef;
var z:uint;
var x_foo:Number;
var y_foo:Number;
mc = new MovieClip();
this.addChild(mc);
i = 0;
while (i < .length) {
info = [i];
if (info.active == false){
_object_type_block = info.type;
_object_pos = info.pos;
_object_color = info.color;
_object_design = info.design;
info = Global.clone(Global._block_gallery[("block_type_" + _object_type_block)]);
info.pos = _object_pos;
info.color = _object_color;
info.design = _object_design;
_object_primitives = info.primitives;
_object_friction = info.physics.friction;
_object_restitution = info.physics.restitution;
_object_density = info.physics.density;
_object_skin_class = info.skinClass;
ClassSkin = (getDefinitionByName(_object_skin_class) as Class);
blk = new (ClassSkin);
blk.x = _object_pos.x;
blk.y = _object_pos.y;
blk.rotation = _object_pos.rotation;
(blk["design"] as DisplayObject).visible = ((_object_design)==true) ? true : false;
try {
(blk.shadow.shadow as MovieClip).rotation = -(blk.rotation);
} catch(e:Error) {
};
matrix = new Array();
color = new ColorTransform();
color.color = _object_color;
matrix = matrix.concat([(color.redOffset / 0xFF), 0, 0, 0, 0]);
matrix = matrix.concat([0, (color.greenOffset / 0xFF), 0, 0, 0]);
matrix = matrix.concat([0, 0, (color.blueOffset / 0xFF), 0, 0]);
matrix = matrix.concat([0, 0, 0, 1, 0]);
adjust = new ColorMatrixFilter(matrix);
blk.filters = [adjust];
mc.addChild(blk);
bodyDefP = new b2BodyDef();
bodyDefP.position.Set(Global.toWorldX(_object_pos.x), Global.toWorldY(_object_pos.y));
bodyDefP.angle = Global.toRadian(_object_pos.rotation);
_body = Global._box2d_world.CreateBody(bodyDefP);
[_body] = new Array();
j = 0;
while (j < _object_primitives.length) {
btype = _object_primitives[j].type;
switch (btype){
case "poligon":
polyDef = new b2PolygonDef();
polyDef.vertexCount = _object_primitives[j].vertices.length;
z = 0;
while (z < _object_primitives[j].vertices.length) {
x_foo = (_object_primitives[j].vertices[z].x + _object_primitives[j].x);
y_foo = (_object_primitives[j].vertices[z].y + _object_primitives[j].y);
polyDef.vertices[z].Set(Global.toWorldX(x_foo), Global.toWorldY(y_foo));
z = (z + 1);
};
polyDef.density = 0;
polyDef.friction = _object_friction;
polyDef.restitution = _object_restitution;
[_body].push(_body.CreateShape(polyDef));
break;
};
j = (j + 1);
};
_body.SetMassFromShapes();
_body.m_userData = {target:this, type:"construction"};
.push(_body);
};
i = (i + 1);
};
light = (new SunLight() as MovieClip);
this.addChild(light);
trees = (new Trees() as MovieClip);
this.addChild(trees);
glow = new GlowFilter(0, 0.5, 20, 20, 2, BitmapFilterQuality.HIGH, false, false);
mc.filters = [glow];
w = Global._game_width;
h = Global._game_height;
_planet_bmp = new BitmapData(w, h, true, 0xFFFFFF);
_planet_bmp.draw(this);
mc_bmp = new MovieClip();
bm = new Bitmap(_planet_bmp, "auto", true);
mc_bmp.addChild((bm as DisplayObject));
this.addChild(mc_bmp);
this.removeChild(mc);
this.removeChild(light);
}
public function update(_arg1:GameEvents=null):void{
}
public function clearEvents():void{
stage.removeEventListener(GameEvents.GAME_OVER, actionGameOver);
}
}
}//package com.gamezhero.game
Section 116
//LevelDesign (com.gamezhero.game.LevelDesign)
package com.gamezhero.game {
import flash.display.*;
import flash.utils.*;
import com.gamezhero.events.*;
import flash.filters.*;
import flash.geom.*;
import com.gamezhero.*;
public class LevelDesign extends MovieClip implements IGameObject {
private var :Array;
private var _goal:MovieClip;
public function LevelDesign(_arg1:MovieClip, _arg2:Array){
_goal = _arg1;
= _arg2;
ini(Object());
_goal.addChildAt(this, 1);
this.mouseEnabled = false;
this.mouseChildren = false;
}
public function ini(_arg1:Object, _arg2:Boolean=false):void{
iniContruction();
}
public function actionGameOver(_arg1:GameEvents=null):void{
remove();
}
public function remove(_arg1:Boolean=true):void{
var gameOverFlag = _arg1;
clearEvents();
try {
_goal.removeChild(this);
} catch(e:Error) {
trace("ERROR REMOVE LEVEL DESIGNER");
};
}
public function iniContruction():void{
var mc:MovieClip;
var i:uint;
var glow:GlowFilter;
var w:Number;
var h:Number;
var _planet_bmp:*;
var mc_bmp:MovieClip;
var bm:Bitmap;
var info:Object;
var _object_pos:Object;
var _object_color:Number;
var _object_design:Boolean;
var _object_type_block:uint;
var _object_primitives:*;
var _object_friction:*;
var _object_restitution:*;
var _object_density:*;
var _object_skin_class:*;
var ClassSkin:Class;
var blk:MovieClip;
var matrix:Array;
var color:ColorTransform;
var adjust:ColorMatrixFilter;
var gfilter:GlowFilter;
mc = new MovieClip();
this.addChild(mc);
i = 0;
while (i < .length) {
info = [i];
if (info.active == true){
_object_pos = info.pos;
_object_color = info.color;
_object_design = info.design;
_object_type_block = info.type;
info = Global.clone(Global._block_gallery[("block_type_" + _object_type_block)]);
info.pos = _object_pos;
info.color = _object_color;
info.design = _object_design;
_object_primitives = info.primitives;
_object_friction = info.physics.friction;
_object_restitution = info.physics.restitution;
_object_density = info.physics.density;
_object_skin_class = info.skinClass;
ClassSkin = (getDefinitionByName(_object_skin_class) as Class);
blk = new (ClassSkin);
blk.x = _object_pos.x;
blk.y = _object_pos.y;
blk.rotation = _object_pos.rotation;
try {
(blk.shadow.shadow as MovieClip).rotation = -(blk.rotation);
} catch(e:Error) {
};
mc.addChild(blk);
matrix = new Array();
color = new ColorTransform();
color.color = _object_color;
matrix = matrix.concat([(color.redOffset / 0xFF), 0, 0, 0, 0]);
matrix = matrix.concat([0, (color.greenOffset / 0xFF), 0, 0, 0]);
matrix = matrix.concat([0, 0, (color.blueOffset / 0xFF), 0, 0]);
matrix = matrix.concat([0, 0, 0, 1, 0]);
adjust = new ColorMatrixFilter(matrix);
gfilter = new GlowFilter(0xFFFFFF, 0.9, 3, 3, 4, BitmapFilterQuality.HIGH, true, true);
blk["body"].filters = [gfilter];
(blk["design"] as DisplayObject).visible = false;
blk["body"].alpha = 0.25;
blk["design"].alpha = 0.25;
};
i = (i + 1);
};
glow = new GlowFilter(0, 0.5, 20, 20, 2, BitmapFilterQuality.HIGH, false, false);
mc.filters = [glow];
w = Global._game_width;
h = Global._game_height;
_planet_bmp = new BitmapData(w, h, true, 0xFFFFFF);
_planet_bmp.draw(this);
mc_bmp = new MovieClip();
bm = new Bitmap(_planet_bmp, "auto", true);
mc_bmp.addChild((bm as DisplayObject));
this.addChild(mc_bmp);
this.removeChild(mc);
}
public function update(_arg1:GameEvents=null):void{
}
public function clearEvents():void{
stage.removeEventListener(GameEvents.GAME_OVER, actionGameOver);
}
}
}//package com.gamezhero.game
Section 117
//ObjectOfGame (com.gamezhero.game.ObjectOfGame)
package com.gamezhero.game {
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Collision.*;
import Box2D.Common.*;
import flash.display.*;
import flash.utils.*;
import com.gamezhero.events.*;
import flash.filters.*;
import flash.geom.*;
import com.gamezhero.*;
public class ObjectOfGame extends MovieClip {
public var _object_pos:Object;
public var _object_density:Number;
public var _object_restitution:Number;
public var _object_square:uint;
public var _object_admin:Boolean;
public var :Number;
public var _object_action:String;
public var :Boolean;
public var :Object;
public var :Number;
public var
:String;
public var _body:b2Body;
public var _object_color:Number;
public var _object_friction:Number;
public var _object_skin:MovieClip;
public var _object_type_block:uint;
public var _object_design:Boolean;
public var _object_skin_class:String;
public var _object_primitives:Array;
public var _goal:MovieClip;
public function ObjectOfGame(_arg1:MovieClip, _arg2:Object){
_object_primitives = new Array();
super();
_goal = _arg1;
= _arg2;
_object_type_block = ["type"];
trace(((("BLOCK !!!! " + _object_type_block) + " ") + ["type"]));
_object_pos = ["pos"];
_object_color = ["color"];
_object_design = ["design"];
_object_admin = ["admin"];
= Global.clone(Global._block_gallery[("block_type_" + _object_type_block)]);
.pos = _object_pos;
.color = _object_color;
.design = _object_design;
_object_friction = ["physics"].friction;
= ["physics"].mass;
_object_density = ["physics"].density;
_object_restitution = ["physics"].restitution;
_object_square = ["square"];
= ["fixed"];
_object_primitives = ["primitives"];
_object_skin_class = ["skinClass"];
= ["score"];
MovieClip(_goal["gameContainer"]).addChild(this);
}
public function updateSkin(_arg1:Boolean=false):void{
var v:b2Vec2;
var rolling = _arg1;
v = (_body as b2Body).GetPosition();
this.x = Global.fromWorldX(v.x);
this.y = Global.fromWorldY(v.y);
this.rotation = Global.toAngle((_body as b2Body).GetAngle());
try {
(_object_skin.shadow.shadow as MovieClip).rotation = -(this.rotation);
} catch(e:Error) {
};
}
public function ini(_arg1:Object, _arg2:Boolean=false):void{
var ClassSkin:Class;
var obj = _arg1;
var how = _arg2;
try {
ClassSkin = (getDefinitionByName(_object_skin_class) as Class);
if (ClassSkin != null){
_object_skin = MovieClip(new (ClassSkin));
this.addChild(_object_skin);
_object_skin.mouseEnabled = false;
_object_skin.mouseChildren = false;
changeSkin(_object_color);
changeDesign();
};
} catch(e:Error) {
trace("ERROR ATTCAH ", _object_skin_class, " SKIN");
return;
};
updateSkin();
stage.addEventListener(GameEvents.GAME_OVER, actionGameOver);
}
public function actionGameOver(_arg1:GameEvents=null):void{
remove();
}
public function (_arg1:GameEvents):void{
var _local2:GameEvents;
_local2 = new GameEvents(String(_arg1));
_local2.gameValue = this;
stage.dispatchEvent(_local2);
}
public function ():void{
MovieClip(_goal["gameContainer"]).setChildIndex(this, (MovieClip(_goal["gameContainer"]).numChildren - 1));
}
public function changeDesign():void{
(_object_skin["design"] as MovieClip).visible = ((_object_design)==true) ? true : false;
}
public function
():Point{
var _local1:b2Vec2;
_local1 = (_body as b2Body).GetPosition();
return (new Point(_local1.x, _local1.y));
}
public function changeSkin(_arg1:Number=-1):void{
var _local2:ColorTransform;
var _local3:Array;
var _local4:ColorMatrixFilter;
if (_arg1 != -1){
_object_color = _arg1;
};
_local2 = new ColorTransform();
_local2.color = _object_color;
trace((">>>>>>>>>>>>>>>>> " + _object_color));
_local3 = new Array();
_local3 = _local3.concat([(_local2.redOffset / 0xFF), 0, 0, 0, 0]);
_local3 = _local3.concat([0, (_local2.greenOffset / 0xFF), 0, 0, 0]);
_local3 = _local3.concat([0, 0, (_local2.blueOffset / 0xFF), 0, 0]);
_local3 = _local3.concat([0, 0, 0, 1, 0]);
_local4 = new ColorMatrixFilter(_local3);
(_object_skin["body"] as MovieClip).filters = [_local4];
}
public function ():void{
_object_pos = new Point(this.x, this.y);
_object_pos = _goal["gameContainer"].localToGlobal(_object_pos);
}
public function remove(_arg1:Boolean=true):void{
clearEvents();
}
public function ():void{
MovieClip(_goal["gameContainer"]).removeChild(this);
MovieClip(_goal["gameContainer"]).addChild(this);
}
public function clearEvents():void{
stage.removeEventListener(GameEvents.GAME_OVER, actionGameOver);
}
public function changeGameEvent(_arg1:String, _arg2=null){
var _local3:GameEvents;
_local3 = new GameEvents(_arg1);
_local3.gameValue = _arg2;
stage.dispatchEvent(_local3);
}
}
}//package com.gamezhero.game
Section 118
//PowerArrow (com.gamezhero.game.PowerArrow)
package com.gamezhero.game {
import Box2D.Common.Math.*;
import flash.display.*;
import flash.utils.*;
import com.gamezhero.events.*;
import flash.geom.*;
import com.gamezhero.*;
public class PowerArrow extends Sprite {
private var :Number;
public var arrow:MovieClip;
private var :Number;
private var
:MovieClip;
private var :Number;
private var :b2Vec2;
private var
:Number;// = 0
private var :MovieClip;
private var
:Number;
private var :Number;
private var :MovieClip;
private var :Number;// = 0
private var
:Number;// = 3
private var :Timer;
private var :Number;
private var :Number;// = 100
private var :b2Vec2;
private var :Number;// = 0
private var :MovieClip;
public function PowerArrow(_arg1:MovieClip){
var _local2:Point;
= 100;
= 0;
= ( -
);
= 3;
= 0;
= (
- );
= 0;
super();
= (this["arrow"] as MovieClip);
this.
= _arg1;
this.power =
;
.parent.parent.addChild(this);
_local2 = new Point(stage.mouseX, stage.mouseY);
_local2 =
.globalToLocal(_local2);
this. = _local2.x;
this. = _local2.y;
this.x = -1000;
this.y = -1000;
this.visible = false;
this.mouseChildren = false;
this.mouseEnabled = false;
iniEvents();
}
public function stopAction():void{
clearEvents();
stage.addEventListener(GameEvents.GAME_UPDATE, );
}
public function set point(_arg1:b2Vec2):void{
= _arg1;
}
public function set power(_arg1:Number):void{
var _local2:Number;
= _arg1;
_local2 = (Math.round((((.totalFrames - 1) * ( -
)) / )) + 1);
.gotoAndStop(_local2);
.line.gotoAndPlay(((.line as MovieClip).currentFrame + 1));
}
private function iniEvents():void{
stage.addEventListener(GameEvents.GAME_UPDATE, );
stage.addEventListener(GameEvents.GAME_PUZZLE_COMPLETE,
);
this.visible = true;
}
public function get power():Number{
return ();
}
public function remove():void{
stage.addEventListener(GameEvents.GAME_UPDATE, );
}
public function get point():b2Vec2{
return ( );
}
public function get impuls():b2Vec2{
return ();
}
private function clearEvents():void{
stage.removeEventListener(GameEvents.GAME_UPDATE, );
stage.removeEventListener(GameEvents.GAME_UPDATE, );
stage.removeEventListener(GameEvents.GAME_UPDATE, );
stage.removeEventListener(GameEvents.GAME_PUZZLE_COMPLETE,
);
}
private function
(_arg1:GameEvents=null):void{
();
}
private function (_arg1:GameEvents=null){
var _local2:Point;
var _local3:Point;
var _local4:b2Vec2;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Point;
var _local9:Point;
_local2 = new Point( , );
_local2 =
.localToGlobal(_local2);
this.x = _local2.x;
this.y = _local2.y;
_local3 = new Point(
, );
_local3 = this.globalToLocal(_local3);
_local4 = new b2Vec2(_local3.x, _local3.y);
.rotation = Global.toAngle((_local4.getAngle() + Math.PI));
_local5 = _local4.Length();
if (_local5 > ){
_local5 = ;
};
if (_local5 <
){
_local5 =
;
};
this.power = _local5;
_local6 = ((this.power -
) / );
_local7 = ( + ( * _local6));
_local8 = new Point(0, 0);
_local8 = this.localToGlobal(_local8);
point = new b2Vec2(Global.toWorldX(_local8.x), Global.toWorldX(_local8.y));
_local9 = new Point(
, );
impuls = new b2Vec2(Global.toWorldX((_local9.x - _local8.x)), Global.toWorldY((_local9.y - _local8.y)));
impuls.Normalize();
impuls.Multiply(_local7);
}
public function ():void{
clearEvents();
try {
.parent.parent.removeChild(this);
} catch(e:Error) {
};
}
public function set impuls(_arg1:b2Vec2):void{
= _arg1;
}
private function (_arg1:GameEvents=null){
this.alpha = (this.alpha - 0.2);
if (this.alpha <= 0){
();
};
}
private function (_arg1:GameEvents=null){
var event = _arg1;
try {
= stage.mouseX;
= stage.mouseY;
} catch(e:Error) {
};
();
}
}
}//package com.gamezhero.game
Section 119
//PublishPanel (com.gamezhero.game.PublishPanel)
package com.gamezhero.game {
import flash.events.*;
import com.gamezhero.as3.remoting.structure.*;
import flash.display.*;
import com.gamezhero.events.*;
import caurina.transitions.*;
import com.gamezhero.as3.remoting.events.*;
import com.gamezhero.as3.remoting.*;
import com.gamezhero.*;
import flash.text.*;
import flash.system.*;
public class PublishPanel extends MovieClip {
public var :SimpleButton;
public var :TextField;
public var remotingLevelGateway:RemotingLevelsGateway;
public var
:SimpleButton;
public var menu:MovieClip;
public var menu_mc:MovieClip;
public var :TextField;
public var
:Number;// = 0
public var :TextField;
private var g:MovieClip;
public var gameID:Number;
public var :TextField;
public var :TextField;
public var :Number;// = 10
public function PublishPanel(_arg1:MovieClip){
gameID = Global.editorGameID;
= 10;
= 0;
super();
g = _arg1;
menu_mc = this["menu"];
= (menu_mc["info"] as TextField);
= (menu_mc["text"] as TextField);
= (menu_mc["puzzle_title"] as TextField);
= (menu_mc["user_name"] as TextField);
= (menu_mc["user_email"] as TextField);
= (menu_mc["exit_btn"] as SimpleButton);
= (menu_mc["bublish_btn"] as SimpleButton);
.mouseEnabled = false;
.alpha = 0.5;
g.addChild(this);
();
iniEvents();
}
private function ():void{
try {
remotingLevelGateway.removeEventListener(RemotingLevelsEvent.SET_LEVEL, );
remotingLevelGateway.removeEventListener(RemotingLevelsEvent.ERROR, errorResult);
} catch(e:Error) {
trace("ERROR 3");
};
}
public function (_arg1:RemotingLevelsEvent=null):void{
var _local2:*;
.text = "Published. Dirst link to level listed above.";
clearEvents();
();
.addEventListener(MouseEvent.CLICK, );
_local2 = _arg1.value;
.text = String(_local2);
();
}
private function
():void{
Tweener.addTween(this, {y:115, time:1, transition:"easeOutExpo"});
}
public function focusText(_arg1:MouseEvent=null):void{
var _local2:TextField;
trace("FOCUS IN");
if (_arg1 == null){
_local2 = ;
} else {
_local2 = (_arg1.target as TextField);
};
_local2.setSelection(0, _local2.text.length);
System.setClipboard(_local2.text);
}
private function iniEvents():void{
.addEventListener(MouseEvent.CLICK, );
.addEventListener(MouseEvent.CLICK, );
stage.addEventListener(GameEvents.GAME_PUZZLE_COMPLETE, );
.addEventListener(MouseEvent.CLICK, focusText);
}
private function ():void{
Tweener.addTween(this, {y:150, time:1, transition:"easeOutExpo"});
}
private function (_arg1:MouseEvent=null):void{
clearEvents();
();
(g as Game).missionBackToEditor();
}
public function errorResult(_arg1:RemotingLevelsEvent=null):void{
trace("ERROR errorResult");
.text = "Error Loading Data...";
clearEvents();
();
();
.addEventListener(MouseEvent.CLICK, );
}
private function (_arg1:GameEvents=null):void{
.text = Global.testLevel;
.mouseEnabled = true;
.alpha = 1;
();
}
private function
():void{
try {
remotingLevelGateway = new RemotingLevelsGateway("http://www.gamezhero.com/chat/gateway.php");
remotingLevelGateway.addEventListener(RemotingLevelsEvent.SET_LEVEL, );
remotingLevelGateway.addEventListener(RemotingLevelsEvent.ERROR, errorResult);
} catch(e:Error) {
trace("ERROR 1");
.text = "Error Loading Data...";
};
}
public function up():void{
g.removeChild(this);
g.addChild(this);
}
private function clearEvents():void{
.removeEventListener(MouseEvent.CLICK, );
.removeEventListener(MouseEvent.CLICK, );
stage.removeEventListener(GameEvents.GAME_PUZZLE_COMPLETE, );
}
private function (_arg1:MouseEvent=null):void{
var l_structure:LevelStructure;
var event = _arg1;
clearEvents();
.mouseEnabled = false;
.alpha = 0.5;
.text = "Wait...";
l_structure = new LevelStructure(.text, Global.testLevel, .text, .text, 0);
try {
remotingLevelGateway.setLevel(gameID, -1, l_structure);
} catch(e:Error) {
trace("ERROR 2");
();
};
}
}
}//package com.gamezhero.game
Section 120
//RatePanel (com.gamezhero.game.RatePanel)
package com.gamezhero.game {
import flash.events.*;
import flash.display.*;
import com.gamezhero.events.*;
import caurina.transitions.*;
import com.gamezhero.as3.remoting.events.*;
import com.gamezhero.as3.remoting.*;
import com.gamezhero.*;
public class RatePanel extends MovieClip {
public var remotingLevelGateway:RemotingLevelsGateway;
public var menu:MovieClip;
public var menu_mc:MovieClip;
private var g:MovieClip;
public var gameID:Number;
public function RatePanel(_arg1:MovieClip){
gameID = Global.editorGameID;
super();
g = _arg1;
menu_mc = this["menu"];
g.addChild(this);
();
iniEvents();
}
public function (_arg1:RemotingLevelsEvent=null):void{
var _local2:*;
clearEvents();
();
_local2 = _arg1.value;
();
}
private function iniEvents():void{
var _local1:uint;
stage.addEventListener(GameEvents.GAME_PUZZLE_COMPLETE, );
_local1 = 1;
while (_local1 <= 5) {
(menu_mc[("s" + _local1)] as MovieClip).mouseChildren = false;
(menu_mc[("s" + _local1)] as MovieClip).addEventListener(MouseEvent.ROLL_OVER, );
(menu_mc[("s" + _local1)] as MovieClip).addEventListener(MouseEvent.ROLL_OUT, );
(menu_mc[("s" + _local1)] as MovieClip).addEventListener(MouseEvent.CLICK, );
_local1++;
};
}
private function (_arg1:MouseEvent=null):void{
var _local2:*;
var _local3:uint;
_local2 = Number((_arg1.target as MovieClip).name.substr(1));
_local3 = 1;
while (_local3 <= 5) {
(menu_mc[("s" + _local3)] as MovieClip).gotoAndStop(((_local3)<=_local2) ? 2 : 1);
_local3++;
};
}
private function (_arg1:Number):void{
var num = _arg1;
clearEvents();
try {
remotingLevelGateway.setLevelRate(gameID, Global.previewLevelID, num);
} catch(e:Error) {
trace("ERROR 2");
();
};
}
private function (_arg1:MouseEvent=null):void{
var _local2:uint;
_local2 = 1;
while (_local2 <= 5) {
(menu_mc[("s" + _local2)] as MovieClip).gotoAndStop(1);
_local2++;
};
}
private function (_arg1:MouseEvent=null):void{
clearEvents();
();
(g as Game).missionPreviewComplite();
}
private function errorResult(_arg1:RemotingLevelsEvent=null):void{
trace("ERROR errorResult");
clearEvents();
();
();
}
private function ():void{
Tweener.addTween(this, {y:350, time:1, transition:"easeOutExpo"});
}
private function (_arg1:GameEvents=null):void{
();
}
private function
():void{
try {
remotingLevelGateway = new RemotingLevelsGateway("http://www.gamezhero.com/chat/gateway.php");
remotingLevelGateway.addEventListener(RemotingLevelsEvent.SET_LEVEL_RATE, );
remotingLevelGateway.addEventListener(RemotingLevelsEvent.ERROR, errorResult);
} catch(e:Error) {
trace("ERROR 1");
};
}
public function up():void{
g.removeChild(this);
g.addChild(this);
}
private function clearEvents():void{
var _local1:uint;
stage.removeEventListener(GameEvents.GAME_PUZZLE_COMPLETE, );
_local1 = 1;
while (_local1 <= 5) {
(menu_mc[("s" + _local1)] as MovieClip).removeEventListener(MouseEvent.ROLL_OVER, );
(menu_mc[("s" + _local1)] as MovieClip).removeEventListener(MouseEvent.ROLL_OUT, );
(menu_mc[("s" + _local1)] as MovieClip).removeEventListener(MouseEvent.CLICK, );
_local1++;
};
}
private function (_arg1:MouseEvent=null):void{
var _local2:*;
_local2 = Number((_arg1.target as MovieClip).name.substr(1));
trace(((_arg1.target.name + " CKICK ") + _local2));
(_local2);
}
private function ():void{
try {
remotingLevelGateway.removeEventListener(RemotingLevelsEvent.SET_LEVEL_RATE, );
remotingLevelGateway.removeEventListener(RemotingLevelsEvent.ERROR, errorResult);
} catch(e:Error) {
trace("ERROR 3");
};
}
}
}//package com.gamezhero.game
Section 121
//gameForm (com.gamezhero.gamearea.gameForm)
package com.gamezhero.gamearea {
import flash.display.*;
import com.gamezhero.events.*;
public class gameForm extends MovieClip {
public function gameForm(){
ini();
}
public function ini():void{
}
public function changeGameAreaEvent(_arg1:String):void{
var _local2:GameAreaEvents;
_local2 = new GameAreaEvents(GameAreaEvents.GAME_AREA_CHANGE);
_local2.gameAreaValue = _arg1;
stage.dispatchEvent(_local2);
}
public function clearEvents():void{
}
}
}//package com.gamezhero.gamearea
Section 122
//gameFormLanguage (com.gamezhero.gamearea.gameFormLanguage)
package com.gamezhero.gamearea {
import flash.events.*;
import flash.display.*;
import com.gamezhero.events.*;
import com.gamezhero.*;
import flash.text.*;
public class gameFormLanguage extends gameForm {
public var italicBth:SimpleButton;
public var info_text:TextField;
public var brazileBth:SimpleButton;
public var frenchBth:SimpleButton;
public var mexicoBth:SimpleButton;
public var spanishBth:SimpleButton;
public var russianBth:SimpleButton;
public var australiaBth:SimpleButton;
public var polandBth:SimpleButton;
public var englishBth:SimpleButton;
public var ukraineBth:SimpleButton;
public var portugeseBth:SimpleButton;
public var germanBth:SimpleButton;
public static var arr:Array = new Array();
public static var ESP:String = "ESP";
public static var UKR:String = "UKR";
public static var POL:String = "POL";
public static var RUS:String = "RUS";
public static var PRT:String = "PRT";
public static var DEU:String = "DEU";
public static var FRA:String = "FRA";
public static var ITA:String = "ITA";
public static var ENG:String = "ENG";
public function gameFormLanguage(){
addFrameScript(0, frame1);
super();
}
public function iniEvents():void{
var _local1:String;
var _local2:SimpleButton;
for (_local1 in arr) {
_local2 = (this[_local1] as SimpleButton);
_local2.addEventListener(MouseEvent.CLICK, );
_local2.addEventListener(MouseEvent.ROLL_OVER, overBtn);
_local2.addEventListener(MouseEvent.ROLL_OUT, outBtn);
};
}
public function outBtn(_arg1:MouseEvent):void{
var _local2:SimpleButton;
_local2 = (_arg1.target as SimpleButton);
(this["info_text"] as TextField).text = "";
}
function frame1(){
}
public function (_arg1:MouseEvent=null):void{
var _local2:SimpleButton;
Global.sound_interface.playSound(null, "s_click");
clearEvents();
_local2 = (_arg1.target as SimpleButton);
Global._language = arr[_local2.name][2];
super.changeGameAreaEvent(GameAreaEvents.GAME_AREA_MENU);
}
override public function clearEvents():void{
var _local1:String;
var _local2:SimpleButton;
for (_local1 in arr) {
_local2 = (this[_local1] as SimpleButton);
_local2.removeEventListener(MouseEvent.CLICK, );
_local2.removeEventListener(MouseEvent.ROLL_OVER, overBtn);
_local2.removeEventListener(MouseEvent.ROLL_OUT, outBtn);
};
}
override public function ini():void{
super.ini();
iniEvents();
}
public function overBtn(_arg1:MouseEvent):void{
var _local2:SimpleButton;
Global.sound_interface.playSound(null, "s_over");
_local2 = (_arg1.target as SimpleButton);
(this["info_text"] as TextField).text = arr[_local2.name][1];
}
public static function checkLanguage(_arg1:String):Boolean{
var _local2:String;
var _local3:Number;
for (_local2 in arr) {
_local3 = (arr[_local2] as Array).indexOf(_arg1);
if (_local3 != -1){
return (true);
};
};
return (false);
}
arr["englishBth"] = ["США и Британия", "English", ENG];
arr["spanishBth"] = ["Испания", "Español", ESP];
arr["italicBth"] = ["Италия", "Italiana", ITA];
arr["russianBth"] = ["Россия", "Русский", RUS];
arr["germanBth"] = ["Германия", "Deutsche", DEU];
arr["frenchBth"] = ["Франция", "Français", FRA];
arr["portugeseBth"] = ["Португалия", "Portuguesa", PRT];
arr["brazileBth"] = ["Бразилия", "Portuguesa", PRT];
arr["mexicoBth"] = ["Мексика", "Español", ESP];
arr["ukraineBth"] = ["Украина", "Українська", UKR];
arr["australiaBth"] = ["Австалия", "English", ENG];
arr["polandBth"] = ["Польша", "Polski", POL];
}
}//package com.gamezhero.gamearea
Section 123
//gameFormMainMenu (com.gamezhero.gamearea.gameFormMainMenu)
package com.gamezhero.gamearea {
import flash.events.*;
import flash.display.*;
import com.gamezhero.events.*;
import com.gamezhero.*;
import flash.text.*;
public class gameFormMainMenu extends gameForm {
public var putThisGameText_mc:putThisGametext;
public var viewTopScoreBtn:SimpleButton;
public var sendToFriendsBtn:SimpleButton;
public var playGameBtn:SimpleButton;
public var youtubeBtn:SimpleButton;
public var arr:Array;
public var putGameBtn:SimpleButton;
public var gamezheroBtn:SimpleButton;
public var editorBtn:SimpleButton;
public var playMoreGamesBtn:SimpleButton;
public var selectorBtn:SimpleButton;
public var copyright_txt:TextField;
public function gameFormMainMenu(){
arr = new Array();
Global._current_level = 0;
Global.clearAll();
arr["sendToFriendsBtn"] = {action:"link", value:Global._urls["send_to_friends"]};
arr["viewTopScoreBtn"] = {action:"link", value:Global._urls["view_top_score"]};
arr["putGameBtn"] = {action:"link", value:Global._urls["put_this_game"]};
arr["gamezheroBtn"] = {action:"link", value:Global._urls["zorro_logo"]};
arr["playMoreGamesBtn"] = {action:"link", value:Global._urls["play_more_games"]};
arr["editorBtn"] = {action:"game", value:GameAreaEvents.GAME_AREA_EDITOR};
arr["selectorBtn"] = {action:"game", value:GameAreaEvents.GAME_AREA_SELECTOR};
arr["playGameBtn"] = {action:"game", value:GameAreaEvents.GAME_AREA_MAP};
arr["youtubeBtn"] = {action:"link", value:Global._urls["youtube"]};
super();
}
public function iniEvents():void{
var _local1:String;
var _local2:*;
for (_local1 in arr) {
_local2 = this[_local1];
_local2.addEventListener(MouseEvent.CLICK, action);
_local2.addEventListener(MouseEvent.ROLL_OVER, overBtn);
};
}
public function action(_arg1:MouseEvent=null):void{
var _local2:String;
var _local3:Object;
Global.sound_interface.playSound(null, "s_click");
_local2 = _arg1.target.name;
_local3 = arr[_local2];
switch (_local3.action){
case "link":
Global.getURL(_local3.value);
break;
case "game":
super.changeGameAreaEvent(_local3.value);
clearEvents();
break;
};
}
override public function clearEvents():void{
var _local1:String;
var _local2:*;
for (_local1 in arr) {
_local2 = this[_local1];
_local2.removeEventListener(MouseEvent.CLICK, action);
_local2.removeEventListener(MouseEvent.ROLL_OVER, overBtn);
};
}
override public function ini():void{
super.ini();
(this["copyright_txt"] as TextField).htmlText = Global._urls["copyright"];
iniEvents();
}
public function overBtn(_arg1:MouseEvent=null):void{
var _local2:String;
Global.sound_interface.playSound(null, "s_over");
_local2 = _arg1.target.name;
}
}
}//package com.gamezhero.gamearea
Section 124
//gameFormMap (com.gamezhero.gamearea.gameFormMap)
package com.gamezhero.gamearea {
import flash.events.*;
import flash.display.*;
import com.gamezhero.events.*;
import com.gamezhero.*;
import flash.text.*;
public class gameFormMap extends gameForm {
public var l0:MovieClip;
public var l1:MovieClip;
public var l5:MovieClip;
public var l4:MovieClip;
public var l7:MovieClip;
public var arr:Array;
public var l6:MovieClip;
public var l2:MovieClip;
public var mainMenuBtn:SimpleButton;
public var l15:MovieClip;
public var l16:MovieClip;
public var l13:MovieClip;
public var l9:MovieClip;
public var scoreInfo:TextField;
public var l14:MovieClip;
public var l22:MovieClip;
public var l10:MovieClip;
public var l12:MovieClip;
public var l20:MovieClip;
public var playMoreGamesBtn:SimpleButton;
public var l24:MovieClip;
public var l11:MovieClip;
public var l21:MovieClip;
public var l18:MovieClip;
public var l23:MovieClip;
public var l8:MovieClip;
public var l19:MovieClip;
public var l3:MovieClip;
public var l17:MovieClip;
public function gameFormMap(){
var _local1:uint;
var _local2:String;
arr = new Array();
_local1 = 0;
while (_local1 < Global._max_level) {
_local2 = ("l" + _local1);
arr[_local2] = {action:"game", value:GameAreaEvents.GAME_AREA_GAME, index:_local1, how:false};
_local1++;
};
arr["mainMenuBtn"] = {action:"game", value:GameAreaEvents.GAME_AREA_MENU, how:true};
arr["playMoreGamesBtn"] = {action:"link", value:Global._urls["play_more_games"], how:true};
super();
}
public function iniEvents():void{
var _local1:String;
var _local2:*;
var _local3:uint;
var _local4:SimpleButton;
_local3 = 0;
while (_local3 < Global._max_level) {
_local1 = ("l" + _local3);
_local2 = this[_local1];
if (Global._game_stored_data.data["map"][_local3].lock == false){
if (Global._win[_local3]){
_local2.gotoAndStop("win");
_local2.level.text = Global._win[_local3];
} else {
_local2.gotoAndStop("play");
};
_local2.addEventListener(MouseEvent.CLICK, action);
_local2.addEventListener(MouseEvent.ROLL_OVER, overBtn);
(_local2 as MovieClip).mouseChildren = false;
(_local2 as MovieClip).buttonMode = true;
(_local2 as MovieClip).useHandCursor = true;
} else {
_local2.gotoAndStop("lock");
};
_local3++;
};
for (_local1 in arr) {
if (arr[_local1].how == true){
_local4 = this[_local1];
_local4.addEventListener(MouseEvent.CLICK, action);
_local4.addEventListener(MouseEvent.ROLL_OVER, overBtn);
};
};
}
public function action(_arg1:MouseEvent=null):void{
var _local2:String;
var _local3:Object;
Global.sound_interface.playSound(null, "s_click");
_local2 = _arg1.target.name;
_local3 = arr[_local2];
switch (_local3.action){
case "link":
Global.getURL(_local3.value);
break;
case "game":
if (!isNaN(_local3.index)){
Global._current_level = Number(_local3.index);
Global.iniLevel();
super.changeGameAreaEvent(_local3.value);
} else {
if (Global.getGlobalScore() == 0){
super.changeGameAreaEvent(_local3.value);
} else {
super.changeGameAreaEvent(GameAreaEvents.GAME_AREA_SCORE);
};
};
clearEvents();
break;
};
}
override public function clearEvents():void{
var _local1:String;
var _local2:*;
for (_local1 in arr) {
_local2 = this[_local1];
_local2.removeEventListener(MouseEvent.CLICK, action);
_local2.removeEventListener(MouseEvent.ROLL_OVER, overBtn);
};
}
override public function ini():void{
var _local1:uint;
super.ini();
if (Global._game_stored_data.data["map"] == undefined){
Global._game_stored_data.data["map"] = new Array();
_local1 = 0;
while (_local1 < Global._max_level) {
Global._game_stored_data.data["map"][_local1] = {lock:true};
if (_local1 == 0){
Global._game_stored_data.data["map"][_local1].lock = false;
};
_local1++;
};
};
iniEvents();
(this["scoreInfo"] as TextField).text = (Global._bonus_info as String);
Global._bonus_info = "";
}
public function overBtn(_arg1:MouseEvent=null):void{
var _local2:String;
Global.sound_interface.playSound(null, "s_over");
_local2 = _arg1.target.name;
}
}
}//package com.gamezhero.gamearea
Section 125
//gameFormScore (com.gamezhero.gamearea.gameFormScore)
package com.gamezhero.gamearea {
import flash.events.*;
import flash.display.*;
import com.gamezhero.events.*;
import com.gamezhero.as3.*;
import com.gamezhero.*;
public class gameFormScore extends gameForm {
public var arr:Array;
public function gameFormScore(){
arr = new Array();
super();
}
public function iniEvents():void{
var _local1:String;
var _local2:*;
for (_local1 in arr) {
_local2 = (this[_local1] as SimpleButton);
_local2.addEventListener(MouseEvent.CLICK, action);
_local2.addEventListener(MouseEvent.ROLL_OVER, overBtn);
};
}
public function action(_arg1:MouseEvent=null):void{
var _local2:String;
var _local3:Object;
Global.sound_interface.playSound(null, "s_click");
_local2 = _arg1.target.name;
_local3 = arr[_local2];
switch (_local3.action){
case "link":
Global.getURL(_local3.value);
break;
case "game":
clearEvents();
super.changeGameAreaEvent(_local3.value);
break;
};
}
public function errorAction(_arg1:Event=null):void{
trace("YORE CODE AFTER ERROR ACTION");
clearEvents();
super.changeGameAreaEvent(GameAreaEvents.GAME_AREA_MENU);
}
public function submitAction(_arg1:Event=null):void{
trace("YORE CODE AFTER SUBMIT ACTION");
clearEvents();
super.changeGameAreaEvent(GameAreaEvents.GAME_AREA_MENU);
}
public function continueAction(_arg1:Event=null):void{
trace("YORE CODE AFTER CONTINUE ACTION");
clearEvents();
super.changeGameAreaEvent(GameAreaEvents.GAME_AREA_MENU);
}
override public function clearEvents():void{
var _local1:String;
var _local2:*;
for (_local1 in arr) {
_local2 = (this[_local1] as SimpleButton);
_local2.removeEventListener(MouseEvent.CLICK, action);
_local2.removeEventListener(MouseEvent.ROLL_OVER, overBtn);
};
}
override public function ini():void{
var _local1:Boolean;
var _local2:uint;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Object;
var _local7:SubmitArea;
super.ini();
iniEvents();
_local1 = true;
_local2 = 0;
while (_local2 < Global._max_level) {
if ((((Global._win[_local2] == false)) || ((Global._win[_local2] == undefined)))){
_local1 = false;
break;
};
_local2++;
};
if (_local1 == true){
this.gotoAndStop("win");
} else {
this.gotoAndStop("lost");
};
GamezheroGlobal.gameName = "incablocks";
GamezheroGlobal.gameCode = "200152211150174159201213212086197194154173167207209154153153163161196209168157153210155175160151152161083146149";
_local3 = Global.getGlobalScore();
_local4 = 150;
_local5 = 145;
_local6 = {border:{width:4, color:0xFFFFFF, alpha:20}, background:{topColor:0x999999, bottomColor:0x666666, topAlpha:20, bottomAlpha:40, cornerRadius:10}, language:"ENG"};
_local7 = new SubmitArea(this, _local4, _local5, _local3, _local6);
_local7.addEventListener(SubmitArea.SUBMITED, submitAction);
_local7.addEventListener(SubmitArea.CONTINUE, continueAction);
_local7.addEventListener(SubmitArea.ERROR, errorAction);
}
public function overBtn(_arg1:MouseEvent=null):void{
var _local2:String;
Global.sound_interface.playSound(null, "s_over");
_local2 = _arg1.target.name;
}
}
}//package com.gamezhero.gamearea
Section 126
//gameFormSelectore (com.gamezhero.gamearea.gameFormSelectore)
package com.gamezhero.gamearea {
import flash.events.*;
import flash.display.*;
import com.gamezhero.events.*;
import com.gamezhero.as3.remoting.events.*;
import com.gamezhero.as3.remoting.*;
import com.gamezhero.*;
import com.gamezhero.game.*;
import flash.text.*;
public class gameFormSelectore extends gameForm {
private var :uint;// = 8
private var :uint;// = 0
public var prev_btn:SimpleButton;
public var arr:Array;
public var preloader:MovieClip;
public var prev2_btn:SimpleButton;
public var recent_btn:MovieClip;
public var mainMenuBtn:SimpleButton;
private var
:Number;
private var :uint;// = 7
public var info:TextField;
public var next_btn:SimpleButton;
public var remotingLevelGateway:RemotingLevelsGateway;
public var m1:ItemSelector;
public var m2:ItemSelector;
public var m3:ItemSelector;
public var m6:ItemSelector;
public var m7:ItemSelector;
public var m8:ItemSelector;
public var m4:ItemSelector;
public var m5:ItemSelector;
public var best_btn:MovieClip;
private var
:Number;// = 0
public var playMoreGamesBtn:SimpleButton;
public var author_btn:MovieClip;
public var next2_btn:SimpleButton;
public var pages:TextField;
public function gameFormSelectore(){
arr = new Array();
= Global.editorGameID;
= RemotingLevelsGateway.SORT_BY_DATE_DEC;
= 0;
= 8;
= 0;
arr["mainMenuBtn"] = {action:"game", value:GameAreaEvents.GAME_AREA_MENU, how:true};
arr["playMoreGamesBtn"] = {action:"link", value:Global._urls["play_more_games"], how:true};
super();
}
public function iniEvents():void{
var _local1:String;
var _local2:SimpleButton;
(this["next_btn"] as SimpleButton).addEventListener(MouseEvent.CLICK, );
(this["next2_btn"] as SimpleButton).addEventListener(MouseEvent.CLICK, );
(this["prev_btn"] as SimpleButton).addEventListener(MouseEvent.CLICK, );
(this["prev2_btn"] as SimpleButton).addEventListener(MouseEvent.CLICK, );
(this["recent_btn"] as MovieClip).addEventListener(MouseEvent.CLICK, );
(this["best_btn"] as MovieClip).addEventListener(MouseEvent.CLICK, );
(this["author_btn"] as MovieClip).addEventListener(MouseEvent.CLICK,
);
for (_local1 in arr) {
if (arr[_local1].how == true){
_local2 = this[_local1];
_local2.addEventListener(MouseEvent.CLICK, action);
_local2.addEventListener(MouseEvent.ROLL_OVER, overBtn);
};
};
}
public function action(_arg1:MouseEvent=null):void{
var _local2:String;
var _local3:Object;
Global.sound_interface.playSound(null, "s_click");
_local2 = _arg1.target.name;
_local3 = arr[_local2];
switch (_local3.action){
case "link":
Global.getURL(_local3.value);
break;
case "game":
clearEvents();
super.changeGameAreaEvent(_local3.value);
break;
};
}
public function errorResult(_arg1:RemotingLevelsEvent=null):void{
(false);
(this["info"] as TextField).text = "Error Loading Data...";
}
private function (_arg1:MouseEvent=null):void{
var _local2:Number;
_local2 =
;
= ( - 1);
Global._game_stored_data.data["shared_current_page"] =
;
if (
!= _local2){
();
};
}
private function (_arg1:Boolean=false):void{
if (_arg1){
this["preloader"].visible = true;
this["preloader"].play();
} else {
this["preloader"].visible = false;
this["preloader"].stop();
};
}
public function (_arg1:RemotingLevelsEvent=null):void{
var _local2:*;
_local2 = _arg1.value;
= Number(_local2);
(false);
if (Global._game_stored_data.data["shared_sort"] == undefined){
= RemotingLevelsGateway.SORT_BY_DATE_DEC;
} else {
= Global._game_stored_data.data["shared_sort"];
};
if (Global._game_stored_data.data["shared_current_page"] == undefined){
= 0;
} else {
= Global._game_stored_data.data["shared_current_page"];
};
if ( >= 1){
();
} else {
this["info"].text = "Shared Gallery is empty.";
};
}
private function (_arg1:MouseEvent=null):void{
var _local2:Number;
_local2 =
;
--;
if (
< 0){
= ( - 1);
};
Global._game_stored_data.data["shared_current_page"] =
;
if (_local2 !=
){
();
};
}
private function ():void{
var _local1:uint;
_local1 = 0;
while (_local1 < ) {
(this[("m" + (_local1 + 1))] as ItemSelector).clear();
_local1++;
};
}
private function (_arg1:Boolean=true):void{
(this["pages"] as TextField).text = (((
+ 1) + "/") + );
if ((((
>= ( - 1))) || (!(_arg1)))){
this["next_btn"].mouseEnabled = false;
this["next_btn"].alpha = 0.5;
this["next2_btn"].mouseEnabled = false;
this["next2_btn"].alpha = 0.5;
} else {
this["next_btn"].mouseEnabled = true;
this["next_btn"].alpha = 1;
this["next2_btn"].mouseEnabled = true;
this["next2_btn"].alpha = 1;
};
if ((((
== 0)) || (!(_arg1)))){
this["prev_btn"].mouseEnabled = false;
this["prev_btn"].alpha = 0.5;
this["prev2_btn"].mouseEnabled = false;
this["prev2_btn"].alpha = 0.5;
} else {
this["prev_btn"].mouseEnabled = true;
this["prev_btn"].alpha = 1;
this["prev2_btn"].mouseEnabled = true;
this["prev2_btn"].alpha = 1;
};
}
private function ():void{
var _local1:uint;
_local1 = 0;
while (_local1 < ) {
(this[("m" + (_local1 + 1))] as ItemSelector).enable();
_local1++;
};
}
public function overBtn(_arg1:MouseEvent=null):void{
var _local2:String;
Global.sound_interface.playSound(null, "s_over");
_local2 = _arg1.target.name;
}
private function ():void{
try {
remotingLevelGateway.removeEventListener(RemotingLevelsEvent.ERROR, errorResult);
remotingLevelGateway.removeEventListener(RemotingLevelsEvent.GET_PAGE_AMOUNT, );
remotingLevelGateway.removeEventListener(RemotingLevelsEvent.GET_PAGE_LIST, );
remotingLevelGateway.removeEventListener(RemotingLevelsEvent.GET_LEVEL,
);
} catch(e:Error) {
};
}
private function (_arg1:MouseEvent=null):void{
var _local2:Number;
_local2 =
;
++;
if (
>= ){
= 0;
};
Global._game_stored_data.data["shared_current_page"] =
;
if (_local2 !=
){
();
};
}
private function ():void{
(true);
try {
remotingLevelGateway.getPagesAmount(
, );
} catch(e:Error) {
(false);
this["info"].text = "Error Loading Data...";
};
}
private function ():void{
(true);
();
(false);
(false);
try {
remotingLevelGateway.getPageList(
,
, , );
} catch(e:Error) {
(false);
(this["info"] as TextField).text = "Error Loading Data...";
};
}
public function remotingStep3(_arg1:String):void{
var levelID = _arg1;
Global.previewLevelID = levelID;
(true);
(false);
(false);
();
try {
remotingLevelGateway.getLevel(
, levelID);
} catch(e:Error) {
(false);
(this["info"] as TextField).text = "Error Loading Data...";
};
}
private function (_arg1:MouseEvent=null):void{
var _local2:Number;
_local2 =
;
= 0;
Global._game_stored_data.data["shared_current_page"] =
;
if (
!= _local2){
();
};
}
private function (_arg1:MouseEvent=null):void{
var _local2:Number;
_local2 = ;
= RemotingLevelsGateway.SORT_BY_DATE_DEC;
Global._game_stored_data.data["shared_sort"] = ;
if (_local2 != ){
();
};
}
private function (_arg1:MouseEvent=null):void{
var _local2:Number;
_local2 = ;
= RemotingLevelsGateway.SORT_BY_RATE_DEC;
Global._game_stored_data.data["shared_sort"] = ;
if (_local2 != ){
();
};
}
private function
(_arg1:MouseEvent=null):void{
var _local2:Number;
_local2 = ;
= RemotingLevelsGateway.SORT_BY_AUTHOR;
Global._game_stored_data.data["shared_sort"] = ;
if (_local2 != ){
();
};
}
public function (_arg1:RemotingLevelsEvent=null):void{
var result:*;
var arr:Array;
var i:uint;
var event = _arg1;
(false);
(true);
(true);
result = event.value;
arr = (result as Array);
i = 0;
while (i < arr.length) {
try {
(this[("m" + (i + 1))] as ItemSelector).update(arr[i]);
} catch(e:Error) {
break;
};
i = (i + 1);
};
}
private function
(_arg1:Boolean=true):void{
if (!_arg1){
(this["best_btn"] as MovieClip).mouseEnabled = !(_arg1);
(this["best_btn"] as MovieClip).alpha = 0.5;
(this["recent_btn"] as MovieClip).mouseEnabled = !(_arg1);
(this["recent_btn"] as MovieClip).alpha = 0.5;
(this["author_btn"] as MovieClip).mouseEnabled = !(_arg1);
(this["author_btn"] as MovieClip).alpha = 0.5;
} else {
(this["best_btn"] as MovieClip).mouseChildren = (()==RemotingLevelsGateway.SORT_BY_RATE_DEC) ? false : true;
(this["best_btn"] as MovieClip).mouseEnabled = (()==RemotingLevelsGateway.SORT_BY_RATE_DEC) ? false : true;
(this["best_btn"] as MovieClip).gotoAndStop((()==RemotingLevelsGateway.SORT_BY_RATE_DEC) ? 2 : 1);
(this["best_btn"] as MovieClip).alpha = 1;
(this["recent_btn"] as MovieClip).mouseChildren = (()==RemotingLevelsGateway.SORT_BY_DATE_DEC) ? false : true;
(this["recent_btn"] as MovieClip).mouseEnabled = (()==RemotingLevelsGateway.SORT_BY_DATE_DEC) ? false : true;
(this["recent_btn"] as MovieClip).gotoAndStop((()==RemotingLevelsGateway.SORT_BY_DATE_DEC) ? 2 : 1);
(this["recent_btn"] as MovieClip).alpha = 1;
(this["author_btn"] as MovieClip).mouseChildren = (()==RemotingLevelsGateway.SORT_BY_AUTHOR) ? false : true;
(this["author_btn"] as MovieClip).mouseEnabled = (()==RemotingLevelsGateway.SORT_BY_AUTHOR) ? false : true;
(this["author_btn"] as MovieClip).gotoAndStop((()==RemotingLevelsGateway.SORT_BY_AUTHOR) ? 2 : 1);
(this["author_btn"] as MovieClip).alpha = 1;
};
}
private function
():void{
try {
remotingLevelGateway = new RemotingLevelsGateway("http://www.gamezhero.com/chat/gateway.php");
remotingLevelGateway.addEventListener(RemotingLevelsEvent.ERROR, errorResult);
remotingLevelGateway.addEventListener(RemotingLevelsEvent.GET_PAGE_AMOUNT, );
remotingLevelGateway.addEventListener(RemotingLevelsEvent.GET_PAGE_LIST, );
remotingLevelGateway.addEventListener(RemotingLevelsEvent.GET_LEVEL,
);
} catch(e:Error) {
(false);
this["info"].text = "Error Loading Data...";
};
}
public function
(_arg1:RemotingLevelsEvent=null):void{
var _local2:*;
_local2 = _arg1.value;
Global.previewLevel = _local2;
super.changeGameAreaEvent(GameAreaEvents.GAME_AREA_PREVIEW);
}
override public function clearEvents():void{
var _local1:String;
var _local2:*;
(this["next_btn"] as SimpleButton).removeEventListener(MouseEvent.CLICK, );
(this["next2_btn"] as SimpleButton).removeEventListener(MouseEvent.CLICK, );
(this["prev_btn"] as SimpleButton).removeEventListener(MouseEvent.CLICK, );
(this["prev2_btn"] as SimpleButton).removeEventListener(MouseEvent.CLICK, );
(this["recent_btn"] as MovieClip).removeEventListener(MouseEvent.CLICK, );
(this["best_btn"] as MovieClip).removeEventListener(MouseEvent.CLICK, );
(this["author_btn"] as MovieClip).removeEventListener(MouseEvent.CLICK,
);
for (_local1 in arr) {
_local2 = this[_local1];
_local2.removeEventListener(MouseEvent.CLICK, action);
_local2.removeEventListener(MouseEvent.ROLL_OVER, overBtn);
};
}
override public function ini():void{
var _local1:uint;
super.ini();
(false);
(false);
iniEvents();
();
();
this["pages"].text = "";
();
}
}
}//package com.gamezhero.gamearea
Section 127
//MultiText (com.gamezhero.gamearea.MultiText)
package com.gamezhero.gamearea {
import flash.display.*;
import com.gamezhero.*;
public class MultiText extends MovieClip {
public function MultiText(){
this.mouseEnabled = false;
gotoAndStop(Global._language);
}
}
}//package com.gamezhero.gamearea
Section 128
//PreloaderVrashalka (com.gamezhero.gamearea.PreloaderVrashalka)
package com.gamezhero.gamearea {
import flash.events.*;
import flash.display.*;
public class PreloaderVrashalka extends MovieClip {
public var vr:MovieClip;
public function PreloaderVrashalka(){
this.addEventListener(Event.ENTER_FRAME, update);
}
private function update(_arg1:Event=null){
if (this.currentFrame == 30){
};
}
}
}//package com.gamezhero.gamearea
Section 129
//BtnSoundControl (com.gamezhero.gameComponents.BtnSoundControl)
package com.gamezhero.gameComponents {
import flash.events.*;
import flash.display.*;
public class BtnSoundControl extends MovieClip {
public var begun:MovieClip;
public var :Number;// = 0
public var :Boolean;// = false
public var
:Number;// = 0
public var dx:Number;
public var
:Number;
public var
:Number;// = 48
public var
:Number;// = 2
public static var CHANGE:String = "change";
public function BtnSoundControl(){
= 2;
= 0;
= 0;
= 48;
dx = (
-
);
=
;
= false;
super();
this.addEventListener(Event.ENTER_FRAME, ini);
}
public function ini(_arg1:Event=null):void{
this.removeEventListener(Event.ENTER_FRAME, ini);
trace(("INI " + this["begun"]));
this["begun"].buttonMode = true;
this["begun"].useHandCursor = true;
this["begun"].mouseChildren = false;
this["begun"].addEventListener(MouseEvent.MOUSE_DOWN, downAction);
this.addEventListener(Event.REMOVED_FROM_STAGE, remove);
}
public function (_arg1:MouseEvent=null):void{
var _local2:Event;
(this["begun"] as MovieClip).x = (this.mouseX -
);
if ((this["begun"] as MovieClip).x > (
+ dx)){
(this["begun"] as MovieClip).x = (
+ dx);
};
if ((this["begun"] as MovieClip).x <
){
(this["begun"] as MovieClip).x =
;
};
= (((this["begun"] as MovieClip).x -
) / dx);
_local2 = new Event(CHANGE);
this.dispatchEvent(_local2);
}
public function downAction(_arg1:MouseEvent=null):void{
var _local2:Number;
_local2 = (this["begun"] as MovieClip).y;
= (this["begun"] as MovieClip).mouseX;
= (this["begun"] as MovieClip).mouseY;
stage.addEventListener(MouseEvent.MOUSE_UP, upAction);
stage.addEventListener(MouseEvent.MOUSE_MOVE, );
}
public function enable(_arg1:Boolean=true):void{
trace(("THIS " + this.alpha));
if (_arg1){
ini();
this["begun"].alpha = 1;
} else {
clearEvents();
this["begun"].enabled = false;
this["begun"].alpha = 0.5;
};
}
private function remove(_arg1:Event=null):void{
clearEvents();
}
public function set volue(_arg1:Number):void{
= _arg1;
update();
}
public function upAction(_arg1:MouseEvent=null):void{
stage.removeEventListener(MouseEvent.MOUSE_MOVE, );
}
public function get volue():Number{
return (
);
}
public function update():void{
(this["begun"] as MovieClip).x = (
+ Math.round((
* dx)));
}
public function clearEvents():void{
stage.removeEventListener(MouseEvent.MOUSE_DOWN, downAction);
stage.removeEventListener(MouseEvent.MOUSE_UP, upAction);
stage.removeEventListener(MouseEvent.MOUSE_MOVE, );
}
}
}//package com.gamezhero.gameComponents
Section 130
//PauseMenu (com.gamezhero.gameForms.PauseMenu)
package com.gamezhero.gameForms {
import flash.events.*;
import flash.display.*;
import com.gamezhero.events.*;
import com.gamezhero.*;
import com.gamezhero.game.*;
import flash.text.*;
import com.gamezhero.gameComponents.*;
public class PauseMenu extends MovieClip {
public var exitGameBtn:MovieClip;
public var musicGameBtn:MovieClip;
public var playGameBtn:MovieClip;
public var soundControl:BtnSoundControl;
public var txt:TextField;
public var soundGameBtn:MovieClip;
public var musicControl:BtnSoundControl;
private var :MovieClip;
private var arr:Array;
public var gamezheroBtn:MovieClip;
private var :MovieClip;
private var :String;
public static const BTN_EXIT:String = "exitGameBtn";
public static const BTN_PLAY:String = "playGameBtn";
public static const BTN_MUSIC:String = "musicGameBtn";
public static const BTN_SOUND:String = "soundGameBtn";
public static const BTN_GAMEZHERO:String = "gamezheroBtn";
public function PauseMenu(_arg1:MovieClip){
arr = new Array();
super();
addFrameScript(16, );
= _arg1;
= MovieClip(_arg1);
.addChild(this);
arr[BTN_GAMEZHERO] = {action:"link", value:Global._urls["zorro_logo"]};
arr[BTN_PLAY] = {action:"action", value:"continue"};
arr[BTN_EXIT] = {action:"action", value:"menu"};
arr[BTN_SOUND] = {action:"action", value:"sound"};
arr[BTN_MUSIC] = {action:"action", value:"music"};
= stage.quality;
stage.quality = "BEST";
Global.music_game.
(0);
this.addEventListener(Event.ENTER_FRAME, ini);
}
public function ini(_arg1:Event=null):void{
this.removeEventListener(Event.ENTER_FRAME, ini);
iniEvents();
(true);
(true);
}
public function
(_arg1:MouseEvent=null):void{
var _local2:String;
var _local3:Object;
Global.sound_interface.playSound(null, "s_click");
_local2 = _arg1.target.name;
_local3 = arr[_local2];
switch (_local3.action){
case "link":
Global.getURL(_local3.value);
break;
case "action":
switch (_local3.value){
case "continue":
();
clearEvents();
break;
case "menu":
();
clearEvents();
break;
case "sound":
();
break;
case "music":
();
break;
};
break;
};
}
private function
():void{
stage.quality = ;
Global.iniSoundAndMusic();
.pauseGame(false);
action();
}
public function
(_arg1:Event=null):void{
Global._sound_volume_game = (this["soundControl"] as BtnSoundControl).volue;
}
public function iniEvents():void{
var _local1:String;
var _local2:MovieClip;
for (_local1 in arr) {
_local2 = this[_local1];
_local2.buttonMode = true;
_local2.useHandCursor = true;
_local2.mouseChildren = false;
_local2.addEventListener(MouseEvent.CLICK,
);
_local2.addEventListener(MouseEvent.ROLL_OVER, overBtn);
_local2.addEventListener(MouseEvent.ROLL_OUT, outBtn);
};
(this["soundControl"] as BtnSoundControl).addEventListener(BtnSoundControl.CHANGE,
);
(this["musicControl"] as BtnSoundControl).addEventListener(BtnSoundControl.CHANGE, );
stage.removeEventListener(GameEvents.GAME_OVER, actionGameOver);
}
public function outBtn(_arg1:MouseEvent=null):void{
(this["txt"] as TextField).text = "";
}
public function actionGameOver(_arg1:GameEvents=null):void{
remove();
}
private function (_arg1:Boolean=false):void{
if (_arg1 == false){
Global._game_stored_data.data.soundVolumeFlag = ((Global._game_stored_data.data.soundVolumeFlag == 1)) ? 0 : 1;
};
this["soundGameBtn"].gotoAndStop(((Global._game_stored_data.data.soundVolumeFlag == 1)) ? 2 : 1);
(this["soundControl"] as BtnSoundControl).volue = (Global._game_stored_data.data.soundVolumeFlag) ? Global._sound_volume_game : 0;
(this["soundControl"] as BtnSoundControl).enable(Global._game_stored_data.data.soundVolumeFlag);
}
public function action():void{
(this as MovieClip).addEventListener(Event.ENTER_FRAME, );
}
public function (_arg1:Event=null):void{
Global._music_volume_game = (this["musicControl"] as BtnSoundControl).volue;
}
private function (_arg1:Event):void{
this.gotoAndStop((this.currentFrame + 1));
if (this.currentFrame == this.totalFrames){
(this as MovieClip).removeEventListener(Event.ENTER_FRAME, );
this.remove();
};
}
function (){
stop();
}
public function remove():void{
this.clearEvents();
if (( as MovieClip).contains(this)){
.removeChild(this);
};
}
private function ():void{
stage.quality = ;
( as Game).missionFail();
}
private function (_arg1:Boolean=false):void{
if (_arg1 == false){
Global._game_stored_data.data.musicVolumeFlag = ((Global._game_stored_data.data.musicVolumeFlag == 1)) ? 0 : 1;
};
this["musicGameBtn"].gotoAndStop(((Global._game_stored_data.data.musicVolumeFlag == 1)) ? 2 : 1);
(this["musicControl"] as BtnSoundControl).volue = (Global._game_stored_data.data.musicVolumeFlag) ? Global._music_volume_game : 0;
(this["musicControl"] as BtnSoundControl).enable(Global._game_stored_data.data.musicVolumeFlag);
}
public function clearEvents():void{
var _local1:String;
var _local2:MovieClip;
(this as MovieClip).removeEventListener(Event.ENTER_FRAME, ini);
for (_local1 in arr) {
_local2 = (this[_local1] as MovieClip);
_local2.removeEventListener(MouseEvent.CLICK, action);
_local2.removeEventListener(MouseEvent.ROLL_OVER, overBtn);
_local2.removeEventListener(MouseEvent.ROLL_OUT, outBtn);
};
(this["soundControl"] as BtnSoundControl).removeEventListener(BtnSoundControl.CHANGE,
);
(this["musicControl"] as BtnSoundControl).removeEventListener(BtnSoundControl.CHANGE, );
stage.removeEventListener(GameEvents.GAME_OVER, actionGameOver);
}
public function overBtn(_arg1:MouseEvent=null):void{
var btn_name:String;
var event = _arg1;
Global.sound_interface.playSound(null, "s_over");
btn_name = event.target.name;
try {
(this["txt"] as TextField).text = Global.pauseLanguage[Global._language][btn_name];
} catch(e:Error) {
trace(((("ERROR SHOW PAUSE TEXT " + btn_name) + " ") + Global._language));
};
}
}
}//package com.gamezhero.gameForms
Section 131
//Music (com.gamezhero.media.Music)
package com.gamezhero.media {
import flash.events.*;
import flash.utils.*;
import flash.media.*;
public class Music {
public var :Array;
private var :Dictionary;
public var :Number;// = 0.5
private var :Object;
public var :Array;
public var :Timer;
private var :String;// = ""
public function Music(){
= new Dictionary();
= new Object();
= "";
= 0.5;
= new Array();
= new Array();
= new Timer(50, 0);
super();
}
public function stopMusics():void{
var _local1:*;
var _local2:*;
for (_local1 in ) {
(_local1);
};
for (_local2 in ) {
};
( = "");
}
public function playMusic(_arg1:String, _arg2:String, _arg3:Number=0):void{
var soundFactory:Sound;
var sndClass:Class;
var id = _arg1;
var sName = _arg2;
var step = _arg3;
if ( != id){
();
= id;
try {
sndClass = (getDefinitionByName(sName) as Class);
} catch(e:ReferenceError) {
trace(("НЕТ ТАКОЙ МУЗЫКИ :" + sName));
return;
};
soundFactory = (new (sndClass) as Sound);
(id, soundFactory, step);
();
};
}
private function
(_arg1:Event):void{
var _local2:*;
var _local3:String;
var _local4:Sound;
_local2 = _arg1.target;
if ([_local2].loopFlag == "infinity"){
_local3 = [_local2].id;
_local4 = [_local2].sound;
(_local3, _local4);
};
delete [_local2];
}
public function
(_arg1:Number):void{
var _local2:*;
var _local3:SoundTransform;
= _arg1;
for (_local2 in ) {
_local3 = _local2.soundTransform;
_local3.volume = ;
_local2.soundTransform = _local3;
};
}
public function (_arg1:String, _arg2:Sound, _arg3:Number=0):void{
var _local4:Number;
var _local5:SoundChannel;
var _local6:SoundTransform;
_local4 = 1000;
_local5 = _arg2.play(0, _local4);
_local6 = _local5.soundTransform;
_local6.pan = 0;
_local6.volume = ((_arg3)>) ? : _arg3;
_local5.soundTransform = _local6;
_local5.addEventListener(Event.SOUND_COMPLETE,
);
[_local5] = {id:_arg1, sound:_arg2};
[_arg1] = _local5;
}
public function (_arg1:String):void{
if ([_arg1] != undefined){
.push(_arg1);
.addEventListener("timer", );
.start();
};
}
public function (_arg1:String):void{
if ([_arg1] != undefined){
.push(_arg1);
.addEventListener("timer", );
.start();
};
}
private function (_arg1:TimerEvent=null):void{
var _local2:Number;
var _local3:SoundTransform;
var _local4:SoundChannel;
_local2 = 0;
while (_local2 < .length) {
_local4 = [ [_local2]];
_local3 = _local4.soundTransform;
_local3.volume = (_local3.volume + 0.025);
_local3.volume = ((_local3.volume)>=) ? : _local3.volume;
_local4.soundTransform = _local3;
if (_local3.volume == ){
.splice(_local2, 1);
_local2--;
};
_local2++;
};
_local2 = 0;
while (_local2 < .length) {
_local4 = [[_local2]];
_local3 = _local4.soundTransform;
_local3.volume = (_local3.volume - 0.1);
_local3.volume = ((_local3.volume)<=0) ? 0 : _local3.volume;
_local4.soundTransform = _local3;
if (_local3.volume == 0){
_local4.stop();
trace("STOP AFTER MINUS");
.splice(_local2, 1);
_local2--;
};
_local2++;
};
if (((( .length == 0)) && ((.length == 0)))){
.removeEventListener("timer", );
.stop();
};
}
}
}//package com.gamezhero.media
Section 132
//SoundFX (com.gamezhero.media.SoundFX)
package com.gamezhero.media {
import flash.events.*;
import flash.utils.*;
import flash.media.*;
public class SoundFX {
private var
:Dictionary;
public var :Number;// = 0.5
private var :Object;
public function SoundFX(){
= new Dictionary();
= new Object();
= 0.5;
super();
}
public function stopSounds():void{
var _local1:*;
for (_local1 in
) {
_local1.stop();
_local1.addEventListener(Event.SOUND_COMPLETE,
);
delete
[_local1];
};
= new Object();
= new Dictionary();
}
public function
(_arg1, _arg2:Sound, _arg3:Number, _arg4, _arg5:Number):SoundChannel{
var _local6:Number;
var _local7:SoundChannel;
var _local8:SoundTransform;
_local6 = ((_arg4)=="infinity") ? 1000 : _arg4;
_local7 = _arg2.play(0, _local6);
_local8 = _local7.soundTransform;
_local8.pan = _arg3;
_local8.volume = ( * _arg5);
_local7.soundTransform = _local8;
_local7.addEventListener(Event.SOUND_COMPLETE,
);
[_local7] = {id:_arg1, sound:_arg2, loopFlag:_arg4, pan:_arg3, kof:_arg5};
if (_arg1 != null){
[_arg1] = _local7;
};
return (_local7);
}
public function (_arg1:String, _arg2:Number):void{
var _local3:*;
var _local4:SoundTransform;
_local3 = [_arg1];
if (_local3 != undefined){
_local4 = _local3.soundTransform;
[_local3].pan = _arg2;
_local4.pan = _arg2;
_local3.soundTransform = _local4;
};
}
private function
(_arg1:Event):void{
var _local2:*;
var _local3:*;
var _local4:Sound;
var _local5:*;
var _local6:Number;
var _local7:Number;
_local2 = _arg1.target;
_local3 =
[_local2].id;
if (
[_local2].loopFlag == "infinity"){
_local4 =
[_local2].sound;
_local5 =
[_local2].loopFlag;
_local6 =
[_local2].pan;
_local7 =
[_local2].kof;
(_local3, _local4, _local5, _local6, _local7);
};
delete
[_local2];
delete [_local3];
}
public function (_arg1:Number):void{
var _local2:*;
var _local3:SoundTransform;
= _arg1;
for (_local2 in
) {
_local3 = _local2.soundTransform;
_local3.volume = ( *
[_local2].kof);
_local2.soundTransform = _local3;
};
}
public function (_arg1:String, _arg2:Number):void{
var _local3:*;
var _local4:SoundTransform;
_local3 = [_arg1];
if (_local3 != undefined){
[_local3].kof = _arg2;
_local4 = _local3.soundTransform;
_local4.volume = ( *
[_local3].kof);
_local3.soundTransform = _local4;
};
}
public function playSound(_arg1, _arg2:String, _arg3=0, _arg4:Number=0, _arg5:Number=1):SoundChannel{
var sndClass:Class;
var soundFactory:Sound;
var id = _arg1;
var sName = _arg2;
var loopFlag = _arg3;
var pan = _arg4;
var kof = _arg5;
if (kof > 1){
kof = 1;
};
if ([id] == undefined){
try {
sndClass = (getDefinitionByName(sName) as Class);
soundFactory = (new (sndClass) as Sound);
} catch(e:ReferenceError) {
return (null);
};
return (
(id, soundFactory, pan, loopFlag, kof));
//unresolved jump
};
return (null);
}
public function (_arg1:String):void{
var _local2:*;
_local2 = [_arg1];
if (_local2 != undefined){
_local2.stop();
_local2.addEventListener(Event.SOUND_COMPLETE,
);
delete
[_local2];
};
}
}
}//package com.gamezhero.media
Section 133
//ClassLoader (com.gamezhero.utils.ClassLoader)
package com.gamezhero.utils {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.system.*;
public class ClassLoader extends EventDispatcher {
private var :Loader;
private var request:URLRequest;
private var
:String;
private var :Class;
public static var CLASS_LOADED:String = "classLoaded";
public static var LOAD_ERROR:String = "loadError";
public function ClassLoader(){
= new Loader();
.contentLoaderInfo.addEventListener(Event.COMPLETE,
);
.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, );
.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, );
}
public function getClass(_arg1:String):Class{
var className = _arg1;
try {
return (( .contentLoaderInfo.applicationDomain.getDefinition(className) as Class));
} catch(e:Error) {
trace("ERROR");
};
return (null);
}
private function (_arg1:Event):void{
dispatchEvent(new Event(ClassLoader.LOAD_ERROR));
}
private function
(_arg1:Event):void{
dispatchEvent(new Event(ClassLoader.CLASS_LOADED));
}
private function (_arg1:Event):void{
dispatchEvent(new Event(ClassLoader.LOAD_ERROR));
}
public function load(_arg1:String):void{
var _local2:LoaderContext;
= _arg1;
request = new URLRequest(
);
_local2 = new LoaderContext();
_local2.applicationDomain = new ApplicationDomain();
.load(request, _local2);
}
}
}//package com.gamezhero.utils
Section 134
//IntUtil (com.gamezhero.utils.IntUtil)
package com.gamezhero.utils {
public class IntUtil {
private static var hexChars:String = "0123456789abcdef";
public static function toHex(_arg1:int, _arg2:Boolean=false):String{
var _local3:String;
var _local4:int;
var _local5:int;
_local3 = "";
if (_arg2){
_local4 = 0;
while (_local4 < 4) {
_local3 = (_local3 + (hexChars.charAt(((_arg1 >> (((3 - _local4) * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> ((3 - _local4) * 8)) & 15))));
_local4++;
};
} else {
_local5 = 0;
while (_local5 < 4) {
_local3 = (_local3 + (hexChars.charAt(((_arg1 >> ((_local5 * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> (_local5 * 8)) & 15))));
_local5++;
};
};
return (_local3);
}
public static function ror(_arg1:int, _arg2:int):uint{
var _local3:int;
_local3 = (32 - _arg2);
return (((_arg1 << _local3) | (_arg1 >>> (32 - _local3))));
}
public static function rol(_arg1:int, _arg2:int):int{
return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2))));
}
}
}//package com.gamezhero.utils
Section 135
//GameArea (com.gamezhero.GameArea)
package com.gamezhero {
import flash.events.*;
import flash.display.*;
import com.gamezhero.events.*;
import com.gamezhero.game.*;
import flash.net.*;
import com.gamezhero.gamearea.*;
public class GameArea extends MovieClip {
public var cursor:Cursor;
public var :Gate;
public var editor:Game;
public var lang_mc:gameFormLanguage;
public var test:Game;
public var preview:Game;
public var :Gate;
public var selector:gameFormSelectore;
public var game:Game;
public function GameArea(){
ini();
}
public function ():void{
= new Gate(this, true);
= null;
}
private function (_arg1:SecurityErrorEvent=null):void{
();
}
private function (){
var _local1:Sprite;
_local1 = new Sprite();
_local1.graphics.lineStyle(1, 0xFF0000, 100);
_local1.graphics.beginFill(0xFF0000, 100);
_local1.graphics.moveTo(0, 0);
_local1.graphics.lineTo(Global._game_width, 0);
_local1.graphics.lineTo(Global._game_width, Global._game_height);
_local1.graphics.lineTo(0, Global._game_height);
_local1.graphics.moveTo(0, 0);
_local1.visible = false;
parent.addChild(_local1);
this.mask = _local1;
}
private function ini():void{
var s_lc:LocalConnection;
();
this.gotoAndStop(1);
stage.addEventListener(GameAreaEvents.GAME_AREA_CHANGE, );
cursor = new Cursor((parent as MovieClip));
if (() == true){
();
} else {
s_lc = new LocalConnection();
s_lc.addEventListener(StatusEvent.STATUS, );
s_lc.addEventListener(SecurityErrorEvent.SECURITY_ERROR, );
try {
s_lc.send(("gamezhero1" + String(Global.gamezhero_code)), "checkPopUp");
} catch(error:ArgumentError) {
();
};
};
}
private function ():void{
var _local1:GameAreaEvents;
_local1 = new GameAreaEvents(GameAreaEvents.GAME_AREA_CHANGE);
if (gameFormLanguage.checkLanguage(Global._language) == false){
_local1.gameAreaValue = GameAreaEvents.GAME_AREA_LANGUAGE;
} else {
if (Global.previewLevel != "-1"){
_local1.gameAreaValue = GameAreaEvents.GAME_AREA_PREVIEW;
} else {
_local1.gameAreaValue = GameAreaEvents.GAME_AREA_MENU;
};
};
(_local1);
}
private function ():void{
var _local1:GameAreaEvents;
_local1 = new GameAreaEvents(GameAreaEvents.GAME_AREA_CHANGE);
_local1.gameAreaValue = GameAreaEvents.GAME_AREA_RELEASE;
(_local1);
}
private function (_arg1:StatusEvent=null):void{
switch (_arg1.level){
case "status":
();
break;
case "error":
();
break;
};
}
public function (_arg1:GameAreaEvents=null):void{
var _local2:String;
trace(("changeGameArea " + ));
_local2 = _arg1.gameAreaValue;
GameAreaEvents.gameAreaType = _local2;
if (!){
trace(("changeGameArea " + _local2));
= new Gate(this, false, this, _local2, );
stage.quality = StageQuality.HIGH;
switch (_local2){
case GameAreaEvents.GAME_AREA_PREVIEW:
Global.music_interface.stopMusics();
Global.music_game.playMusic("game", "m_game");
break;
case GameAreaEvents.GAME_AREA_EDITOR:
Global.music_interface.stopMusics();
Global.music_game.stopMusics();
break;
case GameAreaEvents.GAME_AREA_INTRO:
Global.music_interface.stopMusics();
Global.music_game.stopMusics();
break;
case GameAreaEvents.GAME_AREA_MAP:
Global.music_game.stopMusics();
Global.music_interface.playMusic("map", "m_map");
trace(">>>>>>>>>>>>>>>>>>>>>>>>> MAP");
break;
case GameAreaEvents.GAME_AREA_MENU:
Global.music_game.stopMusics();
Global.music_interface.playMusic("menu", "m_menu");
break;
case GameAreaEvents.GAME_AREA_SCORE:
Global.music_game.stopMusics();
Global.music_interface.playMusic("menu", "m_menu");
break;
case GameAreaEvents.GAME_AREA_SELECTOR:
Global.music_game.stopMusics();
Global.music_interface.playMusic("map", "m_map");
break;
case GameAreaEvents.GAME_AREA_GAME:
stage.quality = StageQuality.MEDIUM;
Global._bonus_info = "0";
Global.music_interface.stopMusics();
Global.iniSoundAndMusic();
Global.music_game.playMusic("game", "m_game");
break;
case GameAreaEvents.GAME_AREA_WIN_INTRO:
break;
};
};
}
private function ():Boolean{
var _local1:Date;
return (true);
}
}
}//package com.gamezhero
Section 136
//Gate (com.gamezhero.Gate)
package com.gamezhero {
import flash.events.*;
import flash.display.*;
public class Gate extends MovieClip {
public var ;
public var :MovieClip;
public var :MovieClip;
public var :Boolean;
public var :Function;
public function Gate(_arg1:MovieClip, _arg2:Boolean=true, _arg3:MovieClip=null, _arg4=1, _arg5:Function=null){
addFrameScript(0, frame1, 50, );
= _arg1;
= _arg2;
= _arg3;
= _arg4;
= _arg5;
.addChild(this);
ini();
this.addEventListener(Event.ENTER_FRAME, update);
}
private function ini():void{
if ( == true){
this.gotoAndStop("close");
} else {
this.gotoAndStop("open");
};
}
public function (_arg1):void{
= _arg1;
}
private function action():void{
this.removeEventListener(Event.ENTER_FRAME, update);
trace("GATE ", , );
if (((!(( == null))) && (!(( == null))))){
try {
.gotoAndStop();
} catch(e:Error) {
trace("GATE ERROR GOTO");
};
};
if ( != null){
.call(null);
};
.removeChild(this);
}
function frame1(){
stop();
}
private function update(_arg1:Event):void{
this.gotoAndStop((this.currentFrame + 1));
if ( == true){
if (this.currentLabel == "open"){
action();
};
} else {
if (this.currentLabel == "close2"){
Global.sound_game.playSound(null, "s_vorota");
action();
};
};
}
function (){
stop();
}
}
}//package com.gamezhero
Section 137
//Global (com.gamezhero.Global)
package com.gamezhero {
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import flash.display.*;
import flash.utils.*;
import org.cove.ape.*;
import com.gamezhero.as3.*;
import com.gamezhero.media.*;
import com.gamezhero.crypto.*;
import com.base64.*;
import flash.net.*;
import com.gamezhero.gamearea.*;
import com.gamezhero.gameForms.*;
public class Global {
public static var freeSpace:Number = 105;
public static var _box2d_gravitation:b2Vec2 = new b2Vec2(0, 0);
public static var sound_interface:SoundFX;
public static var friction:Number = 0.8;
public static var _win:Array;
public static var testLevel:String = "-1";
public static var _game_object_group:Group;
public static var sound_game:SoundFX;
public static var _box2d_phys_scale:Number = 60;
public static var _current_level:Number = 0;
public static var _sound_volume_game:Number = 0.3;
public static var gamezhero_code:Number;
public static var _music_volume_interface:Number = 1;
public static var _framerate:uint = 40;
public static var open_level:Object = new Array();
public static var _admin:Boolean = false;
public static var _box2d_max_mass_kof:Number = 4;
public static var _huy:String = (("хуйпросыштопфи" + String.fromCharCode(34)) + "гура2этоилинет");
public static var _game_height:Number = 600;
public static var _game_stored_data:SharedObject = SharedObject.getLocal("super_top_figures_2-gamezhero.com");
public static var _music_volume_game:Number = 0.4;
public static var _box2d_upper_bound:Number = 1000;
public static var editorGameID:Number = 563;
public static var editorDefaultBorder:String = "eNqVkr1ug0AQhG/NhtiH7SQWZQoXLlI6UkqXlJSu0iGDbKTEIIysUAJ+ibxAntLSZcOPdEAO4f6b2ZndnbwCN2Dmeid/f0T2sI+csx8nHLQvZFqCDAzH/fSP2n0YnDg8RUHsxH5AKKKp42UNxi74CCLMxTebObvYP3vIJnESegjAgSEbcUBkOlmNNc5hikIIu1DnNswL4SOyBY6bONY4TdrQJEtm7xQsWf8gpmGbBzVPUS7roonEa02esGsteSf+WccXGZ8r7InN7XYWuScZi6Z92XYjCxZq93Ta597dTLbt40fdppaOrmrxKN2UlWwe3wKvetZyLbKIWpK+FR+TLlVXLSXyCMKzw204qgJhM01VYDBfLr+QbIcsqHpLq69w6y2rz1/qaA5U0HkzrYXLHaCD//2yqcoPnTxUIV/1KP7Jc+jE/wXnPcyS";
public static var _max_live:Number = 5;
public static var restitution:Number = 0.05;
public static var _bonus_info:String = "0";
public static var _max_level:Number = 25;
public static var _box2d_time_step:Number = (1 / _framerate);
public static var _box2d_lower_bound:Number = -1000;
public static var _game_width_2:Number = (_game_width / 2);
public static var _box2d_world:b2World;
public static var _score:Array = new Array();
public static var _levels:Array = new Array();
public static var _box2d_iterations:int = 6;
public static var pauseLanguage:Object = new Object();
public static var _sound_volume_interface:Number = 0.5;
public static var _key:Array;
public static var _block_gallery:Object = new Object();
public static var previewLevel:String = "-1";
public static var music_interface:Music;
public static var _rander:Boolean = false;
public static var editorDefaultBlocks:String = "eNqFzjEOgjAYBeD+9A/KX1E00dnB0dHBQ3gCtwYIaaItgYbIpnIKL+AxrU3dZXjb915eIoAEpDK3qiv5ompkp2xPwG/IeI8AQhZXpaO0KFtVaS5yczENDu7FEtvXJa4ntWkJlo2x0iqj8XFAnxgHC0DAeESAyGI/NY2Iz0J1jpuMYBXssPtjP3dvKViG+NyPzUKgZ/9g6+lpnDrn3v7D8ae/BWMvGw==";
public static var _language:String;
public static var previewLevelID:String = "-1";
public static var _keyFlags = new Object();
public static var _game_height_2:Number = (_game_height / 2);
public static var _urls:Array = new Array();
public static var _live:Number = 0;
public static var music_game:Music;
public static var _game:MovieClip;
public static var _keys:Object = new Object();
public static var _game_width:Number = 600;
public static var _iteratioins:Number = (1000 / _framerate);
public static var release_data:Date = new Date(Date.UTC(2008, 6, 4, 0, 0, 0, 0));
public static var density:Number = 0.1;
public static var _max_powers:Number = 3;
public static function iniLevel():void{
var _local1:uint;
var _local2:uint;
var _local3:uint;
var _local4:String;
trace("iniLevel ", _current_level);
switch (_current_level){
case 0:
_local3 = 1;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:10, time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:3, w:null, h:null};
_local4 = "eNqNkrFOwkAcxnu9f7W0R1HSkYEBoyMJjiSayODQkYlB0wCBJkoJNEQm09KXcHJzMnF3wcUXcHXyAYwvQFJbmt61EK7cdGl/39133/8rNJCiItXs3VsjXHDm4z6gotl1rFlfLPb6U2swEg/H9lRB+AF0PAe/fjyxHdOx7BEIqDSYmDPLmStIAYGEH9SufWdPYBE8CUhBAhZBBvFAlCNAJ7AwNAiCwEBHVFFOwxKFmwT8lhb+T0jIkoiS7jhGw3NfdtGY0n49pOsbLjZojdEVAmcadCgZylZZmL1vYcRGOrvOLadf10weJy3/1OH111uFSB+leLfrBpfk3MBQr52fCkvbbxHoJedKF6vnk8/l73doiMQ7nm7h0DHB1kDlLFrjoChdFLeqgXse20lSITQpjtAb0iuiWXEMRTDsC0fuGS1d5ljKJuS1U3PI1aKMNgqCdZWXmlsloG8MnFdXD695XrelTLd1VpCcxqZ0tcSUsZ+Uvccb8v2JIiiAD7C8DvWxJUSLhLurRrQ0aXnz8+q/355u1/8f3FDnFA==";
_levels[_local3]["block"] = _local4;
break;
case 1:
_local3 = 2;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:((10 * 2) * _local3), time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:4, w:null, h:null};
_local4 = "eNrjtGXk4mbkTs7PyS9iaf4/k4E3JbU4Mz2PiTcxuSSzLJWJOzElNzOPmb0gv5iLUbAovySxJDM/j4WBuYJFhLmSpcWAkT+9KLEss6SSi5GHhYGPhYGRs6SyIJWFkZGLkQFsJBMTCxMbMwcXIxfL////fXhYRPhYmn0YBeAahFg4sClm4GGx4WNpcYGrZAGqZMVh7DIelsYCDNV4HNFiwAdyPbJqZmyqo4BKZfhYNOAqgdr/ABXz4VDc7IPhCjy+swErZN3/njvD49J6GT7WA/wQFlCbEA4bGnmIswESKk0hxKkG+dOFjyUF4iD7P/NVj+5/exvoIB4IC1fYM0D0NZdArGCBRChepSooSrG6ptEEnEwaFSDOgYUKHzykcEUuA1hfUwbEClBcQWzBp5gFXTEHHtdDVbM6YHMSnngA6w3Bo5cVT1p1gQcFLNQY8eQDBT4WEfTkyogjzpuYsSjmwJO2RaAJBFuKxeOFZhUytILcl0HYM0wgxaz7o44EibY+vAYM3nqXM0Bwlo/VoQDCQkn+XNh0O4TVbN6hfXELSLe9MRCYAHXXOxCpe/9GOxEBrwugJMIB1Fd+cCYQzELRx4lNn/3WQ6Wz3zIwAG2tOZQGBOlA3ZXMYPvxFWQwN3cWq562PgLSvR/m5lIsPkYKXGYWZpjdczbG39zz4xPIx3YwuxN7sPkYAOAOMYE=";
_levels[_local3]["block"] = _local4;
break;
case 2:
_local3 = 3;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:((10 * 2) * _local3), time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:5, w:null, h:null};
_local4 = "eNrjNGbk4mbkTs7PyS9iaf4/k4E/vSixLLOkkouRuYKFgbmShYGRNyW1ODM9j4m9IL+Yi1GwKL8ksSQzP4+FgYVFhI2lxYCRNzG5JLMslYmzpLIglYWROzElNzOPmZGLkQFsJBMXIwsLAxvQJA4mLi5GHpb////7gPU2+zDyMQmwcAhhKmaBKQbaYgO0xQWskhWfSqCxy1hYGgvgqhkJqAY6osUA7AOQamYsqoGK/sA0RAFVy7CxaIAV8+EzGqiy2QfuCnTfse5/z53hcWm9DBvrAX4IC9WvNmBtQgRsaOTBaQOWUGkKwe0e+z/zVY/uf3sb6B4eCAvZyy5sLCnYw54FKUoZICqbS4hXqoLdNbAwYYOHE0xjowk40TQqYI9cUFyhWgNU3JRBimIW7E5ywOkkqF9I1wiJFbDeEMJBBk2rLrg9j5ZWoVlBgY1FhCj1wIhuYoYpxkwgOBMsNKWLYPUCHn0QDzWr4NKKzX0ZuDzDar9p6U//HZGXQfb8W2L6uZGPkYMZpI/VflLsK+krJfzAqKh3NgYCEzZWh4jPYBYjH7MAC5cQEyMAV9vvdQ==";
_levels[_local3]["block"] = _local4;
break;
case 3:
_local3 = 4;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:((10 * 2) * _local3), time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:1, w:null, h:null};
_local4 = "eNqdkrFPwkAUxnvtO4UrFCUsJgwkYqIbgw4mJDAwODA4MLERQGiilEBDZGzhnyAObq4OTg4GE6MuTq7ubsbRhYh3bSlK7wjxpkvu99373ntf+AARFamV2pneUsJmv10HFK1UTb1Xl2ONTqWnm32ClHOQlD5IaL1tdAkKQYLAMLPZMcyKqRst+qBWjVOjA4PpSIrW6l290ZIRQZIiQwjkNSaRCMUinnhQ1GA6nRbRhiOJz2A8h8GFs7RSQaPSBRIFSKvtovTfq0VaCdDDDGuB70Kb0/R54gmSBHY1KC/CocDXg6JrJIDGXRSPP9Xm0et1kuD7mHvze81yWg1WsCKCCkHULomn4k0b5yaXO4/jjzfqJ+LevJYLBGqcKrMtgb9SRg7MJd4X0LR4o/5MiD8nPzZWSgNrXxQFtqvfIbObSwwFYBDDOC+wxHrhCvEqwhJ/K4g7MtY6L6uIl1UrRSDB/z3E423F4cvCgAgCy5L+L1165m+1fuwmp44swxYof+OO852nE3acOOLcxeFD+nl7j+m+30dxxdMhsQ7n+7Jzo+rbuy9oHLPl2jejF6r+ARhE9Jk=";
_levels[_local3]["block"] = _local4;
break;
case 4:
_local3 = 5;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:((10 * 2) * _local3), time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:1, w:null, h:null};
_local4 = "eNrjtGTk4mbkTkzJzcxj5iypLEhlYeRNTC7JLEtl4k8vSizLLKnkYmSuYGFgrmRhYGQvyC/mYuRgEeFiaTEQLMovSSzJzM8DSnAn5+fkF7E0/5/JwJuSWpyZnsfEyMXIwMzEwsHCxAbSwsAFVMYD1dzsw8fy//9/H0YBsBYhmGJWhGIWiGIboE0ufECtaCoZMVQ2FkCUAs1dhq6aGUN1iwHIC9hdwYdQDZT+A9Ugw8WiwccSha6YA8PoZh+IQzCUCkGUsu5/z53hcWm9DBfrAX4IC+5XGyxexbShkQeHDZhKm0Jwhwo0tFnt/8xXPbr/7W2ge3ggLKiXXbhYUrDYAoslFniUglQ2l+BxO5pSFdwxCg8TLng4wZNNowIfS6MJrqQAiivkRNaUgcdBGIpZcCtmdcDhJJBfsGpkJUZjCPZYYcQaZCCvY0urjNjSaqMCF4sIdtM5sKlvYgarj8KZQHAkWFBKJ0ufCsx9xPmnKQOLPUxMLCIszJBgZtJRYLXg6eJideAKe5JjEBAE1sfqkKfBAAJA8Xp7YxDgY3UIa7ouz//MA2hW21orIWY0o/b/4bRt2q0tBdTCc0T1eAXXY6hRZVNnAsEskFFuaSDAx2p/M3ZVclWIH5pRrBCjEJmQ1aHAFaa5yhHMAmretszXoW4BPOng0V3qBLYQpNsVqvtAWMpivS8XDiB0AwAqMxmf";
_levels[_local3]["block"] = _local4;
break;
case 5:
_local3 = 6;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:((10 * 2) * _local3), time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:1, w:null, h:null};
_local4 = "eNqVkztLw1AUgHNzT6LePqylo0gHFR+L4AOEilE6OHQsgm7FvgLalDaKFaG26Z+oi4Pg6uAP0EUnRXBwcXcTcRfrSVI1qbm1ninD993zzMAiYT4SSG3p6l5GHMyVUnuqXmGE7oNAKyCQvqJWZmSopOkpXdUKIABEZGjMEN+Wtq2VwGg1BV8qvaMW6IBeKWaABNKZsporiIQRQRQZARBkfKifEQatVithPWAkiN9ygzQE/WE3DDaMqWKYKu4gJW8Snz0DqBU7aMKlsYjGjNXGD007aMTebWET6WEZJhxw0PtpJI1ERxXO7qTLV19+7eF8WJauBu0vZ68xhxbmZqj5u2T4NZV6sls9y+8nY9eXL09Yj9/++mk5LkOaN3v4Xqlgk4beOzrKq+ZrJvL3nGyxNmcdTS3KW665K2cahOv5/8DAK0nhlNTu5f+ivRXLTf49svatxrs177rV9q8QlSHSE4+LrlM37D4QzsG2Lz3CaYHr2Q0Zo3z1d315z2ao+9yl5dO3zPiNeISj36CzGHOypFSVW4w70/54bgbFELAw9bSV6cn7palDtKsrTYxj017NYuT+tq/WF9hu8TGLk59H7yDxlbV+0bw1vRFvT8nuzpOTsypmPYgJZpj2mvXVYX8CNqMMAA==";
_levels[_local3]["block"] = _local4;
break;
case 6:
_local3 = 7;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:((10 * 2) * _local3), time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:6, w:null, h:null};
_local4 = "eNrj9GTk4mbkTUwuySxLZeJPL0osyyyp5GJkrmBhYK5kYWBkL8gv5mIULMovSSzJzM9jYWBhEWFjaTFg5E5Myc3MY+ZOzs/JL2Jp/j+TgbOksiCVhZE3JbU4Mz2PiZGLkYGJiYuRhYWBDWgQBxcjF8v///99wAY0+zDyMPOBtQmwcAihKmaBKAZaZQO0ygVJJSt2lUBjl7GwNBagqWbEqRroiBYDsDcQqpnRVAOV/YFoiAKqlmFj0YApNhZg4cNuNFBlsw+aK5B9x7r/PXeGx6X1MmysB/ghLGS/2iDZIITThkYePDZghEpTCD732P+Zr3p0/9vbQPfwQFgIL7uwsaTgCnsWeJQyQFQ2lxCvVAWXa2BhwgYPJ4jGRhNwomlUwBW5oLhCtgaouCmDFMUsuJzkgMNJUL+QrhESK2C9IYSDDJpWXfB5HiWtQrOCAhuLCFHqgRHdxIyqGDWB4Eiw0JQugsMLOPVBPNSsglsrpvsysHqGGTW5sx4Iq2zrvzJxBzDoI/6cAYKzbKwODQ5gFiMPE1D3v2czQTmXGa6bdf+1bxk+zQvEQa6896tlj7oezKzmkOkaog9AZv2cCQSzgGYFQ1hIZvGjmHXwcpPajnxJkFm/OVr1HytDzHIIqzv750u0GdCsentjIDABmfUGn7uQfOUQVjHrWDDrCpBuB7ivHEHmGON0ycaDf/YrrDgIcsm/I4tjp/fCzKp5u7hntx7QLD9hmEsSa9BdwordJQfSKnbvVdkIlHfwhYdJzaE0IEjHoZvVft2OwNetcjtBLnk/d5MuXzjUJWm1H1IT3E8BzWq4DzMrsYABBAi7ZH//yeUPbjAwgHTfA9sPcslB9NjBodv+FGf/1djfTEDdsZ9hoVDHitDdtHnmGQEWJhx2H1LXttk+aw5Qd+0/mN11LIgwxNQNDAWHwElPtbRBofBf2viP9WRYKNTvy3/ZLsECMgHsd6BZsQ8QoYDFrP19xzmXmSg+Bpv10ehH+0uYWeUlemsCK0G++gZzV+wHbGYBAI6evoo=";
_levels[_local3]["block"] = _local4;
break;
case 7:
_local3 = 8;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:((10 * 2) * _local3), time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:1, w:null, h:null};
_local4 = "eNqVk11IU2Ecxs/ZeXfU4/xoehEkJaEVFGFkUShskKCmBqGIrJuW29zSnMzhF+a+DNOgkKhYF1pEEkmKJCgpTQtpmGlYiWJEWjd9ihVppK7/ez7mNj1L36tz8by/93me//+EZZFMOBmhLjQbKrSSqCKTusJgrmZIqgoRVDUiyJAyYzlDbjEZzWqzwViKCIRiaVSfRIarNecMpVR4obHEaEIOj5MIM1eXaREZodGWG4pKJSRDEhIJQyJE0AAKZUgGeTyebBbgyCZlVCR7LRqFyv3FiBPDU6nwVJqPUrq+ErBtCNnKAtSkqBpM1CexMVbVVIAaZEvcBRWo42i0x0ccuT4alI7sABe+6aSuuXB9xnhnHC0diOK+fLOm+lyTi75gkwV5YU0r9rxgfhRLrYlDrm/T4EfGfa1GTqORRqx75B0pwSkd5o1LE8TcCJ3Q3p64i7Zkdmls8WLDxbPyfQbEdv1mxEjMklLEEp9l8xe5qbB38/5fGb+racHC++0q/yvE0yh2Q3oYtJ3yF/sviMjC8pseKxJB9B4XyJEgfnWtP33wMNy6S5X51h2nJ+hqqN707CA+tFRpndXBKSJlEpEhff9FZSpP0VLFS1t7j9w4x7EUGkv5U4srE2ECgQ+wTNMsVYylqNdum1uk7Dix5491f8IExxrIt/a3TvW0Y19vR+C8AFbOlBPOTTEWEBInon8eAl8PmlKqLmtmeV/XV2JWtEYX8hKwrxHW4VoWxbGoux9yF0anYBHvtz6ucHfX8L50lozi6SdHgFVciIMlY9ZYYEapnFplKaxncsbn77wCJXHp2DUbnch3r6srWFz5+BdnHBJ8VbrZtGIs16MTzV9Hun7gvpaz3hBDtDDHpoTZ9JUCzBpmpwesYk1QlpKGXEcL5NBXW8NeiSy9ne9rMqm573ZMAygqn3szjgRlDYRuvWruP2uBvvpwc2MqnnVj3+73IS0twFKXCHPkHbIs+0OnLhoxfn1dxKiaWcjIIIwtEfqydOlcjVU4Y6+wXzxVjKWM6v5cdyAqFzLOHFf9Hm7MEPbr/OCovuMKKGrdXl/jPr5crcZAX7fwHO8tgFKi45Qsy9U5QKcoa3diXy1C97Xu1f1aL+PkyS8XtveqoK+ZXZ+qXi/PC/tVXvNu8HAW8jaOfXX4/Y9OjvUP5TP2fw==";
_levels[_local3]["block"] = _local4;
break;
case 8:
_local3 = 9;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:((10 * 2) * _local3), time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:1, w:null, h:null};
_local4 = "eNrjtGXk4mbkLKksSGVh5E1MLsksS2XiTkzJzcxj5k8vSizLLKnkYmSuYGFgrmRhYOROzs/JL2Jp/j+TgTcltTgzPY+JvSC/mIuRg0WEi6XFQLAovySxJDM/D6iWkYuRgYWDiYmFmQ0kz8AFFOMBa+VjEoDqaPYRYvn//78PRDErsmIWVMU2QONdhGDGMuJR2VgAUQo0dxlENTMe1S0GIHcju4IPWTVQ+A+aBhkuFg0hligs/kMzutkH4hCoUiGYUtb977kzPC6tl+FiPcAPYWH41UYIawiie5UHxQZ8SptC0EMFHtqs9n/mqx7d//Y20D08EBaal124WFLgtiBiiQUjSkEqm0uwuB2HUhXMGIWHCRc8nDCSTaOCEEujCXpSAMUVtkTWlIHFQTgVs2AqZnUg4CSQX5A0spKmMQQ5VhgJBBnI64i0yog/rTYqcLGIIJvOgV99EzNYfRRGAiGQYEEpnSx9KjD3EeefpgxkeySYmFmYIMHMzjND/uxFTi5WBzaj6T3h9+RA+v49m8nHLACWr3ecCQSzwImT1SGsU1ZzavBvdFMOsAUdrVpT7wF0LdvbfDalwgw0UyL+nAGCs1xwFsisxl7/L4FLIWbJI1zE+s0//K/ieaBadjf+LXb94kCz2tZawYyqbmEAAaCDLICGJDzIk54gy45uyAG2zyJnVGvLQQ7y+S598MBqVEOSv8Dck8II9p8Q6wG3YHFBQ15FWHTDjWKv7kuziioDGsW6V1iK1+06yG/bPu6GmZVzEBJCQNa9NBAAOetd3l/jyaXoZjmwTngg7Z0dAPLbEh1fXt69aGaVW0A8x+pQ9gPMArlrUr/gctcCRkYAYEBPCQ==";
_levels[_local3]["block"] = _local4;
break;
case 9:
_local3 = 10;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:((10 * 2) * _local3), time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:1, w:null, h:null};
_local4 = "eNrjtGXk4mbkTUwuySxLZeJNSS3OTM9j4k8vSizLLKnkYmSuYGFgrmRhYOROTMnNzGPmLKksSGVhZC/IL+ZiZGMR4WBpMRAsyi9JLMnMzwMpS87PyS9iaf4/k4GRi5GBiYmJBaSOgQMox8XMw8LBB9XW7CPA8v//fx9GIWyKWcCKWcGKbYB2uAgA9eNRyQhW2VgAUQo0dxk+1cxg1S0GIMfjcwVQ5g9YAx9EgwwHi4YASxQ+oyH+a/aBOASLUtb977kzPC6tl+FgPcAPYYE1CsH8akPAqxAbGnlw2oCutCkEX6iw2v+Zr3p0/9vbQPfwQFhIYd/iwsGSgt0WFliUIlQ2l2B3Owtq7IOVqmBVCg8TDng4IcUvMNk0KgiwNJpgsQMUVzBr4KqbMrA7CFkxPEU2sWB3kgN2JyH8QqJGRHg1heBMqyyofgGpBnmdiLQKzQoKHCwi+HICXD00kTCD1WNLsPbYEywrPKWTpU8F5j7i/NOUgWEPMxMzUnJn4mGR5wOHetHemUAwC5joOQRY7Q99mi4yxWEVUF/j2TNpWPVJQ/Rl/EsDAQ5Wh3qHM0BwVoD1QFjtQ1bb1xtBtv57NhOf7oo/YD3gTADUV3QqLOhqMKY+Vvt1OwJft8od4GC1/zG5ZE9W3R+wKVxQtx+EuJ3VoczcGAQEWB0SnnZFd95QA5m1cFExVjfIQnSX2kDcwOpQ3QL1gUNYZ0+yROh7fOEG1V1gC7O7ugkcEkB/pFXwpfzJ/QDTDQD14D1J";
_levels[_local3]["block"] = _local4;
break;
case 10:
_local3 = 11;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:((10 * 2) * _local3), time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:1, w:null, h:null};
_local4 = "eNrjtGTk4mbkTUwuySxLZeJNSS3OTM9j4k8vSizLLKnkYmSuYGFgrmRhYOROTMnNzGPmLKksSGVhZC/IL+ZiZGMR4WBpMRAsyi9JLMnMzwMpS87PyS9iaf4/k4GRi5GBiYmJBaSOgQMox8XMw8LBB9XW7CPA8v//fx9GIWyKWcCKWcGKbYB2uAgA9eNRyQhW2VgAUQo0dxk+1cxg1S0GIMfjcwVQ5g9YAx9EgwwHi4YASxQ+oyH+a/aBOASLUtb977kzPC6tl+FgPcAPYYE1CsH8akPAqxAbGnlw2oCutCkEX6iw2v+Zr3p0/9vbQPfwQFhIYd/iwsGSgt0WFliUIlQ2l2B3Owtq7IOVqmBVCg8TDng4IcUvMNk0KgiwNJpgsQMUVzBr4KqbMrA7CFkxPEU2sWB3kgN2JyH8QqJGRHg1heBMqyyofgGpBnmdiLQKzQoKHCwi+HICXD00kTCD1WNLsPbYEywrPKWTpU8F5j7i/NOUgWEPMxMzUnJn4mER4QOHep7MGSA4C06OrAfS6m8KPDgyH6Rv28fdSPpYDzCltvQHmTZwsDpw6b072JTbDDZFDmJKWV8aCAAlyw+AzRNg3b+g2rn03QFQVDdtnnkGnxvKuo1BAOqGsLojXdp6M7G4wf7/jC7Tqud3gdZwX5GYHizfjeyGPDm4Gw7OBIJZAqwOYXX1J97l8sDcAAAGwCJV";
_levels[_local3]["block"] = _local4;
break;
case 11:
_local3 = 12;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:((10 * 2) * _local3), time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:1, w:null, h:null};
_local4 = "eNrjtGXk4mbkTUwuySxLZeJNSS3OTM9j4k8vSizLLKnkYmSuYGFgrmRhYOROTMnNzGPmLKksSGVhZC/IL+ZiZGMR4WBpMRAsyi9JLMnMzwMpS87PyS9iaf4/k4GRi5GBiYmJBaSOgQMox8XMw8LBB9XW7CPA8v//fx9GIWyKWcCKWcGKbYB2uAgA9eNRyQhW2VgAUQo0dxk+1cxg1S0GIMfjcwVQ5g9YAx9EgwwHi4YASxQ+oyH+a/aBOASLUtb977kzPC6tl+FgPcAPYYE1CsH8akPAqxAbGnlw2oCutCkEX6iw2v+Zr3p0/9vbQPfwQFhIYd/iwsGSgt0WFliUIlQ2l2B3Owtq7IOVqmBVCg8TDng4IcUvMNk0KgiwNJpgsQMUVzBr4KqbMrA7CFkxPEU2sWB3kgN2JyH8QqJGRHg1heBMqyyofgGpBnmdiLQKzQoKHCwi+HICXD00kTCD1WNLsPbYEywrPKWTpU8F5j7i/NOUgWEPMxMzUnJn4mER4QOHeu63NBAAJ0dWh7T69s03/W+D9G37uBtJH+sBptSW/iDTBg5WBy69dwebcpvBpshBTCmrg5jC6lB+cCYQzBJgtdfx/2dwgAEU1U2bZ57B54ayamMQAOqudzgDBGcFWA+ENfzQsfY7hMUl9v9ndJlWPb8LVM59RWJ6sHw3skty/4BNQHaJQ1h5iugm0QpMl7Daf9LlC2OR6AUqZyo7scUyQhjZrDwNBhAAShY4wsxKqzl40vgXKE81/d9/H9ms/S9/P8/pdm7lYLX/a1/zdmJGJUoITYb5scAJHFYgP9aHf/49TQHmLgD0rUz/";
_levels[_local3]["block"] = _local4;
break;
case 12:
_local3 = 13;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:((10 * 2) * _local3), time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:1, w:null, h:null};
_local4 = "eNrjtGfk4mbkTUwuySxLZeJNSS3OTM9j4k8vSizLLKnkYmSuYGFgrmRhYOROTMnNzGPmLKksSGVhZC/IL+ZiZGMR4WBpMRAsyi9JLMnMzwMpS87PyS9iaf4/k4GRi5GBiYmJBaSOgQMox8XMw8LBB9XW7CPA8v//fx9GIWyKWcCKWcGKbYB2uAgA9eNRyQhW2VgAUQo0dxk+1cxg1S0GIMfjcwVQ5g9YAx9EgwwHi4YASxQ+oyH+a/aBOASLUtb977kzPC6tl+FgPcAPYYE1CsH8akPAqxAbGnlw2oCutCkEX6iw2v+Zr3p0/9vbQPfwQFhIYd/iwsGSgt0WFliUIlQ2l2B3Owtq7IOVqmBVCg8TDng4IcUvMNk0KgiwNJpgsQMUVzBr4KqbMrA7CFkxPEU2sWB3kgN2JyH8QqJGRHg1heBMqyyofgGpBnmdiLQKzQoKHCwi+HICXD00kTCD1WNLsPbYEywrPKWTpU8F5j7i/NOUgWEPMxMzJMkwCCT5Xvq4noPVgcOx09z72FJGLiYeFgmIvkygcL3rTCCYJcDqEJb44+iSOjmIKTORTXFg/CT/hUXzBVA5V13XzV6BuwhTWB3y2NJAAGSWG5glwHogrWDl3E0eZmCzNm1CNst+3Y7A161yezhY7f/a17ydmFECNosLYlbREQYQAJpVfgYEzgqw7l+18lebqNNMoFlta62Qjdr/9/M214WnDgCNmrOGw1Dt5QywURwQo6qcYM4qDYR68UBYW+3EiK4LQKOaNs88g+KsTx9X/n6e0wM0a0rVQ/d1ImXIZqV1wJxV6gX1okNYHd+pcwcMsJi1/+qh/hiNr0B3ObBeAhmbCzaLFerFs2DXACWLzsGDq2a10P+7G0BmnV5aieKuAlD8rRMDuutz8PdzN8XawWYxQc06CTMrTw5mVlhRIvvK5CmgoP/3bCYjAPWdd9Y=";
_levels[_local3]["block"] = _local4;
break;
case 13:
_local3 = 14;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:((10 * 2) * _local3), time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:1, w:null, h:null};
_local4 = "eNrj9GTk4mbkTUktzkzPY+IsqSxIZWHkTkzJzcxj5k1MLsksS2XiTy9KLMssqeRiZK5gYWCuZGFg5E7Oz8kvYmn+P5OBvSC/mIuRi0WEh6XFQLAovySxJDM/D6iGkYuRgYmJhYOFmY2JA6SCgQcoygfWJADV0ewjxPL//38fmGJGZMUsyIobC4Dmu4BVL8NqNIrqZh+I6ijCSht5iFbaFILpBlaYalb7P/NVj+5/e5uH9QAPhIWst8WFhyUFyRa4PhYWtGABqWwuEcIWgliVqiAphYcf6wF+7gyPS+tleFj3v4ew0IK+UUGIpdEEM+CBnvuDGVFNGVgdhEMxCzbFrA54nQTyC4pGVlI0hqDGCiPeIAN5HWeqA3kJJX0o8LCI4El36OqbmMHqo7AkkPcwb8AiBz3JkqVPBeY+4vzTlIFqjwALE/bkzuoQ/OcMEJzlYXVoeJAGAkKs9usnfhDcJ/WXCN1QPSDdDmBzhFgPhFU5hn8V0oHpZoLpZt2/dcOyn4dSl4H8+E+z1vB9J4pZjU0MIAA0y/nnTCCYBXSJbRXbOxujOzCz+OFm2a+f+WzJ3lUNILP+swXPXMyF6i4HmLt8b0LNckirvT4583I+zCxOhLtWpHS+VgmeADYr2y7AdCuKWc6XjUEAZNYzaAjtN/LQcw7Z/xiRWOBmzbIKyc3Y8gts1lXGGpGpKGZFPID50Rfmx/0Hv3Mf57+hh4hYHKENLHqB+poUYf4Jq5P8LecxFayPmYlFGKiPGVIscK6SE+wzsQOqZpaVzDrXtgxoSuPZM2mwspDVoeYg3JQW2dNLrNZhmuLAfuZ0oOE7UKiwpjDnSbxKQjIFaMIhWAgnVoD9BIr51iP1vN5WWFzEanvFL3HuU6BZ7O+eXjHdsgzFrMRCsGtAZlWDwxoUW9WdFfuO+WNzF1v/Uh2HOUDVbBY3J/f8zsPqLlC1w2q/sfWqPUf5AZgp8ggXcUhHeZyS/ws0hZU72CB44QWUeMr4B/MdsCaE+i7h7vH/Nm1LMc1yYH7+9++mZcCQcuDkY1vAxdOCYlYlMyz9VPyH+S7hvtxEg8iLWMxiW3HLV8TxMTCk2GbE1x95G45qFgss/WR8hMWgW7WkWfr/B1j8yPrj4qvw4+dAoe68Uczu8gRUP36B5Xy4WQfcZs79ZG3QBEuLkvB0fYDtQH3bFmZQCmRrmCCTkVmIYlbRcZgfi25D/Wh/mHeH8fELwKIeAMsK7ec=";
_levels[_local3]["block"] = _local4;
break;
case 14:
_local3 = 15;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:((10 * 2) * _local3), time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:1, w:null, h:null};
_local4 = "eNqdlG1IU1EYx3d3z53Xu02XLogwG2UQ1QfDzChxq8wM15uJSAQ5nHMLdTbXmPZiuxpoFvZCxLTwQ+mHPvT2rahmS4uwJAyK1AwUhTIxEdFMW+fcl3mt47LOp8Pu//k9/+flLDyDYJSE2pTntLny5WpzfqmtoFgeWeAwuWzOMoYg3UBGlgEZoTSZi2zFZLizrCQfEGEl9lKGUAAtDariFznsTpPTZi9Gsjx7od0BKgNeGcEQMrlcDpBORsNvDKkCdIQQVmnUgEAgYCSicGLAiSlOnAxzpGpgfAglwSk9JbwUcptDqUlOXRWPzIdyAb9McwERfEAMDVZrwMFQaL6+SiNvBCOlfCNKa3rnnRiaaonkb1xglFhr8l9K5TN4VPNm+F3KZoXqCqWfblzV5hvuhn5U/E3S+6pUGpjxWYA40lllpRPvHcydPieNw0qDPaGDfZLMF66NR6cBng2YHGhWYpqgmrXiDUnFwY1kAd6SAW9ptpZ/DJztF5s1766CubUgNSp9AbsqPAUdDbShXkJQLywJyelxC6vHLywV3PT/iosT/S2sHtY6b54WelPP0PvYBJoygM9ZE0vq6whGrgIMF2eGv1boE9DRUL57Ta6Z9iNRuFmFaaO37i+sg3LFmjeZ7f7hWUiQwG04pb+dciaQ0erFWqllH+aOvoUlg2oteWXZZiklZ4ynwNvXV/C8hizPx8zouyc6cI4Un3ZvMd7rhSyFyUAendLNcWTgCIj13QtPvYZqya4Y7246/U7CIuWk8KqmHmROxJ+lKb3/cMnNM6UvOJaKZ9lI0VfFDpFlOWbWNHd+gCz21UiShCX8u8BotVBVvxhdRgSd1K67dWnp+T+jYV/urr0+uV4F5bTtaX5XKsuxAM+yTsrQQSyFBR0NZci+tq1andiLYRmUTf0HJjq64PvqWT3urzu0VurLPcO5QVXtFOZvsLjK+1imNFRVQk+ETiAnpBidXbPiZFs1wDmhafuyL6fKoZzSDTUc375dWpX7J1cLYjFCVb5nKY1P1PtkGJbev6tihrrxDcojp9oG945e4FjLeZbrlMhyU2K30y5fbUyMzcXM3Xcup+b+4qeDiBUYczAXB6Ssoh/i5Nzi5AxpDXRf3sa3ONbzgQOW1t4WxJro0O5JeindR8cjcXLOdHG3H3c6VubGViGW12shfgEIotf1";
_levels[_local3]["block"] = _local4;
break;
case 15:
_local3 = 16;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:((10 * 2) * _local3), time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:1, w:null, h:null};
_local4 = "eNrjdGfk4mZkL8gv5mIULMovSSzJzM9jYWCuYBFhrmRpMWDkTy9KLMssqeRiZGFhYGNhYORNSS3OTM9j4k7Oz8kvYmn+P5OBNzG5JLMslYmzpLIglYWROzElNzOPmZGLkYGLkYnl////PiwsImwszT6MHHBjuJh4wHr5mARYOITgihlYWGzYWFpc4CpZUFSyCiEbu4yFpbEAj2pGITRHtBiwgfyEXTUzQnUUUKkMG4sGXCVQ+x8UxXwoipt98LgCw3c2YIWs+99zZ3hcWi/DxnqAH8JC0SaEYkMjD3E2QEKlKYQ41SB/urCxpEAcZP9nvurR/W9vAx3EA2HhCnsGiL7mEogVLOgRikWpCg6lSK5pNAEnk0YFiHNgocIGDylckcsA1teUAbECFFfotmAqZsGtmAPD9VDVrA74nYQRD2C9IUTpZcVIqy7woMAMNUaMfKDAxiKCO7kyosR5EzNexRwYaVsEmkDwp1gMLzSrkKEV5L4MIj3DeiCsc++nHqYlwOBNm20MBCZsrA71DmeA4Cxy8meG6mYWYBEWYoLrTqtp7tF6uxWou8opDQjSEWkanz6HsEqJzB9BN4D6sicwgADQ1poDCFtZD7DPXzjzeXw9UJx16s2l8cvOQcxauKgYZJYIwqz905j7P3c7HQaaVX4EbtbBmUAwC5pwWNf/EQy+mwwUZ29fevLLmcm4zDoQ1vbUoOkdyF1FCLMugX0GLXN+sqnc1ZdaCEyEc9ZwGKq9boKYte3jbpBZrEjuunTeO1884BbQrMQesM+AZlU5g8MYM4RmgnTLIYdQk2yc8pYQoO6aQ5CQhYcxYd3AWJ1iusX8FVB3CBtMd1kH2Edoups2zzwD0s2O0G1/PPiHbsQKUNblAOlrxuZmLPr237j3nDGw9ybQ1uCX4PAH6i7sQI5VFpN6q3mZh4HiHBdqF20TfoTLLIew9tOFgZ2tQLMaHGA+KAS7xBgaq+wy23p5hD4DxdkUz807Y1iLYRYAO6uSqQ==";
_levels[_local3]["block"] = _local4;
break;
case 16:
_local3 = 17;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:((10 * 2) * _local3), time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:1, w:null, h:null};
_local4 = "eNrjtGfk4mZkL8gv5mIULMovSSzJzM9jYWCuYBFhrmRpMWDkTy9KLMssqeRiZGFhYGNhYORNSS3OTM9j4k7Oz8kvYmn+P5OBNzG5JLMslYmzpLIglYWROzElNzOPmZGLkYGLkYnl////PiwsImwszT6MHHBjuJh4wHr5mARYOITgihlYWGzYWFpc4CpZUFSyCiEbu4yFpbEAj2pGITRHtBiwgfyEXTUzQnUUUKkMG4sGXCVQ+x8UxXwoipt98LgCw3c2YIWs+99zZ3hcWi/DxnqAH8JC0SaEYkMjD3E2QEKlKYQ41SB/urCxpEAcZP9nvurR/W9vAx3EA2HhCnsGiL7mEogVLOgRikWpCg6lSK5pNAEnk0YFiHNgocIGDylckcsA1teUAbECFFfotmAqZsGtmAPD9VDVrA74nYQRD2C9IUTpZcVIqy7woMAMNUaMfKDAxiKCO7kyosR5EzNexRwYaVsEmkDwp1gMLzSrkKEV5L4MIj3D6uDWcfzwN04nYPAWPTYGATZWh/oKBhBATv7MUN3MAiziQkww3QfcJs/2FfZ+ANRdfOQMEJwF6i5onQkEs6B59ODrVrkdge+A4nw3xdq1mfggZu3ePRNkFj/CLAe39lun3MtBZhUxpQFBOlBPtRCYBQ2CVq1fWznPhQPF+f//+L/2hi3ErH/PwGbxIZtVqpn+4nYbyCxGsGuAekp4kdxlP3+5wvzJx3LBZh1MDJqegsusA25dU+866RwA+fE4KIBMgHrK+8EsqFkb/d4J3Z0bDzLr35W0iXwzcPox4ebhI3klTECzKoxhZpW8QvLjAUZ9qfn7yk6xsdof+rjy9/McNbBZTZtnngGZxYTsrolniu5u7ASala0MM6uiGMldDowJjp3m3seAGWYbMOR5vBwwzAIAnw1mUQ==";
_levels[_local3]["block"] = _local4;
break;
case 17:
_local3 = 18;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:((10 * 2) * _local3), time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:1, w:null, h:null};
_local4 = "eNrjtGbk4mbkTUwuySxLZWIvyC/mYmSuYBERLMovSSzJzM9jYWCuZGkxYORNSS3OTM9j4k5Myc3MY+YsqSxIZWHkTy9KLMssqeRiZGFh4GBhYOROzs/JL2Jp/j+TgZGLkYGJCSQjwsby//9/Hw6WZh9GLiYeZj4WDgG4DiE0xTZsIPEWF6hKVphKFgyVjQVgc5chqWbErbrFAOYKoG8gqpnxqJZhY4niYNGAquSDqQSa8AdDcbMPWDHcFRy4zYX4zgaqUAikkHX/e+4Mj0vrZThYD/BDWJhe5SHahqYQjFDBo7rFBWxwCnJos9r/ma96dP/b20AH8UBYWPUBDWwuQYkmFmwRClOqguIarEqBCaXRhIOlUQE5OuGhwgEPKWwagVY0ZaAkA1Bc4bAFpJgFxT24FENdj6qa1YGwk0AaIfHQFIISusTr9UEPCuyh1qgAs0kEPRtgTa5NzOA4F0FPHfjStghqAiGcYptVYF4gWWtTBoqVuDzDzAQOzaL9xiDAxrr/wpK1M7fJc3KwOtQ7zgSCWYxczDxMfCySKMn/37OZWHXf4JQ90O3YA9RdyZQGAlDdKEVK0+aZZ5B1nwTbA9R9P9vf/VlXIFB30ZEzQHAW2W7W/cvatZl4vBw5gFnLMkIgyfcq0KzGs2fSkM06ANYHNGt9sEpwuLEn0KyMP8hmQXKDfUGS76WP68SAyefL7KWPg79fwOKuIwwgwMZqH3lf72KzmzPQrIg/mO6yP/Rx5e/nOWeBkcGyBewwWAgBAEtjQH8=";
_levels[_local3]["block"] = _local4;
break;
case 18:
_local3 = 19;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:((10 * 2) * _local3), time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:1, w:null, h:null};
_local4 = "eNqVVGtIU2EY3jn7zjpu2lL3I0u6gFGBmnaFyjyl0H4YFI4lBtF0zo2a07lkullu09BfFV1k9qObDKkfBhYUkmcWpkR3sYyKouhGF6MI87q+75zvyJlnM/t+HTjP87zv87zv98XsIpQqIs5Q7LBUlZBzym2VSkLuBJp4u81hcFhsZUAmrwb1GUScsaTSUlpGqgxGq6VMHuOoLi8BhLrUbqiyOKqVBAAyGsgIVbHtgM0OfCG/jFASMpJEfzQKEAqF8mjgyyOUZKx8LqDnTTESpoE95Rw6QIP6XIwmBDSQoH15ClAogtLRoZ7YWUO9OkkPM6DrczlhI0ZSCEllj59d1sN+e0FTwVj+KyIPCvocYiIAkUIRoClh3USEwrA9a2ngWSIOjwqqVWbtk/ZkmmKH+K9IRFjCaw4LHaYwHqUKAoOwfqKBcffhaIr5d0uIyM/BqwtLd/bcvOlRRE7Ns0SopJm+dMiVdEPk3Mw107cjIhgvqSZ8QYYEC8JspLwUwcJ/U73msJIzmqGY/PF78NxXUNntx3/Edy2YoCmm7o0JHSRAzgXzoq7/FFJBBfU1W3f/TkhFbIZTnAXb45WhA2tn1Si+b179ErJzRvzwtGA2yZlmr10JjNwqCSDTkytrM4eaInTC4E4YU+2zE5Z+G9Ta8VyspeYDbPd/aL15qQ5phRT5/otKqVZO/xp0FBS7Wpueo2PfIa0P4kxi+L7ajE1fUvKPcVr7t+xcd02qVfAGe2S7h1W96sF0pBXmkb8SbMtGndV8dZTTGiDcmlPStc6A7vSHksYWaU9BFe9SsQoxQ84GN54xo3dt+NnwQCM8x5CXyL8RdHO64enHxVAW1MzPfT+YIVVx93D14LTuNH1NrLgik6gwoGD79SOjp6EK3bHqXHfDmFTF+gfnweidOc2qwVIIdnmkMw/G9S3M+rH9KE1lD1t+dba6AiItOe6oW+io7bh2OdlShLbvNTc7QilHWpQ4FW+H/56IbZ6c2t06VaEz6SF88pMxj385sztbXGcGTiigrHqC+ry1boVUxQFwtkF9I3UyRCdz9wffALl0MucvVIrY1aSwtfrGT3f39AUkDohIDnCWVY1TtSvWNxgeL0RZusW3j8+SidW9zT0w/ghmOREcnp/mtEqzNNRjLfZy4RPtl9RM8TvwzyzLtcJUTa5aovmVFWZJz8L/QUZwYKrd67nYMQSrHt4WtarP7zeJ2PZbOD22syjtxiamG7Ldt8Xp0TP0bO/Ftzy472NXRf8R5Ng5gTeRY6sktf8CWcETRA==";
_levels[_local3]["block"] = _local4;
break;
case 19:
_local3 = 20;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:((10 * 2) * _local3), time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:1, w:null, h:null};
_local4 = "eNrj9GTk4mZkL8gv5mIULMovSSzJzM9jYWCuYBFhrmRpMWDkTy9KLMssqeRiZGFhYGNhYORNSS3OTM9j4k7Oz8kvYmn+P5OBNzG5JLMslYmzpLIglYWROzElNzOPmZGLkYGLkYnl////PiwsImwszT6MHHBjuJh4wHr5mARYOISQFS9jYWksYGNpccGhmhGhOooFaCgepRwoSht5iFMKcUNTCNEGt7iwsaTgUMmKUMkAUdlcQrxSFcL2N5qAA7dRgXBwMYBVNmUQrZKFsPVQlxKjFBKuYNUhhIMAkmxAqonxGjTdKLCxiBCVbJqYcavkwEhgIsQ6t1mFKMUgB2QQ41RW+/UTPwjuk/rLwuoQ/OcMEJxlY3VoeJAGBOk4dAsIMcF0Hwircgz/KqTDAtcD0u0ANoewbnvbKrZ3NkZ3gLobmxhAAKjb+edMIJiFQzcTQrdDWu31yZmX80F2O8Ds9r2JTzc/Qvd+Iw8955D9j4G6nS8bA4EJSPczfP7mRNJ98Dv3cf4bekDdEQ9gLvfF63IOJJeH1Un+lvOYCkx9BkB9TYr49DEihdeZp0p7dXc+AdqaUwKLq9IifG6WRoqrtIrJfCkMyUDd5REwN5dOwBdXyLoTbqx1Oj7JEai7aAfM7moLDN3MUN3MAizcSD52m1tlEyTgCtJ9Bq7bBOwKdN3bPu5G021//P1u8e4ZTSDdR2Auh8Y5uu5/z2aCdMsjp9FC3V2TypYCdWd3wHTXfsDqcqhuNpRQ27XoVaYEKNSOw9JJHQtWl2Pqtl/Qeb31PccjUBp1gtld3YKhGynMWZDTSfPcqoglW1HyZnUDvhgD6QYAf/dXLg==";
_levels[_local3]["block"] = _local4;
break;
case 20:
_local3 = 21;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:((10 * 2) * _local3), time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:1, w:null, h:null};
_local4 = "eNqdlXtIU2EYxnfOvnOaZ9NNGaUhoWBQVFpmEWFtNglDhUhbEZGa87Ium80x0/KyKZhQUZTCDJQuiEW1IoOky9ZFiii6WFZ0pWhJWdofdjXX952zs33HuSV9fx3G+/y+93ne95yFZROMlJhUZixniEiT0Vxg1hsNQCTeDpTiStAwl5CXmAosenMlQwAgooGICNcVletLDKS00LjFaAL1HrsovKDQrLcUkWHmyrIiQEgLdFv1BjHBECKGIIHH48kCQEmD+ixC4sMwpIzVRpAKIInCizsAsJbRoCHdVw0E1YS/eh2A0BClEkGpVTaxUq4HW+6EwQ3pNNCxlZRqpH16j/Pzc5pyybgngY7y60Scrt7MXQHGhjJOaUKQUqwbawobtTWOa8cll5ZmPHTE0pRzkHsKFqWI1dlKuStgBCNjbwksBsGLJQHde6spdeiWAubAanMnpKWixiwd0nqjCEyNCNi6OBoofQNHrkLsnU0cslgSsKRK74IM8hb42YS2UJ/wH1LUX+kEzVAqx/6hyCtT/8B4c0buwHOXptR1b4rhKQmy/oookle7tFVpa4ajZgOfBqnVLOffatWSKvpLavILqLbaROhAteanHZ5WzrTz/JmOn9eKOpDp0ZnV8wabBCzSz1IXVz85oO81ok7UfCfZzzCWymF3H7t8og6xPHSO/SgjYMn9LGdyRqIm1/kOsjS98+FJQSy3PxPK2alr+pSQs49lbV66csF5ASsMY139Lr0pf5oIWWvf8B6zBR5bF+duLe36xbIeEzuVzWN2ye9RWxPze1pGM1ztuZBii/dTxvtQYjqTR+vYm8TuE6Wu6MFud9GrV3x71HYR/k5//K1uWmUgGDGkHD5SHiFWgCnYtF61puXlvdsMnRRb+IQrbvhnDQm726LNKfcRq2vPZEVnTDCWS1t7qq9L8RalMsBv3c5robZOgqv3WRbGZ8VBda2Gmw/+9xJCt2n/lA0VcqgzXeJvrXBhDpxnNmY//HoiFX5ihhTo8STrwHbOfgc5wFiqvpWdqam3LiDWddTDfMgyXcX3bdcB86VNVa/h72LdutiTkmQBi8HnU76o+4PDAllVy/lktzXhO1KHmjkdQ1OqH+jp+AiX7GVnG2LJMI/5ve+ruzNRNqYLvEeDlE3JyzoH26r5lQ5/J+dEaEF0M8caddsRC+B55bfMm7E+C018r6+vRtat12NH4yxSlvEN9jWa8DJparuLY927341Y4dh7cDZxT96yhkzIKuzn34OcASx71cHMZo17uIV9D9xphww1gjmKBe/Bg7zn8ccga8c2NiXEGmKp/Hfjdn+EI6yP/W5Mn7S6pT2A9RcXeRsR";
_levels[_local3]["block"] = _local4;
break;
case 21:
_local3 = 22;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:((10 * 2) * _local3), time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:1, w:null, h:null};
_local4 = "eNrj9GTk4mbkTUktzkzPY+IsqSxIZWHkTkzJzcxj5k1MLsksS2XiTy9KLMssqeRiZK5gYWCuZAGqSM7PyS9iaf4/k4G9IL+Yi5GLpbGAh6XFRbAovySxJDM/j+X////LGBm5GBmYmFg4WJjZmDhAqhh4gLr5wBoFQPymEJAuIRTVrDDVrPZ/5qse3f/2Ng/rAR4IC1lviwsPS4oQSxSmLSw8LAzoKptVhICCUKWMcCsO8HNneFxaL8PDuv89hIWsUYSHpVFBiKXRBEMjyMV/0KwBqm7KQLKFg5BiFmyKWR3wOgnkFxSNrKRoDEENaka8QQbyOlC1D0y1CAsT9mhkdfD9ORMIZvGwOjQ8YgABIdYDYfVb1OtX9cJ0y+HWHfEtDQRAuh+CzRFidQir3DdbfMlmRPDg1O3ncwYIzgJ11xyB2u0QVnur0nSPF8KfOHW7WMJcXuUKt7s6VE172TUidKc1G4MAUHdjI5gF9HdatYNlxOyViPjBqTuxDubveheYy9Pqp60yXh4G0y2IW3fNcbjdTXB/N2y5KRiYAtMtgFt3YyM8xh5CXe6QVueavrsyBqZbCKab1YHx1IFmobwZwIzIcOXv522ui1HMqneC+aPmCDguQKFQL7yaLeoNEaFQ7wF2PUj3Cbg/Gh8GLjiwgAjd0FgD+eMJ2BVCrPubbY8oljMwYPrjAKsp030dj16gP9i/bauKuymImoqfwfwBTc9As9ZOTynoUMzESAvAkuNteY8vZzEwt100vax9OnorilnJ0DTNIgLKCg3aUvJaahiJmfUA193cH6qBl4EOYky6tGPz8W4UQwrMYVFsfAYWsGHl5fdPG7/AdND+/3rvOQotpwHN4v54ITP1XBSKWWUlsGA2PgDPos2Vv6etvwUziw8R4RxGYpGOQilAs1g+ak/9te8LilnQJAM0y/kmPNM0qF74o++B6S77w6/bGHkEaoFm8f88o30hbw+KWdWtsAg03gxLiGGNNr1n2SF+ZIaEFzPErKUXt3jPtDEFqub/3/HLe0oq0KymzTPTIGYVXYJnKEeouw6klUT8WSw+AYtZ29q1mXi8bEF+hIQuqlnbYX4s3wVNWAfSko6yBfNNwTTrAP+/HffnMRnxsNpvEv2/40BfB4pZEX9gRVTRflgxEVav/XLSuzOYZjnw/3tYlBgcAzRrw9vks/vWMqKYVe8AN+sANE0AizuTvuTICqzu+rWw2yIYmEg3aM2c8nfqKxSzsithYV+0D+pHh7AMn0m9U1Qxzdq/If8DbwrTDlA8/vt4ZnrLA9TwOgVN8CmggIo6o3qF7To2z/3/V3657wTQc8VnVy6LjX2HYkj5YVigFx2GJ4Z+5fnTe1qwOKghyffSx3WioAicvfRx8Pfz2B3UGANyUczqC7zZDTBTWBHJYFHe9F7/e3tBZZvE5JI9WfVAU9rWWkENOQgPob3wFJW158TEa8DUCQAc5kkP";
_levels[_local3]["block"] = _local4;
break;
case 22:
_local3 = 23;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:((10 * 2) * _local3), time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:1, w:null, h:null};
_local4 = "eNrjtGTk4mbkLKksSGVh5E1MLsksS2XiTkzJzcxj5k8vSizLLKnkYmSuYGFgrmRhYOROzs/JL2Jp/j+TgTcltTgzPY+JvSC/mIuRg0WEi6XFQLAovySxJDM/D6iWkYuRgYWDiYmFmQ0kz8AFFOMBa+VjEoDqaPYRYvn//78PRDErsmIWVMU2QONdhGDGMuJR2VgAUQo0dxlENTMe1S0GIHcju4IPWTVQ+A+aBhkuFg0hligs/kMzutkH4hCoUiGYUtb977kzPC6tl+FiPcAPYWH41UYIawiie5UHxQZ8SptC0EMFHtqs9n/mqx7d//Y20D08EBaal124WFLgtiBiiQUjSkEqm0uwuB2HUhXMGIWHCRc8nDCSTaOCEEujCXpSAMUVtkTWlIHFQTgVs2AqZnUg4CSQX5A0spKmMQQ5VhgJBBnI64i0yog/rTYqcLGIIJvOgV99EzNYfRRGAiGQYEEpnSx9KjD3Eeefpgxke8SYmFmYIEmGaWLRvqBfj7hYHbj4b17aXp4K0jfzzFM+ZgFwNKS1pYEAUL78GJglxOoQ1v1KYQWjH8QsUbhZ9i8ml+zJqvvFxWr/N8Gx09z7BMishYuKYWZFfIOZVe9sDAJAs9Jqq7+8dS9AN8uBSeq5rFqeLchdSXu/PVozEWhW0+aZZ2BmVXmDTQC568AZIDgrxHogrNHRlEt8Brof9z/3Prb8/dxdQHf9zCjaoHBkNpq76u1hZtU7wMxKqxdbcOb+HkZGAJ6rNGE=";
_levels[_local3]["block"] = _local4;
break;
case 23:
_local3 = 24;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:((10 * 2) * _local3), time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:1, w:null, h:null};
_local4 = "eNrjtGbk4mbkLKksSGVh5E1MLsksS2XiTkzJzcxj5k8vSizLLKnkYmSuYGFgrmRhYOROzs/JL2Jp/j+TgTcltTgzPY+JvSC/mIuRg0WEi6XFQLAovySxJDM/D6iWkYuRgYWDiYmFmQ0kz8AFFOMBa+VjEoDqaPYRYvn//78PRDErsmIWVMU2QONdhGDGMuJR2VgAUQo0dxlENTMe1S0GIHcju4IPWTVQ+A+aBhkuFg0hligs/kMzutkH4hCoUiGYUtb977kzPC6tl+FiPcAPYWH41UYIawiie5UHxQZ8SptC0EMFHtqs9n/mqx7d//Y20D08EBaal124WFLgtiBiiQUjSkEqm0uwuB2HUhXMGIWHCRc8nDCSTaOCEEujCXpSAMUVtkTWlIHFQTgVs2AqZnUg4CSQX5A0spKmMQQ5VhgJBBnI64i0yog/rTYqcLGIIJvOgV99EzNYfRRGAiGQYEEpnSx9KjD3Eeefpgxke0SYmFmYIPb8LxKdN2/PZi5WB+57v9QNkvmB+pr+77/PxywAjoYC15lAMAsoX37aGASEWB3Cks7fvGfwBN2s/d+vSW+vOywCVMu7aUG+9NWtILM2zzwDMQuUkVgd6p3SQECI9UBYa0C+7olADFM+ST/8yqj2GKiWb6MVd7/IfBRTWB1KrcHuAMoXOILdJsS6/+Fdy3mPWQ9j+O7Pzb4X6nUmoOw5oeJyyQ82WKhAzap3OAMEZ4FmRbwBs0C+q83Vkf+siG7WAQ7OFx57PvYBzWKVt6v8n9wPMcsYZlbEN7DPuOAsoLsO6EnKizDZMjICAJBiSG0=";
_levels[_local3]["block"] = _local4;
break;
case 24:
_local3 = 25;
_local3--;
_levels[_local3] = new Object();
_levels[_local3]["level"] = {bonus_score:((10 * 2) * _local3), time_max:25000, time_min:10000, pos:{x:0, y:0, rotation:0}};
_levels[_local3]["bg"] = {skinName:1, w:null, h:null};
_local4 = "eNrj9Gbk4mbkLKksSGVh5E1MLsksS2XiTkzJzcxj5k8vSizLLKnkYmSuYGFgrmRhYOROzs/JL2Jp/j+TgTcltTgzPY+JvSC/mIuRg0WEi6XFQLAovySxJDM/D6iWkYuRgYWDiYmFmQ0kz8AFFOMBa+VjEoDqaPYRYvn//78PRDErsmIWVMU2QONdhGDGMuJR2VgAUQo0dxlENTMe1S0GIHcju4IPWTVQ+A+aBhkuFg0hligs/kMzutkH4hCoUiGYUtb977kzPC6tl+FiPcAPYWH41UYIawiie5UHxQZ8SptC0EMFHtqs9n/mqx7d//Y20D08EBaal124WFLgtiBiiQUjSkEqm0uwuB2HUhXMGIWHCRc8nDCSTaOCEEujCXpSAMUVtkTWlIHFQTgVs2AqZnUg4CSQX5A0spKmMQQ5VhgJBBnI64i0yog/rTYqcLGIIJvOgV99EzNYfRRGAiGQYEEpnSx9KjD3Eeefpgxke+SZmFmYIBnqx58zssvbN3CxOvCWXvry8L0UTB8zJBwKgTINTgwgIMRqP+He6xbTVTPRTEHJNGB9rA55amkgANRd3W0MAkKsDmk1ned6l+YRobusGqwHpLsHaveBtFqToi8RB9F9YP/D5fe2HczrQD6Yo7Llr08luln1MLPg/thfvnzV7dt7zkDMkkUyy0HbqfVdGMisuYpK5XagUG9bawU3qnYmEMwCStdxnAGCs0BPhTVtWaJi9RPdqP1f1mybu7tTGaiWz+PEtgvb5VGNylNEGAV1lUNY5dwqfpEqWNELd9WvxYcOxD3fBHKVxIwOX34mkA//PZsJMytTG+bDSkGwqUAfHv4fzbC7+imGWdt7/e9bJ1/jYrX/97Liyt/PO9HMqvgD9hiyWQ5hc1e8KtdWhxXGMLMOMG2bpbBqBh9QLedXS8vnalZoIV9lD3NX+Q24H+et3XpIIh7dLAcmtfS9NuryQLVcUVcPydsEoJmVtg6WnsqvgVlAPx6I8Pxed+8/xCw5hB+XPJ0Z7TP1JlAt//9Jl8+6caOZlb0QFvZFN+DRmJN8LdzfFsOs5buOTuHXyQGbVWxx02kLmlnlp2DuKroCyyX3Hq2IW8J7DlZwwM1akOR76eOK70C1rPpS8/eVnQKa1Xj2TBrMrKKzMHcV+EH9eCBs4tHNlz4dZWQEABuQ29w=";
_levels[_local3]["block"] = _local4;
break;
};
}
public static function setNextLive():Number{
var _local1:Number;
_local1 = (_live - 1);
if (_local1 <= 0){
return (-1);
};
return (1);
}
public static function getCurrentScore():Number{
return ((_score[_current_level] as Number));
}
public static function clearAll():void{
var _local1:uint;
_score = new Array();
_key = new Array();
_win = new Array();
_live = _max_live;
_local1 = 0;
while (_local1 < _max_level) {
_score.push(0);
_key.push(null);
_win.push(false);
_local1++;
};
}
public static function toAngle(_arg1:Number):Number{
return (((_arg1 * 180) / Math.PI));
}
public static function setNextLevel():Number{
var _local1:Number;
_local1 = (Number(_current_level) + 1);
trace(("setNextLevel " + _local1));
if (_local1 >= _max_level){
return (-1);
};
return (_local1);
}
public static function base64ToByteArray(_arg1):ByteArray{
return (Base64.decodeToByteArray(_arg1));
}
public static function getURL(_arg1:String, _arg2:String="_blank"):void{
var _local3:URLRequest;
_local3 = new URLRequest(_arg1);
navigateToURL(_local3, _arg2);
}
public static function iniSoundAndMusic():void{
if (Global._game_stored_data.data.soundVolumeFlag == 1){
Global.sound_game.(Global._sound_volume_game);
} else {
Global.sound_game.(0);
};
if (Global._game_stored_data.data.musicVolumeFlag == 1){
Global.music_game.
(Global._music_volume_game);
} else {
Global.music_game.
(0);
};
}
public static function fromWorldX(_arg1:Number):Number{
return ((_arg1 * _box2d_phys_scale));
}
public static function getGroundIndex(_arg1:Number):String{
var _local2:String;
trace(("getGroundIndex >> " + _arg1));
_local2 = "E";
if (_arg1 <= 100){
_local2 = "A";
};
if (_arg1 <= 90){
_local2 = "B";
};
if (_arg1 <= 65){
_local2 = "C";
};
if (_arg1 <= 35){
_local2 = "D";
};
if (_arg1 <= 10){
_local2 = "E";
};
return (_local2);
}
public static function clone(_arg1:Object, _arg2:Boolean=false):Object{
var _local3:ByteArray;
var _local4:Object;
_local3 = new ByteArray();
_local3.writeObject(_arg1);
_local3.position = 0;
_local4 = (_local3.readObject() as Object);
return (_local4);
}
public static function toWorldY(_arg1:Number):Number{
return ((_arg1 / _box2d_phys_scale));
}
public static function setLevelScore(_arg1:int=0, _arg2:Number=0, _arg3:Number=1):void{
var _local4:uint;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
trace(((("kofBonus " + _arg2) + " ") + _arg3));
if (_game_stored_data.data["map"] == undefined){
_game_stored_data.data["map"] = new Array();
_local4 = 0;
while (_local4 < _max_level) {
Global._game_stored_data.data["map"][_local4] = {lock:true};
if (_local4 == 0){
Global._game_stored_data.data["map"][_local4].lock = false;
};
_local4++;
};
};
if (_arg2 < _levels[_current_level]["level"].time_min){
_arg2 = _levels[_current_level]["level"].time_min;
};
if (_arg2 > _levels[_current_level]["level"].time_max){
_arg2 = _levels[_current_level]["level"].time_max;
};
_local5 = (1 - ((_arg2 - _levels[_current_level]["level"].time_min) / (_levels[_current_level]["level"].time_max - _levels[_current_level]["level"].time_min)));
_local6 = _arg3;
_local7 = ((_local5 + _local6) / 2);
trace((((">>>>>>>>>> " + _local5) + " ") + _local6), _local7);
_local8 = Math.round((_levels[_current_level]["level"].bonus_score * _local7));
if (_arg1 == 1){
_local4 = 0;
while (_local4 < open_level[_current_level].length) {
Global._game_stored_data.data["map"][open_level[_current_level][_local4]].lock = false;
_local4++;
};
_score[_current_level] = (_score[_current_level] + _local8);
_win[_current_level] = getGroundIndex((100 * _local7));
_key[_current_level] = new MD5().hash((_score[_current_level] + _huy));
_bonus_info = String(getGlobalScore());
} else {
_win[_current_level] = false;
if (_arg1 == -1){
_score[_current_level];
_key[_current_level] = new MD5().hash((_score[_current_level] + _huy));
} else {
_score[_current_level] = 0;
_key[_current_level] = null;
};
_bonus_info = String(getGlobalScore());
_live = (_live - 1);
};
}
public static function fromWorldY(_arg1:Number):Number{
return ((_arg1 * _box2d_phys_scale));
}
public static function addScore(_arg1:Number):Number{
_score[_current_level] = (_score[_current_level] + _arg1);
if (_score[_current_level] < 0){
_score[_current_level] = 0;
};
return (_score[_current_level]);
}
public static function getGlobalScore(_arg1:Number=-1):Number{
var _local2:Number;
var _local3:MD5;
var _local4:uint;
_local2 = 0;
_local3 = new MD5();
_local4 = 0;
while (_local4 < _score.length) {
trace(((((_local4 + " ") + _key[_local4]) + " --- ") + _local3.hash((_score[_local4] + _huy))));
if (((!((_local4 == _arg1))) && ((_key[_local4] == _local3.hash((_score[_local4] + _huy)))))){
_local2 = (_local2 + _score[_local4]);
};
_local4++;
};
return (_local2);
}
public static function toWorldX(_arg1:Number):Number{
return ((_arg1 / _box2d_phys_scale));
}
public static function uncrypt(_arg1:String):Object{
var ba:ByteArray;
var str = _arg1;
try {
ba = Base64.decodeToByteArray(str);
ba.uncompress();
ba.position = 0;
return (ba.readObject());
} catch(e:Error) {
trace("ERROR UNCRIPT STRING");
};
return ((new Array() as Object));
}
public static function iniBox2World(_arg1:b2World):void{
_box2d_world = _arg1;
}
public static function toRadian(_arg1:Number):Number{
return (((_arg1 * Math.PI) / 180));
}
public static function crypt(_arg1:Object):String{
var _local2:ByteArray;
_local2 = new ByteArray();
_local2.writeObject(_arg1);
_local2.compress();
return (Base64.encodeByteArray(_local2));
}
public static function angleTransform(_arg1:Number):Number{
if (_arg1 > 180){
_arg1 = (_arg1 - 360);
} else {
if (_arg1 < -180){
_arg1 = (_arg1 + 360);
};
};
return (_arg1);
}
public static function iniGame(_arg1:MovieClip):void{
var _local2:String;
_game = _arg1;
_score[_current_level] = 0;
_win[_current_level] = false;
for (_local2 in _keyFlags) {
_keyFlags[_local2] = false;
};
}
public static function iniUrls(_arg1:Stage=null):void{
var _local2:String;
var _local3:String;
_local2 = GamezheroGlobal.getDomain(_arg1);
_local3 = GamezheroGlobal.gameName;
_urls["send_to_friends"] = (((((("http://www.gamezhero.com/sendtofriends/" + _local3) + "-games.html?utm_campaign=") + _local3) + "&utm_source=") + _local2) + "&utm_medium=send_to_friends");
_urls["play_more_games"] = (((("http://www.gamezhero.com/?utm_campaign=" + _local3) + "&utm_source=") + _local2) + "&utm_medium=more_free_games");
_urls["zorro_logo"] = (((("http://www.gamezhero.com/?utm_campaign=" + _local3) + "&utm_source=") + _local2) + "&utm_medium=zorro_logo");
_urls["put_this_game"] = (((((("http://www.gamezhero.com/freewebsitegames/" + _local3) + "-games.html?utm_campaign=") + _local3) + "&utm_source=") + _local2) + "&utm_medium=free_web_site_games");
_urls["view_top_score"] = (((((("http://www.gamezhero.com/topscore/" + _local3) + "/?utm_campaign=") + _local3) + "&utm_source=") + _local2) + "&utm_medium=top_score");
_urls["release"] = (((((("http://www.gamezhero.com/online-games/puzzle-games/" + _local3) + "-onlinegames.html?utm_campaign=") + _local3) + "&utm_source=") + _local2) + "&utm_medium=release");
_urls["error"] = (((("http://www.gamezhero.com/?utm_campaign=" + _local3) + "&utm_source=") + _local2) + "&utm_medium=error");
_urls["preloader"] = (((("http://www.gamezhero.com/?utm_campaign=" + _local3) + "&utm_source=") + _local2) + "&utm_medium=preloader");
_urls["play_more_games_context"] = (((("http://www.gamezhero.com/?utm_campaign=" + _local3) + "&utm_source=") + _local2) + "&utm_medium=context_menu");
_urls["put_this_game_context"] = (((((("http://www.gamezhero.com/freewebsitegames/" + _local3) + "-onlinegames.html?utm_campaign=") + _local3) + "&utm_source=") + _local2) + "&utm_medium=free_web_site_games_context");
_urls["send_to_friends_context"] = (((((("http://www.gamezhero.com/sendtofriends/" + _local3) + "-onlinegames.html?utm_campaign=") + _local3) + "&utm_source=") + _local2) + "&utm_medium=send_to_friends_context_menu");
_urls["copyright"] = (((("<a target='_blank' href='http://www.gamezhero.com/?utm_campaign=" + _local3) + "&utm_source=") + _local2) + "&utm_medium=copyright'>copyright © gamezhero.com</a>");
_urls["youtube"] = "http://www.youtube.com/watch?v=-VCDQ9Ra_D8";
_urls["shared_levels"] = (((("utm_campaign=" + _local3) + "&utm_source=") + _local2) + "&utm_medium=shared_levels");
}
_keys["esc"] = 27;
_keys["space"] = 32;
_keys["shift"] = 16;
_keys["h"] = 72;
_keys["p"] = 80;
pauseLanguage[gameFormLanguage.DEU] = new Object();
pauseLanguage[gameFormLanguage.DEU][PauseMenu.BTN_EXIT] = "SPIEL VERLASSEN";
pauseLanguage[gameFormLanguage.DEU][PauseMenu.BTN_GAMEZHERO] = "GAMEZHERO.COM";
pauseLanguage[gameFormLanguage.DEU][PauseMenu.BTN_MUSIC] = "MUSIK";
pauseLanguage[gameFormLanguage.DEU][PauseMenu.BTN_SOUND] = "LAUT";
pauseLanguage[gameFormLanguage.DEU][PauseMenu.BTN_PLAY] = "WEITERSPIELEN";
pauseLanguage[gameFormLanguage.FRA] = new Object();
pauseLanguage[gameFormLanguage.FRA][PauseMenu.BTN_EXIT] = "QUITTER LE JEU";
pauseLanguage[gameFormLanguage.FRA][PauseMenu.BTN_GAMEZHERO] = "GAMEZHERO.COM";
pauseLanguage[gameFormLanguage.FRA][PauseMenu.BTN_MUSIC] = "GESTION DE MUSIQUE";
pauseLanguage[gameFormLanguage.FRA][PauseMenu.BTN_SOUND] = "GESTION DE SON";
pauseLanguage[gameFormLanguage.FRA][PauseMenu.BTN_PLAY] = "CONTINUER LE JEU";
pauseLanguage[gameFormLanguage.PRT] = new Object();
pauseLanguage[gameFormLanguage.PRT][PauseMenu.BTN_EXIT] = "SAIR DO JOGO";
pauseLanguage[gameFormLanguage.PRT][PauseMenu.BTN_GAMEZHERO] = "GAMEZHERO.COM";
pauseLanguage[gameFormLanguage.PRT][PauseMenu.BTN_MUSIC] = "CONTROLO DA MÚSICA";
pauseLanguage[gameFormLanguage.PRT][PauseMenu.BTN_SOUND] = "CONTROLO DO SOM";
pauseLanguage[gameFormLanguage.PRT][PauseMenu.BTN_PLAY] = "CONTINUAR O JOGO";
pauseLanguage[gameFormLanguage.ESP] = new Object();
pauseLanguage[gameFormLanguage.ESP][PauseMenu.BTN_EXIT] = "RETIRA DEL JUEGO";
pauseLanguage[gameFormLanguage.ESP][PauseMenu.BTN_GAMEZHERO] = "GAMEZHERO.COM";
pauseLanguage[gameFormLanguage.ESP][PauseMenu.BTN_MUSIC] = "AJUSTA LA MÚSICA";
pauseLanguage[gameFormLanguage.ESP][PauseMenu.BTN_SOUND] = "AJUSTA EL SONIDO";
pauseLanguage[gameFormLanguage.ESP][PauseMenu.BTN_PLAY] = "CONTINÚA EL JUEGO";
pauseLanguage[gameFormLanguage.RUS] = new Object();
pauseLanguage[gameFormLanguage.RUS][PauseMenu.BTN_EXIT] = "Выйти Из Игры";
pauseLanguage[gameFormLanguage.RUS][PauseMenu.BTN_GAMEZHERO] = "Играть на Gamezhero.com";
pauseLanguage[gameFormLanguage.RUS][PauseMenu.BTN_MUSIC] = "Управление Музыкой";
pauseLanguage[gameFormLanguage.RUS][PauseMenu.BTN_SOUND] = "Управление Звуком";
pauseLanguage[gameFormLanguage.RUS][PauseMenu.BTN_PLAY] = "Продолжить Игру";
pauseLanguage[gameFormLanguage.ENG] = new Object();
pauseLanguage[gameFormLanguage.ENG][PauseMenu.BTN_EXIT] = "Quit Game";
pauseLanguage[gameFormLanguage.ENG][PauseMenu.BTN_GAMEZHERO] = "Visit Gamezhero.com";
pauseLanguage[gameFormLanguage.ENG][PauseMenu.BTN_MUSIC] = "Music Control";
pauseLanguage[gameFormLanguage.ENG][PauseMenu.BTN_SOUND] = "Sound Control";
pauseLanguage[gameFormLanguage.ENG][PauseMenu.BTN_PLAY] = "Continue Game";
pauseLanguage[gameFormLanguage.UKR] = new Object();
pauseLanguage[gameFormLanguage.UKR][PauseMenu.BTN_EXIT] = "Покинути Гру";
pauseLanguage[gameFormLanguage.UKR][PauseMenu.BTN_GAMEZHERO] = "Грати На Gamezhero.com";
pauseLanguage[gameFormLanguage.UKR][PauseMenu.BTN_MUSIC] = "Керування Музикой";
pauseLanguage[gameFormLanguage.UKR][PauseMenu.BTN_SOUND] = "Керування Звуком";
pauseLanguage[gameFormLanguage.UKR][PauseMenu.BTN_PLAY] = "Продовжити Гру";
pauseLanguage[gameFormLanguage.POL] = new Object();
pauseLanguage[gameFormLanguage.POL][PauseMenu.BTN_EXIT] = "Opuść Grę";
pauseLanguage[gameFormLanguage.POL][PauseMenu.BTN_GAMEZHERO] = "Odwiedź Gameshero.com";
pauseLanguage[gameFormLanguage.POL][PauseMenu.BTN_MUSIC] = "Sterowanie Muzyką";
pauseLanguage[gameFormLanguage.POL][PauseMenu.BTN_SOUND] = "Sterowanie Dźwiękiem";
pauseLanguage[gameFormLanguage.POL][PauseMenu.BTN_PLAY] = "Kontynuuj Grę";
pauseLanguage[gameFormLanguage.ITA] = new Object();
pauseLanguage[gameFormLanguage.ITA][PauseMenu.BTN_EXIT] = "USCIRE DAL GIOCO";
pauseLanguage[gameFormLanguage.ITA][PauseMenu.BTN_GAMEZHERO] = "GAMEZHERO.COM";
pauseLanguage[gameFormLanguage.ITA][PauseMenu.BTN_MUSIC] = "CONTROLLO DELLA MUSICA";
pauseLanguage[gameFormLanguage.ITA][PauseMenu.BTN_SOUND] = "CONTROLLO DEL SUONO";
pauseLanguage[gameFormLanguage.ITA][PauseMenu.BTN_PLAY] = "CONTINUARE IL GIOCO";
open_level[0] = [1];
open_level[1] = [2];
open_level[2] = [3];
open_level[3] = [4];
open_level[4] = [5];
open_level[5] = [6, 7];
open_level[6] = [7, 8];
open_level[7] = [8, 9];
open_level[8] = [9, 10];
open_level[9] = [10, 11];
open_level[10] = [11, 12];
open_level[11] = [12, 13];
open_level[12] = [13, 14];
open_level[13] = [14, 15];
open_level[14] = [15, 16];
open_level[15] = [16, 17];
open_level[16] = [17, 18];
open_level[17] = [18, 19];
open_level[18] = [19, 20];
open_level[19] = [20, 21];
open_level[20] = [21, 22];
open_level[21] = [22, 23];
open_level[22] = [23, 24];
open_level[23] = [24];
open_level[24] = [];
open_level[25] = [];
_block_gallery["block_type_1"] = {skinClass:"type1", type:1, primitives:[{type:"poligon", x:0, y:0, vertices:[{x:-20, y:-40}, {x:20, y:-40}, {x:20, y:40}, {x:-20, y:40}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:2, angles:[0, 180]};
_block_gallery["block_type_2"] = {skinClass:"type2", type:2, primitives:[{type:"poligon", x:0, y:0, vertices:[{x:-40, y:-40}, {x:40, y:-40}, {x:40, y:40}, {x:-40, y:40}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:4, angles:[0, 90, 180, 270, 360]};
_block_gallery["block_type_3"] = {skinClass:"type3", type:3, primitives:[{type:"poligon", x:0, y:0, vertices:[{x:-40, y:-40}, {x:0, y:-40}, {x:0, y:40}, {x:-40, y:40}]}, {type:"poligon", x:0, y:-40, vertices:[{x:0, y:0}, {x:40, y:0}, {x:40, y:40}, {x:0, y:40}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:3, angles:[0]};
_block_gallery["block_type_4"] = {skinClass:"type4", type:4, primitives:[{type:"poligon", x:0, y:0, vertices:[{x:40, y:-40}, {x:40, y:40}, {x:-40, y:40}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:2, angles:[0]};
_block_gallery["block_type_5"] = {skinClass:"type5", type:5, primitives:[{type:"poligon", x:0, y:0, vertices:[{x:-20, y:-20}, {x:20, y:-20}, {x:20, y:20}, {x:-20, y:20}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:1, angles:[0, 90, 180, 270, 360]};
_block_gallery["block_type_6"] = {skinClass:"type6", type:6, primitives:[{type:"poligon", x:0, y:0, vertices:[{x:-40, y:-40}, {x:40, y:-40}, {x:40, y:0}, {x:0, y:40}, {x:-40, y:40}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:3.5, angles:[0]};
_block_gallery["block_type_7"] = {skinClass:"type7", type:7, primitives:[{type:"poligon", x:0, y:0, vertices:[{x:-40, y:0}, {x:0, y:-40}, {x:40, y:-40}, {x:40, y:0}, {x:0, y:40}, {x:-40, y:40}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:3, angles:[0, 180]};
_block_gallery["block_type_8"] = {skinClass:"type8", type:8, primitives:[{type:"poligon", x:0, y:0, vertices:[{x:-20, y:-60}, {x:20, y:-60}, {x:20, y:60}, {x:-20, y:60}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:3, angles:[0, 180]};
_block_gallery["block_type_9"] = {skinClass:"type9", type:9, primitives:[{type:"poligon", x:0, y:0, vertices:[{x:-40, y:-60}, {x:40, y:-60}, {x:40, y:60}, {x:-40, y:60}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:6, angles:[0, 180]};
_block_gallery["block_type_10"] = {skinClass:"type10", type:10, primitives:[{type:"poligon", x:0, y:0, vertices:[{x:-60, y:-60}, {x:60, y:-60}, {x:60, y:60}, {x:-60, y:60}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:9, angles:[0, 90, 180, 270, 360]};
_block_gallery["block_type_11"] = {skinClass:"type11", type:11, primitives:[{type:"poligon", x:0, y:0, vertices:[{x:60, y:-60}, {x:60, y:60}, {x:-60, y:60}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:4.5, angles:[0]};
_block_gallery["block_type_12"] = {skinClass:"type12", type:12, primitives:[{type:"poligon", x:0, y:0, vertices:[{x:40, y:-60}, {x:40, y:60}, {x:-40, y:60}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:3, angles:[0]};
_block_gallery["block_type_13"] = {skinClass:"type13", type:13, primitives:[{type:"poligon", x:0, y:0, vertices:[{x:-40, y:-60}, {x:40, y:60}, {x:-40, y:60}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:3, angles:[0]};
_block_gallery["block_type_14"] = {skinClass:"type14", type:14, primitives:[{type:"poligon", x:-40, y:-60, vertices:[{x:0, y:0}, {x:40, y:0}, {x:40, y:120}, {x:0, y:120}]}, {type:"poligon", x:0, y:-60, vertices:[{x:0, y:0}, {x:40, y:0}, {x:40, y:40}, {x:0, y:40}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:4, angles:[0]};
_block_gallery["block_type_15"] = {skinClass:"type15", type:15, primitives:[{type:"poligon", x:0, y:-60, vertices:[{x:0, y:0}, {x:40, y:0}, {x:40, y:120}, {x:0, y:120}]}, {type:"poligon", x:-40, y:-60, vertices:[{x:0, y:0}, {x:40, y:0}, {x:40, y:40}, {x:0, y:40}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:4, angles:[0]};
_block_gallery["block_type_16"] = {skinClass:"type16", type:16, primitives:[{type:"poligon", x:-40, y:-60, vertices:[{x:0, y:0}, {x:40, y:0}, {x:40, y:120}, {x:0, y:120}]}, {type:"poligon", x:0, y:-60, vertices:[{x:0, y:0}, {x:40, y:0}, {x:40, y:80}, {x:0, y:80}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:5, angles:[0]};
_block_gallery["block_type_17"] = {skinClass:"type17", type:17, primitives:[{type:"poligon", x:0, y:-60, vertices:[{x:0, y:0}, {x:40, y:0}, {x:40, y:120}, {x:0, y:120}]}, {type:"poligon", x:-40, y:-60, vertices:[{x:0, y:0}, {x:40, y:0}, {x:40, y:80}, {x:0, y:80}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:5, angles:[0]};
_block_gallery["block_type_18"] = {skinClass:"type18", type:18, primitives:[{type:"poligon", x:-60, y:-60, vertices:[{x:0, y:0}, {x:40, y:0}, {x:40, y:120}, {x:0, y:120}]}, {type:"poligon", x:-20, y:-60, vertices:[{x:0, y:0}, {x:80, y:0}, {x:80, y:40}, {x:0, y:40}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:5, angles:[0]};
_block_gallery["block_type_19"] = {skinClass:"type19", type:19, primitives:[{type:"poligon", x:-60, y:-60, vertices:[{x:0, y:0}, {x:80, y:0}, {x:80, y:120}, {x:0, y:120}]}, {type:"poligon", x:20, y:-60, vertices:[{x:0, y:0}, {x:40, y:0}, {x:40, y:80}, {x:0, y:80}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:8, angles:[0]};
_block_gallery["block_type_20"] = {skinClass:"type20", type:20, primitives:[{type:"poligon", x:-60, y:-60, vertices:[{x:0, y:0}, {x:40, y:0}, {x:40, y:120}, {x:0, y:120}]}, {type:"poligon", x:-20, y:-60, vertices:[{x:0, y:0}, {x:40, y:0}, {x:40, y:80}, {x:0, y:80}]}, {type:"poligon", x:20, y:-60, vertices:[{x:0, y:0}, {x:40, y:0}, {x:40, y:40}, {x:0, y:40}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:6, angles:[0]};
_block_gallery["block_type_21"] = {skinClass:"type21", type:21, primitives:[{type:"poligon", x:-60, y:-60, vertices:[{x:0, y:0}, {x:120, y:0}, {x:120, y:80}, {x:0, y:80}]}, {type:"poligon", x:-60, y:20, vertices:[{x:0, y:0}, {x:40, y:0}, {x:40, y:40}, {x:0, y:40}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:7, angles:[0]};
_block_gallery["block_type_22"] = {skinClass:"type22", type:22, primitives:[{type:"poligon", x:-60, y:-60, vertices:[{x:0, y:0}, {x:120, y:0}, {x:120, y:80}, {x:0, y:80}]}, {type:"poligon", x:20, y:20, vertices:[{x:0, y:0}, {x:40, y:0}, {x:40, y:40}, {x:0, y:40}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:7, angles:[0]};
_block_gallery["block_type_23"] = {skinClass:"type23", type:23, primitives:[{type:"poligon", x:-60, y:-60, vertices:[{x:0, y:0}, {x:120, y:0}, {x:120, y:80}, {x:80, y:120}, {x:0, y:120}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:8.5, angles:[0]};
_block_gallery["block_type_24"] = {skinClass:"type24", type:24, primitives:[{type:"poligon", x:-60, y:-60, vertices:[{x:0, y:80}, {x:80, y:0}, {x:120, y:0}, {x:120, y:40}, {x:40, y:120}, {x:0, y:120}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:6, angles:[0, 180]};
_block_gallery["block_type_25"] = {skinClass:"type25", type:25, primitives:[{type:"poligon", x:-60, y:-60, vertices:[{x:0, y:40}, {x:40, y:0}, {x:80, y:0}, {x:120, y:40}, {x:120, y:80}, {x:80, y:120}, {x:40, y:120}, {x:0, y:80}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:7, angles:[0, 90, 180, 270, 360]};
_block_gallery["block_type_26"] = {skinClass:"type26", type:26, primitives:[{type:"poligon", x:-60, y:-60, vertices:[{x:0, y:40}, {x:40, y:0}, {x:120, y:0}, {x:120, y:80}, {x:80, y:120}, {x:0, y:120}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:8, angles:[0, 180]};
_block_gallery["block_type_27"] = {skinClass:"type27", type:27, primitives:[{type:"poligon", x:-60, y:-60, vertices:[{x:0, y:0}, {x:80, y:0}, {x:120, y:40}, {x:120, y:80}, {x:80, y:120}, {x:0, y:120}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:8, angles:[0]};
_block_gallery["block_type_28"] = {skinClass:"type28", type:28, primitives:[{type:"poligon", x:-60, y:-60, vertices:[{x:0, y:60}, {x:60, y:0}, {x:120, y:60}, {x:60, y:120}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:3, angles:[0, 90, 180, 270, 360]};
_block_gallery["block_type_29"] = {skinClass:"type29", type:29, primitives:[{type:"poligon", x:-40, y:-40, vertices:[{x:0, y:40}, {x:40, y:0}, {x:80, y:40}, {x:40, y:80}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:2, angles:[0, 90, 180, 270, 360]};
_block_gallery["block_type_30"] = {skinClass:"type30", type:30, primitives:[{type:"poligon", x:-60, y:-20, vertices:[{x:0, y:0}, {x:40, y:0}, {x:40, y:80}, {x:0, y:80}]}, {type:"poligon", x:-20, y:-60, vertices:[{x:0, y:0}, {x:40, y:0}, {x:40, y:80}, {x:0, y:80}]}, {type:"poligon", x:20, y:-60, vertices:[{x:0, y:0}, {x:40, y:0}, {x:40, y:40}, {x:0, y:40}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:5, angles:[0]};
_block_gallery["block_type_31"] = {skinClass:"type31", type:31, primitives:[{type:"poligon", x:-40, y:-40, vertices:[{x:0, y:0}, {x:80, y:80}, {x:0, y:80}]}, {type:"poligon", x:0, y:0, vertices:[{x:0, y:0}, {x:40, y:-40}, {x:40, y:40}]}], pos:{x:0, y:0, rotation:0}, fixed:false, physics:{density:density, friction:friction, restitution:restitution, mass:10}, score:10, square:3, angles:[0]};
}
}//package com.gamezhero
Section 138
//AbstractCollection (org.cove.ape.AbstractCollection)
package org.cove.ape {
import flash.display.*;
import flash.utils.*;
public class AbstractCollection {
private var :Sprite;
private var
:Boolean;
private var
:Array;
private var
:Array;
public function AbstractCollection(){
if (getQualifiedClassName(this) == "org.cove.ape::AbstractCollection"){
throw (new ArgumentError("AbstractCollection can't be instantiated directly"));
};
= false;
= new Array();
= new Array();
}
public function getAll():Array{
return (particles.concat(constraints));
}
function checkCollisionsVsCollection(_arg1:AbstractCollection):void{
var _local2:int;
var _local3:int;
var _local4:int;
var _local5:AbstractParticle;
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:AbstractParticle;
var _local10:SpringConstraint;
var _local11:SpringConstraint;
var _local12:int;
_local2 =
.length;
_local3 = 0;
while (_local3 < _local2) {
_local5 =
[_local3];
if (!_local5.collidable){
} else {
_local6 = _arg1.particles.length;
_local7 = 0;
while (_local7 < _local6) {
_local9 = _arg1.particles[_local7];
if (_local9.collidable){
CollisionDetector.test(_local5, _local9);
};
_local7++;
};
_local8 = _arg1.constraints.length;
_local7 = 0;
while (_local7 < _local8) {
_local10 = _arg1.constraints[_local7];
if (((_local10.collidable) && (!(_local10.isConnectedTo(_local5))))){
_local10.scp.updatePosition();
CollisionDetector.test(_local5, _local10.scp);
};
_local7++;
};
};
_local3++;
};
_local4 =
.length;
_local3 = 0;
while (_local3 < _local4) {
_local11 =
[_local3];
if (!_local11.collidable){
} else {
_local6 = _arg1.particles.length;
_local12 = 0;
while (_local12 < _local6) {
_local9 = _arg1.particles[_local12];
if (((_local9.collidable) && (!(_local11.isConnectedTo(_local9))))){
_local11.scp.updatePosition();
CollisionDetector.test(_local9, _local11.scp);
};
_local12++;
};
};
_local3++;
};
}
public function get sprite():Sprite{
if ( != null){
return ( );
};
if (APEngine.container == null){
throw (new Error("The container property of the APEngine class has not been set"));
};
= new Sprite();
APEngine.container.addChild( );
return ( );
}
function checkInternalCollisions():void{
var _local1:int;
var _local2:int;
var _local3:AbstractParticle;
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:AbstractParticle;
var _local8:SpringConstraint;
_local1 =
.length;
_local2 = 0;
while (_local2 < _local1) {
_local3 =
[_local2];
if (!_local3.collidable){
} else {
_local4 = (_local2 + 1);
while (_local4 < _local1) {
_local7 =
[_local4];
if (_local7.collidable){
CollisionDetector.test(_local3, _local7);
};
_local4++;
};
_local5 =
.length;
_local6 = 0;
while (_local6 < _local5) {
_local8 =
[_local6];
if (((_local8.collidable) && (!(_local8.isConnectedTo(_local3))))){
_local8.scp.updatePosition();
CollisionDetector.test(_local3, _local8.scp);
};
_local6++;
};
};
_local2++;
};
}
public function (_arg1:AbstractParticle):void{
particles.push(_arg1);
if (isParented){
_arg1.init();
};
}
public function (_arg1:AbstractConstraint):void{
var _local2:int;
_local2 = constraints.indexOf(_arg1);
if (_local2 == -1){
return;
};
constraints.splice(_local2, 1);
_arg1.cleanup();
}
function get isParented():Boolean{
return (
);
}
public function init():void{
var _local1:int;
_local1 = 0;
while (_local1 < particles.length) {
particles[_local1].init();
_local1++;
};
_local1 = 0;
while (_local1 < constraints.length) {
constraints[_local1].init();
_local1++;
};
}
function satisfyConstraints():void{
var _local1:int;
var _local2:int;
var _local3:AbstractConstraint;
_local1 =
.length;
_local2 = 0;
while (_local2 < _local1) {
_local3 =
[_local2];
_local3.resolve();
_local2++;
};
}
public function paint():void{
var _local1:AbstractParticle;
var _local2:int;
var _local3:int;
var _local4:SpringConstraint;
_local2 =
.length;
_local3 = 0;
while (_local3 < _local2) {
_local1 =
[_local3];
if (((!(_local1.fixed)) || (_local1.alwaysRepaint))){
_local1.paint();
};
_local3++;
};
_local2 =
.length;
_local3 = 0;
while (_local3 < _local2) {
_local4 =
[_local3];
if (((!(_local4.fixed)) || (_local4.alwaysRepaint))){
_local4.paint();
};
_local3++;
};
}
public function
(_arg1:AbstractConstraint):void{
constraints.push(_arg1);
if (isParented){
_arg1.init();
};
}
function set isParented(_arg1:Boolean):void{
= _arg1;
}
public function
(_arg1:AbstractParticle):void{
var _local2:int;
_local2 = particles.indexOf(_arg1);
if (_local2 == -1){
return;
};
particles.splice(_local2, 1);
_arg1.cleanup();
}
public function cleanup():void{
var _local1:int;
_local1 = 0;
while (_local1 < particles.length) {
particles[_local1].cleanup();
_local1++;
};
_local1 = 0;
while (_local1 < constraints.length) {
constraints[_local1].cleanup();
_local1++;
};
}
public function get particles():Array{
return (
);
}
function integrate(_arg1:Number):void{
var _local2:int;
var _local3:int;
var _local4:AbstractParticle;
_local2 =
.length;
_local3 = 0;
while (_local3 < _local2) {
_local4 =
[_local3];
_local4.update(_arg1);
_local3++;
};
}
public function get constraints():Array{
return (
);
}
}
}//package org.cove.ape
Section 139
//AbstractConstraint (org.cove.ape.AbstractConstraint)
package org.cove.ape {
import flash.utils.*;
public class AbstractConstraint extends AbstractItem {
private var :Number;
public function AbstractConstraint(_arg1:Number){
if (getQualifiedClassName(this) == "org.cove.ape::AbstractConstraint"){
throw (new ArgumentError("AbstractConstraint can't be instantiated directly"));
};
this.stiffness = _arg1;
();
}
public function get stiffness():Number{
return ();
}
public function set stiffness(_arg1:Number):void{
= _arg1;
}
function resolve():void{
}
}
}//package org.cove.ape
Section 140
//AbstractItem (org.cove.ape.AbstractItem)
package org.cove.ape {
import flash.display.*;
public class AbstractItem {
var lineAlpha:Number;
var lineColor:uint;
var displayObjectOffset:Vector;
var lineThickness:Number;
var displayObject:DisplayObject;
var fillAlpha:Number;
private var :Sprite;
var fillColor:uint;
private var :Boolean;
private var
:Boolean;
var displayObjectRotation:Number;
public function AbstractItem(){
= true;
= false;
}
public function
(_arg1:Number=0, _arg2:uint=0, _arg3:Number=1):void{
lineThickness = _arg1;
lineColor = _arg2;
lineAlpha = _arg3;
}
public function set visible(_arg1:Boolean):void{
= _arg1;
sprite.visible = _arg1;
}
public function (_arg1:uint=0xFFFFFF, _arg2:Number=1):void{
fillColor = _arg1;
fillAlpha = _arg2;
}
public function init():void{
}
public function get sprite():Sprite{
if ( != null){
return ( );
};
if (APEngine.container == null){
throw (new Error("The container property of the APEngine class has not been set"));
};
= new Sprite();
APEngine.container.addChild( );
return ( );
}
public function paint():void{
}
public function cleanup():void{
var _local1:int;
sprite.graphics.clear();
_local1 = 0;
while (_local1 < sprite.numChildren) {
sprite.removeChildAt(_local1);
_local1++;
};
}
public function (_arg1:Number=0, _arg2:uint=0, _arg3:Number=1, _arg4:uint=0xFFFFFF, _arg5:Number=1):void{
(_arg1, _arg2, _arg3);
(_arg4, _arg5);
}
public function get visible():Boolean{
return ();
}
final public function set alwaysRepaint(_arg1:Boolean):void{
= _arg1;
}
final public function get alwaysRepaint():Boolean{
return (
);
}
}
}//package org.cove.ape
Section 141
//AbstractParticle (org.cove.ape.AbstractParticle)
package org.cove.ape {
import flash.display.*;
import flash.utils.*;
public class AbstractParticle extends AbstractItem {
private var :Boolean;
private var :int;
private var :Collision;
var prev:Vector;
private var :Number;
var curr:Vector;
private var :Number;
var interval:Interval;
private var :Number;
private var :Vector;
private var :Number;
private var :Vector;
var samp:Vector;
private var :Vector;
private var :Boolean;
public function AbstractParticle(_arg1:Number, _arg2:Number, _arg3:Boolean, _arg4:Number, _arg5:Number, _arg6:Number){
if (getQualifiedClassName(this) == "org.cove.ape::AbstractParticle"){
throw (new ArgumentError("AbstractParticle can't be instantiated directly"));
};
interval = new Interval(0, 0);
curr = new Vector(_arg1, _arg2);
prev = new Vector(_arg1, _arg2);
samp = new Vector();
= new Vector();
fixed = _arg3;
= new Vector();
= new Collision(new Vector(), new Vector());
collidable = true;
this.mass = _arg4;
this.elasticity = _arg5;
this.friction = _arg6;
();
= new Vector();
= 0;
}
public function set friction(_arg1:Number):void{
if ((((_arg1 < 0)) || ((_arg1 > 1)))){
throw (new ArgumentError("Legal friction must be >= 0 and <=1"));
};
= _arg1;
}
public function get px():Number{
return (curr.x);
}
public function get py():Number{
return (curr.y);
}
public function set py(_arg1:Number):void{
curr.y = _arg1;
prev.y = _arg1;
}
function
(_arg1:Vector):Collision{
var _local2:Vector;
var _local3:Number;
_local2 = velocity;
_local3 = _arg1.dot(_local2);
.vn = _arg1.mult(_local3);
.vt = _local2.minus(.vn);
return ();
}
public function set mass(_arg1:Number):void{
if (_arg1 <= 0){
throw (new ArgumentError("mass may not be set <= 0"));
};
= _arg1;
= (1 / );
}
public function get fixed():Boolean{
return ();
}
public function set px(_arg1:Number):void{
curr.x = _arg1;
prev.x = _arg1;
}
function initDisplay():void{
displayObject.x = displayObjectOffset.x;
displayObject.y = displayObjectOffset.y;
displayObject.rotation = displayObjectRotation;
sprite.addChild(displayObject);
}
function get invMass():Number{
return ((fixed) ? 0 : );
}
public function setDisplay(_arg1:DisplayObject, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0):void{
displayObject = _arg1;
displayObjectRotation = _arg4;
displayObjectOffset = new Vector(_arg2, _arg3);
}
public function get position():Vector{
return (new Vector(curr.x, curr.y));
}
public function get multisample():int{
return ();
}
function resolveCollision(_arg1:Vector, _arg2:Vector, _arg3:Vector, _arg4:Number, _arg5:int, _arg6:AbstractParticle):void{
curr.plusEquals(_arg1);
velocity = _arg2;
}
public function set fixed(_arg1:Boolean):void{
= _arg1;
}
public function (_arg1:Vector):void{
.plusEquals(_arg1);
}
public function set velocity(_arg1:Vector):void{
prev = curr.minus(_arg1);
}
public function set multisample(_arg1:int):void{
= _arg1;
}
public function get elasticity():Number{
return ();
}
public function set position(_arg1:Vector):void{
curr.copy(_arg1);
prev.copy(_arg1);
}
public function get center():Vector{
.setTo(px, py);
return ();
}
public function update(_arg1:Number):void{
var _local2:Vector;
if (fixed){
return;
};
(APEngine.force);
(APEngine.masslessForce);
.copy(curr);
_local2 = velocity.plus(.multEquals(_arg1));
curr.plusEquals(_local2.multEquals(APEngine.damping));
prev.copy();
.setTo(0, 0);
}
public function set collidable(_arg1:Boolean):void{
= _arg1;
}
public function get velocity():Vector{
return (curr.minus(prev));
}
public function get collidable():Boolean{
return ();
}
public function (_arg1:Vector):void{
.plusEquals(_arg1.mult(invMass));
}
public function set elasticity(_arg1:Number):void{
= _arg1;
}
public function get friction():Number{
return ( );
}
public function get mass():Number{
return ();
}
}
}//package org.cove.ape
Section 142
//APEngine (org.cove.ape.APEngine)
package org.cove.ape {
import flash.display.*;
public final class APEngine {
private static var _container:DisplayObjectContainer;
private static var _damping:Number;
private static var _constraintCollisionCycles:int;
private static var groups:Array;
static var masslessForce:Vector;
private static var _constraintCycles:int;
static var force:Vector;
private static var timeStep:Number;
private static var numGroups:int;
public static function get container():DisplayObjectContainer{
return (_container);
}
public static function get constraintCollisionCycles():int{
return (_constraintCollisionCycles);
}
public static function set damping(_arg1:Number):void{
_damping = _arg1;
}
public static function step():void{
var _local1:int;
var _local2:int;
integrate();
_local1 = 0;
while (_local1 < _constraintCycles) {
satisfyConstraints();
_local1++;
};
_local2 = 0;
while (_local2 < _constraintCollisionCycles) {
satisfyConstraints();
checkCollisions();
_local2++;
};
}
public static function init(_arg1:Number=0.25):void{
timeStep = (_arg1 * _arg1);
numGroups = 0;
groups = new Array();
force = new Vector(0, 0);
masslessForce = new Vector(0, 0);
damping = 1;
_constraintCycles = 0;
_constraintCollisionCycles = 1;
}
public static function get constraintCycles():int{
return (_constraintCycles);
}
public static function set constraintCollisionCycles(_arg1:int):void{
_constraintCollisionCycles = _arg1;
}
public static function set constraintCycles(_arg1:int):void{
_constraintCycles = _arg1;
}
public static function (_arg1:Vector):void{
force.plusEquals(_arg1);
}
public static function get damping():Number{
return (_damping);
}
public static function set container(_arg1:DisplayObjectContainer):void{
_container = _arg1;
}
public static function addGroup(_arg1:Group):void{
groups.push(_arg1);
_arg1.isParented = true;
numGroups++;
_arg1.init();
}
public static function removeGroup(_arg1:Group):void{
var _local2:int;
_local2 = groups.indexOf(_arg1);
if (_local2 == -1){
return;
};
groups.splice(_local2, 1);
_arg1.isParented = false;
numGroups--;
_arg1.cleanup();
}
public static function paint():void{
var _local1:int;
var _local2:Group;
_local1 = 0;
while (_local1 < numGroups) {
_local2 = groups[_local1];
_local2.paint();
_local1++;
};
}
private static function checkCollisions():void{
var _local1:int;
var _local2:Group;
_local1 = 0;
while (_local1 < numGroups) {
_local2 = groups[_local1];
_local2.checkCollisions();
_local1++;
};
}
private static function integrate():void{
var _local1:int;
var _local2:Group;
_local1 = 0;
while (_local1 < numGroups) {
_local2 = groups[_local1];
_local2.integrate(timeStep);
_local1++;
};
}
private static function satisfyConstraints():void{
var _local1:int;
var _local2:Group;
_local1 = 0;
while (_local1 < numGroups) {
_local2 = groups[_local1];
_local2.satisfyConstraints();
_local1++;
};
}
public static function (_arg1:Vector):void{
masslessForce.plusEquals(_arg1);
}
}
}//package org.cove.ape
Section 143
//CircleParticle (org.cove.ape.CircleParticle)
package org.cove.ape {
public class CircleParticle extends AbstractParticle {
private var :Number;
public function CircleParticle(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Number=1, _arg6:Number=0.3, _arg7:Number=0){
super(_arg1, _arg2, _arg4, _arg5, _arg6, _arg7);
= _arg3;
}
function ():Interval{
interval.min = (curr.x - );
interval.max = (curr.x + );
return (interval);
}
function ():Interval{
interval.min = (curr.y - );
interval.max = (curr.y + );
return (interval);
}
override public function init():void{
cleanup();
if (displayObject != null){
initDisplay();
} else {
sprite.graphics.clear();
sprite.graphics.lineStyle(lineThickness, lineColor, lineAlpha);
sprite.graphics.beginFill(fillColor, fillAlpha);
sprite.graphics.drawCircle(0, 0, radius);
sprite.graphics.endFill();
};
paint();
}
public function set radius(_arg1:Number):void{
= _arg1;
}
public function get radius():Number{
return ();
}
function getProjection(_arg1:Vector):Interval{
var _local2:Number;
_local2 = samp.dot(_arg1);
interval.min = (_local2 - );
interval.max = (_local2 + );
return (interval);
}
override public function paint():void{
sprite.x = curr.x;
sprite.y = curr.y;
}
}
}//package org.cove.ape
Section 144
//Collision (org.cove.ape.Collision)
package org.cove.ape {
import org.cove.ape.*;
final class Collision {
var vn:Vector;
var vt:Vector;
function Collision(_arg1:Vector, _arg2:Vector){
this.vn = _arg1;
this.vt = _arg2;
}
}
}//package org.cove.ape
Section 145
//CollisionDetector (org.cove.ape.CollisionDetector)
package org.cove.ape {
import org.cove.ape.*;
final class CollisionDetector {
private static function testOBBvsCircle(_arg1:RectangleParticle, _arg2:CircleParticle):Boolean{
var _local3:Vector;
var _local4:Number;
var _local5:Array;
var _local6:int;
var _local7:Number;
var _local8:Vector;
var _local9:Number;
var _local10:Vector;
var _local11:Number;
_local4 = Number.POSITIVE_INFINITY;
_local5 = new Array(2);
_local6 = 0;
while (_local6 < 2) {
_local8 = _arg1.axes[_local6];
_local9 = testIntervals(_arg1.getProjection(_local8), _arg2.getProjection(_local8));
if (_local9 == 0){
return (false);
};
if (Math.abs(_local9) < Math.abs(_local4)){
_local3 = _local8;
_local4 = _local9;
};
_local5[_local6] = _local9;
_local6++;
};
_local7 = _arg2.radius;
if ((((Math.abs(_local5[0]) < _local7)) && ((Math.abs(_local5[1]) < _local7)))){
_local10 = closestVertexOnOBB(_arg2.samp, _arg1);
_local3 = _local10.minus(_arg2.samp);
_local11 = _local3. ();
_local4 = (_local7 - _local11);
if (_local4 > 0){
_local3.
(_local11);
} else {
return (false);
};
};
CollisionResolver.resolveParticleParticle(_arg1, _arg2, _local3, _local4);
return (true);
}
static function test(_arg1:AbstractParticle, _arg2:AbstractParticle):void{
if (((_arg1.fixed) && (_arg2.fixed))){
return;
};
if ((((_arg1.multisample == 0)) && ((_arg2.multisample == 0)))){
normVsNorm(_arg1, _arg2);
} else {
if ((((_arg1.multisample > 0)) && ((_arg2.multisample == 0)))){
sampVsNorm(_arg1, _arg2);
} else {
if ((((_arg2.multisample > 0)) && ((_arg1.multisample == 0)))){
sampVsNorm(_arg2, _arg1);
} else {
if (_arg1.multisample == _arg2.multisample){
sampVsSamp(_arg1, _arg2);
} else {
normVsNorm(_arg1, _arg2);
};
};
};
};
}
private static function testIntervals(_arg1:Interval, _arg2:Interval):Number{
var _local3:Number;
var _local4:Number;
if (_arg1.max < _arg2.min){
return (0);
};
if (_arg2.max < _arg1.min){
return (0);
};
_local3 = (_arg2.max - _arg1.min);
_local4 = (_arg2.min - _arg1.max);
return (((Math.abs(_local3))<Math.abs(_local4)) ? _local3 : _local4);
}
private static function normVsNorm(_arg1:AbstractParticle, _arg2:AbstractParticle):void{
_arg1.samp.copy(_arg1.curr);
_arg2.samp.copy(_arg2.curr);
testTypes(_arg1, _arg2);
}
private static function testCirclevsCircle(_arg1:CircleParticle, _arg2:CircleParticle):Boolean{
var _local3:Number;
var _local4:Number;
var _local5:Vector;
var _local6:Number;
var _local7:Number;
_local3 = testIntervals(_arg1.(), _arg2.());
if (_local3 == 0){
return (false);
};
_local4 = testIntervals(_arg1.(), _arg2.());
if (_local4 == 0){
return (false);
};
_local5 = _arg1.samp.minus(_arg2.samp);
_local6 = _local5. ();
_local7 = ((_arg1.radius + _arg2.radius) - _local6);
if (_local7 > 0){
_local5.
(_local6);
CollisionResolver.resolveParticleParticle(_arg1, _arg2, _local5, _local7);
return (true);
};
return (false);
}
private static function testTypes(_arg1:AbstractParticle, _arg2:AbstractParticle):Boolean{
if ((((_arg1 is RectangleParticle)) && ((_arg2 is RectangleParticle)))){
return (testOBBvsOBB((_arg1 as RectangleParticle), (_arg2 as RectangleParticle)));
};
if ((((_arg1 is CircleParticle)) && ((_arg2 is CircleParticle)))){
return (testCirclevsCircle((_arg1 as CircleParticle), (_arg2 as CircleParticle)));
};
if ((((_arg1 is RectangleParticle)) && ((_arg2 is CircleParticle)))){
return (testOBBvsCircle((_arg1 as RectangleParticle), (_arg2 as CircleParticle)));
};
if ((((_arg1 is CircleParticle)) && ((_arg2 is RectangleParticle)))){
return (testOBBvsCircle((_arg2 as RectangleParticle), (_arg1 as CircleParticle)));
};
return (false);
}
private static function sampVsNorm(_arg1:AbstractParticle, _arg2:AbstractParticle):void{
var _local3:Number;
var _local4:Number;
var _local5:int;
_local3 = (1 / (_arg1.multisample + 1));
_local4 = _local3;
_arg2.samp.copy(_arg2.curr);
_local5 = 0;
while (_local5 <= _arg1.multisample) {
_arg1.samp.setTo((_arg1.prev.x + (_local4 * (_arg1.curr.x - _arg1.prev.x))), (_arg1.prev.y + (_local4 * (_arg1.curr.y - _arg1.prev.y))));
if (testTypes(_arg1, _arg2)){
return;
};
_local4 = (_local4 + _local3);
_local5++;
};
}
private static function closestVertexOnOBB(_arg1:Vector, _arg2:RectangleParticle):Vector{
var _local3:Vector;
var _local4:Vector;
var _local5:int;
var _local6:Number;
_local3 = _arg1.minus(_arg2.samp);
_local4 = new Vector(_arg2.samp.x, _arg2.samp.y);
_local5 = 0;
while (_local5 < 2) {
_local6 = _local3.dot(_arg2.axes[_local5]);
if (_local6 >= 0){
_local6 = _arg2.extents[_local5];
} else {
if (_local6 < 0){
_local6 = -(_arg2.extents[_local5]);
};
};
_local4.plusEquals(_arg2.axes[_local5].mult(_local6));
_local5++;
};
return (_local4);
}
private static function testOBBvsOBB(_arg1:RectangleParticle, _arg2:RectangleParticle):Boolean{
var _local3:Vector;
var _local4:Number;
var _local5:int;
var _local6:Vector;
var _local7:Number;
var _local8:Vector;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Boolean;
_local4 = Number.POSITIVE_INFINITY;
_local5 = 0;
while (_local5 < 2) {
_local6 = _arg1.axes[_local5];
_local7 = testIntervals(_arg1.getProjection(_local6), _arg2.getProjection(_local6));
if (_local7 == 0){
return (false);
};
_local8 = _arg2.axes[_local5];
_local9 = testIntervals(_arg1.getProjection(_local8), _arg2.getProjection(_local8));
if (_local9 == 0){
return (false);
};
_local10 = Math.abs(_local7);
_local11 = Math.abs(_local9);
if ((((_local10 < Math.abs(_local4))) || ((_local11 < Math.abs(_local4))))){
_local12 = (_local10 < _local11);
_local3 = (_local12) ? _local6 : _local8;
_local4 = (_local12) ? _local7 : _local9;
};
_local5++;
};
CollisionResolver.resolveParticleParticle(_arg1, _arg2, _local3, _local4);
return (true);
}
private static function sampVsSamp(_arg1:AbstractParticle, _arg2:AbstractParticle):void{
var _local3:Number;
var _local4:Number;
var _local5:int;
_local3 = (1 / (_arg1.multisample + 1));
_local4 = _local3;
_local5 = 0;
while (_local5 <= _arg1.multisample) {
_arg1.samp.setTo((_arg1.prev.x + (_local4 * (_arg1.curr.x - _arg1.prev.x))), (_arg1.prev.y + (_local4 * (_arg1.curr.y - _arg1.prev.y))));
_arg2.samp.setTo((_arg2.prev.x + (_local4 * (_arg2.curr.x - _arg2.prev.x))), (_arg2.prev.y + (_local4 * (_arg2.curr.y - _arg2.prev.y))));
if (testTypes(_arg1, _arg2)){
return;
};
_local4 = (_local4 + _local3);
_local5++;
};
}
}
}//package org.cove.ape
Section 146
//CollisionResolver (org.cove.ape.CollisionResolver)
package org.cove.ape {
import org.cove.ape.*;
final class CollisionResolver {
static function resolveParticleParticle(_arg1:AbstractParticle, _arg2:AbstractParticle, _arg3:Vector, _arg4:Number):void{
var _local5:Vector;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Collision;
var _local10:Collision;
var _local11:Vector;
var _local12:Vector;
var _local13:Vector;
var _local14:Vector;
_arg1.curr.copy(_arg1.samp);
_arg2.curr.copy(_arg2.samp);
_local5 = _arg3.mult(_arg4);
_local6 = (_arg1.elasticity + _arg2.elasticity);
_local7 = (_arg1.invMass + _arg2.invMass);
_local8 = clamp((1 - (_arg1.friction + _arg2.friction)), 0, 1);
_local9 = _arg1.
(_arg3);
_local10 = _arg2.
(_arg3);
_local11 = _local10.vn.mult(((_local6 + 1) * _arg1.invMass)).plus(_local9.vn.mult((_arg2.invMass - (_local6 * _arg1.invMass)))).
(_local7);
_local12 = _local9.vn.mult(((_local6 + 1) * _arg2.invMass)).plus(_local10.vn.mult((_arg1.invMass - (_local6 * _arg2.invMass)))).
(_local7);
_local9.vt.multEquals(_local8);
_local10.vt.multEquals(_local8);
_local13 = _local5.mult((_arg1.invMass / _local7));
_local14 = _local5.mult((-(_arg2.invMass) / _local7));
_local11.plusEquals(_local9.vt);
_local12.plusEquals(_local10.vt);
if (!_arg1.fixed){
_arg1.resolveCollision(_local13, _local11, _arg3, _arg4, -1, _arg2);
};
if (!_arg2.fixed){
_arg2.resolveCollision(_local14, _local12, _arg3, _arg4, 1, _arg1);
};
}
static function clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{
if (_arg1 > _arg3){
return (_arg3);
};
if (_arg1 < _arg2){
return (_arg2);
};
return (_arg1);
}
}
}//package org.cove.ape
Section 147
//Composite (org.cove.ape.Composite)
package org.cove.ape {
public class Composite extends AbstractCollection {
private var delta:Vector;
public function Composite(){
delta = new Vector();
}
private function (_arg1:Vector, _arg2:Vector):Number{
delta.setTo((_arg2.x - _arg1.x), (_arg2.y - _arg1.y));
return (Math.atan2(delta.y, delta.x));
}
public function (_arg1:Number, _arg2:Vector):void{
var _local3:AbstractParticle;
var _local4:Array;
var _local5:int;
var _local6:int;
var _local7:Number;
var _local8:Number;
_local4 = particles;
_local5 = _local4.length;
_local6 = 0;
while (_local6 < _local5) {
_local3 = _local4[_local6];
_local7 = _local3.center.distance(_arg2);
_local8 = ((_arg2, _local3.center) + _arg1);
_local3.px = ((Math.cos(_local8) * _local7) + _arg2.x);
_local3.py = ((Math.sin(_local8) * _local7) + _arg2.y);
_local6++;
};
}
public function (_arg1:Number, _arg2:Vector):void{
var _local3:Number;
_local3 = (_arg1 * MathUtil.PI_OVER_ONE_EIGHTY);
(_local3, _arg2);
}
public function set fixed(_arg1:Boolean):void{
var _local2:int;
_local2 = 0;
while (_local2 < particles.length) {
particles[_local2].fixed = _arg1;
_local2++;
};
}
public function get fixed():Boolean{
var _local1:int;
_local1 = 0;
while (_local1 < particles.length) {
if (!particles[_local1].fixed){
return (false);
};
_local1++;
};
return (true);
}
}
}//package org.cove.ape
Section 148
//Group (org.cove.ape.Group)
package org.cove.ape {
public class Group extends AbstractCollection {
private var :Boolean;
private var :Array;
private var
:Array;
public function Group(_arg1:Boolean=false){
= new Array();
= new Array();
this.collideInternal = _arg1;
}
function checkCollisions():void{
var _local1:int;
var _local2:int;
var _local3:Group;
if (collideInternal){
();
};
_local1 = collisionList.length;
_local2 = 0;
while (_local2 < _local1) {
_local3 = collisionList[_local2];
(_local3);
_local2++;
};
}
public function get composites():Array{
return ();
}
override public function init():void{
var _local1:int;
super.init();
_local1 = 0;
while (_local1 < composites.length) {
composites[_local1].init();
_local1++;
};
}
public function (_arg1:Group):void{
var _local2:int;
_local2 = collisionList.indexOf(_arg1);
if (_local2 == -1){
return;
};
collisionList.splice(_local2, 1);
}
private function (_arg1:Group):void{
var _local2:int;
var _local3:int;
var _local4:int;
var _local5:Composite;
var _local6:int;
var _local7:Composite;
checkCollisionsVsCollection(_arg1);
_local2 = .length;
_local3 = _arg1.composites.length;
_local4 = 0;
while (_local4 < _local2) {
_local5 = [_local4];
_local5.checkCollisionsVsCollection(_arg1);
_local6 = 0;
while (_local6 < _local3) {
_local7 = _arg1.composites[_local6];
_local5.checkCollisionsVsCollection(_local7);
_local6++;
};
_local4++;
};
_local6 = 0;
while (_local6 < _local3) {
_local7 = _arg1.composites[_local6];
checkCollisionsVsCollection(_local7);
_local6++;
};
}
override function satisfyConstraints():void{
var _local1:int;
var _local2:int;
var _local3:Composite;
super.satisfyConstraints();
_local1 = .length;
_local2 = 0;
while (_local2 < _local1) {
_local3 = [_local2];
_local3.satisfyConstraints();
_local2++;
};
}
public function get collideInternal():Boolean{
return ();
}
public function (_arg1:Array):void{
var _local2:int;
var _local3:Group;
_local2 = 0;
while (_local2 < _arg1.length) {
_local3 = _arg1[_local2];
collisionList.push(_local3);
_local2++;
};
}
public function (_arg1:Composite):void{
var _local2:int;
_local2 = composites.indexOf(_arg1);
if (_local2 == -1){
return;
};
composites.splice(_local2, 1);
_arg1.isParented = false;
_arg1.cleanup();
}
override public function cleanup():void{
var _local1:int;
super.cleanup();
_local1 = 0;
while (_local1 < composites.length) {
composites[_local1].cleanup();
_local1++;
};
}
override public function paint():void{
var _local1:int;
var _local2:int;
var _local3:Composite;
super.paint();
_local1 = .length;
_local2 = 0;
while (_local2 < _local1) {
_local3 = [_local2];
_local3.paint();
_local2++;
};
}
public function (_arg1:Group):void{
collisionList.push(_arg1);
}
override public function getAll():Array{
return (particles.concat(constraints).concat(composites));
}
public function get collisionList():Array{
return (
);
}
override function integrate(_arg1:Number):void{
var _local2:int;
var _local3:int;
var _local4:Composite;
super.integrate(_arg1);
_local2 = .length;
_local3 = 0;
while (_local3 < _local2) {
_local4 = [_local3];
_local4.integrate(_arg1);
_local3++;
};
}
public function (_arg1:Composite):void{
composites.push(_arg1);
_arg1.isParented = true;
if (isParented){
_arg1.init();
};
}
private function ():void{
var _local1:int;
var _local2:int;
var _local3:Composite;
var _local4:int;
var _local5:Composite;
checkInternalCollisions();
_local1 = .length;
_local2 = 0;
while (_local2 < _local1) {
_local3 = [_local2];
_local3.checkCollisionsVsCollection(this);
_local4 = (_local2 + 1);
while (_local4 < _local1) {
_local5 = [_local4];
_local3.checkCollisionsVsCollection(_local5);
_local4++;
};
_local2++;
};
}
public function set collideInternal(_arg1:Boolean):void{
= _arg1;
}
}
}//package org.cove.ape
Section 149
//Interval (org.cove.ape.Interval)
package org.cove.ape {
final class Interval {
var min:Number;
var max:Number;
function Interval(_arg1:Number, _arg2:Number){
this.min = _arg1;
this.max = _arg2;
}
function toString():String{
return (((min + " : ") + max));
}
}
}//package org.cove.ape
Section 150
//MathUtil (org.cove.ape.MathUtil)
package org.cove.ape {
final class MathUtil {
static var ONE_EIGHTY_OVER_PI:Number = 57.2957795130823;
static var PI_OVER_ONE_EIGHTY:Number = 0.0174532925199433;
static function clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{
if (_arg1 < _arg2){
return (_arg2);
};
if (_arg1 > _arg3){
return (_arg3);
};
return (_arg1);
}
static function sign(_arg1:Number):int{
if (_arg1 < 0){
return (-1);
};
return (1);
}
}
}//package org.cove.ape
Section 151
//RectangleParticle (org.cove.ape.RectangleParticle)
package org.cove.ape {
public class RectangleParticle extends AbstractParticle {
private var :Array;
private var :Number;
private var :Array;
public function RectangleParticle(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Boolean=false, _arg7:Number=1, _arg8:Number=0.3, _arg9:Number=0){
super(_arg1, _arg2, _arg6, _arg7, _arg8, _arg9);
= new Array((_arg3 / 2), (_arg4 / 2));
= new Array(new Vector(0, 0), new Vector(0, 0));
radian = _arg5;
}
override public function init():void{
var _local1:Number;
var _local2:Number;
cleanup();
if (displayObject != null){
initDisplay();
} else {
_local1 = (extents[0] * 2);
_local2 = (extents[1] * 2);
sprite.graphics.clear();
sprite.graphics.lineStyle(lineThickness, lineColor, lineAlpha);
sprite.graphics.beginFill(fillColor, fillAlpha);
sprite.graphics.drawRect((-(_local1) / 2), (-(_local2) / 2), _local1, _local2);
sprite.graphics.endFill();
};
paint();
}
public function set width(_arg1:Number):void{
[0] = (_arg1 / 2);
}
function get axes():Array{
return ();
}
public function get height():Number{
return (([1] * 2));
}
function get extents():Array{
return ();
}
public function set angle(_arg1:Number):void{
radian = (_arg1 * MathUtil.PI_OVER_ONE_EIGHTY);
}
private function (_arg1:Number):void{
var _local2:Number;
var _local3:Number;
_local2 = Math.sin(_arg1);
_local3 = Math.cos(_arg1);
axes[0].x = _local3;
axes[0].y = _local2;
axes[1].x = -(_local2);
axes[1].y = _local3;
}
public function get radian():Number{
return ();
}
public function get width():Number{
return (([0] * 2));
}
public function set height(_arg1:Number):void{
[1] = (_arg1 / 2);
}
public function get angle():Number{
return ((radian * MathUtil.ONE_EIGHTY_OVER_PI));
}
function getProjection(_arg1:Vector):Interval{
var _local2:Number;
var _local3:Number;
_local2 = ((extents[0] * Math.abs(_arg1.dot(axes[0]))) + (extents[1] * Math.abs(_arg1.dot(axes[1]))));
_local3 = samp.dot(_arg1);
interval.min = (_local3 - _local2);
interval.max = (_local3 + _local2);
return (interval);
}
public function set radian(_arg1:Number):void{
= _arg1;
(_arg1);
}
override public function paint():void{
sprite.x = curr.x;
sprite.y = curr.y;
sprite.rotation = angle;
}
}
}//package org.cove.ape
Section 152
//SpringConstraint (org.cove.ape.SpringConstraint)
package org.cove.ape {
import flash.display.*;
public class SpringConstraint extends AbstractConstraint {
private var :Boolean;
private var :Number;
private var p1:AbstractParticle;
private var p2:AbstractParticle;
private var :SpringConstraintParticle;
public function SpringConstraint(_arg1:AbstractParticle, _arg2:AbstractParticle, _arg3:Number=0.5, _arg4:Boolean=false, _arg5:Number=1, _arg6:Number=1, _arg7:Boolean=false){
super(_arg3);
this.p1 = _arg1;
this.p2 = _arg2;
();
= currLength;
(_arg4, _arg5, _arg6, _arg7);
}
public function set rectScale(_arg1:Number):void{
if (scp == null){
return;
};
scp.rectScale = _arg1;
}
override public function init():void{
cleanup();
if (collidable){
scp.init();
} else {
if (displayObject != null){
initDisplay();
};
};
paint();
}
function initDisplay():void{
if (collidable){
scp.initDisplay();
} else {
displayObject.x = displayObjectOffset.x;
displayObject.y = displayObjectOffset.y;
displayObject.rotation = displayObjectRotation;
sprite.addChild(displayObject);
};
}
private function ():void{
if ((((p1.curr.x == p2.curr.x)) && ((p1.curr.y == p2.curr.y)))){
p2.curr.x = (p2.curr.x + 0.0001);
};
}
public function get radian():Number{
var _local1:Vector;
_local1 = delta;
return (Math.atan2(_local1.y, _local1.x));
}
function get scp():SpringConstraintParticle{
return ( );
}
public function get rectHeight():Number{
return (scp.rectHeight);
}
public function setDisplay(_arg1:DisplayObject, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0):void{
if (collidable){
scp.setDisplay(_arg1, _arg2, _arg3, _arg4);
} else {
displayObject = _arg1;
displayObjectRotation = _arg4;
displayObjectOffset = new Vector(_arg2, _arg3);
};
}
public function set restLength(_arg1:Number):void{
if (_arg1 <= 0){
throw (new ArgumentError("restLength must be greater than 0"));
};
= _arg1;
}
public function get currLength():Number{
return (p1.curr.distance(p2.curr));
}
public function get fixedEndLimit():Number{
return (scp.fixedEndLimit);
}
public function get rectScale():Number{
return (scp.rectScale);
}
function get delta():Vector{
return (p1.curr.minus(p2.curr));
}
public function get angle():Number{
return ((radian * MathUtil.ONE_EIGHTY_OVER_PI));
}
public function get center():Vector{
return (p1.curr.plus(p2.curr).
(2));
}
public function set rectHeight(_arg1:Number):void{
if (scp == null){
return;
};
scp.rectHeight = _arg1;
}
public function get restLength():Number{
return ();
}
override public function paint():void{
var _local1:Vector;
if (collidable){
scp.paint();
} else {
if (displayObject != null){
_local1 = center;
sprite.x = _local1.x;
sprite.y = _local1.y;
sprite.rotation = angle;
} else {
sprite.graphics.clear();
sprite.graphics.lineStyle(lineThickness, lineColor, lineAlpha);
sprite.graphics.moveTo(p1.px, p1.py);
sprite.graphics.lineTo(p2.px, p2.py);
};
};
}
public function
(_arg1:Boolean, _arg2:Number, _arg3:Number, _arg4:Boolean=false):void{
= _arg1;
= null;
if (){
= new SpringConstraintParticle(p1, p2, this, _arg2, _arg3, _arg4);
};
}
public function get collidable():Boolean{
return ();
}
public function isConnectedTo(_arg1:AbstractParticle):Boolean{
return ((((_arg1 == p1)) || ((_arg1 == p2))));
}
override function resolve():void{
var _local1:Number;
var _local2:Number;
var _local3:Vector;
if (((p1.fixed) && (p2.fixed))){
return;
};
_local1 = currLength;
_local2 = ((_local1 - restLength) / (_local1 * (p1.invMass + p2.invMass)));
_local3 = delta.mult((_local2 * stiffness));
p1.curr.minusEquals(_local3.mult(p1.invMass));
p2.curr.plusEquals(_local3.mult(p2.invMass));
}
public function get fixed():Boolean{
return (((p1.fixed) && (p2.fixed)));
}
public function set fixedEndLimit(_arg1:Number):void{
if (scp == null){
return;
};
scp.fixedEndLimit = _arg1;
}
}
}//package org.cove.ape
Section 153
//SpringConstraintParticle (org.cove.ape.SpringConstraintParticle)
package org.cove.ape {
import flash.display.*;
import org.cove.ape.*;
class SpringConstraintParticle extends RectangleParticle {
private var :Number;
private var :Number;
private var :Vector;
private var :Vector;
private var s:Number;
private var parent:SpringConstraint;
private var :Boolean;
private var p1:AbstractParticle;
private var p2:AbstractParticle;
private var :Vector;
private var
:Vector;
private var :Number;
function SpringConstraintParticle(_arg1:AbstractParticle, _arg2:AbstractParticle, _arg3:SpringConstraint, _arg4:Number, _arg5:Number, _arg6:Boolean){
super(0, 0, 0, 0, 0, false);
this.p1 = _arg1;
this.p2 = _arg2;
= new Vector(0, 0);
= new Vector(0, 0);
parent = _arg3;
this.rectScale = _arg5;
this.rectHeight = _arg4;
this. = _arg6;
fixedEndLimit = 0;
= new Vector();
= new Vector();
}
private function
(_arg1:RectangleParticle, _arg2:int):void{
var _local3:Number;
var _local4:Number;
var _local5:Array;
var _local6:Array;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
_local3 = _arg1.curr.x;
_local4 = _arg1.curr.y;
_local5 = _arg1.axes;
_local6 = _arg1.extents;
_local7 = (_local5[0].x * _local6[0]);
_local8 = (_local5[0].y * _local6[0]);
_local9 = (_local5[1].x * _local6[1]);
_local10 = (_local5[1].y * _local6[1]);
_local11 = (_local7 - _local9);
_local12 = (_local8 - _local10);
_local13 = (_local7 + _local9);
_local14 = (_local8 + _local10);
if (_arg2 == 0){
.x = (_local3 - _local13);
.y = (_local4 - _local14);
.x = (_local3 + _local11);
.y = (_local4 + _local12);
} else {
if (_arg2 == 1){
.x = (_local3 + _local11);
.y = (_local4 + _local12);
.x = (_local3 + _local13);
.y = (_local4 + _local14);
} else {
if (_arg2 == 2){
.x = (_local3 + _local13);
.y = (_local4 + _local14);
.x = (_local3 - _local11);
.y = (_local4 - _local12);
} else {
if (_arg2 == 3){
.x = (_local3 - _local11);
.y = (_local4 - _local12);
.x = (_local3 - _local13);
.y = (_local4 - _local14);
};
};
};
};
}
override public function init():void{
var _local1:Sprite;
var _local2:Number;
var _local3:Number;
if (displayObject != null){
initDisplay();
} else {
_local1 = new Sprite();
parent.sprite.addChild(_local1);
_local1.name = "inner";
_local2 = (parent.currLength * rectScale);
_local3 = rectHeight;
_local1.graphics.clear();
_local1.graphics.lineStyle(parent.lineThickness, parent.lineColor, parent.lineAlpha);
_local1.graphics.beginFill(parent.fillColor, parent.fillAlpha);
_local1.graphics.drawRect((-(_local2) / 2), (-(_local3) / 2), _local2, _local3);
_local1.graphics.endFill();
};
paint();
}
function updatePosition():void{
var _local1:Vector;
_local1 = parent.center;
curr.setTo(_local1.x, _local1.y);
width = () ? (parent.currLength * rectScale) : (parent.restLength * rectScale);
height = rectHeight;
radian = parent.radian;
}
private function ():Number{
var _local1:Vector;
var _local2:Vector;
var _local3:Vector;
var _local4:Vector;
var _local5:Vector;
var _local6:Vector;
var _local7:Vector;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Vector;
var _local16:Vector;
var _local17:Vector;
_local1 = p1.curr;
_local2 = p2.curr;
_local3 = ;
_local4 = ;
_local5 = _local2.minus(_local1);
_local6 = _local4.minus(_local3);
_local7 = _local1.minus(_local3);
_local9 = _local5.dot(_local5);
_local10 = _local6.dot(_local6);
_local11 = _local6.dot(_local7);
_local12 = _local5.dot(_local7);
_local13 = _local5.dot(_local6);
_local14 = ((_local9 * _local10) - (_local13 * _local13));
if (_local14 != 0){
s = MathUtil.clamp((((_local13 * _local11) - (_local12 * _local10)) / _local14), 0, 1);
} else {
s = 0.5;
};
_local8 = (((_local13 * s) + _local11) / _local10);
if (_local8 < 0){
_local8 = 0;
s = MathUtil.clamp((-(_local12) / _local9), 0, 1);
} else {
if (_local8 > 0){
_local8 = 1;
s = MathUtil.clamp(((_local13 - _local12) / _local9), 0, 1);
};
};
_local15 = _local1.plus(_local5.mult(s));
_local16 = _local3.plus(_local6.mult(_local8));
_local17 = _local15.minus(_local16);
return (_local15.minus(_local16).dot(_local17));
}
function get rectHeight():Number{
return ();
}
function get fixedEndLimit():Number{
return ();
}
private function (_arg1:Vector):Number{
var _local2:Vector;
var _local3:Number;
_local2 = p2.curr.minus(p1.curr);
_local3 = (_local2.dot(_arg1.minus(p1.curr)) / _local2.dot(_local2));
return (MathUtil.clamp(_local3, 0, 1));
}
function set rectHeight(_arg1:Number):void{
= _arg1;
}
override public function paint():void{
var _local1:Vector;
var _local2:Sprite;
_local1 = parent.center;
_local2 = parent.sprite;
if (){
_local2.getChildByName("inner").width = (parent.currLength * rectScale);
} else {
if (displayObject != null){
_local2.getChildByName("inner").width = (parent.restLength * rectScale);
};
};
_local2.x = _local1.x;
_local2.y = _local1.y;
_local2.rotation = parent.angle;
}
private function (_arg1:AbstractParticle):Number{
var _local2:Number;
var _local3:Number;
var _local4:Array;
var _local5:Number;
var _local6:int;
var _local7:Number;
if ((_arg1 is CircleParticle)){
_local2 = (_arg1.curr);
} else {
if ((_arg1 is RectangleParticle)){
_local4 = new Array(4);
_local5 = Number.POSITIVE_INFINITY;
_local6 = 0;
while (_local6 < 4) {
((_arg1 as RectangleParticle), _local6);
_local7 = ();
if (_local7 < _local5){
_local5 = _local7;
_local3 = _local6;
_local4[_local6] = s;
};
_local6++;
};
_local2 = _local4[_local3];
};
};
return (_local2);
}
function set fixedEndLimit(_arg1:Number):void{
= _arg1;
}
override function get invMass():Number{
if (((p1.fixed) && (p2.fixed))){
return (0);
};
return ((1 / ((p1.mass + p2.mass) / 2)));
}
override function initDisplay():void{
var _local1:Sprite;
displayObject.x = displayObjectOffset.x;
displayObject.y = displayObjectOffset.y;
displayObject.rotation = displayObjectRotation;
_local1 = new Sprite();
_local1.name = "inner";
_local1.addChild(displayObject);
parent.sprite.addChild(_local1);
}
function set rectScale(_arg1:Number):void{
= _arg1;
}
override function resolveCollision(_arg1:Vector, _arg2:Vector, _arg3:Vector, _arg4:Number, _arg5:int, _arg6:AbstractParticle):void{
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:AbstractParticle;
_local7 = (_arg6);
_local8 = (1 - _local7);
_local9 = _local7;
if (p1.fixed){
if (_local9 <= fixedEndLimit){
return;
};
.setTo((_arg1.x / _local9), (_arg1.y / _local9));
p2.curr.plusEquals( );
p2.velocity = _arg2;
} else {
if (p2.fixed){
if (_local8 <= fixedEndLimit){
return;
};
.setTo((_arg1.x / _local8), (_arg1.y / _local8));
p1.curr.plusEquals( );
p1.velocity = _arg2;
} else {
_local10 = ((_local8 * _local8) + (_local9 * _local9));
if (_local10 == 0){
return;
};
.setTo((_arg1.x / _local10), (_arg1.y / _local10));
p1.curr.plusEquals( .mult(_local8));
p2.curr.plusEquals( .mult(_local9));
if (_local7 == 0.5){
p1.velocity = _arg2;
p2.velocity = _arg2;
} else {
_local11 = ((_local7)<0.5) ? p1 : p2;
_local11.velocity = _arg2;
};
};
};
}
override public function get elasticity():Number{
return (((p1.elasticity + p2.elasticity) / 2));
}
function get rectScale():Number{
return ();
}
override public function get velocity():Vector{
var _local1:Vector;
var _local2:Vector;
_local1 = p1.velocity;
_local2 = p2.velocity;
.setTo(((_local1.x + _local2.x) / 2), ((_local1.y + _local2.y) / 2));
return (
);
}
override public function get friction():Number{
return (((p1.friction + p2.friction) / 2));
}
override public function get mass():Number{
return (((p1.mass + p2.mass) / 2));
}
}
}//package org.cove.ape
Section 154
//Vector (org.cove.ape.Vector)
package org.cove.ape {
public class Vector {
public var x:Number;
public var y:Number;
public function Vector(_arg1:Number=0, _arg2:Number=0){
x = _arg1;
y = _arg2;
}
public function (_arg1:Vector):Number{
return (((x * _arg1.y) - (y * _arg1.x)));
}
public function ():Number{
return (Math.sqrt(((x * x) + (y * y))));
}
public function
(_arg1:Number):Vector{
if (_arg1 == 0){
_arg1 = 0.0001;
};
x = (x / _arg1);
y = (y / _arg1);
return (this);
}
public function (_arg1:Vector):Vector{
return (new Vector((x * _arg1.x), (y * _arg1.y)));
}
public function plusEquals(_arg1:Vector):Vector{
x = (x + _arg1.x);
y = (y + _arg1.y);
return (this);
}
public function dot(_arg1:Vector):Number{
return (((x * _arg1.x) + (y * _arg1.y)));
}
public function toString():String{
return (((x + " : ") + y));
}
public function ():Vector{
var _local1:Number;
_local1 = ();
if (_local1 == 0){
_local1 = 0.0001;
};
return (mult((1 / _local1)));
}
public function copy(_arg1:Vector):void{
x = _arg1.x;
y = _arg1.y;
}
public function minusEquals(_arg1:Vector):Vector{
x = (x - _arg1.x);
y = (y - _arg1.y);
return (this);
}
public function minus(_arg1:Vector):Vector{
return (new Vector((x - _arg1.x), (y - _arg1.y)));
}
public function plus(_arg1:Vector):Vector{
return (new Vector((x + _arg1.x), (y + _arg1.y)));
}
public function distance(_arg1:Vector):Number{
var _local2:Vector;
_local2 = this.minus(_arg1);
return (_local2. ());
}
public function setTo(_arg1:Number, _arg2:Number):void{
x = _arg1;
y = _arg2;
}
public function multEquals(_arg1:Number):Vector{
x = (x * _arg1);
y = (y * _arg1);
return (this);
}
public function mult(_arg1:Number):Vector{
return (new Vector((x * _arg1), (y * _arg1)));
}
}
}//package org.cove.ape
Section 155
//__61 (top_figures_2_2_fla.__61)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class __61 extends MovieClip {
public function __61(){
addFrameScript(0, frame1);
}
function frame1(){
(this as MovieClip).mouseChildren = false;
(this as MovieClip).mouseEnabled = false;
}
}
}//package top_figures_2_2_fla
Section 156
//_levelselect0004copy_86 (top_figures_2_2_fla._levelselect0004copy_86)
package top_figures_2_2_fla {
import flash.events.*;
import flash.display.*;
public dynamic class _levelselect0004copy_86 extends MovieClip {
public var closeBtn:SimpleButton;
public function _levelselect0004copy_86(){
addFrameScript(0, frame1);
}
public function (_arg1:MouseEvent=null){
(this as MovieClip).gotoAndStop(1);
}
function frame1(){
(this["closeBtn"] as SimpleButton).addEventListener(MouseEvent.CLICK, );
stop();
}
}
}//package top_figures_2_2_fla
Section 157
//arrow__128 (top_figures_2_2_fla.arrow__128)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class arrow__128 extends MovieClip {
public var line:MovieClip;
}
}//package top_figures_2_2_fla
Section 158
//arrow_3_109 (top_figures_2_2_fla.arrow_3_109)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class arrow_3_109 extends MovieClip {
public var begun:MovieClip;
}
}//package top_figures_2_2_fla
Section 159
//arrow_show_101 (top_figures_2_2_fla.arrow_show_101)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class arrow_show_101 extends MovieClip {
public function arrow_show_101(){
addFrameScript(14, );
}
function (){
stop();
}
}
}//package top_figures_2_2_fla
Section 160
//author_mc_123 (top_figures_2_2_fla.author_mc_123)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class author_mc_123 extends MovieClip {
public function author_mc_123(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package top_figures_2_2_fla
Section 161
//best_mc_122 (top_figures_2_2_fla.best_mc_122)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class best_mc_122 extends MovieClip {
public function best_mc_122(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package top_figures_2_2_fla
Section 162
//bgSelectorItem_115 (top_figures_2_2_fla.bgSelectorItem_115)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class bgSelectorItem_115 extends MovieClip {
public function bgSelectorItem_115(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package top_figures_2_2_fla
Section 163
//blick_137 (top_figures_2_2_fla.blick_137)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class blick_137 extends MovieClip {
public function blick_137(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package top_figures_2_2_fla
Section 164
//blick_56 (top_figures_2_2_fla.blick_56)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class blick_56 extends MovieClip {
public function blick_56(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package top_figures_2_2_fla
Section 165
//blick4_83 (top_figures_2_2_fla.blick4_83)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class blick4_83 extends MovieClip {
public function blick4_83(){
addFrameScript(0, frame1);
}
function frame1(){
}
}
}//package top_figures_2_2_fla
Section 166
//cirkle_line_263 (top_figures_2_2_fla.cirkle_line_263)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class cirkle_line_263 extends MovieClip {
public function cirkle_line_263(){
addFrameScript(0, frame1, 4, frame5);
}
function frame1(){
stop();
}
function frame5(){
stop();
}
}
}//package top_figures_2_2_fla
Section 167
//cursor_light_260 (top_figures_2_2_fla.cursor_light_260)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class cursor_light_260 extends MovieClip {
public function cursor_light_260(){
addFrameScript(6, frame7);
}
function frame7(){
stop();
}
}
}//package top_figures_2_2_fla
Section 168
//cursor_light2_256 (top_figures_2_2_fla.cursor_light2_256)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class cursor_light2_256 extends MovieClip {
public function cursor_light2_256(){
addFrameScript(6, frame7);
}
function frame7(){
stop();
}
}
}//package top_figures_2_2_fla
Section 169
//delete_btn_265 (top_figures_2_2_fla.delete_btn_265)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class delete_btn_265 extends MovieClip {
public function delete_btn_265(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package top_figures_2_2_fla
Section 170
//DoktorZed00347_72 (top_figures_2_2_fla.DoktorZed00347_72)
package top_figures_2_2_fla {
import flash.display.*;
import flash.text.*;
public dynamic class DoktorZed00347_72 extends MovieClip {
public var level:TextField;
public function DoktorZed00347_72(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package top_figures_2_2_fla
Section 171
//editor_gallery_280 (top_figures_2_2_fla.editor_gallery_280)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class editor_gallery_280 extends MovieClip {
public var b10:MovieClip;
public var b14:MovieClip;
public var b17:MovieClip;
public var b18:MovieClip;
public var b13:MovieClip;
public var b15:MovieClip;
public var b16:MovieClip;
public var b2:MovieClip;
public var b7:MovieClip;
public var b1:MovieClip;
public var b19:MovieClip;
public var b6:MovieClip;
public var b29:MovieClip;
public var b26:MovieClip;
public var b27:MovieClip;
public var b21:MovieClip;
public var b23:MovieClip;
public var b3:MovieClip;
public var b5:MovieClip;
public var b11:MovieClip;
public var b12:MovieClip;
public var b4:MovieClip;
public var b8:MovieClip;
public var b22:MovieClip;
public var b30:MovieClip;
public var b20:MovieClip;
public var b28:MovieClip;
public var b9:MovieClip;
public var close_btn:SimpleButton;
public var b24:MovieClip;
public var b25:MovieClip;
public var b31:MovieClip;
}
}//package top_figures_2_2_fla
Section 172
//editor_load_282 (top_figures_2_2_fla.editor_load_282)
package top_figures_2_2_fla {
import flash.display.*;
import flash.text.*;
public dynamic class editor_load_282 extends MovieClip {
public var text:TextField;
public var load_btn:SimpleButton;
public var close_btn:SimpleButton;
}
}//package top_figures_2_2_fla
Section 173
//editor_menu_286 (top_figures_2_2_fla.editor_menu_286)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class editor_menu_286 extends MovieClip {
public var indicator:MovieClip;
public var test_btn:SimpleButton;
public var clear_btn:SimpleButton;
public var load_btn:SimpleButton;
public var save_btn:SimpleButton;
public var exit_btn:SimpleButton;
public var add_btn:SimpleButton;
}
}//package top_figures_2_2_fla
Section 174
//editor_save_284 (top_figures_2_2_fla.editor_save_284)
package top_figures_2_2_fla {
import flash.display.*;
import flash.text.*;
public dynamic class editor_save_284 extends MovieClip {
public var text:TextField;
public var close_btn:SimpleButton;
public var copy_btn:SimpleButton;
}
}//package top_figures_2_2_fla
Section 175
//flag_bg_4 (top_figures_2_2_fla.flag_bg_4)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class flag_bg_4 extends MovieClip {
public function flag_bg_4(){
addFrameScript(4, frame5);
}
function frame5(){
stop();
}
}
}//package top_figures_2_2_fla
Section 176
//gamezhero_gameZheroPreloader_357 (top_figures_2_2_fla.gamezhero_gameZheroPreloader_357)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class gamezhero_gameZheroPreloader_357 extends MovieClip {
public var pr:MovieClip;
public function gamezhero_gameZheroPreloader_357(){
addFrameScript(139, );
}
function (){
stop();
}
}
}//package top_figures_2_2_fla
Section 177
//gamezhero_preloaderLine_358 (top_figures_2_2_fla.gamezhero_preloaderLine_358)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class gamezhero_preloaderLine_358 extends MovieClip {
public var begun:MovieClip;
}
}//package top_figures_2_2_fla
Section 178
//gamezhero_z_2_347 (top_figures_2_2_fla.gamezhero_z_2_347)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class gamezhero_z_2_347 extends MovieClip {
public function gamezhero_z_2_347(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package top_figures_2_2_fla
Section 179
//gamezhero1_133 (top_figures_2_2_fla.gamezhero1_133)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class gamezhero1_133 extends MovieClip {
public var blick2:MovieClip;
public var blick:MovieClip;
}
}//package top_figures_2_2_fla
Section 180
//help1_91 (top_figures_2_2_fla.help1_91)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class help1_91 extends MovieClip {
public var cursor:MovieClip;
}
}//package top_figures_2_2_fla
Section 181
//help2_102 (top_figures_2_2_fla.help2_102)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class help2_102 extends MovieClip {
public var cursor:MovieClip;
}
}//package top_figures_2_2_fla
Section 182
//help3_108 (top_figures_2_2_fla.help3_108)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class help3_108 extends MovieClip {
public var arrow2:MovieClip;
public var cursor:MovieClip;
}
}//package top_figures_2_2_fla
Section 183
//line_129 (top_figures_2_2_fla.line_129)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class line_129 extends MovieClip {
public function line_129(){
addFrameScript(79, );
}
function (){
gotoAndPlay(1);
}
}
}//package top_figures_2_2_fla
Section 184
//menu_b1_37 (top_figures_2_2_fla.menu_b1_37)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class menu_b1_37 extends MovieClip {
public function menu_b1_37(){
addFrameScript(5, frame6);
}
function frame6(){
stop();
}
}
}//package top_figures_2_2_fla
Section 185
//menu_b1copy_77 (top_figures_2_2_fla.menu_b1copy_77)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class menu_b1copy_77 extends MovieClip {
public function menu_b1copy_77(){
addFrameScript(5, frame6);
}
function frame6(){
stop();
}
}
}//package top_figures_2_2_fla
Section 186
//menu_b2_49 (top_figures_2_2_fla.menu_b2_49)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class menu_b2_49 extends MovieClip {
public function menu_b2_49(){
addFrameScript(5, frame6);
}
function frame6(){
stop();
}
}
}//package top_figures_2_2_fla
Section 187
//menu_b3_33 (top_figures_2_2_fla.menu_b3_33)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class menu_b3_33 extends MovieClip {
public function menu_b3_33(){
addFrameScript(4, frame5);
}
function frame5(){
stop();
}
}
}//package top_figures_2_2_fla
Section 188
//menu_b5_41 (top_figures_2_2_fla.menu_b5_41)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class menu_b5_41 extends MovieClip {
public function menu_b5_41(){
addFrameScript(4, frame5);
}
function frame5(){
stop();
}
}
}//package top_figures_2_2_fla
Section 189
//musicMenu_143 (top_figures_2_2_fla.musicMenu_143)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class musicMenu_143 extends MovieClip {
public var blick2:MovieClip;
public function musicMenu_143(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package top_figures_2_2_fla
Section 190
//pauseMenu1_138 (top_figures_2_2_fla.pauseMenu1_138)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class pauseMenu1_138 extends MovieClip {
public var blick2:MovieClip;
}
}//package top_figures_2_2_fla
Section 191
//pauseMenu2_139 (top_figures_2_2_fla.pauseMenu2_139)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class pauseMenu2_139 extends MovieClip {
public var blick2:MovieClip;
}
}//package top_figures_2_2_fla
Section 192
//publish_menu_269 (top_figures_2_2_fla.publish_menu_269)
package top_figures_2_2_fla {
import flash.display.*;
import flash.text.*;
public dynamic class publish_menu_269 extends MovieClip {
public var puzzle_title:TextField;
public var text:TextField;
public var user_email:TextField;
public var user_name:TextField;
public var bublish_btn:SimpleButton;
public var info:TextField;
public var exit_btn:SimpleButton;
}
}//package top_figures_2_2_fla
Section 193
//recent_mc_120 (top_figures_2_2_fla.recent_mc_120)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class recent_mc_120 extends MovieClip {
public function recent_mc_120(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package top_figures_2_2_fla
Section 194
//reting_menu_274 (top_figures_2_2_fla.reting_menu_274)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class reting_menu_274 extends MovieClip {
public var s1:MovieClip;
public var s5:MovieClip;
public var s2:MovieClip;
public var s4:MovieClip;
public var s3:MovieClip;
}
}//package top_figures_2_2_fla
Section 195
//shadow_top_97 (top_figures_2_2_fla.shadow_top_97)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class shadow_top_97 extends MovieClip {
public var shadow:MovieClip;
}
}//package top_figures_2_2_fla
Section 196
//soundMenu1_140 (top_figures_2_2_fla.soundMenu1_140)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class soundMenu1_140 extends MovieClip {
public var blick2:MovieClip;
public function soundMenu1_140(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package top_figures_2_2_fla
Section 197
//star_277 (top_figures_2_2_fla.star_277)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class star_277 extends MovieClip {
public function star_277(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package top_figures_2_2_fla
Section 198
//Symbol5_29 (top_figures_2_2_fla.Symbol5_29)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class Symbol5_29 extends MovieClip {
public function Symbol5_29(){
addFrameScript(4, frame5);
}
function frame5(){
stop();
}
}
}//package top_figures_2_2_fla
Section 199
//Symbol5_292 (top_figures_2_2_fla.Symbol5_292)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class Symbol5_292 extends MovieClip {
public function Symbol5_292(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package top_figures_2_2_fla
Section 200
//Symbol6_45 (top_figures_2_2_fla.Symbol6_45)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class Symbol6_45 extends MovieClip {
public function Symbol6_45(){
addFrameScript(4, frame5);
}
function frame5(){
stop();
}
}
}//package top_figures_2_2_fla
Section 201
//vrashalka_124 (top_figures_2_2_fla.vrashalka_124)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class vrashalka_124 extends MovieClip {
public function vrashalka_124(){
addFrameScript(19,
);
}
function
(){
gotoAndPlay(1);
}
}
}//package top_figures_2_2_fla
Section 202
//z_2_135 (top_figures_2_2_fla.z_2_135)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class z_2_135 extends MovieClip {
public function z_2_135(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package top_figures_2_2_fla
Section 203
//z_2_54 (top_figures_2_2_fla.z_2_54)
package top_figures_2_2_fla {
import flash.display.*;
public dynamic class z_2_54 extends MovieClip {
public function z_2_54(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package top_figures_2_2_fla
Section 204
//block_type_1 (block_type_1)
package {
import flash.display.*;
public dynamic class block_type_1 extends MovieClip {
}
}//package
Section 205
//boom1 (boom1)
package {
import flash.media.*;
public dynamic class boom1 extends Sound {
}
}//package
Section 206
//boom2 (boom2)
package {
import flash.media.*;
public dynamic class boom2 extends Sound {
}
}//package
Section 207
//boom3 (boom3)
package {
import flash.media.*;
public dynamic class boom3 extends Sound {
}
}//package
Section 208
//boom4 (boom4)
package {
import flash.media.*;
public dynamic class boom4 extends Sound {
}
}//package
Section 209
//boom5 (boom5)
package {
import flash.media.*;
public dynamic class boom5 extends Sound {
}
}//package
Section 210
//Compeleted (Compeleted)
package {
import flash.display.*;
public dynamic class Compeleted extends MovieClip {
public function Compeleted(){
addFrameScript(22,
);
}
function
(){
stop();
}
}
}//package
Section 211
//floor (floor)
package {
import flash.display.*;
public dynamic class floor extends MovieClip {
}
}//package
Section 212
//m_game (m_game)
package {
import flash.media.*;
public dynamic class m_game extends Sound {
}
}//package
Section 213
//m_map (m_map)
package {
import flash.media.*;
public dynamic class m_map extends Sound {
}
}//package
Section 214
//m_menu (m_menu)
package {
import flash.media.*;
public dynamic class m_menu extends Sound {
}
}//package
Section 215
//pauseText (pauseText)
package {
import com.gamezhero.gamearea.*;
public dynamic class pauseText extends MultiText {
public function pauseText(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 216
//playGameText (playGameText)
package {
import com.gamezhero.gamearea.*;
public dynamic class playGameText extends MultiText {
public function playGameText(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 217
//preloader_vrachalka (preloader_vrachalka)
package {
import flash.display.*;
import com.gamezhero.gamearea.*;
public dynamic class preloader_vrachalka extends PreloaderVrashalka {
public function preloader_vrachalka(){
addFrameScript(39,
);
}
function
(){
(this as MovieClip).gotoAndPlay(1);
}
}
}//package
Section 218
//putThisGametext (putThisGametext)
package {
import com.gamezhero.gamearea.*;
public dynamic class putThisGametext extends MultiText {
}
}//package
Section 219
//s_begin_level (s_begin_level)
package {
import flash.media.*;
public dynamic class s_begin_level extends Sound {
}
}//package
Section 220
//s_click (s_click)
package {
import flash.media.*;
public dynamic class s_click extends Sound {
}
}//package
Section 221
//s_complete_level (s_complete_level)
package {
import flash.media.*;
public dynamic class s_complete_level extends Sound {
}
}//package
Section 222
//s_gravity (s_gravity)
package {
import flash.media.*;
public dynamic class s_gravity extends Sound {
}
}//package
Section 223
//s_gravity2 (s_gravity2)
package {
import flash.media.*;
public dynamic class s_gravity2 extends Sound {
}
}//package
Section 224
//s_over (s_over)
package {
import flash.media.*;
public dynamic class s_over extends Sound {
}
}//package
Section 225
//shadow1 (shadow1)
package {
import flash.display.*;
public dynamic class shadow1 extends MovieClip {
}
}//package
Section 226
//shadow10 (shadow10)
package {
import flash.display.*;
public dynamic class shadow10 extends MovieClip {
}
}//package
Section 227
//shadow11 (shadow11)
package {
import flash.display.*;
public dynamic class shadow11 extends MovieClip {
}
}//package
Section 228
//shadow12 (shadow12)
package {
import flash.display.*;
public dynamic class shadow12 extends MovieClip {
}
}//package
Section 229
//shadow13 (shadow13)
package {
import flash.display.*;
public dynamic class shadow13 extends MovieClip {
}
}//package
Section 230
//shadow14 (shadow14)
package {
import flash.display.*;
public dynamic class shadow14 extends MovieClip {
}
}//package
Section 231
//shadow15 (shadow15)
package {
import flash.display.*;
public dynamic class shadow15 extends MovieClip {
}
}//package
Section 232
//shadow16 (shadow16)
package {
import flash.display.*;
public dynamic class shadow16 extends MovieClip {
}
}//package
Section 233
//shadow17 (shadow17)
package {
import flash.display.*;
public dynamic class shadow17 extends MovieClip {
}
}//package
Section 234
//shadow18 (shadow18)
package {
import flash.display.*;
public dynamic class shadow18 extends MovieClip {
}
}//package
Section 235
//shadow19 (shadow19)
package {
import flash.display.*;
public dynamic class shadow19 extends MovieClip {
}
}//package
Section 236
//shadow2 (shadow2)
package {
import flash.display.*;
public dynamic class shadow2 extends MovieClip {
}
}//package
Section 237
//shadow20 (shadow20)
package {
import flash.display.*;
public dynamic class shadow20 extends MovieClip {
}
}//package
Section 238
//shadow21 (shadow21)
package {
import flash.display.*;
public dynamic class shadow21 extends MovieClip {
}
}//package
Section 239
//shadow22 (shadow22)
package {
import flash.display.*;
public dynamic class shadow22 extends MovieClip {
}
}//package
Section 240
//shadow23 (shadow23)
package {
import flash.display.*;
public dynamic class shadow23 extends MovieClip {
}
}//package
Section 241
//shadow24 (shadow24)
package {
import flash.display.*;
public dynamic class shadow24 extends MovieClip {
}
}//package
Section 242
//shadow25 (shadow25)
package {
import flash.display.*;
public dynamic class shadow25 extends MovieClip {
}
}//package
Section 243
//shadow26 (shadow26)
package {
import flash.display.*;
public dynamic class shadow26 extends MovieClip {
}
}//package
Section 244
//shadow27 (shadow27)
package {
import flash.display.*;
public dynamic class shadow27 extends MovieClip {
}
}//package
Section 245
//shadow28 (shadow28)
package {
import flash.display.*;
public dynamic class shadow28 extends MovieClip {
}
}//package
Section 246
//shadow29 (shadow29)
package {
import flash.display.*;
public dynamic class shadow29 extends MovieClip {
}
}//package
Section 247
//shadow3 (shadow3)
package {
import flash.display.*;
public dynamic class shadow3 extends MovieClip {
}
}//package
Section 248
//shadow30 (shadow30)
package {
import flash.display.*;
public dynamic class shadow30 extends MovieClip {
}
}//package
Section 249
//shadow31 (shadow31)
package {
import flash.display.*;
public dynamic class shadow31 extends MovieClip {
}
}//package
Section 250
//shadow4 (shadow4)
package {
import flash.display.*;
public dynamic class shadow4 extends MovieClip {
}
}//package
Section 251
//shadow5 (shadow5)
package {
import flash.display.*;
public dynamic class shadow5 extends MovieClip {
}
}//package
Section 252
//shadow6 (shadow6)
package {
import flash.display.*;
public dynamic class shadow6 extends MovieClip {
}
}//package
Section 253
//shadow7 (shadow7)
package {
import flash.display.*;
public dynamic class shadow7 extends MovieClip {
}
}//package
Section 254
//shadow8 (shadow8)
package {
import flash.display.*;
public dynamic class shadow8 extends MovieClip {
}
}//package
Section 255
//shadow9 (shadow9)
package {
import flash.display.*;
public dynamic class shadow9 extends MovieClip {
}
}//package
Section 256
//SunLight (SunLight)
package {
import flash.display.*;
public dynamic class SunLight extends MovieClip {
}
}//package
Section 257
//TopFigures2 (TopFigures2)
package {
import flash.events.*;
import flash.display.*;
import com.gamezhero.as3.remoting.events.*;
import com.gamezhero.as3.remoting.*;
import com.gamezhero.as3.*;
import com.gamezhero.*;
import com.gamezhero.media.*;
import com.gamezhero.utils.*;
import flash.system.*;
public class TopFigures2 extends MovieClip {
private var
:uint;// = 2
private var remotingLevelGateway:RemotingLevelsGateway;
private var
:ClassLoader;
private var
;
private var
:Boolean;// = false
public function TopFigures2():void{
= false;
= 2;
super();
addFrameScript(0, frame1);
Security.allowDomain("gamezhero.com", "files.gamezhero.com", "www.gamezhero.com", "*.gamezhero.com", "*", "*.*", "*.*.*");
stage.stageFocusRect = false;
stage.scaleMode = StageScaleMode.NO_SCALE;
();
}
public function
():void{
if (Global._game_stored_data.data.completedLevels == undefined){
Global._game_stored_data.data.completedLevels = new Array();
};
trace("INI MAIN STAGE");
Global._language = root.loaderInfo.parameters["language"];
Global._language = "ENG";
if (root.loaderInfo.parameters["level_id"]){
Global.previewLevelID = root.loaderInfo.parameters["level_id"];
} else {
Global.previewLevelID = "-1";
};
Global.gamezhero_code = Number(root.loaderInfo.parameters["gamezhero_code"]);
();
();
iniPreloader();
if (Global.previewLevelID != "-1"){
();
} else {
--;
();
};
this.gotoAndStop(1);
}
public function
():void{
trace(("nextStep " +
));
if (
<= 0){
if (
){
.stopPopUp();
};
this.gotoAndStop(2);
};
}
function frame1(){
stop();
}
private function
(_arg1:Event):void{
}
private function
():void{
try {
remotingLevelGateway = new RemotingLevelsGateway("http://www.gamezhero.com/chat/gateway.php");
remotingLevelGateway.addEventListener(RemotingLevelsEvent.GET_LEVEL,
);
remotingLevelGateway.getLevel(Global.editorGameID, Global.previewLevelID);
} catch(e:Error) {
--;
();
};
}
private function
():void{
Global.music_interface = new Music();
Global.music_game = new Music();
Global.sound_interface = new SoundFX();
Global.sound_game = new SoundFX();
if (isNaN(Global._game_stored_data.data.soundVolumeFlag)){
Global._game_stored_data.data.soundVolumeFlag = 1;
};
if (isNaN(Global._game_stored_data.data.musicVolumeFlag)){
Global._game_stored_data.data.musicVolumeFlag = 1;
};
Global.iniSoundAndMusic();
}
public function
(_arg1:Event=null):void{
--;
();
}
private function
(_arg1:RemotingLevelsEvent=null):void{
var result:*;
var arr:Array;
var event = _arg1;
result = event.value;
Global.previewLevel = String(result);
arr = new Array();
try {
arr = (Global.uncrypt(Global.previewLevel) as Array);
if (arr.length == 0){
Global.previewLevel = "-1";
};
} catch(e:Error) {
Global.previewLevel = "-1";
};
--;
();
}
private function clearEvents():void{
try {
remotingLevelGateway.removeEventListener(RemotingLevelsEvent.GET_LEVEL,
);
} catch(e:Error) {
};
.removeEventListener(ClassLoader.LOAD_ERROR,
);
.removeEventListener(ClassLoader.CLASS_LOADED, );
}
private function (_arg1:Event):void{
var proClass:Class;
var e = _arg1;
try {
proClass =
.getClass("superPro3");
= new proClass(this, 1197710244855, Global.gamezhero_code, "incablocks");
} catch(e:Error) {
};
}
private function ():void{
if (
== false){
= true;
= new ClassLoader();
.addEventListener(ClassLoader.LOAD_ERROR,
);
.addEventListener(ClassLoader.CLASS_LOADED, );
try {
.load(("http://files.gamezhero.com/flash/superPro3.swf?time" + new Date().getTime()));
} catch(e:Error) {
trace("ERROR");
};
};
}
public function iniPreloader():void{
var _local1:GamePreloader;
GamezheroGlobal.gameName = "incablocks";
_local1 = new GamePreloader(this, {debug:false});
_local1.addEventListener(GamePreloader.finish,
);
Global.iniUrls(this.stage);
}
}
}//package
Section 258
//Trees (Trees)
package {
import flash.display.*;
public dynamic class Trees extends MovieClip {
}
}//package
Section 259
//type1 (type1)
package {
import flash.display.*;
public dynamic class type1 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 260
//type10 (type10)
package {
import flash.display.*;
public dynamic class type10 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 261
//type11 (type11)
package {
import flash.display.*;
public dynamic class type11 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 262
//type12 (type12)
package {
import flash.display.*;
public dynamic class type12 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 263
//type13 (type13)
package {
import flash.display.*;
public dynamic class type13 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 264
//type14 (type14)
package {
import flash.display.*;
public dynamic class type14 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 265
//type15 (type15)
package {
import flash.display.*;
public dynamic class type15 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 266
//type16 (type16)
package {
import flash.display.*;
public dynamic class type16 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 267
//type17 (type17)
package {
import flash.display.*;
public dynamic class type17 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 268
//type18 (type18)
package {
import flash.display.*;
public dynamic class type18 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 269
//type19 (type19)
package {
import flash.display.*;
public dynamic class type19 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 270
//type2 (type2)
package {
import flash.display.*;
public dynamic class type2 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 271
//type20 (type20)
package {
import flash.display.*;
public dynamic class type20 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 272
//type21 (type21)
package {
import flash.display.*;
public dynamic class type21 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 273
//type22 (type22)
package {
import flash.display.*;
public dynamic class type22 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 274
//type23 (type23)
package {
import flash.display.*;
public dynamic class type23 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 275
//type24 (type24)
package {
import flash.display.*;
public dynamic class type24 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 276
//type25 (type25)
package {
import flash.display.*;
public dynamic class type25 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 277
//type26 (type26)
package {
import flash.display.*;
public dynamic class type26 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 278
//type27 (type27)
package {
import flash.display.*;
public dynamic class type27 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 279
//type28 (type28)
package {
import flash.display.*;
public dynamic class type28 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 280
//type29 (type29)
package {
import flash.display.*;
public dynamic class type29 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 281
//type3 (type3)
package {
import flash.display.*;
public dynamic class type3 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 282
//type30 (type30)
package {
import flash.display.*;
public dynamic class type30 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 283
//type31 (type31)
package {
import flash.display.*;
public dynamic class type31 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 284
//type4 (type4)
package {
import flash.display.*;
public dynamic class type4 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 285
//type5 (type5)
package {
import flash.display.*;
public dynamic class type5 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 286
//type6 (type6)
package {
import flash.display.*;
public dynamic class type6 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 287
//type7 (type7)
package {
import flash.display.*;
public dynamic class type7 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 288
//type8 (type8)
package {
import flash.display.*;
public dynamic class type8 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 289
//type9 (type9)
package {
import flash.display.*;
public dynamic class type9 extends MovieClip {
public var shadow:MovieClip;
public var body:MovieClip;
public var design:MovieClip;
}
}//package
Section 290
//zorroLogo2 (zorroLogo2)
package {
import com.gamezhero.as3.btn.*;
public dynamic class zorroLogo2 extends ZorroLogo {
}
}//package