Section 1
//098089080_65 (allweneedisbrain2moregames_fla.098089080_65)
package allweneedisbrain2moregames_fla {
import flash.display.*;
public dynamic class 098089080_65 extends MovieClip {
public function 098089080_65(){
addFrameScript(121, frame122);
}
function frame122(){
gotoAndPlay(68);
}
}
}//package allweneedisbrain2moregames_fla
Section 2
//5435_58 (allweneedisbrain2moregames_fla.5435_58)
package allweneedisbrain2moregames_fla {
import flash.display.*;
public dynamic class 5435_58 extends MovieClip {
public function 5435_58(){
addFrameScript(12, frame13);
}
function frame13(){
stop();
}
}
}//package allweneedisbrain2moregames_fla
Section 3
//introFlash_533 (allweneedisbrain2moregames_fla.introFlash_533)
package allweneedisbrain2moregames_fla {
import flash.display.*;
public dynamic class introFlash_533 extends MovieClip {
public function introFlash_533(){
addFrameScript(5, frame6);
}
function frame6(){
stop();
}
}
}//package allweneedisbrain2moregames_fla
Section 4
//Timeline_129 (allweneedisbrain2moregames_fla.Timeline_129)
package allweneedisbrain2moregames_fla {
import flash.display.*;
public dynamic class Timeline_129 extends MovieClip {
public function Timeline_129(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package allweneedisbrain2moregames_fla
Section 5
//Timeline_358 (allweneedisbrain2moregames_fla.Timeline_358)
package allweneedisbrain2moregames_fla {
import flash.display.*;
public dynamic class Timeline_358 extends MovieClip {
public function Timeline_358(){
addFrameScript(15, frame16);
}
function frame16(){
gotoAndPlay("walk");
}
}
}//package allweneedisbrain2moregames_fla
Section 6
//Timeline_40 (allweneedisbrain2moregames_fla.Timeline_40)
package allweneedisbrain2moregames_fla {
import flash.display.*;
public dynamic class Timeline_40 extends MovieClip {
public function Timeline_40(){
addFrameScript(4, frame5);
}
function frame5(){
gotoAndPlay(1);
}
}
}//package allweneedisbrain2moregames_fla
Section 7
//Timeline_463 (allweneedisbrain2moregames_fla.Timeline_463)
package allweneedisbrain2moregames_fla {
import flash.display.*;
public dynamic class Timeline_463 extends MovieClip {
public function Timeline_463(){
addFrameScript(0, frame1, 0x0100, frame257);
}
function frame1(){
stop();
}
function frame257(){
stop();
}
}
}//package allweneedisbrain2moregames_fla
Section 8
//Timeline_487 (allweneedisbrain2moregames_fla.Timeline_487)
package allweneedisbrain2moregames_fla {
import flash.display.*;
public dynamic class Timeline_487 extends MovieClip {
public function Timeline_487(){
addFrameScript(94, frame95);
}
function frame95(){
stop();
}
}
}//package allweneedisbrain2moregames_fla
Section 9
//Timeline_489 (allweneedisbrain2moregames_fla.Timeline_489)
package allweneedisbrain2moregames_fla {
import flash.display.*;
public dynamic class Timeline_489 extends MovieClip {
public function Timeline_489(){
addFrameScript(54, frame55);
}
function frame55(){
stop();
}
}
}//package allweneedisbrain2moregames_fla
Section 10
//Timeline_491 (allweneedisbrain2moregames_fla.Timeline_491)
package allweneedisbrain2moregames_fla {
import flash.display.*;
public dynamic class Timeline_491 extends MovieClip {
public function Timeline_491(){
addFrameScript(54, frame55);
}
function frame55(){
stop();
}
}
}//package allweneedisbrain2moregames_fla
Section 11
//Timeline_496 (allweneedisbrain2moregames_fla.Timeline_496)
package allweneedisbrain2moregames_fla {
import flash.display.*;
public dynamic class Timeline_496 extends MovieClip {
public function Timeline_496(){
addFrameScript(12, frame13);
}
function frame13(){
stop();
}
}
}//package allweneedisbrain2moregames_fla
Section 12
//Timeline_497 (allweneedisbrain2moregames_fla.Timeline_497)
package allweneedisbrain2moregames_fla {
import flash.display.*;
public dynamic class Timeline_497 extends MovieClip {
public function Timeline_497(){
addFrameScript(70, frame71);
}
function frame71(){
stop();
}
}
}//package allweneedisbrain2moregames_fla
Section 13
//Timeline_498 (allweneedisbrain2moregames_fla.Timeline_498)
package allweneedisbrain2moregames_fla {
import flash.display.*;
public dynamic class Timeline_498 extends MovieClip {
public function Timeline_498(){
addFrameScript(42, frame43);
}
function frame43(){
stop();
}
}
}//package allweneedisbrain2moregames_fla
Section 14
//Timeline_500 (allweneedisbrain2moregames_fla.Timeline_500)
package allweneedisbrain2moregames_fla {
import flash.display.*;
public dynamic class Timeline_500 extends MovieClip {
public function Timeline_500(){
addFrameScript(42, frame43);
}
function frame43(){
stop();
}
}
}//package allweneedisbrain2moregames_fla
Section 15
//Timeline_503 (allweneedisbrain2moregames_fla.Timeline_503)
package allweneedisbrain2moregames_fla {
import flash.display.*;
public dynamic class Timeline_503 extends MovieClip {
public function Timeline_503(){
addFrameScript(0, frame1, 163, frame164);
}
function frame164(){
stop();
}
function frame1(){
}
}
}//package allweneedisbrain2moregames_fla
Section 16
//Timeline_517 (allweneedisbrain2moregames_fla.Timeline_517)
package allweneedisbrain2moregames_fla {
import flash.display.*;
public dynamic class Timeline_517 extends MovieClip {
public function Timeline_517(){
addFrameScript(0, frame1, 354, frame355);
}
function frame1(){
stop();
}
function frame355(){
stop();
}
}
}//package allweneedisbrain2moregames_fla
Section 17
//Timeline_524 (allweneedisbrain2moregames_fla.Timeline_524)
package allweneedisbrain2moregames_fla {
import flash.display.*;
public dynamic class Timeline_524 extends MovieClip {
public function Timeline_524(){
addFrameScript(92, frame93);
}
function frame93(){
stop();
}
}
}//package allweneedisbrain2moregames_fla
Section 18
//Timeline_525 (allweneedisbrain2moregames_fla.Timeline_525)
package allweneedisbrain2moregames_fla {
import flash.display.*;
public dynamic class Timeline_525 extends MovieClip {
public function Timeline_525(){
addFrameScript(25, frame26);
}
function frame26(){
stop();
}
}
}//package allweneedisbrain2moregames_fla
Section 19
//Timeline_526 (allweneedisbrain2moregames_fla.Timeline_526)
package allweneedisbrain2moregames_fla {
import flash.display.*;
public dynamic class Timeline_526 extends MovieClip {
public function Timeline_526(){
addFrameScript(70, frame71);
}
function frame71(){
stop();
}
}
}//package allweneedisbrain2moregames_fla
Section 20
//Timeline_527 (allweneedisbrain2moregames_fla.Timeline_527)
package allweneedisbrain2moregames_fla {
import flash.display.*;
public dynamic class Timeline_527 extends MovieClip {
public function Timeline_527(){
addFrameScript(92, frame93);
}
function frame93(){
stop();
}
}
}//package allweneedisbrain2moregames_fla
Section 21
//b2CircleDef (Box2D.Collision.Shapes.b2CircleDef)
package Box2D.Collision.Shapes {
import Box2D.Common.Math.*;
public class b2CircleDef extends b2ShapeDef {
public var radius:Number;
public var localPosition:b2Vec2;
public function b2CircleDef(){
localPosition = new b2Vec2(0, 0);
super();
type = b2Shape.e_circleShape;
radius = 1;
}
}
}//package Box2D.Collision.Shapes
Section 22
//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.localPosition);
m_radius = _local2.radius;
}
public function GetLocalPosition():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((Math.min(_local5, _local7) - m_radius), (Math.min(_local6, _local8) - m_radius));
_arg1.upperBound.Set((Math.max(_local5, _local7) + m_radius), (Math.max(_local6, _local8) + m_radius));
}
public function GetRadius():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));
}
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)));
}
}
}//package Box2D.Collision.Shapes
Section 23
//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 24
//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 SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{
var _local5:b2Vec2;
var _local6:b2Mat22;
var _local7:int;
vertexCount = 4;
vertices[0].Set(-(_arg1), -(_arg2));
vertices[1].Set(_arg1, -(_arg2));
vertices[2].Set(_arg1, _arg2);
vertices[3].Set(-(_arg1), _arg2);
if (_arg3){
_local5 = _arg3;
_local6 = s_mat;
_local6.Set(_arg4);
_local7 = 0;
while (_local7 < vertexCount) {
_arg3 = vertices[_local7];
_arg1 = (_local5.x + ((_local6.col1.x * _arg3.x) + (_local6.col2.x * _arg3.y)));
_arg3.y = (_local5.y + ((_local6.col1.y * _arg3.x) + (_local6.col2.y * _arg3.y)));
_arg3.x = _arg1;
_local7++;
};
};
}
public function SetAsBox(_arg1:Number, _arg2:Number):void{
vertexCount = 4;
vertices[0].Set(-(_arg1), -(_arg2));
vertices[1].Set(_arg1, -(_arg2));
vertices[2].Set(_arg1, _arg2);
vertices[3].Set(-(_arg1), _arg2);
}
}
}//package Box2D.Collision.Shapes
Section 25
//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 m_vertices:Array;
private var s_supportVec:b2Vec2;
public var m_normals:Array;
public var m_obb:b2OBB;
public var m_coreVertices:Array;
public var m_centroid:b2Vec2;
public var m_vertexCount:int;
private static var s_computeMat:b2Mat22 = new b2Mat22();
private static var s_sweptAABB1:b2AABB = new b2AABB();
private static var s_sweptAABB2:b2AABB = new b2AABB();
public function b2PolygonShape(_arg1:b2ShapeDef){
var _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;
s_supportVec = new b2Vec2();
m_obb = new b2OBB();
m_vertices = new Array(b2Settings.b2_maxPolygonVertices);
m_normals = new Array(b2Settings.b2_maxPolygonVertices);
m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices);
super(_arg1);
m_type = e_polygonShape;
_local2 = (_arg1 as b2PolygonDef);
m_vertexCount = _local2.vertexCount;
_local4 = _local3;
_local5 = _local3;
_local3 = 0;
while (_local3 < m_vertexCount) {
m_vertices[_local3] = _local2.vertices[_local3].Copy();
_local3++;
};
_local3 = 0;
while (_local3 < m_vertexCount) {
_local4 = _local3;
_local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0;
_local6 = (m_vertices[_local5].x - m_vertices[_local4].x);
_local7 = (m_vertices[_local5].y - m_vertices[_local4].y);
_local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7)));
m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8));
_local3++;
};
m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount);
ComputeOBB(m_obb, m_vertices, m_vertexCount);
_local3 = 0;
while (_local3 < m_vertexCount) {
_local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1);
_local5 = _local3;
_local9 = m_normals[_local4].x;
_local10 = m_normals[_local4].y;
_local11 = m_normals[_local5].x;
_local12 = m_normals[_local5].y;
_local13 = (m_vertices[_local3].x - m_centroid.x);
_local14 = (m_vertices[_local3].y - m_centroid.y);
_local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop);
_local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop);
_local17 = (1 / ((_local9 * _local12) - (_local10 * _local11)));
m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y));
_local3++;
};
}
public function GetCoreVertices():Array{
return (m_coreVertices);
}
public function GetCentroid():b2Vec2{
return (m_centroid);
}
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 < m_vertexCount) {
_local8 = (m_vertices[_local19].x - _local12);
_local9 = (m_vertices[_local19].y - _local13);
_local11 = m_normals[_local19];
_local20 = ((_local11.x * _local8) + (_local11.y * _local9));
_local21 = ((_local11.x * _local16) + (_local11.y * _local17));
if ((((_local21 < 0)) && ((_local20 > (_local6 * _local21))))){
_local6 = (_local20 / _local21);
_local18 = _local19;
} else {
if ((((_local21 > 0)) && ((_local20 < (_local7 * _local21))))){
_local7 = (_local20 / _local21);
};
};
if (_local7 < _local6){
return (false);
};
_local19++;
};
if (_local18 >= 0){
_arg2[0] = _local6;
_local10 = _arg1.R;
_local11 = m_normals[_local18];
_arg3.x = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y));
_arg3.y = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y));
return (true);
};
return (false);
}
override public function ComputeMass(_arg1:b2MassData):void{
var _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 < m_vertexCount) {
_local10 = m_vertices[_local9];
_local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[(_local9 + 1)] : m_vertices[0];
_local12 = (_local10.x - _local6);
_local13 = (_local10.y - _local7);
_local14 = (_local11.x - _local6);
_local15 = (_local11.y - _local7);
_local16 = ((_local12 * _local15) - (_local13 * _local14));
_local17 = (0.5 * _local16);
_local4 = (_local4 + _local17);
_local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x)));
_local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y)));
_local18 = _local6;
_local19 = _local7;
_local20 = _local12;
_local21 = _local13;
_local22 = _local14;
_local23 = _local15;
_local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18));
_local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19));
_local5 = (_local5 + (_local16 * (_local24 + _local25)));
_local9++;
};
_arg1.mass = (m_density * _local4);
_local2 = (_local2 * (1 / _local4));
_local3 = (_local3 * (1 / _local4));
_arg1.center.Set(_local2, _local3);
_arg1.I = (m_density * _local5);
}
public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{
var _local4:b2Mat22;
var _local5:Number;
var _local6:Number;
var _local7:int;
var _local8:Number;
var _local9:int;
var _local10:b2Vec2;
var _local11:Number;
_local4 = _arg1.R;
_local5 = ((_arg2 * _local4.col1.x) + (_arg3 * _local4.col1.y));
_local6 = ((_arg2 * _local4.col2.x) + (_arg3 * _local4.col2.y));
_local7 = 0;
_local8 = ((m_coreVertices[0].x * _local5) + (m_coreVertices[0].y * _local6));
_local9 = 1;
while (_local9 < m_vertexCount) {
_local11 = ((m_coreVertices[_local9].x * _local5) + (m_coreVertices[_local9].y * _local6));
if (_local11 > _local8){
_local7 = _local9;
_local8 = _local11;
};
_local9++;
};
_local4 = _arg1.R;
_local10 = m_coreVertices[_local7];
s_supportVec.x = (_arg1.position.x + ((_local4.col1.x * _local10.x) + (_local4.col2.x * _local10.y)));
s_supportVec.y = (_arg1.position.y + ((_local4.col1.y * _local10.x) + (_local4.col2.y * _local10.y)));
return (s_supportVec);
}
public function GetVertexCount():int{
return (m_vertexCount);
}
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(Math.min(_local4.lowerBound.x, _local5.lowerBound.x), Math.min(_local4.lowerBound.y, _local5.lowerBound.y));
_arg1.upperBound.Set(Math.max(_local4.upperBound.x, _local5.upperBound.x), Math.max(_local4.upperBound.y, _local5.upperBound.y));
}
public function GetVertices():Array{
return (m_vertices);
}
public function GetOBB():b2OBB{
return (m_obb);
}
public function GetFirstVertex(_arg1:b2XForm):b2Vec2{
return (b2Math.b2MulX(_arg1, m_coreVertices[0]));
}
public function Centroid(_arg1:b2XForm):b2Vec2{
return (b2Math.b2MulX(_arg1, m_centroid));
}
override public function UpdateSweepRadius(_arg1:b2Vec2):void{
var _local2:int;
var _local3:Number;
var _local4:Number;
m_sweepRadius = 0;
_local2 = 0;
while (_local2 < m_vertexCount) {
_local3 = (m_coreVertices[_local2].x - _arg1.x);
_local4 = (m_coreVertices[_local2].y - _arg1.y);
_local3 = Math.sqrt(((_local3 * _local3) + (_local4 * _local4)));
m_sweepRadius = Math.max(m_sweepRadius, _local3);
_local2++;
};
}
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 = m_obb.R.col1;
_local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y));
_local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y));
_local4 = m_obb.R.col2;
_local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y));
_local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y));
_local5.Abs();
_local6 = _local5;
_local4 = m_obb.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 = m_obb.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));
}
override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{
var _local3:b2Mat22;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:int;
var _local9:Number;
_local3 = _arg1.R;
_local4 = (_arg2.x - _arg1.position.x);
_local5 = (_arg2.y - _arg1.position.y);
_local6 = ((_local4 * _local3.col1.x) + (_local5 * _local3.col1.y));
_local7 = ((_local4 * _local3.col2.x) + (_local5 * _local3.col2.y));
_local8 = 0;
while (_local8 < m_vertexCount) {
_local4 = (_local6 - m_vertices[_local8].x);
_local5 = (_local7 - m_vertices[_local8].y);
_local9 = ((m_normals[_local8].x * _local4) + (m_normals[_local8].y * _local5));
if (_local9 > 0){
return (false);
};
_local8++;
};
return (true);
}
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[(_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[(_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));
_local13 = Math.min(_local13, _local21);
_local14 = Math.min(_local14, _local22);
_local15 = Math.max(_local15, _local21);
_local16 = Math.max(_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 26
//b2Shape (Box2D.Collision.Shapes.b2Shape)
package Box2D.Collision.Shapes {
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Collision.*;
public class b2Shape {
public var m_next:b2Shape;
public var m_type:int;
public var m_sweepRadius:Number;
public var m_userData;
public var m_density:Number;
public var m_proxyId:uint;
public var m_friction:Number;
public var m_isSensor:Boolean;
public var m_groupIndex:int;
public var m_categoryBits:uint;
public var m_restitution:Number;
public var m_body:b2Body;
public var m_maskBits:uint;
public static const e_polygonShape:int = 1;
public static const e_unknownShape:int = -1;
public static const e_circleShape:int = 0;
public static const e_shapeTypeCount:int = 2;
private static var s_resetAABB:b2AABB = new b2AABB();
private static var s_syncAABB:b2AABB = new b2AABB();
private static var s_proxyAABB:b2AABB = new b2AABB();
public function b2Shape(_arg1:b2ShapeDef){
m_userData = _arg1.userData;
m_friction = _arg1.friction;
m_restitution = _arg1.restitution;
m_density = _arg1.density;
m_body = null;
m_sweepRadius = 0;
m_next = null;
m_proxyId = b2Pair.b2_nullProxy;
m_categoryBits = _arg1.categoryBits;
m_maskBits = _arg1.maskBits;
m_groupIndex = _arg1.groupIndex;
m_isSensor = _arg1.isSensor;
}
public function GetSweepRadius():Number{
return (m_sweepRadius);
}
public function GetNext():b2Shape{
return (m_next);
}
public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{
}
public function GetType():int{
return (m_type);
}
public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{
return (false);
}
public function IsSensor():Boolean{
return (m_isSensor);
}
public function GetUserData(){
return (m_userData);
}
public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{
var _local4:b2AABB;
if (m_proxyId == b2Pair.b2_nullProxy){
return (false);
};
_local4 = s_syncAABB;
ComputeSweptAABB(_local4, _arg2, _arg3);
if (_arg1.InRange(_local4)){
_arg1.MoveProxy(m_proxyId, _local4);
return (true);
};
return (false);
}
public function ComputeMass(_arg1:b2MassData):void{
}
public function DestroyProxy(_arg1:b2BroadPhase):void{
if (m_proxyId != b2Pair.b2_nullProxy){
_arg1.DestroyProxy(m_proxyId);
m_proxyId = b2Pair.b2_nullProxy;
};
}
public function UpdateSweepRadius(_arg1:b2Vec2):void{
}
public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{
}
public function GetBody():b2Body{
return (m_body);
}
public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{
var _local3:b2AABB;
var _local4:Boolean;
_local3 = s_proxyAABB;
ComputeAABB(_local3, _arg2);
_local4 = _arg1.InRange(_local3);
if (_local4){
m_proxyId = _arg1.CreateProxy(_local3, this);
} else {
m_proxyId = b2Pair.b2_nullProxy;
};
}
public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{
return (false);
}
public function ResetProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{
var _local3:b2AABB;
var _local4:Boolean;
if (m_proxyId != b2Pair.b2_nullProxy){
_arg1.DestroyProxy(m_proxyId);
};
_local3 = s_resetAABB;
ComputeAABB(_local3, _arg2);
_local4 = _arg1.InRange(_local3);
if (_local4){
m_proxyId = _arg1.CreateProxy(_local3, this);
} else {
m_proxyId = b2Pair.b2_nullProxy;
};
}
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 27
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef)
package Box2D.Collision.Shapes {
public class b2ShapeDef {
public var groupIndex:int;
public var categoryBits:int;
public var density:Number;
public var type:int;
public var restitution:Number;
public var maskBits:int;
public var userData;// = null
public var friction:Number;
public var isSensor:Boolean;
public function b2ShapeDef(){
userData = null;
super();
type = b2Shape.e_unknownShape;
userData = null;
friction = 0.2;
restitution = 0;
density = 0;
categoryBits = 1;
maskBits = 0xFFFF;
groupIndex = 0;
isSensor = false;
}
}
}//package Box2D.Collision.Shapes
Section 28
//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 29
//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 30
//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 31
//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 m_freeProxy:uint;
public var m_proxyCount:int;
public var m_proxyPool:Array;
public var m_queryResultCount:int;
public var m_pairManager:b2PairManager;
public var m_timeStamp:uint;
public var m_queryResults:Array;
public static const b2_nullEdge:uint = 0xFFFF;
public static const b2_invalid:uint = 0xFFFF;
public static var s_validate:Boolean = false;
public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){
var _local3:int;
var _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));
m_queryResults = new Array(b2Settings.b2_maxProxies);
m_quantizationFactor = new b2Vec2();
super();
m_pairManager.Initialize(this, _arg2);
m_worldAABB = _arg1;
m_proxyCount = 0;
_local3 = 0;
while (_local3 < b2Settings.b2_maxProxies) {
m_queryResults[_local3] = 0;
_local3++;
};
m_bounds = new Array(2);
_local3 = 0;
while (_local3 < 2) {
m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies));
_local7 = 0;
while (_local7 < (2 * b2Settings.b2_maxProxies)) {
m_bounds[_local3][_local7] = new b2Bound();
_local7++;
};
_local3++;
};
_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[(b2Settings.b2_maxProxies - 1)] = _local6;
_local6.SetNext(b2Pair.b2_nullProxy);
_local6.timeStamp = 0;
_local6.overlapCount = b2_invalid;
_local6.userData = null;
m_freeProxy = 0;
m_timeStamp = 1;
m_queryResultCount = 0;
}
public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{
var _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();
ComputeBounds(_local4, _local5, _arg1);
_local8 = [_local6];
_local9 = [_local7];
Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0);
Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1);
_local10 = 0;
_local11 = 0;
while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) {
_local12 = m_proxyPool[m_queryResults[_local11]];
_arg2[_local11] = _local12.userData;
_local11++;
_local10++;
};
m_queryResultCount = 0;
IncrementTimeStamp();
return (_local10);
}
public function Commit():void{
m_pairManager.Commit();
}
public function GetProxy(_arg1:int):b2Proxy{
if ((((_arg1 == b2Pair.b2_nullProxy)) || ((m_proxyPool[_arg1].IsValid() == false)))){
return (null);
};
return (m_proxyPool[_arg1]);
}
private function IncrementTimeStamp():void{
var _local1:uint;
if (m_timeStamp == b2Settings.USHRT_MAX){
_local1 = 0;
while (_local1 < b2Settings.b2_maxProxies) {
m_proxyPool[_local1].timeStamp = 0;
_local1++;
};
m_timeStamp = 1;
} else {
m_timeStamp++;
};
}
private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{
var _local8:uint;
var _local9:uint;
var _local10:uint;
var _local11:int;
var _local12:int;
var _local13:b2Proxy;
_local8 = BinarySearch(_arg5, _arg6, _arg3);
_local9 = BinarySearch(_arg5, _arg6, _arg4);
_local10 = _local8;
while (_local10 < _local9) {
if (_arg5[_local10].IsLower()){
IncrementOverlapCount(_arg5[_local10].proxyId);
};
_local10++;
};
if (_local8 > 0){
_local11 = (_local8 - 1);
_local12 = _arg5[_local11].stabbingCount;
while (_local12) {
if (_arg5[_local11].IsLower()){
_local13 = m_proxyPool[_arg5[_local11].proxyId];
if (_local8 <= _local13.upperBounds[_arg7]){
IncrementOverlapCount(_arg5[_local11].proxyId);
_local12--;
};
};
_local11--;
};
};
_arg1[0] = _local8;
_arg2[0] = _local9;
}
private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{
var _local3:int;
var _local4:Array;
_local3 = 0;
while (_local3 < 2) {
_local4 = m_bounds[_local3];
if (_local4[_arg1.lowerBounds[_local3]].value > _local4[_arg2.upperBounds[_local3]].value){
return (false);
};
if (_local4[_arg1.upperBounds[_local3]].value < _local4[_arg2.lowerBounds[_local3]].value){
return (false);
};
_local3++;
};
return (true);
}
private function ComputeBounds(_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:int;
var _local22:b2Proxy;
_local5 = m_freeProxy;
_local4 = m_proxyPool[_local5];
m_freeProxy = _local4.GetNext();
_local4.overlapCount = 0;
_local4.userData = _arg2;
_local6 = (2 * m_proxyCount);
_local7 = new Array();
_local8 = new Array();
ComputeBounds(_local7, _local8, _arg1);
_local9 = 0;
while (_local9 < 2) {
_local11 = m_bounds[_local9];
_local14 = [_local12];
_local15 = [_local13];
Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9);
_local12 = _local14[0];
_local13 = _local15[0];
_local16 = new Array();
_local18 = (_local6 - _local13);
_local17 = 0;
while (_local17 < _local18) {
_local16[_local17] = new b2Bound();
_local19 = _local16[_local17];
_local20 = _local11[(_local13 + _local17)];
_local19.value = _local20.value;
_local19.proxyId = _local20.proxyId;
_local19.stabbingCount = _local20.stabbingCount;
_local17++;
};
_local18 = _local16.length;
_local21 = (_local13 + 2);
_local17 = 0;
while (_local17 < _local18) {
_local20 = _local16[_local17];
_local19 = _local11[(_local21 + _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[(_local12 + _local17)];
_local19.value = _local20.value;
_local19.proxyId = _local20.proxyId;
_local19.stabbingCount = _local20.stabbingCount;
_local17++;
};
_local18 = _local16.length;
_local21 = (_local12 + 1);
_local17 = 0;
while (_local17 < _local18) {
_local20 = _local16[_local17];
_local19 = _local11[(_local21 + _local17)];
_local19.value = _local20.value;
_local19.proxyId = _local20.proxyId;
_local19.stabbingCount = _local20.stabbingCount;
_local17++;
};
_local13++;
_local11[_local12].value = _local7[_local9];
_local11[_local12].proxyId = _local5;
_local11[_local13].value = _local8[_local9];
_local11[_local13].proxyId = _local5;
_local11[_local12].stabbingCount = ((_local12 == 0)) ? 0 : _local11[(_local12 - 1)].stabbingCount;
_local11[_local13].stabbingCount = _local11[(_local13 - 1)].stabbingCount;
_local3 = _local12;
while (_local3 < _local13) {
_local11[_local3].stabbingCount++;
_local3++;
};
_local3 = _local12;
while (_local3 < (_local6 + 2)) {
_local22 = m_proxyPool[_local11[_local3].proxyId];
if (_local11[_local3].IsLower()){
_local22.lowerBounds[_local9] = _local3;
} else {
_local22.upperBounds[_local9] = _local3;
};
_local3++;
};
_local9++;
};
m_proxyCount++;
_local10 = 0;
while (_local10 < m_queryResultCount) {
m_pairManager.AddBufferedPair(_local5, m_queryResults[_local10]);
_local10++;
};
m_pairManager.Commit();
m_queryResultCount = 0;
IncrementTimeStamp();
return (_local5);
}
public function DestroyProxy(_arg1:uint):void{
var _local2:b2Proxy;
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:Array;
var _local7:uint;
var _local8:uint;
var _local9:uint;
var _local10:uint;
var _local11:Array;
var _local12:int;
var _local13:int;
var _local14:b2Bound;
var _local15:b2Bound;
var _local16:int;
var _local17:uint;
var _local18:int;
var _local19:b2Proxy;
_local2 = m_proxyPool[_arg1];
_local3 = (2 * m_proxyCount);
_local4 = 0;
while (_local4 < 2) {
_local6 = m_bounds[_local4];
_local7 = _local2.lowerBounds[_local4];
_local8 = _local2.upperBounds[_local4];
_local9 = _local6[_local7].value;
_local10 = _local6[_local8].value;
_local11 = new Array();
_local13 = ((_local8 - _local7) - 1);
_local12 = 0;
while (_local12 < _local13) {
_local11[_local12] = new b2Bound();
_local14 = _local11[_local12];
_local15 = _local6[((_local7 + 1) + _local12)];
_local14.value = _local15.value;
_local14.proxyId = _local15.proxyId;
_local14.stabbingCount = _local15.stabbingCount;
_local12++;
};
_local13 = _local11.length;
_local16 = _local7;
_local12 = 0;
while (_local12 < _local13) {
_local15 = _local11[_local12];
_local14 = _local6[(_local16 + _local12)];
_local14.value = _local15.value;
_local14.proxyId = _local15.proxyId;
_local14.stabbingCount = _local15.stabbingCount;
_local12++;
};
_local11 = new Array();
_local13 = ((_local3 - _local8) - 1);
_local12 = 0;
while (_local12 < _local13) {
_local11[_local12] = new b2Bound();
_local14 = _local11[_local12];
_local15 = _local6[((_local8 + 1) + _local12)];
_local14.value = _local15.value;
_local14.proxyId = _local15.proxyId;
_local14.stabbingCount = _local15.stabbingCount;
_local12++;
};
_local13 = _local11.length;
_local16 = (_local8 - 1);
_local12 = 0;
while (_local12 < _local13) {
_local15 = _local11[_local12];
_local14 = _local6[(_local16 + _local12)];
_local14.value = _local15.value;
_local14.proxyId = _local15.proxyId;
_local14.stabbingCount = _local15.stabbingCount;
_local12++;
};
_local13 = (_local3 - 2);
_local17 = _local7;
while (_local17 < _local13) {
_local19 = m_proxyPool[_local6[_local17].proxyId];
if (_local6[_local17].IsLower()){
_local19.lowerBounds[_local4] = _local17;
} else {
_local19.upperBounds[_local4] = _local17;
};
_local17++;
};
_local13 = (_local8 - 1);
_local18 = _local7;
while (_local18 < _local13) {
_local6[_local18].stabbingCount--;
_local18++;
};
Query([0], [0], _local9, _local10, _local6, (_local3 - 2), _local4);
_local4++;
};
_local5 = 0;
while (_local5 < m_queryResultCount) {
m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local5]);
_local5++;
};
m_pairManager.Commit();
m_queryResultCount = 0;
IncrementTimeStamp();
_local2.userData = null;
_local2.overlapCount = b2_invalid;
_local2.lowerBounds[0] = b2_invalid;
_local2.lowerBounds[1] = b2_invalid;
_local2.upperBounds[0] = b2_invalid;
_local2.upperBounds[1] = b2_invalid;
_local2.SetNext(m_freeProxy);
m_freeProxy = _arg1;
m_proxyCount--;
}
public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{
var _local3:int;
var _local4:Array;
_local3 = 0;
while (_local3 < 2) {
_local4 = m_bounds[_local3];
if (_arg1.lowerValues[_local3] > _local4[_arg2.upperBounds[_local3]].value){
return (false);
};
if (_arg1.upperValues[_local3] < _local4[_arg2.lowerBounds[_local3]].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 IncrementOverlapCount(_arg1:uint):void{
var _local2:b2Proxy;
_local2 = m_proxyPool[_arg1];
if (_local2.timeStamp < m_timeStamp){
_local2.timeStamp = m_timeStamp;
_local2.overlapCount = 1;
} else {
_local2.overlapCount = 2;
m_queryResults[m_queryResultCount] = _arg1;
m_queryResultCount++;
};
}
public function InRange(_arg1:b2AABB):Boolean{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local2 = _arg1.lowerBound.x;
_local3 = _arg1.lowerBound.y;
_local2 = (_local2 - m_worldAABB.upperBound.x);
_local3 = (_local3 - m_worldAABB.upperBound.y);
_local4 = m_worldAABB.lowerBound.x;
_local5 = m_worldAABB.lowerBound.y;
_local4 = (_local4 - _arg1.upperBound.x);
_local5 = (_local5 - _arg1.upperBound.y);
_local2 = b2Math.b2Max(_local2, _local4);
_local3 = b2Math.b2Max(_local3, _local5);
return ((b2Math.b2Max(_local2, _local3) < 0));
}
public function MoveProxy(_arg1:uint, _arg2:b2AABB):void{
var _local3:uint;
var _local4:uint;
var _local5:b2Bound;
var _local6:b2Bound;
var _local7:b2Bound;
var _local8:uint;
var _local9:b2Proxy;
var _local10:uint;
var _local11:b2Proxy;
var _local12:b2BoundValues;
var _local13:b2BoundValues;
var _local14:Array;
var _local15:uint;
var _local16:uint;
var _local17:uint;
var _local18:uint;
var _local19:int;
var _local20:int;
var _local21:uint;
var _local22:b2Proxy;
if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){
return;
};
if (_arg2.IsValid() == false){
return;
};
_local10 = (2 * m_proxyCount);
_local11 = m_proxyPool[_arg1];
_local12 = new b2BoundValues();
ComputeBounds(_local12.lowerValues, _local12.upperValues, _arg2);
_local13 = new b2BoundValues();
_local3 = 0;
while (_local3 < 2) {
_local13.lowerValues[_local3] = m_bounds[_local3][_local11.lowerBounds[_local3]].value;
_local13.upperValues[_local3] = m_bounds[_local3][_local11.upperBounds[_local3]].value;
_local3++;
};
_local3 = 0;
while (_local3 < 2) {
_local14 = m_bounds[_local3];
_local15 = _local11.lowerBounds[_local3];
_local16 = _local11.upperBounds[_local3];
_local17 = _local12.lowerValues[_local3];
_local18 = _local12.upperValues[_local3];
_local19 = (_local17 - _local14[_local15].value);
_local20 = (_local18 - _local14[_local16].value);
_local14[_local15].value = _local17;
_local14[_local16].value = _local18;
if (_local19 < 0){
_local4 = _local15;
while ((((_local4 > 0)) && ((_local17 < _local14[(_local4 - 1)].value)))) {
_local5 = _local14[_local4];
_local6 = _local14[(_local4 - 1)];
_local21 = _local6.proxyId;
_local22 = m_proxyPool[_local6.proxyId];
_local6.stabbingCount++;
if (_local6.IsUpper() == true){
if (TestOverlap(_local12, _local22)){
m_pairManager.AddBufferedPair(_arg1, _local21);
};
var _local23 = _local22.upperBounds;
var _local24 = _local3;
var _local25 = (_local23[_local24] + 1);
_local23[_local24] = _local25;
_local5.stabbingCount++;
} else {
_local23 = _local22.lowerBounds;
_local24 = _local3;
_local25 = (_local23[_local24] + 1);
_local23[_local24] = _local25;
_local5.stabbingCount--;
};
_local23 = _local11.lowerBounds;
_local24 = _local3;
_local25 = (_local23[_local24] - 1);
_local23[_local24] = _local25;
_local5.Swap(_local6);
_local4--;
};
};
if (_local20 > 0){
_local4 = _local16;
while ((((_local4 < (_local10 - 1))) && ((_local14[(_local4 + 1)].value <= _local18)))) {
_local5 = _local14[_local4];
_local7 = _local14[(_local4 + 1)];
_local8 = _local7.proxyId;
_local9 = m_proxyPool[_local8];
_local7.stabbingCount++;
if (_local7.IsLower() == true){
if (TestOverlap(_local12, _local9)){
m_pairManager.AddBufferedPair(_arg1, _local8);
};
_local23 = _local9.lowerBounds;
_local24 = _local3;
_local25 = (_local23[_local24] - 1);
_local23[_local24] = _local25;
_local5.stabbingCount++;
} else {
_local23 = _local9.upperBounds;
_local24 = _local3;
_local25 = (_local23[_local24] - 1);
_local23[_local24] = _local25;
_local5.stabbingCount--;
};
_local23 = _local11.upperBounds;
_local24 = _local3;
_local25 = (_local23[_local24] + 1);
_local23[_local24] = _local25;
_local5.Swap(_local7);
_local4++;
};
};
if (_local19 > 0){
_local4 = _local15;
while ((((_local4 < (_local10 - 1))) && ((_local14[(_local4 + 1)].value <= _local17)))) {
_local5 = _local14[_local4];
_local7 = _local14[(_local4 + 1)];
_local8 = _local7.proxyId;
_local9 = m_proxyPool[_local8];
_local7.stabbingCount--;
if (_local7.IsUpper()){
if (TestOverlap(_local13, _local9)){
m_pairManager.RemoveBufferedPair(_arg1, _local8);
};
_local23 = _local9.upperBounds;
_local24 = _local3;
_local25 = (_local23[_local24] - 1);
_local23[_local24] = _local25;
_local5.stabbingCount--;
} else {
_local23 = _local9.lowerBounds;
_local24 = _local3;
_local25 = (_local23[_local24] - 1);
_local23[_local24] = _local25;
_local5.stabbingCount++;
};
_local23 = _local11.lowerBounds;
_local24 = _local3;
_local25 = (_local23[_local24] + 1);
_local23[_local24] = _local25;
_local5.Swap(_local7);
_local4++;
};
};
if (_local20 < 0){
_local4 = _local16;
while ((((_local4 > 0)) && ((_local18 < _local14[(_local4 - 1)].value)))) {
_local5 = _local14[_local4];
_local6 = _local14[(_local4 - 1)];
_local21 = _local6.proxyId;
_local22 = m_proxyPool[_local21];
_local6.stabbingCount--;
if (_local6.IsLower() == true){
if (TestOverlap(_local13, _local22)){
m_pairManager.RemoveBufferedPair(_arg1, _local21);
};
_local23 = _local22.lowerBounds;
_local24 = _local3;
_local25 = (_local23[_local24] + 1);
_local23[_local24] = _local25;
_local5.stabbingCount--;
} else {
_local23 = _local22.upperBounds;
_local24 = _local3;
_local25 = (_local23[_local24] + 1);
_local23[_local24] = _local25;
_local5.stabbingCount++;
};
_local23 = _local11.upperBounds;
_local24 = _local3;
_local25 = (_local23[_local24] - 1);
_local23[_local24] = _local25;
_local5.Swap(_local6);
_local4--;
};
};
_local3++;
};
}
public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{
var _local4:int;
var _local5:int;
var _local6:int;
_local4 = 0;
_local5 = (_arg2 - 1);
while (_local4 <= _local5) {
_local6 = ((_local4 + _local5) / 2);
if (_arg1[_local6].value > _arg3){
_local5 = (_local6 - 1);
} else {
if (_arg1[_local6].value < _arg3){
_local4 = (_local6 + 1);
} else {
return (uint(_local6));
};
};
};
return (uint(_local4));
}
}
}//package Box2D.Collision
Section 32
//b2BufferedPair (Box2D.Collision.b2BufferedPair)
package Box2D.Collision {
public class b2BufferedPair {
public var proxyId1:uint;
public var proxyId2:uint;
}
}//package Box2D.Collision
Section 33
//b2Collision (Box2D.Collision.b2Collision)
package Box2D.Collision {
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
import Box2D.Common.*;
public class b2Collision {
public static const b2_nullFeature:uint = 0xFF;
public static const b2_oldPoint:uint = 4;
public static const b2_newPoint:uint = 2;
private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2();
public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{
var _local6:b2Mat22;
var _local7:b2Vec2;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:int;
var _local13:Number;
var _local14:int;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
_local6 = _arg2.R;
_local7 = _arg1.m_normals[_arg3];
_local8 = ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y));
_local9 = ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y));
_local6 = _arg5.R;
_local10 = ((_local6.col1.x * _local8) + (_local6.col1.y * _local9));
_local11 = ((_local6.col2.x * _local8) + (_local6.col2.y * _local9));
_local12 = 0;
_local13 = Number.MAX_VALUE;
_local14 = 0;
while (_local14 < _arg4.m_vertexCount) {
_local7 = _arg4.m_vertices[_local14];
_local20 = ((_local7.x * _local10) + (_local7.y * _local11));
if (_local20 < _local13){
_local13 = _local20;
_local12 = _local14;
};
_local14++;
};
_local7 = _arg1.m_vertices[_arg3];
_local6 = _arg2.R;
_local15 = (_arg2.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y)));
_local16 = (_arg2.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y)));
_local7 = _arg4.m_vertices[_local12];
_local6 = _arg5.R;
_local17 = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y)));
_local18 = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y)));
_local17 = (_local17 - _local15);
_local18 = (_local18 - _local16);
_local19 = ((_local17 * _local8) + (_local18 * _local9));
return (_local19);
}
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:b2Mat22;
var _local8:b2Vec2;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:int;
var _local13:Number;
var _local14:int;
var _local15:ClipVertex;
var _local16:int;
var _local17:int;
var _local18:Number;
_local7 = _arg3.R;
_local8 = _arg2.m_normals[_arg4];
_local9 = ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y));
_local10 = ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y));
_local7 = _arg6.R;
_local11 = ((_local7.col1.x * _local9) + (_local7.col1.y * _local10));
_local10 = ((_local7.col2.x * _local9) + (_local7.col2.y * _local10));
_local9 = _local11;
_local12 = 0;
_local13 = Number.MAX_VALUE;
_local14 = 0;
while (_local14 < _arg5.m_vertexCount) {
_local8 = _arg5.m_normals[_local14];
_local18 = ((_local9 * _local8.x) + (_local10 * _local8.y));
if (_local18 < _local13){
_local13 = _local18;
_local12 = _local14;
};
_local14++;
};
_local16 = _local12;
_local17 = (((_local16 + 1) < _arg5.m_vertexCount)) ? (_local16 + 1) : 0;
_local15 = _arg1[0];
_local8 = _arg5.m_vertices[_local16];
_local7 = _arg6.R;
_local15.v.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y)));
_local15.v.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y)));
_local15.id.features.referenceFace = _arg4;
_local15.id.features.incidentEdge = _local16;
_local15.id.features.incidentVertex = 0;
_local15 = _arg1[1];
_local8 = _arg5.m_vertices[_local17];
_local7 = _arg6.R;
_local15.v.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y)));
_local15.v.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y)));
_local15.id.features.referenceFace = _arg4;
_local15.id.features.incidentEdge = _local17;
_local15.id.features.incidentVertex = 1;
}
public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{
var _local6:int;
var _local7:Array;
var _local8:Number;
var _local9:int;
var _local10:Array;
var _local11:Number;
var _local12:b2PolygonShape;
var _local13:b2PolygonShape;
var _local14:b2XForm;
var _local15:b2XForm;
var _local16:int;
var _local17:uint;
var _local18:Number;
var _local19:Number;
var _local20:Array;
var _local21:int;
var _local22:Array;
var _local23:b2Vec2;
var _local24:b2Vec2;
var _local25:b2Vec2;
var _local26:b2Vec2;
var _local27:b2Vec2;
var _local28:Number;
var _local29:Number;
var _local30:Number;
var _local31:Array;
var _local32:Array;
var _local33:int;
var _local34:int;
var _local35:int;
var _local36:Number;
var _local37:b2ManifoldPoint;
_arg1.pointCount = 0;
_local6 = 0;
_local7 = [_local6];
_local8 = FindMaxSeparation(_local7, _arg2, _arg3, _arg4, _arg5);
_local6 = _local7[0];
if (_local8 > 0){
return;
};
_local9 = 0;
_local10 = [_local9];
_local11 = FindMaxSeparation(_local10, _arg4, _arg5, _arg2, _arg3);
_local9 = _local10[0];
if (_local11 > 0){
return;
};
_local14 = new b2XForm();
_local15 = new b2XForm();
_local18 = 0.98;
_local19 = 0.001;
if (_local11 > ((_local18 * _local8) + _local19)){
_local12 = _arg4;
_local13 = _arg2;
_local14.Set(_arg5);
_local15.Set(_arg3);
_local16 = _local9;
_local17 = 1;
} else {
_local12 = _arg2;
_local13 = _arg4;
_local14.Set(_arg3);
_local15.Set(_arg5);
_local16 = _local6;
_local17 = 0;
};
_local20 = [new ClipVertex(), new ClipVertex()];
FindIncidentEdge(_local20, _local12, _local14, _local16, _local13, _local15);
_local21 = _local12.m_vertexCount;
_local22 = _local12.m_vertices;
_local23 = _local22[_local16].Copy();
_local24 = (((_local16 + 1) < _local21)) ? _local22[(_local16 + 1)].Copy() : _local22[0].Copy();
_local25 = b2Math.SubtractVV(_local24, _local23);
_local26 = b2Math.b2MulMV(_local14.R, b2Math.SubtractVV(_local24, _local23));
_local26.Normalize();
_local27 = b2Math.b2CrossVF(_local26, 1);
_local23 = b2Math.b2MulX(_local14, _local23);
_local24 = b2Math.b2MulX(_local14, _local24);
_local28 = b2Math.b2Dot(_local27, _local23);
_local29 = -(b2Math.b2Dot(_local26, _local23));
_local30 = b2Math.b2Dot(_local26, _local24);
_local31 = [new ClipVertex(), new ClipVertex()];
_local32 = [new ClipVertex(), new ClipVertex()];
_local33 = ClipSegmentToLine(_local31, _local20, _local26.Negative(), _local29);
if (_local33 < 2){
return;
};
_local33 = ClipSegmentToLine(_local32, _local31, _local26, _local30);
if (_local33 < 2){
return;
};
_arg1.normal = (_local17) ? _local27.Negative() : _local27.Copy();
_local34 = 0;
_local35 = 0;
while (_local35 < b2Settings.b2_maxManifoldPoints) {
_local36 = (b2Math.b2Dot(_local27, _local32[_local35].v) - _local28);
if (_local36 <= 0){
_local37 = _arg1.points[_local34];
_local37.separation = _local36;
_local37.localPoint1 = b2Math.b2MulXT(_arg3, _local32[_local35].v);
_local37.localPoint2 = b2Math.b2MulXT(_arg5, _local32[_local35].v);
_local37.id.key = _local32[_local35].id.key;
_local37.id.features.flip = _local17;
_local34++;
};
_local35++;
};
_arg1.pointCount = _local34;
}
public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{
var _local6:int;
var _local7:b2Vec2;
var _local8:b2Mat22;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:int;
var _local14:Number;
var _local15:int;
var _local16:Number;
var _local17:int;
var _local18:Number;
var _local19:int;
var _local20:Number;
var _local21:int;
var _local22:Number;
var _local23:int;
var _local24:Number;
_local6 = _arg2.m_vertexCount;
_local8 = _arg5.R;
_local7 = _arg4.m_centroid;
_local9 = (_arg5.position.x + ((_local8.col1.x * _local7.x) + (_local8.col2.x * _local7.y)));
_local10 = (_arg5.position.y + ((_local8.col1.y * _local7.x) + (_local8.col2.y * _local7.y)));
_local8 = _arg3.R;
_local7 = _arg2.m_centroid;
_local9 = (_local9 - (_arg3.position.x + ((_local8.col1.x * _local7.x) + (_local8.col2.x * _local7.y))));
_local10 = (_local10 - (_arg3.position.y + ((_local8.col1.y * _local7.x) + (_local8.col2.y * _local7.y))));
_local11 = ((_local9 * _arg3.R.col1.x) + (_local10 * _arg3.R.col1.y));
_local12 = ((_local9 * _arg3.R.col2.x) + (_local10 * _arg3.R.col2.y));
_local13 = 0;
_local14 = -(Number.MAX_VALUE);
_local15 = 0;
while (_local15 < _local6) {
_local24 = ((_arg2.m_normals[_local15].x * _local11) + (_arg2.m_normals[_local15].y * _local12));
if (_local24 > _local14){
_local14 = _local24;
_local13 = _local15;
};
_local15++;
};
_local16 = EdgeSeparation(_arg2, _arg3, _local13, _arg4, _arg5);
if (_local16 > 0){
return (_local16);
};
_local17 = (((_local13 - 1) >= 0)) ? (_local13 - 1) : (_local6 - 1);
_local18 = EdgeSeparation(_arg2, _arg3, _local17, _arg4, _arg5);
if (_local18 > 0){
return (_local18);
};
_local19 = (((_local13 + 1) < _local6)) ? (_local13 + 1) : 0;
_local20 = EdgeSeparation(_arg2, _arg3, _local19, _arg4, _arg5);
if (_local20 > 0){
return (_local20);
};
if ((((_local18 > _local16)) && ((_local18 > _local20)))){
_local23 = -1;
_local21 = _local17;
_local22 = _local18;
} else {
if (_local20 > _local16){
_local23 = 1;
_local21 = _local19;
_local22 = _local20;
} else {
_arg1[0] = _local13;
return (_local16);
};
};
while (true) {
if (_local23 == -1){
_local13 = (((_local21 - 1) >= 0)) ? (_local21 - 1) : (_local6 - 1);
} else {
_local13 = (((_local21 + 1) < _local6)) ? (_local21 + 1) : 0;
};
_local16 = EdgeSeparation(_arg2, _arg3, _local13, _arg4, _arg5);
if (_local16 > 0){
return (_local16);
};
if (_local16 > _local22){
_local21 = _local13;
_local22 = _local16;
} else {
break;
};
};
_arg1[0] = _local21;
return (_local22);
}
public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{
var _local5:int;
var _local6:b2Vec2;
var _local7:b2Vec2;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:b2Vec2;
_local5 = 0;
_local6 = _arg2[0].v;
_local7 = _arg2[1].v;
_local8 = (b2Math.b2Dot(_arg3, _local6) - _arg4);
_local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4);
if (_local8 <= 0){
var _temp1 = _local5;
_local5 = (_local5 + 1);
var _local12 = _temp1;
_arg1[_local12] = _arg2[0];
};
if (_local9 <= 0){
var _temp2 = _local5;
_local5 = (_local5 + 1);
_local12 = _temp2;
_arg1[_local12] = _arg2[1];
};
if ((_local8 * _local9) < 0){
_local10 = (_local8 / (_local8 - _local9));
_local11 = _arg1[_local5].v;
_local11.x = (_local6.x + (_local10 * (_local7.x - _local6.x)));
_local11.y = (_local6.y + (_local10 * (_local7.y - _local6.y)));
if (_local8 > 0){
_arg1[_local5].id = _arg2[0].id;
} else {
_arg1[_local5].id = _arg2[1].id;
};
_local5++;
};
return (_local5);
}
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:b2ManifoldPoint;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23: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 + _arg4.m_radius);
if (_local14 > (_local15 * _local15)){
return;
};
if (_local14 < Number.MIN_VALUE){
_local16 = -(_local15);
_arg1.normal.Set(0, 1);
} else {
_local22 = Math.sqrt(_local14);
_local16 = (_local22 - _local15);
_local23 = (1 / _local22);
_arg1.normal.x = (_local23 * _local12);
_arg1.normal.y = (_local23 * _local13);
};
_arg1.pointCount = 1;
_local17 = _arg1.points[0];
_local17.id.key = 0;
_local17.separation = _local16;
_local8 = (_local8 + (_arg2.m_radius * _arg1.normal.x));
_local9 = (_local9 + (_arg2.m_radius * _arg1.normal.y));
_local10 = (_local10 - (_arg4.m_radius * _arg1.normal.x));
_local11 = (_local11 - (_arg4.m_radius * _arg1.normal.y));
_local18 = (0.5 * (_local8 + _local10));
_local19 = (0.5 * (_local9 + _local11));
_local20 = (_local18 - _arg3.position.x);
_local21 = (_local19 - _arg3.position.y);
_local17.localPoint1.x = ((_local20 * _arg3.R.col1.x) + (_local21 * _arg3.R.col1.y));
_local17.localPoint1.y = ((_local20 * _arg3.R.col2.x) + (_local21 * _arg3.R.col2.y));
_local20 = (_local18 - _arg5.position.x);
_local21 = (_local19 - _arg5.position.y);
_local17.localPoint2.x = ((_local20 * _arg5.R.col1.x) + (_local21 * _arg5.R.col1.y));
_local17.localPoint2.y = ((_local20 * _arg5.R.col2.x) + (_local21 * _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:int;
var _local23:int;
var _local24:Number;
var _local25:Number;
var _local26:Number;
var _local27:Number;
var _local28:Number;
var _local29:Number;
var _local30: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 = 0;
while (_local21 < _arg2.m_vertexCount) {
_local7 = (_local15 - _arg2.m_vertices[_local21].x);
_local8 = (_local16 - _arg2.m_vertices[_local21].y);
_local30 = ((_arg2.m_normals[_local21].x * _local7) + (_arg2.m_normals[_local21].y * _local8));
if (_local30 > _local20){
return;
};
if (_local30 > _local19){
_local19 = _local30;
_local18 = _local21;
};
_local21++;
};
if (_local19 < Number.MIN_VALUE){
_arg1.pointCount = 1;
_local11 = _arg2.m_normals[_local18];
_local12 = _arg3.R;
_arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y));
_arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y));
_local6 = _arg1.points[0];
_local6.id.features.incidentEdge = _local18;
_local6.id.features.incidentVertex = b2_nullFeature;
_local6.id.features.referenceFace = b2_nullFeature;
_local6.id.features.flip = 0;
_local9 = (_local13 - (_local20 * _arg1.normal.x));
_local10 = (_local14 - (_local20 * _arg1.normal.y));
_local7 = (_local9 - _arg3.position.x);
_local8 = (_local10 - _arg3.position.y);
_local12 = _arg3.R;
_local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y));
_local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y));
_local7 = (_local9 - _arg5.position.x);
_local8 = (_local10 - _arg5.position.y);
_local12 = _arg5.R;
_local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y));
_local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y));
_local6.separation = (_local19 - _local20);
return;
};
_local22 = _local18;
_local23 = (((_local22 + 1) < _arg2.m_vertexCount)) ? (_local22 + 1) : 0;
_local24 = (_arg2.m_vertices[_local23].x - _arg2.m_vertices[_local22].x);
_local25 = (_arg2.m_vertices[_local23].y - _arg2.m_vertices[_local22].y);
_local26 = Math.sqrt(((_local24 * _local24) + (_local25 * _local25)));
_local24 = (_local24 / _local26);
_local25 = (_local25 / _local26);
if (_local26 < Number.MIN_VALUE){
_local7 = (_local15 - _arg2.m_vertices[_local22].x);
_local8 = (_local16 - _arg2.m_vertices[_local22].y);
_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));
_local6 = _arg1.points[0];
_local6.id.features.incidentEdge = b2_nullFeature;
_local6.id.features.incidentVertex = _local22;
_local6.id.features.referenceFace = b2_nullFeature;
_local6.id.features.flip = 0;
_local9 = (_local13 - (_local20 * _arg1.normal.x));
_local10 = (_local14 - (_local20 * _arg1.normal.y));
_local7 = (_local9 - _arg3.position.x);
_local8 = (_local10 - _arg3.position.y);
_local12 = _arg3.R;
_local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y));
_local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y));
_local7 = (_local9 - _arg5.position.x);
_local8 = (_local10 - _arg5.position.y);
_local12 = _arg5.R;
_local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y));
_local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y));
_local6.separation = (_local17 - _local20);
return;
};
_local7 = (_local15 - _arg2.m_vertices[_local22].x);
_local8 = (_local16 - _arg2.m_vertices[_local22].y);
_local27 = ((_local7 * _local24) + (_local8 * _local25));
_local6 = _arg1.points[0];
_local6.id.features.incidentEdge = b2_nullFeature;
_local6.id.features.incidentVertex = b2_nullFeature;
_local6.id.features.referenceFace = b2_nullFeature;
_local6.id.features.flip = 0;
if (_local27 <= 0){
_local28 = _arg2.m_vertices[_local22].x;
_local29 = _arg2.m_vertices[_local22].y;
_local6.id.features.incidentVertex = _local22;
} else {
if (_local27 >= _local26){
_local28 = _arg2.m_vertices[_local23].x;
_local29 = _arg2.m_vertices[_local23].y;
_local6.id.features.incidentVertex = _local23;
} else {
_local28 = ((_local24 * _local27) + _arg2.m_vertices[_local22].x);
_local29 = ((_local25 * _local27) + _arg2.m_vertices[_local22].y);
_local6.id.features.incidentEdge = _local22;
};
};
_local7 = (_local15 - _local28);
_local8 = (_local16 - _local29);
_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);
}
}
}//package Box2D.Collision
Section 34
//b2ContactID (Box2D.Collision.b2ContactID)
package Box2D.Collision {
public class b2ContactID {
public var _key:uint;
public var features:Features;
public function b2ContactID(){
features = new Features();
super();
features._m_id = this;
}
public function Set(_arg1:b2ContactID):void{
key = _arg1._key;
}
public function Copy():b2ContactID{
var _local1:b2ContactID;
_local1 = new b2ContactID();
_local1.key = key;
return (_local1);
}
public function get key():uint{
return (_key);
}
public function set key(_arg1:uint):void{
_key = _arg1;
features._referenceFace = (_key & 0xFF);
features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF);
features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF);
features._flip = (((_key & 4278190080) >> 24) & 0xFF);
}
}
}//package Box2D.Collision
Section 35
//b2ContactPoint (Box2D.Collision.b2ContactPoint)
package Box2D.Collision {
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
public class b2ContactPoint {
public var normalForce:Number;
public var separation:Number;
public var normal:b2Vec2;
public var position:b2Vec2;
public var tangentForce:Number;
public var shape1:b2Shape;
public var shape2:b2Shape;
public var id:b2ContactID;
public function b2ContactPoint(){
position = new b2Vec2();
normal = new b2Vec2();
id = new b2ContactID();
super();
}
}
}//package Box2D.Collision
Section 36
//b2Distance (Box2D.Collision.b2Distance)
package Box2D.Collision {
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
import Box2D.Common.*;
public class b2Distance {
private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()];
private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()];
private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()];
private static var gPoint:b2Point = new b2Point();
public static var g_GJK_Iterations:int = 0;
public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{
var _local4:Number;
var _local5:int;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
_local4 = (100 * Number.MIN_VALUE);
_local5 = 0;
while (_local5 < _arg3) {
_local6 = Math.abs((_arg1.x - _arg2[_local5].x));
_local7 = Math.abs((_arg1.y - _arg2[_local5].y));
_local8 = Math.max(Math.abs(_arg1.x), Math.abs(_arg2[_local5].x));
_local9 = Math.max(Math.abs(_arg1.y), Math.abs(_arg2[_local5].y));
if ((((_local6 < (_local4 * (_local8 + 1)))) && ((_local7 < (_local4 * (_local9 + 1)))))){
return (true);
};
_local5++;
};
return (false);
}
public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{
var _local7:Array;
var _local8:Array;
var _local9:Array;
var _local10:int;
var _local11:Number;
var _local12:int;
var _local13:int;
var _local14:Number;
var _local15:Number;
var _local16:b2Vec2;
var _local17:b2Vec2;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:int;
_local7 = s_p1s;
_local8 = s_p2s;
_local9 = s_points;
_local10 = 0;
_arg1.SetV(_arg3.GetFirstVertex(_arg4));
_arg2.SetV(_arg5.GetFirstVertex(_arg6));
_local11 = 0;
_local12 = 20;
_local13 = 0;
while (_local13 < _local12) {
_local14 = (_arg2.x - _arg1.x);
_local15 = (_arg2.y - _arg1.y);
_local16 = _arg3.Support(_arg4, _local14, _local15);
_local17 = _arg5.Support(_arg6, -(_local14), -(_local15));
_local11 = ((_local14 * _local14) + (_local15 * _local15));
_local18 = (_local17.x - _local16.x);
_local19 = (_local17.y - _local16.y);
_local20 = ((_local14 * _local18) + (_local15 * _local19));
if ((_local11 - ((_local14 * _local18) + (_local15 * _local19))) <= (0.01 * _local11)){
if (_local10 == 0){
_arg1.SetV(_local16);
_arg2.SetV(_local17);
};
g_GJK_Iterations = _local13;
return (Math.sqrt(_local11));
};
switch (_local10){
case 0:
_local7[0].SetV(_local16);
_local8[0].SetV(_local17);
_local9[0].Set(_local18, _local19);
_arg1.SetV(_local7[0]);
_arg2.SetV(_local8[0]);
_local10++;
break;
case 1:
_local7[1].SetV(_local16);
_local8[1].SetV(_local17);
_local9[1].x = _local18;
_local9[1].y = _local19;
_local10 = ProcessTwo(_arg1, _arg2, _local7, _local8, _local9);
break;
case 2:
_local7[2].SetV(_local16);
_local8[2].SetV(_local17);
_local9[2].x = _local18;
_local9[2].y = _local19;
_local10 = ProcessThree(_arg1, _arg2, _local7, _local8, _local9);
break;
};
if (_local10 == 3){
g_GJK_Iterations = _local13;
return (0);
};
_local21 = -(Number.MAX_VALUE);
_local22 = 0;
while (_local22 < _local10) {
_local21 = b2Math.b2Max(_local21, ((_local9[_local22].x * _local9[_local22].x) + (_local9[_local22].y * _local9[_local22].y)));
_local22++;
};
if ((((_local10 == 3)) || ((_local11 <= ((100 * Number.MIN_VALUE) * _local21))))){
g_GJK_Iterations = _local13;
_local14 = (_arg2.x - _arg1.x);
_local15 = (_arg2.y - _arg1.y);
_local11 = ((_local14 * _local14) + (_local15 * _local15));
return (Math.sqrt(_local11));
};
_local13++;
};
g_GJK_Iterations = _local12;
return (Math.sqrt(_local11));
}
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: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;
var _local29:Number;
var _local30:Number;
var _local31:Number;
var _local32:Number;
_local6 = _arg5[0].x;
_local7 = _arg5[0].y;
_local8 = _arg5[1].x;
_local9 = _arg5[1].y;
_local10 = _arg5[2].x;
_local11 = _arg5[2].y;
_local12 = (_local8 - _local6);
_local13 = (_local9 - _local7);
_local14 = (_local10 - _local6);
_local15 = (_local11 - _local7);
_local16 = (_local10 - _local8);
_local17 = (_local11 - _local9);
_local18 = -(((_local6 * _local12) + (_local7 * _local13)));
_local19 = ((_local8 * _local12) + (_local9 * _local13));
_local20 = -(((_local6 * _local14) + (_local7 * _local15)));
_local21 = ((_local10 * _local14) + (_local11 * _local15));
_local22 = -(((_local8 * _local16) + (_local9 * _local17)));
_local23 = ((_local10 * _local16) + (_local11 * _local17));
if ((((_local21 <= 0)) && ((_local23 <= 0)))){
_arg1.SetV(_arg3[2]);
_arg2.SetV(_arg4[2]);
_arg3[0].SetV(_arg3[2]);
_arg4[0].SetV(_arg4[2]);
_arg5[0].SetV(_arg5[2]);
return (1);
};
_local24 = ((_local12 * _local15) - (_local13 * _local14));
_local25 = (_local24 * ((_local6 * _local9) - (_local7 * _local8)));
_local27 = (_local24 * ((_local8 * _local11) - (_local9 * _local10)));
if ((((((_local27 <= 0)) && ((_local22 >= 0)))) && ((_local23 >= 0)))){
_local26 = (_local22 / (_local22 + _local23));
_arg1.x = (_arg3[1].x + (_local26 * (_arg3[2].x - _arg3[1].x)));
_arg1.y = (_arg3[1].y + (_local26 * (_arg3[2].y - _arg3[1].y)));
_arg2.x = (_arg4[1].x + (_local26 * (_arg4[2].x - _arg4[1].x)));
_arg2.y = (_arg4[1].y + (_local26 * (_arg4[2].y - _arg4[1].y)));
_arg3[0].SetV(_arg3[2]);
_arg4[0].SetV(_arg4[2]);
_arg5[0].SetV(_arg5[2]);
return (2);
};
_local28 = (_local24 * ((_local10 * _local7) - (_local11 * _local6)));
if ((((((_local28 <= 0)) && ((_local20 >= 0)))) && ((_local21 >= 0)))){
_local26 = (_local20 / (_local20 + _local21));
_arg1.x = (_arg3[0].x + (_local26 * (_arg3[2].x - _arg3[0].x)));
_arg1.y = (_arg3[0].y + (_local26 * (_arg3[2].y - _arg3[0].y)));
_arg2.x = (_arg4[0].x + (_local26 * (_arg4[2].x - _arg4[0].x)));
_arg2.y = (_arg4[0].y + (_local26 * (_arg4[2].y - _arg4[0].y)));
_arg3[1].SetV(_arg3[2]);
_arg4[1].SetV(_arg4[2]);
_arg5[1].SetV(_arg5[2]);
return (2);
};
_local29 = ((_local27 + _local28) + _local25);
_local29 = (1 / _local29);
_local30 = (_local27 * _local29);
_local31 = (_local28 * _local29);
_local32 = ((1 - _local30) - _local31);
_arg1.x = (((_local30 * _arg3[0].x) + (_local31 * _arg3[1].x)) + (_local32 * _arg3[2].x));
_arg1.y = (((_local30 * _arg3[0].y) + (_local31 * _arg3[1].y)) + (_local32 * _arg3[2].y));
_arg2.x = (((_local30 * _arg4[0].x) + (_local31 * _arg4[1].x)) + (_local32 * _arg4[2].x));
_arg2.y = (((_local30 * _arg4[0].y) + (_local31 * _arg4[1].y)) + (_local32 * _arg4[2].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.GetRadius() - 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.GetType();
_local8 = _arg5.GetType();
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:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
_local6 = -(_arg5[1].x);
_local7 = -(_arg5[1].y);
_local8 = (_arg5[0].x - _arg5[1].x);
_local9 = (_arg5[0].y - _arg5[1].y);
_local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9)));
_local8 = (_local8 / _local10);
_local9 = (_local9 / _local10);
_local11 = ((_local6 * _local8) + (_local7 * _local9));
if ((((_local11 <= 0)) || ((_local10 < Number.MIN_VALUE)))){
_arg1.SetV(_arg3[1]);
_arg2.SetV(_arg4[1]);
_arg3[0].SetV(_arg3[1]);
_arg4[0].SetV(_arg4[1]);
_arg5[0].SetV(_arg5[1]);
return (1);
};
_local11 = (_local11 / _local10);
_arg1.x = (_arg3[1].x + (_local11 * (_arg3[0].x - _arg3[1].x)));
_arg1.y = (_arg3[1].y + (_local11 * (_arg3[0].y - _arg3[1].y)));
_arg2.x = (_arg4[1].x + (_local11 * (_arg4[0].x - _arg4[1].x)));
_arg2.y = (_arg4[1].y + (_local11 * (_arg4[0].y - _arg4[1].y)));
return (2);
}
}
}//package Box2D.Collision
Section 37
//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 38
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint)
package Box2D.Collision {
import Box2D.Common.Math.*;
public class b2ManifoldPoint {
public var normalForce:Number;
public var separation:Number;
public var id:b2ContactID;
public var localPoint2:b2Vec2;
public var localPoint1:b2Vec2;
public var tangentForce:Number;
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;
normalForce = _arg1.normalForce;
tangentForce = _arg1.tangentForce;
id.key = _arg1.id.key;
}
public function Reset():void{
localPoint1.SetZero();
localPoint2.SetZero();
separation = 0;
normalForce = 0;
tangentForce = 0;
id.key = 0;
}
}
}//package Box2D.Collision
Section 39
//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 40
//b2Pair (Box2D.Collision.b2Pair)
package Box2D.Collision {
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 = 0xFFFF;
public static var e_pairBuffered:uint = 1;
public static var b2_nullProxy:uint = 0xFFFF;
public static var b2_tableCapacity:int = 4096;
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 41
//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 42
//b2PairManager (Box2D.Collision.b2PairManager)
package Box2D.Collision {
import Box2D.Common.Math.*;
import Box2D.Common.*;
public class b2PairManager {
public var m_pairCount:int;
public var m_pairBuffer:Array;
public var m_callback:b2PairCallback;
public var m_pairs:Array;
public var m_pairBufferCount:int;
public var m_hashTable:Array;
public var m_broadPhase:b2BroadPhase;
public var m_freePair:uint;
public function b2PairManager(){
var _local1:uint;
super();
m_hashTable = new Array(b2Pair.b2_tableCapacity);
_local1 = 0;
while (_local1 < b2Pair.b2_tableCapacity) {
m_hashTable[_local1] = b2Pair.b2_nullPair;
_local1++;
};
m_pairs = new Array(b2Settings.b2_maxPairs);
_local1 = 0;
while (_local1 < b2Settings.b2_maxPairs) {
m_pairs[_local1] = new b2Pair();
_local1++;
};
m_pairBuffer = new Array(b2Settings.b2_maxPairs);
_local1 = 0;
while (_local1 < b2Settings.b2_maxPairs) {
m_pairBuffer[_local1] = new b2BufferedPair();
_local1++;
};
_local1 = 0;
while (_local1 < b2Settings.b2_maxPairs) {
m_pairs[_local1].proxyId1 = b2Pair.b2_nullProxy;
m_pairs[_local1].proxyId2 = b2Pair.b2_nullProxy;
m_pairs[_local1].userData = null;
m_pairs[_local1].status = 0;
m_pairs[_local1].next = (_local1 + 1);
_local1++;
};
m_pairs[(b2Settings.b2_maxPairs - 1)].next = b2Pair.b2_nullPair;
m_pairCount = 0;
m_pairBufferCount = 0;
}
private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{
var _local4:uint;
_local4 = m_hashTable[_arg3];
while (((!((_local4 == b2Pair.b2_nullPair))) && ((Equals(m_pairs[_local4], _arg1, _arg2) == false)))) {
_local4 = m_pairs[_local4].next;
};
if (_local4 == b2Pair.b2_nullPair){
return (null);
};
return (m_pairs[_local4]);
}
private function Find(_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 (FindHash(_arg1, _arg2, _local3));
}
private function ValidateBuffer():void{
}
public function Commit():void{
var _local1:int;
var _local2:int;
var _local3:Array;
var _local4:b2Pair;
var _local5:b2Proxy;
var _local6:b2Proxy;
_local2 = 0;
_local3 = m_broadPhase.m_proxyPool;
_local1 = 0;
while (_local1 < m_pairBufferCount) {
_local4 = Find(m_pairBuffer[_local1].proxyId1, m_pairBuffer[_local1].proxyId2);
_local4.ClearBuffered();
_local5 = _local3[_local4.proxyId1];
_local6 = _local3[_local4.proxyId2];
if (_local4.IsRemoved()){
if (_local4.IsFinal() == true){
m_callback.PairRemoved(_local5.userData, _local6.userData, _local4.userData);
};
m_pairBuffer[_local2].proxyId1 = _local4.proxyId1;
m_pairBuffer[_local2].proxyId2 = _local4.proxyId2;
_local2++;
} else {
if (_local4.IsFinal() == false){
_local4.userData = m_callback.PairAdded(_local5.userData, _local6.userData);
_local4.SetFinal();
};
};
_local1++;
};
_local1 = 0;
while (_local1 < _local2) {
RemovePair(m_pairBuffer[_local1].proxyId1, m_pairBuffer[_local1].proxyId2);
_local1++;
};
m_pairBufferCount = 0;
if (b2BroadPhase.s_validate){
ValidateTable();
};
}
public function RemoveBufferedPair(_arg1:int, _arg2:int):void{
var _local3:b2Pair;
_local3 = Find(_arg1, _arg2);
if (_local3 == null){
return;
};
if (_local3.IsBuffered() == false){
_local3.SetBuffered();
m_pairBuffer[m_pairBufferCount].proxyId1 = _local3.proxyId1;
m_pairBuffer[m_pairBufferCount].proxyId2 = _local3.proxyId2;
m_pairBufferCount++;
};
_local3.SetRemoved();
if (b2BroadPhase.s_validate){
ValidateBuffer();
};
}
private function RemovePair(_arg1:uint, _arg2:uint){
var _local3:uint;
var _local4:uint;
var _local5:b2Pair;
var _local6:uint;
var _local7:uint;
var _local8:b2Pair;
var _local9:*;
if (_arg1 > _arg2){
_local6 = _arg1;
_arg1 = _arg2;
_arg2 = _local6;
};
_local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask);
_local4 = m_hashTable[_local3];
_local5 = null;
while (_local4 != b2Pair.b2_nullPair) {
if (Equals(m_pairs[_local4], _arg1, _arg2)){
_local7 = _local4;
if (_local5){
_local5.next = m_pairs[_local4].next;
} else {
m_hashTable[_local3] = m_pairs[_local4].next;
};
_local8 = m_pairs[_local7];
_local9 = _local8.userData;
_local8.next = m_freePair;
_local8.proxyId1 = b2Pair.b2_nullProxy;
_local8.proxyId2 = b2Pair.b2_nullProxy;
_local8.userData = null;
_local8.status = 0;
m_freePair = _local7;
m_pairCount--;
return (_local9);
} else {
_local5 = m_pairs[_local4];
_local4 = _local5.next;
};
};
return (null);
}
public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{
m_broadPhase = _arg1;
m_callback = _arg2;
}
public function AddBufferedPair(_arg1:int, _arg2:int):void{
var _local3:b2Pair;
_local3 = AddPair(_arg1, _arg2);
if (_local3.IsBuffered() == false){
_local3.SetBuffered();
m_pairBuffer[m_pairBufferCount].proxyId1 = _local3.proxyId1;
m_pairBuffer[m_pairBufferCount].proxyId2 = _local3.proxyId2;
m_pairBufferCount++;
};
_local3.ClearRemoved();
if (b2BroadPhase.s_validate){
ValidateBuffer();
};
}
private function AddPair(_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 = FindHash(_arg1, _arg2, _local3);
if (_local4 != null){
return (_local4);
};
_local5 = m_freePair;
_local4 = m_pairs[_local5];
m_freePair = _local4.next;
_local4.proxyId1 = _arg1;
_local4.proxyId2 = _arg2;
_local4.status = 0;
_local4.userData = null;
_local4.next = m_hashTable[_local3];
m_hashTable[_local3] = _local5;
m_pairCount++;
return (_local4);
}
private function ValidateTable():void{
}
public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{
return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2))));
}
public static function Hash(_arg1:uint, _arg2:uint):uint{
var _local3:uint;
_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 43
//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 44
//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 45
//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 46
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact)
package Box2D.Collision {
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
import Box2D.Common.*;
public class b2TimeOfImpact {
public static var s_xf1:b2XForm = new b2XForm();
public static var s_xf2:b2XForm = new b2XForm();
public static var s_p1:b2Vec2 = new b2Vec2();
public static var s_p2:b2Vec2 = new b2Vec2();
public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{
var _local5:Number;
var _local6:Number;
var _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:int;
var _local18:int;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:b2XForm;
var _local25:b2XForm;
var _local26:Number;
var _local27:Number;
var _local28:Number;
var _local29:Number;
_local5 = _arg1.GetSweepRadius();
_local6 = _arg3.GetSweepRadius();
_local7 = _arg2.t0;
_local8 = (_arg2.c.x - _arg2.c0.x);
_local9 = (_arg2.c.y - _arg2.c0.y);
_local10 = (_arg4.c.x - _arg4.c0.x);
_local11 = (_arg4.c.y - _arg4.c0.y);
_local12 = (_arg2.a - _arg2.a0);
_local13 = (_arg4.a - _arg4.a0);
_local14 = 0;
_local15 = s_p1;
_local16 = s_p2;
_local17 = 20;
_local18 = 0;
_local19 = 0;
_local20 = 0;
_local21 = 0;
_local22 = 0;
while (true) {
_local23 = (((1 - _local14) * _local7) + _local14);
_local24 = s_xf1;
_local25 = s_xf2;
_arg2.GetXForm(_local24, _local23);
_arg4.GetXForm(_local25, _local23);
_local21 = b2Distance.Distance(_local15, _local16, _arg1, _local24, _arg3, _local25);
if (_local18 == 0){
if (_local21 > (2 * b2Settings.b2_toiSlop)){
_local22 = (1.5 * b2Settings.b2_toiSlop);
} else {
_local22 = Math.max((0.05 * b2Settings.b2_toiSlop), (_local21 - (0.5 * b2Settings.b2_toiSlop)));
};
};
if (((((_local21 - _local22) < (0.05 * b2Settings.b2_toiSlop))) || ((_local18 == _local17)))){
break;
};
_local19 = (_local16.x - _local15.x);
_local20 = (_local16.y - _local15.y);
_local26 = Math.sqrt(((_local19 * _local19) + (_local20 * _local20)));
_local19 = (_local19 / _local26);
_local20 = (_local20 / _local26);
_local27 = ((((_local19 * (_local8 - _local10)) + (_local20 * (_local9 - _local11))) + (Math.abs(_local12) * _local5)) + (Math.abs(_local13) * _local6));
if (Math.abs(_local27) < Number.MIN_VALUE){
_local14 = 1;
break;
};
_local28 = ((_local21 - _local22) / _local27);
_local29 = (_local14 + _local28);
if ((((_local29 < 0)) || ((1 < _local29)))){
_local14 = 1;
break;
};
if (_local29 < ((1 + (100 * Number.MIN_VALUE)) * _local14)){
break;
};
_local14 = _local29;
_local18++;
};
return (_local14);
}
}
}//package Box2D.Collision
Section 47
//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 48
//Features (Box2D.Collision.Features)
package Box2D.Collision {
public class Features {
public var _referenceFace:int;
public var _incidentEdge:int;
public var _flip:int;
public var _incidentVertex:int;
public var _m_id:b2ContactID;
public function get referenceFace():int{
return (_referenceFace);
}
public function set incidentVertex(_arg1:int):void{
_incidentVertex = _arg1;
_m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000));
}
public function get flip():int{
return (_flip);
}
public function get incidentEdge():int{
return (_incidentEdge);
}
public function set referenceFace(_arg1:int):void{
_referenceFace = _arg1;
_m_id._key = ((_m_id._key & 4294967040) | (_referenceFace & 0xFF));
}
public function set flip(_arg1:int):void{
_flip = _arg1;
_m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080));
}
public function get incidentVertex():int{
return (_incidentVertex);
}
public function set incidentEdge(_arg1:int):void{
_incidentEdge = _arg1;
_m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00));
}
}
}//package Box2D.Collision
Section 49
//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 SetVV(_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 50
//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 51
//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 52
//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 MaxV(_arg1:b2Vec2):void{
x = ((x > _arg1.x)) ? x : _arg1.x;
y = ((y > _arg1.y)) ? y : _arg1.y;
}
public function SetV(_arg1:b2Vec2):void{
x = _arg1.x;
y = _arg1.y;
}
public function Negative():b2Vec2{
return (new b2Vec2(-(x), -(y)));
}
public function CrossVF(_arg1:Number):void{
var _local2:Number;
_local2 = x;
x = (_arg1 * y);
y = (-(_arg1) * _local2);
}
public function Abs():void{
x = Math.abs(x);
y = Math.abs(y);
}
public function Copy():b2Vec2{
return (new b2Vec2(x, y));
}
public function MulTM(_arg1:b2Mat22):void{
var _local2:Number;
_local2 = b2Math.b2Dot(this, _arg1.col1);
y = b2Math.b2Dot(this, _arg1.col2);
x = _local2;
}
public function IsValid():Boolean{
return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y))));
}
public function MinV(_arg1:b2Vec2):void{
x = ((x < _arg1.x)) ? x : _arg1.x;
y = ((y < _arg1.y)) ? y : _arg1.y;
}
public function MulM(_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 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 Subtract(_arg1:b2Vec2):void{
x = (x - _arg1.x);
y = (y - _arg1.y);
}
public function CrossFV(_arg1:Number):void{
var _local2:Number;
_local2 = x;
x = (-(_arg1) * y);
y = (_arg1 * _local2);
}
public static function Make(_arg1:Number, _arg2:Number):b2Vec2{
return (new b2Vec2(_arg1, _arg2));
}
}
}//package Box2D.Common.Math
Section 53
//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 54
//b2Color (Box2D.Common.b2Color)
package Box2D.Common {
import Box2D.Common.Math.*;
public class b2Color {
private var _g:uint;// = 0
private var _b:uint;// = 0
private var _r:uint;// = 0
public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){
_r = 0;
_g = 0;
_b = 0;
super();
_r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1)));
_g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1)));
_b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1)));
}
public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{
_r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1)));
_g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1)));
_b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1)));
}
public function get color():uint{
return (((_r | (_g << 8)) | (_b << 16)));
}
public function set r(_arg1:Number):void{
_r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1)));
}
public function set b(_arg1:Number):void{
_b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1)));
}
public function set g(_arg1:Number):void{
_g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1)));
}
}
}//package Box2D.Common
Section 55
//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 56
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact)
package Box2D.Dynamics.Contacts {
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Collision.*;
import Box2D.Common.*;
public class b2CircleContact extends b2Contact {
private var m_manifolds:Array;
private var m0:b2Manifold;
public var m_manifold:b2Manifold;
private static var s_evalCP:b2ContactPoint = new b2ContactPoint();
public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){
m_manifolds = [new b2Manifold()];
m0 = new b2Manifold();
super(_arg1, _arg2);
m_manifold = m_manifolds[0];
m_manifold.pointCount = 0;
m_manifold.points[0].normalForce = 0;
m_manifold.points[0].tangentForce = 0;
}
override public function GetManifolds():Array{
return (m_manifolds);
}
override public function Evaluate(_arg1:b2ContactListener):void{
var _local2:b2Body;
var _local3:b2Body;
var _local4:b2ContactPoint;
var _local5:b2Mat22;
var _local6:b2Vec2;
_local2 = m_shape1.m_body;
_local3 = m_shape2.m_body;
m0.Set(m_manifold);
b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local2.m_xf, (m_shape2 as b2CircleShape), _local3.m_xf);
if (m_manifold.pointCount > 0){
m_manifoldCount = 1;
if (m0.pointCount == 0){
m_manifold.points[0].id.features.flip = (m_manifold.points[0].id.features.flip | b2Collision.b2_newPoint);
} else {
m_manifold.points[0].id.features.flip = (m_manifold.points[0].id.features.flip & ~(b2Collision.b2_newPoint));
};
} else {
m_manifoldCount = 0;
if ((((m0.pointCount > 0)) && (_arg1))){
_local4 = s_evalCP;
_local4.shape1 = m_shape1;
_local4.shape2 = m_shape2;
_local4.normal.SetV(m0.normal);
_local5 = _local2.m_xf.R;
_local6 = m0.points[0].localPoint1;
_local4.position.x = (_local2.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)));
_local4.position.y = (_local2.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)));
_local4.separation = m0.points[0].separation;
_local4.normalForce = m0.points[0].normalForce;
_local4.tangentForce = m0.points[0].tangentForce;
_local4.id.key = m0.points[0].id.key;
_arg1.Remove(_local4);
};
};
}
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 57
//b2Contact (Box2D.Dynamics.Contacts.b2Contact)
package Box2D.Dynamics.Contacts {
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
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.IsSensor()) || (_arg2.IsSensor()))){
m_flags = (m_flags | e_nonSolidFlag);
};
m_shape1 = _arg1;
m_shape2 = _arg2;
m_manifoldCount = 0;
m_friction = Math.sqrt((m_shape1.m_friction * m_shape2.m_friction));
m_restitution = b2Math.b2Max(m_shape1.m_restitution, m_shape2.m_restitution);
m_prev = null;
m_next = null;
m_node1.contact = null;
m_node1.prev = null;
m_node1.next = null;
m_node1.other = null;
m_node2.contact = null;
m_node2.prev = null;
m_node2.next = null;
m_node2.other = null;
}
public function GetShape1():b2Shape{
return (m_shape1);
}
public function IsSolid():Boolean{
return (((m_flags & e_nonSolidFlag) == 0));
}
public function GetNext():b2Contact{
return (m_next);
}
public function GetManifolds():Array{
return (null);
}
public function GetShape2():b2Shape{
return (m_shape2);
}
public function GetManifoldCount():int{
return (m_manifoldCount);
}
public function Update(_arg1:b2ContactListener):void{
var _local2:b2Body;
var _local3:b2Body;
Evaluate(_arg1);
_local2 = m_shape1.GetBody();
_local3 = m_shape2.GetBody();
if (((((((_local2.IsStatic()) || (_local2.IsBullet()))) || (_local3.IsStatic()))) || (_local3.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:*;
if (_arg1.GetManifoldCount() > 0){
_arg1.GetShape1().GetBody().WakeUp();
_arg1.GetShape2().GetBody().WakeUp();
};
_local3 = _arg1.GetShape1().GetType();
_local4 = _arg1.GetShape2().GetType();
_local5 = s_registers[_local3][_local4].destroyFcn;
_local5(_arg1, _arg2);
}
public static function AddType(_arg1, _arg2, _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:*;
var _local7:b2Contact;
var _local8:int;
var _local9:b2Manifold;
if (s_initialized == false){
InitializeRegisters();
s_initialized = true;
};
_local4 = _arg1.m_type;
_local5 = _arg2.m_type;
_local6 = s_registers[_local4][_local5].createFcn;
if (_local6){
if (s_registers[_local4][_local5].primary){
return (_local6(_arg1, _arg2, _arg3));
};
_local7 = _local6(_arg2, _arg1, _arg3);
_local8 = 0;
while (_local8 < _local7.GetManifoldCount()) {
_local9 = _local7.GetManifolds()[_local8];
_local7.GetManifolds()[_local8].normal = _local9.normal.Negative();
_local8++;
};
return (_local7);
//unresolved jump
};
return (null);
}
}
}//package Box2D.Dynamics.Contacts
Section 58
//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 59
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint)
package Box2D.Dynamics.Contacts {
import Box2D.Common.Math.*;
public class b2ContactConstraintPoint {
public var tangentForce:Number;
public var normalForce:Number;
public var positionImpulse:Number;
public var separation:Number;
public var localAnchor1:b2Vec2;
public var localAnchor2:b2Vec2;
public var tangentMass:Number;
public var normalMass:Number;
public var velocityBias:Number;
public var equalizedMass:Number;
public function b2ContactConstraintPoint(){
localAnchor1 = new b2Vec2();
localAnchor2 = new b2Vec2();
super();
}
}
}//package Box2D.Dynamics.Contacts
Section 60
//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 61
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister)
package Box2D.Dynamics.Contacts {
public class b2ContactRegister {
public var primary:Boolean;
public var createFcn;
public var destroyFcn;
}
}//package Box2D.Dynamics.Contacts
Section 62
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver)
package Box2D.Dynamics.Contacts {
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Collision.*;
import Box2D.Common.*;
public class b2ContactSolver {
public var m_constraintCount:int;
public var m_constraints:Array;
public var m_allocator;
public var m_step:b2TimeStep;
public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){
var _local5:int;
var _local6:b2Vec2;
var _local7:b2Mat22;
var _local8:int;
var _local9:b2Contact;
var _local10:b2Body;
var _local11:b2Body;
var _local12:int;
var _local13:Array;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:int;
var _local23:b2Manifold;
var _local24:Number;
var _local25:Number;
var _local26:b2ContactConstraint;
var _local27:uint;
var _local28:b2ManifoldPoint;
var _local29:b2ContactConstraintPoint;
var _local30:Number;
var _local31:Number;
var _local32:Number;
var _local33:Number;
var _local34:Number;
var _local35:Number;
var _local36:Number;
var _local37:Number;
var _local38:Number;
var _local39:Number;
var _local40:Number;
var _local41:Number;
var _local42:Number;
var _local43:Number;
var _local44:Number;
var _local45:Number;
var _local46:Number;
var _local47:Number;
m_step = new b2TimeStep();
m_constraints = new Array();
super();
m_step.dt = _arg1.dt;
m_step.inv_dt = _arg1.inv_dt;
m_step.maxIterations = _arg1.maxIterations;
m_allocator = _arg4;
m_constraintCount = 0;
_local5 = 0;
while (_local5 < _arg3) {
m_constraintCount = (m_constraintCount + _arg2[_local5].GetManifoldCount());
_local5++;
};
_local5 = 0;
while (_local5 < m_constraintCount) {
m_constraints[_local5] = new b2ContactConstraint();
_local5++;
};
_local8 = 0;
_local5 = 0;
while (_local5 < _arg3) {
_local9 = _arg2[_local5];
_local10 = _local9.m_shape1.m_body;
_local11 = _local9.m_shape2.m_body;
_local12 = _local9.GetManifoldCount();
_local13 = _local9.GetManifolds();
_local14 = _local9.m_friction;
_local15 = _local9.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[_local8];
_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.normalForce = _local28.normalForce;
_local29.tangentForce = _local28.tangentForce;
_local29.separation = _local28.separation;
_local29.positionImpulse = 0;
_local29.localAnchor1.SetV(_local28.localPoint1);
_local29.localAnchor2.SetV(_local28.localPoint2);
_local7 = _local10.m_xf.R;
_local32 = (_local29.localAnchor1.x - _local10.GetLocalCenter().x);
_local33 = (_local29.localAnchor1.y - _local10.GetLocalCenter().y);
_local30 = ((_local7.col1.x * _local32) + (_local7.col2.x * _local33));
_local33 = ((_local7.col1.y * _local32) + (_local7.col2.y * _local33));
_local32 = _local30;
_local7 = _local11.m_xf.R;
_local34 = (_local29.localAnchor2.x - _local11.GetLocalCenter().x);
_local35 = (_local29.localAnchor2.y - _local11.GetLocalCenter().y);
_local30 = ((_local7.col1.x * _local34) + (_local7.col2.x * _local35));
_local35 = ((_local7.col1.y * _local34) + (_local7.col2.y * _local35));
_local34 = _local30;
_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++;
};
_local8++;
_local22++;
};
_local5++;
};
}
public function InitVelocityConstraints():void{
var _local1:b2Vec2;
var _local2:b2Vec2;
var _local3:b2Mat22;
var _local4:int;
var _local5:b2ContactConstraint;
var _local6:b2Body;
var _local7:b2Body;
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:int;
var _local19:b2ContactConstraintPoint;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
var _local26:b2ContactConstraintPoint;
_local4 = 0;
while (_local4 < m_constraintCount) {
_local5 = m_constraints[_local4];
_local6 = _local5.body1;
_local7 = _local5.body2;
_local8 = _local6.m_invMass;
_local9 = _local6.m_invI;
_local10 = _local7.m_invMass;
_local11 = _local7.m_invI;
_local12 = _local5.normal.x;
_local13 = _local5.normal.y;
_local14 = _local13;
_local15 = -(_local12);
if (b2World.s_enableWarmStarting){
_local18 = _local5.pointCount;
_local17 = 0;
while (_local17 < _local18) {
_local19 = _local5.points[_local17];
_local20 = (m_step.dt * ((_local19.normalForce * _local12) + (_local19.tangentForce * _local14)));
_local21 = (m_step.dt * ((_local19.normalForce * _local13) + (_local19.tangentForce * _local15)));
_local3 = _local6.m_xf.R;
_local1 = _local6.GetLocalCenter();
_local22 = (_local19.localAnchor1.x - _local1.x);
_local23 = (_local19.localAnchor1.y - _local1.y);
_local16 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23));
_local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23));
_local22 = _local16;
_local3 = _local7.m_xf.R;
_local1 = _local7.GetLocalCenter();
_local24 = (_local19.localAnchor2.x - _local1.x);
_local25 = (_local19.localAnchor2.y - _local1.y);
_local16 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25));
_local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25));
_local24 = _local16;
_local6.m_angularVelocity = (_local6.m_angularVelocity - (_local9 * ((_local22 * _local21) - (_local23 * _local20))));
_local6.m_linearVelocity.x = (_local6.m_linearVelocity.x - (_local8 * _local20));
_local6.m_linearVelocity.y = (_local6.m_linearVelocity.y - (_local8 * _local21));
_local7.m_angularVelocity = (_local7.m_angularVelocity + (_local11 * ((_local24 * _local21) - (_local25 * _local20))));
_local7.m_linearVelocity.x = (_local7.m_linearVelocity.x + (_local10 * _local20));
_local7.m_linearVelocity.y = (_local7.m_linearVelocity.y + (_local10 * _local21));
_local17++;
};
} else {
_local18 = _local5.pointCount;
_local17 = 0;
while (_local17 < _local18) {
_local26 = _local5.points[_local17];
_local26.normalForce = 0;
_local26.tangentForce = 0;
_local17++;
};
};
_local4++;
};
}
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 < m_constraintCount) {
_local6 = m_constraints[_local5];
_local7 = _local6.body1;
_local8 = _local6.body2;
_local9 = _local7.m_sweep.c;
_local10 = _local7.m_sweep.a;
_local11 = _local8.m_sweep.c;
_local12 = _local8.m_sweep.a;
_local13 = (_local7.m_mass * _local7.m_invMass);
_local14 = (_local7.m_mass * _local7.m_invI);
_local15 = (_local8.m_mass * _local8.m_invMass);
_local16 = (_local8.m_mass * _local8.m_invI);
_local17 = _local6.normal.x;
_local18 = _local6.normal.y;
_local19 = _local6.pointCount;
_local20 = 0;
while (_local20 < _local19) {
_local21 = _local6.points[_local20];
_local3 = _local7.m_xf.R;
_local4 = _local7.GetLocalCenter();
_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.GetLocalCenter();
_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:b2Mat22;
var _local14:b2Vec2;
var _local15:int;
var _local16:b2ContactConstraint;
var _local17:b2Body;
var _local18:b2Body;
var _local19:Number;
var _local20:b2Vec2;
var _local21:Number;
var _local22:b2Vec2;
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:int;
var _local33:Number;
var _local34:Number;
var _local35:Number;
var _local36:Number;
_local15 = 0;
while (_local15 < m_constraintCount) {
_local16 = m_constraints[_local15];
_local17 = _local16.body1;
_local18 = _local16.body2;
_local19 = _local17.m_angularVelocity;
_local20 = _local17.m_linearVelocity;
_local21 = _local18.m_angularVelocity;
_local22 = _local18.m_linearVelocity;
_local23 = _local17.m_invMass;
_local24 = _local17.m_invI;
_local25 = _local18.m_invMass;
_local26 = _local18.m_invI;
_local27 = _local16.normal.x;
_local28 = _local16.normal.y;
_local29 = _local28;
_local30 = -(_local27);
_local32 = _local16.pointCount;
_local1 = 0;
while (_local1 < _local32) {
_local2 = _local16.points[_local1];
_local13 = _local17.m_xf.R;
_local14 = _local17.GetLocalCenter();
_local3 = (_local2.localAnchor1.x - _local14.x);
_local4 = (_local2.localAnchor1.y - _local14.y);
_local31 = ((_local13.col1.x * _local3) + (_local13.col2.x * _local4));
_local4 = ((_local13.col1.y * _local3) + (_local13.col2.y * _local4));
_local3 = _local31;
_local13 = _local18.m_xf.R;
_local14 = _local18.GetLocalCenter();
_local5 = (_local2.localAnchor2.x - _local14.x);
_local6 = (_local2.localAnchor2.y - _local14.y);
_local31 = ((_local13.col1.x * _local5) + (_local13.col2.x * _local6));
_local6 = ((_local13.col1.y * _local5) + (_local13.col2.y * _local6));
_local5 = _local31;
_local7 = (((_local22.x + (-(_local21) * _local6)) - _local20.x) - (-(_local19) * _local4));
_local8 = (((_local22.y + (_local21 * _local5)) - _local20.y) - (_local19 * _local3));
_local33 = ((_local7 * _local27) + (_local8 * _local28));
_local9 = ((-(m_step.inv_dt) * _local2.normalMass) * (_local33 - _local2.velocityBias));
_local34 = b2Math.b2Max((_local2.normalForce + _local9), 0);
_local9 = (_local34 - _local2.normalForce);
_local11 = ((m_step.dt * _local9) * _local27);
_local12 = ((m_step.dt * _local9) * _local28);
_local20.x = (_local20.x - (_local23 * _local11));
_local20.y = (_local20.y - (_local23 * _local12));
_local19 = (_local19 - (_local24 * ((_local3 * _local12) - (_local4 * _local11))));
_local22.x = (_local22.x + (_local25 * _local11));
_local22.y = (_local22.y + (_local25 * _local12));
_local21 = (_local21 + (_local26 * ((_local5 * _local12) - (_local6 * _local11))));
_local2.normalForce = _local34;
_local7 = (((_local22.x + (-(_local21) * _local6)) - _local20.x) - (-(_local19) * _local4));
_local8 = (((_local22.y + (_local21 * _local5)) - _local20.y) - (_local19 * _local3));
_local35 = ((_local7 * _local29) + (_local8 * _local30));
_local9 = ((m_step.inv_dt * _local2.tangentMass) * -(_local35));
_local36 = (_local16.friction * _local2.normalForce);
_local34 = b2Math.b2Clamp((_local2.tangentForce + _local9), -(_local36), _local36);
_local9 = (_local34 - _local2.tangentForce);
_local11 = ((m_step.dt * _local9) * _local29);
_local12 = ((m_step.dt * _local9) * _local30);
_local20.x = (_local20.x - (_local23 * _local11));
_local20.y = (_local20.y - (_local23 * _local12));
_local19 = (_local19 - (_local24 * ((_local3 * _local12) - (_local4 * _local11))));
_local22.x = (_local22.x + (_local25 * _local11));
_local22.y = (_local22.y + (_local25 * _local12));
_local21 = (_local21 + (_local26 * ((_local5 * _local12) - (_local6 * _local11))));
_local2.tangentForce = _local34;
_local1++;
};
_local17.m_angularVelocity = _local19;
_local18.m_angularVelocity = _local21;
_local15++;
};
}
public function FinalizeVelocityConstraints():void{
var _local1:int;
var _local2:b2ContactConstraint;
var _local3:b2Manifold;
var _local4:int;
_local1 = 0;
while (_local1 < m_constraintCount) {
_local2 = m_constraints[_local1];
_local3 = _local2.manifold;
_local4 = 0;
while (_local4 < _local2.pointCount) {
_local3.points[_local4].normalForce = _local2.points[_local4].normalForce;
_local3.points[_local4].tangentForce = _local2.points[_local4].tangentForce;
_local4++;
};
_local1++;
};
}
}
}//package Box2D.Dynamics.Contacts
Section 63
//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 64
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact)
package Box2D.Dynamics.Contacts {
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Collision.*;
import Box2D.Common.*;
public class b2PolyAndCircleContact extends b2Contact {
private var m_manifolds:Array;
private var m0:b2Manifold;
public var m_manifold:b2Manifold;
private static var s_evalCP:b2ContactPoint = new b2ContactPoint();
public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){
m_manifolds = [new b2Manifold()];
m0 = new b2Manifold();
super(_arg1, _arg2);
m_manifold = m_manifolds[0];
b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape));
b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape));
m_manifold.pointCount = 0;
m_manifold.points[0].normalForce = 0;
m_manifold.points[0].tangentForce = 0;
}
override public function GetManifolds():Array{
return (m_manifolds);
}
override public function Evaluate(_arg1:b2ContactListener):void{
var _local2:b2Body;
var _local3:b2Body;
var _local4:b2ContactPoint;
var _local5:b2Mat22;
var _local6:b2Vec2;
_local2 = m_shape1.GetBody();
_local3 = m_shape2.GetBody();
m0.Set(m_manifold);
b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local2.m_xf, (m_shape2 as b2CircleShape), _local3.m_xf);
if (m_manifold.pointCount > 0){
m_manifoldCount = 1;
if (m0.pointCount == 0){
m_manifold.points[0].id.features.flip = (m_manifold.points[0].id.features.flip | b2Collision.b2_newPoint);
} else {
m_manifold.points[0].id.features.flip = (m_manifold.points[0].id.features.flip & ~(b2Collision.b2_newPoint));
};
} else {
m_manifoldCount = 0;
if ((((m0.pointCount > 0)) && (_arg1))){
_local4 = s_evalCP;
_local4.shape1 = m_shape1;
_local4.shape2 = m_shape2;
_local4.normal.SetV(m0.normal);
_local5 = _local2.m_xf.R;
_local6 = m0.points[0].localPoint1;
_local4.position.x = (_local2.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)));
_local4.position.y = (_local2.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)));
_local4.separation = m0.points[0].separation;
_local4.normalForce = m0.points[0].normalForce;
_local4.tangentForce = m0.points[0].tangentForce;
_local4.id = m0.points[0].id;
_arg1.Remove(_local4);
};
};
}
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 65
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact)
package Box2D.Dynamics.Contacts {
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Collision.*;
public class b2PolygonContact extends b2Contact {
private var m_manifolds:Array;
private var m0:b2Manifold;
public var m_manifold:b2Manifold;
private static var s_evalCP:b2ContactPoint = new b2ContactPoint();
public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{
m0 = new b2Manifold();
m_manifolds = [new b2Manifold()];
super(_arg1, _arg2);
m_manifold = m_manifolds[0];
m_manifold.pointCount = 0;
}
override public function GetManifolds():Array{
return (m_manifolds);
}
override public function Evaluate(_arg1:b2ContactListener):void{
var _local2:b2Body;
var _local3:b2Body;
var _local4:b2ContactPoint;
var _local5:int;
var _local6:Array;
var _local7:b2ManifoldPoint;
var _local8:Boolean;
var _local9:uint;
var _local10:int;
var _local11:b2ManifoldPoint;
var _local12:b2ContactID;
var _local13:b2ManifoldPoint;
var _local14:b2Mat22;
var _local15:b2Vec2;
_local2 = m_shape1.GetBody();
_local3 = m_shape2.GetBody();
m0.Set(m_manifold);
b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local2.m_xf, (m_shape2 as b2PolygonShape), _local3.m_xf);
_local6 = [false, false];
if (m_manifold.pointCount > 0){
_local5 = 0;
while (_local5 < m_manifold.pointCount) {
_local7 = m_manifold.points[_local5];
_local7.normalForce = 0;
_local7.tangentForce = 0;
_local8 = false;
_local9 = _local7.id.key;
_local10 = 0;
while (_local10 < m0.pointCount) {
if (_local6[_local10] == true){
} else {
_local11 = m0.points[_local10];
_local12 = _local11.id;
_local12.features.flip = (_local12.features.flip & ~(b2Collision.b2_newPoint));
if (_local12.key == _local9){
_local6[_local10] = true;
_local7.normalForce = _local11.normalForce;
_local7.tangentForce = _local11.tangentForce;
_local8 = true;
break;
};
};
_local10++;
};
if (_local8 == false){
_local7.id.features.flip = (_local7.id.features.flip | b2Collision.b2_newPoint);
};
_local5++;
};
m_manifoldCount = 1;
} else {
m_manifoldCount = 0;
};
if (((_arg1) && ((m0.pointCount > 0)))){
_local4 = s_evalCP;
_local4.shape1 = m_shape1;
_local4.shape2 = m_shape2;
_local4.normal.SetV(m0.normal);
_local5 = 0;
while (_local5 < m0.pointCount) {
if (_local6[_local5]){
} else {
_local13 = m0.points[_local5];
_local14 = _local2.m_xf.R;
_local15 = _local13.localPoint1;
_local4.position.x = (_local2.m_xf.position.x + ((_local14.col1.x * _local15.x) + (_local14.col2.x * _local15.y)));
_local4.position.y = (_local2.m_xf.position.y + ((_local14.col1.y * _local15.x) + (_local14.col2.y * _local15.y)));
_local4.separation = _local13.separation;
_local4.normalForce = _local13.normalForce;
_local4.tangentForce = _local13.tangentForce;
_local4.id.key = _local13.id.key;
_arg1.Remove(_local4);
};
_local5++;
};
};
}
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 66
//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_localAnchor2:b2Vec2;
public var m_force:Number;
public var m_localAnchor1:b2Vec2;
public var m_u:b2Vec2;
public var m_length:Number;
public var m_mass:Number;
public function b2DistanceJoint(_arg1:b2DistanceJointDef){
var _local2:b2Mat22;
var _local3:Number;
var _local4:Number;
m_localAnchor1 = new b2Vec2();
m_localAnchor2 = new b2Vec2();
m_u = new b2Vec2();
super(_arg1);
m_localAnchor1.SetV(_arg1.localAnchor1);
m_localAnchor2.SetV(_arg1.localAnchor2);
m_length = _arg1.length;
m_force = 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.GetLocalCenter().x);
_local6 = (m_localAnchor1.y - _local3.GetLocalCenter().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.GetLocalCenter().x);
_local9 = (m_localAnchor2.y - _local4.GetLocalCenter().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 = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11)));
_local15 = ((-(_arg1.inv_dt) * m_mass) * _local14);
m_force = (m_force + _local15);
_local16 = ((_arg1.dt * _local15) * m_u.x);
_local17 = ((_arg1.dt * _local15) * m_u.y);
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17));
_local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16))));
_local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16));
_local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17));
_local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16))));
}
override public function GetAnchor1():b2Vec2{
return (m_body1.GetWorldPoint(m_localAnchor1));
}
override public function GetAnchor2():b2Vec2{
return (m_body2.GetWorldPoint(m_localAnchor2));
}
override public function InitVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Mat22;
var _local3:Number;
var _local4:b2Body;
var _local5:b2Body;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
_local4 = m_body1;
_local5 = m_body2;
_local2 = _local4.m_xf.R;
_local6 = (m_localAnchor1.x - _local4.GetLocalCenter().x);
_local7 = (m_localAnchor1.y - _local4.GetLocalCenter().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.GetLocalCenter().x);
_local9 = (m_localAnchor2.y - _local5.GetLocalCenter().y);
_local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9));
_local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9));
_local8 = _local3;
m_u.x = ((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x);
m_u.y = ((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y);
_local10 = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y)));
if (_local10 > b2Settings.b2_linearSlop){
m_u.Multiply((1 / _local10));
} else {
m_u.SetZero();
};
_local11 = ((_local6 * m_u.y) - (_local7 * m_u.x));
_local12 = ((_local8 * m_u.y) - (_local9 * m_u.x));
m_mass = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12));
m_mass = (1 / m_mass);
if (b2World.s_enableWarmStarting){
_local13 = ((_arg1.dt * m_force) * m_u.x);
_local14 = ((_arg1.dt * m_force) * m_u.y);
_local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local13));
_local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local14));
_local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local14) - (_local7 * _local13))));
_local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local13));
_local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local14));
_local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local14) - (_local9 * _local13))));
} else {
m_force = 0;
};
}
override public function GetReactionTorque():Number{
return (0);
}
override public function GetReactionForce():b2Vec2{
var _local1:b2Vec2;
_local1 = new b2Vec2();
_local1.SetV(m_u);
_local1.Multiply(m_force);
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;
_local2 = m_body1;
_local3 = m_body2;
_local1 = _local2.m_xf.R;
_local4 = (m_localAnchor1.x - _local2.GetLocalCenter().x);
_local5 = (m_localAnchor1.y - _local2.GetLocalCenter().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.GetLocalCenter().x);
_local8 = (m_localAnchor2.y - _local3.GetLocalCenter().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 - m_length);
_local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection);
_local13 = (-(m_mass) * _local12);
m_u.Set(_local9, _local10);
_local14 = (_local13 * m_u.x);
_local15 = (_local13 * m_u.y);
_local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14));
_local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15));
_local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14))));
_local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14));
_local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15));
_local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14))));
_local2.SynchronizeTransform();
_local3.SynchronizeTransform();
return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop));
}
}
}//package Box2D.Dynamics.Joints
Section 67
//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 localAnchor2:b2Vec2;
public var localAnchor1:b2Vec2;
public function b2DistanceJointDef(){
localAnchor1 = new b2Vec2();
localAnchor2 = new b2Vec2();
super();
type = b2Joint.e_distanceJoint;
length = 1;
}
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)));
}
}
}//package Box2D.Dynamics.Joints
Section 68
//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 m_prismatic1:b2PrismaticJoint;
public var m_prismatic2:b2PrismaticJoint;
public var m_ground1:b2Body;
public var m_ground2:b2Body;
public var m_constant:Number;
public var m_revolute1:b2RevoluteJoint;
public var m_revolute2: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 m_J:b2Jacobian;
public function b2GearJoint(_arg1:b2GearJointDef){
var _local2:Number;
var _local3:Number;
m_groundAnchor1 = new b2Vec2();
m_groundAnchor2 = new b2Vec2();
m_localAnchor1 = new b2Vec2();
m_localAnchor2 = new b2Vec2();
m_J = new b2Jacobian();
super(_arg1);
m_revolute1 = null;
m_prismatic1 = null;
m_revolute2 = null;
m_prismatic2 = null;
m_ground1 = _arg1.joint1.m_body1;
m_body1 = _arg1.joint1.m_body2;
if (_arg1.joint1.m_type == b2Joint.e_revoluteJoint){
m_revolute1 = (_arg1.joint1 as b2RevoluteJoint);
m_groundAnchor1.SetV(m_revolute1.m_localAnchor1);
m_localAnchor1.SetV(m_revolute1.m_localAnchor2);
_local2 = m_revolute1.GetJointAngle();
} else {
m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint);
m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1);
m_localAnchor1.SetV(m_prismatic1.m_localAnchor2);
_local2 = m_prismatic1.GetJointTranslation();
};
m_ground2 = _arg1.joint2.m_body1;
m_body2 = _arg1.joint2.m_body2;
if (_arg1.joint2.m_type == b2Joint.e_revoluteJoint){
m_revolute2 = (_arg1.joint2 as b2RevoluteJoint);
m_groundAnchor2.SetV(m_revolute2.m_localAnchor1);
m_localAnchor2.SetV(m_revolute2.m_localAnchor2);
_local3 = m_revolute2.GetJointAngle();
} else {
m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint);
m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1);
m_localAnchor2.SetV(m_prismatic2.m_localAnchor2);
_local3 = m_prismatic2.GetJointTranslation();
};
m_ratio = _arg1.ratio;
m_constant = (_local2 + (m_ratio * _local3));
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 * m_J.linear2.x), (m_force * m_J.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 (m_revolute1){
_local4 = m_revolute1.GetJointAngle();
} else {
_local4 = m_prismatic1.GetJointTranslation();
};
if (m_revolute2){
_local5 = m_revolute2.GetJointAngle();
} else {
_local5 = m_prismatic2.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) * m_J.linear1.x));
_local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y));
_local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1));
_local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x));
_local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y));
_local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2));
_local2.SynchronizeTransform();
_local3.SynchronizeTransform();
return ((_local1 < b2Settings.b2_linearSlop));
}
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 = m_ground1;
_local3 = m_ground2;
_local4 = m_body1;
_local5 = m_body2;
_local14 = 0;
m_J.SetZero();
if (m_revolute1){
m_J.angular1 = -1;
_local14 = (_local14 + _local4.m_invI);
} else {
_local10 = _local2.m_xf.R;
_local11 = m_prismatic1.m_localXAxis1;
_local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y));
_local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y));
_local10 = _local4.m_xf.R;
_local8 = (m_localAnchor1.x - _local4.GetLocalCenter().x);
_local9 = (m_localAnchor1.y - _local4.GetLocalCenter().y);
_local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9));
_local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9));
_local8 = _local13;
_local12 = ((_local8 * _local7) - (_local9 * _local6));
m_J.linear1.Set(-(_local6), -(_local7));
m_J.angular1 = -(_local12);
_local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12)));
};
if (m_revolute2){
m_J.angular2 = -(m_ratio);
_local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI));
} else {
_local10 = _local3.m_xf.R;
_local11 = m_prismatic2.m_localXAxis1;
_local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y));
_local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y));
_local10 = _local5.m_xf.R;
_local8 = (m_localAnchor2.x - _local5.GetLocalCenter().x);
_local9 = (m_localAnchor2.y - _local5.GetLocalCenter().y);
_local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9));
_local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9));
_local8 = _local13;
_local12 = ((_local8 * _local7) - (_local9 * _local6));
m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7));
m_J.angular2 = (-(m_ratio) * _local12);
_local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12))));
};
m_mass = (1 / _local14);
if (b2World.s_enableWarmStarting){
_local15 = (_arg1.dt * m_force);
_local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x));
_local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y));
_local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1));
_local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x));
_local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y));
_local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2));
} else {
m_force = 0;
};
}
override public function GetReactionTorque():Number{
var _local1:b2Mat22;
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local1 = m_body2.m_xf.R;
_local2 = (m_localAnchor1.x - m_body2.GetLocalCenter().x);
_local3 = (m_localAnchor1.y - m_body2.GetLocalCenter().y);
_local4 = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3));
_local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3));
_local2 = _local4;
_local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x))));
return (_local4);
}
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 = m_J.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) * m_J.linear1.x));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y));
_local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2));
}
}
}//package Box2D.Dynamics.Joints
Section 69
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef)
package Box2D.Dynamics.Joints {
public class b2GearJointDef extends b2JointDef {
public var joint2:b2Joint;
public var joint1:b2Joint;
public var ratio:Number;
public function b2GearJointDef(){
type = b2Joint.e_gearJoint;
joint1 = null;
joint2 = null;
ratio = 1;
}
}
}//package Box2D.Dynamics.Joints
Section 70
//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 71
//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_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 GetBody2():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 GetBody1():b2Body{
return (m_body1);
}
public function SolveVelocityConstraints(_arg1:b2TimeStep):void{
}
public function InitPositionConstraints():void{
}
public static function Destroy(_arg1:b2Joint, _arg2):void{
}
public static function Create(_arg1:b2JointDef, _arg2):b2Joint{
var _local3:b2Joint;
_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 72
//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 73
//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 74
//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 m_beta:Number;
public var m_mass:b2Mat22;
public var m_force:b2Vec2;
public var m_target:b2Vec2;
public var m_localAnchor:b2Vec2;
private var K1:b2Mat22;
private var K2:b2Mat22;
private var K:b2Mat22;
public var m_gamma:Number;
public var m_C:b2Vec2;
public var m_maxForce: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;
K = new b2Mat22();
K1 = new b2Mat22();
K2 = new b2Mat22();
m_localAnchor = new b2Vec2();
m_target = new b2Vec2();
m_force = new b2Vec2();
m_mass = new b2Mat22();
m_C = new b2Vec2();
super(_arg1);
m_target.SetV(_arg1.target);
_local2 = (m_target.x - m_body2.m_xf.position.x);
_local3 = (m_target.y - m_body2.m_xf.position.y);
_local4 = m_body2.m_xf.R;
m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y));
m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y));
m_maxForce = _arg1.maxForce;
m_force.SetZero();
_local5 = m_body2.m_mass;
_local6 = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz);
_local7 = (((2 * _local5) * _arg1.dampingRatio) * _local6);
_local8 = ((_local5 * _local6) * _local6);
m_gamma = (1 / (_local7 + (_arg1.timeStep * _local8)));
m_beta = ((_arg1.timeStep * _local8) / (_local7 + (_arg1.timeStep * _local8)));
}
override public function GetAnchor1():b2Vec2{
return (m_target);
}
override public function GetAnchor2():b2Vec2{
return (m_body2.GetWorldPoint(m_localAnchor));
}
override public function GetReactionForce():b2Vec2{
return (m_force);
}
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 = (m_localAnchor.x - _local2.GetLocalCenter().x);
_local5 = (m_localAnchor.y - _local2.GetLocalCenter().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;
K1.col1.x = _local7;
K1.col2.x = 0;
K1.col1.y = 0;
K1.col2.y = _local7;
K2.col1.x = ((_local8 * _local5) * _local5);
K2.col2.x = ((-(_local8) * _local4) * _local5);
K2.col1.y = ((-(_local8) * _local4) * _local5);
K2.col2.y = ((_local8 * _local4) * _local4);
K.SetM(K1);
K.AddM(K2);
K.col1.x = (K.col1.x + m_gamma);
K.col2.y = (K.col2.y + m_gamma);
K.Invert(m_mass);
m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x);
m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y);
_local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98);
_local9 = (_arg1.dt * m_force.x);
_local10 = (_arg1.dt * m_force.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 SetTarget(_arg1:b2Vec2):void{
if (m_body2.IsSleeping()){
m_body2.WakeUp();
};
m_target = _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 = (m_localAnchor.x - _local2.GetLocalCenter().x);
_local7 = (m_localAnchor.y - _local2.GetLocalCenter().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 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_force.x));
_local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_force.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_force.x;
_local13 = m_force.y;
m_force.x = (m_force.x + _local10);
m_force.y = (m_force.y + _local11);
_local14 = m_force.Length();
if (_local14 > m_maxForce){
m_force.Multiply((m_maxForce / _local14));
};
_local10 = (m_force.x - _local12);
_local11 = (m_force.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 75
//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 maxForce:Number;
public var target:b2Vec2;
public var timeStep:Number;
public function b2MouseJointDef(){
target = new b2Vec2();
super();
type = b2Joint.e_mouseJoint;
maxForce = 0;
frequencyHz = 5;
dampingRatio = 0.7;
timeStep = (1 / 60);
}
}
}//package Box2D.Dynamics.Joints
Section 76
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint)
package Box2D.Dynamics.Joints {
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Common.*;
public class b2PrismaticJoint extends b2Joint {
public var m_limitForce:Number;
public var m_refAngle:Number;
public var m_lowerTranslation:Number;
public var m_localXAxis1:b2Vec2;
public var m_torque:Number;
public var m_enableLimit:Boolean;
public var m_motorForce:Number;
public var m_localYAxis1:b2Vec2;
public var m_force:Number;
public var m_motorMass:Number;
public var m_maxMotorForce:Number;
public var m_localAnchor1:b2Vec2;
public var m_localAnchor2:b2Vec2;
public var m_angularMass:Number;
public var m_limitState:int;
public var m_linearMass:Number;
public var m_upperTranslation:Number;
public var m_motorJacobian:b2Jacobian;
public var m_limitPositionImpulse:Number;
public var m_motorSpeed:Number;
public var m_enableMotor:Boolean;
public var m_linearJacobian:b2Jacobian;
public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){
var _local2:b2Mat22;
var _local3:Number;
var _local4:Number;
m_localAnchor1 = new b2Vec2();
m_localAnchor2 = new b2Vec2();
m_localXAxis1 = new b2Vec2();
m_localYAxis1 = new b2Vec2();
m_linearJacobian = new b2Jacobian();
m_motorJacobian = new b2Jacobian();
super(_arg1);
m_localAnchor1.SetV(_arg1.localAnchor1);
m_localAnchor2.SetV(_arg1.localAnchor2);
m_localXAxis1.SetV(_arg1.localAxis1);
m_localYAxis1.x = -(m_localXAxis1.y);
m_localYAxis1.y = m_localXAxis1.x;
m_refAngle = _arg1.referenceAngle;
m_linearJacobian.SetZero();
m_linearMass = 0;
m_force = 0;
m_angularMass = 0;
m_torque = 0;
m_motorJacobian.SetZero();
m_motorMass = 0;
m_motorForce = 0;
m_limitForce = 0;
m_limitPositionImpulse = 0;
m_lowerTranslation = _arg1.lowerTranslation;
m_upperTranslation = _arg1.upperTranslation;
m_maxMotorForce = _arg1.maxMotorForce;
m_motorSpeed = _arg1.motorSpeed;
m_enableLimit = _arg1.enableLimit;
m_enableMotor = _arg1.enableMotor;
}
override public function 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 (m_upperTranslation);
}
public function GetLowerLimit():Number{
return (m_lowerTranslation);
}
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{
m_lowerTranslation = _arg1;
m_upperTranslation = _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 * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y)));
_local5 = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y)));
return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5))));
}
override public function SolvePositionConstraints():Boolean{
var _local1:Number;
var _local2:Number;
var _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.GetLocalCenter().x);
_local12 = (m_localAnchor1.y - _local3.GetLocalCenter().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.GetLocalCenter().x);
_local14 = (m_localAnchor2.y - _local4.GetLocalCenter().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 * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y));
_local22 = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y));
_local23 = ((_local21 * _local19) + (_local22 * _local20));
_local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection);
_local24 = (-(m_linearMass) * _local23);
_local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x));
_local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y));
_local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1));
_local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x));
_local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y));
_local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2));
_local25 = b2Math.b2Abs(_local23);
_local26 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle);
_local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection);
_local27 = (-(m_angularMass) * _local26);
_local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27));
_local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27));
_local3.SynchronizeTransform();
_local4.SynchronizeTransform();
_local28 = b2Math.b2Abs(_local26);
if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){
_local9 = _local3.m_xf.R;
_local11 = (m_localAnchor1.x - _local3.GetLocalCenter().x);
_local12 = (m_localAnchor1.y - _local3.GetLocalCenter().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.GetLocalCenter().x);
_local14 = (m_localAnchor2.y - _local4.GetLocalCenter().y);
_local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14));
_local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14));
_local13 = _local10;
_local15 = (_local3.m_sweep.c.x + _local11);
_local16 = (_local3.m_sweep.c.y + _local12);
_local17 = (_local4.m_sweep.c.x + _local13);
_local18 = (_local4.m_sweep.c.y + _local14);
_local19 = (_local17 - _local15);
_local20 = (_local18 - _local16);
_local9 = _local3.m_xf.R;
_local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y));
_local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y));
_local31 = ((_local29 * _local19) + (_local30 * _local20));
_local32 = 0;
if (m_limitState == e_equalLimits){
_local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection);
_local32 = (-(m_motorMass) * _local1);
_local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26));
} else {
if (m_limitState == e_atLowerLimit){
_local1 = (_local31 - m_lowerTranslation);
_local25 = b2Math.b2Max(_local25, -(_local1));
_local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0);
_local32 = (-(m_motorMass) * _local1);
_local2 = m_limitPositionImpulse;
m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0);
_local32 = (m_limitPositionImpulse - _local2);
} else {
if (m_limitState == e_atUpperLimit){
_local1 = (_local31 - m_upperTranslation);
_local25 = b2Math.b2Max(_local25, _local1);
_local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection);
_local32 = (-(m_motorMass) * _local1);
_local2 = m_limitPositionImpulse;
m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0);
_local32 = (m_limitPositionImpulse - _local2);
};
};
};
_local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x));
_local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y));
_local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1));
_local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x));
_local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y));
_local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2));
_local3.SynchronizeTransform();
_local4.SynchronizeTransform();
};
return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop))));
}
public function 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.GetLocalCenter().x);
_local5 = (m_localAnchor1.y - _local1.GetLocalCenter().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.GetLocalCenter().x);
_local8 = (m_localAnchor2.y - _local2.GetLocalCenter().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.GetLocalCenter().x);
_local7 = (m_localAnchor1.y - _local2.GetLocalCenter().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.GetLocalCenter().x);
_local9 = (m_localAnchor2.y - _local3.GetLocalCenter().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 * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y));
_local15 = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.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);
m_linearJacobian.linear1.x = -(_local14);
m_linearJacobian.linear1.y = -(_local15);
m_linearJacobian.linear2.x = _local14;
m_linearJacobian.linear2.y = _local15;
m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14)));
m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14));
m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2));
m_linearMass = (1 / m_linearMass);
m_angularMass = (_local12 + _local13);
if (m_angularMass > Number.MIN_VALUE){
m_angularMass = (1 / m_angularMass);
};
if (((m_enableLimit) || (m_enableMotor))){
_local4 = _local2.m_xf.R;
_local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y));
_local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y));
m_motorJacobian.linear1.x = -(_local18);
m_motorJacobian.linear1.y = -(_local19);
m_motorJacobian.linear2.x = _local18;
m_motorJacobian.linear2.y = _local19;
m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18)));
m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18));
m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2));
m_motorMass = (1 / m_motorMass);
if (m_enableLimit){
_local20 = (_local16 - _local6);
_local21 = (_local17 - _local7);
_local22 = ((_local18 * _local20) + (_local19 * _local21));
if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){
m_limitState = e_equalLimits;
} else {
if (_local22 <= m_lowerTranslation){
if (m_limitState != e_atLowerLimit){
m_limitForce = 0;
};
m_limitState = e_atLowerLimit;
} else {
if (_local22 >= m_upperTranslation){
if (m_limitState != e_atUpperLimit){
m_limitForce = 0;
};
m_limitState = e_atUpperLimit;
} else {
m_limitState = e_inactiveLimit;
m_limitForce = 0;
};
};
};
};
};
if (m_enableMotor == false){
m_motorForce = 0;
};
if (m_enableLimit == false){
m_limitForce = 0;
};
if (b2World.s_enableWarmStarting){
_local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x)));
_local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y)));
_local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x)));
_local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y)));
_local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1)));
_local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2)));
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24));
_local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26));
_local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28));
} else {
m_force = 0;
m_torque = 0;
m_limitForce = 0;
m_motorForce = 0;
};
m_limitPositionImpulse = 0;
}
public function GetMotorForce():Number{
return (m_motorForce);
}
public function SetMaxMotorForce(_arg1:Number):void{
m_maxMotorForce = _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 = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity);
_local10 = ((-(_arg1.inv_dt) * m_linearMass) * _local9);
m_force = (m_force + _local10);
_local11 = (_arg1.dt * _local10);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y));
_local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2));
_local12 = (_local3.m_angularVelocity - _local2.m_angularVelocity);
_local13 = ((-(_arg1.inv_dt) * m_angularMass) * _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 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed);
_local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15);
_local17 = m_motorForce;
m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce);
_local16 = (m_motorForce - _local17);
_local11 = (_arg1.dt * _local16);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y));
_local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2));
};
if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){
_local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity);
_local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18);
if (m_limitState == e_equalLimits){
m_limitForce = (m_limitForce + _local19);
} else {
if (m_limitState == e_atLowerLimit){
_local8 = m_limitForce;
m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0);
_local19 = (m_limitForce - _local8);
} else {
if (m_limitState == e_atUpperLimit){
_local8 = m_limitForce;
m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0);
_local19 = (m_limitForce - _local8);
};
};
};
_local11 = (_arg1.dt * _local19);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y));
_local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2));
};
}
}
}//package Box2D.Dynamics.Joints
Section 77
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef)
package Box2D.Dynamics.Joints {
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
public class b2PrismaticJointDef extends b2JointDef {
public var localAxis1:b2Vec2;
public var referenceAngle:Number;
public var maxMotorForce:Number;
public var motorSpeed:Number;
public var upperTranslation:Number;
public var localAnchor1:b2Vec2;
public var localAnchor2:b2Vec2;
public var enableLimit:Boolean;
public var enableMotor:Boolean;
public var lowerTranslation:Number;
public function b2PrismaticJointDef(){
localAnchor1 = new b2Vec2();
localAnchor2 = new b2Vec2();
localAxis1 = new b2Vec2();
super();
type = b2Joint.e_prismaticJoint;
localAxis1.Set(1, 0);
referenceAngle = 0;
enableLimit = false;
lowerTranslation = 0;
upperTranslation = 0;
enableMotor = false;
maxMotorForce = 0;
motorSpeed = 0;
}
public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{
body1 = _arg1;
body2 = _arg2;
localAnchor1 = body1.GetLocalPoint(_arg3);
localAnchor2 = body2.GetLocalPoint(_arg3);
localAxis1 = body1.GetLocalVector(_arg4);
referenceAngle = (body2.GetAngle() - body1.GetAngle());
}
}
}//package Box2D.Dynamics.Joints
Section 78
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint)
package Box2D.Dynamics.Joints {
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Common.*;
public class b2PulleyJoint extends b2Joint {
public var m_ground:b2Body;
public var m_maxLength2:Number;
public var m_limitForce1:Number;
public var m_maxLength1:Number;
public var m_limitState1:int;
public var m_limitState2:int;
public var m_limitPositionImpulse2:Number;
public var m_force:Number;
public var m_limitPositionImpulse1:Number;
public var m_constant:Number;
public var m_state:int;
public var m_ratio:Number;
public var m_groundAnchor1:b2Vec2;
public var m_groundAnchor2:b2Vec2;
public var m_localAnchor1:b2Vec2;
public var m_localAnchor2:b2Vec2;
public var m_positionImpulse:Number;
public var m_limitMass2:Number;
public var m_limitMass1:Number;
public var m_pulleyMass:Number;
public var m_u1:b2Vec2;
public var m_u2:b2Vec2;
public var m_limitForce2: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();
m_u1 = new b2Vec2();
m_u2 = new b2Vec2();
super(_arg1);
m_ground = m_body1.m_world.m_groundBody;
m_groundAnchor1.x = (_arg1.groundAnchor1.x - m_ground.m_xf.position.x);
m_groundAnchor1.y = (_arg1.groundAnchor1.y - m_ground.m_xf.position.y);
m_groundAnchor2.x = (_arg1.groundAnchor2.x - m_ground.m_xf.position.x);
m_groundAnchor2.y = (_arg1.groundAnchor2.y - m_ground.m_xf.position.y);
m_localAnchor1.SetV(_arg1.localAnchor1);
m_localAnchor2.SetV(_arg1.localAnchor2);
m_ratio = _arg1.ratio;
m_constant = (_arg1.length1 + (m_ratio * _arg1.length2));
m_maxLength1 = b2Math.b2Min(_arg1.maxLength1, (m_constant - (m_ratio * b2_minPulleyLength)));
m_maxLength2 = b2Math.b2Min(_arg1.maxLength2, ((m_constant - b2_minPulleyLength) / m_ratio));
m_force = 0;
m_limitForce1 = 0;
m_limitForce2 = 0;
}
public function GetGroundAnchor2():b2Vec2{
var _local1:b2Vec2;
_local1 = m_ground.m_xf.position.Copy();
_local1.Add(m_groundAnchor2);
return (_local1);
}
override public function GetAnchor1():b2Vec2{
return (m_body1.GetWorldPoint(m_localAnchor1));
}
override public function GetAnchor2():b2Vec2{
return (m_body2.GetWorldPoint(m_localAnchor2));
}
override public function GetReactionForce():b2Vec2{
var _local1:b2Vec2;
_local1 = m_u2.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_ground.m_xf.position.x + m_groundAnchor1.x);
_local5 = (m_ground.m_xf.position.y + m_groundAnchor1.y);
_local6 = (m_ground.m_xf.position.x + m_groundAnchor2.x);
_local7 = (m_ground.m_xf.position.y + m_groundAnchor2.y);
_local23 = 0;
if (m_state == e_atUpperLimit){
_local3 = _local1.m_xf.R;
_local8 = (m_localAnchor1.x - _local1.GetLocalCenter().x);
_local9 = (m_localAnchor1.y - _local1.GetLocalCenter().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.GetLocalCenter().x);
_local11 = (m_localAnchor2.y - _local2.GetLocalCenter().y);
_local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11));
_local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11));
_local10 = _local22;
_local12 = (_local1.m_sweep.c.x + _local8);
_local13 = (_local1.m_sweep.c.y + _local9);
_local14 = (_local2.m_sweep.c.x + _local10);
_local15 = (_local2.m_sweep.c.y + _local11);
m_u1.Set((_local12 - _local4), (_local13 - _local5));
m_u2.Set((_local14 - _local6), (_local15 - _local7));
_local16 = m_u1.Length();
_local17 = m_u2.Length();
if (_local16 > b2Settings.b2_linearSlop){
m_u1.Multiply((1 / _local16));
} else {
m_u1.SetZero();
};
if (_local17 > b2Settings.b2_linearSlop){
m_u2.Multiply((1 / _local17));
} else {
m_u2.SetZero();
};
_local18 = ((m_constant - _local16) - (m_ratio * _local17));
_local23 = b2Math.b2Max(_local23, -(_local18));
_local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0);
_local19 = (-(m_pulleyMass) * _local18);
_local20 = m_positionImpulse;
m_positionImpulse = b2Math.b2Max(0, (m_positionImpulse + _local19));
_local19 = (m_positionImpulse - _local20);
_local12 = (-(_local19) * m_u1.x);
_local13 = (-(_local19) * m_u1.y);
_local14 = ((-(m_ratio) * _local19) * m_u2.x);
_local15 = ((-(m_ratio) * _local19) * m_u2.y);
_local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12));
_local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13));
_local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12))));
_local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14));
_local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15));
_local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14))));
_local1.SynchronizeTransform();
_local2.SynchronizeTransform();
};
if (m_limitState1 == e_atUpperLimit){
_local3 = _local1.m_xf.R;
_local8 = (m_localAnchor1.x - _local1.GetLocalCenter().x);
_local9 = (m_localAnchor1.y - _local1.GetLocalCenter().y);
_local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9));
_local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9));
_local8 = _local22;
_local12 = (_local1.m_sweep.c.x + _local8);
_local13 = (_local1.m_sweep.c.y + _local9);
m_u1.Set((_local12 - _local4), (_local13 - _local5));
_local16 = m_u1.Length();
if (_local16 > b2Settings.b2_linearSlop){
m_u1.x = (m_u1.x * (1 / _local16));
m_u1.y = (m_u1.y * (1 / _local16));
} else {
m_u1.SetZero();
};
_local18 = (m_maxLength1 - _local16);
_local23 = b2Math.b2Max(_local23, -(_local18));
_local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0);
_local19 = (-(m_limitMass1) * _local18);
_local21 = m_limitPositionImpulse1;
m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19));
_local19 = (m_limitPositionImpulse1 - _local21);
_local12 = (-(_local19) * m_u1.x);
_local13 = (-(_local19) * m_u1.y);
_local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12));
_local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13));
_local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12))));
_local1.SynchronizeTransform();
};
if (m_limitState2 == e_atUpperLimit){
_local3 = _local2.m_xf.R;
_local10 = (m_localAnchor2.x - _local2.GetLocalCenter().x);
_local11 = (m_localAnchor2.y - _local2.GetLocalCenter().y);
_local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11));
_local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11));
_local10 = _local22;
_local14 = (_local2.m_sweep.c.x + _local10);
_local15 = (_local2.m_sweep.c.y + _local11);
m_u2.Set((_local14 - _local6), (_local15 - _local7));
_local17 = m_u2.Length();
if (_local17 > b2Settings.b2_linearSlop){
m_u2.x = (m_u2.x * (1 / _local17));
m_u2.y = (m_u2.y * (1 / _local17));
} else {
m_u2.SetZero();
};
_local18 = (m_maxLength2 - _local17);
_local23 = b2Math.b2Max(_local23, -(_local18));
_local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0);
_local19 = (-(m_limitMass2) * _local18);
_local21 = m_limitPositionImpulse2;
m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19));
_local19 = (m_limitPositionImpulse2 - _local21);
_local14 = (-(_local19) * m_u2.x);
_local15 = (-(_local19) * m_u2.y);
_local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14));
_local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15));
_local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14))));
_local2.SynchronizeTransform();
};
return ((_local23 < b2Settings.b2_linearSlop));
}
override public function InitVelocityConstraints(_arg1:b2TimeStep):void{
var _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.GetLocalCenter().x);
_local6 = (m_localAnchor1.y - _local2.GetLocalCenter().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.GetLocalCenter().x);
_local9 = (m_localAnchor2.y - _local3.GetLocalCenter().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_ground.m_xf.position.x + m_groundAnchor1.x);
_local15 = (m_ground.m_xf.position.y + m_groundAnchor1.y);
_local16 = (m_ground.m_xf.position.x + m_groundAnchor2.x);
_local17 = (m_ground.m_xf.position.y + m_groundAnchor2.y);
m_u1.Set((_local10 - _local14), (_local11 - _local15));
m_u2.Set((_local12 - _local16), (_local13 - _local17));
_local18 = m_u1.Length();
_local19 = m_u2.Length();
if (_local18 > b2Settings.b2_linearSlop){
m_u1.Multiply((1 / _local18));
} else {
m_u1.SetZero();
};
if (_local19 > b2Settings.b2_linearSlop){
m_u2.Multiply((1 / _local19));
} else {
m_u2.SetZero();
};
_local20 = ((m_constant - _local18) - (m_ratio * _local19));
if (_local20 > 0){
m_state = e_inactiveLimit;
m_force = 0;
} else {
m_state = e_atUpperLimit;
m_positionImpulse = 0;
};
if (_local18 < m_maxLength1){
m_limitState1 = e_inactiveLimit;
m_limitForce1 = 0;
} else {
m_limitState1 = e_atUpperLimit;
m_limitPositionImpulse1 = 0;
};
if (_local19 < m_maxLength2){
m_limitState2 = e_inactiveLimit;
m_limitForce2 = 0;
} else {
m_limitState2 = e_atUpperLimit;
m_limitPositionImpulse2 = 0;
};
_local21 = ((_local5 * m_u1.y) - (_local6 * m_u1.x));
_local22 = ((_local8 * m_u2.y) - (_local9 * m_u2.x));
m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21));
m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22));
m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2));
m_limitMass1 = (1 / m_limitMass1);
m_limitMass2 = (1 / m_limitMass2);
m_pulleyMass = (1 / m_pulleyMass);
if (b2World.s_enableWarmStarting){
_local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x);
_local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y);
_local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x);
_local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24));
_local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23))));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26));
_local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25))));
} else {
m_force = 0;
m_limitForce1 = 0;
m_limitForce2 = 0;
};
}
override public function GetReactionTorque():Number{
return (0);
}
public function GetRatio():Number{
return (m_ratio);
}
public function GetLength2():Number{
var _local1:b2Vec2;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local1 = m_body2.GetWorldPoint(m_localAnchor2);
_local2 = (m_ground.m_xf.position.x + m_groundAnchor2.x);
_local3 = (m_ground.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.GetLocalCenter().x);
_local6 = (m_localAnchor1.y - _local2.GetLocalCenter().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.GetLocalCenter().x);
_local9 = (m_localAnchor2.y - _local3.GetLocalCenter().y);
_local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9));
_local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9));
_local8 = _local7;
if (m_state == e_atUpperLimit){
_local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6));
_local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5));
_local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9));
_local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8));
_local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13))));
_local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18);
_local20 = m_force;
m_force = b2Math.b2Max(0, (m_force + _local19));
_local19 = (m_force - _local20);
_local14 = ((-(_arg1.dt) * _local19) * m_u1.x);
_local15 = ((-(_arg1.dt) * _local19) * m_u1.y);
_local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x);
_local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15));
_local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14))));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17));
_local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16))));
};
if (m_limitState1 == e_atUpperLimit){
_local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6));
_local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5));
_local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11)));
_local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18);
_local20 = m_limitForce1;
m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19));
_local19 = (m_limitForce1 - _local20);
_local14 = ((-(_arg1.dt) * _local19) * m_u1.x);
_local15 = ((-(_arg1.dt) * _local19) * m_u1.y);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15));
_local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14))));
};
if (m_limitState2 == e_atUpperLimit){
_local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9));
_local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8));
_local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13)));
_local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18);
_local20 = m_limitForce2;
m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19));
_local19 = (m_limitForce2 - _local20);
_local16 = ((-(_arg1.dt) * _local19) * m_u2.x);
_local17 = ((-(_arg1.dt) * _local19) * m_u2.y);
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17));
_local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16))));
};
}
public function GetLength1():Number{
var _local1:b2Vec2;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local1 = m_body1.GetWorldPoint(m_localAnchor1);
_local2 = (m_ground.m_xf.position.x + m_groundAnchor1.x);
_local3 = (m_ground.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_ground.m_xf.position.Copy();
_local1.Add(m_groundAnchor1);
return (_local1);
}
}
}//package Box2D.Dynamics.Joints
Section 79
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef)
package Box2D.Dynamics.Joints {
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
public class b2PulleyJointDef extends b2JointDef {
public var maxLength2:Number;
public var length1:Number;
public var length2:Number;
public var maxLength1:Number;
public var ratio:Number;
public var groundAnchor1:b2Vec2;
public var groundAnchor2:b2Vec2;
public var localAnchor1:b2Vec2;
public var localAnchor2:b2Vec2;
public function b2PulleyJointDef(){
groundAnchor1 = new b2Vec2();
groundAnchor2 = new b2Vec2();
localAnchor1 = new b2Vec2();
localAnchor2 = new b2Vec2();
super();
type = b2Joint.e_pulleyJoint;
groundAnchor1.Set(-1, 1);
groundAnchor2.Set(1, 1);
localAnchor1.Set(-1, 0);
localAnchor2.Set(1, 0);
length1 = 0;
maxLength1 = 0;
length2 = 0;
maxLength2 = 0;
ratio = 1;
collideConnected = true;
}
public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
body1 = _arg1;
body2 = _arg2;
groundAnchor1.SetV(_arg3);
groundAnchor2.SetV(_arg4);
localAnchor1 = body1.GetLocalPoint(_arg5);
localAnchor2 = body2.GetLocalPoint(_arg6);
_local8 = (_arg5.x - _arg3.x);
_local9 = (_arg5.y - _arg3.y);
length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9)));
_local10 = (_arg6.x - _arg4.x);
_local11 = (_arg6.y - _arg4.y);
length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11)));
ratio = _arg7;
_local12 = (length1 + (ratio * length2));
maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength));
maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio);
}
}
}//package Box2D.Dynamics.Joints
Section 80
//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 m_pivotMass: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 K1:b2Mat22;
private var K2:b2Mat22;
private var K3:b2Mat22;
private var K:b2Mat22;
public var m_pivotForce:b2Vec2;
public var m_enableMotor:Boolean;
public var m_referenceAngle:Number;
public var m_motorSpeed:Number;
public var m_limitPositionImpulse:Number;
public var m_maxMotorTorque:Number;
public var m_upperAngle:Number;
public var m_lowerAngle:Number;
public static var tImpulse:b2Vec2 = new b2Vec2();
public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){
K = new b2Mat22();
K1 = new b2Mat22();
K2 = new b2Mat22();
K3 = new b2Mat22();
m_localAnchor1 = new b2Vec2();
m_localAnchor2 = new b2Vec2();
m_pivotForce = new b2Vec2();
m_pivotMass = new b2Mat22();
super(_arg1);
m_localAnchor1.SetV(_arg1.localAnchor1);
m_localAnchor2.SetV(_arg1.localAnchor2);
m_referenceAngle = _arg1.referenceAngle;
m_pivotForce.Set(0, 0);
m_motorForce = 0;
m_limitForce = 0;
m_limitPositionImpulse = 0;
m_lowerAngle = _arg1.lowerAngle;
m_upperAngle = _arg1.upperAngle;
m_maxMotorTorque = _arg1.maxMotorTorque;
m_motorSpeed = _arg1.motorSpeed;
m_enableLimit = _arg1.enableLimit;
m_enableMotor = _arg1.enableMotor;
}
override public function 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 (m_upperAngle);
}
public function GetLowerLimit():Number{
return (m_lowerAngle);
}
public function SetLimits(_arg1:Number, _arg2:Number):void{
m_lowerAngle = _arg1;
m_upperAngle = _arg2;
}
public function GetMotorSpeed():Number{
return (m_motorSpeed);
}
override public function GetReactionForce():b2Vec2{
return (m_pivotForce);
}
override public function SolvePositionConstraints():Boolean{
var _local1:Number;
var _local2:Number;
var _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.GetLocalCenter().x);
_local8 = (m_localAnchor1.y - _local3.GetLocalCenter().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.GetLocalCenter().x);
_local11 = (m_localAnchor2.y - _local4.GetLocalCenter().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;
K1.col1.x = (_local18 + _local19);
K1.col2.x = 0;
K1.col1.y = 0;
K1.col2.y = (_local18 + _local19);
K2.col1.x = ((_local20 * _local8) * _local8);
K2.col2.x = ((-(_local20) * _local7) * _local8);
K2.col1.y = ((-(_local20) * _local7) * _local8);
K2.col2.y = ((_local20 * _local7) * _local7);
K3.col1.x = ((_local21 * _local11) * _local11);
K3.col2.x = ((-(_local21) * _local10) * _local11);
K3.col1.y = ((-(_local21) * _local10) * _local11);
K3.col2.y = ((_local21 * _local10) * _local10);
K.SetM(K1);
K.AddM(K2);
K.AddM(K3);
K.Solve(tImpulse, -(_local16), -(_local17));
_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) - m_referenceAngle);
_local26 = 0;
if (m_limitState == e_equalLimits){
_local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection);
_local26 = (-(m_motorMass) * _local2);
_local24 = b2Math.b2Abs(_local2);
} else {
if (m_limitState == e_atLowerLimit){
_local2 = (_local25 - m_lowerAngle);
_local24 = b2Math.b2Max(0, -(_local2));
_local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0);
_local26 = (-(m_motorMass) * _local2);
_local1 = m_limitPositionImpulse;
m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0);
_local26 = (m_limitPositionImpulse - _local1);
} else {
if (m_limitState == e_atUpperLimit){
_local2 = (_local25 - m_upperAngle);
_local24 = b2Math.b2Max(0, _local2);
_local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection);
_local26 = (-(m_motorMass) * _local2);
_local1 = m_limitPositionImpulse;
m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0);
_local26 = (m_limitPositionImpulse - _local1);
};
};
};
_local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26));
_local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26));
_local3.SynchronizeTransform();
_local4.SynchronizeTransform();
};
return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop))));
}
public function GetJointSpeed():Number{
return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity));
}
public function SetMotorSpeed(_arg1:Number):void{
m_motorSpeed = _arg1;
}
public function SetMaxMotorTorque(_arg1:Number):void{
m_maxMotorTorque = _arg1;
}
public function GetJointAngle():Number{
return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle));
}
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.GetLocalCenter().x);
_local7 = (m_localAnchor1.y - _local2.GetLocalCenter().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.GetLocalCenter().x);
_local9 = (m_localAnchor2.y - _local3.GetLocalCenter().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;
K1.col1.x = (_local10 + _local11);
K1.col2.x = 0;
K1.col1.y = 0;
K1.col2.y = (_local10 + _local11);
K2.col1.x = ((_local12 * _local7) * _local7);
K2.col2.x = ((-(_local12) * _local6) * _local7);
K2.col1.y = ((-(_local12) * _local6) * _local7);
K2.col2.y = ((_local12 * _local6) * _local6);
K3.col1.x = ((_local13 * _local9) * _local9);
K3.col2.x = ((-(_local13) * _local8) * _local9);
K3.col1.y = ((-(_local13) * _local8) * _local9);
K3.col2.y = ((_local13 * _local8) * _local8);
K.SetM(K1);
K.AddM(K2);
K.AddM(K3);
K.Invert(m_pivotMass);
m_motorMass = (1 / (_local12 + _local13));
if (m_enableMotor == false){
m_motorForce = 0;
};
if (m_enableLimit){
_local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle);
if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){
m_limitState = e_equalLimits;
} else {
if (_local14 <= m_lowerAngle){
if (m_limitState != e_atLowerLimit){
m_limitForce = 0;
};
m_limitState = e_atLowerLimit;
} else {
if (_local14 >= m_upperAngle){
if (m_limitState != e_atUpperLimit){
m_limitForce = 0;
};
m_limitState = e_atUpperLimit;
} else {
m_limitState = e_inactiveLimit;
m_limitForce = 0;
};
};
};
} else {
m_limitForce = 0;
};
if (b2World.s_enableWarmStarting){
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y));
_local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce)));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce)));
} else {
m_pivotForce.SetZero();
m_motorForce = 0;
m_limitForce = 0;
};
m_limitPositionImpulse = 0;
}
public function GetMotorTorque():Number{
return (m_motorForce);
}
public function EnableLimit(_arg1:Boolean):void{
m_enableLimit = _arg1;
}
override public function GetReactionTorque():Number{
return (m_limitForce);
}
public function IsLimitEnabled():Boolean{
return (m_enableLimit);
}
public function IsMotorEnabled():Boolean{
return (m_enableMotor);
}
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.GetLocalCenter().x);
_local7 = (m_localAnchor1.y - _local2.GetLocalCenter().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.GetLocalCenter().x);
_local9 = (m_localAnchor2.y - _local3.GetLocalCenter().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) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12)));
_local14 = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12)));
m_pivotForce.x = (m_pivotForce.x + _local13);
m_pivotForce.y = (m_pivotForce.y + _local14);
_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), -(m_maxMotorTorque), m_maxMotorTorque);
_local18 = (m_motorForce - _local19);
_local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18));
};
if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){
_local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity);
_local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20);
if (m_limitState == e_equalLimits){
m_limitForce = (m_limitForce + _local21);
} else {
if (m_limitState == e_atLowerLimit){
_local10 = m_limitForce;
m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0);
_local21 = (m_limitForce - _local10);
} else {
if (m_limitState == e_atUpperLimit){
_local10 = m_limitForce;
m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0);
_local21 = (m_limitForce - _local10);
};
};
};
_local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21));
};
}
}
}//package Box2D.Dynamics.Joints
Section 81
//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 upperAngle:Number;
public var lowerAngle:Number;
public var motorSpeed:Number;
public var maxMotorTorque: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;
lowerAngle = 0;
upperAngle = 0;
maxMotorTorque = 0;
motorSpeed = 0;
enableLimit = false;
enableMotor = false;
}
public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{
body1 = _arg1;
body2 = _arg2;
localAnchor1 = body1.GetLocalPoint(_arg3);
localAnchor2 = body2.GetLocalPoint(_arg3);
referenceAngle = (body2.GetAngle() - body1.GetAngle());
}
}
}//package Box2D.Dynamics.Joints
Section 82
//b2Body (Box2D.Dynamics.b2Body)
package Box2D.Dynamics {
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Dynamics.Contacts.*;
public class b2Body {
public var m_xf:b2XForm;
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_sweep:b2Sweep;
public var m_mass:Number;
public var m_torque:Number;
public var NameID:String;
public var m_userData;
public var m_flags:uint;
public var m_world:b2World;
public var m_linearVelocity:b2Vec2;
public var m_prev:b2Body;
public var m_invMass:Number;
public var m_type:uint;
public var m_linearDamping:Number;
public var m_shapeCount:int;
public var m_angularDamping:Number;
public var moveF;
public var m_invI:Number;
public var m_sleepTime:Number;
public var m_jointList:b2JointEdge;
public var m_I:Number;
public var scor;
public var NameB:String;
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:uint, _arg3:b2World){
var _local4:b2Mat22;
var _local5:b2Vec2;
m_xf = new b2XForm();
m_sweep = new b2Sweep();
m_linearVelocity = new b2Vec2();
m_force = new b2Vec2();
super();
m_flags = 0;
if (_arg1.isBullet){
m_flags = (m_flags | e_bulletFlag);
};
if (_arg1.fixedRotation){
m_flags = (m_flags | e_fixedRotationFlag);
};
if (_arg1.allowSleep){
m_flags = (m_flags | e_allowSleepFlag);
};
if (_arg1.isSleeping){
m_flags = (m_flags | e_sleepFlag);
};
m_type = _arg2;
m_world = _arg3;
m_xf.position.SetV(_arg1.position);
m_xf.R.Set(_arg1.angle);
m_sweep.localCenter.SetV(_arg1.massData.center);
m_sweep.t0 = 1;
m_sweep.a0 = (m_sweep.a = _arg1.angle);
_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_jointList = null;
m_contactList = null;
m_prev = null;
m_next = null;
m_linearDamping = _arg1.linearDamping;
m_angularDamping = _arg1.angularDamping;
m_force.Set(0, 0);
m_torque = 0;
m_linearVelocity.SetZero();
m_angularVelocity = 0;
m_sleepTime = 0;
m_mass = 0;
m_invMass = 0;
m_I = 0;
m_invI = 0;
if (m_type == e_dynamicType){
m_mass = _arg1.massData.mass;
};
if (m_mass > 0){
m_invMass = (1 / m_mass);
};
if (((((m_flags & b2Body.e_fixedRotationFlag) == 0)) && ((m_type == e_dynamicType)))){
m_I = _arg1.massData.I;
};
if (m_I > 0){
m_invI = (1 / m_I);
};
m_userData = _arg1.userData;
m_shapeList = null;
m_shapeCount = 0;
}
public function SetLinearVelocity(_arg1:b2Vec2):void{
m_linearVelocity.SetV(_arg1);
}
public function WakeUp():void{
m_flags = (m_flags & ~(e_sleepFlag));
m_sleepTime = 0;
}
public function GetLocalCenter():b2Vec2{
return (m_sweep.localCenter);
}
public function ApplyTorque(_arg1:Number):void{
if (IsSleeping()){
WakeUp();
};
m_torque = (m_torque + _arg1);
}
public function IsFrozen():Boolean{
return (((m_flags & e_frozenFlag) == e_frozenFlag));
}
public function IsDynamic():Boolean{
return ((m_type == e_dynamicType));
}
public function 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 GetInertia():Number{
return (m_I);
}
public function GetLinearVelocity():b2Vec2{
return (m_linearVelocity);
}
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;
if (m_world.m_lock == true){
return;
};
if (m_type == e_staticType){
return;
};
m_mass = 0;
m_invMass = 0;
m_I = 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));
m_I = (m_I + _local4.I);
_local1 = _local1.m_next;
};
if (m_mass > 0){
m_invMass = (1 / m_mass);
_local2 = (_local2 * m_invMass);
_local3 = (_local3 * m_invMass);
} else {
m_invMass = 0;
m_invI = 0;
};
if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){
m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3))));
m_invI = (1 / m_I);
} else {
m_I = 0;
m_invI = 0;
};
m_sweep.localCenter.Set(_local2, _local3);
_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;
};
}
public function GetJointList():b2JointEdge{
return (m_jointList);
}
public function SetXForm(_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 (IsFrozen()){
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):void{
if (IsSleeping()){
WakeUp();
};
m_force.x = (m_force.x + _arg1.x);
m_force.y = (m_force.y + _arg1.y);
m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x)));
}
public function SynchronizeShapes():Boolean{
var _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 GetContactList():b2ContactEdge{
return (m_contactList);
}
public function GetNext():b2Body{
return (m_next);
}
public function GetMass():Number{
return (m_mass);
}
public function GetAngularVelocity():Number{
return (m_angularVelocity);
}
public function SetAngularVelocity(_arg1:Number):void{
m_angularVelocity = _arg1;
}
public function SetMass(_arg1:b2MassData):void{
var _local2:b2Mat22;
var _local3:b2Vec2;
var _local4:b2Shape;
if (m_world.m_lock == true){
return;
};
if (m_type == e_staticType){
return;
};
m_mass = 0;
m_invMass = 0;
m_I = 0;
m_invI = 0;
m_mass = _arg1.mass;
if (m_mass > 0){
m_invMass = (1 / m_mass);
};
if ((m_flags & b2Body.e_fixedRotationFlag) == 0){
m_I = _arg1.I;
};
if (m_I > 0){
m_invI = (1 / m_I);
};
m_sweep.localCenter.SetV(_arg1.center);
_local2 = m_xf.R;
_local3 = m_sweep.localCenter;
m_sweep.c.x = ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y));
m_sweep.c.y = ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.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);
_local4 = m_shapeList;
while (_local4) {
_local4.UpdateSweepRadius(m_sweep.localCenter);
_local4 = _local4.m_next;
};
}
public function IsStatic():Boolean{
return ((m_type == e_staticType));
}
public function GetWorldVector(_arg1:b2Vec2):b2Vec2{
return (b2Math.b2MulMV(m_xf.R, _arg1));
}
public function GetShapeList():b2Shape{
return (m_shapeList);
}
public function Advance(_arg1:Number):void{
m_sweep.Advance(_arg1);
m_sweep.c.SetV(m_sweep.c0);
m_sweep.a = m_sweep.a0;
SynchronizeTransform();
}
public function SetBullet(_arg1:Boolean):void{
if (_arg1){
m_flags = (m_flags | e_bulletFlag);
} else {
m_flags = (m_flags & ~(e_bulletFlag));
};
}
public function CreateShape(_arg1:b2ShapeDef):b2Shape{
var _local2:b2Shape;
if (m_world.m_lock == true){
return (null);
};
_local2 = b2Shape.Create(_arg1, m_world.m_blockAllocator);
_local2.m_next = m_shapeList;
m_shapeList = _local2;
m_shapeCount++;
_local2.m_body = this;
_local2.CreateProxy(m_world.m_broadPhase, m_xf);
_local2.UpdateSweepRadius(m_sweep.localCenter);
return (_local2);
}
public function IsConnected(_arg1:b2Body):Boolean{
var _local2:b2JointEdge;
_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:Boolean;
if (m_world.m_lock == true){
return;
};
_arg1.DestroyProxy(m_world.m_broadPhase);
_local2 = m_shapeList;
_local3 = false;
while (_local2 != null) {
if (_local2 == _arg1){
_local2 = _arg1.m_next;
_local3 = true;
break;
};
_local2 = _local2.m_next;
};
_arg1.m_body = null;
_arg1.m_next = null;
m_shapeCount--;
b2Shape.Destroy(_arg1, m_world.m_blockAllocator);
}
public function GetUserData(){
return (m_userData);
}
public function IsBullet():Boolean{
return (((m_flags & e_bulletFlag) == e_bulletFlag));
}
public function GetWorldCenter():b2Vec2{
return (m_sweep.c);
}
public function AllowSleeping(_arg1:Boolean):void{
if (_arg1){
m_flags = (m_flags | e_allowSleepFlag);
} else {
m_flags = (m_flags & ~(e_allowSleepFlag));
WakeUp();
};
}
public function GetLocalVector(_arg1:b2Vec2):b2Vec2{
return (b2Math.b2MulTMV(m_xf.R, _arg1));
}
public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{
return (b2Math.b2MulX(m_xf, _arg1));
}
public function GetPosition():b2Vec2{
return (m_xf.position);
}
}
}//package Box2D.Dynamics
Section 83
//b2BodyDef (Box2D.Dynamics.b2BodyDef)
package Box2D.Dynamics {
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
public class b2BodyDef {
public var isSleeping:Boolean;
public var position:b2Vec2;
public var isBullet:Boolean;
public var allowSleep:Boolean;
public var userData;
public var angularDamping:Number;
public var fixedRotation:Boolean;
public var angle:Number;
public var linearDamping:Number;
public var massData:b2MassData;
public function b2BodyDef(){
massData = new b2MassData();
position = new b2Vec2();
super();
massData.center.SetZero();
massData.mass = 0;
massData.I = 0;
userData = null;
position.Set(0, 0);
angle = 0;
linearDamping = 0;
angularDamping = 0;
allowSleep = true;
isSleeping = false;
fixedRotation = false;
isBullet = false;
}
}
}//package Box2D.Dynamics
Section 84
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener)
package Box2D.Dynamics {
public class b2BoundaryListener {
public function Violation(_arg1:b2Body):void{
}
}
}//package Box2D.Dynamics
Section 85
//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:Boolean;
if ((((_arg1.m_groupIndex == _arg2.m_groupIndex)) && (!((_arg1.m_groupIndex == 0))))){
return ((_arg1.m_groupIndex > 0));
};
_local3 = ((!(((_arg1.m_maskBits & _arg2.m_categoryBits) == 0))) && (!(((_arg1.m_categoryBits & _arg2.m_maskBits) == 0))));
return (_local3);
}
}
}//package Box2D.Dynamics
Section 86
//b2ContactListener (Box2D.Dynamics.b2ContactListener)
package Box2D.Dynamics {
import Box2D.Collision.*;
public class b2ContactListener {
public function Add(_arg1:b2ContactPoint):void{
}
public function Remove(_arg1:b2ContactPoint):void{
}
public function Persist(_arg1:b2ContactPoint):void{
}
}
}//package Box2D.Dynamics
Section 87
//b2ContactManager (Box2D.Dynamics.b2ContactManager)
package Box2D.Dynamics {
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.Contacts.*;
import Box2D.Collision.*;
public class b2ContactManager extends b2PairCallback {
public var m_world:b2World;
public var m_destroyImmediate:Boolean;
public var m_nullContact:b2NullContact;
public function b2ContactManager(){
m_nullContact = new b2NullContact();
super();
m_world = null;
m_destroyImmediate = 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.GetBody();
_local6 = _local4.GetBody();
if (((_local5.IsStatic()) && (_local6.IsStatic()))){
return (m_nullContact);
};
if (_local3.m_body == _local4.m_body){
return (m_nullContact);
};
if (_local6.IsConnected(_local5)){
return (m_nullContact);
};
if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){
return (m_nullContact);
};
_local7 = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator);
if (_local7 == null){
return (m_nullContact);
};
_local3 = _local7.GetShape1();
_local4 = _local7.GetShape2();
_local5 = _local3.GetBody();
_local6 = _local4.GetBody();
_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 == m_nullContact){
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:b2ContactPoint;
var _local8:b2Body;
var _local9:Array;
var _local10:int;
var _local11:b2Manifold;
var _local12:int;
var _local13:b2ManifoldPoint;
var _local14:b2Mat22;
var _local15:b2Vec2;
var _local16:b2Vec2;
_local2 = _arg1.GetShape1();
_local3 = _arg1.GetShape2();
_local4 = _arg1.GetManifoldCount();
if ((((_local4 > 0)) && (m_world.m_contactListener))){
_local7 = new b2ContactPoint();
_local7.shape1 = _arg1.GetShape1();
_local7.shape2 = _arg1.GetShape2();
_local8 = _local7.shape1.GetBody();
_local9 = _arg1.GetManifolds();
_local10 = 0;
while (_local10 < _local4) {
_local11 = _local9[_local10];
_local7.normal.SetV(_local11.normal);
_local12 = 0;
while (_local12 < _local11.pointCount) {
_local13 = _local11.points[_local12];
_local14 = _local8.GetXForm().R;
_local15 = _local8.GetXForm().position;
_local16 = _local13.localPoint1;
_local7.position.x = (_local15.x + ((_local14.col1.x * _local16.x) + (_local14.col2.x * _local16.y)));
_local7.position.y = (_local15.y + ((_local14.col1.y * _local16.x) + (_local14.col2.y * _local16.y)));
_local7.separation = _local13.separation;
_local7.normalForce = _local13.normalForce;
_local7.tangentForce = _local13.tangentForce;
_local7.id = _local13.id;
m_world.m_contactListener.Remove(_local7);
_local12++;
};
_local10++;
};
};
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.GetBody();
_local6 = _local3.GetBody();
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;
var _local4:b2ContactPoint;
var _local5:b2Body;
var _local6:int;
var _local7:Array;
var _local8:int;
var _local9:b2Manifold;
var _local10:int;
var _local11:b2ManifoldPoint;
var _local12:b2Mat22;
var _local13:b2Vec2;
var _local14:b2Vec2;
_local1 = m_world.m_contactList;
while (_local1) {
_local2 = _local1.GetShape1().GetBody();
_local3 = _local1.GetShape2().GetBody();
if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){
} else {
_local1.Update(m_world.m_contactListener);
if ((((_local1.IsSolid() == false)) && (m_world.m_contactListener))){
_local4 = new b2ContactPoint();
_local4.shape1 = _local1.GetShape1();
_local4.shape2 = _local1.GetShape2();
_local4.normalForce = 0;
_local4.tangentForce = 0;
_local5 = _local4.shape1.GetBody();
_local6 = _local1.GetManifoldCount();
_local7 = _local1.GetManifolds();
_local8 = 0;
while (_local8 < _local6) {
_local9 = _local7[_local8];
_local4.normal.SetV(_local9.normal);
_local10 = 0;
while (_local10 < _local9.pointCount) {
_local11 = _local9.points[_local10];
_local12 = _local5.GetXForm().R;
_local13 = _local5.GetXForm().position;
_local14 = _local11.localPoint1;
_local4.position.x = (_local13.x + ((_local12.col1.x * _local14.x) + (_local12.col2.x * _local14.y)));
_local4.position.y = (_local13.y + ((_local12.col1.y * _local14.x) + (_local12.col2.y * _local14.y)));
_local4.separation = _local11.separation;
if ((_local11.id.features.flip & b2Collision.b2_newPoint)){
_local11.id.features.flip = (_local11.id.features.flip & ~(b2Collision.b2_newPoint));
_local4.id = _local11.id;
m_world.m_contactListener.Add(_local4);
} else {
_local4.id = _local11.id;
m_world.m_contactListener.Persist(_local4);
};
_local10++;
};
_local8++;
};
};
};
_local1 = _local1.GetNext();
};
}
}
}//package Box2D.Dynamics
Section 88
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw)
package Box2D.Dynamics {
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.Contacts.*;
import Box2D.Collision.*;
import Box2D.Common.*;
import flash.display.*;
public class b2DebugDraw {
public var m_xformScale:Number;// = 1
public var m_fillAlpha:Number;// = 1
public var m_alpha: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;
m_alpha = 1;
m_fillAlpha = 1;
m_xformScale = 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_alpha);
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_alpha);
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_alpha);
m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale));
m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale));
m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha);
m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale));
m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale));
}
public function ClearFlags(_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_alpha);
m_sprite.graphics.moveTo(0, 0);
m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha);
m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale));
m_sprite.graphics.endFill();
m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale));
m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale));
}
public function SetFlags(_arg1:uint):void{
m_drawFlags = _arg1;
}
public function AppendFlags(_arg1:uint):void{
m_drawFlags = (m_drawFlags | _arg1);
}
public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{
m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha);
m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale));
m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale));
}
public function 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_alpha);
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 89
//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 90
//b2Island (Box2D.Dynamics.b2Island)
package Box2D.Dynamics {
import Box2D.Common.Math.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Dynamics.Contacts.*;
import Box2D.Collision.*;
import Box2D.Common.*;
public class b2Island {
public var m_joints:Array;
public var m_listener:b2ContactListener;
public var m_positionIterationCount:int;
public var m_bodyCapacity:int;
public var m_bodies:Array;
public var m_jointCapacity:int;
public var m_contactCount:int;
public var m_contacts:Array;
public var m_contactCapacity:int;
public var m_jointCount:int;
public var m_allocator;
public var m_bodyCount:int;
private static var s_reportCP:b2ContactPoint = new b2ContactPoint();
public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener){
var _local6:int;
super();
m_bodyCapacity = _arg1;
m_contactCapacity = _arg2;
m_jointCapacity = _arg3;
m_bodyCount = 0;
m_contactCount = 0;
m_jointCount = 0;
m_allocator = _arg4;
m_listener = _arg5;
m_bodies = new Array(_arg1);
_local6 = 0;
while (_local6 < _arg1) {
m_bodies[_local6] = null;
_local6++;
};
m_contacts = new Array(_arg2);
_local6 = 0;
while (_local6 < _arg2) {
m_contacts[_local6] = null;
_local6++;
};
m_joints = new Array(_arg3);
_local6 = 0;
while (_local6 < _arg3) {
m_joints[_local6] = null;
_local6++;
};
m_positionIterationCount = 0;
}
public function AddBody(_arg1:b2Body):void{
var _local2 = m_bodyCount++;
m_bodies[_local2] = _arg1;
}
public function AddJoint(_arg1:b2Joint):void{
var _local2 = m_jointCount++;
m_joints[_local2] = _arg1;
}
public function Report(_arg1:Array):void{
var _local2:b2Mat22;
var _local3:b2Vec2;
var _local4:int;
var _local5:b2Contact;
var _local6:b2ContactConstraint;
var _local7:b2ContactPoint;
var _local8:b2Body;
var _local9:int;
var _local10:Array;
var _local11:int;
var _local12:b2Manifold;
var _local13:int;
var _local14:b2ManifoldPoint;
var _local15:b2ContactConstraintPoint;
if (m_listener == null){
return;
};
_local4 = 0;
while (_local4 < m_contactCount) {
_local5 = m_contacts[_local4];
_local6 = _arg1[_local4];
_local7 = s_reportCP;
_local7.shape1 = _local5.GetShape1();
_local7.shape2 = _local5.GetShape2();
_local8 = _local7.shape1.GetBody();
_local9 = _local5.GetManifoldCount();
_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];
_local2 = _local8.GetXForm().R;
_local3 = _local14.localPoint1;
_local7.position.x = (_local8.GetXForm().position.x + ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y)));
_local7.position.y = (_local8.GetXForm().position.y + ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y)));
_local7.separation = _local14.separation;
_local7.normalForce = _local15.normalForce;
_local7.tangentForce = _local15.tangentForce;
if ((_local14.id.features.flip & b2Collision.b2_newPoint)){
_local14.id.features.flip = (_local14.id.features.flip & ~(b2Collision.b2_newPoint));
_local7.id.key = _local14.id.key;
m_listener.Add(_local7);
} else {
_local7.id.key = _local14.id.key;
m_listener.Persist(_local7);
};
_local13++;
};
_local11++;
};
_local4++;
};
}
public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{
var _local5:int;
var _local6:b2Body;
var _local7:b2ContactSolver;
var _local8:int;
var _local9:Boolean;
var _local10:Boolean;
var _local11:Boolean;
var _local12:Number;
var _local13:Number;
var _local14: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++;
};
_local7 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator);
_local7.InitVelocityConstraints();
_local5 = 0;
while (_local5 < m_jointCount) {
m_joints[_local5].InitVelocityConstraints(_arg1);
_local5++;
};
_local5 = 0;
while (_local5 < _arg1.maxIterations) {
_local7.SolveVelocityConstraints();
_local8 = 0;
while (_local8 < m_jointCount) {
m_joints[_local8].SolveVelocityConstraints(_arg1);
_local8++;
};
_local5++;
};
_local7.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) {
m_joints[_local5].InitPositionConstraints();
_local5++;
};
m_positionIterationCount = 0;
while (m_positionIterationCount < _arg1.maxIterations) {
_local9 = _local7.SolvePositionConstraints(b2Settings.b2_contactBaumgarte);
_local10 = true;
_local5 = 0;
while (_local5 < m_jointCount) {
_local11 = m_joints[_local5].SolvePositionConstraints();
_local10 = ((_local10) && (_local11));
_local5++;
};
if (((_local9) && (_local10))){
break;
};
m_positionIterationCount++;
};
};
Report(_local7.m_constraints);
if (_arg4){
_local12 = Number.MAX_VALUE;
_local13 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance);
_local14 = (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;
_local12 = 0;
};
if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local14)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local13)))){
_local6.m_sleepTime = 0;
_local12 = 0;
} else {
_local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt);
_local12 = b2Math.b2Min(_local12, _local6.m_sleepTime);
};
};
_local5++;
};
if (_local12 >= 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++;
};
Report(_local3.m_constraints);
}
}
}//package Box2D.Dynamics
Section 91
//b2TimeStep (Box2D.Dynamics.b2TimeStep)
package Box2D.Dynamics {
public class b2TimeStep {
public var dt:Number;
public var maxIterations:int;
public var inv_dt:Number;
}
}//package Box2D.Dynamics
Section 92
//b2World (Box2D.Dynamics.b2World)
package Box2D.Dynamics {
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Dynamics.Contacts.*;
import Box2D.Collision.*;
import Box2D.Common.*;
public class b2World {
public var m_contactList:b2Contact;
public var m_blockAllocator;
public var m_boundaryListener:b2BoundaryListener;
public var m_allowSleep:Boolean;
public var m_contactListener:b2ContactListener;
public var m_broadPhase:b2BroadPhase;
public var m_destructionListener:b2DestructionListener;
public var m_jointCount:int;
public var m_bodyCount:int;
public var m_lock:Boolean;
public var m_positionIterationCount:int;
public var m_groundBody:b2Body;
public var m_contactCount:int;
public var m_debugDraw:b2DebugDraw;
public var m_contactFilter:b2ContactFilter;
public var m_bodyList:b2Body;
public var m_stackAllocator;
public var m_jointList:b2Joint;
public var m_gravity:b2Vec2;
public var m_contactManager:b2ContactManager;
private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8);
public static var s_enablePositionCorrection:int = 1;
private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6);
private static var s_xf:b2XForm = new b2XForm();
public static var s_enableWarmStarting:int = 1;
public static var s_enableTOI:int = 1;
public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){
var _local4:b2BodyDef;
m_contactManager = new b2ContactManager();
super();
m_destructionListener = null;
m_boundaryListener = null;
m_contactFilter = b2ContactFilter.b2_defaultFilter;
m_contactListener = null;
m_debugDraw = null;
m_bodyList = null;
m_contactList = null;
m_jointList = null;
m_bodyCount = 0;
m_contactCount = 0;
m_jointCount = 0;
m_allowSleep = _arg3;
m_gravity = _arg2;
m_lock = false;
m_contactManager.m_world = this;
m_broadPhase = new b2BroadPhase(_arg1, m_contactManager);
_local4 = new b2BodyDef();
m_groundBody = CreateStaticBody(_local4);
}
public function DrawJoint(_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.GetBody1();
_local3 = _arg1.GetBody2();
_local4 = _local2.GetXForm();
_local5 = _local3.GetXForm();
_local6 = _local4.position;
_local7 = _local5.position;
_local8 = _arg1.GetAnchor1();
_local9 = _arg1.GetAnchor2();
_local10 = s_jointColor;
switch (_arg1.GetType()){
case b2Joint.e_distanceJoint:
m_debugDraw.DrawSegment(_local8, _local9, _local10);
break;
case b2Joint.e_pulleyJoint:
_local11 = (_arg1 as b2PulleyJoint);
_local12 = _local11.GetGroundAnchor1();
_local13 = _local11.GetGroundAnchor2();
m_debugDraw.DrawSegment(_local12, _local8, _local10);
m_debugDraw.DrawSegment(_local13, _local9, _local10);
m_debugDraw.DrawSegment(_local12, _local13, _local10);
break;
case b2Joint.e_mouseJoint:
m_debugDraw.DrawSegment(_local8, _local9, _local10);
break;
default:
if (_local2 != m_groundBody){
m_debugDraw.DrawSegment(_local6, _local8, _local10);
};
m_debugDraw.DrawSegment(_local8, _local9, _local10);
if (_local3 != m_groundBody){
m_debugDraw.DrawSegment(_local7, _local9, _local10);
};
};
}
public function SetDebugDraw(_arg1:b2DebugDraw):void{
m_debugDraw = _arg1;
}
public function SetListener(_arg1:b2ContactListener):void{
m_contactListener = _arg1;
}
public function DrawDebugData():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 (m_debugDraw == null){
return;
};
m_debugDraw.m_sprite.graphics.clear();
_local1 = m_debugDraw.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 = m_bodyList;
while (_local3) {
_local11 = _local3.GetXForm();
_local4 = _local3.GetShapeList();
while (_local4) {
if (_local3.IsStatic()){
DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15);
} else {
if (_local3.IsSleeping()){
DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15);
} else {
DrawShape(_local4, _local11, new b2Color(0.9, 0.9, 0.9), _local15);
};
};
_local4 = _local4.GetNext();
};
_local3 = _local3.GetNext();
};
};
if ((_local1 & b2DebugDraw.e_jointBit)){
_local5 = m_jointList;
while (_local5) {
DrawJoint(_local5);
_local5 = _local5.GetNext();
};
};
if ((_local1 & b2DebugDraw.e_pairBit)){
_local6 = m_broadPhase;
_local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y));
_local10.Set(0.9, 0.9, 0.3);
_local2 = 0;
while (_local2 < b2Pair.b2_tableCapacity) {
_local16 = _local6.m_pairManager.m_hashTable[_local2];
while (_local16 != b2Pair.b2_nullPair) {
_local17 = _local6.m_pairManager.m_pairs[_local16];
_local18 = _local6.m_proxyPool[_local17.proxyId1];
_local19 = _local6.m_proxyPool[_local17.proxyId2];
_local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value));
_local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value));
_local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value));
_local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value));
_local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value));
_local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value));
_local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value));
_local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value));
_local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x));
_local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y));
_local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x));
_local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y));
m_debugDraw.DrawSegment(_local8, _local9, _local10);
_local16 = _local17.next;
};
_local2++;
};
};
if ((_local1 & b2DebugDraw.e_aabbBit)){
_local6 = m_broadPhase;
_local20 = _local6.m_worldAABB.lowerBound;
_local21 = _local6.m_worldAABB.upperBound;
_local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y));
_local10.Set(0.9, 0.3, 0.9);
_local2 = 0;
while (_local2 < b2Settings.b2_maxProxies) {
_local22 = _local6.m_proxyPool[_local2];
if (_local22.IsValid() == false){
} else {
_local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value));
_local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value));
_local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value));
_local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value));
_local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y);
_local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y);
_local14[2].Set(_local12.upperBound.x, _local12.upperBound.y);
_local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y);
m_debugDraw.DrawPolygon(_local14, 4, _local10);
};
_local2++;
};
_local14[0].Set(_local20.x, _local20.y);
_local14[1].Set(_local21.x, _local20.y);
_local14[2].Set(_local21.x, _local21.y);
_local14[3].Set(_local20.x, _local21.y);
m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9));
};
if ((_local1 & b2DebugDraw.e_obbBit)){
_local10.Set(0.5, 0.3, 0.5);
_local3 = m_bodyList;
while (_local3) {
_local11 = _local3.GetXForm();
_local4 = _local3.GetShapeList();
while (_local4) {
if (_local4.GetType() != b2Shape.e_polygonShape){
} else {
_local23 = (_local4 as b2PolygonShape);
_local24 = _local23.GetOBB();
_local25 = _local24.extents;
_local14[0].Set(-(_local25.x), -(_local25.y));
_local14[1].Set(_local25.x, -(_local25.y));
_local14[2].Set(_local25.x, _local25.y);
_local14[3].Set(-(_local25.x), _local25.y);
_local2 = 0;
while (_local2 < 4) {
_local26 = _local24.R;
_local27 = _local14[_local2];
_local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y)));
_local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y)));
_local14[_local2].x = _local28;
_local26 = _local11.R;
_local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y)));
_local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y)));
_local14[_local2].x = _local28;
_local2++;
};
m_debugDraw.DrawPolygon(_local14, 4, _local10);
};
_local4 = _local4.GetNext();
};
_local3 = _local3.GetNext();
};
};
if ((_local1 & b2DebugDraw.e_centerOfMassBit)){
_local3 = m_bodyList;
while (_local3) {
_local11 = s_xf;
_local11.R = _local3.GetXForm().R;
_local11.position = _local3.GetWorldCenter();
m_debugDraw.DrawXForm(_local11);
_local3 = _local3.GetNext();
};
};
}
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 (m_destructionListener){
m_destructionListener.SayGoodbyeJoint(_local4.joint);
};
DestroyJoint(_local4.joint);
};
_local3 = _arg1.m_shapeList;
while (_local3) {
_local5 = _local3;
_local3 = _local3.m_next;
if (m_destructionListener){
m_destructionListener.SayGoodbyeShape(_local5);
};
_local5.DestroyProxy(m_broadPhase);
b2Shape.Destroy(_local5, m_blockAllocator);
};
if (_arg1.m_prev){
_arg1.m_prev.m_next = _arg1.m_next;
};
if (_arg1.m_next){
_arg1.m_next.m_prev = _arg1.m_prev;
};
if (_arg1 == m_bodyList){
m_bodyList = _arg1.m_next;
};
m_bodyCount--;
}
public function DrawShape(_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.GetLocalPosition());
_local8 = _local6.GetRadius();
_local9 = _arg2.R.col1;
m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3);
if (_arg4){
m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5);
};
break;
case b2Shape.e_polygonShape:
_local11 = (_arg1 as b2PolygonShape);
_local12 = _local11.GetVertexCount();
_local13 = _local11.GetVertices();
_local14 = new Array(b2Settings.b2_maxPolygonVertices);
_local10 = 0;
while (_local10 < _local12) {
_local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]);
_local10++;
};
m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3);
if (_arg4){
_local15 = _local11.GetCoreVertices();
_local10 = 0;
while (_local10 < _local12) {
_local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]);
_local10++;
};
m_debugDraw.DrawPolygon(_local14, _local12, _local5);
};
break;
};
}
public function 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_stackAllocator, m_contactListener);
_local2 = m_bodyList;
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 = m_bodyList;
while (_local8) {
if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){
} else {
if (_local8.IsStatic()){
} else {
_local3.Clear();
_local9 = 0;
var _temp1 = _local9;
_local9 = (_local9 + 1);
var _local15 = _temp1;
_local7[_local15] = _local8;
_local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag);
while (_local9 > 0) {
--_local9;
_local2 = _local7[_local9];
_local3.AddBody(_local2);
_local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag));
if (_local2.IsStatic()){
} else {
_local12 = _local2.m_contactList;
while (_local12) {
if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){
} else {
if (_local12.contact.GetManifoldCount() == 0){
} else {
_local3.AddContact(_local12.contact);
_local12.contact.m_flags = (_local12.contact.m_flags | b2Contact.e_islandFlag);
_local11 = _local12.other;
if ((_local11.m_flags & b2Body.e_islandFlag)){
} else {
var _temp2 = _local9;
_local9 = (_local9 + 1);
var _local16 = _temp2;
_local7[_local16] = _local11;
_local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag);
};
};
};
_local12 = _local12.next;
};
_local13 = _local2.m_jointList;
while (_local13) {
if (_local13.joint.m_islandFlag == true){
} else {
_local3.AddJoint(_local13.joint);
_local13.joint.m_islandFlag = true;
_local11 = _local13.other;
if ((_local11.m_flags & b2Body.e_islandFlag)){
} else {
var _temp3 = _local9;
_local9 = (_local9 + 1);
_local16 = _temp3;
_local7[_local16] = _local11;
_local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag);
};
};
_local13 = _local13.next;
};
};
};
_local3.Solve(_arg1, m_gravity, (s_enablePositionCorrection > 0), m_allowSleep);
m_positionIterationCount = Math.max(m_positionIterationCount, _local3.m_positionIterationCount);
_local10 = 0;
while (_local10 < _local3.m_bodyCount) {
_local2 = _local3.m_bodies[_local10];
if (_local2.IsStatic()){
_local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag));
};
_local10++;
};
};
};
_local8 = _local8.m_next;
};
_local2 = m_bodyList;
while (_local2) {
if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){
} else {
if (_local2.IsStatic()){
} else {
_local14 = _local2.SynchronizeShapes();
if ((((_local14 == false)) && (!((m_boundaryListener == null))))){
m_boundaryListener.Violation(_local2);
};
};
};
_local2 = _local2.GetNext();
};
m_broadPhase.Commit();
}
public function GetGroundBody():b2Body{
return (m_groundBody);
}
public function Query(_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] as b2Shape);
_local6++;
};
return (_local5);
}
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_stackAllocator, m_contactListener);
_local9 = m_bodyCount;
_local10 = new Array(_local9);
_local2 = m_bodyList;
while (_local2) {
_local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag));
_local2.m_sweep.t0 = 0;
_local2 = _local2.m_next;
};
_local11 = m_contactList;
while (_local11) {
_local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag)));
_local11 = _local11.m_next;
};
while (true) {
_local12 = null;
_local13 = 1;
_local11 = m_contactList;
for (;_local11;(_local11 = _local11.m_next)) {
if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){
} else {
_local18 = 1;
if ((_local11.m_flags & b2Contact.e_toiFlag)){
_local18 = _local11.m_toi;
} else {
_local3 = _local11.GetShape1();
_local4 = _local11.GetShape2();
_local5 = _local3.GetBody();
_local6 = _local4.GetBody();
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 = Math.min((((1 - _local18) * _local19) + _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.GetShape1();
_local4 = _local12.GetShape2();
_local5 = _local3.GetBody();
_local6 = _local4.GetBody();
_local5.Advance(_local13);
_local6.Advance(_local13);
_local12.Update(m_contactListener);
_local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag));
if (_local12.GetManifoldCount() == 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.GetManifoldCount() == 0){
} else {
_local8.AddContact(_local7.contact);
_local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag);
_local20 = _local7.other;
if ((_local20.m_flags & b2Body.e_islandFlag)){
} else {
if (_local20.IsStatic() == false){
_local20.Advance(_local13);
_local20.WakeUp();
};
var _temp2 = _local15;
_local15 = (_local15 + 1);
var _local23 = _temp2;
_local10[_local23] = _local20;
_local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag);
};
};
};
};
_local7 = _local7.next;
};
};
};
_local16 = new b2TimeStep();
_local16.dt = ((1 - _local13) * _arg1.dt);
_local16.inv_dt = (1 / _local16.dt);
_local16.maxIterations = _arg1.maxIterations;
_local8.SolveTOI(_local16);
_local17 = 0;
while (_local17 < _local8.m_bodyCount) {
_local2 = _local8.m_bodies[_local17];
_local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag));
if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){
} else {
if (_local2.IsStatic()){
} else {
_local21 = _local2.SynchronizeShapes();
if ((((_local21 == false)) && (!((m_boundaryListener == null))))){
m_boundaryListener.Violation(_local2);
};
_local7 = _local2.m_contactList;
while (_local7) {
_local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag));
_local7 = _local7.next;
};
};
};
_local17++;
};
_local17 = 0;
while (_local17 < _local8.m_contactCount) {
_local11 = _local8.m_contacts[_local17];
_local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag)));
_local17++;
};
m_broadPhase.Commit();
};
};
}
public function GetJointList():b2Joint{
return (m_jointList);
}
public function GetBodyList():b2Body{
return (m_bodyList);
}
public function CreateDynamicBody(_arg1:b2BodyDef):b2Body{
var _local2:b2Body;
if (m_lock == true){
return (null);
};
_local2 = new b2Body(_arg1, b2Body.e_dynamicType, this);
_local2.m_prev = null;
_local2.m_next = m_bodyList;
if (m_bodyList){
m_bodyList.m_prev = _local2;
};
m_bodyList = _local2;
m_bodyCount++;
return (_local2);
}
public function CreateJoint(_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.ResetProxy(m_broadPhase, _local3.m_xf);
_local4 = _local4.m_next;
};
};
return (_local2);
}
public function DestroyJoint(_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.ResetProxy(m_broadPhase, _local5.m_xf);
_local6 = _local6.m_next;
};
};
}
public function SetFilter(_arg1:b2ContactFilter):void{
m_contactFilter = _arg1;
}
public function SetBoundaryListener(_arg1:b2BoundaryListener):void{
m_boundaryListener = _arg1;
}
public function SetDestructionListener(_arg1:b2DestructionListener):void{
m_destructionListener = _arg1;
}
public function CreateStaticBody(_arg1:b2BodyDef):b2Body{
var _local2:b2Body;
if (m_lock == true){
return (null);
};
_local2 = new b2Body(_arg1, b2Body.e_staticType, this);
_local2.m_prev = null;
_local2.m_next = m_bodyList;
if (m_bodyList){
m_bodyList.m_prev = _local2;
};
m_bodyList = _local2;
m_bodyCount++;
return (_local2);
}
public function 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;
};
m_contactManager.Collide();
if (_local3.dt > 0){
Solve(_local3);
};
if (((s_enableTOI) && ((_local3.dt > 0)))){
SolveTOI(_local3);
};
DrawDebugData();
m_lock = false;
}
}
}//package Box2D.Dynamics
Section 93
//AdLoader (CPMStar.AdLoader)
package CPMStar {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.system.*;
public class AdLoader extends Sprite {
private var contentspotid:String;
private var cpmstarLoader:Loader;
public function AdLoader(_arg1:String){
this.contentspotid = _arg1;
addEventListener(Event.ADDED, addedHandler);
}
private function addedHandler(_arg1:Event):void{
var _local2:String;
var _local3:DisplayObjectContainer;
removeEventListener(Event.ADDED, addedHandler);
Security.allowDomain("server.cpmstar.com");
_local2 = "http://server.cpmstar.com/adviewas3.swf";
_local3 = parent;
cpmstarLoader = new Loader();
cpmstarLoader.contentLoaderInfo.addEventListener(Event.INIT, dispatchHandler);
cpmstarLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, dispatchHandler);
cpmstarLoader.load(new URLRequest(((_local2 + "?contentspotid=") + contentspotid)));
addChild(cpmstarLoader);
}
private function dispatchHandler(_arg1:Event):void{
dispatchEvent(_arg1);
}
}
}//package CPMStar
Section 94
//level1 (levelsp2.level1)
package levelsp2 {
public class level1 extends levClass {
public static var param2 = 1;
}
}//package levelsp2
Section 95
//level10 (levelsp2.level10)
package levelsp2 {
public class level10 extends levClass {
public static var param2 = 2;
}
}//package levelsp2
Section 96
//level11 (levelsp2.level11)
package levelsp2 {
public class level11 extends levClass {
public static var param2 = 3;
}
}//package levelsp2
Section 97
//level12 (levelsp2.level12)
package levelsp2 {
public class level12 extends levClass {
public static var param2 = 0;
}
}//package levelsp2
Section 98
//level13 (levelsp2.level13)
package levelsp2 {
public class level13 extends levClass {
public static var param2 = 5;
}
}//package levelsp2
Section 99
//level14 (levelsp2.level14)
package levelsp2 {
public class level14 extends levClass {
public static var param2 = 3;
}
}//package levelsp2
Section 100
//level15 (levelsp2.level15)
package levelsp2 {
public class level15 extends levClass {
public static var param2 = 6;
}
}//package levelsp2
Section 101
//level16 (levelsp2.level16)
package levelsp2 {
public class level16 extends levClass {
public static var param2 = 4;
}
}//package levelsp2
Section 102
//level17 (levelsp2.level17)
package levelsp2 {
public class level17 extends levClass {
public static var param2 = 5;
}
}//package levelsp2
Section 103
//level18 (levelsp2.level18)
package levelsp2 {
public class level18 extends levClass {
public static var param2 = 0;
}
}//package levelsp2
Section 104
//level19 (levelsp2.level19)
package levelsp2 {
public class level19 extends levClass {
public static var param2 = 4;
}
}//package levelsp2
Section 105
//level2 (levelsp2.level2)
package levelsp2 {
public class level2 extends levClass {
public static var param2 = 2;
}
}//package levelsp2
Section 106
//level20 (levelsp2.level20)
package levelsp2 {
public class level20 extends levClass {
public static var param2 = 6;
}
}//package levelsp2
Section 107
//level21 (levelsp2.level21)
package levelsp2 {
public class level21 extends levClass {
public static var param2 = 3;
}
}//package levelsp2
Section 108
//level22 (levelsp2.level22)
package levelsp2 {
public class level22 extends levClass {
public static var param2 = 1;
}
}//package levelsp2
Section 109
//level23 (levelsp2.level23)
package levelsp2 {
public class level23 extends levClass {
public static var param2 = 3;
}
}//package levelsp2
Section 110
//level24 (levelsp2.level24)
package levelsp2 {
public class level24 extends levClass {
public static var param2 = 0;
}
}//package levelsp2
Section 111
//level25 (levelsp2.level25)
package levelsp2 {
public class level25 extends levClass {
public static var param2 = 3;
}
}//package levelsp2
Section 112
//level26 (levelsp2.level26)
package levelsp2 {
public class level26 extends levClass {
public static var param2 = 4;
}
}//package levelsp2
Section 113
//level27 (levelsp2.level27)
package levelsp2 {
public class level27 extends levClass {
public static var param2 = 4;
}
}//package levelsp2
Section 114
//level28 (levelsp2.level28)
package levelsp2 {
public class level28 extends levClass {
public static var param2 = 3;
}
}//package levelsp2
Section 115
//level29 (levelsp2.level29)
package levelsp2 {
public class level29 extends levClass {
public static var param2 = 5;
}
}//package levelsp2
Section 116
//level3 (levelsp2.level3)
package levelsp2 {
public class level3 extends levClass {
public static var param2 = 2;
}
}//package levelsp2
Section 117
//level30 (levelsp2.level30)
package levelsp2 {
public class level30 extends levClass {
public static var param2 = 9;
}
}//package levelsp2
Section 118
//level4 (levelsp2.level4)
package levelsp2 {
public class level4 extends levClass {
public static var param2 = 3;
}
}//package levelsp2
Section 119
//level5 (levelsp2.level5)
package levelsp2 {
public class level5 extends levClass {
public static var param2 = 3;
}
}//package levelsp2
Section 120
//level6 (levelsp2.level6)
package levelsp2 {
public class level6 extends levClass {
public static var param2 = 0;
}
}//package levelsp2
Section 121
//level7 (levelsp2.level7)
package levelsp2 {
public class level7 extends levClass {
public static var param2 = 2;
}
}//package levelsp2
Section 122
//level8 (levelsp2.level8)
package levelsp2 {
public class level8 extends levClass {
public static var param2 = 3;
}
}//package levelsp2
Section 123
//level9 (levelsp2.level9)
package levelsp2 {
public class level9 extends levClass {
public static var param2 = 2;
}
}//package levelsp2
Section 124
//Log (Playtomic.Log)
package Playtomic {
import flash.events.*;
import flash.net.*;
import flash.utils.*;
import flash.system.*;
import flash.external.*;
public final class Log {
private static const PingR:Timer = new Timer(30000);
private static const PingF:Timer = new Timer(60000);
private static var LevelAverages:Array = new Array();
private static var Customs:Array = new Array();
public static var Cookie:SharedObject;
public static var GUID:String = "";
private static var LevelRangeds:Array = new Array();
private static var Plays:int = 0;
public static var Enabled:Boolean = false;
private static var Pings:int = 0;
private static var FrozenQueue:Array = new Array();
public static var SourceUrl:String;
private static var HighestGoal:int = 0;
private static var FirstPing:Boolean = true;
private static var Frozen:Boolean = false;
public static var BaseUrl:String;
public static var Request:LogRequest;
public static var Queue:Boolean = true;
private static var LevelCounters:Array = new Array();
public static var SWFID:int = 0;
public static function Link(_arg1:String, _arg2:String, _arg3:String, _arg4:int, _arg5:int, _arg6:int):void{
if (!Enabled){
return;
};
Send(((((((((((("l/" + Clean(_arg2)) + "/") + Clean(_arg3)) + "/") + Clean(_arg1)) + "/") + _arg4) + "/") + _arg5) + "/") + _arg6));
}
public static function LevelAverageMetric(_arg1:String, _arg2, _arg3:int, _arg4:Boolean=false):void{
if (!Enabled){
return;
};
if (_arg4){
if (LevelAverages.indexOf(_arg1) > -1){
return;
};
LevelAverages.push(_arg1);
};
Send(((((("la/" + Clean(_arg1)) + "/") + Clean(_arg2)) + "/") + _arg3));
}
private static function Send(_arg1:String, _arg2:Boolean=false):void{
if (Frozen){
FrozenQueue.push(_arg1);
return;
};
Request.Queue(_arg1);
if (((((Request.Ready) || (_arg2))) || (!(Queue)))){
Request.Send();
Request = LogRequest.Create();
};
}
public static function CustomMetric(_arg1:String, _arg2:String=null, _arg3:Boolean=false):void{
if (!Enabled){
return;
};
if (_arg2 == null){
_arg2 = "";
};
if (_arg3){
if (Customs.indexOf(_arg1) > -1){
return;
};
Customs.push(_arg1);
};
Send(((("c/" + Clean(_arg1)) + "/") + Clean(_arg2)));
}
private static function Clean(_arg1:String):String{
while (_arg1.indexOf("/") > -1) {
_arg1 = _arg1.replace("/", "\\");
};
while (_arg1.indexOf("~") > -1) {
_arg1 = _arg1.replace("~", "-");
};
return (escape(_arg1));
}
public static function UnFreeze():void{
Frozen = false;
Request.MassQueue(FrozenQueue);
}
private static function GetCookie(_arg1:String):int{
if (Cookie.data[_arg1] == undefined){
return (0);
};
return (int(Cookie.data[_arg1]));
}
public static function View(_arg1:int=0, _arg2:String="", _arg3:String=""):void{
var _local4:int;
if (SWFID > 0){
return;
};
SWFID = _arg1;
GUID = _arg2;
Enabled = true;
if ((((SWFID == 0)) || ((GUID == "")))){
Enabled = false;
return;
};
if (((((!((_arg3.indexOf("http://") == 0))) && (!((Security.sandboxType == "localWithNetwork"))))) && (!((Security.sandboxType == "localTrusted"))))){
Enabled = false;
return;
};
SourceUrl = GetUrl(_arg3);
if ((((((SourceUrl == null)) || ((SourceUrl == "")))) || ((SourceUrl.indexOf("https://") == 0)))){
Enabled = false;
return;
};
Security.allowDomain((("http://g" + Log.GUID) + ".api.playtomic.com/"));
Security.allowInsecureDomain((("http://g" + Log.GUID) + ".api.playtomic.com/"));
Security.loadPolicyFile((("http://g" + Log.GUID) + ".api.playtomic.com/crossdomain.xml"));
Request = LogRequest.Create();
Cookie = SharedObject.getLocal("playtomic");
_local4 = GetCookie("views");
_local4++;
SaveCookie("views", _local4);
Send(("v/" + _local4), true);
PingF.addEventListener(TimerEvent.TIMER, PingServer);
PingF.start();
}
public static function Freeze():void{
Frozen = true;
}
public static function LevelCounterMetric(_arg1:String, _arg2, _arg3:Boolean=false):void{
if (!Enabled){
return;
};
if (_arg3){
if (LevelCounters.indexOf(_arg1) > -1){
return;
};
LevelCounters.push(_arg1);
};
Send(((("lc/" + Clean(_arg1)) + "/") + Clean(_arg2)));
}
public static function Play():void{
if (!Enabled){
return;
};
LevelCounters = new Array();
LevelAverages = new Array();
LevelRangeds = new Array();
Plays++;
Send(("p/" + Plays));
}
private static function GetUrl(_arg1:String):String{
var url:String;
var defaulturl = _arg1;
if (ExternalInterface.available){
try {
url = String(ExternalInterface.call("window.location.href.toString"));
} catch(s:Error) {
url = defaulturl;
};
} else {
if ((((defaulturl.indexOf("http://") == 0)) || ((defaulturl.indexOf("https://") == 0)))){
url = defaulturl;
};
};
if ((((((url == null)) || ((url == "")))) || ((url == "null")))){
if ((((Security.sandboxType == "localWithNetwork")) || ((Security.sandboxType == "localTrusted")))){
url = "http://local-testing/";
} else {
url = null;
};
};
return (escape(url));
}
public static function LevelRangedMetric(_arg1:String, _arg2, _arg3:int, _arg4:Boolean=false):void{
if (!Enabled){
return;
};
if (_arg4){
if (LevelRangeds.indexOf(_arg1) > -1){
return;
};
LevelRangeds.push(_arg1);
};
Send(((((("lr/" + Clean(_arg1)) + "/") + Clean(_arg2)) + "/") + _arg3));
}
private static function SaveCookie(_arg1:String, _arg2:int):void{
var _local3:SharedObject;
_local3 = SharedObject.getLocal("swfstats");
_local3.data[_arg1] = _arg2.toString();
_local3.flush();
}
public static function ForceSend():void{
if (!Enabled){
return;
};
Request.Send();
Request = LogRequest.Create();
if (FrozenQueue.length > 0){
Request.MassQueue(FrozenQueue);
};
}
private static function PingServer(... _args):void{
if (!Enabled){
return;
};
Pings++;
Send(((("t/" + (FirstPing) ? "y" : "n") + "/") + Pings), true);
if (FirstPing){
PingF.stop();
PingR.addEventListener(TimerEvent.TIMER, PingServer);
PingR.start();
FirstPing = false;
};
}
}
}//package Playtomic
Section 125
//LogRequest (Playtomic.LogRequest)
package Playtomic {
import flash.events.*;
import flash.net.*;
public final class LogRequest {
public var Ready:Boolean;// = false
private var Data:String;// = ""
private var Target:URLRequest;
private var Sender:URLLoader;
private var BaseUrl:String;
private static var Pool:Array = new Array();
private static var Failed:int = 0;
public function LogRequest(){
Data = "";
Ready = false;
super();
this.Sender = new URLLoader();
this.Sender.addEventListener(Event.COMPLETE, this.Dispose, false, 0, true);
this.Sender.addEventListener(IOErrorEvent.IO_ERROR, this.IOErrorHandler, false, 0, true);
this.Sender.addEventListener(HTTPStatusEvent.HTTP_STATUS, this.StatusChange, false, 0, true);
this.Sender.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.SecurityErrorHandler, false, 0, true);
this.Target = new URLRequest();
this.BaseUrl = ((("http://g" + Log.GUID) + ".api.playtomic.com/tracker/q.aspx?swfid=") + Log.SWFID);
}
public function Send():void{
this.Target.url = (((((((this.BaseUrl + "&q=") + this.Data) + "&url=") + Log.SourceUrl) + "&") + Math.random()) + "z");
this.Sender.load(this.Target);
}
private function SecurityErrorHandler(_arg1:SecurityErrorEvent):void{
}
private function IOErrorHandler(_arg1:IOErrorEvent):void{
Failed++;
}
public function Queue(_arg1:String):void{
if (Failed > 3){
return;
};
this.Data = (this.Data + (((this.Data == "")) ? "" : "~" + _arg1));
if (this.Data.length > 300){
this.Ready = true;
};
}
private function StatusChange(_arg1:HTTPStatusEvent):void{
}
public function MassQueue(_arg1:Array):void{
var _local2:int;
var _local3:LogRequest;
if (Failed > 3){
return;
};
_local2 = (_arg1.length - 1);
while (_local2 > -1) {
this.Data = (this.Data + (((this.Data == "")) ? "" : "~" + _arg1[_local2]));
_arg1.splice(_local2, 1);
if (this.Data.length > 300){
_local3 = Create();
_local3.MassQueue(_arg1);
this.Ready = true;
this.Send();
return;
};
_local2--;
};
Log.Request = this;
}
public function Dispose(_arg1:Event=null):void{
Pool.push(this);
}
public static function Create():LogRequest{
var _local1:LogRequest;
_local1 = ((Pool.length > 0)) ? (Pool.pop() as LogRequest) : new (LogRequest);
_local1.Data = "";
_local1.Ready = false;
return (_local1);
}
}
}//package Playtomic
Section 126
//ambientgameplaywave (ambientgameplaywave)
package {
import flash.media.*;
public dynamic class ambientgameplaywave extends Sound {
}
}//package
Section 127
//AnotherClass (AnotherClass)
package {
public class AnotherClass {
}
}//package
Section 128
//arm (arm)
package {
import flash.display.*;
public dynamic class arm extends MovieClip {
public var brarm:ball_1;
public var snd;
public var vstr;
public function arm(){
addFrameScript(27, frame28, 54, frame55);
}
function frame28(){
vstr = new gamepoedanievmogile();
snd = new theSound(0, 0.5, vstr);
}
function frame55(){
stop();
}
}
}//package
Section 129
//awedsw (awedsw)
package {
import flash.display.*;
public dynamic class awedsw extends SimpleButton {
}
}//package
Section 130
//ball_1 (ball_1)
package {
import flash.display.*;
public dynamic class ball_1 extends MovieClip {
public function ball_1(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 131
//begunok (begunok)
package {
import flash.display.*;
public dynamic class begunok extends MovieClip {
public function begunok(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 132
//bel (bel)
package {
import flash.display.*;
public dynamic class bel extends MovieClip {
}
}//package
Section 133
//blood1 (blood1)
package {
import flash.display.*;
public dynamic class blood1 extends MovieClip {
public function blood1(){
addFrameScript(5, frame6);
}
function frame6(){
stop();
}
}
}//package
Section 134
//blood2 (blood2)
package {
import flash.display.*;
public dynamic class blood2 extends MovieClip {
public function blood2(){
addFrameScript(5, frame6);
}
function frame6(){
stop();
}
}
}//package
Section 135
//blood3 (blood3)
package {
import flash.display.*;
public dynamic class blood3 extends MovieClip {
public function blood3(){
addFrameScript(5, frame6);
}
function frame6(){
stop();
}
}
}//package
Section 136
//blood4 (blood4)
package {
import flash.display.*;
public dynamic class blood4 extends MovieClip {
public function blood4(){
addFrameScript(5, frame6);
}
function frame6(){
stop();
}
}
}//package
Section 137
//brainBoom (brainBoom)
package {
import flash.display.*;
public dynamic class brainBoom extends MovieClip {
public function brainBoom(){
addFrameScript(12, frame13);
}
function frame13(){
stop();
}
}
}//package
Section 138
//brainZombs (brainZombs)
package {
import flash.display.*;
public dynamic class brainZombs extends MovieClip {
public function brainZombs(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package
Section 139
//btnLevels (btnLevels)
package {
import flash.display.*;
public dynamic class btnLevels extends SimpleButton {
}
}//package
Section 140
//btnmenus (btnmenus)
package {
import flash.display.*;
public dynamic class btnmenus extends SimpleButton {
}
}//package
Section 141
//btnMusic (btnMusic)
package {
import flash.display.*;
public dynamic class btnMusic extends SimpleButton {
}
}//package
Section 142
//btnReset (btnReset)
package {
import flash.display.*;
public dynamic class btnReset extends SimpleButton {
}
}//package
Section 143
//btnSolutions (btnSolutions)
package {
import flash.display.*;
public dynamic class btnSolutions extends SimpleButton {
}
}//package
Section 144
//btnsound (btnsound)
package {
import flash.display.*;
public dynamic class btnsound extends SimpleButton {
}
}//package
Section 145
//btnstart (btnstart)
package {
import flash.display.*;
public dynamic class btnstart extends SimpleButton {
}
}//package
Section 146
//btskip (btskip)
package {
import flash.display.*;
public dynamic class btskip extends SimpleButton {
}
}//package
Section 147
//bulClass (bulClass)
package {
import flash.display.*;
public dynamic class bulClass extends MovieClip {
public function bulClass(){
addFrameScript(40, frame41);
}
function frame41(){
stop();
}
}
}//package
Section 148
//cepeme (cepeme)
package {
import flash.display.*;
public dynamic class cepeme extends MovieClip {
}
}//package
Section 149
//coin (coin)
package {
import flash.display.*;
public dynamic class coin extends MovieClip {
public function coin(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package
Section 150
//coinsWin (coinsWin)
package {
import flash.display.*;
public dynamic class coinsWin extends MovieClip {
public function coinsWin(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 151
//cred (cred)
package {
import flash.display.*;
public dynamic class cred extends MovieClip {
public var adrs1:SimpleButton;
public var adrs2:SimpleButton;
public var zakr:thekrest;
public function cred(){
addFrameScript(0, frame1, 14, frame15);
}
function frame15(){
stop();
}
function frame1(){
stop();
}
}
}//package
Section 152
//cursorEmpty (cursorEmpty)
package {
import flash.display.*;
public class cursorEmpty extends cursorMoove {
public var pusk:thepusks;
public var zaGran:Boolean;
public var naFakele:Boolean;
private var addSpr:Sprite;
public var vIgre:Boolean;
private var newPodskazka:cursorMoove1;
private var skokaUze;
public var vWine:Boolean;
public var kasaet:Boolean;
public function cursorEmpty(){
addFrameScript(0, frame1);
}
public function removePodskazka(){
if (newPodskazka != null){
addSpr.removeChild(newPodskazka);
newPodskazka = null;
};
}
public function vis(){
this.gotoAndStop(2);
}
override public function changeVid(_arg1, _arg2){
removePodskazka();
if (zaGran == false){
if ((_arg2 is picZonaStrel)){
if (_arg1 != 3){
this.gotoAndStop(3);
};
} else {
if (naFakele == true){
this.gotoAndStop(5);
} else {
if ((((((skokaUze == Main3.kolvoBrain)) && (!((_arg1 == 2))))) && ((kasaet == false)))){
this.gotoAndStop(2);
} else {
if (((((!((skokaUze == Main3.kolvoBrain))) && (!((_arg1 == 4))))) && ((kasaet == false)))){
this.gotoAndStop(4);
};
};
};
};
};
}
function frame1(){
stop();
}
override public function gameKlik1(_arg1){
if ((((_arg1 == 1)) && ((skokaUze == Main3.kolvoBrain)))){
this.gotoAndStop(2);
};
}
public function getBrains(_arg1){
skokaUze = _arg1;
}
public function addPodskazka(){
if (newPodskazka == null){
newPodskazka = new podskazkaClass();
newPodskazka.x = (this.x - (Main3.DLINA / 2));
newPodskazka.y = (this.y - (Main3.VYSOTA / 2));
addSpr.addChild(newPodskazka);
};
}
public function getSprites(_arg1){
addSpr = _arg1;
}
override public function update(){
super.update();
if (newPodskazka != null){
newPodskazka.update();
};
if ((((((this.y > 439)) || ((((this.y < 41)) && ((this.x < 90)))))) || ((((this.y < 41)) && ((this.x > (550 - Main3.otstup))))))){
if ((((zaGran == false)) && ((vWine == false)))){
removePodskazka();
zaGran = true;
this.gotoAndStop(2);
};
} else {
zaGran = false;
};
}
override public function changeVidBack(){
if (skokaUze == Main3.kolvoBrain){
if (this.currentFrame != 2){
this.gotoAndStop(2);
};
} else {
if (this.currentFrame != 1){
this.gotoAndStop(1);
};
};
}
public function invis(){
this.gotoAndStop(6);
}
}
}//package
Section 153
//cursorForMenu (cursorForMenu)
package {
import flash.display.*;
public dynamic class cursorForMenu extends MovieClip {
}
}//package
Section 154
//cursorMoove (cursorMoove)
package {
import flash.display.*;
import flash.ui.*;
public class cursorMoove extends MovieClip {
public function changeVid(_arg1, _arg2){
}
public function gameKlik1(_arg1){
}
public function update(){
if ((((this.visible == true)) && (((((((((stage.mouseX - (Main3.DLINA / 2)) < (-(Main3.DLINA) / 2))) || (((stage.mouseX - (Main3.DLINA / 2)) > (Main3.DLINA / 2))))) || (((stage.mouseY - (Main3.VYSOTA / 2)) < (-(Main3.VYSOTA) / 2))))) || (((stage.mouseY - (Main3.VYSOTA / 2)) > (Main3.VYSOTA / 2))))))){
Mouse.show();
this.visible = false;
};
if (((((((((stage.mouseX - (Main3.DLINA / 2)) > (-(Main3.DLINA) / 2))) && (((stage.mouseX - (Main3.DLINA / 2)) < (Main3.DLINA / 2))))) && (((stage.mouseY - (Main3.VYSOTA / 2)) > (-(Main3.VYSOTA) / 2))))) && (((stage.mouseY - (Main3.VYSOTA / 2)) < (Main3.VYSOTA / 2))))){
if (this.visible == false){
Mouse.hide();
this.visible = true;
};
if (((!((this.x == (stage.mouseX - (Main3.DLINA / 2))))) || (!((this.y == (stage.mouseY - (Main3.VYSOTA / 2))))))){
this.x = stage.mouseX;
this.y = stage.mouseY;
};
};
}
public function changeVidBack(){
}
}
}//package
Section 155
//cursorMoove1 (cursorMoove1)
package {
import flash.display.*;
import flash.ui.*;
public class cursorMoove1 extends MovieClip {
public function changeVid(_arg1, _arg2){
}
public function gameKlik1(_arg1){
}
public function update(){
if ((((this.visible == true)) && (((((((((stage.mouseX - (Main3.DLINA / 2)) < (-(Main3.DLINA) / 2))) || (((stage.mouseX - (Main3.DLINA / 2)) > (Main3.DLINA / 2))))) || (((stage.mouseY - (Main3.VYSOTA / 2)) < (-(Main3.VYSOTA) / 2))))) || (((stage.mouseY - (Main3.VYSOTA / 2)) > (Main3.VYSOTA / 2))))))){
Mouse.show();
this.visible = false;
};
if (((((((((stage.mouseX - (Main3.DLINA / 2)) > (-(Main3.DLINA) / 2))) && (((stage.mouseX - (Main3.DLINA / 2)) < (Main3.DLINA / 2))))) && (((stage.mouseY - (Main3.VYSOTA / 2)) > (-(Main3.VYSOTA) / 2))))) && (((stage.mouseY - (Main3.VYSOTA / 2)) < (Main3.VYSOTA / 2))))){
if (this.visible == false){
Mouse.hide();
this.visible = true;
};
if (((!((this.x == (stage.mouseX - (Main3.DLINA / 2))))) || (!((this.y == (stage.mouseY - (Main3.VYSOTA / 2))))))){
this.x = (stage.mouseX - (Main3.DLINA / 2));
this.y = (stage.mouseY - (Main3.VYSOTA / 2));
};
};
}
public function changeVidBack(){
}
}
}//package
Section 156
//cursorMoove2 (cursorMoove2)
package {
import flash.display.*;
import flash.ui.*;
public class cursorMoove2 extends MovieClip {
public function changeVid(_arg1, _arg2){
}
public function gameKlik1(_arg1){
}
public function update(){
if ((((this.visible == true)) && (((((((((stage.mouseX - (Main3.DLINA / 2)) < (-(Main3.DLINA) / 2))) || (((stage.mouseX - (Main3.DLINA / 2)) > (Main3.DLINA / 2))))) || (((stage.mouseY - (Main3.VYSOTA / 2)) < (-(Main3.VYSOTA) / 2))))) || (((stage.mouseY - (Main3.VYSOTA / 2)) > (Main3.VYSOTA / 2))))))){
Mouse.show();
};
if (((((((((stage.mouseX - (Main3.DLINA / 2)) > (-(Main3.DLINA) / 2))) && (((stage.mouseX - (Main3.DLINA / 2)) < (Main3.DLINA / 2))))) && (((stage.mouseY - (Main3.VYSOTA / 2)) > (-(Main3.VYSOTA) / 2))))) && (((stage.mouseY - (Main3.VYSOTA / 2)) < (Main3.VYSOTA / 2))))){
if (this.visible == false){
Mouse.hide();
};
if (((!((this.x == (stage.mouseX - (Main3.DLINA / 2))))) || (!((this.y == (stage.mouseY - (Main3.VYSOTA / 2))))))){
this.x = (stage.mouseX - (Main3.DLINA / 2));
this.y = (stage.mouseY - (Main3.VYSOTA / 2));
};
};
}
public function changeVidBack(){
}
}
}//package
Section 157
//darkGrom (darkGrom)
package {
import flash.display.*;
public dynamic class darkGrom extends MovieClip {
public var vstr2;
public var vstr3;
public var vstr1;
public var snd1;
public var snd2;
public var snd3;
public function darkGrom(){
addFrameScript(0, frame1, 57, frame58, 162, frame163, 259, frame260, 282, frame283);
}
function frame283(){
gotoAndPlay(2);
}
function frame163(){
vstr2 = new grom2();
snd2 = new theSound(0, 0.5, vstr2);
}
function frame1(){
stop();
}
function frame58(){
vstr1 = new grom1();
snd1 = new theSound(0, 0.5, vstr1);
}
function frame260(){
vstr3 = new grom3();
snd3 = new theSound(0, 0.5, vstr3);
}
}
}//package
Section 158
//darkness (darkness)
package {
import flash.display.*;
public class darkness extends MovieClip {
}
}//package
Section 159
//darkness1 (darkness1)
package {
public class darkness1 extends darkness {
}
}//package
Section 160
//darkness2 (darkness2)
package {
public class darkness2 extends darkness {
}
}//package
Section 161
//darkness3 (darkness3)
package {
public class darkness3 extends darkness {
}
}//package
Section 162
//darks (darks)
package {
import flash.display.*;
public dynamic class darks extends MovieClip {
}
}//package
Section 163
//derevo (derevo)
package {
import flash.display.*;
public dynamic class derevo extends MovieClip {
}
}//package
Section 164
//dop1aa (dop1aa)
package {
import flash.display.*;
public dynamic class dop1aa extends SimpleButton {
}
}//package
Section 165
//drobs (drobs)
package {
import flash.display.*;
public dynamic class drobs extends MovieClip {
public function drobs(){
addFrameScript(7, frame8);
}
function frame8(){
stop();
}
}
}//package
Section 166
//drobs2 (drobs2)
package {
import flash.display.*;
public dynamic class drobs2 extends MovieClip {
public function drobs2(){
addFrameScript(7, frame8);
}
function frame8(){
stop();
}
}
}//package
Section 167
//drobs3 (drobs3)
package {
import flash.display.*;
public dynamic class drobs3 extends MovieClip {
public function drobs3(){
addFrameScript(7, frame8);
}
function frame8(){
stop();
}
}
}//package
Section 168
//dyno1 (dyno1)
package {
public class dyno1 extends phPlankDynam {
}
}//package
Section 169
//dyno10 (dyno10)
package {
public class dyno10 extends phPlankDynam {
}
}//package
Section 170
//dyno11 (dyno11)
package {
public class dyno11 extends phPlankDynam {
}
}//package
Section 171
//dyno12 (dyno12)
package {
public class dyno12 extends phPlankDynam {
}
}//package
Section 172
//dyno13 (dyno13)
package {
public class dyno13 extends phPlankDynam {
}
}//package
Section 173
//dyno14 (dyno14)
package {
public class dyno14 extends phPlankDynam {
}
}//package
Section 174
//dyno15 (dyno15)
package {
public class dyno15 extends phPlankDynam {
}
}//package
Section 175
//dyno2 (dyno2)
package {
public class dyno2 extends phPlankDynam {
}
}//package
Section 176
//dyno3 (dyno3)
package {
public class dyno3 extends phPlankDynam {
}
}//package
Section 177
//dyno4 (dyno4)
package {
public class dyno4 extends phPlankDynam {
}
}//package
Section 178
//dyno5 (dyno5)
package {
public class dyno5 extends phPlankDynam {
}
}//package
Section 179
//dyno6 (dyno6)
package {
public class dyno6 extends phPlankDynam {
}
}//package
Section 180
//dyno7 (dyno7)
package {
public class dyno7 extends phPlankDynam {
}
}//package
Section 181
//dyno8 (dyno8)
package {
public class dyno8 extends phPlankDynam {
}
}//package
Section 182
//dyno9 (dyno9)
package {
public class dyno9 extends phPlankDynam {
}
}//package
Section 183
//dzn (dzn)
package {
import flash.media.*;
public dynamic class dzn extends Sound {
}
}//package
Section 184
//EmbedClip (EmbedClip)
package {
import flash.display.*;
public class EmbedClip extends MovieClip {
public function EmbedClip(){
addFrameScript(0, frame1);
super();
stop();
}
function frame1(){
stop();
}
}
}//package
Section 185
//excel (excel)
package {
import flash.display.*;
public dynamic class excel extends MovieClip {
public var panelka:panelDone;
public function excel(){
addFrameScript(76, frame77);
}
function frame77(){
stop();
}
}
}//package
Section 186
//excellent (excellent)
package {
import flash.media.*;
public dynamic class excellent extends Sound {
}
}//package
Section 187
//ExportSecondFrameExample (ExportSecondFrameExample)
package {
import Playtomic.*;
import flash.events.*;
import flash.display.*;
import flash.net.*;
import CPMStar.*;
import flash.text.*;
import flash.media.*;
public class ExportSecondFrameExample extends MovieClip {
public var toOne:to1;
public var bbb:TextField;
var slSites:Array;
public var zzt:TextField;
private var knopa:SimpleButton;
private var progressBar:MovieClip;
private var adBox:MovieClip;
public var dops:dop1aa;
public static const ENTRY_FRAME:Number = 3;
public static const DOCUMENT_CLASS:String = "Program";
public function ExportSecondFrameExample(){
var _local1:String;
var _local2:String;
var _local3:DisplayObject;
slSites = new Array("notdoppler.com");
super();
stop();
dops.addEventListener(MouseEvent.CLICK, gotosite);
toOne.addEventListener(MouseEvent.CLICK, gotosite1);
_local1 = stage.loaderInfo.url;
if (((search(_local1)) || ((_local1.indexOf("proekt20more.com") > -1)))){
gogogo();
} else {
adBox = new cepeme();
adBox.x = 175;
adBox.y = 115;
addChild(adBox);
_local2 = "4267Q2C5A3564";
_local3 = new AdLoader(_local2);
adBox.addChild(_local3);
gogogo();
};
}
private function checkDomain(_arg1:String):Boolean{
var _local2:String;
var _local3:Number;
var _local4:Number;
var _local5:String;
var _local6:Number;
var _local7:Number;
_local2 = stage.loaderInfo.url;
_local3 = (_local2.indexOf("://") + 3);
_local4 = _local2.indexOf("/", _local3);
_local5 = _local2.substring(_local3, _local4);
_local6 = (_local5.lastIndexOf(".") - 1);
_local7 = (_local5.lastIndexOf(".", _local6) + 1);
_local5 = _local5.substring(_local7, _local5.length);
if (_local5 == _arg1){
return (true);
};
return (false);
}
private function enterFrameHandler(_arg1:Event):void{
if (currentFrame >= _slot1.ENTRY_FRAME){
removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
stop();
gogo();
};
}
function gotosite(_arg1:Event){
var _local2:URLRequest;
var _local3:*;
_local3 = "http://www.notdoppler.com/";
_local2 = new URLRequest(_local3);
navigateToURL(_local2, "_blank");
}
function gotosite6(_arg1:Event){
var _local2:URLRequest;
var _local3:*;
_local3 = "http://www.notdoppler.com/webmasters.php";
_local2 = new URLRequest(_local3);
navigateToURL(_local2, "_blank");
}
function gotosite1(_arg1:Event){
var _local2:URLRequest;
var _local3:*;
_local3 = "http://www.notdoppler.com/allweneedisbrain.php";
_local2 = new URLRequest(_local3);
navigateToURL(_local2, "_blank");
}
function gotosite5(_arg1:Event){
var _local2:URLRequest;
var _local3:*;
_local3 = "http://www.notdoppler.com/allweneedisbrain2.php";
_local2 = new URLRequest(_local3);
navigateToURL(_local2, "_blank");
}
private function progressHandler(_arg1:ProgressEvent):void{
var _local2:uint;
var _local3:uint;
var _local4:*;
_local2 = _arg1.bytesLoaded;
_local3 = _arg1.bytesTotal;
progressBar.gotoAndStop(Math.round(((_local2 / _local3) * 100)));
_local4 = Math.round(((_local2 / _local3) * 100));
zzt.text = (("" + _local4) + "%");
}
function gotosite4(_arg1:Event){
var _local2:*;
var _local3:URLRequest;
_local2 = "mailto:vladg1979@gmail.com";
_local3 = new URLRequest(_local2);
navigateToURL(_local3, "_blank");
}
private function net(){
var _local1:*;
bbb.visible = false;
_local1 = new menuInits();
_local1.y = 1040;
_local1.x = 320;
_local1.no.visible = true;
_local1.webm.visible = true;
_local1.webm1.visible = true;
_local1.webm2.visible = true;
addChild(_local1);
_local1.webm.addEventListener(MouseEvent.CLICK, gotosite4);
_local1.webm1.addEventListener(MouseEvent.CLICK, gotosite5);
_local1.webm2.addEventListener(MouseEvent.CLICK, gotosite6);
stage.frameRate = 0;
gotoAndStop(0);
}
function search(_arg1:String):Boolean{
var _local2:*;
var _local3:*;
_local2 = false;
_local3 = 0;
while (_local3 < slSites.length) {
if (checkDomain(slSites[_local3])){
_local2 = true;
break;
};
_local3++;
};
return (_local2);
}
private function main(_arg1:MouseEvent):void{
var _local2:Class;
var _local3:*;
_local2 = (loaderInfo.applicationDomain.getDefinition(_slot1.DOCUMENT_CLASS) as Class);
_local3 = (new (_local2) as Sprite);
knopa.removeEventListener(MouseEvent.CLICK, main);
dops.removeEventListener(MouseEvent.CLICK, gotosite);
toOne.removeEventListener(MouseEvent.CLICK, gotosite1);
if (adBox != null){
removeChild(adBox);
};
removeChild(knopa);
MochiBot.track(this, "b406ca3d");
Log.View(2366, "289efa81e04a4c5f", root.loaderInfo.loaderURL);
addChild(_local3);
}
private function gogogo(){
progressBar = new preload();
progressBar.scaleX = 0.7;
progressBar.scaleY = 0.7;
progressBar.x = 100;
progressBar.y = 85;
addChild(progressBar);
progressBar.gotoAndStop(1);
loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
loaderInfo.addEventListener(Event.COMPLETE, completeHandler);
}
private function completeHandler(_arg1:Event):void{
play();
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
function gogo(){
zzt.visible = false;
bbb.visible = false;
knopa = new prPlay();
knopa.x = 310;
knopa.y = (zzt.y + (zzt.height / 4));
removeChild(progressBar);
addChild(knopa);
knopa.addEventListener(MouseEvent.CLICK, main);
}
}
}//package
Section 188
//Eye2 (Eye2)
package {
import flash.display.*;
public dynamic class Eye2 extends MovieClip {
}
}//package
Section 189
//Eye9 (Eye9)
package {
import flash.display.*;
public dynamic class Eye9 extends MovieClip {
}
}//package
Section 190
//eyeCursor (eyeCursor)
package {
import flash.display.*;
public dynamic class eyeCursor extends MovieClip {
}
}//package
Section 191
//f090 (f090)
package {
import flash.display.*;
public dynamic class f090 extends MovieClip {
}
}//package
Section 192
//f65654646 (f65654646)
package {
import flash.display.*;
public dynamic class f65654646 extends MovieClip {
}
}//package
Section 193
//fon5s (fon5s)
package {
import flash.display.*;
public dynamic class fon5s extends BitmapData {
public function fon5s(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 194
//fon6s (fon6s)
package {
import flash.display.*;
public dynamic class fon6s extends BitmapData {
public function fon6s(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 195
//fons (fons)
package {
import flash.display.*;
public dynamic class fons extends MovieClip {
}
}//package
Section 196
//gamebloodaftershoot (gamebloodaftershoot)
package {
import flash.media.*;
public dynamic class gamebloodaftershoot extends Sound {
}
}//package
Section 197
//gamebulkibig (gamebulkibig)
package {
import flash.media.*;
public dynamic class gamebulkibig extends Sound {
}
}//package
Section 198
//gamebulkibrrrrrr (gamebulkibrrrrrr)
package {
import flash.media.*;
public dynamic class gamebulkibrrrrrr extends Sound {
}
}//package
Section 199
//gamedavkamozga (gamedavkamozga)
package {
import flash.media.*;
public dynamic class gamedavkamozga extends Sound {
}
}//package
Section 200
//gamedavkarazletanie (gamedavkarazletanie)
package {
import flash.media.*;
public dynamic class gamedavkarazletanie extends Sound {
}
}//package
Section 201
//gamedavkasharom1 (gamedavkasharom1)
package {
import flash.media.*;
public dynamic class gamedavkasharom1 extends Sound {
}
}//package
Section 202
//gamefanfary (gamefanfary)
package {
import flash.media.*;
public dynamic class gamefanfary extends Sound {
}
}//package
Section 203
//gamepoedanievmogile (gamepoedanievmogile)
package {
import flash.media.*;
public dynamic class gamepoedanievmogile extends Sound {
}
}//package
Section 204
//gameshoot (gameshoot)
package {
import flash.media.*;
public dynamic class gameshoot extends Sound {
}
}//package
Section 205
//gamewelldone (gamewelldone)
package {
import flash.media.*;
public dynamic class gamewelldone extends Sound {
}
}//package
Section 206
//gamevzryv (gamevzryv)
package {
import flash.media.*;
public dynamic class gamevzryv extends Sound {
}
}//package
Section 207
//gamezombieating1 (gamezombieating1)
package {
import flash.media.*;
public dynamic class gamezombieating1 extends Sound {
}
}//package
Section 208
//gamezombieating2 (gamezombieating2)
package {
import flash.media.*;
public dynamic class gamezombieating2 extends Sound {
}
}//package
Section 209
//grom1 (grom1)
package {
import flash.media.*;
public dynamic class grom1 extends Sound {
}
}//package
Section 210
//grom2 (grom2)
package {
import flash.media.*;
public dynamic class grom2 extends Sound {
}
}//package
Section 211
//grom3 (grom3)
package {
import flash.media.*;
public dynamic class grom3 extends Sound {
}
}//package
Section 212
//helps (helps)
package {
import flash.display.*;
public class helps extends MovieClip {
public var helping:podsk;
private var maximumK:int;
public var starts:btnstart;
private var sz:int;// = 1
public var backs:thetudasuda;
private var kadrs:String;
public var nexts:thetudasuda;
public function helps(){
sz = 1;
super();
if (Main3.lvl == 1){
kadrs = "a";
maximumK = 3;
};
if (Main3.lvl == 2){
kadrs = "b";
maximumK = 2;
};
if (Main3.lvl == 3){
kadrs = "c";
maximumK = 1;
};
if (Main3.lvl == 4){
kadrs = "d";
maximumK = 2;
};
if (Main3.lvl == 5){
kadrs = "e";
maximumK = 1;
};
this.helping.gotoAndStop((kadrs + 1));
this.backs.alpha = 0.5;
this.backs.mouseEnabled = false;
this.backs.mouseChildren = false;
if (maximumK == 1){
this.nexts.alpha = 0.5;
this.nexts.mouseEnabled = false;
this.nexts.mouseChildren = false;
};
}
public function stepBack(){
sz--;
if (sz == 1){
this.backs.alpha = 0.5;
this.backs.mouseEnabled = false;
this.backs.mouseChildren = false;
};
if (this.nexts.alpha == 0.5){
this.nexts.alpha = 1;
this.nexts.mouseEnabled = true;
this.nexts.mouseChildren = true;
};
this.helping.gotoAndStop((kadrs + sz));
}
public function stepNext(){
sz++;
if (sz == maximumK){
this.nexts.alpha = 0.5;
this.nexts.mouseEnabled = false;
this.nexts.mouseChildren = false;
};
if (this.backs.alpha == 0.5){
this.backs.alpha = 1;
this.backs.mouseEnabled = true;
this.backs.mouseChildren = true;
};
this.helping.gotoAndStop((kadrs + sz));
}
}
}//package
Section 213
//highscoreloader (highscoreloader)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.geom.*;
import flash.printing.*;
import flash.ui.*;
import flash.utils.*;
import flash.xml.*;
public dynamic class highscoreloader extends MovieClip {
public var connected:Boolean;
public var readytoSend:Boolean;
public var loader;
public var AS3_lc:LocalConnection;
public var viewURL:String;
public var connectionID:Number;
public var score:Number;
public var view:Number;
public var game:String;
public function highscoreloader(){
addFrameScript(0, frame1, 1, frame2);
}
public function as2Ready():void{
trace("AS2 Ready");
readytoSend = true;
AS3_lc.send(("_AS3toAS2_" + connectionID), "communicateData", game, score, view, viewURL, ((("fl3m_uP_Ebri8zi8#" + game) + score) + "2I2RI3tH6ahl?"));
}
function frame1(){
stop();
this.visible = false;
}
function frame2(){
Security.allowInsecureDomain("*");
Security.allowDomain("*");
readytoSend = false;
connected = false;
connectionID = 1;
loader = new Loader();
loader.load(new URLRequest("http://www.notdoppler.com/highscores/highscores.swf"));
addChild(loader);
AS3_lc = new LocalConnection();
AS3_lc.allowDomain("*");
AS3_lc.allowInsecureDomain("*");
while (((!(connected)) && ((connectionID < 5)))) {
try {
AS3_lc.connect(("_AS2toAS3_" + connectionID));
connected = true;
} catch(error:ArgumentError) {
trace((("AS3: Connection No:" + connectionID) + " is already in use!"));
connectionID = (connectionID + 1);
};
};
AS3_lc.client = this;
}
public function resendData():void{
if (readytoSend){
as2Ready();
};
}
public function loadHighscores(_arg1, _arg2, _arg3, _arg4){
game = _arg1;
score = _arg2;
view = _arg3;
viewURL = _arg4;
this.visible = true;
gotoAndStop(2);
resendData();
}
}
}//package
Section 214
//init2 (init2)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
public dynamic class init2 extends MovieClip {
var slSites:Array;
var initPic:MovieClip;
var sl;// = false
var mcMain;
var intro:MovieClip;
public var Parent;
public static var tru = false;
public function init2():void{
initPic = new menuInits();
sl = false;
slSites = ["vladgames.com"];
super();
initPic.x = 320;
initPic.y = 240;
addChild(initPic);
addEventListener(Event.ENTER_FRAME, ini);
}
function ini(_arg1:Event){
if (this.parent != null){
removeEventListener(Event.ENTER_FRAME, ini);
go();
};
}
function gotosite(_arg1:Event){
var _local2:URLRequest;
var _local3:*;
_local3 = "http://www.notdoppler.com/";
_local2 = new URLRequest(_local3);
navigateToURL(_local2, "_blank");
}
function gotosite2(_arg1:Event){
var _local2:URLRequest;
var _local3:*;
_local3 = "http://www.notdoppler.com/allweneedisbrain2.php";
_local2 = new URLRequest(_local3);
navigateToURL(_local2, "_blank");
}
function gotosite3(_arg1:Event){
var _local2:URLRequest;
var _local3:*;
_local3 = "http://www.notdoppler.com/webmasters.php";
_local2 = new URLRequest(_local3);
navigateToURL(_local2, "_blank");
}
function gotosite1(_arg1:Event){
var _local2:*;
var _local3:URLRequest;
_local2 = "mailto:vladg1979@gmail.com";
_local3 = new URLRequest(_local2);
navigateToURL(_local3, "_blank");
}
function gogo(_arg1:Event){
if (intro.currentFrame == 186){
intro.removeEventListener(MouseEvent.CLICK, gotosite);
intro.removeEventListener(Event.ENTER_FRAME, gogo);
removeChild(intro);
mcMain = new Main3();
addChild(mcMain);
};
}
function go(){
var _local1:String;
Parent = initPic;
Parent.no.visible = false;
Parent.webm.visible = false;
Parent.webm1.visible = false;
Parent.webm2.visible = false;
if (sl){
_local1 = stage.loaderInfo.url;
if ((((((_local1.indexOf("vladgames.com") > -1)) || ((_local1.indexOf("proekt20.com") > -1)))) || ((_local1.indexOf("notdoppler.com") > -1)))){
removeChild(initPic);
intro = new notDoppler_intro();
addChild(intro);
intro.addEventListener(MouseEvent.CLICK, gotosite);
intro.addEventListener(Event.ENTER_FRAME, gogo);
} else {
Parent.no.y = 0;
Parent.webm.y = 79;
Parent.webm1.y = -44;
Parent.webm2.y = -10;
Parent.no.visible = true;
Parent.webm.visible = true;
Parent.webm1.visible = true;
Parent.webm2.visible = true;
Parent.webm.addEventListener(MouseEvent.CLICK, gotosite1);
Parent.webm1.addEventListener(MouseEvent.CLICK, gotosite2);
Parent.webm2.addEventListener(MouseEvent.CLICK, gotosite3);
stage.frameRate = 0;
gotoAndStop(0);
};
} else {
removeChild(initPic);
intro = new notDoppler_intro();
addChild(intro);
intro.addEventListener(MouseEvent.CLICK, gotosite);
intro.addEventListener(Event.ENTER_FRAME, gogo);
};
}
}
}//package
Section 215
//knopkapyk (knopkapyk)
package {
import flash.media.*;
public dynamic class knopkapyk extends Sound {
}
}//package
Section 216
//krug (krug)
package {
import flash.display.*;
public class krug extends cursorMoove2 {
public var zatk:MovieClip;
override public function update(){
super.update();
}
}
}//package
Section 217
//krugMask (krugMask)
package {
import flash.display.*;
public dynamic class krugMask extends MovieClip {
public function krugMask(){
addFrameScript(9, frame10);
}
function frame10(){
stop();
}
}
}//package
Section 218
//krugMask1 (krugMask1)
package {
import flash.display.*;
public dynamic class krugMask1 extends MovieClip {
}
}//package
Section 219
//krugMask2 (krugMask2)
package {
import flash.display.*;
public dynamic class krugMask2 extends MovieClip {
public function krugMask2(){
addFrameScript(39, frame40);
}
function frame40(){
stop();
}
}
}//package
Section 220
//krugMoove (krugMoove)
package {
import flash.display.*;
public class krugMoove extends MovieClip {
private var xx;// = 1
private var yy;// = 1
private var speed;// = 3
private var zaezd;// = 60
public function krugMoove(){
speed = 3;
xx = 1;
yy = 1;
zaezd = 60;
super();
}
public function update(){
if (this.x > ((Main3.DLINA / 2) - zaezd)){
xx = -1;
};
if (this.x < -(((Main3.DLINA / 2) - zaezd))){
xx = 1;
};
if (this.y > ((Main3.VYSOTA / 2) - zaezd)){
yy = -1;
};
if (this.y < -(((Main3.VYSOTA / 2) - zaezd))){
yy = 1;
};
this.x = (this.x + (xx * speed));
this.y = (this.y + (yy * speed));
}
}
}//package
Section 221
//kvadratOnOff (kvadratOnOff)
package {
import flash.display.*;
public dynamic class kvadratOnOff extends MovieClip {
public function kvadratOnOff(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package
Section 222
//l5454535 (l5454535)
package {
import flash.display.*;
public dynamic class l5454535 extends MovieClip {
}
}//package
Section 223
//l565 (l565)
package {
import flash.display.*;
public dynamic class l565 extends MovieClip {
}
}//package
Section 224
//levClass (levClass)
package {
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Dynamics.Contacts.*;
import Box2D.Dynamics.*;
import Box2D.Collision.*;
import Box2D.Common.*;
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.ui.*;
import flash.utils.*;
import General.*;
import caurina.transitions.*;
public class levClass extends MovieClip {
private var newBrainz:phBody;
private var ninArray:Array;
private var forSpriteArray:Array;
private var wldn:MovieClip;
private var popal:Boolean;
public var m_iterations:int;// = 10
private var theKrug;
var krestikM:MovieClip;
private var theKrugMoove;
var oneWater:picWater;
private var star;
var stat:SharedObject;
var krestikS:MovieClip;
private var zonaStrelArray:Array;
private var backSprite:Sprite;
private var starter:Boolean;
private var zombDie:int;// = 0
private var zonaSprite:Sprite;
private var theGromDark;
private var kasaetPic:Boolean;// = false
private var ninSprite:Sprite;
var noc;
private var addSprite:Sprite;
public var m_timeStep:Number;// = 0.0333333333333333
private var maskSprite:Sprite;
var angle:Number;
var theMask2;
private var puskX;// = 700
private var phSprite:Sprite;
private var picArray:Array;
private var zombArray:Array;
private var theJoints;
private var zombSprite:Sprite;
private var brainArray:Array;
private var menuSprite:Sprite;
private var theJointsHard;
private var puskY;// = 700
private var kasaetPh:Boolean;// = false
private var phArray:Array;
var iii:int;// = 0
private var brainSprite:Sprite;
private var menu;
private var krovArray:Array;
private var levelScore:int;// = 0
private var takeStar:Boolean;
private var theFlag:Boolean;
private var theDark;
private var scMask;// = 0
private var uzeEstBrain:int;// = 0
private var torch1Array:Array;
private var earthSprite:Sprite;
private var helper;
private var torchArray:Array;
private var darkSprite:Sprite;
private var krovSprite:Sprite;
private var zombPodsk:MovieClip;
private var naZone:Boolean;
public function levClass(){
m_iterations = 10;
m_timeStep = (1 / 30);
backSprite = new Sprite();
krovSprite = new Sprite();
addSprite = new Sprite();
ninSprite = new Sprite();
phSprite = new Sprite();
brainSprite = new Sprite();
zombSprite = new Sprite();
earthSprite = new Sprite();
zonaSprite = new Sprite();
darkSprite = new Sprite();
maskSprite = new Sprite();
menuSprite = new Sprite();
phArray = new Array();
picArray = new Array();
ninArray = new Array();
brainArray = new Array();
zombArray = new Array();
forSpriteArray = new Array();
zonaStrelArray = new Array();
torchArray = new Array();
torch1Array = new Array();
krovArray = new Array();
scMask = 0;
uzeEstBrain = 0;
zombDie = 0;
kasaetPh = false;
kasaetPic = false;
levelScore = 0;
puskX = 700;
puskY = 700;
iii = 0;
stat = SharedObject.getLocal("brainzombie2");
super();
addEventListener(Event.ENTER_FRAME, ini);
}
public function destroy(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
stage.removeEventListener(KeyboardEvent.KEY_DOWN, resetR);
menu.lvls1.removeEventListener(MouseEvent.CLICK, toSelect);
menu.rsts1.removeEventListener(MouseEvent.CLICK, toSolution);
menu.rstl1.removeEventListener(MouseEvent.CLICK, resetLevel);
menu.mMus.removeEventListener(MouseEvent.CLICK, menMus);
menu.mSnd.removeEventListener(MouseEvent.CLICK, menSnd);
removeEventListener(MouseEvent.MOUSE_DOWN, gameKlik);
if (Main3.levMenu.rstdop1.visible == true){
Main3.levMenu.rstdop1.removeEventListener(MouseEvent.CLICK, gotosite);
};
Main3.levMenu.rstdop2.removeEventListener(MouseEvent.CLICK, gotosite2);
if (theFlag == true){
wldn.panelka.panNext.removeEventListener(MouseEvent.CLICK, toNew);
wldn.panelka.panSelect.removeEventListener(MouseEvent.CLICK, toSelect);
wldn.panelka.panMore.removeEventListener(MouseEvent.CLICK, gotosite1);
} else {
Main3.cursor.removePodskazka();
Main3.cursor.gotoAndStop(2);
removeEventListener(Event.ENTER_FRAME, Update);
};
theFlag = false;
_local1 = 0;
while (_local1 < zombArray.length) {
if (zombArray[_local1] != null){
zombArray[_local1].removeEventListener("zombDie", dieZomb);
};
_local1++;
};
if (noc != null){
removeEventListener(Event.ENTER_FRAME, upNight);
};
if (helper != null){
helper.backs.removeEventListener(MouseEvent.MOUSE_DOWN, helpBack);
helper.nexts.removeEventListener(MouseEvent.MOUSE_DOWN, helpNext);
helper.starts.removeEventListener(MouseEvent.MOUSE_DOWN, helpStart);
zonaSprite.removeChild(helper);
helper = null;
};
_local2 = 0;
while (_local2 < ninArray.length) {
ninArray[_local2].removeEventListener("zombieNew", addZombie);
_local2++;
};
_local3 = 0;
while (_local3 < phArray.length) {
phArray[_local3] = null;
_local3++;
};
_local4 = 0;
while (_local4 < picArray.length) {
picArray[_local4] = null;
_local4++;
};
Main3.kinuli = false;
if (theGromDark != null){
theGromDark.stop();
};
if (noc != null){
noc.stop();
noc = null;
};
phArray = null;
picArray = null;
ninArray = null;
brainArray = null;
zombArray = null;
forSpriteArray = null;
zonaStrelArray = null;
torchArray = null;
torch1Array = null;
theKrug = null;
theKrugMoove = null;
theDark = null;
theGromDark = null;
theJoints = null;
theJointsHard = null;
star = null;
newBrainz = null;
if (krestikM != null){
menu.removeChild(krestikM);
krestikM = null;
};
if (krestikS != null){
menu.removeChild(krestikS);
krestikS = null;
};
menu = null;
if (wldn != null){
zonaSprite.removeChild(wldn);
wldn = null;
};
if (oneWater != null){
oneWater = null;
};
removeChild(backSprite);
removeChild(krovSprite);
removeChild(addSprite);
removeChild(ninSprite);
removeChild(phSprite);
removeChild(brainSprite);
removeChild(zombSprite);
removeChild(earthSprite);
removeChild(zonaSprite);
removeChild(darkSprite);
removeChild(menuSprite);
backSprite = null;
krovSprite = null;
addSprite = null;
ninSprite = null;
phSprite = null;
brainSprite = null;
zombSprite = null;
earthSprite = null;
zonaSprite = null;
darkSprite = null;
maskSprite = null;
menuSprite = null;
}
public function poZombies(){
var _local1:*;
_local1 = 0;
while (_local1 < zombArray.length) {
if (zombArray[_local1] != null){
zombArray[_local1].checking();
};
_local1++;
};
}
function menMus(_arg1:MouseEvent){
Main3.musc = !(Main3.musc);
if (krestikM != null){
Main3.MUS.theGameMus();
menu.removeChild(krestikM);
krestikM = null;
stat.data.mus = true;
} else {
krestikM = new offKrest();
krestikM.x = menu.mMus.x;
krestikM.y = menu.mMus.y;
menu.addChild(krestikM);
krestikM.mouseEnabled = false;
krestikM.mouseChildren = false;
Main3.MUS.theStopMus();
stat.data.mus = false;
};
}
public function addZombie(_arg1:Event){
var _local2:*;
var _local3:Class;
var _local4:zombClass;
var _local5:String;
var _local6:Class;
var _local7:*;
var _local8:*;
_local2 = _arg1.target.numberZ;
_local3 = (getDefinitionByName(("zombie" + _local2)) as Class);
_local4 = new (_local3);
_local4.getPoint(_arg1.target.x, _arg1.target.y);
_local4.getNIN(_arg1.target);
_local4.x = _arg1.target.x;
_local4.y = _arg1.target.y;
zombSprite.addChild(_local4);
zombArray.push(_local4);
phArray.push(_local4);
_local4.getSprites(brainSprite, zombSprite);
_local4.getArrays(phArray, picArray, ninArray, brainArray, zombArray);
_local4.rastBrain = _arg1.target.doBrain;
_local5 = _local4.vlz;
_local6 = (getDefinitionByName(_local5) as Class);
_local7 = new (_local6);
_local8 = new theSound(0, 0.5, _local7);
_local4.addEventListener("zombDie", dieZomb);
}
public function dieZomb(_arg1:Event){
zombDie++;
if (Main3.naSpec == true){
menu.changeZombies(zombDie);
};
_arg1.target.removeEventListener("zombDie", dieZomb);
}
private function upNight(_arg1:Event){
if (noc.currentLabel == "utro"){
removeEventListener(Event.ENTER_FRAME, upNight);
zonaSprite.removeChild(noc);
noc = null;
gorigori();
if (theKrug != null){
theKrug.x = mouseX;
theKrug.y = mouseY;
theKrug.zatk.visible = false;
};
if (theGromDark != null){
theGromDark.gotoAndPlay(2);
};
addEventListener(MouseEvent.MOUSE_DOWN, gameKlik);
addEventListener(Event.ENTER_FRAME, Update);
};
}
private function gotosite2(_arg1:Event){
var _local2:URLRequest;
var _local3:*;
_local3 = "http://www.notdoppler.com/";
_local2 = new URLRequest(_local3);
navigateToURL(_local2, "_blank");
}
private function gotosite1(_arg1:Event){
var _local2:URLRequest;
var _local3:*;
_local3 = "http://www.notdoppler.com/";
_local2 = new URLRequest(_local3);
navigateToURL(_local2, "_blank");
}
private function toMenu(_arg1:Event){
zombBack();
destroy();
Main3(parent.parent).toMenu();
}
private function zombRight(){
if ((((zombPodsk == null)) && ((((Main3.naSpec == true)) || ((starter == true)))))){
zombPodsk = new zombPodskz();
zombPodsk.x = 196.2;
zombPodsk.y = 152.1;
zonaSprite.addChild(zombPodsk);
};
}
private function gorigori(){
var _local1:*;
var _local2:*;
if (theDark != null){
_local1 = 0;
while (_local1 < torchArray.length) {
_local2 = new krugMask();
_local2.x = torchArray[_local1].x;
_local2.y = torchArray[_local1].y;
maskSprite.addChild(_local2);
_local1++;
};
darkSprite.addChild(maskSprite);
darkSprite.blendMode = BlendMode.LAYER;
maskSprite.blendMode = BlendMode.ERASE;
};
}
function go(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
Mouse.hide();
addChild(backSprite);
addChild(krovSprite);
addChild(ninSprite);
addChild(phSprite);
addChild(addSprite);
addChild(brainSprite);
addChild(zombSprite);
addChild(earthSprite);
addChild(darkSprite);
addChild(maskSprite);
addChild(zonaSprite);
addChild(menuSprite);
menu = Main3.levMenu;
if ((((Main3.musc == false)) && ((krestikM == null)))){
krestikM = new offKrest();
krestikM.x = menu.mMus.x;
krestikM.y = menu.mMus.y;
menu.addChild(krestikM);
krestikM.mouseEnabled = false;
krestikM.mouseChildren = false;
};
if ((((Main3.snd == false)) && ((krestikS == null)))){
krestikS = new offKrest();
krestikS.x = menu.mSnd.x;
krestikS.y = menu.mSnd.y;
menu.addChild(krestikS);
krestikS.mouseEnabled = false;
krestikS.mouseChildren = false;
};
_local1 = 0;
while (_local1 < this.numChildren) {
_local3 = this.getChildAt(_local1);
if ((_local3 is phBody)){
phArray.push(_local3);
forSpriteArray.push(_local3);
};
if ((_local3 is theJoint)){
_local3.getArrays(phArray);
theJoints = _local3;
theJoints.doJoint();
forSpriteArray.push(_local3);
};
if ((_local3 is theJointHard)){
_local3.getArrays(phArray);
theJointsHard = _local3;
theJointsHard.doJoint();
forSpriteArray.push(_local3);
};
if ((((_local3 is pictureAction)) || ((_local3 is torch1)))){
picArray.push(_local3);
};
if ((_local3 is picMina)){
forSpriteArray.push(_local3);
};
if ((_local3 is waters)){
forSpriteArray.push(_local3);
};
if ((_local3 is theStar)){
_local3.gotoAndStop("stat");
star = _local3;
forSpriteArray.push(_local3);
};
if ((_local3 is picWater)){
oneWater = _local3;
forSpriteArray.push(_local3);
};
if ((_local3 is phBrain)){
brainArray.push(_local3);
_local3.getSprites(zombSprite, addSprite);
forSpriteArray.push(_local3);
};
if ((_local3 is krug)){
forSpriteArray.push(_local3);
theKrug = _local3;
};
if ((_local3 is darkGrom)){
_local3.gotoAndStop(1);
forSpriteArray.push(_local3);
theGromDark = _local3;
};
if ((_local3 is krugMoove)){
forSpriteArray.push(_local3);
theKrugMoove = _local3;
};
if ((_local3 is darkness)){
forSpriteArray.push(_local3);
theDark = _local3;
};
if ((_local3 is torch)){
torchArray.push(_local3);
};
if ((_local3 is torch1)){
_local3.gotoAndStop(1);
torch1Array.push(_local3);
};
if ((((_local3 is picZonaStrel)) || ((_local3 is picZonaZapret)))){
forSpriteArray.push(_local3);
};
if ((_local3 is picNIN)){
_local3.gotoAndStop(1);
_local3.getSprites(earthSprite);
_local3.addEarth();
ninArray.push(_local3);
forSpriteArray.push(_local3);
_local3.addEventListener("zombieNew", addZombie);
};
_local1++;
};
_local2 = 0;
while (_local2 < forSpriteArray.length) {
_local4 = forSpriteArray[_local2];
if ((_local4 is phBody)){
_local4.getArrays(phArray, picArray, ninArray, brainArray, zombArray);
phSprite.addChild(_local4);
};
if ((_local4 is pictureAction)){
_local4.getArrays(phArray, picArray, ninArray, brainArray, zombArray, krovArray);
};
if ((_local4 is picWater)){
earthSprite.addChild(_local4);
};
if ((_local4 is phBrain)){
brainSprite.addChild(_local4);
};
if ((((((((((((_local4 is picZonaStrel)) || ((_local4 is picZonaZapret)))) || ((_local4 is krug)))) || ((_local4 is darkGrom)))) || ((_local4 is krugMoove)))) || ((_local4 is waters)))){
zonaSprite.addChild(_local4);
};
if ((_local4 is darkness)){
darkSprite.addChild(_local4);
};
if ((_local4 is picZonaStrel)){
zonaStrelArray.push(_local4);
_local4.getSprites(krovSprite);
};
if ((_local4 is picNIN)){
ninSprite.addChild(_local4);
};
if ((_local4 is theStar)){
addSprite.addChild(_local4);
};
if ((_local4 is picMina)){
earthSprite.addChild(_local4);
_local4.getSprites(brainSprite, zombSprite);
};
_local2++;
};
Main3.cursor.getBrains(uzeEstBrain);
Main3.cursor.getSprites(addSprite);
menu.lvls1.addEventListener(MouseEvent.CLICK, toSelect);
menu.rsts1.addEventListener(MouseEvent.CLICK, toSolution);
menu.rstl1.addEventListener(MouseEvent.CLICK, resetLevel);
menu.mMus.addEventListener(MouseEvent.CLICK, menMus);
menu.mSnd.addEventListener(MouseEvent.CLICK, menSnd);
if (Main3.levMenu.rstdop1.visible == true){
Main3.levMenu.rstdop1.addEventListener(MouseEvent.CLICK, gotosite);
};
Main3.levMenu.rstdop2.addEventListener(MouseEvent.CLICK, gotosite2);
stage.addEventListener(KeyboardEvent.KEY_DOWN, resetR);
if ((((Main3.lvl < 6)) && ((stat.data.lastLevel == Main3.lvl)))){
if (Main3.lvl < 3){
starter = true;
};
};
if ((((((Main3.lvl < 6)) && ((stat.data.lastLevel == Main3.lvl)))) && ((Main3.resetHelp == false)))){
gorigori();
helper = new helps();
helper.y = -50;
zonaSprite.addChild(helper);
helper.backs.addEventListener(MouseEvent.MOUSE_DOWN, helpBack);
helper.nexts.addEventListener(MouseEvent.MOUSE_DOWN, helpNext);
helper.starts.addEventListener(MouseEvent.MOUSE_DOWN, helpStart);
} else {
if ((((((((((Main3.lvl == 6)) || ((Main3.lvl == 12)))) || ((Main3.lvl == 18)))) || ((Main3.lvl == 24)))) || ((Main3.lvl == 30)))){
noc = new night();
zonaSprite.addChild(noc);
addEventListener(Event.ENTER_FRAME, upNight);
} else {
gorigori();
addEventListener(MouseEvent.MOUSE_DOWN, gameKlik);
addEventListener(Event.ENTER_FRAME, Update);
};
};
}
function Update(_arg1:Event){
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:phBody;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
var _local13:*;
var _local14:*;
var _local15:*;
var _local16:*;
var _local17:Boolean;
var _local18:*;
if ((((zombDie == ninArray.length)) && ((wldn == null)))){
wldn = new weldon();
_local4 = new gamewelldone();
if (takeStar == true){
wldn = new excel();
_local4 = new excellent();
};
if ((((Main3.lvl == 30)) && ((stat.data.wonn == false)))){
wldn = new weldonCongrat();
};
zonaSprite.addChild(wldn);
_local5 = new theSound(0, 0.5, _local4);
menu.stops = true;
if (theDark != null){
darkSprite.removeChild(theDark);
darkSprite.removeChild(maskSprite);
theDark = null;
};
if (theKrug != null){
zonaSprite.removeChild(theKrug);
theKrug = null;
};
if (theKrugMoove != null){
zonaSprite.removeChild(theKrugMoove);
theKrugMoove = null;
};
if (theGromDark != null){
theGromDark.stop();
zonaSprite.removeChild(theGromDark);
theGromDark = null;
};
};
if (((!((wldn == null))) && ((wldn.currentLabel == "gotov")))){
levelScore = menu.rememberScore();
if (Main3.scoreArray[(Main3.lvl - 1)] < levelScore){
Main3.scoreArray[(Main3.lvl - 1)] = levelScore;
stat.data.scoreAr[(Main3.lvl - 1)] = levelScore;
stat.data.sub = true;
};
if (takeStar == true){
Main3.coinArray[(Main3.lvl - 1)] = Main3.lvl;
stat.data.coinAr[(Main3.lvl - 1)] = Main3.lvl;
};
_local6 = (Main3.lvl + 1);
if (stat.data.lastLevel < _local6){
stat.data.lastLevel = _local6;
};
Main3.lvlflag = true;
Main3.resetHelp = false;
if ((wldn is weldonCongrat)){
destroy();
Main3.lvl++;
Main3(parent.parent).newLevel();
} else {
Main3.cursor.removePodskazka();
Main3.cursor.gotoAndStop(2);
removeEventListener(Event.ENTER_FRAME, Update);
wldn.panelka.panNext.addEventListener(MouseEvent.CLICK, toNew);
wldn.panelka.panSelect.addEventListener(MouseEvent.CLICK, toSelect);
wldn.panelka.panMore.addEventListener(MouseEvent.CLICK, gotosite1);
theFlag = true;
};
return;
};
kasaetPh = false;
kasaetPic = false;
Main3.cursor.naFakele = false;
Main3.m_world.Step(m_timeStep, m_iterations);
menu.update();
if (theKrug != null){
theKrug.update();
};
if (theKrugMoove != null){
theKrugMoove.update();
};
_local2 = 0;
while (_local2 < phArray.length) {
if (phArray[_local2] != null){
_local7 = phArray[_local2];
_local7.update();
};
if (((!((phArray[_local2] == null))) && (phArray[_local2].hitTestPoint(stage.mouseX, stage.mouseY, true)))){
Main3.cursor.changeVid(Main3.cursor.currentFrame, phArray[_local2]);
kasaetPh = true;
};
if (((((((!((phArray[_local2] == null))) && (!((oneWater == null))))) && (phArray[_local2].mozetUtonut))) && ((phArray[_local2].y > (oneWater.y - (oneWater.height / 2)))))){
phArray[_local2].mozetUtonut = false;
_local8 = new bulClass();
if ((phArray[_local2] is zombClass)){
_local8.x = (phArray[_local2].x - ((phArray[_local2].znak * phArray[_local2].width) / 3));
_local9 = new gamebulkibrrrrrr();
_local10 = new theSound(0, 0.5, _local9);
} else {
_local8.x = phArray[_local2].x;
_local11 = new gamebulkibig();
_local12 = new theSound(0, 0.5, _local11);
};
_local8.y = (oneWater.y - (oneWater.height / 2));
addSprite.addChild(_local8);
};
if (((((((!((phArray[_local2] == null))) && (!((star == null))))) && ((phArray[_local2] is phBrain)))) && (star.hitTestObject(phArray[_local2])))){
_local13 = new dzn();
_local14 = new theSound(0, 0.5, _local13);
star.gotoAndPlay("give");
menu.changeScore(100);
takeStar = true;
star = null;
};
if (((((!((phArray[_local2] == null))) && ((phArray[_local2] is phBrain)))) && ((phArray[_local2].sozrali == true)))){
if (phArray[_local2].brainKapec == true){
zombRight();
};
phArray[_local2].brainDie();
brainSprite.removeChild(phArray[_local2]);
_local15 = brainArray.indexOf(phArray[_local2]);
brainArray[_local15] = null;
phArray[_local2] = null;
poZombies();
};
if (((!((phArray[_local2] == null))) && ((phArray[_local2] is zombClass)))){
if (phArray[_local2].currentLabel == "stopz"){
phArray[_local2].cursorEye1.rotation = 0;
phArray[_local2].cursorEye2.rotation = 0;
angle = Math.atan2((mouseY - phArray[_local2].y), (mouseX - phArray[_local2].x));
phArray[_local2].cursorEye1.rotation = ((angle * 180) / Math.PI);
phArray[_local2].cursorEye2.rotation = ((angle * 180) / Math.PI);
};
if (phArray[_local2].ubran == true){
if (phArray[_local2].ulezNaSpec == true){
zombRight();
};
zombSprite.removeChild(phArray[_local2]);
_local16 = zombArray.indexOf(phArray[_local2]);
zombArray[_local16] = null;
phArray[_local2] = null;
};
};
if (((!((phArray[_local2] == null))) && ((phArray[_local2].y > (Main3.VYSOTA / 2))))){
if ((phArray[_local2] is zombClass)){
zombSprite.removeChild(phArray[_local2]);
phArray[_local2].determinate();
_local17 = true;
};
if ((phArray[_local2] is phBrain)){
brainSprite.removeChild(phArray[_local2]);
_local18 = brainArray.indexOf(phArray[_local2]);
brainArray[_local18] = null;
phArray[_local2].brainDie();
phArray[_local2] = null;
_local17 = true;
zombRight();
};
if (_local17 == false){
phSprite.removeChild(phArray[_local2]);
phArray[_local2] = null;
};
};
_local2++;
};
_local3 = 0;
while (_local3 < picArray.length) {
if (picArray[_local3] != null){
picArray[_local3].update();
if (((!((picArray[_local3] == null))) && (picArray[_local3].hitTestPoint(stage.mouseX, stage.mouseY, true)))){
if ((picArray[_local3] is picZonaStrel)){
Main3.cursor.kasaet = true;
};
if ((picArray[_local3] is torch1)){
Main3.cursor.naFakele = true;
};
kasaetPic = true;
if ((((Math.abs((mouseX - puskX)) > 35)) || ((Math.abs((mouseY - puskY)) > 35)))){
Main3.cursor.changeVid(Main3.cursor.currentFrame, picArray[_local3]);
puskX = 700;
puskY = 700;
};
};
};
_local3++;
};
if (theMask2 != null){
if (scMask == 26){
maskSprite.removeChild(theMask2);
theMask2 = null;
scMask = 0;
} else {
scMask++;
};
};
if ((((naZone == false)) && ((Main3.cursor.currentFrame == 3)))){
Main3.cursor.kasaet = false;
};
if ((((((kasaetPh == false)) && ((kasaetPic == false)))) && ((Main3.cursor.zaGran == false)))){
Main3.cursor.kasaet = false;
if ((((Main3.cursor.naFakele == false)) && ((((Math.abs((mouseX - puskX)) > 35)) || ((Math.abs((mouseY - puskY)) > 35)))))){
Main3.cursor.changeVidBack();
puskX = 700;
puskY = 700;
};
if (uzeEstBrain != Main3.kolvoBrain){
Main3.cursor.addPodskazka();
};
};
naZone = false;
}
function resetR(_arg1:KeyboardEvent){
Main3.resetHelp = true;
if ((((_arg1.keyCode == 82)) || ((_arg1.keyCode == 32)))){
resetLevel1();
};
}
private function toSolution(_arg1:Event){
var _local2:URLRequest;
var _local3:*;
_local3 = "http://www.notdoppler.com/allweneedisbrain2-walkthrough.php";
_local2 = new URLRequest(_local3);
navigateToURL(_local2, "_blank");
}
private function toNew(_arg1:Event){
destroy();
Main3.lvl++;
Main3(parent.parent).newLevel();
}
private function gotosite(_arg1:Event){
var _local2:URLRequest;
var _local3:*;
_local3 = "http://www.notdoppler.com/";
_local2 = new URLRequest(_local3);
navigateToURL(_local2, "_blank");
}
private function gameKlik(_arg1:Event){
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
if ((((uzeEstBrain < Main3.kolvoBrain)) && ((Main3.cursor.currentFrame == 1)))){
uzeEstBrain++;
Main3.kinuli = true;
menu.changeBrain(uzeEstBrain);
Main3.cursor.getBrains(uzeEstBrain);
newBrainz = new phBrain();
newBrainz.getSprites(zombSprite, addSprite);
newBrainz.x = mouseX;
newBrainz.y = mouseY;
brainSprite.addChild(newBrainz);
phArray.push(newBrainz);
brainArray.push(newBrainz);
newBrainz.getArrays(phArray, picArray, ninArray, brainArray, zombArray);
_local3 = new theSound1(0, 0.5);
};
if (Main3.cursor.currentFrame == 3){
_local4 = 0;
while (_local4 < phArray.length) {
if (((!((phArray[_local4] == null))) && (phArray[_local4].hitTestPoint(stage.mouseX, stage.mouseY, true)))){
if ((phArray[_local4] is phBrain)){
phArray[_local4].addVzr();
phArray[_local4].brainDie();
poZombies();
};
if (((!((phArray[_local4] == null))) && ((phArray[_local4] is zombClass)))){
phArray[_local4].babah();
popal = true;
};
};
_local4++;
};
_local5 = 0;
while (_local5 < zonaStrelArray.length) {
if (zonaStrelArray[_local5].hitTestPoint(stage.mouseX, stage.mouseY, true)){
if (popal){
zonaStrelArray[_local5].addKrov(mouseX, mouseY);
popal = false;
} else {
zonaStrelArray[_local5].addDrob(mouseX, mouseY);
};
};
_local5++;
};
_local6 = new gameshoot();
if (((!((theDark == null))) && (!((theMask2 == null))))){
_local6 = new osechka();
};
if (((!((theDark == null))) && ((theMask2 == null)))){
theMask2 = new krugMask2();
theMask2.x = mouseX;
theMask2.y = mouseY;
maskSprite.addChild(theMask2);
};
_local7 = new theSound(0, 0.5, _local6);
};
_local2 = 0;
while (_local2 < torch1Array.length) {
if (((torch1Array[_local2].hitTestPoint(stage.mouseX, stage.mouseY, true)) && ((torch1Array[_local2].currentFrame < 3)))){
torch1Array[_local2].gotoAndPlay(2);
Main3.cursor.pusk.gotoAndPlay(2);
_local8 = new krugMask();
_local8.x = torch1Array[_local2].x;
_local8.y = torch1Array[_local2].y;
puskX = torch1Array[_local2].x;
puskY = torch1Array[_local2].y;
maskSprite.addChild(_local8);
_local9 = picArray.indexOf(torch1Array[_local2]);
picArray[_local9] = null;
_local10 = new lightOn();
_local11 = new theSound(0, 0.5, _local10);
};
_local2++;
};
Main3.cursor.gameKlik1(Main3.cursor.currentFrame);
}
private function toSelect(_arg1:Event){
destroy();
Main3(parent.parent).toSelect();
}
private function resetLevel(_arg1:Event){
Main3.resetHelp = true;
zombBack();
destroy();
Main3(parent.parent).newLevel();
}
private function zombBack(){
Main3.numberZomb = (Main3.numberZomb - ninArray.length);
if (Main3.numberZomb < 1){
Main3.numberZomb = (8 + Main3.numberZomb);
};
}
private function resetLevel1(){
zombBack();
destroy();
Main3(parent.parent).newLevel();
}
private function helpStart(_arg1:Event){
helper.backs.removeEventListener(MouseEvent.MOUSE_DOWN, helpBack);
helper.nexts.removeEventListener(MouseEvent.MOUSE_DOWN, helpNext);
helper.starts.removeEventListener(MouseEvent.MOUSE_DOWN, helpStart);
zonaSprite.removeChild(helper);
helper = null;
addEventListener(MouseEvent.MOUSE_DOWN, gameKlik);
addEventListener(Event.ENTER_FRAME, Update);
}
function menSnd(_arg1:MouseEvent){
Main3.snd = !(Main3.snd);
if (krestikS != null){
menu.removeChild(krestikS);
krestikS = null;
stat.data.sound = true;
Main3.MUS.theEmbientGo();
if ((((Main3.lvl == 13)) || ((Main3.lvl == 25)))){
Main3.MUS.theMexGo();
};
} else {
krestikS = new offKrest();
krestikS.x = menu.mSnd.x;
krestikS.y = menu.mSnd.y;
menu.addChild(krestikS);
krestikS.mouseEnabled = false;
krestikS.mouseChildren = false;
stat.data.sound = false;
Main3.MUS.theEmbientStop();
if ((((Main3.lvl == 13)) || ((Main3.lvl == 25)))){
Main3.MUS.theMexStop();
};
};
}
private function helpBack(_arg1:Event){
helper.stepBack();
}
private function helpNext(_arg1:Event){
helper.stepNext();
}
function ini(_arg1:Event){
if (this.parent != null){
removeEventListener(Event.ENTER_FRAME, ini);
go();
};
}
}
}//package
Section 225
//lightOn (lightOn)
package {
import flash.media.*;
public dynamic class lightOn extends Sound {
}
}//package
Section 226
//luk (luk)
package {
import flash.display.*;
public dynamic class luk extends MovieClip {
}
}//package
Section 227
//Main3 (Main3)
package {
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Dynamics.Contacts.*;
import Box2D.Dynamics.*;
import Box2D.Collision.*;
import Box2D.Common.*;
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import levelsp2.*;
import flash.system.*;
import flash.ui.*;
import flash.utils.*;
import General.*;
import caurina.transitions.*;
public dynamic class Main3 extends MovieClip {
private var menuSprite:Sprite;
var mcMenu;
var lev;// = null
var mcSelect;
var versionNumber:String;
var sc;
var stat:SharedObject;
var st;
var komiks:MovieClip;
private var levSprite:Sprite;
var f0;
var schet;
var curKadr:int;// = 0
public static var m_physScale:Number = 30;
public static var VIDX:int = 200;
public static var VIDY:int = 25;
public static var lvlflag:Boolean = false;
public static var VYSOTA:uint = 480;
public static var rotatSpeed = 57.2957795130823;
public static var resethelp:Boolean = false;
public static var otstup:Number = 0;
public static var levMenu:MovieClip;
public static var lvl:int;
public static var MUS = new theMusic();
public static var totalScore:Number = 0;
public static var naSpec:Boolean = false;
public static var DLINA:uint = 640;
public static var kolvoBrain:int;
public static var resetHelp:Boolean;
public static var krovTrue:Boolean = true;
public static var m_world:b2World;
public static var coinArray:Array = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
public static var musAlpha:Number;
public static var cursor:cursorEmpty = new cursorEmpty();
public static var ZOMBSCALE:uint = 35;
public static var kinuli:Boolean;
public static var zombSpeed:int = 40;
public static var scoreArray:Array = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
public static var snd:Boolean = true;
public static var numberZomb:int = (Math.round((Math.random() * 3)) + 1);
public static var sndAlpha:Number;
public static var musc:Boolean = true;
public function Main3():void{
levSprite = new Sprite();
menuSprite = new Sprite();
versionNumber = Capabilities.version;
curKadr = 0;
stat = SharedObject.getLocal("brainzombie2");
lev = null;
super();
addEventListener(Event.ADDED_TO_STAGE, ini);
}
function ini(_arg1:Event){
if (this.parent != null){
removeEventListener(Event.ENTER_FRAME, ini);
go();
};
}
private function toGame(){
Mouse.hide();
cursor.gotoAndStop(2);
addChild(cursor);
cursor.mouseEnabled = false;
cursor.mouseChildren = false;
addEventListener(Event.ENTER_FRAME, curUpdate);
toMenu();
}
private function curUpdate(_arg1:Event){
cursor.update();
}
public function toSelect(){
resetHelp = false;
MUS.theMenuMus();
if (Main3.snd == true){
MUS.theEmbientStop();
MUS.theMexStop();
};
toNull();
mcSelect = new select3();
menuSprite.addChild(mcSelect);
}
private function vidno(){
if ((((((((((((((((lvl < 4)) || ((((lvl > 6)) && ((lvl < 12)))))) || ((lvl == 14)))) || ((lvl == 16)))) || ((lvl == 19)))) || ((lvl == 25)))) || ((lvl == 27)))) || ((lvl == 29)))){
levMenu.rstdop1.visible = true;
levMenu.lines.visible = true;
otstup = levMenu.rstdop1.width;
} else {
levMenu.rstdop1.visible = false;
levMenu.lines.visible = false;
otstup = 0;
};
if ((((((((((lvl == 6)) || ((lvl == 12)))) || ((lvl == 18)))) || ((lvl == 24)))) || ((lvl == 30)))){
levMenu.brzb.gotoAndStop(1);
naSpec = true;
} else {
levMenu.brzb.gotoAndStop(2);
naSpec = false;
};
}
private function toNull(){
cursor.gotoAndStop(2);
if (mcMenu != null){
menuSprite.removeChild(mcMenu);
mcMenu = null;
};
if (mcMenu != null){
menuSprite.removeChild(mcMenu);
mcMenu = null;
};
if (mcSelect != null){
menuSprite.removeChild(mcSelect);
mcSelect = null;
};
if (lev != null){
m_world = null;
levSprite.removeChild(lev);
lev = null;
};
}
public function toMenu(){
resetHelp = false;
if ((((stat.data.mus == undefined)) || ((stat.data.mus == true)))){
MUS.theMenuMus();
};
if (Main3.snd == true){
MUS.theEmbientStop();
MUS.theMexStop();
};
toNull();
mcMenu = new menu3();
menuSprite.addChild(mcMenu);
}
private function movScip(_arg1:Event){
if (sc != null){
sc.stop();
sc = null;
};
curKadr = 5;
}
function nl(){
var _local1:Class;
phWorldInit();
_local1 = (getDefinitionByName(("levelsp2.level" + lvl)) as Class);
kolvoBrain = _local1.param2;
if (levMenu != null){
vidno();
levMenu.opredText();
if (lvlflag == true){
lvlflag = false;
};
lev = new (_local1);
levSprite.addChild(lev);
} else {
levMenu = new menuLevel();
vidno();
levMenu.opredText();
levMenu.x = 320;
levMenu.y = 240;
menuSprite.addChild(levMenu);
lev = new (_local1);
levSprite.addChild(lev);
};
}
public function newLevel(){
var _local1:*;
var _local2:*;
var _local3:win3;
MUS.theGameMus();
if (Main3.snd == true){
MUS.theEmbientGo();
if ((((lvl == 13)) || ((lvl == 25)))){
MUS.theMexGo();
} else {
MUS.theMexStop();
};
};
if (mcMenu != null){
menuSprite.removeChild(mcMenu);
mcMenu = null;
};
if (mcSelect != null){
menuSprite.removeChild(mcSelect);
mcSelect = null;
};
if (lev != null){
m_world = null;
(levSprite.removeChild(lev) as Sprite);
lev = null;
};
if ((((lvl == 31)) && ((stat.data.wonn == false)))){
MUS.theStopMus();
_local1 = new gamefanfary();
_local2 = new theSound(0, 0.5, _local1);
if (lev != null){
m_world = null;
levSprite.removeChild(lev);
lev = null;
};
stat.data.wonn = true;
_local3 = new win3();
cursor.gotoAndStop(2);
menuSprite.addChild(_local3);
} else {
if ((((lvl == 31)) && ((stat.data.wonn == true)))){
toSelect();
} else {
nl();
};
};
}
function go(){
levSprite.x = 320;
levSprite.y = 240;
addChild(levSprite);
addChild(menuSprite);
komiks = new startMovie();
menuSprite.addChild(komiks);
schet = 0;
addEventListener(Event.ENTER_FRAME, movUpdate);
komiks.skips.addEventListener(MouseEvent.CLICK, movScip);
}
private function movUpdate(_arg1:Event){
var _local2:*;
if (schet == 10){
if (stat.data.mus == false){
} else {
sc = new SoundChannel();
st = new SoundTransform(1, 0);
_local2 = new Zombie_comics();
sc = _local2.play(st, 0);
sc.soundTransform = st;
schet++;
};
} else {
schet++;
};
if ((((curKadr == 0)) && ((komiks.mov1.currentLabel == "endOne")))){
curKadr = 1;
komiks.mov2.gotoAndPlay(1);
};
if ((((curKadr == 1)) && ((komiks.mov2.currentLabel == "endTwo")))){
curKadr = 2;
komiks.mov3.gotoAndPlay(1);
};
if ((((((curKadr == 2)) && ((komiks.mov3.currentLabel == "endThree")))) || ((curKadr == 5)))){
curKadr = 0;
komiks.skips.removeEventListener(MouseEvent.CLICK, movScip);
komiks.mov1.stop();
komiks.mov2.stop();
komiks.mov3.stop();
menuSprite.removeChild(komiks);
komiks = null;
removeEventListener(Event.ENTER_FRAME, movUpdate);
toGame();
};
}
public static function phWorldInit(){
var _local1:b2AABB;
var _local2:b2Vec2;
var _local3:Boolean;
_local1 = new b2AABB();
_local1.lowerBound.Set(-1000, -1000);
_local1.upperBound.Set(1000, 1000);
_local2 = new b2Vec2(0, 7);
_local3 = true;
m_world = new b2World(_local1, _local2, _local3);
}
}
}//package
Section 228
//mechanizm (mechanizm)
package {
import flash.media.*;
public dynamic class mechanizm extends Sound {
}
}//package
Section 229
//menu3 (menu3)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.ui.*;
import caurina.transitions.*;
public dynamic class menu3 extends MovieClip {
var krestikM:MovieClip;
var stat:SharedObject;
var krestikS:MovieClip;
var menuPic:MovieClip;
public var Parent;
public static var scT:SoundChannel;
public static var numLevels:int;
public static var wonn;
public function menu3():void{
menuPic = new menuBig();
stat = SharedObject.getLocal("brainzombie2");
super();
menuPic.x = 320;
menuPic.y = 240;
addChild(menuPic);
addEventListener(Event.ENTER_FRAME, ini);
}
function goGame(){
delListeners();
removeChild(menuPic);
Main3(parent.parent).toSelect();
}
function ini(_arg1:Event){
if (this.parent != null){
removeEventListener(Event.ENTER_FRAME, ini);
go();
};
}
function letters(){
var _local1:*;
var _local2:URLRequest;
_local1 = "mailto:vladg1979@gmail.com";
_local2 = new URLRequest(_local1);
navigateToURL(_local2, "_blank");
}
function menMus(_arg1:MouseEvent){
Main3.musc = !(Main3.musc);
if (krestikM != null){
Main3.MUS.theMenuMus();
Parent.removeChild(krestikM);
krestikM = null;
stat.data.mus = true;
} else {
krestikM = new offKrest();
krestikM.x = Parent.mMus.x;
krestikM.y = Parent.mMus.y;
Parent.addChild(krestikM);
krestikM.mouseEnabled = false;
krestikM.mouseChildren = false;
Main3.MUS.theStopMus();
stat.data.mus = false;
};
}
private function statData(){
if (stat.data.wonn == undefined){
stat.data.wonn = false;
};
if (stat.data.sub == undefined){
stat.data.sub = false;
};
if ((((stat.data.mus == undefined)) || ((stat.data.mus == true)))){
stat.data.mus = true;
Main3.musc = true;
} else {
Main3.musc = false;
};
if ((((stat.data.sound == undefined)) || ((stat.data.sound == true)))){
stat.data.sound = true;
Main3.snd = true;
} else {
Main3.snd = false;
};
if (stat.data.lastLevel == undefined){
stat.data.lastLevel = 1;
};
if (stat.data.scoreAr == undefined){
stat.data.scoreAr = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
Main3.scoreArray = stat.data.scoreAr;
} else {
Main3.scoreArray = stat.data.scoreAr;
};
if (stat.data.coinAr == undefined){
stat.data.coinAr = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
Main3.coinArray = stat.data.coinAr;
} else {
Main3.coinArray = stat.data.coinAr;
};
}
function bloodOnOf(_arg1:Event){
Main3.krovTrue = !(Main3.krovTrue);
_arg1.target.gotoAndStop(Main3.krovTrue);
}
function gotosite(_arg1:Event){
var _local2:URLRequest;
var _local3:*;
_local3 = "http://www.notdoppler.com/";
_local2 = new URLRequest(_local3);
navigateToURL(_local2, "_blank");
}
function gotoscore(_arg1:Event){
var _local2:URLRequest;
var _local3:*;
_local3 = "http://www.notdoppler.com/highscores.php?game=needbrain2";
_local2 = new URLRequest(_local3);
navigateToURL(_local2, "_blank");
}
function delShared(){
stat.clear();
Parent.sbros.visible = false;
Parent.sbros.removeEventListener(MouseEvent.ROLL_OVER, chik);
Parent.sbros.removeEventListener(MouseEvent.CLICK, delShared);
Parent.sbros.removeEventListener(MouseEvent.ROLL_OVER, inn);
Parent.sbros.removeEventListener(MouseEvent.ROLL_OUT, outt);
if (krestikM != null){
Parent.removeChild(krestikM);
krestikM = null;
stat.data.mus = true;
};
if (krestikS != null){
Parent.removeChild(krestikS);
krestikS = null;
stat.data.sound = true;
};
statData();
Main3.MUS.theMenuMus();
}
function chik(_arg1:MouseEvent){
var _local2:*;
var _local3:*;
_local2 = new knopkapyk();
_local3 = new theSound(0, 0.5, _local2);
}
function opened(_arg1:Event){
}
function openDel(_arg1:Event){
if (Parent.sbros.currentFrame < 3){
Parent.sbros.gotoAndPlay("opens");
};
if (Parent.sbros.currentLabel == "opened"){
if (Parent.sbros.yes.hitTestPoint(mouseX, mouseY, true)){
delShared();
};
if (Parent.sbros.no.hitTestPoint(mouseX, mouseY, true)){
Parent.sbros.gotoAndPlay("closes");
};
};
}
function delListeners(){
if (Parent.sbros.visible == true){
Parent.sbros.removeEventListener(MouseEvent.ROLL_OVER, chik);
Parent.sbros.removeEventListener(MouseEvent.CLICK, openDel);
Parent.sbros.removeEventListener(MouseEvent.ROLL_OVER, inn);
Parent.sbros.removeEventListener(MouseEvent.ROLL_OUT, outt);
};
Parent.btnPlay.removeEventListener(MouseEvent.ROLL_OVER, chik);
Parent.btnHiSc.removeEventListener(MouseEvent.ROLL_OVER, chik);
Parent.btnHost.removeEventListener(MouseEvent.ROLL_OVER, chik);
Parent.btnMore.removeEventListener(MouseEvent.ROLL_OVER, chik);
Parent.mMus.removeEventListener(MouseEvent.ROLL_OVER, chik);
Parent.mSnd.removeEventListener(MouseEvent.ROLL_OVER, chik);
Parent.playTo1.removeEventListener(MouseEvent.ROLL_OVER, chik);
Parent.bloods.removeEventListener(MouseEvent.CLICK, bloodOnOf);
Parent.btnPlay.removeEventListener(MouseEvent.CLICK, c_Play);
Parent.btnCredits.removeEventListener(MouseEvent.CLICK, c_Credits);
Parent.btnCredits.removeEventListener(MouseEvent.ROLL_OVER, inn);
Parent.btnCredits.removeEventListener(MouseEvent.ROLL_OUT, outt);
Parent.mMus.removeEventListener(MouseEvent.CLICK, menMus);
Parent.mSnd.removeEventListener(MouseEvent.CLICK, menSnd);
Parent.playTo1.removeEventListener(MouseEvent.CLICK, gotoPart1);
Parent.btnHiSc.removeEventListener(MouseEvent.CLICK, gotoscore);
Parent.btnHost.removeEventListener(MouseEvent.CLICK, gotohost);
Parent.btnMore.removeEventListener(MouseEvent.CLICK, gotosite);
Parent.dops.removeEventListener(MouseEvent.CLICK, gotosite);
}
function gotoPart1(_arg1:Event){
var _local2:URLRequest;
var _local3:*;
_local3 = "http://www.notdoppler.com/allweneedisbrain.php";
_local2 = new URLRequest(_local3);
navigateToURL(_local2, "_blank");
}
function gotohost(_arg1:Event){
var _local2:URLRequest;
var _local3:*;
_local3 = "http://www.notdoppler.com/webmasters.php?ref=allweneedisbrain2";
_local2 = new URLRequest(_local3);
navigateToURL(_local2, "_blank");
}
function c_Credits(_arg1:Event){
if (Parent.btnCredits.currentFrame < 3){
Parent.btnCredits.gotoAndPlay("open");
};
if (Parent.btnCredits.currentLabel == "close"){
if (Parent.btnCredits.adrs1.hitTestPoint(mouseX, mouseY, true)){
letters();
};
if (Parent.btnCredits.adrs2.hitTestPoint(mouseX, mouseY, true)){
letters2();
};
if (Parent.btnCredits.zakr.hitTestPoint(mouseX, mouseY, true)){
Parent.btnCredits.gotoAndPlay("close");
};
};
}
function c_Play(_arg1:Event){
goGame();
}
function menSnd(_arg1:MouseEvent){
Main3.snd = !(Main3.snd);
if (krestikS != null){
Parent.removeChild(krestikS);
krestikS = null;
stat.data.sound = true;
} else {
krestikS = new offKrest();
krestikS.x = Parent.mSnd.x;
krestikS.y = Parent.mSnd.y;
Parent.addChild(krestikS);
krestikS.mouseEnabled = false;
krestikS.mouseChildren = false;
stat.data.sound = false;
};
}
function letters2(){
var _local1:*;
var _local2:URLRequest;
_local1 = "mailto:maxim-777-m@ya";
_local2 = new URLRequest(_local1);
navigateToURL(_local2, "_blank");
}
function chik1(){
}
function outt(_arg1:MouseEvent){
if (_arg1.currentTarget.currentFrame == 2){
_arg1.currentTarget.gotoAndStop(1);
};
}
function go(){
Parent = menuPic;
statData();
if ((((stat.data.scoreAr[0] == 0)) && ((stat.data.lastLevel == 1)))){
Parent.sbros.visible = false;
};
Parent.btnCredits.gotoAndStop(1);
Parent.sbros.gotoAndStop(1);
Parent.bloods.gotoAndStop(Main3.krovTrue);
if (Parent.sbros.visible == true){
Parent.sbros.addEventListener(MouseEvent.CLICK, openDel);
Parent.sbros.addEventListener(MouseEvent.ROLL_OVER, chik);
Parent.sbros.addEventListener(MouseEvent.ROLL_OVER, inn);
Parent.sbros.addEventListener(MouseEvent.ROLL_OUT, outt);
};
Parent.bloods.addEventListener(MouseEvent.CLICK, bloodOnOf);
Parent.btnPlay.addEventListener(MouseEvent.CLICK, c_Play);
Parent.btnHiSc.addEventListener(MouseEvent.CLICK, gotoscore);
Parent.btnHost.addEventListener(MouseEvent.CLICK, gotohost);
Parent.btnCredits.addEventListener(MouseEvent.CLICK, c_Credits);
Parent.btnCredits.addEventListener(MouseEvent.ROLL_OVER, inn);
Parent.btnCredits.addEventListener(MouseEvent.ROLL_OUT, outt);
Parent.mMus.addEventListener(MouseEvent.CLICK, menMus);
Parent.mSnd.addEventListener(MouseEvent.CLICK, menSnd);
Parent.btnMore.addEventListener(MouseEvent.CLICK, gotosite);
Parent.dops.addEventListener(MouseEvent.CLICK, gotosite);
Parent.playTo1.addEventListener(MouseEvent.CLICK, gotoPart1);
Parent.btnPlay.addEventListener(MouseEvent.ROLL_OVER, chik);
Parent.btnHiSc.addEventListener(MouseEvent.ROLL_OVER, chik);
Parent.btnHost.addEventListener(MouseEvent.ROLL_OVER, chik);
Parent.btnMore.addEventListener(MouseEvent.ROLL_OVER, chik);
Parent.mMus.addEventListener(MouseEvent.ROLL_OVER, chik);
Parent.mSnd.addEventListener(MouseEvent.ROLL_OVER, chik);
Parent.playTo1.addEventListener(MouseEvent.ROLL_OVER, chik);
Parent.bloods.mouseChildren = false;
if ((((Main3.musc == false)) && ((krestikM == null)))){
krestikM = new offKrest();
krestikM.x = Parent.mMus.x;
krestikM.y = Parent.mMus.y;
Parent.addChild(krestikM);
krestikM.mouseEnabled = false;
krestikM.mouseChildren = false;
};
if ((((Main3.snd == false)) && ((krestikS == null)))){
krestikS = new offKrest();
krestikS.x = Parent.mSnd.x;
krestikS.y = Parent.mSnd.y;
Parent.addChild(krestikS);
krestikS.mouseEnabled = false;
krestikS.mouseChildren = false;
};
}
function inn(_arg1:MouseEvent){
var _local2:*;
var _local3:*;
_local2 = new knopkapyk();
_local3 = new theSound(0, 0.5, _local2);
if (_arg1.currentTarget.currentFrame == 1){
_arg1.currentTarget.gotoAndStop(2);
};
}
}
}//package
Section 230
//menuBig (menuBig)
package {
import flash.display.*;
public dynamic class menuBig extends MovieClip {
public var mMus:btnMusic;
public var btnHost:SimpleButton;
public var sbros:rProgres;
public var playTo1:SimpleButton;
public var btnHiSc:SimpleButton;
public var btnPlay:SimpleButton;
public var bloods:kvadratOnOff;
public var mSnd:btnsound;
public var dops:dop1aa;
public var btnMore:SimpleButton;
public var btnCredits:cred;
}
}//package
Section 231
//menuCongrat (menuCongrat)
package {
import flash.display.*;
import flash.text.*;
public dynamic class menuCongrat extends MovieClip {
public var bad:TextField;
public var sbmt:thesubmit;
public var wrstm:btnmenus;
public var lk4:luk;
public var lk6:luk;
public var lk7:luk;
public var lk8:luk;
public var lk9:luk;
public var lk5:luk;
public var lk1:luk;
public var lk3:luk;
public var lk2:luk;
public var good:TextField;
public var hsloader:highscoreloader;
}
}//package
Section 232
//menuCr (menuCr)
package {
import flash.display.*;
public dynamic class menuCr extends MovieClip {
public function menuCr(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 233
//menuInits (menuInits)
package {
import flash.display.*;
public dynamic class menuInits extends MovieClip {
public var webm:wbmst;
public var webm2:wbmst2;
public var no:Символ1;
public var webm1:wbmst1;
}
}//package
Section 234
//menuLevel (menuLevel)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.ui.*;
import flash.utils.*;
public class menuLevel extends MovieClip {
public var lines:polosa;
public var mMus:btnMusic;
private var SCHAG:uint;// = 30
public var rstl1:btnReset;
private var lvc;
private var razraz:uint;// = 0
private var cB;
public var rstdop1:SimpleButton;
public var brzb:brainZombs;
public var rstdop2:MOREGAMES;
private var score:uint;// = 100
public var rsts1:btnSolutions;
public var mSnd:btnsound;
private var schBrain;
public var stops:Boolean;
private var time;
public var lvls1:btnLevels;
private var menuSpr:Sprite;
public function menuLevel(){
razraz = 0;
score = 100;
SCHAG = 30;
super();
opredText();
changeScore(0);
}
public function changeBrain(_arg1){
cB = (Main3.kolvoBrain - _arg1);
schBrain.text = ("" + cB);
}
public function getSprites(_arg1){
menuSpr = _arg1;
}
public function rememberScore(){
return (score);
}
public function changeZombies(_arg1){
var _local2:*;
_local2 = (specspec() - _arg1);
schBrain.text = ("" + _local2);
}
public function opredText(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
stops = false;
cB = Main3.kolvoBrain;
_local1 = this.numChildren;
_local2 = 0;
while (_local2 < _local1) {
_local3 = this.getChildAt(_local2);
if ((_local3 is TextField)){
if (time != null){
time.text = "100";
score = 100;
} else {
if (_local3.text.indexOf("100") > -1){
_local3.htmlText = ("" + score);
time = _local3;
};
};
if (schBrain != null){
if (Main3.naSpec == true){
_local4 = specspec();
schBrain.htmlText = ("" + _local4);
} else {
schBrain.htmlText = ("" + Main3.kolvoBrain);
};
} else {
if (_local3.text.indexOf(" ") > -1){
if (Main3.naSpec == false){
_local3.htmlText = ("" + Main3.kolvoBrain);
schBrain = _local3;
} else {
_local5 = specspec();
_local3.htmlText = ("" + _local5);
schBrain = _local3;
};
};
};
if (lvc != null){
lvc.htmlText = ("" + Main3.lvl);
} else {
if (_local3.text.indexOf("25") > -1){
_local3.htmlText = ("" + Main3.lvl);
lvc = _local3;
};
};
};
_local2++;
};
}
public function migaet(){
if (cB == 0){
trace("помочь?");
};
}
public function changeScore(_arg1){
score = (score + _arg1);
time.text = ("" + score);
}
public function update(){
if ((((score > 0)) && ((stops == false)))){
if (razraz == SCHAG){
changeScore(-1);
razraz = 0;
} else {
razraz++;
};
};
}
private function specspec(){
var _local1:*;
if (Main3.lvl == 6){
_local1 = 3;
};
if (Main3.lvl == 12){
_local1 = 4;
};
if (Main3.lvl == 18){
_local1 = 2;
};
if (Main3.lvl == 30){
_local1 = 5;
};
if (Main3.lvl == 24){
_local1 = 5;
};
return (_local1);
}
}
}//package
Section 235
//menuSelects (menuSelects)
package {
import flash.display.*;
import flash.text.*;
public dynamic class menuSelects extends MovieClip {
public var mMus:btnMusic;
public var c1:coin;
public var c3:coin;
public var c5:coin;
public var c7:coin;
public var sbmt:thesubmit;
public var c2:coin;
public var c9:coin;
public var scoresL:TextField;
public var scoresT:TextField;
public var mog:MOREGAMES;
public var l1:numberL;
public var l3:numberL;
public var l4:numberL;
public var l5:numberL;
public var l8:numberL;
public var l2:numberL;
public var l7:numberL;
public var l6:numberL;
public var l9:numberL;
public var srstm:btnmenus;
public var l10:numberL;
public var l13:numberL;
public var l14:numberL;
public var l15:numberL;
public var l16:numberL;
public var l17:numberL;
public var l18:numberL;
public var l11:numberL;
public var l12:numberL;
public var l20:numberL;
public var l22:numberL;
public var l23:numberL;
public var l25:numberL;
public var l26:numberL;
public var l27:numberL;
public var l21:numberL;
public var l29:numberL;
public var l24:numberL;
public var l19:numberL;
public var l28:numberL;
public var mSnd:btnsound;
public var c11:coin;
public var c16:coin;
public var l30:numberL;
public var dops:SimpleButton;
public var c15:coin;
public var c19:coin;
public var c21:coin;
public var c28:coin;
public var c29:coin;
}
}//package
Section 236
//minijump1 (minijump1)
package {
import flash.media.*;
public dynamic class minijump1 extends Sound {
}
}//package
Section 237
//minijump2 (minijump2)
package {
import flash.media.*;
public dynamic class minijump2 extends Sound {
}
}//package
Section 238
//minijump3 (minijump3)
package {
import flash.media.*;
public dynamic class minijump3 extends Sound {
}
}//package
Section 239
//minijump4 (minijump4)
package {
import flash.media.*;
public dynamic class minijump4 extends Sound {
}
}//package
Section 240
//minijump5 (minijump5)
package {
import flash.media.*;
public dynamic class minijump5 extends Sound {
}
}//package
Section 241
//miniZomb1 (miniZomb1)
package {
import flash.display.*;
public dynamic class miniZomb1 extends MovieClip {
public function miniZomb1(){
addFrameScript(32, frame33, 77, frame78, 78, frame79);
}
function frame78(){
gotoAndStop("in");
}
function frame79(){
stop();
}
function frame33(){
gotoAndStop("in");
}
}
}//package
Section 242
//miniZomb2 (miniZomb2)
package {
import flash.display.*;
public dynamic class miniZomb2 extends MovieClip {
public function miniZomb2(){
addFrameScript(32, frame33, 77, frame78, 78, frame79);
}
function frame78(){
gotoAndStop("in");
}
function frame79(){
stop();
}
function frame33(){
gotoAndStop("in");
}
}
}//package
Section 243
//miniZomb3 (miniZomb3)
package {
import flash.display.*;
public dynamic class miniZomb3 extends MovieClip {
public function miniZomb3(){
addFrameScript(32, frame33, 77, frame78, 78, frame79);
}
function frame78(){
gotoAndStop("in");
}
function frame79(){
stop();
}
function frame33(){
gotoAndStop("in");
}
}
}//package
Section 244
//miniZomb4 (miniZomb4)
package {
import flash.display.*;
public dynamic class miniZomb4 extends MovieClip {
public function miniZomb4(){
addFrameScript(32, frame33, 77, frame78, 78, frame79);
}
function frame78(){
gotoAndStop("in");
}
function frame79(){
stop();
}
function frame33(){
gotoAndStop("in");
}
}
}//package
Section 245
//miniZomb5 (miniZomb5)
package {
import flash.display.*;
public dynamic class miniZomb5 extends MovieClip {
public function miniZomb5(){
addFrameScript(32, frame33, 77, frame78, 78, frame79);
}
function frame78(){
gotoAndStop("in");
}
function frame79(){
stop();
}
function frame33(){
gotoAndStop("in");
}
}
}//package
Section 246
//miniZomb6 (miniZomb6)
package {
import flash.display.*;
public dynamic class miniZomb6 extends MovieClip {
public function miniZomb6(){
addFrameScript(32, frame33, 77, frame78, 78, frame79);
}
function frame78(){
gotoAndStop("in");
}
function frame79(){
stop();
}
function frame33(){
gotoAndStop("in");
}
}
}//package
Section 247
//miniZomb7 (miniZomb7)
package {
import flash.display.*;
public dynamic class miniZomb7 extends MovieClip {
public function miniZomb7(){
addFrameScript(32, frame33, 77, frame78, 78, frame79);
}
function frame78(){
gotoAndStop("in");
}
function frame79(){
stop();
}
function frame33(){
gotoAndStop("in");
}
}
}//package
Section 248
//miniZomb8 (miniZomb8)
package {
import flash.display.*;
public dynamic class miniZomb8 extends MovieClip {
public function miniZomb8(){
addFrameScript(32, frame33, 77, frame78, 78, frame79);
}
function frame78(){
gotoAndStop("in");
}
function frame79(){
stop();
}
function frame33(){
gotoAndStop("in");
}
}
}//package
Section 249
//MochiBot (MochiBot)
package {
import flash.display.*;
import flash.net.*;
import flash.system.*;
public dynamic class MochiBot extends Sprite {
public static function track(_arg1:Sprite, _arg2:String):MochiBot{
var _local3:MochiBot;
var _local4:String;
var _local5:URLVariables;
var _local6:String;
var _local7:URLRequest;
var _local8:Loader;
if (Security.sandboxType == "localWithFile"){
return (null);
};
_local3 = new (MochiBot);
_arg1.addChild(_local3);
Security.allowDomain("*");
Security.allowInsecureDomain("*");
_local4 = "http://core.mochibot.com/my/core.swf";
_local5 = new URLVariables();
_local5["sb"] = Security.sandboxType;
_local5["v"] = Capabilities.version;
_local5["swfid"] = _arg2;
_local5["mv"] = "8";
_local5["fv"] = "9";
_local6 = _local3.root.loaderInfo.loaderURL;
if (_local6.indexOf("http") == 0){
_local5["url"] = _local6;
} else {
_local5["url"] = "local";
};
_local7 = new URLRequest(_local4);
_local7.contentType = "application/x-www-form-urlencoded";
_local7.method = URLRequestMethod.POST;
_local7.data = _local5;
_local8 = new Loader();
_local3.addChild(_local8);
_local8.load(_local7);
return (_local3);
}
}
}//package
Section 250
//molot (molot)
package {
import flash.display.*;
public dynamic class molot extends MovieClip {
public function molot(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 251
//molotS (molotS)
package {
import flash.media.*;
public dynamic class molotS extends Sound {
}
}//package
Section 252
//MOREGAMES (MOREGAMES)
package {
import flash.display.*;
public dynamic class MOREGAMES extends SimpleButton {
}
}//package
Section 253
//movieTarget (movieTarget)
package {
import flash.display.*;
public dynamic class movieTarget extends MovieClip {
}
}//package
Section 254
//musicgameplaywave (musicgameplaywave)
package {
import flash.media.*;
public dynamic class musicgameplaywave extends Sound {
}
}//package
Section 255
//musicmenuwavewithFX (musicmenuwavewithFX)
package {
import flash.media.*;
public dynamic class musicmenuwavewithFX extends Sound {
}
}//package
Section 256
//NEXTLEVEL (NEXTLEVEL)
package {
import flash.display.*;
public dynamic class NEXTLEVEL extends SimpleButton {
}
}//package
Section 257
//night (night)
package {
import flash.display.*;
public dynamic class night extends MovieClip {
public var vstr6;
public var vstr7;
public var snd6;
public var snd7;
public function night(){
addFrameScript(9, frame10, 52, frame53, 86, frame87);
}
function frame87(){
stop();
}
function frame10(){
vstr6 = new Tamtam1();
snd6 = new theSound(0, 0.5, vstr6);
}
function frame53(){
vstr7 = new Tamtam1();
snd7 = new theSound(0, 0.5, vstr7);
}
}
}//package
Section 258
//notDoppler_intro (notDoppler_intro)
package {
import flash.display.*;
public dynamic class notDoppler_intro extends MovieClip {
public function notDoppler_intro(){
addFrameScript(185, frame186);
}
function frame186(){
stop();
}
}
}//package
Section 259
//numberL (numberL)
package {
import flash.display.*;
import flash.text.*;
public dynamic class numberL extends MovieClip {
public var nomerL:TextField;
public function numberL(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
function frame3(){
stop();
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package
Section 260
//offKrest (offKrest)
package {
import flash.display.*;
public dynamic class offKrest extends MovieClip {
}
}//package
Section 261
//osechka (osechka)
package {
import flash.media.*;
public dynamic class osechka extends Sound {
}
}//package
Section 262
//panelDone (panelDone)
package {
import flash.display.*;
public dynamic class panelDone extends MovieClip {
public var helping:zzzz;
public var panNext:NEXTLEVEL;
public var panMore:MOREGAMES;
public var panSelect:SELECTLEVEL;
}
}//package
Section 263
//phBall (phBall)
package {
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Dynamics.Contacts.*;
import Box2D.Dynamics.*;
import Box2D.Collision.*;
import Box2D.Common.*;
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.ui.*;
import flash.utils.*;
import General.*;
import caurina.transitions.*;
public class phBall extends phBody {
private var bodyDef:b2BodyDef;
private var boxDefC:b2CircleDef;
public function phBall(){
bodyDef = new b2BodyDef();
bodyDef.position.x = (this.x / Main3.m_physScale);
bodyDef.position.y = (this.y / Main3.m_physScale);
boxDefC = new b2CircleDef();
boxDefC.radius = (this.width / (Main3.m_physScale * 2));
boxDefC.density = 1;
boxDefC.friction = 0.3;
boxDefC.restitution = 0.4;
body = Main3.m_world.CreateDynamicBody(bodyDef);
body.CreateShape(boxDefC);
body.SetMassFromShapes();
}
override public function update(){
var _local1:*;
var _local2:*;
var _local3:*;
super.update();
_local1 = 0;
while (_local1 < phArr.length) {
if (((((((((!((phArr[_local1] == null))) && ((Math.abs((phArr[_local1].x - this.x)) < 30)))) && ((Math.abs((phArr[_local1].y - (this.y + (this.height / 2)))) < 15)))) && ((body.GetLinearVelocity().y > 2)))) && (((this.y + (this.height / 2)) < phArr[_local1].y)))){
if ((phArr[_local1] is phBrain)){
_local2 = new gamedavkamozga();
_local3 = new theSound(0, 0.5, _local2);
phArr[_local1].addVzr();
phArr[_local1].brainDie();
phArr[_local1].sozrali = true;
};
if ((((phArr[_local1] is zombClass)) && ((phArr[_local1].padaet == false)))){
phArr[_local1].davdav();
};
};
_local1++;
};
}
}
}//package
Section 264
//phBody (phBody)
package {
import Box2D.Dynamics.*;
import flash.display.*;
public class phBody extends MovieClip {
public var phArr:Array;
public var ninArr:Array;
public var picArr:Array;
public var mozetUtonut:Boolean;// = true
public var brainArr:Array;
public var body:b2Body;
public var zombArr:Array;
public function phBody(){
mozetUtonut = true;
super();
}
public function getSprites(_arg1, _arg2){
}
public function getArrays(_arg1, _arg2, _arg3, _arg4, _arg5){
phArr = _arg1;
picArr = _arg2;
ninArr = _arg3;
brainArr = _arg4;
zombArr = _arg5;
}
public function update(){
this.x = (body.GetPosition().x * Main3.m_physScale);
this.y = (body.GetPosition().y * Main3.m_physScale);
this.rotation = (body.GetAngle() * Main3.rotatSpeed);
}
}
}//package
Section 265
//phBrain (phBrain)
package {
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Dynamics.Contacts.*;
import Box2D.Dynamics.*;
import Box2D.Collision.*;
import Box2D.Common.*;
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.ui.*;
import flash.utils.*;
import General.*;
import caurina.transitions.*;
public class phBrain extends phBody {
private var bodyDef:b2BodyDef;
private var armSprite:Sprite;
private var newVonisa:MovieClip;
public var sozrali:Boolean;
private var boxDef:b2PolygonDef;
private var firstX;
private var firstY;
public var brainKapec:Boolean;
private var vonsSprite:Sprite;
public var proveril:Boolean;
public function phBrain(){
var _local1:*;
var _local2:*;
super();
addFrameScript(0, frame1);
bodyDef = new b2BodyDef();
if (Main3.kinuli == false){
bodyDef.position.x = (this.x / Main3.m_physScale);
bodyDef.position.y = (this.y / Main3.m_physScale);
} else {
bodyDef.position.x = ((mouseX - (Main3.DLINA / 2)) / Main3.m_physScale);
bodyDef.position.y = ((mouseY - (Main3.VYSOTA / 2)) / Main3.m_physScale);
};
boxDef = new b2PolygonDef();
boxDef.vertexCount = 16;
boxDef.vertices[0] = new b2Vec2((((-(this.width) / 2) + (0.2 * this.width)) / Main3.m_physScale), (((this.width / 2) * Math.sin(Math.acos((((-(this.width) / 2) + (0.2 * this.width)) / (this.width / 2))))) / Main3.m_physScale));
boxDef.vertices[1] = new b2Vec2((((-(this.width) / 2) + (0.1 * this.width)) / Main3.m_physScale), (((this.width / 2) * Math.sin(Math.acos((((-(this.width) / 2) + (0.1 * this.width)) / (this.width / 2))))) / Main3.m_physScale));
boxDef.vertices[2] = new b2Vec2((((-(this.width) / 2) + (0.05 * this.width)) / Main3.m_physScale), (((this.width / 2) * Math.sin(Math.acos((((-(this.width) / 2) + (0.05 * this.width)) / (this.width / 2))))) / Main3.m_physScale));
_local1 = 3;
_local2 = (-(this.width) / 2);
while (_local2 <= (this.width / 2)) {
boxDef.vertices[_local1] = new b2Vec2((_local2 / Main3.m_physScale), (-(((this.width / 2) * Math.sin(Math.acos((_local2 / (this.width / 2)))))) / Main3.m_physScale));
_local1++;
_local2 = (_local2 + (0.1 * this.width));
};
boxDef.vertices[13] = new b2Vec2((((this.width / 2) - (0.05 * this.width)) / Main3.m_physScale), (((this.width / 2) * Math.sin(Math.acos((((this.width / 2) - (0.05 * this.width)) / (this.width / 2))))) / Main3.m_physScale));
boxDef.vertices[14] = new b2Vec2((((this.width / 2) - (0.1 * this.width)) / Main3.m_physScale), (((this.width / 2) * Math.sin(Math.acos((((this.width / 2) - (0.1 * this.width)) / (this.width / 2))))) / Main3.m_physScale));
boxDef.vertices[15] = new b2Vec2((((this.width / 2) - (0.2 * this.width)) / Main3.m_physScale), (((this.width / 2) * Math.sin(Math.acos((((this.width / 2) - (0.2 * this.width)) / (this.width / 2))))) / Main3.m_physScale));
boxDef.density = 0.3;
boxDef.friction = 0.3;
boxDef.restitution = 0;
body = Main3.m_world.CreateDynamicBody(bodyDef);
body.CreateShape(boxDef);
body.SetMassFromShapes();
}
public function poZombie(){
var _local1:*;
_local1 = 0;
while (_local1 < zombArr.length) {
if (((!((zombArr[_local1] == null))) && ((zombArr[_local1].action == true)))){
zombArr[_local1].checking();
};
_local1++;
};
proveril = true;
}
public function removeVonisa(){
if (newVonisa != null){
vonsSprite.removeChild(newVonisa);
newVonisa = null;
};
}
override public function getSprites(_arg1, _arg2){
vonsSprite = _arg2;
armSprite = _arg1;
}
function frame1(){
stop();
}
public function brainDie(){
removeVonisa();
Main3.m_world.DestroyBody(body);
}
override public function update(){
var _local1:*;
var _local2:*;
var _local3:*;
super.update();
if (proveril == false){
_local2 = 0;
while (_local2 < phArr.length) {
if (((((!((phArr[_local2] == null))) && (this.hitTestObject(phArr[_local2])))) && (!((phArr[_local2] is phBrain))))){
poZombie();
};
_local2++;
};
};
if ((((proveril == true)) && ((body.GetLinearVelocity().y > 1)))){
(proveril == false);
poZombie();
};
if ((((((body.GetLinearVelocity().x == 0)) && ((body.GetLinearVelocity().y == 0)))) && ((newVonisa == null)))){
newVonisa = new vonisaClass();
newVonisa.x = this.x;
newVonisa.y = this.y;
vonsSprite.addChild(newVonisa);
newVonisa.mouseEnabled = false;
newVonisa.mouseChildren = false;
};
if (((!((newVonisa == null))) && (((!((body.GetLinearVelocity().x == 0))) || (!((body.GetLinearVelocity().y == 0))))))){
vonsSprite.removeChild(newVonisa);
newVonisa = null;
};
_local1 = 0;
while (_local1 < ninArr.length) {
if (Math.abs((ninArr[_local1].x - this.x)) < ninArr[_local1].doBrain){
ninArr[_local1].doBrain = Math.abs((ninArr[_local1].x - this.x));
};
if (((((((((!((newVonisa == null))) && ((ninArr[_local1].otkryta == false)))) && ((Math.abs((ninArr[_local1].x - newVonisa.x)) < 200)))) && ((Math.abs((ninArr[_local1].y - newVonisa.y)) < 12)))) && ((newVonisa.currentFrame > Math.ceil((Math.abs((ninArr[_local1].x - newVonisa.x)) / 2)))))){
ninArr[_local1].otkryta = true;
};
if ((((((Math.abs((ninArr[_local1].myEarth.x - this.x)) < 40)) && ((Math.abs((ninArr[_local1].myEarth.y - this.y)) < 25)))) && ((ninArr[_local1].otkryta == false)))){
_local3 = new arm();
_local3.x = ninArr[_local1].myEarth.x;
_local3.y = (ninArr[_local1].myEarth.y + 20);
_local3.rotation = (_local3.rotation - ((Math.atan(((this.x - ninArr[_local1].myEarth.x) / ((this.y - ninArr[_local1].myEarth.y) - ninArr[_local1].myEarth.height))) / Math.PI) * 180));
armSprite.addChild(_local3);
ninArr[_local1].myEarth.gotoAndPlay("open");
_local3.gotoAndPlay("armgo");
sozrali = true;
brainKapec = true;
};
if ((((((((Math.abs((ninArr[_local1].myEarth.x - this.x)) < 25)) && ((Math.abs((ninArr[_local1].myEarth.y - this.y)) < 10)))) && ((ninArr[_local1].otkryta == true)))) && ((sozrali == false)))){
if ((((Math.abs((ninArr[_local1].myEarth.x - this.x)) > 4)) && ((ninArr[_local1].myEarth.x > this.x)))){
ninArr[_local1].myEarth.gotoAndPlay("openL");
} else {
if ((((Math.abs((ninArr[_local1].myEarth.x - this.x)) > 4)) && ((ninArr[_local1].myEarth.x < this.x)))){
ninArr[_local1].myEarth.gotoAndPlay("openR");
} else {
ninArr[_local1].myEarth.gotoAndPlay("openC");
};
};
sozrali = true;
brainKapec = true;
};
_local1++;
};
}
public function addVzr(){
var _local1:*;
_local1 = new brainBoom();
_local1.x = this.x;
_local1.y = this.y;
armSprite.addChild(_local1);
sozrali = true;
if (Main3.naSpec != true){
brainKapec = true;
};
}
}
}//package
Section 266
//phInvis (phInvis)
package {
import Box2D.Collision.Shapes.*;
import Box2D.Dynamics.*;
public class phInvis extends phBody {
private var bodyDef:b2BodyDef;
var boxDef:b2PolygonDef;
public function phInvis(){
var _local1:*;
super();
bodyDef = new b2BodyDef();
bodyDef.position.x = (this.x / Main3.m_physScale);
bodyDef.position.y = (this.y / Main3.m_physScale);
boxDef = new b2PolygonDef();
_local1 = this.rotation;
this.rotation = 0;
boxDef.SetAsBox((this.width / (Main3.m_physScale * 2)), (this.height / (Main3.m_physScale * 2)));
bodyDef.angle = (_local1 / (180 / Math.PI));
boxDef.density = 0.3;
boxDef.friction = 0.2;
boxDef.restitution = 0;
boxDef.groupIndex = -6;
body = Main3.m_world.CreateDynamicBody(bodyDef);
body.CreateShape(boxDef);
body.SetMassFromShapes();
this.rotation = _local1;
}
override public function update(){
super.update();
}
}
}//package
Section 267
//phPlank (phPlank)
package {
import Box2D.Collision.Shapes.*;
import Box2D.Dynamics.*;
public class phPlank extends phBody {
private var bodyDef:b2BodyDef;
var boxDef:b2PolygonDef;
public function phPlank(){
var _local1:*;
super();
addFrameScript(0, frame1);
mozetUtonut = false;
bodyDef = new b2BodyDef();
bodyDef.position.x = (this.x / Main3.m_physScale);
bodyDef.position.y = (this.y / Main3.m_physScale);
boxDef = new b2PolygonDef();
_local1 = this.rotation;
this.rotation = 0;
boxDef.SetAsBox((this.width / (Main3.m_physScale * 2)), (this.height / (Main3.m_physScale * 2)));
bodyDef.angle = (_local1 / (180 / Math.PI));
boxDef.density = 0.1;
boxDef.friction = 0.3;
boxDef.restitution = 0;
boxDef.groupIndex = -6;
body = Main3.m_world.CreateStaticBody(bodyDef);
body.CreateShape(boxDef);
body.SetMassFromShapes();
this.rotation = _local1;
}
function frame1(){
this.visible = false;
}
override public function update(){
super.update();
}
}
}//package
Section 268
//phPlankDynam (phPlankDynam)
package {
import Box2D.Collision.Shapes.*;
import Box2D.Dynamics.*;
public class phPlankDynam extends phBody {
private var bodyDef:b2BodyDef;
var boxDef:b2PolygonDef;
public function phPlankDynam(){
var _local1:*;
super();
bodyDef = new b2BodyDef();
bodyDef.position.x = (this.x / Main3.m_physScale);
bodyDef.position.y = (this.y / Main3.m_physScale);
boxDef = new b2PolygonDef();
_local1 = this.rotation;
this.rotation = 0;
boxDef.SetAsBox((this.width / (Main3.m_physScale * 2)), (this.height / (Main3.m_physScale * 2)));
bodyDef.angle = (_local1 / (180 / Math.PI));
boxDef.density = 0.3;
boxDef.friction = 0.2;
boxDef.restitution = 0;
body = Main3.m_world.CreateDynamicBody(bodyDef);
body.CreateShape(boxDef);
body.SetMassFromShapes();
this.rotation = _local1;
}
override public function update(){
super.update();
}
}
}//package
Section 269
//phPlankKrest (phPlankKrest)
package {
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
public class phPlankKrest extends phBody {
private var bodyDef:b2BodyDef;
private var HGT;// = 20
private var WDT;// = 100
private var poX;// = -20
var bort_1:b2PolygonDef;
var molot:b2PolygonDef;
private var poY;// = 40
var boxDef:b2PolygonDef;
var bort_2:b2PolygonDef;
private var HGT1;// = 20
private var WDT1;// = 100
public function phPlankKrest(){
var _local1:*;
var _local2:b2BodyDef;
WDT1 = 100;
WDT = 100;
HGT = 20;
HGT1 = 20;
poX = -20;
poY = 40;
super();
_local1 = this.rotation;
this.rotation = 0;
_local2 = new b2BodyDef();
_local2.position.x = (this.x / Main3.m_physScale);
_local2.position.y = (this.y / Main3.m_physScale);
molot = new b2PolygonDef();
molot.SetAsOrientedBox(((WDT / Main3.m_physScale) / 2), ((HGT / Main3.m_physScale) / 2), new b2Vec2(0, 0), 0);
molot.density = 1;
molot.friction = 0.1;
molot.restitution = 0;
bort_1 = new b2PolygonDef();
bort_1.SetAsOrientedBox(((HGT1 / Main3.m_physScale) / 2), ((WDT1 / Main3.m_physScale) / 2), new b2Vec2(0, 0), 0);
bort_1.density = 1;
bort_1.friction = 0.1;
bort_1.restitution = 0;
_local2.angle = (_local1 / (180 / Math.PI));
body = Main3.m_world.CreateDynamicBody(_local2);
body.CreateShape(molot);
body.CreateShape(bort_1);
body.SetMassFromShapes();
this.rotation = _local1;
}
override public function update(){
super.update();
}
}
}//package
Section 270
//phPlankP (phPlankP)
package {
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
public class phPlankP extends phBody {
private var bodyDef:b2BodyDef;
private var HGT;// = 40
private var WDT;// = 80
private var poX;// = 40
var bort_1:b2PolygonDef;
var molot:b2PolygonDef;
private var poY;// = 20
var boxDef:b2PolygonDef;
var bort_2:b2PolygonDef;
private var HGT1;// = 20
public function phPlankP(){
var _local1:*;
var _local2:b2BodyDef;
WDT = 80;
HGT = 40;
HGT1 = 20;
poX = 40;
poY = 20;
super();
_local1 = this.rotation;
this.rotation = 0;
_local2 = new b2BodyDef();
_local2.position.x = (this.x / Main3.m_physScale);
_local2.position.y = (this.y / Main3.m_physScale);
molot = new b2PolygonDef();
molot.SetAsOrientedBox(((WDT / Main3.m_physScale) / 2), ((HGT / Main3.m_physScale) / 2), new b2Vec2(0, (-(poY) / Main3.m_physScale)), 0);
molot.density = 1;
molot.friction = 0.1;
molot.restitution = 0;
bort_1 = new b2PolygonDef();
bort_1.SetAsOrientedBox(((HGT1 / Main3.m_physScale) / 2), ((WDT / Main3.m_physScale) / 2), new b2Vec2((poX / Main3.m_physScale), 0), 0);
bort_1.density = 1;
bort_1.friction = 0.1;
bort_1.restitution = 0;
bort_2 = new b2PolygonDef();
bort_2.SetAsOrientedBox(((HGT1 / Main3.m_physScale) / 2), ((WDT / Main3.m_physScale) / 2), new b2Vec2((-(poX) / Main3.m_physScale), 0), 0);
bort_2.density = 1;
bort_2.friction = 0.1;
bort_2.restitution = 0;
_local2.angle = (_local1 / (180 / Math.PI));
body = Main3.m_world.CreateDynamicBody(_local2);
body.CreateShape(molot);
body.CreateShape(bort_1);
body.CreateShape(bort_2);
body.SetMassFromShapes();
this.rotation = _local1;
}
override public function update(){
super.update();
}
}
}//package
Section 271
//phPlankT (phPlankT)
package {
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
public class phPlankT extends phBody {
private var bodyDef:b2BodyDef;
private var HGT;// = 20
private var WDT;// = 160
private var poX;// = -20
var bort_1:b2PolygonDef;
var molot:b2PolygonDef;
private var poY;// = 40
var boxDef:b2PolygonDef;
var bort_2:b2PolygonDef;
private var HGT1;// = 20
private var WDT1;// = 100
public function phPlankT(){
var _local1:*;
var _local2:b2BodyDef;
WDT1 = 100;
WDT = 160;
HGT = 20;
HGT1 = 20;
poX = -20;
poY = 40;
super();
_local1 = this.rotation;
this.rotation = 0;
_local2 = new b2BodyDef();
_local2.position.x = (this.x / Main3.m_physScale);
_local2.position.y = (this.y / Main3.m_physScale);
molot = new b2PolygonDef();
molot.SetAsOrientedBox(((WDT / Main3.m_physScale) / 2), ((HGT / Main3.m_physScale) / 2), new b2Vec2((20 / Main3.m_physScale), 0), 0);
molot.density = 1;
molot.friction = 0.1;
molot.restitution = 0;
bort_1 = new b2PolygonDef();
bort_1.SetAsOrientedBox(((HGT1 / Main3.m_physScale) / 2), ((WDT1 / Main3.m_physScale) / 2), new b2Vec2((poX / Main3.m_physScale), (-(poY) / Main3.m_physScale)), 0);
bort_1.density = 1;
bort_1.friction = 0.1;
bort_1.restitution = 0;
_local2.angle = (_local1 / (180 / Math.PI));
body = Main3.m_world.CreateDynamicBody(_local2);
body.CreateShape(molot);
body.CreateShape(bort_1);
body.SetMassFromShapes();
this.rotation = _local1;
}
override public function update(){
super.update();
}
}
}//package
Section 272
//phPlankZubs (phPlankZubs)
package {
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
public class phPlankZubs extends phBody {
private var bodyDef:b2BodyDef;
private var HGT;// = 20
private var WDT;// = 320
var bort_3:b2PolygonDef;
private var poX;// = -60
var bort_1:b2PolygonDef;
var bort_4:b2PolygonDef;
var molot:b2PolygonDef;
private var poY;// = -15
var boxDef:b2PolygonDef;
var bort_2:b2PolygonDef;
private var WDT1;// = 50
public function phPlankZubs(){
var _local1:*;
var _local2:b2BodyDef;
WDT1 = 50;
WDT = 320;
HGT = 20;
poX = -60;
poY = -15;
super();
_local1 = this.rotation;
this.rotation = 0;
_local2 = new b2BodyDef();
_local2.position.x = (this.x / Main3.m_physScale);
_local2.position.y = (this.y / Main3.m_physScale);
molot = new b2PolygonDef();
molot.SetAsOrientedBox(((WDT / Main3.m_physScale) / 2), ((HGT / Main3.m_physScale) / 2), new b2Vec2((85 / Main3.m_physScale), 0), 0);
molot.density = 1;
molot.friction = 0.1;
molot.restitution = 0;
bort_1 = new b2PolygonDef();
bort_1.SetAsOrientedBox(((HGT / Main3.m_physScale) / 2), ((WDT1 / Main3.m_physScale) / 2), new b2Vec2(0, (poY / Main3.m_physScale)), 0);
bort_1.density = 1;
bort_1.friction = 0.1;
bort_1.restitution = 0;
bort_2 = new b2PolygonDef();
bort_2.SetAsOrientedBox(((HGT / Main3.m_physScale) / 2), ((WDT1 / Main3.m_physScale) / 2), new b2Vec2((-(poX) / Main3.m_physScale), (poY / Main3.m_physScale)), 0);
bort_2.density = 1;
bort_2.friction = 0.1;
bort_2.restitution = 0;
bort_3 = new b2PolygonDef();
bort_3.SetAsOrientedBox(((HGT / Main3.m_physScale) / 2), ((WDT1 / Main3.m_physScale) / 2), new b2Vec2((poX / Main3.m_physScale), (poY / Main3.m_physScale)), 0);
bort_3.density = 1;
bort_3.friction = 0.1;
bort_3.restitution = 0;
bort_4 = new b2PolygonDef();
bort_4.SetAsOrientedBox(((HGT / Main3.m_physScale) / 2), ((WDT1 / Main3.m_physScale) / 2), new b2Vec2(((-2 * poX) / Main3.m_physScale), (poY / Main3.m_physScale)), 0);
bort_4.density = 1;
bort_4.friction = 0.1;
bort_4.restitution = 0;
_local2.angle = (_local1 / (180 / Math.PI));
body = Main3.m_world.CreateDynamicBody(_local2);
body.CreateShape(molot);
body.CreateShape(bort_1);
body.CreateShape(bort_2);
body.CreateShape(bort_3);
body.CreateShape(bort_4);
body.SetMassFromShapes();
this.rotation = _local1;
}
override public function update(){
super.update();
}
}
}//package
Section 273
//picEarth (picEarth)
package {
import flash.display.*;
public dynamic class picEarth extends MovieClip {
public var brarm1:MovieClip;
public function picEarth(){
addFrameScript(0, frame1, 13, frame14, 36, frame37, 58, frame59, 64, frame65, 77, frame78, 90, frame91);
}
function frame65(){
gotoAndStop("walks");
}
function frame78(){
gotoAndStop("walks");
}
function frame91(){
gotoAndStop("walks");
}
function frame14(){
stop();
}
function frame1(){
stop();
}
function frame37(){
gotoAndStop("stat");
}
function frame59(){
gotoAndStop("stat");
}
}
}//package
Section 274
//picMina (picMina)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.ui.*;
import flash.utils.*;
public class picMina extends pictureAction {
private var zombSpr:Sprite;
private var brainSpr:Sprite;
public function picMina(){
addFrameScript(15, frame16, 29, frame30);
}
public function getSprites(_arg1, _arg2){
brainSpr = _arg1;
zombSpr = _arg2;
}
function frame16(){
gotoAndPlay("stat");
}
function frame30(){
stop();
}
override public function update(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
super.update();
_local1 = 0;
while (_local1 < phArr.length) {
if (((((!((phArr[_local1] == null))) && ((Math.abs((phArr[_local1].x - this.x)) < 10)))) && ((Math.abs(((phArr[_local1].y + (phArr[_local1].height / 2)) - this.y)) < 15)))){
if ((phArr[_local1] is phBrain)){
phArr[_local1].brainDie();
phArr[_local1].sozrali = true;
phArr[_local1].brainKapec = true;
};
if ((phArr[_local1] is zombClass)){
phArr[_local1].bombom();
};
this.gotoAndPlay("boom");
_local2 = new gamevzryv();
_local3 = new theSound(0, 0.5, _local2);
_local4 = picArr.indexOf(this);
picArr[_local4] = null;
};
_local1++;
};
}
}
}//package
Section 275
//picNIN (picNIN)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.ui.*;
import flash.utils.*;
public class picNIN extends pictureAction {
public var myEarth;
private var zemSprite:Sprite;
public var otkryta:Boolean;// = false
public var doBrain;// = 1000
public var numberZ:uint;// = 1
public function picNIN(){
otkryta = false;
doBrain = 1000;
numberZ = 1;
super();
addFrameScript(0, frame1, 23, frame24, 49, frame50);
numberZ = Main3.numberZomb;
Main3.numberZomb++;
if (Main3.numberZomb > 8){
Main3.numberZomb = 1;
};
}
public function addEarth(){
myEarth = new picEarth();
myEarth.x = this.x;
myEarth.y = (this.y - (this.height / 3.2));
zemSprite.addChild(myEarth);
}
public function getSprites(_arg1){
zemSprite = _arg1;
}
function frame1(){
stop();
}
function frame24(){
gotoAndPlay("walk");
}
override public function update(){
super.update();
if ((((otkryta == true)) && ((this.currentLabel == "stat")))){
this.gotoAndPlay("razr");
myEarth.gotoAndPlay("razr");
this.dispatchEvent(new Event("zombieNew"));
};
}
function frame50(){
gotoAndStop("stat");
}
}
}//package
Section 276
//pictureAction (pictureAction)
package {
import flash.display.*;
public class pictureAction extends MovieClip {
public var phArr:Array;
public var ninArr:Array;
public var picArr:Array;
public var brainArr:Array;
public var krArr:Array;
public var zombArr:Array;
public function getArrays(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6){
phArr = _arg1;
picArr = _arg2;
ninArr = _arg3;
brainArr = _arg4;
zombArr = _arg5;
krArr = _arg6;
}
public function update(){
}
}
}//package
Section 277
//picWater (picWater)
package {
public class picWater extends pictureAction {
override public function update(){
super.update();
}
}
}//package
Section 278
//picZonaStrel (picZonaStrel)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.ui.*;
import flash.utils.*;
public class picZonaStrel extends pictureAction {
private var ukraya:Boolean;
private var addSpr:Sprite;
private var blad:int;// = 1
public function picZonaStrel(){
blad = 1;
super();
addFrameScript(0, frame1);
}
public function addDrob(_arg1, _arg2){
var _local3:*;
_local3 = new drobs();
_local3.x = _arg1;
_local3.y = _arg2;
if ((_arg1 - 20) < (this.x - (this.width / 2))){
ukraya = true;
if ((_arg2 - 20) < (this.y - (this.height / 2))){
_local3 = new drobs3();
_local3.x = (this.x - (this.width / 2));
_local3.y = (this.y - (this.height / 2));
_local3.rotation = (_local3.rotation - 90);
} else {
_local3 = new drobs2();
_local3.x = (this.x - (this.width / 2));
_local3.y = _arg2;
};
};
if ((_arg1 + 20) > (this.x + (this.width / 2))){
ukraya = true;
if ((_arg2 - 20) < (this.y - (this.height / 2))){
_local3 = new drobs3();
_local3.x = (this.x + (this.width / 2));
_local3.y = (this.y - (this.height / 2));
} else {
_local3 = new drobs2();
_local3.x = (this.x + (this.width / 2));
_local3.rotation = (_local3.rotation + 180);
_local3.y = _arg2;
};
};
if (ukraya == false){
if ((_arg2 - 20) < (this.y - (this.height / 2))){
_local3 = new drobs2();
_local3.x = _arg1;
_local3.y = (this.y - (this.height / 2));
_local3.rotation = (_local3.rotation + 90);
};
if ((_arg2 + 20) > (this.y + (this.height / 2))){
_local3 = new drobs2();
_local3.x = _arg1;
_local3.y = (this.y + (this.height / 2));
_local3.rotation = (_local3.rotation - 90);
};
};
addSpr.addChild(_local3);
krArr.push(_local3);
ukraya = false;
}
public function getSprites(_arg1){
addSpr = _arg1;
}
function frame1(){
this.alpha = 0;
}
override public function update(){
super.update();
if (krArr.length > 30){
addSpr.removeChild(krArr[0]);
krArr.splice(0, 1);
};
}
public function addKrov(_arg1, _arg2){
var _local3:Class;
var _local4:*;
if (Main3.krovTrue){
_local3 = (getDefinitionByName(("blood" + blad)) as Class);
_local4 = new (_local3);
_local4.x = _arg1;
_local4.y = _arg2;
if ((_arg1 - 20) < (this.x - (this.width / 2))){
_local4 = new blood4();
_local4.x = (this.x - (this.width / 2));
_local4.y = _arg2;
};
if ((_arg1 + 20) > (this.x + (this.width / 2))){
_local4 = new blood4();
new blood4().rotation = (_local4.rotation + 180);
_local4.x = (this.x + (this.width / 2));
_local4.y = _arg2;
};
addSpr.addChild(_local4);
blad++;
if (blad > 3){
blad = 1;
};
};
}
}
}//package
Section 279
//picZonaZapret (picZonaZapret)
package {
public class picZonaZapret extends pictureAction {
public function picZonaZapret(){
addFrameScript(0, frame1);
}
function frame1(){
this.alpha = 0;
}
override public function update(){
super.update();
}
}
}//package
Section 280
//plankDynamYa (plankDynamYa)
package {
import flash.display.*;
public dynamic class plankDynamYa extends MovieClip {
}
}//package
Section 281
//plitka (plitka)
package {
import flash.display.*;
public dynamic class plitka extends MovieClip {
}
}//package
Section 282
//podsk (podsk)
package {
import flash.display.*;
public dynamic class podsk extends MovieClip {
public var zombos2:MovieClip;
public var zombos3:MovieClip;
public var zombos6:MovieClip;
public var zombos4:MovieClip;
public var zombos5:MovieClip;
public var zombos1:MovieClip;
public var tck1:tochka;
public function podsk(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9);
}
function frame3(){
stop();
}
function frame6(){
stop();
}
function frame7(){
stop();
}
function frame1(){
stop();
}
function frame4(){
stop();
}
function frame5(){
stop();
}
function frame9(){
stop();
}
function frame8(){
stop();
}
function frame2(){
stop();
}
}
}//package
Section 283
//podskazkaClass (podskazkaClass)
package {
public class podskazkaClass extends cursorMoove1 {
override public function update(){
super.update();
}
}
}//package
Section 284
//polosa (polosa)
package {
import flash.display.*;
public dynamic class polosa extends MovieClip {
}
}//package
Section 285
//preload (preload)
package {
import flash.display.*;
public dynamic class preload extends MovieClip {
public function preload(){
addFrameScript(99, frame100);
}
function frame100(){
stop();
}
}
}//package
Section 286
//Program (Program)
package {
import flash.display.*;
public class Program extends Sprite {
public function Program(){
var _local1:*;
var _local2:AnotherClass;
super();
_local1 = new init2();
_local2 = new AnotherClass();
_local1.y = 0;
_local1.x = 0;
addChild(_local1);
}
}
}//package
Section 287
//prPlay (prPlay)
package {
import flash.display.*;
public dynamic class prPlay extends SimpleButton {
}
}//package
Section 288
//pyk1 (pyk1)
package {
import flash.media.*;
public dynamic class pyk1 extends Sound {
}
}//package
Section 289
//rProgres (rProgres)
package {
import flash.display.*;
public dynamic class rProgres extends MovieClip {
public var no:SimpleButton;
public var yes:SimpleButton;
public function rProgres(){
addFrameScript(0, frame1, 12, frame13);
}
function frame1(){
stop();
stop();
}
function frame13(){
stop();
}
}
}//package
Section 290
//select3 (select3)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.ui.*;
import caurina.transitions.*;
public dynamic class select3 extends MovieClip {
var hs_URL:String;// = ""
var begun:MovieClip;
var levArray:Array;
var krestikM:MovieClip;
var stat:SharedObject;
var krestikS:MovieClip;
var hs_score:Number;// = 0
var hs_view:Number;// = 1
var hs_game:String;// = "needbrain2"
var totalS:Number;// = 0
public var Parent;
var selPic:MovieClip;
var mmz:Number;
var hsloader;// = null
public function select3():void{
selPic = new menuSelects();
levArray = [];
totalS = 0;
begun = new begunok();
stat = SharedObject.getLocal("brainzombie2");
hs_game = "needbrain2";
hs_score = 0;
hs_view = 1;
hs_URL = "";
hsloader = null;
super();
selPic.x = 320;
selPic.y = 240;
addChild(selPic);
addEventListener(Event.ENTER_FRAME, ini);
}
function goGame(){
delListeners();
Main3.lvl = mmz;
removeChild(selPic);
Parent = null;
selPic = null;
levArray = null;
begun = null;
krestikS = null;
krestikM = null;
Main3(parent.parent).newLevel();
}
function ini(_arg1:Event){
if (this.parent != null){
removeEventListener(Event.ENTER_FRAME, ini);
go();
};
}
function chikchik(){
}
function menMus(_arg1:MouseEvent){
Main3.musc = !(Main3.musc);
if (krestikM != null){
Main3.MUS.theMenuMus();
Parent.removeChild(krestikM);
krestikM = null;
stat.data.mus = true;
} else {
krestikM = new offKrest();
krestikM.x = Parent.mMus.x;
krestikM.y = Parent.mMus.y;
Parent.addChild(krestikM);
krestikM.mouseEnabled = false;
krestikM.mouseChildren = false;
Main3.MUS.theStopMus();
stat.data.mus = false;
};
}
function gotosite(_arg1:Event){
var _local2:URLRequest;
var _local3:*;
_local3 = "http://www.notdoppler.com/";
_local2 = new URLRequest(_local3);
navigateToURL(_local2, "_blank");
}
function chik(_arg1:MouseEvent){
var _local2:*;
var _local3:*;
_local2 = new knopkapyk();
_local3 = new theSound(0, 0.5, _local2);
}
function delListeners(){
var _local1:*;
if (hsloader != null){
Parent.removeChild(hsloader);
hsloader = null;
};
if (Parent.sbmt.visible == true){
Parent.sbmt.removeEventListener(MouseEvent.ROLL_OVER, chik);
Parent.sbmt.removeEventListener(MouseEvent.CLICK, submits);
};
Parent.mMus.removeEventListener(MouseEvent.ROLL_OVER, chik);
Parent.mSnd.removeEventListener(MouseEvent.ROLL_OVER, chik);
Parent.srstm.removeEventListener(MouseEvent.ROLL_OVER, chik);
Parent.dops.removeEventListener(MouseEvent.CLICK, gotosite);
Parent.mog.removeEventListener(MouseEvent.CLICK, gotosite);
Parent.srstm.removeEventListener(MouseEvent.CLICK, menuAl);
Parent.mMus.removeEventListener(MouseEvent.CLICK, menMus);
Parent.mSnd.removeEventListener(MouseEvent.CLICK, menSnd);
_local1 = 0;
while (_local1 < levArray.length) {
if (levArray[_local1].currentFrame != 1){
levArray[_local1].removeEventListener(MouseEvent.ROLL_OVER, inn);
levArray[_local1].removeEventListener(MouseEvent.ROLL_OUT, outt);
levArray[_local1].removeEventListener(MouseEvent.CLICK, klikk);
};
_local1++;
};
}
function klikk(_arg1:MouseEvent){
var _local2:*;
_local2 = _arg1.currentTarget.name.substr(1, 2);
mmz = _local2;
goGame();
}
function submits(_arg1:Event){
stat.data.sub = false;
Parent.sbmt.removeEventListener(MouseEvent.ROLL_OVER, chik);
Parent.sbmt.removeEventListener(MouseEvent.CLICK, submits);
Parent.sbmt.visible = false;
hs_score = totalS;
hsloader = new highscoreloader();
hsloader.x = -316;
hsloader.y = -210;
Parent.addChild(hsloader);
hsloader.loadHighscores(hs_game, hs_score, hs_view, hs_URL);
}
function menSnd(_arg1:MouseEvent){
Main3.snd = !(Main3.snd);
if (krestikS != null){
Parent.removeChild(krestikS);
krestikS = null;
stat.data.sound = true;
} else {
krestikS = new offKrest();
krestikS.x = Parent.mSnd.x;
krestikS.y = Parent.mSnd.y;
Parent.addChild(krestikS);
krestikS.mouseEnabled = false;
krestikS.mouseChildren = false;
stat.data.sound = false;
};
}
function outt(_arg1:MouseEvent){
_arg1.currentTarget.gotoAndStop(2);
_arg1.currentTarget.nomerL.visible = true;
}
function go(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:TextField;
var _local10:*;
var _local11:*;
Parent = selPic;
_local1 = Parent.numChildren;
if (stat.data.lastLevel == 1){
begun.gotoAndStop(1);
} else {
begun.gotoAndStop(Main3.lvl);
};
begun.x = -277;
begun.y = -178;
Parent.addChildAt(begun, 74);
begun.mouseEnabled = false;
begun.mouseChildren = false;
_local2 = 0;
while (_local2 < Main3.scoreArray.length) {
totalS = (totalS + Main3.scoreArray[_local2]);
_local2++;
};
_local3 = 0;
while (_local3 < _local1) {
_local7 = Parent.getChildAt(_local3);
if ((_local7 is TextField)){
if (_local7.text.indexOf(" ") > -1){
_local7.htmlText = ("" + totalS);
};
};
if ((((((_local7 is f090)) || ((_local7 is fon6s)))) || ((_local7 is fon5s)))){
_local7.mouseEnabled = false;
_local7.mouseChildren = false;
};
if ((_local7 is coin)){
_local7.gotoAndStop(1);
};
_local3++;
};
if (stat.data.sub == true){
Parent.sbmt.visible = true;
} else {
Parent.sbmt.visible = false;
};
Parent.srstm.addEventListener(MouseEvent.CLICK, menuAl);
Parent.mMus.addEventListener(MouseEvent.CLICK, menMus);
Parent.mSnd.addEventListener(MouseEvent.CLICK, menSnd);
Parent.dops.addEventListener(MouseEvent.CLICK, gotosite);
Parent.mog.addEventListener(MouseEvent.CLICK, gotosite);
if (stat.data.sub == true){
Parent.sbmt.visible = true;
Parent.sbmt.addEventListener(MouseEvent.ROLL_OVER, chik);
Parent.sbmt.addEventListener(MouseEvent.CLICK, submits);
};
Parent.mMus.addEventListener(MouseEvent.ROLL_OVER, chik);
Parent.mSnd.addEventListener(MouseEvent.ROLL_OVER, chik);
Parent.srstm.addEventListener(MouseEvent.ROLL_OVER, chik);
if ((((Main3.musc == false)) && ((krestikM == null)))){
krestikM = new offKrest();
krestikM.x = Parent.mMus.x;
krestikM.y = Parent.mMus.y;
Parent.addChild(krestikM);
krestikM.mouseEnabled = false;
krestikM.mouseChildren = false;
};
if ((((Main3.snd == false)) && ((krestikS == null)))){
krestikS = new offKrest();
krestikS.x = Parent.mSnd.x;
krestikS.y = Parent.mSnd.y;
Parent.addChild(krestikS);
krestikS.mouseEnabled = false;
krestikS.mouseChildren = false;
};
_local4 = Parent.numChildren;
_local5 = 0;
while (_local5 < _local4) {
_local8 = Parent.getChildAt(_local5);
if ((_local8 is numberL)){
if (_local8.name.substr(1, 2) <= stat.data.lastLevel){
_local8.gotoAndStop(2);
} else {
_local8.gotoAndStop(1);
_local8.nomerL.visible = false;
};
_local8.mouseChildren = false;
levArray.push(_local8);
_local9 = _local8.nomerL;
_local9.text = ("" + _local8.name.substr(1, 2));
};
if ((_local8 is coin)){
_local10 = _local8.name.substr(1, 2);
_local11 = 0;
while (_local11 < Main3.coinArray.length) {
if (Main3.coinArray[_local11] == _local10){
_local8.gotoAndStop(2);
break;
};
_local11++;
};
};
_local5++;
};
_local6 = 0;
while (_local6 < levArray.length) {
if (levArray[_local6].currentFrame != 1){
levArray[_local6].addEventListener(MouseEvent.ROLL_OVER, inn);
levArray[_local6].addEventListener(MouseEvent.ROLL_OUT, outt);
levArray[_local6].addEventListener(MouseEvent.CLICK, klikk);
};
_local6++;
};
}
function inn(_arg1:MouseEvent){
var _local2:*;
var _local3:*;
var _local4:*;
_local2 = new knopkapyk();
_local3 = new theSound(0, 0.5, _local2);
_arg1.currentTarget.gotoAndStop(3);
_arg1.currentTarget.nomerL.visible = false;
_local4 = _arg1.currentTarget.name.substr(1, 2);
begun.gotoAndStop(_local4);
Parent.scoresL.text = ("" + Main3.scoreArray[(_local4 - 1)]);
}
function menuAl(_arg1:Event){
delListeners();
removeChild(selPic);
Parent = null;
selPic = null;
levArray = null;
begun = null;
krestikS = null;
krestikM = null;
Main3(parent.parent).toMenu();
}
}
}//package
Section 291
//SELECTLEVEL (SELECTLEVEL)
package {
import flash.display.*;
public dynamic class SELECTLEVEL extends SimpleButton {
}
}//package
Section 292
//selectornavedenie (selectornavedenie)
package {
import flash.media.*;
public dynamic class selectornavedenie extends Sound {
}
}//package
Section 293
//Sgamevylazizmogily1 (Sgamevylazizmogily1)
package {
import flash.media.*;
public dynamic class Sgamevylazizmogily1 extends Sound {
}
}//package
Section 294
//Sgamevylazizmogily2 (Sgamevylazizmogily2)
package {
import flash.media.*;
public dynamic class Sgamevylazizmogily2 extends Sound {
}
}//package
Section 295
//Sgamevylazizmogily3 (Sgamevylazizmogily3)
package {
import flash.media.*;
public dynamic class Sgamevylazizmogily3 extends Sound {
}
}//package
Section 296
//Sgamevylazizmogily4 (Sgamevylazizmogily4)
package {
import flash.media.*;
public dynamic class Sgamevylazizmogily4 extends Sound {
}
}//package
Section 297
//stars (stars)
package {
import flash.media.*;
public dynamic class stars extends Sound {
}
}//package
Section 298
//startMovie (startMovie)
package {
import flash.display.*;
public dynamic class startMovie extends MovieClip {
public var mov1:MovieClip;
public var mov3:MovieClip;
public var mov2:MovieClip;
public var skips:btskip;
}
}//package
Section 299
//sZalaz (sZalaz)
package {
import flash.media.*;
public dynamic class sZalaz extends Sound {
}
}//package
Section 300
//Tamtam1 (Tamtam1)
package {
import flash.media.*;
public dynamic class Tamtam1 extends Sound {
}
}//package
Section 301
//theJoint (theJoint)
package {
import Box2D.Common.Math.*;
import Box2D.Dynamics.Joints.*;
import flash.display.*;
public class theJoint extends MovieClip {
private var phArr:Array;
public var the_rev_joint:b2RevoluteJointDef;
private var body1;
private var body2;
public function theJoint(){
the_rev_joint = new b2RevoluteJointDef();
super();
this.visible = false;
}
public function getArrays(_arg1){
phArr = _arg1;
}
public function doJoint(){
var _local1:*;
var _local2:phBody;
var _local3:b2Joint;
_local1 = 0;
while (_local1 < phArr.length) {
_local2 = phArr[_local1];
if (this.hitTestObject(_local2)){
if (body1 == null){
body1 = _local2.body;
} else {
body2 = _local2.body;
};
};
_local1++;
};
if (((!((body1 == null))) && (!((body2 == null))))){
the_rev_joint.Initialize(body1, body2, new b2Vec2((this.x / Main3.m_physScale), (this.y / Main3.m_physScale)));
_local3 = Main3.m_world.CreateJoint(the_rev_joint);
};
}
}
}//package
Section 302
//theJointHard (theJointHard)
package {
import Box2D.Common.Math.*;
import Box2D.Dynamics.Joints.*;
import flash.display.*;
public class theJointHard extends MovieClip {
private var phArr:Array;
public var the_rev_joint:b2RevoluteJointDef;
private var body1;
private var body2;
public function theJointHard(){
the_rev_joint = new b2RevoluteJointDef();
super();
this.visible = false;
}
public function getArrays(_arg1){
phArr = _arg1;
}
public function doJoint(){
var _local1:*;
var _local2:phBody;
var _local3:b2Joint;
_local1 = 0;
while (_local1 < phArr.length) {
_local2 = phArr[_local1];
if (this.hitTestObject(_local2)){
if (body1 == null){
body1 = _local2.body;
} else {
body2 = _local2.body;
};
};
_local1++;
};
if (((!((body1 == null))) && (!((body2 == null))))){
the_rev_joint.Initialize(body1, body2, new b2Vec2((this.x / Main3.m_physScale), (this.y / Main3.m_physScale)));
the_rev_joint.enableLimit = true;
the_rev_joint.collideConnected = false;
_local3 = Main3.m_world.CreateJoint(the_rev_joint);
};
}
}
}//package
Section 303
//thekrest (thekrest)
package {
import flash.display.*;
public dynamic class thekrest extends SimpleButton {
}
}//package
Section 304
//themenus (themenus)
package {
import flash.display.*;
public dynamic class themenus extends SimpleButton {
}
}//package
Section 305
//theMooveJoint (theMooveJoint)
package {
import Box2D.Dynamics.Joints.*;
public class theMooveJoint extends theJoint {
override public function doJoint(){
var _local1:b2Joint;
super.doJoint();
the_rev_joint.enableMotor = true;
the_rev_joint.motorSpeed = -0.4;
the_rev_joint.maxMotorTorque = 500;
_local1 = Main3.m_world.CreateJoint(the_rev_joint);
}
}
}//package
Section 306
//theMooveJoint1 (theMooveJoint1)
package {
import Box2D.Dynamics.Joints.*;
public class theMooveJoint1 extends theJoint {
override public function doJoint(){
var _local1:b2Joint;
super.doJoint();
the_rev_joint.enableMotor = true;
the_rev_joint.motorSpeed = 0.4;
the_rev_joint.maxMotorTorque = 500;
_local1 = Main3.m_world.CreateJoint(the_rev_joint);
}
}
}//package
Section 307
//theMusic (theMusic)
package {
import flash.media.*;
public class theMusic {
var mexMus;
var embientMus;
var scmex;
var sce;
var scg;
var ste;
var stg;
var menuMus;
var stm;
var scm;
var stmex;
var gameMus;
public function theMusic(){
menuMus = new musicmenuwavewithFX();
gameMus = new musicgameplaywave();
embientMus = new ambientgameplaywave();
mexMus = new mechanizm();
super();
}
public function theMexGo(){
if (scmex == null){
scmex = new SoundChannel();
stmex = new SoundTransform(0.6, 0);
scmex = mexMus.play(0, 10000);
scmex.soundTransform = stmex;
};
}
public function theEmbientGo(){
if (sce == null){
sce = new SoundChannel();
ste = new SoundTransform(0.6, 0);
sce = embientMus.play(0, 10000);
sce.soundTransform = ste;
};
}
public function theEmbientStop(){
if (sce != null){
sce.stop();
sce = null;
};
}
public function theGameMus(){
if (Main3.musc == true){
if (scm != null){
scm.stop();
scm = null;
};
if (scg == null){
scg = new SoundChannel();
stg = new SoundTransform(1, 0);
scg = gameMus.play(0, 10000);
scg.soundTransform = stg;
};
};
}
public function theMexStop(){
if (scmex != null){
scmex.stop();
scmex = null;
};
}
public function theStopMus(){
if (scm != null){
scm.stop();
scm = null;
};
if (scg != null){
scg.stop();
scg = null;
};
}
public function theMenuMus(){
if (Main3.musc == true){
if (scg != null){
scg.stop();
scg = null;
};
if (scm == null){
scm = new SoundChannel();
stm = new SoundTransform(0.7, 0);
scm = menuMus.play(0, 10000);
scm.soundTransform = stm;
};
};
}
}
}//package
Section 308
//thepusks (thepusks)
package {
import flash.display.*;
public dynamic class thepusks extends MovieClip {
public function thepusks(){
addFrameScript(0, frame1, 3, frame4);
}
function frame1(){
stop();
}
function frame4(){
stop();
}
}
}//package
Section 309
//theSound (theSound)
package {
import flash.media.*;
public class theSound {
public function theSound(_arg1, _arg2, _arg3){
var _local4:*;
super();
if (Main3.snd == true){
_local4 = new SoundChannel();
_arg1 = new SoundTransform(_arg2, 0);
_local4 = _arg3.play(_arg1, 0);
_local4.soundTransform = _arg1;
};
}
}
}//package
Section 310
//theSound1 (theSound1)
package {
import flash.media.*;
public class theSound1 {
var tata;
public function theSound1(_arg1, _arg2){
var _local3:*;
tata = new pyk1();
super();
if (Main3.snd == true){
_local3 = new SoundChannel();
_arg1 = new SoundTransform(_arg2, 0);
_local3 = tata.play(_arg1, 0);
_local3.soundTransform = _arg1;
};
}
}
}//package
Section 311
//theStar (theStar)
package {
public class theStar extends pictureAction {
public function theStar(){
addFrameScript(15, frame16);
}
function frame16(){
stop();
}
override public function update(){
super.update();
}
}
}//package
Section 312
//thesubmit (thesubmit)
package {
import flash.display.*;
public dynamic class thesubmit extends SimpleButton {
}
}//package
Section 313
//thetudasuda (thetudasuda)
package {
import flash.display.*;
public dynamic class thetudasuda extends SimpleButton {
}
}//package
Section 314
//to1 (to1)
package {
import flash.display.*;
public dynamic class to1 extends MovieClip {
public var rsts1:awedsw;
}
}//package
Section 315
//tochka (tochka)
package {
import flash.display.*;
public dynamic class tochka extends MovieClip {
public function tochka(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 316
//torch (torch)
package {
import flash.display.*;
public dynamic class torch extends MovieClip {
public function torch(){
addFrameScript(14, frame15);
}
function frame15(){
stop();
}
}
}//package
Section 317
//torch1 (torch1)
package {
public class torch1 extends pictureAction {
public function torch1(){
addFrameScript(0, frame1, 14, frame15);
}
function frame15(){
stop();
}
function frame1(){
stop();
}
override public function update(){
super.update();
}
}
}//package
Section 318
//water1 (water1)
package {
public class water1 extends waters {
}
}//package
Section 319
//water10 (water10)
package {
public class water10 extends waters {
}
}//package
Section 320
//water11 (water11)
package {
public class water11 extends waters {
}
}//package
Section 321
//water12 (water12)
package {
public class water12 extends waters {
}
}//package
Section 322
//water13 (water13)
package {
public class water13 extends waters {
}
}//package
Section 323
//water14 (water14)
package {
public class water14 extends waters {
}
}//package
Section 324
//water15 (water15)
package {
public class water15 extends waters {
}
}//package
Section 325
//water16 (water16)
package {
public class water16 extends waters {
}
}//package
Section 326
//water17 (water17)
package {
public class water17 extends waters {
}
}//package
Section 327
//water18 (water18)
package {
public class water18 extends waters {
}
}//package
Section 328
//water19 (water19)
package {
public class water19 extends waters {
}
}//package
Section 329
//water2 (water2)
package {
public class water2 extends waters {
}
}//package
Section 330
//water20 (water20)
package {
public class water20 extends waters {
}
}//package
Section 331
//water21 (water21)
package {
public class water21 extends waters {
}
}//package
Section 332
//water22 (water22)
package {
public class water22 extends waters {
}
}//package
Section 333
//water23 (water23)
package {
public class water23 extends waters {
}
}//package
Section 334
//water3 (water3)
package {
public class water3 extends waters {
}
}//package
Section 335
//water4 (water4)
package {
public class water4 extends waters {
}
}//package
Section 336
//water5 (water5)
package {
public class water5 extends waters {
}
}//package
Section 337
//water6 (water6)
package {
public class water6 extends waters {
}
}//package
Section 338
//water7 (water7)
package {
public class water7 extends waters {
}
}//package
Section 339
//water8 (water8)
package {
public class water8 extends waters {
}
}//package
Section 340
//water9 (water9)
package {
public class water9 extends waters {
}
}//package
Section 341
//waters (waters)
package {
import flash.display.*;
public class waters extends MovieClip {
}
}//package
Section 342
//wbmst (wbmst)
package {
import flash.display.*;
public dynamic class wbmst extends SimpleButton {
}
}//package
Section 343
//wbmst1 (wbmst1)
package {
import flash.display.*;
public dynamic class wbmst1 extends SimpleButton {
}
}//package
Section 344
//wbmst2 (wbmst2)
package {
import flash.display.*;
public dynamic class wbmst2 extends SimpleButton {
}
}//package
Section 345
//weldannn (weldannn)
package {
import flash.display.*;
public dynamic class weldannn extends MovieClip {
}
}//package
Section 346
//weldon (weldon)
package {
import flash.display.*;
public dynamic class weldon extends MovieClip {
public var panelka:panelDone;
public function weldon(){
addFrameScript(76, frame77);
}
function frame77(){
stop();
}
}
}//package
Section 347
//weldonCongrat (weldonCongrat)
package {
import flash.display.*;
public dynamic class weldonCongrat extends MovieClip {
public function weldonCongrat(){
addFrameScript(76, frame77);
}
function frame77(){
stop();
}
}
}//package
Section 348
//whell (whell)
package {
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Dynamics.Contacts.*;
import Box2D.Dynamics.*;
import Box2D.Collision.*;
import Box2D.Common.*;
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.ui.*;
import flash.utils.*;
import General.*;
import caurina.transitions.*;
public class whell extends phBody {
private var bodyDef:b2BodyDef;
private var boxDefC:b2CircleDef;
public function whell(){
bodyDef = new b2BodyDef();
bodyDef.position.x = (this.x / Main3.m_physScale);
bodyDef.position.y = (this.y / Main3.m_physScale);
boxDefC = new b2CircleDef();
boxDefC.radius = (this.width / (Main3.m_physScale * 2));
boxDefC.density = 0.2;
boxDefC.friction = 0.3;
boxDefC.restitution = 0.4;
body = Main3.m_world.CreateDynamicBody(bodyDef);
body.CreateShape(boxDefC);
body.SetMassFromShapes();
}
override public function update(){
var _local1:*;
super.update();
_local1 = 0;
while (_local1 < phArr.length) {
if (((((((((!((phArr[_local1] == null))) && ((Math.abs((phArr[_local1].x - this.x)) < 30)))) && ((Math.abs((phArr[_local1].y - (this.y + (this.height / 2)))) < 15)))) && ((body.GetLinearVelocity().y > 2)))) && (((this.y + (this.height / 2)) < phArr[_local1].y)))){
if ((phArr[_local1] is phBrain)){
phArr[_local1].addVzr();
phArr[_local1].brainDie();
phArr[_local1].sozrali = true;
};
if ((phArr[_local1] is zombClass)){
phArr[_local1].davdav();
};
};
_local1++;
};
}
}
}//package
Section 349
//whell1 (whell1)
package {
public class whell1 extends whell {
}
}//package
Section 350
//win3 (win3)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.ui.*;
import flash.utils.*;
public dynamic class win3 extends MovieClip {
var currentZ:MovieClip;
var OUTZ:uint;// = 55
var miniZ:Array;
var currentL:int;// = 0
var winPic:MovieClip;
var show_btn:SimpleButton;
var hs_URL:String;// = ""
var stepp:int;// = 0
var axe:MovieClip;
var timer:int;// = 0
var goods:int;// = 0
var hs_score:Number;// = 0
var monetki:MovieClip;
var cKadr;// = 1
var hs_view:Number;// = 2
var lArray:Array;
var hs_game:String;// = "needbrain2"
var submit_btn:SimpleButton;
var bads:int;// = 0
var totalSc:int;// = 7
public var Parent;
public function win3():void{
winPic = new menuCongrat();
miniZ = new Array();
lArray = new Array();
axe = new molot();
cKadr = 1;
stepp = 0;
totalSc = 7;
timer = 0;
OUTZ = 55;
currentL = 0;
bads = 0;
goods = 0;
hs_game = "needbrain2";
hs_score = 0;
hs_view = 2;
hs_URL = "";
super();
winPic.x = 320;
winPic.y = 240;
addChild(winPic);
addEventListener(Event.ENTER_FRAME, init111);
}
function init111(_arg1:Event){
removeEventListener(Event.ENTER_FRAME, init111);
go();
}
private function whatZ(){
var _local1:*;
_local1 = Math.round((Math.random() * 8));
return (_local1);
}
function submits(_arg1:Event){
Parent.sbmt.removeEventListener(MouseEvent.CLICK, submits);
Parent.sbmt.visible = false;
hs_score = totalSc;
Parent.hsloader.loadHighscores(hs_game, hs_score, hs_view, hs_URL);
}
function delListeners(){
if (Parent.sbmt.visible == true){
Parent.sbmt.removeEventListener(MouseEvent.CLICK, submits);
};
Parent.wrstm.removeEventListener(MouseEvent.CLICK, wgoMenu);
removeEventListener(Event.ENTER_FRAME, Update);
removeEventListener(MouseEvent.MOUSE_DOWN, gameKlik);
}
private function gameKlik(_arg1:Event){
var _local2:*;
var _local3:*;
if ((((axe.visible == true)) && ((axe.currentLabel == "stat")))){
axe.gotoAndPlay("hit");
_local2 = new molotS();
_local3 = new theSound(0, 0.5, _local2);
};
}
function wgoMenu(_arg1:Event){
delListeners();
removeChild(winPic);
Main3(parent.parent).toMenu();
}
function go(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
Parent = winPic;
axe.visible = false;
Main3.cursor.vWine = true;
addChild(axe);
_local1 = Parent.numChildren;
_local2 = 0;
while (_local2 < Main3.scoreArray.length) {
totalSc = (totalSc + Main3.scoreArray[_local2]);
_local2++;
};
_local3 = 0;
while (_local3 < Main3.coinArray.length) {
if (Main3.coinArray[_local3] != 0){
cKadr++;
};
_local3++;
};
_local4 = 0;
while (_local4 < _local1) {
_local5 = Parent.getChildAt(_local4);
if ((_local5 is TextField)){
if (_local5.text.indexOf("total score") > -1){
_local5.htmlText = ("total score " + totalSc);
};
};
if ((((((_local5 is f090)) || ((_local5 is f65654646)))) || ((_local5 is fon5s)))){
_local5.mouseEnabled = false;
_local5.mouseChildren = false;
};
if ((_local5 is coinsWin)){
_local5.gotoAndStop(cKadr);
monetki = _local5;
};
if ((_local5 is luk)){
lArray.push(_local5);
};
_local4++;
};
Parent.bad.text = ("" + bads);
Parent.good.text = ("" + goods);
Parent.wrstm.addEventListener(MouseEvent.CLICK, wgoMenu);
addEventListener(Event.ENTER_FRAME, Update);
addEventListener(MouseEvent.MOUSE_DOWN, gameKlik);
Parent.sbmt.addEventListener(MouseEvent.CLICK, submits);
}
function Update(_arg1:Event){
var _local2:*;
var _local3:*;
var _local4:Class;
var _local5:*;
var _local6:*;
var _local7:Class;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
timer++;
if (((!((currentZ == null))) && ((currentZ.currentFrame == 29)))){
bads++;
Parent.bad.text = ("" + bads);
};
if ((((((((Main3.cursor.y > 300)) || ((Main3.cursor.x < 140)))) || ((Main3.cursor.x > 500)))) && ((axe.visible == false)))){
Main3.cursor.invis();
axe.visible = true;
};
if ((((((Main3.cursor.y <= 300)) && ((((Main3.cursor.x > 140)) && ((Main3.cursor.x < 500)))))) && ((axe.visible == true)))){
Main3.cursor.vis();
axe.visible = false;
};
if (timer == OUTZ){
timer = 0;
currentZ = null;
_local2 = whatZ();
if (Math.abs((lArray[_local2].x - currentL)) > 5){
_local3 = (Math.round((Math.random() * 7)) + 1);
_local4 = (getDefinitionByName(("miniZomb" + _local3)) as Class);
_local5 = new (_local4);
new (_local4).scaleX = (_local5.scaleX * 1.614);
_local5.scaleY = (_local5.scaleY * 1.614);
_local5.x = lArray[_local2].x;
_local5.y = (lArray[_local2].y - (lArray[_local2].height * 1.3));
Parent.addChild(_local5);
_local6 = (Math.round((Math.random() * 4)) + 1);
_local7 = (getDefinitionByName(("minijump" + _local6)) as Class);
_local8 = new (_local7);
_local9 = new theSound(0, 0.5, _local8);
currentZ = _local5;
currentL = 0;
} else {
timer = (OUTZ - 1);
};
};
if ((((((((((((((axe.visible == true)) && ((axe.currentFrame > 6)))) && ((axe.currentFrame < 14)))) && (!((currentZ == null))))) && ((currentZ.currentFrame > 5)))) && ((currentZ.currentFrame < 30)))) && (currentZ.hitTestPoint(axe.x, (axe.y + 20), true)))){
currentZ.gotoAndPlay("boom");
_local10 = new stars();
_local11 = new theSound(0, 0.5, _local10);
goods++;
Parent.good.text = ("" + goods);
currentL = currentZ.x;
};
axe.x = mouseX;
axe.y = mouseY;
}
}
}//package
Section 351
//vonisa1 (vonisa1)
package {
import flash.display.*;
public dynamic class vonisa1 extends MovieClip {
public function vonisa1(){
addFrameScript(139, frame140);
}
function frame140(){
gotoAndPlay(68);
}
}
}//package
Section 352
//vonisaClass (vonisaClass)
package {
import flash.display.*;
public dynamic class vonisaClass extends MovieClip {
public function vonisaClass(){
addFrameScript(106, frame107);
}
function frame107(){
stop();
}
}
}//package
Section 353
//zaprets (zaprets)
package {
import flash.display.*;
public dynamic class zaprets extends MovieClip {
public function zaprets(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 354
//zombClass (zombClass)
package {
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Dynamics.Contacts.*;
import Box2D.Dynamics.*;
import Box2D.Collision.*;
import Box2D.Common.*;
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.ui.*;
import flash.utils.*;
import General.*;
import caurina.transitions.*;
public class zombClass extends phBody {
public var rastBrain:Number;// = 1000
private var bodyDef:b2BodyDef;
private var newZnak:int;// = 0
private var brSprite:Sprite;
public var action:Boolean;
private var zmbSprite:Sprite;
public var zrt:String;
private var boxDefC:b2CircleDef;
public var znak:int;// = 0
public var padaet:Boolean;
private var ANIMTIME:uint;// = 250
private var vizuBrain:Boolean;// = true
private var vernulsya:Boolean;// = false
private var ty:Number;
public var ubran:Boolean;
private var tx:Number;
public var vlz:String;
private var myNIN;
public var ulezNaSpec:Boolean;
private var stoit:int;// = 0
public function zombClass(){
znak = 0;
newZnak = 0;
rastBrain = 1000;
vizuBrain = true;
vernulsya = false;
stoit = 0;
ANIMTIME = 250;
super();
}
public function bombom(){
determinate();
if (znak < 0){
this.gotoAndPlay("vzrpravo");
};
if (znak > 0){
this.gotoAndPlay("vzrlevo");
};
}
public function determinate(){
var _local1:*;
var _local2:*;
action = false;
ubran = true;
vizuBrain = false;
Main3.m_world.DestroyBody(body);
_local1 = zombArr.indexOf(this);
zombArr[_local1] = null;
_local2 = phArr.indexOf(this);
phArr[_local2] = null;
this.dispatchEvent(new Event("zombDie"));
}
public function getSprites1(_arg1, _arg2){
brSprite = _arg1;
zmbSprite = _arg2;
}
public function babah(){
var _local1:*;
var _local2:*;
_local1 = new gamebloodaftershoot();
_local2 = new theSound(0, 0.5, _local1);
determinate();
if (znak < 0){
this.gotoAndPlay("bahpravo");
};
if (znak > 0){
this.gotoAndPlay("bahlevo");
};
if (znak == 0){
this.gotoAndPlay("bahanfas");
};
}
override public function update(){
var _local1:*;
var _local2:Class;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
this.x = (body.GetPosition().x * Main3.m_physScale);
this.y = (body.GetPosition().y * Main3.m_physScale);
body.GetLinearVelocity().x = 0;
if (action == true){
body.ApplyForce(new b2Vec2((-(znak) * Main3.zombSpeed), 0), body.GetWorldCenter());
_local1 = 0;
while (_local1 < brainArr.length) {
if (((((((!((brainArr[_local1] == null))) && ((Math.abs((this.x - brainArr[_local1].x)) < 30)))) && ((Math.abs((this.y - brainArr[_local1].y)) < 30)))) && ((brainArr[_local1].y >= this.y)))){
if (znak > 0){
this.gotoAndPlay("eatlevo");
};
if (znak < 0){
this.gotoAndPlay("eatpravo");
};
brainArr[_local1].sozrali = true;
rastBrain = 1000;
_local2 = (getDefinitionByName(zrt) as Class);
_local3 = new (_local2);
_local4 = new theSound(0, 0.5, _local3);
};
_local1++;
};
};
if ((((((((this.currentFrame > 16)) && ((this.currentFrame < 94)))) || ((((this.currentFrame > 110)) && ((this.currentFrame < 396)))))) || ((this.currentFrame > 727)))){
if (action == false){
action = true;
rastBrain = 1000;
vizuBrain = false;
checking();
};
} else {
if (this.currentFrame > 16){
action = false;
};
};
if ((((this.currentFrame == 16)) && ((action == false)))){
action = true;
checking();
};
if ((((znak == 0)) && ((stoit == ANIMTIME)))){
_local5 = Math.ceil(((Math.random() * 3) + 0.6));
_local6 = ("anim" + _local5);
this.gotoAndPlay(_local6);
stoit = 0;
} else {
if (znak == 0){
stoit++;
};
};
if ((((body.GetLinearVelocity().y > 2)) && ((padaet == false)))){
padaet = true;
vizuBrain = false;
if (znak < 0){
this.gotoAndPlay("tonpravo");
};
if (znak > 0){
this.gotoAndPlay("tonlevo");
};
if (znak == 0){
this.gotoAndPlay("pad");
};
return;
};
if (padaet == true){
_local7 = 0;
while (_local7 < brainArr.length) {
if (((((((!((brainArr[_local7] == null))) && ((Math.abs((this.x - brainArr[_local7].x)) < 30)))) && ((Math.abs((this.y - brainArr[_local7].y)) < 30)))) && ((brainArr[_local7].y > this.y)))){
_local8 = new gamedavkamozga();
_local9 = new theSound(0, 0.5, _local8);
brainArr[_local7].addVzr();
brainArr[_local7].brainDie();
brainArr[_local7].sozrali = true;
};
_local7++;
};
};
if ((((body.GetLinearVelocity().y < 2)) && ((padaet == true)))){
padaet = false;
if (znak < 0){
this.gotoAndPlay("pravo");
};
if (znak > 0){
this.gotoAndPlay("levo");
};
if (znak == 0){
this.gotoAndPlay("ipad");
};
};
if ((((((((vernulsya == true)) && ((vizuBrain == false)))) && ((ubran == false)))) && ((this.currentLabel == "ulez")))){
myNIN.gotoAndPlay("zar");
myNIN.otkryta = false;
myNIN.doBrain = 1000;
myNIN.myEarth.gotoAndPlay("zar");
Main3.m_world.DestroyBody(body);
ubran = true;
ulezNaSpec = true;
_local10 = new sZalaz();
_local11 = new theSound(0, 0.5, _local10);
};
if (action == true){
if (((!((znak == newZnak))) && ((vizuBrain == true)))){
if (znak < 0){
this.gotoAndPlay("razvlevo");
};
if (znak > 0){
this.gotoAndPlay("razvpravo");
};
if (znak == 0){
if (newZnak > 0){
this.gotoAndPlay("vlevo");
} else {
this.gotoAndPlay("vpravo");
};
};
znak = newZnak;
};
if (vizuBrain == false){
if ((((Math.abs((myNIN.y - this.y)) < Main3.VIDY)) && ((Math.abs((myNIN.x - this.x)) > 10)))){
if ((((znak > 0)) && (((myNIN.x - this.x) > 0)))){
this.gotoAndPlay("razvpravo");
znak = -(znak);
newZnak = znak;
};
if ((((znak < 0)) && (((myNIN.x - this.x) < 0)))){
this.gotoAndPlay("razvlevo");
znak = -(znak);
newZnak = znak;
};
checking();
} else {
_local12 = false;
if ((((((Math.abs((myNIN.y - this.y)) < Main3.VIDY)) && ((Math.abs((myNIN.x - this.x)) <= 10)))) && ((vernulsya == false)))){
vernulsya = true;
_local12 = true;
if (znak > 0){
this.gotoAndPlay("zalVlv");
};
if (znak < 0){
this.gotoAndPlay("zalVpr");
};
action = false;
};
if ((((znak > 0)) && ((_local12 == false)))){
this.gotoAndPlay("izleva");
newZnak = 0;
znak = 0;
checking();
};
if ((((znak < 0)) && ((_local12 == false)))){
this.gotoAndPlay("izprava");
newZnak = 0;
znak = 0;
checking();
};
if ((((znak == 0)) && ((_local12 == false)))){
checking();
};
};
};
};
}
public function davdav(){
var _local1:*;
var _local2:*;
_local1 = new gamedavkasharom1();
_local2 = new theSound(0, 0.5, _local1);
determinate();
if (znak < 0){
this.gotoAndPlay("davpravo");
};
if (znak > 0){
this.gotoAndPlay("davlevo");
};
if (znak == 0){
this.gotoAndPlay("davanfas");
};
}
public function getPoint(_arg1, _arg2){
tx = _arg1;
ty = _arg2;
bodyDef = new b2BodyDef();
bodyDef.position.x = (tx / Main3.m_physScale);
bodyDef.position.y = (ty / Main3.m_physScale);
boxDefC = new b2CircleDef();
boxDefC.radius = (Main3.ZOMBSCALE / (Main3.m_physScale * 2));
boxDefC.density = 1;
boxDefC.friction = 1;
boxDefC.restitution = 0;
boxDefC.groupIndex = -8;
body = Main3.m_world.CreateDynamicBody(bodyDef);
body.CreateShape(boxDefC);
body.SetMassFromShapes();
}
public function getNIN(_arg1){
myNIN = _arg1;
}
public function checking(){
var _local1:*;
vizuBrain = false;
rastBrain = 1000;
_local1 = 0;
while (_local1 < brainArr.length) {
if (((((((!((brainArr[_local1] == null))) && ((brainArr[_local1].proveril == true)))) && ((Math.abs((this.x - brainArr[_local1].x)) < Main3.VIDX)))) && ((Math.abs((this.y - brainArr[_local1].y)) < Main3.VIDY)))){
vizuBrain = true;
if (stoit != 0){
stoit = 0;
};
if (Math.abs((Math.abs(this.x) - Math.abs(brainArr[_local1].x))) <= rastBrain){
rastBrain = Math.abs((this.x - brainArr[_local1].x));
newZnak = ((this.x - brainArr[_local1].x) / Math.abs((this.x - brainArr[_local1].x)));
};
};
_local1++;
};
}
}
}//package
Section 355
//Zombie_comics (Zombie_comics)
package {
import flash.media.*;
public dynamic class Zombie_comics extends Sound {
}
}//package
Section 356
//zombie1 (zombie1)
package {
public class zombie1 extends zombClass {
public var cursorEye1:eyeCursor;
public var cursorEye2:eyeCursor;
public function zombie1(){
addFrameScript(15, frame16, 92, frame93, 97, frame98, 108, frame109, 139, frame140, 221, frame222, 296, frame297, 334, frame335, 372, frame373, 383, frame384, 394, frame395, 414, frame415, 435, frame436, 459, frame460, 483, frame484, 502, frame503, 521, frame522, 547, frame548, 573, frame574, 587, frame588, 601, frame602, 621, frame622, 622, frame623, 628, frame629, 629, frame630, 649, frame650, 673, frame674, 690, frame691, 691, frame692, 692, frame693, 709, frame710, 726, frame727, 788, frame789, 789, frame790);
vlz = "Sgamevylazizmogily1";
zrt = "gamezombieating1";
}
function frame395(){
gotoAndPlay("levo");
}
function frame710(){
gotoAndStop("ulez");
}
function frame602(){
stop();
}
function frame727(){
stop();
}
function frame297(){
gotoAndStop("stopz");
}
function frame16(){
stop();
}
function frame622(){
gotoAndStop("stopz");
}
function frame623(){
gotoAndStop("stopz");
}
function frame503(){
stop();
}
function frame629(){
gotoAndStop("stopz");
}
function frame630(){
gotoAndStop("stopz");
}
function frame522(){
stop();
}
function frame650(){
stop();
}
override public function update(){
super.update();
}
function frame415(){
gotoAndPlay("levo");
}
function frame548(){
stop();
}
function frame790(){
stop();
}
function frame674(){
stop();
}
function frame789(){
gotoAndStop("stopz");
}
function frame436(){
gotoAndPlay("pravo");
}
function frame692(){
stop();
}
function frame693(){
stop();
}
function frame574(){
stop();
}
function frame93(){
gotoAndStop("stopz");
}
function frame335(){
gotoAndPlay("pravo");
}
function frame98(){
stop();
}
function frame691(){
stop();
}
function frame222(){
gotoAndStop("stopz");
}
function frame109(){
gotoAndStop("stopz");
}
function frame588(){
stop();
}
function frame460(){
stop();
}
function frame484(){
stop();
}
function frame373(){
gotoAndPlay("levo");
}
function frame140(){
gotoAndStop("stopz");
}
function frame384(){
gotoAndPlay("pravo");
}
}
}//package
Section 357
//zombie2 (zombie2)
package {
public class zombie2 extends zombClass {
public var cursorEye1:eyeCursor;
public var cursorEye2:eyeCursor;
public function zombie2(){
addFrameScript(15, frame16, 92, frame93, 97, frame98, 108, frame109, 139, frame140, 221, frame222, 296, frame297, 334, frame335, 372, frame373, 383, frame384, 394, frame395, 414, frame415, 435, frame436, 459, frame460, 483, frame484, 502, frame503, 521, frame522, 547, frame548, 573, frame574, 587, frame588, 601, frame602, 621, frame622, 622, frame623, 628, frame629, 629, frame630, 649, frame650, 673, frame674, 690, frame691, 691, frame692, 692, frame693, 709, frame710, 726, frame727, 788, frame789, 789, frame790);
vlz = "Sgamevylazizmogily2";
zrt = "gamezombieating2";
}
function frame395(){
gotoAndPlay("levo");
}
function frame710(){
gotoAndStop("ulez");
}
function frame602(){
stop();
}
function frame727(){
stop();
}
function frame297(){
gotoAndStop("stopz");
}
function frame16(){
stop();
}
function frame622(){
gotoAndStop("stopz");
}
function frame623(){
gotoAndStop("stopz");
}
function frame503(){
stop();
}
function frame629(){
gotoAndStop("stopz");
}
function frame630(){
gotoAndStop("stopz");
}
function frame522(){
stop();
}
function frame650(){
stop();
}
override public function update(){
super.update();
}
function frame415(){
gotoAndPlay("levo");
}
function frame548(){
stop();
}
function frame790(){
stop();
}
function frame674(){
stop();
}
function frame789(){
gotoAndStop("stopz");
}
function frame436(){
gotoAndPlay("pravo");
}
function frame692(){
stop();
}
function frame693(){
stop();
}
function frame574(){
stop();
}
function frame93(){
gotoAndStop("stopz");
}
function frame335(){
gotoAndPlay("pravo");
}
function frame98(){
stop();
}
function frame691(){
stop();
}
function frame222(){
gotoAndStop("stopz");
}
function frame109(){
gotoAndStop("stopz");
}
function frame588(){
stop();
}
function frame460(){
stop();
}
function frame484(){
stop();
}
function frame373(){
gotoAndPlay("levo");
}
function frame140(){
gotoAndStop("stopz");
}
function frame384(){
gotoAndPlay("pravo");
}
}
}//package
Section 358
//zombie3 (zombie3)
package {
public class zombie3 extends zombClass {
public var cursorEye1:eyeCursor;
public var cursorEye2:eyeCursor;
public function zombie3(){
addFrameScript(15, frame16, 92, frame93, 97, frame98, 108, frame109, 139, frame140, 221, frame222, 296, frame297, 334, frame335, 372, frame373, 383, frame384, 394, frame395, 414, frame415, 435, frame436, 459, frame460, 483, frame484, 502, frame503, 521, frame522, 547, frame548, 573, frame574, 587, frame588, 601, frame602, 621, frame622, 622, frame623, 628, frame629, 629, frame630, 649, frame650, 673, frame674, 690, frame691, 691, frame692, 692, frame693, 709, frame710, 726, frame727, 788, frame789, 789, frame790);
vlz = "Sgamevylazizmogily3";
zrt = "gamezombieating1";
}
function frame395(){
gotoAndPlay("levo");
}
function frame710(){
gotoAndStop("ulez");
}
function frame602(){
stop();
}
function frame727(){
stop();
}
function frame297(){
gotoAndStop("stopz");
}
function frame16(){
stop();
}
function frame622(){
gotoAndStop("stopz");
}
function frame623(){
gotoAndStop("stopz");
}
function frame503(){
stop();
}
function frame629(){
gotoAndStop("stopz");
}
function frame630(){
gotoAndStop("stopz");
}
function frame522(){
stop();
}
function frame650(){
stop();
}
override public function update(){
super.update();
}
function frame415(){
gotoAndPlay("levo");
}
function frame548(){
stop();
}
function frame790(){
stop();
}
function frame674(){
stop();
}
function frame789(){
gotoAndStop("stopz");
}
function frame436(){
gotoAndPlay("pravo");
}
function frame692(){
stop();
}
function frame693(){
stop();
}
function frame574(){
stop();
}
function frame93(){
gotoAndStop("stopz");
}
function frame335(){
gotoAndPlay("pravo");
}
function frame98(){
stop();
}
function frame691(){
stop();
}
function frame222(){
gotoAndStop("stopz");
}
function frame109(){
gotoAndStop("stopz");
}
function frame588(){
stop();
}
function frame460(){
stop();
}
function frame484(){
stop();
}
function frame373(){
gotoAndPlay("levo");
}
function frame140(){
gotoAndStop("stopz");
}
function frame384(){
gotoAndPlay("pravo");
}
}
}//package
Section 359
//zombie4 (zombie4)
package {
public class zombie4 extends zombClass {
public var cursorEye1:eyeCursor;
public var cursorEye2:eyeCursor;
public function zombie4(){
addFrameScript(15, frame16, 92, frame93, 97, frame98, 108, frame109, 139, frame140, 221, frame222, 296, frame297, 334, frame335, 372, frame373, 383, frame384, 394, frame395, 414, frame415, 435, frame436, 459, frame460, 483, frame484, 502, frame503, 521, frame522, 547, frame548, 573, frame574, 587, frame588, 601, frame602, 621, frame622, 622, frame623, 628, frame629, 629, frame630, 649, frame650, 673, frame674, 690, frame691, 691, frame692, 692, frame693, 709, frame710, 726, frame727, 788, frame789, 789, frame790);
vlz = "Sgamevylazizmogily4";
zrt = "gamezombieating2";
}
function frame395(){
gotoAndPlay("levo");
}
function frame710(){
gotoAndStop("ulez");
}
function frame602(){
stop();
}
function frame727(){
stop();
}
function frame297(){
gotoAndStop("stopz");
}
function frame16(){
stop();
}
function frame622(){
gotoAndStop("stopz");
}
function frame623(){
gotoAndStop("stopz");
}
function frame503(){
stop();
}
function frame629(){
gotoAndStop("stopz");
}
function frame630(){
gotoAndStop("stopz");
}
function frame522(){
stop();
}
function frame650(){
stop();
}
override public function update(){
super.update();
}
function frame415(){
gotoAndPlay("levo");
}
function frame548(){
stop();
}
function frame790(){
stop();
}
function frame674(){
stop();
}
function frame789(){
gotoAndStop("stopz");
}
function frame436(){
gotoAndPlay("pravo");
}
function frame692(){
stop();
}
function frame693(){
stop();
}
function frame574(){
stop();
}
function frame93(){
gotoAndStop("stopz");
}
function frame335(){
gotoAndPlay("pravo");
}
function frame98(){
stop();
}
function frame691(){
stop();
}
function frame222(){
gotoAndStop("stopz");
}
function frame109(){
gotoAndStop("stopz");
}
function frame588(){
stop();
}
function frame460(){
stop();
}
function frame484(){
stop();
}
function frame373(){
gotoAndPlay("levo");
}
function frame140(){
gotoAndStop("stopz");
}
function frame384(){
gotoAndPlay("pravo");
}
}
}//package
Section 360
//zombie5 (zombie5)
package {
public class zombie5 extends zombClass {
public var cursorEye1:eyeCursor;
public var cursorEye2:eyeCursor;
public function zombie5(){
addFrameScript(15, frame16, 92, frame93, 97, frame98, 108, frame109, 139, frame140, 221, frame222, 296, frame297, 334, frame335, 372, frame373, 383, frame384, 394, frame395, 414, frame415, 435, frame436, 459, frame460, 483, frame484, 502, frame503, 521, frame522, 547, frame548, 573, frame574, 587, frame588, 601, frame602, 621, frame622, 622, frame623, 628, frame629, 629, frame630, 649, frame650, 673, frame674, 690, frame691, 691, frame692, 692, frame693, 709, frame710, 726, frame727, 788, frame789, 789, frame790);
vlz = "Sgamevylazizmogily2";
zrt = "gamezombieating1";
}
function frame395(){
gotoAndPlay("levo");
}
function frame710(){
gotoAndStop("ulez");
}
function frame602(){
stop();
}
function frame727(){
stop();
}
function frame297(){
gotoAndStop("stopz");
}
function frame16(){
stop();
}
function frame622(){
gotoAndStop("stopz");
}
function frame623(){
gotoAndStop("stopz");
}
function frame503(){
stop();
}
function frame629(){
gotoAndStop("stopz");
}
function frame630(){
gotoAndStop("stopz");
}
function frame522(){
stop();
}
function frame650(){
stop();
}
override public function update(){
super.update();
}
function frame415(){
gotoAndPlay("levo");
}
function frame548(){
stop();
}
function frame790(){
stop();
}
function frame674(){
stop();
}
function frame789(){
gotoAndStop("stopz");
}
function frame436(){
gotoAndPlay("pravo");
}
function frame692(){
stop();
}
function frame693(){
stop();
}
function frame574(){
stop();
}
function frame93(){
gotoAndStop("stopz");
}
function frame335(){
gotoAndPlay("pravo");
}
function frame98(){
stop();
}
function frame691(){
stop();
}
function frame222(){
gotoAndStop("stopz");
}
function frame109(){
gotoAndStop("stopz");
}
function frame588(){
stop();
}
function frame460(){
stop();
}
function frame484(){
stop();
}
function frame373(){
gotoAndPlay("levo");
}
function frame140(){
gotoAndStop("stopz");
}
function frame384(){
gotoAndPlay("pravo");
}
}
}//package
Section 361
//zombie6 (zombie6)
package {
public class zombie6 extends zombClass {
public var cursorEye1:eyeCursor;
public var cursorEye2:eyeCursor;
public function zombie6(){
addFrameScript(15, frame16, 92, frame93, 97, frame98, 108, frame109, 139, frame140, 221, frame222, 296, frame297, 334, frame335, 372, frame373, 383, frame384, 394, frame395, 414, frame415, 435, frame436, 459, frame460, 483, frame484, 502, frame503, 521, frame522, 547, frame548, 573, frame574, 587, frame588, 601, frame602, 621, frame622, 622, frame623, 628, frame629, 629, frame630, 649, frame650, 673, frame674, 690, frame691, 691, frame692, 692, frame693, 709, frame710, 726, frame727, 788, frame789, 789, frame790);
vlz = "Sgamevylazizmogily3";
zrt = "gamezombieating2";
}
function frame395(){
gotoAndPlay("levo");
}
function frame710(){
gotoAndStop("ulez");
}
function frame602(){
stop();
}
function frame727(){
stop();
}
function frame297(){
gotoAndStop("stopz");
}
function frame16(){
stop();
}
function frame622(){
gotoAndStop("stopz");
}
function frame623(){
gotoAndStop("stopz");
}
function frame503(){
stop();
}
function frame629(){
gotoAndStop("stopz");
}
function frame630(){
gotoAndStop("stopz");
}
function frame522(){
stop();
}
function frame650(){
stop();
}
override public function update(){
super.update();
}
function frame415(){
gotoAndPlay("levo");
}
function frame548(){
stop();
}
function frame790(){
stop();
}
function frame674(){
stop();
}
function frame789(){
gotoAndStop("stopz");
}
function frame436(){
gotoAndPlay("pravo");
}
function frame692(){
stop();
}
function frame693(){
stop();
}
function frame574(){
stop();
}
function frame93(){
gotoAndStop("stopz");
}
function frame335(){
gotoAndPlay("pravo");
}
function frame98(){
stop();
}
function frame691(){
stop();
}
function frame222(){
gotoAndStop("stopz");
}
function frame109(){
gotoAndStop("stopz");
}
function frame588(){
stop();
}
function frame460(){
stop();
}
function frame484(){
stop();
}
function frame373(){
gotoAndPlay("levo");
}
function frame140(){
gotoAndStop("stopz");
}
function frame384(){
gotoAndPlay("pravo");
}
}
}//package
Section 362
//zombie7 (zombie7)
package {
public class zombie7 extends zombClass {
public var cursorEye1:eyeCursor;
public var cursorEye2:eyeCursor;
public function zombie7(){
addFrameScript(15, frame16, 92, frame93, 97, frame98, 108, frame109, 139, frame140, 221, frame222, 296, frame297, 334, frame335, 372, frame373, 383, frame384, 394, frame395, 414, frame415, 435, frame436, 459, frame460, 483, frame484, 502, frame503, 521, frame522, 547, frame548, 573, frame574, 587, frame588, 601, frame602, 621, frame622, 622, frame623, 628, frame629, 629, frame630, 649, frame650, 673, frame674, 690, frame691, 691, frame692, 692, frame693, 709, frame710, 726, frame727, 788, frame789, 789, frame790);
vlz = "Sgamevylazizmogily4";
zrt = "gamezombieating1";
}
function frame395(){
gotoAndPlay("levo");
}
function frame710(){
gotoAndStop("ulez");
}
function frame602(){
stop();
}
function frame727(){
stop();
}
function frame297(){
gotoAndStop("stopz");
}
function frame16(){
stop();
}
function frame622(){
gotoAndStop("stopz");
}
function frame623(){
gotoAndStop("stopz");
}
function frame503(){
stop();
}
function frame629(){
gotoAndStop("stopz");
}
function frame630(){
gotoAndStop("stopz");
}
function frame522(){
stop();
}
function frame650(){
stop();
}
override public function update(){
super.update();
}
function frame415(){
gotoAndPlay("levo");
}
function frame548(){
stop();
}
function frame790(){
stop();
}
function frame674(){
stop();
}
function frame789(){
gotoAndStop("stopz");
}
function frame436(){
gotoAndPlay("pravo");
}
function frame692(){
stop();
}
function frame693(){
stop();
}
function frame574(){
stop();
}
function frame93(){
gotoAndStop("stopz");
}
function frame335(){
gotoAndPlay("pravo");
}
function frame98(){
stop();
}
function frame691(){
stop();
}
function frame222(){
gotoAndStop("stopz");
}
function frame109(){
gotoAndStop("stopz");
}
function frame588(){
stop();
}
function frame460(){
stop();
}
function frame484(){
stop();
}
function frame373(){
gotoAndPlay("levo");
}
function frame140(){
gotoAndStop("stopz");
}
function frame384(){
gotoAndPlay("pravo");
}
}
}//package
Section 363
//zombie8 (zombie8)
package {
public class zombie8 extends zombClass {
public var cursorEye1:eyeCursor;
public var cursorEye2:eyeCursor;
public function zombie8(){
addFrameScript(15, frame16, 92, frame93, 97, frame98, 108, frame109, 139, frame140, 221, frame222, 296, frame297, 334, frame335, 372, frame373, 383, frame384, 394, frame395, 414, frame415, 435, frame436, 459, frame460, 483, frame484, 502, frame503, 521, frame522, 547, frame548, 573, frame574, 587, frame588, 601, frame602, 621, frame622, 622, frame623, 628, frame629, 629, frame630, 649, frame650, 673, frame674, 690, frame691, 691, frame692, 692, frame693, 709, frame710, 726, frame727, 788, frame789, 789, frame790);
vlz = "Sgamevylazizmogily1";
zrt = "gamezombieating2";
}
function frame395(){
gotoAndPlay("levo");
}
function frame710(){
gotoAndStop("ulez");
}
function frame602(){
stop();
}
function frame727(){
stop();
}
function frame297(){
gotoAndStop("stopz");
}
function frame16(){
stop();
}
function frame622(){
gotoAndStop("stopz");
}
function frame623(){
gotoAndStop("stopz");
}
function frame503(){
stop();
}
function frame629(){
gotoAndStop("stopz");
}
function frame630(){
gotoAndStop("stopz");
}
function frame522(){
stop();
}
function frame650(){
stop();
}
override public function update(){
super.update();
}
function frame415(){
gotoAndPlay("levo");
}
function frame548(){
stop();
}
function frame790(){
stop();
}
function frame674(){
stop();
}
function frame789(){
gotoAndStop("stopz");
}
function frame436(){
gotoAndPlay("pravo");
}
function frame692(){
stop();
}
function frame693(){
stop();
}
function frame574(){
stop();
}
function frame93(){
gotoAndStop("stopz");
}
function frame335(){
gotoAndPlay("pravo");
}
function frame98(){
stop();
}
function frame691(){
stop();
}
function frame222(){
gotoAndStop("stopz");
}
function frame109(){
gotoAndStop("stopz");
}
function frame588(){
stop();
}
function frame460(){
stop();
}
function frame484(){
stop();
}
function frame373(){
gotoAndPlay("levo");
}
function frame140(){
gotoAndStop("stopz");
}
function frame384(){
gotoAndPlay("pravo");
}
}
}//package
Section 364
//zombPodskz (zombPodskz)
package {
import flash.display.*;
public dynamic class zombPodskz extends MovieClip {
public function zombPodskz(){
addFrameScript(108, frame109);
}
function frame109(){
gotoAndPlay("suda");
}
}
}//package
Section 365
//zzzz (zzzz)
package {
import flash.display.*;
public dynamic class zzzz extends MovieClip {
}
}//package
Section 366
//Символ1 (Символ1)
package {
import flash.display.*;
public dynamic class Символ1 extends MovieClip {
}
}//package