Section 1
//MouseWheel (ai.MouseWheel)
package ai {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
public final class MouseWheel {
private static const _bytes:ByteArray = new ByteArray();
private static const _connection:LocalConnection = new LocalConnection();
private static const _dataPart0:Array = new Array(1180128009, 671154176, 2013267295, 4000, 7937, 0x441100, 67, 50331647, 1057226240, 34908, 589932, 1660963951, 1667329091, 1869508197, 1668573551, 1845521507);
private static const _dataPart1:Array = new Array(6516590, 1852138356, 6513008, 1953854053, 5074805, 1935999073, 1684294761, 1937007982, 1701970034, 1701670774, 1699506547, 1952804453, 1912631150, 1299150195, 1700227173, 1701576854, 218105856, 100663296, 0, 524608, 496371968, 134350593, 8, 1873410, 525138, 395706880, 134225046, 33556484, 2383347712, 16778025, 161377, 1819632896, 939562498, 262674, 2634154009, 0x960900, 67176193, 8, 85759490, 525906, 395903488, 335582729, 262407, 16777216, 134552726, 33556487, 1377259414, 33556488, 2600796160, 0, 496371968, 83953409, 8, 1873410, 525394, 385892352);
private static var _loader:Loader;
private static var _connectionID:uint;
private static var _captured:Boolean = false;
private static var _complete:Boolean = false;
public function MouseWheel(){
throw (new IllegalOperationError("do not instantiate MouseWheel"));
}
public static function get captured():Boolean{
return (MouseWheel._captured);
}
public static function capture():void{
var _local1:uint;
var _local2:ByteArray;
var _local3:Array;
var _local4:uint;
var _local5:uint;
if (MouseWheel._captured){
return;
};
if (!MouseWheel._bytes.length){
_local1 = Math.round((Math.random() * 100000));
while (_local1 < 10000) {
_local1 = Math.round((Math.random() * 100000));
};
MouseWheel._connectionID = _local1;
_local2 = MouseWheel._bytes;
_local3 = MouseWheel._dataPart0;
_local4 = _local3.length;
_local5 = 0;
while (_local5 < _local4) {
_local2.writeUnsignedInt(_local3[_local5]);
_local5++;
};
_local2.writeUTFBytes(("_" + MouseWheel._connectionID.toString()));
_local3 = MouseWheel._dataPart1;
_local4 = _local3.length;
_local5 = 0;
while (_local5 < _local4) {
_local2.writeUnsignedInt(_local3[_local5]);
_local5++;
};
_local2.writeShort(0);
};
MouseWheel._connection.addEventListener(StatusEvent.STATUS, MouseWheel.handler_status);
MouseWheel._connection.addEventListener(AsyncErrorEvent.ASYNC_ERROR, MouseWheel.handler_asyncError);
MouseWheel._captured = true;
if (MouseWheel._loader){
MouseWheel.send();
} else {
MouseWheel._loader = new Loader();
MouseWheel._loader.loadBytes(MouseWheel._bytes);
MouseWheel._loader.contentLoaderInfo.addEventListener(Event.COMPLETE, MouseWheel.handler_complete);
};
}
public static function release():void{
if (!MouseWheel._captured){
return;
};
MouseWheel._captured = false;
MouseWheel.send();
}
private static function send(_arg1:Event=null):void{
if (!MouseWheel._complete){
return;
};
MouseWheel._connection.send(("lc_" + MouseWheel._connectionID), "capture", MouseWheel._captured);
}
private static function handler_complete(_arg1:Event):void{
MouseWheel._complete = true;
if (!MouseWheel._captured){
MouseWheel.send();
};
}
private static function handler_status(_arg1:StatusEvent):void{
if (_arg1.level == "error"){
MouseWheel.send();
};
}
private static function handler_asyncError(_arg1:AsyncErrorEvent):void{
}
}
}//package ai
Section 2
//b2CircleDef (Box2D.Collision.Shapes.b2CircleDef)
package Box2D.Collision.Shapes {
import Box2D.Common.Math.*;
public class b2CircleDef extends b2ShapeDef {
public var localPosition:b2Vec2;
public var radius:Number;
public function b2CircleDef(){
localPosition = new b2Vec2(0, 0);
super();
type = b2Shape.e_circleShape;
radius = 1;
}
}
}//package Box2D.Collision.Shapes
Section 3
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape)
package Box2D.Collision.Shapes {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Common.*;
public class b2CircleShape extends b2Shape {
public var m_localPosition:b2Vec2;
public var m_radius:Number;
public function b2CircleShape(_arg1:b2ShapeDef){
m_localPosition = new b2Vec2();
super(_arg1);
var _local2:b2CircleDef = (_arg1 as b2CircleDef);
m_type = e_circleShape;
m_localPosition.SetV(_local2.localPosition);
m_radius = _local2.radius;
}
override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{
var _local3:b2Mat22 = _arg1.R;
var _local4:Number = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y)));
var _local5:Number = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y)));
_local4 = (_arg2.x - _local4);
_local5 = (_arg2.y - _local5);
return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius)));
}
override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{
var _local10:Number;
var _local6:b2Mat22 = _arg1.R;
var _local7:Number = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y)));
var _local8:Number = (_arg1.position.x + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y)));
var _local9:Number = (_arg4.p1.x - _local7);
_local10 = (_arg4.p1.y - _local8);
var _local11:Number = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius));
if (_local11 < 0){
return (false);
};
var _local12:Number = (_arg4.p2.x - _arg4.p1.x);
var _local13:Number = (_arg4.p2.y - _arg4.p1.y);
var _local14:Number = ((_local9 * _local12) + (_local10 * _local13));
var _local15:Number = ((_local12 * _local12) + (_local13 * _local13));
var _local16:Number = ((_local14 * _local14) - (_local15 * _local11));
if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){
return (false);
};
var _local17:Number = -((_local14 + Math.sqrt(_local16)));
if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){
_local17 = (_local17 / _local15);
_arg2[0] = _local17;
_arg3.x = (_local9 + (_local17 * _local12));
_arg3.y = (_local10 + (_local17 * _local13));
_arg3.Normalize();
return (true);
};
return (false);
}
override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{
var _local3:b2Mat22 = _arg2.R;
var _local4:Number = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y)));
var _local5:Number = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y)));
_arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius));
_arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius));
}
override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{
var _local4:b2Mat22;
_local4 = _arg2.R;
var _local5:Number = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y)));
var _local6:Number = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y)));
_local4 = _arg3.R;
var _local7:Number = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y)));
var _local8:Number = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y)));
_arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius));
_arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius));
}
override public function ComputeMass(_arg1:b2MassData):void{
_arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius);
_arg1.center.SetV(m_localPosition);
_arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y))));
}
public function GetLocalPosition():b2Vec2{
return (m_localPosition);
}
public function GetRadius():Number{
return (m_radius);
}
override public function UpdateSweepRadius(_arg1:b2Vec2):void{
var _local2:Number = (m_localPosition.x - _arg1.x);
var _local3:Number = (m_localPosition.y - _arg1.y);
_local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3)));
m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop);
}
}
}//package Box2D.Collision.Shapes
Section 4
//b2FilterData (Box2D.Collision.Shapes.b2FilterData)
package Box2D.Collision.Shapes {
import Box2D.Common.Math.*;
public class b2FilterData {
public var categoryBits:uint;// = 1
public var maskBits:uint;// = 0xFFFF
public var groupIndex:int;// = 0
public var b_rigid:int;// = 0
public var m_type:int;// = 0
public function Copy():b2FilterData{
var _local1:b2FilterData = new b2FilterData();
_local1.categoryBits = categoryBits;
_local1.maskBits = maskBits;
_local1.groupIndex = groupIndex;
_local1.b_rigid = b_rigid;
_local1.m_type = m_type;
return (_local1);
}
}
}//package Box2D.Collision.Shapes
Section 5
//b2MassData (Box2D.Collision.Shapes.b2MassData)
package Box2D.Collision.Shapes {
import Box2D.Common.Math.*;
public class b2MassData {
public var mass:Number;// = 0
public var center:b2Vec2;
public var I:Number;// = 0
public function b2MassData(){
center = new b2Vec2(0, 0);
super();
}
}
}//package Box2D.Collision.Shapes
Section 6
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef)
package Box2D.Collision.Shapes {
import Box2D.Common.Math.*;
import Box2D.Common.*;
public class b2PolygonDef extends b2ShapeDef {
public var vertices:Array;
public var vertexCount:int;
private static var s_mat:b2Mat22 = new b2Mat22();
public function b2PolygonDef(){
vertices = new Array(b2Settings.b2_maxPolygonVertices);
super();
type = b2Shape.e_polygonShape;
vertexCount = 0;
var _local1:int;
while (_local1 < b2Settings.b2_maxPolygonVertices) {
vertices[_local1] = new b2Vec2();
_local1++;
};
}
public function 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);
}
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++;
};
};
}
}
}//package Box2D.Collision.Shapes
Section 7
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape)
package Box2D.Collision.Shapes {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Common.*;
public class b2PolygonShape extends b2Shape {
private var s_supportVec:b2Vec2;
public var m_centroid:b2Vec2;
public var m_obb:b2OBB;
public var m_vertices:Array;
public var m_normals:Array;
public var m_coreVertices:Array;
public var m_vertexCount:int;
private static var s_computeMat:b2Mat22 = new b2Mat22();
private static var s_sweptAABB1:b2AABB = new b2AABB();
private static var s_sweptAABB2:b2AABB = new b2AABB();
public function b2PolygonShape(_arg1:b2ShapeDef){
var _local3:int;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
s_supportVec = new b2Vec2();
m_obb = new b2OBB();
m_vertices = new Array(b2Settings.b2_maxPolygonVertices);
m_normals = new Array(b2Settings.b2_maxPolygonVertices);
m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices);
super(_arg1);
m_type = e_polygonShape;
var _local2:b2PolygonDef = (_arg1 as b2PolygonDef);
m_vertexCount = _local2.vertexCount;
var _local4:int = _local3;
var _local5:int = _local3;
_local3 = 0;
while (_local3 < m_vertexCount) {
m_vertices[_local3] = _local2.vertices[_local3].Copy();
_local3++;
};
_local3 = 0;
while (_local3 < m_vertexCount) {
_local4 = _local3;
_local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0;
_local6 = (m_vertices[_local5].x - m_vertices[_local4].x);
_local7 = (m_vertices[_local5].y - m_vertices[_local4].y);
_local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7)));
m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8));
_local3++;
};
m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount);
ComputeOBB(m_obb, m_vertices, m_vertexCount);
_local3 = 0;
while (_local3 < m_vertexCount) {
_local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1);
_local5 = _local3;
_local9 = m_normals[_local4].x;
_local10 = m_normals[_local4].y;
_local11 = m_normals[_local5].x;
_local12 = m_normals[_local5].y;
_local13 = (m_vertices[_local3].x - m_centroid.x);
_local14 = (m_vertices[_local3].y - m_centroid.y);
_local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop);
_local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop);
_local17 = (1 / ((_local9 * _local12) - (_local10 * _local11)));
m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y));
_local3++;
};
}
override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{
var _local3:b2Vec2;
var _local10:Number;
var _local4:b2Mat22 = _arg1.R;
var _local5:Number = (_arg2.x - _arg1.position.x);
var _local6:Number = (_arg2.y - _arg1.position.y);
var _local7:Number = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y));
var _local8:Number = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y));
var _local9:int;
while (_local9 < m_vertexCount) {
_local3 = m_vertices[_local9];
_local5 = (_local7 - _local3.x);
_local6 = (_local8 - _local3.y);
_local3 = m_normals[_local9];
_local10 = ((_local3.x * _local5) + (_local3.y * _local6));
if (_local10 > 0){
return (false);
};
_local9++;
};
return (true);
}
override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{
var _local8:Number;
var _local9:Number;
var _local10:b2Mat22;
var _local11:b2Vec2;
var _local20:Number;
var _local21:Number;
var _local6:Number = 0;
var _local7:Number = _arg5;
_local8 = (_arg4.p1.x - _arg1.position.x);
_local9 = (_arg4.p1.y - _arg1.position.y);
_local10 = _arg1.R;
var _local12:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y));
var _local13:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y));
_local8 = (_arg4.p2.x - _arg1.position.x);
_local9 = (_arg4.p2.y - _arg1.position.y);
_local10 = _arg1.R;
var _local14:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y));
var _local15:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y));
var _local16:Number = (_local14 - _local12);
var _local17:Number = (_local15 - _local13);
var _local18 = -1;
var _local19:int;
while (_local19 < m_vertexCount) {
_local11 = m_vertices[_local19];
_local8 = (_local11.x - _local12);
_local9 = (_local11.y - _local13);
_local11 = m_normals[_local19];
_local20 = ((_local11.x * _local8) + (_local11.y * _local9));
_local21 = ((_local11.x * _local16) + (_local11.y * _local17));
if ((((_local21 < 0)) && ((_local20 < (_local6 * _local21))))){
_local6 = (_local20 / _local21);
_local18 = _local19;
} else {
if ((((_local21 > 0)) && ((_local20 < (_local7 * _local21))))){
_local7 = (_local20 / _local21);
};
};
if (_local7 < _local6){
return (false);
};
_local19++;
};
if (_local18 >= 0){
_arg2[0] = _local6;
_local10 = _arg1.R;
_local11 = m_normals[_local18];
_arg3.x = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y));
_arg3.y = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y));
return (true);
};
return (false);
}
override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{
var _local3:b2Mat22;
var _local4:b2Vec2;
var _local5:b2Mat22 = s_computeMat;
_local3 = _arg2.R;
_local4 = m_obb.R.col1;
_local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y));
_local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y));
_local4 = m_obb.R.col2;
_local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y));
_local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y));
_local5.Abs();
var _local6:b2Mat22 = _local5;
_local4 = m_obb.extents;
var _local7:Number = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y));
var _local8:Number = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y));
_local3 = _arg2.R;
_local4 = m_obb.center;
var _local9:Number = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)));
var _local10:Number = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)));
_arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8));
_arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8));
}
override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{
var _local4:b2AABB = s_sweptAABB1;
var _local5:b2AABB = s_sweptAABB2;
ComputeAABB(_local4, _arg2);
ComputeAABB(_local5, _arg3);
_arg1.lowerBound.Set(((_local4.lowerBound.x < _local5.lowerBound.x)) ? _local4.lowerBound.x : _local5.lowerBound.x, ((_local4.lowerBound.y < _local5.lowerBound.y)) ? _local4.lowerBound.y : _local5.lowerBound.y);
_arg1.upperBound.Set(((_local4.upperBound.x > _local5.upperBound.x)) ? _local4.upperBound.x : _local5.upperBound.x, ((_local4.upperBound.y > _local5.upperBound.y)) ? _local4.upperBound.y : _local5.upperBound.y);
}
override public function ComputeMass(_arg1:b2MassData):void{
var _local10:b2Vec2;
var _local11:b2Vec2;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
var _local2:Number = 0;
var _local3:Number = 0;
var _local4:Number = 0;
var _local5:Number = 0;
var _local6:Number = 0;
var _local7:Number = 0;
var _local8:Number = (1 / 3);
var _local9:int;
while (_local9 < m_vertexCount) {
_local10 = m_vertices[_local9];
_local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[int((_local9 + 1))] : m_vertices[0];
_local12 = (_local10.x - _local6);
_local13 = (_local10.y - _local7);
_local14 = (_local11.x - _local6);
_local15 = (_local11.y - _local7);
_local16 = ((_local12 * _local15) - (_local13 * _local14));
_local17 = (0.5 * _local16);
_local4 = (_local4 + _local17);
_local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x)));
_local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y)));
_local18 = _local6;
_local19 = _local7;
_local20 = _local12;
_local21 = _local13;
_local22 = _local14;
_local23 = _local15;
_local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18));
_local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19));
_local5 = (_local5 + (_local16 * (_local24 + _local25)));
_local9++;
};
_arg1.mass = (m_density * _local4);
_local2 = (_local2 * (1 / _local4));
_local3 = (_local3 * (1 / _local4));
_arg1.center.Set(_local2, _local3);
_arg1.I = (m_density * _local5);
}
public function GetOBB():b2OBB{
return (m_obb);
}
public function GetCentroid():b2Vec2{
return (m_centroid);
}
public function GetVertexCount():int{
return (m_vertexCount);
}
public function GetVertices():Array{
return (m_vertices);
}
public function GetCoreVertices():Array{
return (m_coreVertices);
}
public function GetNormals():Array{
return (m_normals);
}
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));
}
public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{
var _local4:b2Vec2;
var _local5:b2Mat22;
var _local11:Number;
_local5 = _arg1.R;
var _local6:Number = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y));
var _local7:Number = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y));
var _local8:int;
_local4 = m_coreVertices[0];
var _local9:Number = ((_local4.x * _local6) + (_local4.y * _local7));
var _local10 = 1;
while (_local10 < m_vertexCount) {
_local4 = m_coreVertices[_local10];
_local11 = ((_local4.x * _local6) + (_local4.y * _local7));
if (_local11 > _local9){
_local8 = _local10;
_local9 = _local11;
};
_local10++;
};
_local5 = _arg1.R;
_local4 = m_coreVertices[_local8];
s_supportVec.x = (_arg1.position.x + ((_local5.col1.x * _local4.x) + (_local5.col2.x * _local4.y)));
s_supportVec.y = (_arg1.position.y + ((_local5.col1.y * _local4.x) + (_local5.col2.y * _local4.y)));
return (s_supportVec);
}
override public function UpdateSweepRadius(_arg1:b2Vec2):void{
var _local2:b2Vec2;
var _local4:Number;
var _local5:Number;
m_sweepRadius = 0;
var _local3:int;
while (_local3 < m_vertexCount) {
_local2 = m_coreVertices[_local3];
_local4 = (_local2.x - _arg1.x);
_local5 = (_local2.y - _arg1.y);
_local4 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5)));
if (_local4 > m_sweepRadius){
m_sweepRadius = _local4;
};
_local3++;
};
}
public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{
var _local3:b2Vec2;
var _local7:Number;
var _local9:b2Vec2;
var _local10:b2Vec2;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
_local3 = new b2Vec2();
var _local4:Number = 0;
var _local5:Number = 0;
var _local6:Number = 0;
_local7 = (1 / 3);
var _local8:int;
while (_local8 < _arg2) {
_local9 = _arg1[_local8];
_local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0];
_local11 = (_local9.x - _local5);
_local12 = (_local9.y - _local6);
_local13 = (_local10.x - _local5);
_local14 = (_local10.y - _local6);
_local15 = ((_local11 * _local14) - (_local12 * _local13));
_local16 = (0.5 * _local15);
_local4 = (_local4 + _local16);
_local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x)));
_local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y)));
_local8++;
};
_local3.x = (_local3.x * (1 / _local4));
_local3.y = (_local3.y * (1 / _local4));
return (_local3);
}
public static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{
var _local4:int;
var _local7:b2Vec2;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:int;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:b2Mat22;
var _local5:Array = new Array((b2Settings.b2_maxPolygonVertices + 1));
_local4 = 0;
while (_local4 < _arg3) {
_local5[_local4] = _arg2[_local4];
_local4++;
};
_local5[_arg3] = _local5[0];
var _local6:Number = Number.MAX_VALUE;
_local4 = 1;
while (_local4 <= _arg3) {
_local7 = _local5[int((_local4 - 1))];
_local8 = (_local5[_local4].x - _local7.x);
_local9 = (_local5[_local4].y - _local7.y);
_local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9)));
_local8 = (_local8 / _local10);
_local9 = (_local9 / _local10);
_local11 = -(_local9);
_local12 = _local8;
_local13 = Number.MAX_VALUE;
_local14 = Number.MAX_VALUE;
_local15 = -(Number.MAX_VALUE);
_local16 = -(Number.MAX_VALUE);
_local17 = 0;
while (_local17 < _arg3) {
_local19 = (_local5[_local17].x - _local7.x);
_local20 = (_local5[_local17].y - _local7.y);
_local21 = ((_local8 * _local19) + (_local9 * _local20));
_local22 = ((_local11 * _local19) + (_local12 * _local20));
if (_local21 < _local13){
_local13 = _local21;
};
if (_local22 < _local14){
_local14 = _local22;
};
if (_local21 > _local15){
_local15 = _local21;
};
if (_local22 > _local16){
_local16 = _local22;
};
_local17++;
};
_local18 = ((_local15 - _local13) * (_local16 - _local14));
if (_local18 < (0.95 * _local6)){
_local6 = _local18;
_arg1.R.col1.x = _local8;
_arg1.R.col1.y = _local9;
_arg1.R.col2.x = _local11;
_arg1.R.col2.y = _local12;
_local23 = (0.5 * (_local13 + _local15));
_local24 = (0.5 * (_local14 + _local16));
_local25 = _arg1.R;
_arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24)));
_arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24)));
_arg1.extents.x = (0.5 * (_local15 - _local13));
_arg1.extents.y = (0.5 * (_local16 - _local14));
};
_local4++;
};
}
}
}//package Box2D.Collision.Shapes
Section 8
//b2Shape (Box2D.Collision.Shapes.b2Shape)
package Box2D.Collision.Shapes {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Common.*;
public class b2Shape {
public var m_type:int;
public var m_next:b2Shape;
public var m_body:b2Body;
public var m_sweepRadius:Number;
public var m_density:Number;
public var m_friction:Number;
public var m_restitution:Number;
public var m_proxyId:uint;
public var m_filter:b2FilterData;
public var m_isSensor:Boolean;
public var m_userData;
public static const e_unknownShape:int = -1;
public static const e_circleShape:int = 0;
public static const e_polygonShape:int = 1;
public static const e_shapeTypeCount:int = 2;
private static var s_proxyAABB:b2AABB = new b2AABB();
private static var s_syncAABB:b2AABB = new b2AABB();
private static var s_resetAABB:b2AABB = new b2AABB();
public function b2Shape(_arg1:b2ShapeDef){
m_userData = _arg1.userData;
m_friction = _arg1.friction;
m_restitution = _arg1.restitution;
m_density = _arg1.density;
m_body = null;
m_sweepRadius = 0;
m_next = null;
m_proxyId = b2Pair.b2_nullProxy;
m_filter = _arg1.filter.Copy();
m_isSensor = _arg1.isSensor;
}
public function GetType():int{
return (m_type);
}
public function IsSensor():Boolean{
return (m_isSensor);
}
public function SetFilterData(_arg1:b2FilterData):void{
m_filter = _arg1.Copy();
}
public function GetFilterData():b2FilterData{
return (m_filter.Copy());
}
public function GetBody():b2Body{
return (m_body);
}
public function GetNext():b2Shape{
return (m_next);
}
public function GetUserData(){
return (m_userData);
}
public function SetUserData(_arg1):void{
m_userData = _arg1;
}
public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{
return (false);
}
public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{
return (false);
}
public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{
}
public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{
}
public function ComputeMass(_arg1:b2MassData):void{
}
public function GetSweepRadius():Number{
return (m_sweepRadius);
}
public function GetFriction():Number{
return (m_friction);
}
public function GetRestitution():Number{
return (m_restitution);
}
public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{
var _local3:b2AABB = s_proxyAABB;
ComputeAABB(_local3, _arg2);
var _local4:Boolean = _arg1.InRange(_local3);
if (_local4){
m_proxyId = _arg1.CreateProxy(_local3, this);
} else {
m_proxyId = b2Pair.b2_nullProxy;
};
}
public function DestroyProxy(_arg1:b2BroadPhase):void{
if (m_proxyId != b2Pair.b2_nullProxy){
_arg1.DestroyProxy(m_proxyId);
m_proxyId = b2Pair.b2_nullProxy;
};
}
public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{
if (m_proxyId == b2Pair.b2_nullProxy){
return (false);
};
var _local4:b2AABB = s_syncAABB;
ComputeSweptAABB(_local4, _arg2, _arg3);
if (_arg1.InRange(_local4)){
_arg1.MoveProxy(m_proxyId, _local4);
return (true);
};
return (false);
}
public function RefilterProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{
if (m_proxyId == b2Pair.b2_nullProxy){
return;
};
_arg1.DestroyProxy(m_proxyId);
var _local3:b2AABB = s_resetAABB;
ComputeAABB(_local3, _arg2);
var _local4:Boolean = _arg1.InRange(_local3);
if (_local4){
m_proxyId = _arg1.CreateProxy(_local3, this);
} else {
m_proxyId = b2Pair.b2_nullProxy;
};
}
public function UpdateSweepRadius(_arg1:b2Vec2):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);
};
}
public static function Destroy(_arg1:b2Shape, _arg2):void{
}
}
}//package Box2D.Collision.Shapes
Section 9
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef)
package Box2D.Collision.Shapes {
import Box2D.Common.Math.*;
import Box2D.Common.*;
public class b2ShapeDef {
public var type:int;// = -1
public var userData;// = null
public var friction:Number;// = 0.2
public var restitution:Number;// = 0
public var density:Number;// = 0
public var isSensor:Boolean;// = false
public var filter:b2FilterData;
public function b2ShapeDef(){
filter = new b2FilterData();
super();
}
}
}//package Box2D.Collision.Shapes
Section 10
//b2AABB (Box2D.Collision.b2AABB)
package Box2D.Collision {
import Box2D.Common.Math.*;
public class b2AABB {
public var lowerBound:b2Vec2;
public var upperBound:b2Vec2;
public function b2AABB(){
lowerBound = new b2Vec2();
upperBound = new b2Vec2();
super();
}
public function IsValid():Boolean{
var _local1:Number = (upperBound.x - lowerBound.x);
var _local2:Number = (upperBound.y - lowerBound.y);
var _local3:Boolean = (((_local1 >= 0)) && ((_local2 >= 0)));
_local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid()));
return (_local3);
}
}
}//package Box2D.Collision
Section 11
//b2Bound (Box2D.Collision.b2Bound)
package Box2D.Collision {
public class b2Bound {
public var value:uint;
public var proxyId:uint;
public var stabbingCount:uint;
public function IsLower():Boolean{
return (((value & 1) == 0));
}
public function IsUpper():Boolean{
return (((value & 1) == 1));
}
public function Swap(_arg1:b2Bound):void{
var _local2:uint = value;
var _local3:uint = proxyId;
var _local4:uint = stabbingCount;
value = _arg1.value;
proxyId = _arg1.proxyId;
stabbingCount = _arg1.stabbingCount;
_arg1.value = _local2;
_arg1.proxyId = _local3;
_arg1.stabbingCount = _local4;
}
}
}//package Box2D.Collision
Section 12
//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 13
//b2BroadPhase (Box2D.Collision.b2BroadPhase)
package Box2D.Collision {
import Box2D.Common.Math.*;
import Box2D.Common.*;
public class b2BroadPhase {
public var m_pairManager:b2PairManager;
public var m_proxyPool:Array;
public var m_freeProxy:uint;
public var m_bounds:Array;
public var m_queryResults:Array;
public var m_queryResultCount:int;
public var m_worldAABB:b2AABB;
public var m_quantizationFactor:b2Vec2;
public var m_proxyCount:int;
public var m_timeStamp:uint;
public static const b2_invalid:uint = b2Settings.USHRT_MAX;
public static const b2_nullEdge:uint = b2Settings.USHRT_MAX;
public static var s_validate:Boolean = false;
public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){
var _local3:int;
var _local5:Number;
var _local6:b2Proxy;
var _local7:int;
m_pairManager = new b2PairManager();
m_proxyPool = new Array(b2Settings.b2_maxPairs);
m_bounds = new Array((2 * b2Settings.b2_maxProxies));
m_queryResults = new Array(b2Settings.b2_maxProxies);
m_quantizationFactor = new b2Vec2();
super();
m_pairManager.Initialize(this, _arg2);
m_worldAABB = _arg1;
m_proxyCount = 0;
_local3 = 0;
while (_local3 < b2Settings.b2_maxProxies) {
m_queryResults[_local3] = 0;
_local3++;
};
m_bounds = new Array(2);
_local3 = 0;
while (_local3 < 2) {
m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies));
_local7 = 0;
while (_local7 < (2 * b2Settings.b2_maxProxies)) {
m_bounds[_local3][_local7] = new b2Bound();
_local7++;
};
_local3++;
};
var _local4:Number = (_arg1.upperBound.x - _arg1.lowerBound.x);
_local5 = (_arg1.upperBound.y - _arg1.lowerBound.y);
m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4);
m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5);
_local3 = 0;
while (_local3 < (b2Settings.b2_maxProxies - 1)) {
_local6 = new b2Proxy();
m_proxyPool[_local3] = _local6;
_local6.SetNext((_local3 + 1));
_local6.timeStamp = 0;
_local6.overlapCount = b2_invalid;
_local6.userData = null;
_local3++;
};
_local6 = new b2Proxy();
m_proxyPool[int((b2Settings.b2_maxProxies - 1))] = _local6;
_local6.SetNext(b2Pair.b2_nullProxy);
_local6.timeStamp = 0;
_local6.overlapCount = b2_invalid;
_local6.userData = null;
m_freeProxy = 0;
m_timeStamp = 1;
m_queryResultCount = 0;
}
public function 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 GetProxy(_arg1:int):b2Proxy{
var _local2:b2Proxy = m_proxyPool[_arg1];
if ((((_arg1 == b2Pair.b2_nullProxy)) || ((_local2.IsValid() == false)))){
return (null);
};
return (_local2);
}
public function CreateProxy(_arg1:b2AABB, _arg2):uint{
var _local3:uint;
var _local4:b2Proxy;
var _local11:Array;
var _local12:uint;
var _local13:uint;
var _local14:Array;
var _local15:Array;
var _local16:Array;
var _local17:int;
var _local18:int;
var _local19:b2Bound;
var _local20:b2Bound;
var _local21:b2Bound;
var _local22:int;
var _local23:b2Proxy;
var _local5:uint = m_freeProxy;
_local4 = m_proxyPool[_local5];
m_freeProxy = _local4.GetNext();
_local4.overlapCount = 0;
_local4.userData = _arg2;
var _local6:uint = (2 * m_proxyCount);
var _local7:Array = new Array();
var _local8:Array = new Array();
ComputeBounds(_local7, _local8, _arg1);
var _local9:int;
while (_local9 < 2) {
_local11 = m_bounds[_local9];
_local14 = [_local12];
_local15 = [_local13];
Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9);
_local12 = _local14[0];
_local13 = _local15[0];
_local16 = new Array();
_local18 = (_local6 - _local13);
_local17 = 0;
while (_local17 < _local18) {
_local16[_local17] = new b2Bound();
_local19 = _local16[_local17];
_local20 = _local11[int((_local13 + _local17))];
_local19.value = _local20.value;
_local19.proxyId = _local20.proxyId;
_local19.stabbingCount = _local20.stabbingCount;
_local17++;
};
_local18 = _local16.length;
_local22 = (_local13 + 2);
_local17 = 0;
while (_local17 < _local18) {
_local20 = _local16[_local17];
_local19 = _local11[int((_local22 + _local17))];
_local19.value = _local20.value;
_local19.proxyId = _local20.proxyId;
_local19.stabbingCount = _local20.stabbingCount;
_local17++;
};
_local16 = new Array();
_local18 = (_local13 - _local12);
_local17 = 0;
while (_local17 < _local18) {
_local16[_local17] = new b2Bound();
_local19 = _local16[_local17];
_local20 = _local11[int((_local12 + _local17))];
_local19.value = _local20.value;
_local19.proxyId = _local20.proxyId;
_local19.stabbingCount = _local20.stabbingCount;
_local17++;
};
_local18 = _local16.length;
_local22 = (_local12 + 1);
_local17 = 0;
while (_local17 < _local18) {
_local20 = _local16[_local17];
_local19 = _local11[int((_local22 + _local17))];
_local19.value = _local20.value;
_local19.proxyId = _local20.proxyId;
_local19.stabbingCount = _local20.stabbingCount;
_local17++;
};
_local13++;
_local19 = _local11[_local12];
_local20 = _local11[_local13];
_local19.value = _local7[_local9];
_local19.proxyId = _local5;
_local20.value = _local8[_local9];
_local20.proxyId = _local5;
_local21 = _local11[int((_local12 - 1))];
_local19.stabbingCount = ((_local12 == 0)) ? 0 : _local21.stabbingCount;
_local21 = _local11[int((_local13 - 1))];
_local20.stabbingCount = _local21.stabbingCount;
_local3 = _local12;
while (_local3 < _local13) {
_local21 = _local11[_local3];
_local21.stabbingCount++;
_local3++;
};
_local3 = _local12;
while (_local3 < (_local6 + 2)) {
_local19 = _local11[_local3];
_local23 = m_proxyPool[_local19.proxyId];
if (_local19.IsLower()){
_local23.lowerBounds[_local9] = _local3;
} else {
_local23.upperBounds[_local9] = _local3;
};
_local3++;
};
_local9++;
};
m_proxyCount++;
var _local10:int;
while (_local10 < m_queryResultCount) {
m_pairManager.AddBufferedPair(_local5, m_queryResults[_local10]);
_local10++;
};
m_pairManager.Commit();
m_queryResultCount = 0;
IncrementTimeStamp();
return (_local5);
}
public function DestroyProxy(_arg1:uint):void{
var _local2:b2Bound;
var _local3:b2Bound;
var _local8:Array;
var _local9:uint;
var _local10:uint;
var _local11:uint;
var _local12:uint;
var _local13:Array;
var _local14:int;
var _local15:int;
var _local16:int;
var _local17:uint;
var _local18:int;
var _local19:b2Proxy;
var _local4:b2Proxy = m_proxyPool[_arg1];
var _local5:int = (2 * m_proxyCount);
var _local6:int;
while (_local6 < 2) {
_local8 = m_bounds[_local6];
_local9 = _local4.lowerBounds[_local6];
_local10 = _local4.upperBounds[_local6];
_local2 = _local8[_local9];
_local11 = _local2.value;
_local3 = _local8[_local10];
_local12 = _local3.value;
_local13 = new Array();
_local15 = ((_local10 - _local9) - 1);
_local14 = 0;
while (_local14 < _local15) {
_local13[_local14] = new b2Bound();
_local2 = _local13[_local14];
_local3 = _local8[int(((_local9 + 1) + _local14))];
_local2.value = _local3.value;
_local2.proxyId = _local3.proxyId;
_local2.stabbingCount = _local3.stabbingCount;
_local14++;
};
_local15 = _local13.length;
_local16 = _local9;
_local14 = 0;
while (_local14 < _local15) {
_local3 = _local13[_local14];
_local2 = _local8[int((_local16 + _local14))];
_local2.value = _local3.value;
_local2.proxyId = _local3.proxyId;
_local2.stabbingCount = _local3.stabbingCount;
_local14++;
};
_local13 = new Array();
_local15 = ((_local5 - _local10) - 1);
_local14 = 0;
while (_local14 < _local15) {
_local13[_local14] = new b2Bound();
_local2 = _local13[_local14];
_local3 = _local8[int(((_local10 + 1) + _local14))];
_local2.value = _local3.value;
_local2.proxyId = _local3.proxyId;
_local2.stabbingCount = _local3.stabbingCount;
_local14++;
};
_local15 = _local13.length;
_local16 = (_local10 - 1);
_local14 = 0;
while (_local14 < _local15) {
_local3 = _local13[_local14];
_local2 = _local8[int((_local16 + _local14))];
_local2.value = _local3.value;
_local2.proxyId = _local3.proxyId;
_local2.stabbingCount = _local3.stabbingCount;
_local14++;
};
_local15 = (_local5 - 2);
_local17 = _local9;
while (_local17 < _local15) {
_local2 = _local8[_local17];
_local19 = m_proxyPool[_local2.proxyId];
if (_local2.IsLower()){
_local19.lowerBounds[_local6] = _local17;
} else {
_local19.upperBounds[_local6] = _local17;
};
_local17++;
};
_local15 = (_local10 - 1);
_local18 = _local9;
while (_local18 < _local15) {
_local2 = _local8[_local18];
_local2.stabbingCount--;
_local18++;
};
Query([0], [0], _local11, _local12, _local8, (_local5 - 2), _local6);
_local6++;
};
var _local7:int;
while (_local7 < m_queryResultCount) {
m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local7]);
_local7++;
};
m_pairManager.Commit();
m_queryResultCount = 0;
IncrementTimeStamp();
_local4.userData = null;
_local4.overlapCount = b2_invalid;
_local4.lowerBounds[0] = b2_invalid;
_local4.lowerBounds[1] = b2_invalid;
_local4.upperBounds[0] = b2_invalid;
_local4.upperBounds[1] = b2_invalid;
_local4.SetNext(m_freeProxy);
m_freeProxy = _arg1;
m_proxyCount--;
}
public function MoveProxy(_arg1:uint, _arg2:b2AABB):void{
var _local3:Array;
var _local4:int;
var _local5:uint;
var _local6:uint;
var _local7:b2Bound;
var _local8:b2Bound;
var _local9:b2Bound;
var _local10:uint;
var _local11:b2Proxy;
var _local16:Array;
var _local17:uint;
var _local18:uint;
var _local19:uint;
var _local20:uint;
var _local21:int;
var _local22:int;
var _local23:uint;
var _local24:b2Proxy;
if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){
return;
};
if (_arg2.IsValid() == false){
return;
};
var _local12:uint = (2 * m_proxyCount);
var _local13:b2Proxy = m_proxyPool[_arg1];
var _local14:b2BoundValues = new b2BoundValues();
ComputeBounds(_local14.lowerValues, _local14.upperValues, _arg2);
var _local15:b2BoundValues = new b2BoundValues();
_local5 = 0;
while (_local5 < 2) {
_local7 = m_bounds[_local5][_local13.lowerBounds[_local5]];
_local15.lowerValues[_local5] = _local7.value;
_local7 = m_bounds[_local5][_local13.upperBounds[_local5]];
_local15.upperValues[_local5] = _local7.value;
_local5++;
};
_local5 = 0;
while (_local5 < 2) {
_local16 = m_bounds[_local5];
_local17 = _local13.lowerBounds[_local5];
_local18 = _local13.upperBounds[_local5];
_local19 = _local14.lowerValues[_local5];
_local20 = _local14.upperValues[_local5];
_local7 = _local16[_local17];
_local21 = (_local19 - _local7.value);
_local7.value = _local19;
_local7 = _local16[_local18];
_local22 = (_local20 - _local7.value);
_local7.value = _local20;
if (_local21 < 0){
_local6 = _local17;
while ((((_local6 > 0)) && ((_local19 < (_local16[int((_local6 - 1))] as b2Bound).value)))) {
_local7 = _local16[_local6];
_local8 = _local16[int((_local6 - 1))];
_local23 = _local8.proxyId;
_local24 = m_proxyPool[_local8.proxyId];
_local8.stabbingCount++;
if (_local8.IsUpper() == true){
if (TestOverlap(_local14, _local24)){
m_pairManager.AddBufferedPair(_arg1, _local23);
};
_local3 = _local24.upperBounds;
_local4 = _local3[_local5];
_local4++;
_local3[_local5] = _local4;
_local7.stabbingCount++;
} else {
_local3 = _local24.lowerBounds;
_local4 = _local3[_local5];
_local4++;
_local3[_local5] = _local4;
_local7.stabbingCount--;
};
_local3 = _local13.lowerBounds;
_local4 = _local3[_local5];
_local4--;
_local3[_local5] = _local4;
_local7.Swap(_local8);
_local6--;
};
};
if (_local22 > 0){
_local6 = _local18;
while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local20)))) {
_local7 = _local16[_local6];
_local9 = _local16[int((_local6 + 1))];
_local10 = _local9.proxyId;
_local11 = m_proxyPool[_local10];
_local9.stabbingCount++;
if (_local9.IsLower() == true){
if (TestOverlap(_local14, _local11)){
m_pairManager.AddBufferedPair(_arg1, _local10);
};
_local3 = _local11.lowerBounds;
_local4 = _local3[_local5];
_local4--;
_local3[_local5] = _local4;
_local7.stabbingCount++;
} else {
_local3 = _local11.upperBounds;
_local4 = _local3[_local5];
_local4--;
_local3[_local5] = _local4;
_local7.stabbingCount--;
};
_local3 = _local13.upperBounds;
_local4 = _local3[_local5];
_local4++;
_local3[_local5] = _local4;
_local7.Swap(_local9);
_local6++;
};
};
if (_local21 > 0){
_local6 = _local17;
while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local19)))) {
_local7 = _local16[_local6];
_local9 = _local16[int((_local6 + 1))];
_local10 = _local9.proxyId;
_local11 = m_proxyPool[_local10];
_local9.stabbingCount--;
if (_local9.IsUpper()){
if (TestOverlap(_local15, _local11)){
m_pairManager.RemoveBufferedPair(_arg1, _local10);
};
_local3 = _local11.upperBounds;
_local4 = _local3[_local5];
_local4--;
_local3[_local5] = _local4;
_local7.stabbingCount--;
} else {
_local3 = _local11.lowerBounds;
_local4 = _local3[_local5];
_local4--;
_local3[_local5] = _local4;
_local7.stabbingCount++;
};
_local3 = _local13.lowerBounds;
_local4 = _local3[_local5];
_local4++;
_local3[_local5] = _local4;
_local7.Swap(_local9);
_local6++;
};
};
if (_local22 < 0){
_local6 = _local18;
while ((((_local6 > 0)) && ((_local20 < (_local16[int((_local6 - 1))] as b2Bound).value)))) {
_local7 = _local16[_local6];
_local8 = _local16[int((_local6 - 1))];
_local23 = _local8.proxyId;
_local24 = m_proxyPool[_local23];
_local8.stabbingCount--;
if (_local8.IsLower() == true){
if (TestOverlap(_local15, _local24)){
m_pairManager.RemoveBufferedPair(_arg1, _local23);
};
_local3 = _local24.lowerBounds;
_local4 = _local3[_local5];
_local4++;
_local3[_local5] = _local4;
_local7.stabbingCount--;
} else {
_local3 = _local24.upperBounds;
_local4 = _local3[_local5];
_local4++;
_local3[_local5] = _local4;
_local7.stabbingCount++;
};
_local3 = _local13.upperBounds;
_local4 = _local3[_local5];
_local4--;
_local3[_local5] = _local4;
_local7.Swap(_local8);
_local6--;
};
};
_local5++;
};
}
public function Commit():void{
m_pairManager.Commit();
}
public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{
var _local6:uint;
var _local7:uint;
var _local12:b2Proxy;
var _local4:Array = new Array();
var _local5:Array = new Array();
ComputeBounds(_local4, _local5, _arg1);
var _local8:Array = [_local6];
var _local9:Array = [_local7];
Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0);
Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1);
var _local10:int;
var _local11:int;
while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) {
_local12 = m_proxyPool[m_queryResults[_local11]];
_arg2[_local11] = _local12.userData;
_local11++;
_local10++;
};
m_queryResultCount = 0;
IncrementTimeStamp();
return (_local10);
}
public function Validate():void{
var _local1:b2Pair;
var _local2:b2Proxy;
var _local3:b2Proxy;
var _local4:Boolean;
var _local6:b2Bound;
var _local7:uint;
var _local8:uint;
var _local9:uint;
var _local10:b2Bound;
var _local5:int;
while (_local5 < 2) {
_local6 = m_bounds[_local5];
_local7 = (2 * m_proxyCount);
_local8 = 0;
_local9 = 0;
while (_local9 < _local7) {
_local10 = _local6[_local9];
if (_local10.IsLower() == true){
_local8++;
} else {
_local8--;
};
_local9++;
};
_local5++;
};
}
private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{
var _local4:Number = _arg3.lowerBound.x;
var _local5:Number = _arg3.lowerBound.y;
_local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x);
_local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y);
_local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x);
_local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y);
var _local6:Number = _arg3.upperBound.x;
var _local7:Number = _arg3.upperBound.y;
_local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x);
_local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y);
_local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x);
_local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y);
_arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1));
_arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1);
_arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1));
_arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1);
}
private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{
var _local4:Array;
var _local5:b2Bound;
var _local6:b2Bound;
var _local3:int;
while (_local3 < 2) {
_local4 = m_bounds[_local3];
_local5 = _local4[_arg1.lowerBounds[_local3]];
_local6 = _local4[_arg2.upperBounds[_local3]];
if (_local5.value > _local6.value){
return (false);
};
_local5 = _local4[_arg1.upperBounds[_local3]];
_local6 = _local4[_arg2.lowerBounds[_local3]];
if (_local5.value < _local6.value){
return (false);
};
_local3++;
};
return (true);
}
public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{
var _local4:Array;
var _local5:b2Bound;
var _local3:int;
while (_local3 < 2) {
_local4 = m_bounds[_local3];
_local5 = _local4[_arg2.upperBounds[_local3]];
if (_arg1.lowerValues[_local3] > _local5.value){
return (false);
};
_local5 = _local4[_arg2.lowerBounds[_local3]];
if (_arg1.upperValues[_local3] < _local5.value){
return (false);
};
_local3++;
};
return (true);
}
private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{
var _local10:b2Bound;
var _local12:int;
var _local13:int;
var _local14:b2Proxy;
var _local8:uint = BinarySearch(_arg5, _arg6, _arg3);
var _local9:uint = BinarySearch(_arg5, _arg6, _arg4);
var _local11:uint = _local8;
while (_local11 < _local9) {
_local10 = _arg5[_local11];
if (_local10.IsLower()){
IncrementOverlapCount(_local10.proxyId);
};
_local11++;
};
if (_local8 > 0){
_local12 = (_local8 - 1);
_local10 = _arg5[_local12];
_local13 = _local10.stabbingCount;
while (_local13) {
_local10 = _arg5[_local12];
if (_local10.IsLower()){
_local14 = m_proxyPool[_local10.proxyId];
if (_local8 <= _local14.upperBounds[_arg7]){
IncrementOverlapCount(_local10.proxyId);
_local13--;
};
};
_local12--;
};
};
_arg1[0] = _local8;
_arg2[0] = _local9;
}
private function IncrementOverlapCount(_arg1:uint):void{
var _local2:b2Proxy = m_proxyPool[_arg1];
if (_local2.timeStamp < m_timeStamp){
_local2.timeStamp = m_timeStamp;
_local2.overlapCount = 1;
} else {
_local2.overlapCount = 2;
m_queryResults[m_queryResultCount] = _arg1;
m_queryResultCount++;
};
}
private function IncrementTimeStamp():void{
var _local1:uint;
if (m_timeStamp == b2Settings.USHRT_MAX){
_local1 = 0;
while (_local1 < b2Settings.b2_maxProxies) {
(m_proxyPool[_local1] as b2Proxy).timeStamp = 0;
_local1++;
};
m_timeStamp = 1;
} else {
m_timeStamp++;
};
}
public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{
var _local6:int;
var _local7:b2Bound;
var _local4:int;
var _local5:int = (_arg2 - 1);
while (_local4 <= _local5) {
_local6 = ((_local4 + _local5) / 2);
_local7 = _arg1[_local6];
if (_local7.value > _arg3){
_local5 = (_local6 - 1);
} else {
if (_local7.value < _arg3){
_local4 = (_local6 + 1);
} else {
return (uint(_local6));
};
};
};
return (uint(_local4));
}
}
}//package Box2D.Collision
Section 14
//b2BufferedPair (Box2D.Collision.b2BufferedPair)
package Box2D.Collision {
public class b2BufferedPair {
public var proxyId1:uint;
public var proxyId2:uint;
}
}//package Box2D.Collision
Section 15
//b2Collision (Box2D.Collision.b2Collision)
package Box2D.Collision {
import Box2D.Common.Math.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
public class b2Collision {
public static const b2_nullFeature:uint = 0xFF;
private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2();
public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{
var _local5:ClipVertex;
var _local6:int;
var _local7:b2Vec2;
var _local8:b2Vec2;
var _local9:Number;
var _local11:Number;
var _local12:b2Vec2;
var _local13:ClipVertex;
_local6 = 0;
_local5 = _arg2[0];
_local7 = _local5.v;
_local5 = _arg2[1];
_local8 = _local5.v;
_local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4);
var _local10:Number = (b2Math.b2Dot(_arg3, _local8) - _arg4);
if (_local9 <= 0){
var _temp1 = _local6;
_local6 = (_local6 + 1);
var _local14 = _temp1;
_arg1[_local14] = _arg2[0];
};
if (_local10 <= 0){
var _temp2 = _local6;
_local6 = (_local6 + 1);
_local14 = _temp2;
_arg1[_local14] = _arg2[1];
};
if ((_local9 * _local10) < 0){
_local11 = (_local9 / (_local9 - _local10));
_local5 = _arg1[_local6];
_local12 = _local5.v;
_local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x)));
_local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y)));
_local5 = _arg1[_local6];
if (_local9 > 0){
_local13 = _arg2[0];
_local5.id = _local13.id;
} else {
_local13 = _arg2[1];
_local5.id = _local13.id;
};
_local6++;
};
return (_local6);
}
public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{
var _local11:b2Mat22;
var _local12:b2Vec2;
var _local25:Number;
var _local6:int = _arg1.m_vertexCount;
var _local7:Array = _arg1.m_vertices;
var _local8:Array = _arg1.m_normals;
var _local9:int = _arg4.m_vertexCount;
var _local10:Array = _arg4.m_vertices;
_local11 = _arg2.R;
_local12 = _local8[_arg3];
var _local13:Number = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y));
var _local14:Number = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y));
_local11 = _arg5.R;
var _local15:Number = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14));
var _local16:Number = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14));
var _local17:int;
var _local18:Number = Number.MAX_VALUE;
var _local19:int;
while (_local19 < _local9) {
_local12 = _local10[_local19];
_local25 = ((_local12.x * _local15) + (_local12.y * _local16));
if (_local25 < _local18){
_local18 = _local25;
_local17 = _local19;
};
_local19++;
};
_local12 = _local7[_arg3];
_local11 = _arg2.R;
var _local20:Number = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)));
var _local21:Number = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)));
_local12 = _local10[_local17];
_local11 = _arg5.R;
var _local22:Number = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)));
var _local23:Number = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)));
_local22 = (_local22 - _local20);
_local23 = (_local23 - _local21);
var _local24:Number = ((_local22 * _local13) + (_local23 * _local14));
return (_local24);
}
public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{
var _local8:b2Vec2;
var _local9:b2Mat22;
var _local22:int;
var _local23:Number;
var _local24:int;
var _local25:Number;
var _local6:int = _arg2.m_vertexCount;
var _local7:Array = _arg2.m_normals;
_local9 = _arg5.R;
_local8 = _arg4.m_centroid;
var _local10:Number = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)));
var _local11:Number = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)));
_local9 = _arg3.R;
_local8 = _arg2.m_centroid;
_local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))));
_local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))));
var _local12:Number = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y));
var _local13:Number = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y));
var _local14:int;
var _local15:Number = -(Number.MAX_VALUE);
var _local16:int;
while (_local16 < _local6) {
_local8 = _local7[_local16];
_local25 = ((_local8.x * _local12) + (_local8.y * _local13));
if (_local25 > _local15){
_local15 = _local25;
_local14 = _local16;
};
_local16++;
};
var _local17:Number = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5);
if (_local17 > 0){
return (_local17);
};
var _local18:int = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1);
var _local19:Number = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5);
if (_local19 > 0){
return (_local19);
};
var _local20:int = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0;
var _local21:Number = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5);
if (_local21 > 0){
return (_local21);
};
if ((((_local19 > _local17)) && ((_local19 > _local21)))){
_local24 = -1;
_local22 = _local18;
_local23 = _local19;
} else {
if (_local21 > _local17){
_local24 = 1;
_local22 = _local20;
_local23 = _local21;
} else {
_arg1[0] = _local14;
return (_local17);
};
};
while (true) {
if (_local24 == -1){
_local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1);
} else {
_local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0;
};
_local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5);
if (_local17 > 0){
return (_local17);
};
if (_local17 > _local23){
_local22 = _local14;
_local23 = _local17;
} else {
break;
};
};
_arg1[0] = _local22;
return (_local23);
}
public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{
var _local12:b2Mat22;
var _local13:b2Vec2;
var _local20:ClipVertex;
var _local23:Number;
var _local7:int = _arg2.m_vertexCount;
var _local8:Array = _arg2.m_normals;
var _local9:int = _arg5.m_vertexCount;
var _local10:Array = _arg5.m_vertices;
var _local11:Array = _arg5.m_normals;
_local12 = _arg3.R;
_local13 = _local8[_arg4];
var _local14:Number = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y));
var _local15:Number = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y));
_local12 = _arg6.R;
var _local16:Number = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15));
_local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15));
_local14 = _local16;
var _local17:int;
var _local18:Number = Number.MAX_VALUE;
var _local19:int;
while (_local19 < _local9) {
_local13 = _local11[_local19];
_local23 = ((_local14 * _local13.x) + (_local15 * _local13.y));
if (_local23 < _local18){
_local18 = _local23;
_local17 = _local19;
};
_local19++;
};
var _local21:int = _local17;
var _local22:int = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0;
_local20 = _arg1[0];
_local13 = _local10[_local21];
_local12 = _arg6.R;
_local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)));
_local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)));
_local20.id.features.referenceEdge = _arg4;
_local20.id.features.incidentEdge = _local21;
_local20.id.features.incidentVertex = 0;
_local20 = _arg1[1];
_local13 = _local10[_local22];
_local12 = _arg6.R;
_local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)));
_local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)));
_local20.id.features.referenceEdge = _arg4;
_local20.id.features.incidentEdge = _local22;
_local20.id.features.incidentVertex = 1;
}
public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{
var _local6:ClipVertex;
var _local13:b2PolygonShape;
var _local14:b2PolygonShape;
var _local17:int;
var _local18:uint;
var _local34:int;
var _local37:b2Vec2;
var _local38:Number;
var _local39:b2ManifoldPoint;
_arg1.pointCount = 0;
var _local7:int;
var _local8:Array = [_local7];
var _local9:Number = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5);
_local7 = _local8[0];
if (_local9 > 0){
return;
};
var _local10:int;
var _local11:Array = [_local10];
var _local12:Number = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3);
_local10 = _local11[0];
if (_local12 > 0){
return;
};
var _local15:b2XForm = new b2XForm();
var _local16:b2XForm = new b2XForm();
var _local19:Number = 0.98;
var _local20:Number = 0.001;
if (_local12 > ((_local19 * _local9) + _local20)){
_local13 = _arg4;
_local14 = _arg2;
_local15.Set(_arg5);
_local16.Set(_arg3);
_local17 = _local10;
_local18 = 1;
} else {
_local13 = _arg2;
_local14 = _arg4;
_local15.Set(_arg3);
_local16.Set(_arg5);
_local17 = _local7;
_local18 = 0;
};
var _local21:Array = [new ClipVertex(), new ClipVertex()];
FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16);
var _local22:int = _local13.m_vertexCount;
var _local23:Array = _local13.m_vertices;
var _local24:b2Vec2 = _local23[_local17];
var _local25:b2Vec2 = _local24.Copy();
if ((_local17 + 1) < _local22){
_local24 = _local23[int((_local17 + 1))];
_local37 = _local24.Copy();
} else {
_local24 = _local23[0];
_local37 = _local24.Copy();
};
var _local26:b2Vec2 = b2Math.SubtractVV(_local37, _local25);
var _local27:b2Vec2 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25));
_local27.Normalize();
var _local28:b2Vec2 = b2Math.b2CrossVF(_local27, 1);
_local25 = b2Math.b2MulX(_local15, _local25);
_local37 = b2Math.b2MulX(_local15, _local37);
var _local29:Number = b2Math.b2Dot(_local28, _local25);
var _local30:Number = -(b2Math.b2Dot(_local27, _local25));
var _local31:Number = b2Math.b2Dot(_local27, _local37);
var _local32:Array = [new ClipVertex(), new ClipVertex()];
var _local33:Array = [new ClipVertex(), new ClipVertex()];
_local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30);
if (_local34 < 2){
return;
};
_local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31);
if (_local34 < 2){
return;
};
_arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy();
var _local35:int;
var _local36:int;
while (_local36 < b2Settings.b2_maxManifoldPoints) {
_local6 = _local33[_local36];
_local38 = (b2Math.b2Dot(_local28, _local6.v) - _local29);
if (_local38 <= 0){
_local39 = _arg1.points[_local35];
_local39.separation = _local38;
_local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v);
_local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v);
_local39.id.key = _local6.id._key;
_local39.id.features.flip = _local18;
_local35++;
};
_local36++;
};
_arg1.pointCount = _local35;
}
public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{
var _local6:b2Mat22;
var _local7:b2Vec2;
var _local18:Number;
var _local24:Number;
var _local25:Number;
_arg1.pointCount = 0;
_local6 = _arg3.R;
_local7 = _arg2.m_localPosition;
var _local8:Number = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y)));
var _local9:Number = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y)));
_local6 = _arg5.R;
_local7 = _arg4.m_localPosition;
var _local10:Number = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y)));
var _local11:Number = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y)));
var _local12:Number = (_local10 - _local8);
var _local13:Number = (_local11 - _local9);
var _local14:Number = ((_local12 * _local12) + (_local13 * _local13));
var _local15:Number = _arg2.m_radius;
var _local16:Number = _arg4.m_radius;
var _local17:Number = (_local15 + _local16);
if (_local14 > (_local17 * _local17)){
return;
};
if (_local14 < Number.MIN_VALUE){
_local18 = -(_local17);
_arg1.normal.Set(0, 1);
} else {
_local24 = Math.sqrt(_local14);
_local18 = (_local24 - _local17);
_local25 = (1 / _local24);
_arg1.normal.x = (_local25 * _local12);
_arg1.normal.y = (_local25 * _local13);
};
_arg1.pointCount = 1;
var _local19:b2ManifoldPoint = _arg1.points[0];
_local19.id.key = 0;
_local19.separation = _local18;
_local8 = (_local8 + (_local15 * _arg1.normal.x));
_local9 = (_local9 + (_local15 * _arg1.normal.y));
_local10 = (_local10 - (_local16 * _arg1.normal.x));
_local11 = (_local11 - (_local16 * _arg1.normal.y));
var _local20:Number = (0.5 * (_local8 + _local10));
var _local21:Number = (0.5 * (_local9 + _local11));
var _local22:Number = (_local20 - _arg3.position.x);
var _local23:Number = (_local21 - _arg3.position.y);
_local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y));
_local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y));
_local22 = (_local20 - _arg5.position.x);
_local23 = (_local21 - _arg5.position.y);
_local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y));
_local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y));
}
public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{
var _local6:b2ManifoldPoint;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:b2Vec2;
var _local12:b2Mat22;
var _local17:Number;
var _local32:Number;
var _local33:Number;
var _local34:Number;
_arg1.pointCount = 0;
_local12 = _arg5.R;
_local11 = _arg4.m_localPosition;
var _local13:Number = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)));
var _local14:Number = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)));
_local7 = (_local13 - _arg3.position.x);
_local8 = (_local14 - _arg3.position.y);
_local12 = _arg3.R;
var _local15:Number = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y));
var _local16:Number = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y));
var _local18:int;
var _local19:Number = -(Number.MAX_VALUE);
var _local20:Number = _arg4.m_radius;
var _local21:int = _arg2.m_vertexCount;
var _local22:Array = _arg2.m_vertices;
var _local23:Array = _arg2.m_normals;
var _local24:int;
while (_local24 < _local21) {
_local11 = _local22[_local24];
_local7 = (_local15 - _local11.x);
_local8 = (_local16 - _local11.y);
_local11 = _local23[_local24];
_local34 = ((_local11.x * _local7) + (_local11.y * _local8));
if (_local34 > _local20){
return;
};
if (_local34 > _local19){
_local19 = _local34;
_local18 = _local24;
};
_local24++;
};
if (_local19 < Number.MIN_VALUE){
_arg1.pointCount = 1;
_local11 = _local23[_local18];
_local12 = _arg3.R;
_arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y));
_arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y));
_local6 = _arg1.points[0];
_local6.id.features.incidentEdge = _local18;
_local6.id.features.incidentVertex = b2_nullFeature;
_local6.id.features.referenceEdge = 0;
_local6.id.features.flip = 0;
_local9 = (_local13 - (_local20 * _arg1.normal.x));
_local10 = (_local14 - (_local20 * _arg1.normal.y));
_local7 = (_local9 - _arg3.position.x);
_local8 = (_local10 - _arg3.position.y);
_local12 = _arg3.R;
_local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y));
_local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y));
_local7 = (_local9 - _arg5.position.x);
_local8 = (_local10 - _arg5.position.y);
_local12 = _arg5.R;
_local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y));
_local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y));
_local6.separation = (_local19 - _local20);
return;
};
var _local25:int = _local18;
var _local26:int = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0;
_local11 = _local22[_local25];
var _local27:b2Vec2 = _local22[_local26];
var _local28:Number = (_local27.x - _local11.x);
var _local29:Number = (_local27.y - _local11.y);
var _local30:Number = Math.sqrt(((_local28 * _local28) + (_local29 * _local29)));
_local28 = (_local28 / _local30);
_local29 = (_local29 / _local30);
_local7 = (_local15 - _local11.x);
_local8 = (_local16 - _local11.y);
var _local31:Number = ((_local7 * _local28) + (_local8 * _local29));
_local6 = _arg1.points[0];
if (_local31 <= 0){
_local32 = _local11.x;
_local33 = _local11.y;
_local6.id.features.incidentEdge = b2_nullFeature;
_local6.id.features.incidentVertex = _local25;
} else {
if (_local31 >= _local30){
_local32 = _local27.x;
_local33 = _local27.y;
_local6.id.features.incidentEdge = b2_nullFeature;
_local6.id.features.incidentVertex = _local26;
} else {
_local32 = ((_local28 * _local31) + _local11.x);
_local33 = ((_local29 * _local31) + _local11.y);
_local6.id.features.incidentEdge = _local18;
_local6.id.features.incidentVertex = 0;
};
};
_local7 = (_local15 - _local32);
_local8 = (_local16 - _local33);
_local17 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8)));
_local7 = (_local7 / _local17);
_local8 = (_local8 / _local17);
if (_local17 > _local20){
return;
};
_arg1.pointCount = 1;
_local12 = _arg3.R;
_arg1.normal.x = ((_local12.col1.x * _local7) + (_local12.col2.x * _local8));
_arg1.normal.y = ((_local12.col1.y * _local7) + (_local12.col2.y * _local8));
_local9 = (_local13 - (_local20 * _arg1.normal.x));
_local10 = (_local14 - (_local20 * _arg1.normal.y));
_local7 = (_local9 - _arg3.position.x);
_local8 = (_local10 - _arg3.position.y);
_local12 = _arg3.R;
_local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y));
_local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y));
_local7 = (_local9 - _arg5.position.x);
_local8 = (_local10 - _arg5.position.y);
_local12 = _arg5.R;
_local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y));
_local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y));
_local6.separation = (_local17 - _local20);
_local6.id.features.referenceEdge = 0;
_local6.id.features.flip = 0;
}
public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{
var _local3:b2Vec2 = _arg2.lowerBound;
var _local4:b2Vec2 = _arg1.upperBound;
var _local5:Number = (_local3.x - _local4.x);
var _local6:Number = (_local3.y - _local4.y);
_local3 = _arg1.lowerBound;
_local4 = _arg2.upperBound;
var _local7:Number = (_local3.x - _local4.x);
var _local8:Number = (_local3.y - _local4.y);
if ((((_local5 > 0)) || ((_local6 > 0)))){
return (false);
};
if ((((_local7 > 0)) || ((_local8 > 0)))){
return (false);
};
return (true);
}
}
}//package Box2D.Collision
Section 16
//b2ContactID (Box2D.Collision.b2ContactID)
package Box2D.Collision {
public class b2ContactID {
public var features:Features;
public var _key:uint;
public function b2ContactID(){
features = new Features();
super();
features._m_id = this;
}
public function Set(_arg1:b2ContactID):void{
key = _arg1._key;
}
public function Copy():b2ContactID{
var _local1:b2ContactID = new b2ContactID();
_local1.key = key;
return (_local1);
}
public function get key():uint{
return (_key);
}
public function set key(_arg1:uint):void{
_key = _arg1;
features._referenceEdge = (_key & 0xFF);
features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF);
features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF);
features._flip = (((_key & 4278190080) >> 24) & 0xFF);
}
}
}//package Box2D.Collision
Section 17
//b2ContactPoint (Box2D.Collision.b2ContactPoint)
package Box2D.Collision {
import Box2D.Common.Math.*;
import Box2D.Collision.Shapes.*;
public class b2ContactPoint {
public var shape1:b2Shape;
public var shape2:b2Shape;
public var position:b2Vec2;
public var velocity:b2Vec2;
public var normal:b2Vec2;
public var separation:Number;
public var friction:Number;
public var restitution:Number;
public var id:b2ContactID;
public function b2ContactPoint(){
position = new b2Vec2();
velocity = new b2Vec2();
normal = new b2Vec2();
id = new b2ContactID();
super();
}
}
}//package Box2D.Collision
Section 18
//b2Distance (Box2D.Collision.b2Distance)
package Box2D.Collision {
import Box2D.Common.Math.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
public class b2Distance {
private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()];
private static var s_p2s: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 ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{
var _local9:b2Vec2;
var _local10:b2Vec2;
var _local11:b2Vec2;
var _local17:Number;
var _local6:b2Vec2 = _arg5[0];
var _local7:b2Vec2 = _arg5[1];
var _local8:b2Vec2 = _arg3[0];
_local9 = _arg3[1];
_local10 = _arg4[0];
_local11 = _arg4[1];
var _local12:Number = -(_local7.x);
var _local13:Number = -(_local7.y);
var _local14:Number = (_local6.x - _local7.x);
var _local15:Number = (_local6.y - _local7.y);
var _local16:Number = Math.sqrt(((_local14 * _local14) + (_local15 * _local15)));
_local14 = (_local14 / _local16);
_local15 = (_local15 / _local16);
_local17 = ((_local12 * _local14) + (_local13 * _local15));
if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){
_arg1.SetV(_local9);
_arg2.SetV(_local11);
_local8.SetV(_local9);
_local10.SetV(_local11);
_local6.SetV(_local7);
return (1);
};
_local17 = (_local17 / _local16);
_arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x)));
_arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y)));
_arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x)));
_arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y)));
return (2);
}
public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{
var _local6:b2Vec2;
var _local7:b2Vec2;
var _local8:b2Vec2;
var _local9:b2Vec2;
var _local10:b2Vec2;
var _local11:b2Vec2;
var _local12:b2Vec2;
var _local13:b2Vec2;
var _local35:Number;
_local6 = _arg5[0];
_local7 = _arg5[1];
_local8 = _arg5[2];
_local9 = _arg3[0];
_local10 = _arg3[1];
_local11 = _arg3[2];
_local12 = _arg4[0];
_local13 = _arg4[1];
var _local14:b2Vec2 = _arg4[2];
var _local15:Number = _local6.x;
var _local16:Number = _local6.y;
var _local17:Number = _local7.x;
var _local18:Number = _local7.y;
var _local19:Number = _local8.x;
var _local20:Number = _local8.y;
var _local21:Number = (_local17 - _local15);
var _local22:Number = (_local18 - _local16);
var _local23:Number = (_local19 - _local15);
var _local24:Number = (_local20 - _local16);
var _local25:Number = (_local19 - _local17);
var _local26:Number = (_local20 - _local18);
var _local27:Number = -(((_local15 * _local21) + (_local16 * _local22)));
var _local28:Number = ((_local17 * _local21) + (_local18 * _local22));
var _local29:Number = -(((_local15 * _local23) + (_local16 * _local24)));
var _local30:Number = ((_local19 * _local23) + (_local20 * _local24));
var _local31:Number = -(((_local17 * _local25) + (_local18 * _local26)));
var _local32:Number = ((_local19 * _local25) + (_local20 * _local26));
if ((((_local30 <= 0)) && ((_local32 <= 0)))){
_arg1.SetV(_local11);
_arg2.SetV(_local14);
_local9.SetV(_local11);
_local12.SetV(_local14);
_local6.SetV(_local8);
return (1);
};
var _local33:Number = ((_local21 * _local24) - (_local22 * _local23));
var _local34:Number = (_local33 * ((_local15 * _local18) - (_local16 * _local17)));
var _local36:Number = (_local33 * ((_local17 * _local20) - (_local18 * _local19)));
if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){
_local35 = (_local31 / (_local31 + _local32));
_arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x)));
_arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y)));
_arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x)));
_arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y)));
_local9.SetV(_local11);
_local12.SetV(_local14);
_local6.SetV(_local8);
return (2);
};
var _local37:Number = (_local33 * ((_local19 * _local16) - (_local20 * _local15)));
if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){
_local35 = (_local29 / (_local29 + _local30));
_arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x)));
_arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y)));
_arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x)));
_arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y)));
_local10.SetV(_local11);
_local13.SetV(_local14);
_local7.SetV(_local8);
return (2);
};
var _local38:Number = ((_local36 + _local37) + _local34);
_local38 = (1 / _local38);
var _local39:Number = (_local36 * _local38);
var _local40:Number = (_local37 * _local38);
var _local41:Number = ((1 - _local39) - _local40);
_arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x));
_arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y));
_arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x));
_arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y));
return (3);
}
public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{
var _local6:b2Vec2;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local4:Number = (100 * Number.MIN_VALUE);
var _local5:int;
while (_local5 < _arg3) {
_local6 = _arg2[_local5];
_local7 = Math.abs((_arg1.x - _local6.x));
_local8 = Math.abs((_arg1.y - _local6.y));
_local9 = Math.max(Math.abs(_arg1.x), Math.abs(_local6.x));
_local10 = Math.max(Math.abs(_arg1.y), Math.abs(_local6.y));
if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){
return (true);
};
_local5++;
};
return (false);
}
public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{
var _local7:b2Vec2;
var _local15:Number;
var _local16:Number;
var _local17:b2Vec2;
var _local18:b2Vec2;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:int;
var _local8:Array = s_p1s;
var _local9:Array = s_p2s;
var _local10:Array = s_points;
var _local11:int;
_arg1.SetV(_arg3.GetFirstVertex(_arg4));
_arg2.SetV(_arg5.GetFirstVertex(_arg6));
var _local12:Number = 0;
var _local13 = 20;
var _local14:int;
while (_local14 < _local13) {
_local15 = (_arg2.x - _arg1.x);
_local16 = (_arg2.y - _arg1.y);
_local17 = _arg3.Support(_arg4, _local15, _local16);
_local18 = _arg5.Support(_arg6, -(_local15), -(_local16));
_local12 = ((_local15 * _local15) + (_local16 * _local16));
_local19 = (_local18.x - _local17.x);
_local20 = (_local18.y - _local17.y);
_local21 = ((_local15 * _local19) + (_local16 * _local20));
if ((_local12 - ((_local15 * _local19) + (_local16 * _local20))) <= (0.01 * _local12)){
if (_local11 == 0){
_arg1.SetV(_local17);
_arg2.SetV(_local18);
};
g_GJK_Iterations = _local14;
return (Math.sqrt(_local12));
};
switch (_local11){
case 0:
_local7 = _local8[0];
_local7.SetV(_local17);
_local7 = _local9[0];
_local7.SetV(_local18);
_local7 = _local10[0];
_local7.x = _local19;
_local7.y = _local20;
_arg1.SetV(_local8[0]);
_arg2.SetV(_local9[0]);
_local11++;
break;
case 1:
_local7 = _local8[1];
_local7.SetV(_local17);
_local7 = _local9[1];
_local7.SetV(_local18);
_local7 = _local10[1];
_local7.x = _local19;
_local7.y = _local20;
_local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10);
break;
case 2:
_local7 = _local8[2];
_local7.SetV(_local17);
_local7 = _local9[2];
_local7.SetV(_local18);
_local7 = _local10[2];
_local7.x = _local19;
_local7.y = _local20;
_local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10);
break;
};
if (_local11 == 3){
g_GJK_Iterations = _local14;
return (0);
};
_local22 = -(Number.MAX_VALUE);
_local23 = 0;
while (_local23 < _local11) {
_local7 = _local10[_local23];
_local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y)));
_local23++;
};
if ((((_local11 == 3)) || ((_local12 <= ((100 * Number.MIN_VALUE) * _local22))))){
g_GJK_Iterations = _local14;
_local15 = (_arg2.x - _arg1.x);
_local16 = (_arg2.y - _arg1.y);
_local12 = ((_local15 * _local15) + (_local16 * _local16));
return (Math.sqrt(_local12));
};
_local14++;
};
g_GJK_Iterations = _local13;
return (Math.sqrt(_local12));
}
public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{
var _local7:b2Mat22;
var _local8:b2Vec2;
var _local19:Number;
var _local20:Number;
_local7 = _arg4.R;
_local8 = _arg3.m_localPosition;
var _local9:Number = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y)));
var _local10:Number = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y)));
_local7 = _arg6.R;
_local8 = _arg5.m_localPosition;
var _local11:Number = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y)));
var _local12:Number = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y)));
var _local13:Number = (_local11 - _local9);
var _local14:Number = (_local12 - _local10);
var _local15:Number = ((_local13 * _local13) + (_local14 * _local14));
var _local16:Number = (_arg3.m_radius - b2Settings.b2_toiSlop);
var _local17:Number = (_arg5.m_radius - b2Settings.b2_toiSlop);
var _local18:Number = (_local16 + _local17);
if (_local15 > (_local18 * _local18)){
_local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14)));
_local13 = (_local13 / _local19);
_local14 = (_local14 / _local19);
_local20 = (_local19 - _local18);
_arg1.x = (_local9 + (_local16 * _local13));
_arg1.y = (_local10 + (_local16 * _local14));
_arg2.x = (_local11 - (_local17 * _local13));
_arg2.y = (_local12 - (_local17 * _local14));
return (_local20);
};
if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){
_local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14)));
_local13 = (_local13 / _local19);
_local14 = (_local14 / _local19);
_arg1.x = (_local9 + (_local16 * _local13));
_arg1.y = (_local10 + (_local16 * _local14));
_arg2.x = _arg1.x;
_arg2.y = _arg1.y;
return (0);
};
_arg1.x = _local9;
_arg1.y = _local10;
_arg2.x = _arg1.x;
_arg2.y = _arg1.y;
return (0);
}
public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{
var _local7:b2Mat22;
var _local8:b2Vec2;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local9:b2Point = gPoint;
_local8 = _arg5.m_localPosition;
_local7 = _arg6.R;
_local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y)));
_local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y)));
var _local10:Number = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity);
var _local11:Number = (_arg5.m_radius - b2Settings.b2_toiSlop);
if (_local10 > _local11){
_local10 = (_local10 - _local11);
_local12 = (_arg2.x - _arg1.x);
_local13 = (_arg2.y - _arg1.y);
_local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13)));
_local12 = (_local12 / _local14);
_local13 = (_local13 / _local14);
_arg2.x = (_arg2.x - (_local11 * _local12));
_arg2.y = (_arg2.y - (_local11 * _local13));
} else {
_local10 = 0;
_arg2.x = _arg1.x;
_arg2.y = _arg1.y;
};
return (_local10);
}
public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{
var _local7:int = _arg3.m_type;
var _local8:int = _arg5.m_type;
if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){
return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6));
};
if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){
return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6));
};
if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){
return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4));
};
if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){
return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6));
};
return (0);
}
}
}//package Box2D.Collision
Section 19
//b2Manifold (Box2D.Collision.b2Manifold)
package Box2D.Collision {
import Box2D.Common.Math.*;
import Box2D.Common.*;
public class b2Manifold {
public var points:Array;
public var normal:b2Vec2;
public var pointCount:int;// = 0
public function b2Manifold(){
points = new Array(b2Settings.b2_maxManifoldPoints);
var _local1:int;
while (_local1 < b2Settings.b2_maxManifoldPoints) {
points[_local1] = new b2ManifoldPoint();
_local1++;
};
normal = new b2Vec2();
}
public function Reset():void{
var _local1:int;
while (_local1 < b2Settings.b2_maxManifoldPoints) {
(points[_local1] as b2ManifoldPoint).Reset();
_local1++;
};
normal.SetZero();
pointCount = 0;
}
public function Set(_arg1:b2Manifold):void{
pointCount = _arg1.pointCount;
var _local2:int;
while (_local2 < b2Settings.b2_maxManifoldPoints) {
(points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]);
_local2++;
};
normal.SetV(_arg1.normal);
}
}
}//package Box2D.Collision
Section 20
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint)
package Box2D.Collision {
import Box2D.Common.Math.*;
public class b2ManifoldPoint {
public var localPoint1:b2Vec2;
public var localPoint2:b2Vec2;
public var separation:Number;
public var normalImpulse:Number;
public var tangentImpulse:Number;
public var id:b2ContactID;
public function b2ManifoldPoint(){
localPoint1 = new b2Vec2();
localPoint2 = new b2Vec2();
id = new b2ContactID();
super();
}
public function Reset():void{
localPoint1.SetZero();
localPoint2.SetZero();
separation = 0;
normalImpulse = 0;
tangentImpulse = 0;
id.key = 0;
}
public function Set(_arg1:b2ManifoldPoint):void{
localPoint1.SetV(_arg1.localPoint1);
localPoint2.SetV(_arg1.localPoint2);
separation = _arg1.separation;
normalImpulse = _arg1.normalImpulse;
tangentImpulse = _arg1.tangentImpulse;
id.key = _arg1.id.key;
}
}
}//package Box2D.Collision
Section 21
//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 22
//b2Pair (Box2D.Collision.b2Pair)
package Box2D.Collision {
import Box2D.Common.*;
public class b2Pair {
public var userData;// = null
public var proxyId1:uint;
public var proxyId2:uint;
public var next:uint;
public var status:uint;
public static var b2_nullPair:uint = b2Settings.USHRT_MAX;
public static var b2_nullProxy:uint = b2Settings.USHRT_MAX;
public static var b2_tableCapacity:int = b2Settings.b2_maxPairs;
public static var b2_tableMask:int = (b2_tableCapacity - 1);
public static var e_pairBuffered:uint = 1;
public static var e_pairRemoved:uint = 2;
public static var e_pairFinal:uint = 4;
public function SetBuffered():void{
status = (status | e_pairBuffered);
}
public function ClearBuffered():void{
status = (status & ~(e_pairBuffered));
}
public function IsBuffered():Boolean{
return (((status & e_pairBuffered) == e_pairBuffered));
}
public function SetRemoved():void{
status = (status | e_pairRemoved);
}
public function ClearRemoved():void{
status = (status & ~(e_pairRemoved));
}
public function IsRemoved():Boolean{
return (((status & e_pairRemoved) == e_pairRemoved));
}
public function SetFinal():void{
status = (status | e_pairFinal);
}
public function IsFinal():Boolean{
return (((status & e_pairFinal) == e_pairFinal));
}
}
}//package Box2D.Collision
Section 23
//b2PairCallback (Box2D.Collision.b2PairCallback)
package Box2D.Collision {
public class b2PairCallback {
public function PairAdded(_arg1, _arg2){
return (null);
}
public function PairRemoved(_arg1, _arg2, _arg3):void{
}
}
}//package Box2D.Collision
Section 24
//b2PairManager (Box2D.Collision.b2PairManager)
package Box2D.Collision {
import Box2D.Common.Math.*;
import Box2D.Common.*;
public class b2PairManager {
public var m_broadPhase:b2BroadPhase;
public var m_callback:b2PairCallback;
public var m_pairs:Array;
public var m_freePair:uint;
public var m_pairCount:int;
public var m_pairBuffer:Array;
public var m_pairBufferCount:int;
public var m_hashTable:Array;
public function b2PairManager(){
var _local1:uint;
super();
m_hashTable = new Array(b2Pair.b2_tableCapacity);
_local1 = 0;
while (_local1 < b2Pair.b2_tableCapacity) {
m_hashTable[_local1] = b2Pair.b2_nullPair;
_local1++;
};
m_pairs = new Array(b2Settings.b2_maxPairs);
_local1 = 0;
while (_local1 < b2Settings.b2_maxPairs) {
m_pairs[_local1] = new b2Pair();
_local1++;
};
m_pairBuffer = new Array(b2Settings.b2_maxPairs);
_local1 = 0;
while (_local1 < b2Settings.b2_maxPairs) {
m_pairBuffer[_local1] = new b2BufferedPair();
_local1++;
};
_local1 = 0;
while (_local1 < b2Settings.b2_maxPairs) {
m_pairs[_local1].proxyId1 = b2Pair.b2_nullProxy;
m_pairs[_local1].proxyId2 = b2Pair.b2_nullProxy;
m_pairs[_local1].userData = null;
m_pairs[_local1].status = 0;
m_pairs[_local1].next = (_local1 + 1);
_local1++;
};
m_pairs[int((b2Settings.b2_maxPairs - 1))].next = b2Pair.b2_nullPair;
m_pairCount = 0;
m_pairBufferCount = 0;
}
public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{
m_broadPhase = _arg1;
m_callback = _arg2;
}
public function AddBufferedPair(_arg1:int, _arg2:int):void{
var _local3:b2BufferedPair;
var _local4:b2Pair = AddPair(_arg1, _arg2);
if (_local4.IsBuffered() == false){
_local4.SetBuffered();
_local3 = m_pairBuffer[m_pairBufferCount];
_local3.proxyId1 = _local4.proxyId1;
_local3.proxyId2 = _local4.proxyId2;
m_pairBufferCount++;
};
_local4.ClearRemoved();
if (b2BroadPhase.s_validate){
ValidateBuffer();
};
}
public function RemoveBufferedPair(_arg1:int, _arg2:int):void{
var _local3:b2BufferedPair;
var _local4:b2Pair = Find(_arg1, _arg2);
if (_local4 == null){
return;
};
if (_local4.IsBuffered() == false){
_local4.SetBuffered();
_local3 = m_pairBuffer[m_pairBufferCount];
_local3.proxyId1 = _local4.proxyId1;
_local3.proxyId2 = _local4.proxyId2;
m_pairBufferCount++;
};
_local4.SetRemoved();
if (b2BroadPhase.s_validate){
ValidateBuffer();
};
}
public function Commit():void{
var _local1:b2BufferedPair;
var _local2:int;
var _local5:b2Pair;
var _local6:b2Proxy;
var _local7:b2Proxy;
var _local3:int;
var _local4:Array = m_broadPhase.m_proxyPool;
_local2 = 0;
while (_local2 < m_pairBufferCount) {
_local1 = m_pairBuffer[_local2];
_local5 = Find(_local1.proxyId1, _local1.proxyId2);
_local5.ClearBuffered();
_local6 = _local4[_local5.proxyId1];
_local7 = _local4[_local5.proxyId2];
if (_local5.IsRemoved()){
if (_local5.IsFinal() == true){
m_callback.PairRemoved(_local6.userData, _local7.userData, _local5.userData);
};
_local1 = m_pairBuffer[_local3];
_local1.proxyId1 = _local5.proxyId1;
_local1.proxyId2 = _local5.proxyId2;
_local3++;
} else {
if (_local5.IsFinal() == false){
_local5.userData = m_callback.PairAdded(_local6.userData, _local7.userData);
_local5.SetFinal();
};
};
_local2++;
};
_local2 = 0;
while (_local2 < _local3) {
_local1 = m_pairBuffer[_local2];
RemovePair(_local1.proxyId1, _local1.proxyId2);
_local2++;
};
m_pairBufferCount = 0;
if (b2BroadPhase.s_validate){
ValidateTable();
};
}
private function AddPair(_arg1:uint, _arg2:uint):b2Pair{
var _local6:uint;
if (_arg1 > _arg2){
_local6 = _arg1;
_arg1 = _arg2;
_arg2 = _local6;
};
var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask);
var _local4 = FindHash(_arg1, _arg2, _local3);
if (_local4 != null){
return (_local4);
};
var _local5:uint = m_freePair;
_local4 = m_pairs[_local5];
m_freePair = _local4.next;
_local4.proxyId1 = _arg1;
_local4.proxyId2 = _arg2;
_local4.status = 0;
_local4.userData = null;
_local4.next = m_hashTable[_local3];
m_hashTable[_local3] = _local5;
m_pairCount++;
return (_local4);
}
private function RemovePair(_arg1:uint, _arg2:uint){
var _local3:b2Pair;
var _local7:uint;
var _local8:uint;
var _local9:*;
if (_arg1 > _arg2){
_local7 = _arg1;
_arg1 = _arg2;
_arg2 = _local7;
};
var _local4:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask);
var _local5:uint = m_hashTable[_local4];
var _local6:b2Pair;
while (_local5 != b2Pair.b2_nullPair) {
if (Equals(m_pairs[_local5], _arg1, _arg2)){
_local8 = _local5;
_local3 = m_pairs[_local5];
if (_local6){
_local6.next = _local3.next;
} else {
m_hashTable[_local4] = _local3.next;
};
_local3 = m_pairs[_local8];
_local9 = _local3.userData;
_local3.next = m_freePair;
_local3.proxyId1 = b2Pair.b2_nullProxy;
_local3.proxyId2 = b2Pair.b2_nullProxy;
_local3.userData = null;
_local3.status = 0;
m_freePair = _local8;
m_pairCount--;
return (_local9);
} else {
_local6 = m_pairs[_local5];
_local5 = _local6.next;
};
};
return (null);
}
private function Find(_arg1:uint, _arg2:uint):b2Pair{
var _local4:uint;
if (_arg1 > _arg2){
_local4 = _arg1;
_arg1 = _arg2;
_arg2 = _local4;
};
var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask);
return (FindHash(_arg1, _arg2, _local3));
}
private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{
var _local4:b2Pair;
var _local5:uint = m_hashTable[_arg3];
_local4 = m_pairs[_local5];
while (((!((_local5 == b2Pair.b2_nullPair))) && ((Equals(_local4, _arg1, _arg2) == false)))) {
_local5 = _local4.next;
_local4 = m_pairs[_local5];
};
if (_local5 == b2Pair.b2_nullPair){
return (null);
};
return (_local4);
}
private function ValidateBuffer():void{
}
private function ValidateTable():void{
}
public static function Hash(_arg1:uint, _arg2:uint):uint{
var _local3:uint = (((_arg2 << 16) & 4294901760) | _arg1);
_local3 = (~(_local3) + ((_local3 << 15) & 4294934528));
_local3 = (_local3 ^ ((_local3 >> 12) & 1048575));
_local3 = (_local3 + ((_local3 << 2) & 4294967292));
_local3 = (_local3 ^ ((_local3 >> 4) & 268435455));
_local3 = (_local3 * 2057);
_local3 = (_local3 ^ ((_local3 >> 16) & 0xFFFF));
return (_local3);
}
public static function Equals(_arg1:b2Pair, _arg2:uint, _arg3:uint):Boolean{
return ((((_arg1.proxyId1 == _arg2)) && ((_arg1.proxyId2 == _arg3))));
}
public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{
return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2))));
}
}
}//package Box2D.Collision
Section 25
//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 Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{
return (p);
}
public function GetFirstVertex(_arg1:b2XForm):b2Vec2{
return (p);
}
}
}//package Box2D.Collision
Section 26
//b2Proxy (Box2D.Collision.b2Proxy)
package Box2D.Collision {
public class b2Proxy {
public var lowerBounds:Array;
public var upperBounds:Array;
public var overlapCount:uint;
public var timeStamp:uint;
public var userData;// = null
public function b2Proxy(){
lowerBounds = [uint(0), uint(0)];
upperBounds = [uint(0), uint(0)];
super();
}
public function GetNext():uint{
return (lowerBounds[0]);
}
public function SetNext(_arg1:uint):void{
lowerBounds[0] = (_arg1 & 0xFFFF);
}
public function IsValid():Boolean{
return (!((overlapCount == b2BroadPhase.b2_invalid)));
}
}
}//package Box2D.Collision
Section 27
//b2Segment (Box2D.Collision.b2Segment)
package Box2D.Collision {
import Box2D.Common.Math.*;
import Box2D.Common.*;
public class b2Segment {
public var p1:b2Vec2;
public var p2:b2Vec2;
public function b2Segment(){
p1 = new b2Vec2();
p2 = new b2Vec2();
super();
}
public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local5:b2Vec2 = _arg3.p1;
var _local6:Number = (_arg3.p2.x - _local5.x);
var _local7:Number = (_arg3.p2.y - _local5.y);
var _local8:Number = (p2.x - p1.x);
var _local9:Number = (p2.y - p1.y);
var _local10:Number = _local9;
var _local11:Number = -(_local8);
var _local12:Number = (100 * Number.MIN_VALUE);
var _local13:Number = -(((_local6 * _local10) + (_local7 * _local11)));
if (_local13 > _local12){
_local14 = (_local5.x - p1.x);
_local15 = (_local5.y - p1.y);
_local16 = ((_local14 * _local10) + (_local15 * _local11));
if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){
_local17 = ((-(_local7) * _local15) + (_local7 * _local14));
if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){
_local16 = (_local16 / _local13);
_local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11)));
_local10 = (_local10 / _local18);
_local11 = (_local11 / _local18);
_arg1[0] = _local16;
_arg2.Set(_local10, _local11);
return (true);
};
};
};
return (false);
}
}
}//package Box2D.Collision
Section 28
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact)
package Box2D.Collision {
import Box2D.Common.Math.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
public class b2TimeOfImpact {
public static var s_p1:b2Vec2 = new b2Vec2();
public static var s_p2:b2Vec2 = new b2Vec2();
public static var s_xf1:b2XForm = new b2XForm();
public static var s_xf2:b2XForm = new b2XForm();
public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{
var _local5:Number;
var _local6:Number;
var _local25:Number;
var _local26:b2XForm;
var _local27:b2XForm;
var _local28:Number;
var _local29:Number;
var _local30:Number;
var _local31:Number;
var _local7:Number = _arg1.m_sweepRadius;
var _local8:Number = _arg3.m_sweepRadius;
var _local9:Number = _arg2.t0;
var _local10:Number = (_arg2.c.x - _arg2.c0.x);
var _local11:Number = (_arg2.c.y - _arg2.c0.y);
var _local12:Number = (_arg4.c.x - _arg4.c0.x);
var _local13:Number = (_arg4.c.y - _arg4.c0.y);
var _local14:Number = (_arg2.a - _arg2.a0);
var _local15:Number = (_arg4.a - _arg4.a0);
var _local16:Number = 0;
var _local17:b2Vec2 = s_p1;
var _local18:b2Vec2 = s_p2;
var _local19 = 20;
var _local20:int;
var _local21:Number = 0;
var _local22:Number = 0;
var _local23:Number = 0;
var _local24:Number = 0;
while (true) {
_local25 = (((1 - _local16) * _local9) + _local16);
_local26 = s_xf1;
_local27 = s_xf2;
_arg2.GetXForm(_local26, _local25);
_arg4.GetXForm(_local27, _local25);
_local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27);
if (_local20 == 0){
if (_local23 > (2 * b2Settings.b2_toiSlop)){
_local24 = (1.5 * b2Settings.b2_toiSlop);
} else {
_local5 = (0.05 * b2Settings.b2_toiSlop);
_local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop));
_local24 = ((_local5 > _local6)) ? _local5 : _local6;
};
};
if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){
break;
};
_local21 = (_local18.x - _local17.x);
_local22 = (_local18.y - _local17.y);
_local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22)));
_local21 = (_local21 / _local28);
_local22 = (_local22 / _local28);
_local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8));
if (_local29 == 0){
_local16 = 1;
break;
};
_local30 = ((_local23 - _local24) / _local29);
_local31 = (_local16 + _local30);
if ((((_local31 < 0)) || ((1 < _local31)))){
_local16 = 1;
break;
};
if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){
break;
};
_local16 = _local31;
_local20++;
};
return (_local16);
}
}
}//package Box2D.Collision
Section 29
//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 30
//Features (Box2D.Collision.Features)
package Box2D.Collision {
public class Features {
public var _referenceEdge:int;
public var _incidentEdge:int;
public var _incidentVertex:int;
public var _flip:int;
public var _m_id:b2ContactID;
public function set referenceEdge(_arg1:int):void{
_referenceEdge = _arg1;
_m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF));
}
public function get referenceEdge():int{
return (_referenceEdge);
}
public function set incidentEdge(_arg1:int):void{
_incidentEdge = _arg1;
_m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00));
}
public function get incidentEdge():int{
return (_incidentEdge);
}
public function set incidentVertex(_arg1:int):void{
_incidentVertex = _arg1;
_m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000));
}
public function get incidentVertex():int{
return (_incidentVertex);
}
public function set flip(_arg1:int):void{
_flip = _arg1;
_m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080));
}
public function get flip():int{
return (_flip);
}
}
}//package Box2D.Collision
Section 31
//b2Mat22 (Box2D.Common.Math.b2Mat22)
package Box2D.Common.Math {
import Box2D.Common.*;
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 Set(_arg1:Number):void{
var _local2:Number;
_local2 = Math.cos(_arg1);
var _local3:Number = Math.sin(_arg1);
col1.x = _local2;
col2.x = -(_local3);
col1.y = _local3;
col2.y = _local2;
}
public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{
col1.SetV(_arg1);
col2.SetV(_arg2);
}
public function Copy():b2Mat22{
return (new b2Mat22(0, col1, col2));
}
public function SetM(_arg1:b2Mat22):void{
col1.SetV(_arg1.col1);
col2.SetV(_arg1.col2);
}
public function AddM(_arg1:b2Mat22):void{
col1.x = (col1.x + _arg1.col1.x);
col1.y = (col1.y + _arg1.col1.y);
col2.x = (col2.x + _arg1.col2.x);
col2.y = (col2.y + _arg1.col2.y);
}
public function SetIdentity():void{
col1.x = 1;
col2.x = 0;
col1.y = 0;
col2.y = 1;
}
public function SetZero():void{
col1.x = 0;
col2.x = 0;
col1.y = 0;
col2.y = 0;
}
public function GetAngle():Number{
return (Math.atan2(col1.y, col1.x));
}
public function Invert(_arg1:b2Mat22):b2Mat22{
var _local2:Number;
var _local4:Number;
var _local6:Number;
_local2 = col1.x;
var _local3:Number = col2.x;
_local4 = col1.y;
var _local5:Number = col2.y;
_local6 = ((_local2 * _local5) - (_local3 * _local4));
_local6 = (1 / _local6);
_arg1.col1.x = (_local6 * _local5);
_arg1.col2.x = (-(_local6) * _local3);
_arg1.col1.y = (-(_local6) * _local4);
_arg1.col2.y = (_local6 * _local2);
return (_arg1);
}
public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{
var _local6:Number;
var _local4:Number = col1.x;
var _local5:Number = col2.x;
_local6 = col1.y;
var _local7:Number = col2.y;
var _local8:Number = ((_local4 * _local7) - (_local5 * _local6));
_local8 = (1 / _local8);
_arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3)));
_arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2)));
return (_arg1);
}
public function Abs():void{
col1.Abs();
col2.Abs();
}
}
}//package Box2D.Common.Math
Section 32
//b2Math (Box2D.Common.Math.b2Math)
package Box2D.Common.Math {
public class b2Math {
public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0);
public static const b2Mat22_identity:b2Mat22 = 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 function b2IsValid(_arg1:Number):Boolean{
return (isFinite(_arg1));
}
public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{
return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y)));
}
public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{
return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x)));
}
public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{
var _local3:b2Vec2 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x));
return (_local3);
}
public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x));
return (_local3);
}
public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y)));
return (_local3);
}
public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2));
return (_local3);
}
public static function 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 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 AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y));
return (_local3);
}
public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y));
return (_local3);
}
public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{
var _local3:Number = (_arg1.x - _arg2.x);
var _local4:Number = (_arg1.y - _arg2.y);
return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4))));
}
public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{
var _local3:Number = (_arg1.x - _arg2.x);
var _local4:Number = (_arg1.y - _arg2.y);
return (((_local3 * _local3) + (_local4 * _local4)));
}
public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y));
return (_local3);
}
public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{
var _local3:b2Mat22 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2));
return (_local3);
}
public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{
var _local3:b2Mat22 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2));
return (_local3);
}
public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{
var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1));
var _local4:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2));
var _local5:b2Mat22 = new b2Mat22(0, _local3, _local4);
return (_local5);
}
public static function b2Abs(_arg1:Number):Number{
return (((_arg1 > 0)) ? _arg1 : -(_arg1));
}
public static function b2AbsV(_arg1:b2Vec2):b2Vec2{
var _local2:b2Vec2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y));
return (_local2);
}
public static function b2AbsM(_arg1:b2Mat22):b2Mat22{
var _local2:b2Mat22 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2));
return (_local2);
}
public static function b2Min(_arg1:Number, _arg2:Number):Number{
return (((_arg1 < _arg2)) ? _arg1 : _arg2);
}
public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y));
return (_local3);
}
public static function b2Max(_arg1:Number, _arg2:Number):Number{
return (((_arg1 > _arg2)) ? _arg1 : _arg2);
}
public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y));
return (_local3);
}
public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{
return (b2Max(_arg2, b2Min(_arg1, _arg3)));
}
public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{
return (b2MaxV(_arg2, b2MinV(_arg1, _arg3)));
}
public static function b2Swap(_arg1:Array, _arg2:Array):void{
var _local3:* = _arg1[0];
_arg1[0] = _arg2[0];
_arg2[0] = _local3;
}
public static function b2Random():Number{
return (((Math.random() * 2) - 1));
}
public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{
var _local3:Number = Math.random();
_local3 = (((_arg2 - _arg1) * _local3) + _arg1);
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 b2IsPowerOfTwo(_arg1:uint):Boolean{
var _local2:Boolean = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0)));
return (_local2);
}
}
}//package Box2D.Common.Math
Section 33
//b2Sweep (Box2D.Common.Math.b2Sweep)
package Box2D.Common.Math {
import Box2D.Common.*;
public class b2Sweep {
public var localCenter:b2Vec2;
public var c0:b2Vec2;
public var c:b2Vec2;
public var a0:Number;
public var a:Number;
public var t0:Number;
public function b2Sweep(){
localCenter = new b2Vec2();
c0 = new b2Vec2();
c = new b2Vec2();
super();
}
public function GetXForm(_arg1:b2XForm, _arg2:Number):void{
var _local4:Number;
var _local5:Number;
if ((1 - t0) > Number.MIN_VALUE){
_local4 = ((_arg2 - t0) / (1 - t0));
_arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x));
_arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y));
_local5 = (((1 - _local4) * a0) + (_local4 * a));
_arg1.R.Set(_local5);
} else {
_arg1.position.SetV(c);
_arg1.R.Set(a);
};
var _local3:b2Mat22 = _arg1.R;
_arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y)));
_arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y)));
}
public function Advance(_arg1:Number):void{
var _local2:Number;
if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){
_local2 = ((_arg1 - t0) / (1 - t0));
c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x));
c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y));
a0 = (((1 - _local2) * a0) + (_local2 * a));
t0 = _arg1;
};
}
}
}//package Box2D.Common.Math
Section 34
//b2Vec2 (Box2D.Common.Math.b2Vec2)
package Box2D.Common.Math {
import Box2D.Common.*;
public class b2Vec2 {
public var x:Number;
public var y:Number;
public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{
x = _arg1;
y = _arg2;
}
public function SetZero():void{
x = 0;
y = 0;
}
public function Set(_arg1:Number=0, _arg2:Number=0):void{
x = _arg1;
y = _arg2;
}
public function SetV(_arg1:b2Vec2):void{
x = _arg1.x;
y = _arg1.y;
}
public function Negative():b2Vec2{
return (new b2Vec2(-(x), -(y)));
}
public function Copy():b2Vec2{
return (new b2Vec2(x, y));
}
public function Add(_arg1:b2Vec2):void{
x = (x + _arg1.x);
y = (y + _arg1.y);
}
public function Subtract(_arg1:b2Vec2):void{
x = (x - _arg1.x);
y = (y - _arg1.y);
}
public function Multiply(_arg1:Number):void{
x = (x * _arg1);
y = (y * _arg1);
}
public function MulM(_arg1:b2Mat22):void{
var _local2:Number = x;
x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y));
y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y));
}
public function MulTM(_arg1:b2Mat22):void{
var _local2:Number = b2Math.b2Dot(this, _arg1.col1);
y = b2Math.b2Dot(this, _arg1.col2);
x = _local2;
}
public function CrossVF(_arg1:Number):void{
var _local2:Number = x;
x = (_arg1 * y);
y = (-(_arg1) * _local2);
}
public function CrossFV(_arg1:Number):void{
var _local2:Number = x;
x = (-(_arg1) * y);
y = (_arg1 * _local2);
}
public function MinV(_arg1:b2Vec2):void{
x = ((x < _arg1.x)) ? x : _arg1.x;
y = ((y < _arg1.y)) ? y : _arg1.y;
}
public function MaxV(_arg1:b2Vec2):void{
x = ((x > _arg1.x)) ? x : _arg1.x;
y = ((y > _arg1.y)) ? y : _arg1.y;
}
public function Abs():void{
if (x < 0){
x = -(x);
};
if (y < 0){
y = -(y);
};
}
public function Length():Number{
return (Math.sqrt(((x * x) + (y * y))));
}
public function LengthSquared():Number{
return (((x * x) + (y * y)));
}
public function Normalize():Number{
var _local1:Number = Math.sqrt(((x * x) + (y * y)));
if (_local1 < Number.MIN_VALUE){
return (0);
};
var _local2:Number = (1 / _local1);
x = (x * _local2);
y = (y * _local2);
return (_local1);
}
public function Rotate(_arg1){
var _local2:* = x;
var _local3:* = y;
x = ((_local2 * Math.cos(_arg1)) - (_local3 * Math.sin(_arg1)));
y = ((_local2 * Math.sin(_arg1)) + (_local3 * Math.cos(_arg1)));
}
public function IsValid():Boolean{
return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y))));
}
public static function Make(_arg1:Number, _arg2:Number):b2Vec2{
return (new b2Vec2(_arg1, _arg2));
}
}
}//package Box2D.Common.Math
Section 35
//b2XForm (Box2D.Common.Math.b2XForm)
package Box2D.Common.Math {
import Box2D.Common.*;
public class b2XForm {
public var position:b2Vec2;
public var R:b2Mat22;
public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{
position = new b2Vec2();
R = new b2Mat22();
super();
if (_arg1){
position.SetV(_arg1);
R.SetM(_arg2);
};
}
public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{
position.SetV(_arg1);
R.SetM(_arg2);
}
public function SetIdentity():void{
position.SetZero();
R.SetIdentity();
}
public function Set(_arg1:b2XForm):void{
position.SetV(_arg1.position);
R.SetM(_arg1.R);
}
}
}//package Box2D.Common.Math
Section 36
//b2Color (Box2D.Common.b2Color)
package Box2D.Common {
import Box2D.Common.Math.*;
public class b2Color {
private var _r:uint;// = 0
private var _g:uint;// = 0
private var _b:uint;// = 0
public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){
_r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1)));
_g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1)));
_b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1)));
}
public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{
_r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1)));
_g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1)));
_b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1)));
}
public function set r(_arg1:Number):void{
_r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1)));
}
public function set g(_arg1:Number):void{
_g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1)));
}
public function set b(_arg1:Number):void{
_b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1)));
}
public function get color():uint{
return (((_r | (_g << 8)) | (_b << 16)));
}
}
}//package Box2D.Common
Section 37
//b2Settings (Box2D.Common.b2Settings)
package Box2D.Common {
import Box2D.Common.Math.*;
public class b2Settings {
public static const USHRT_MAX:int = 0xFFFF;
public static const b2_pi:Number = 3.14159265358979;
public static const b2_maxManifoldPoints:int = 2;
public static const b2_maxPolygonVertices:int = 8;
public static const b2_maxProxies:int = 0x0200;
public static const b2_maxPairs:int = 4096;
public static const b2_linearSlop:Number = 0.005;
public static const b2_angularSlop:Number = 0.0349065850398866;
public static const b2_toiSlop:Number = 0.04;
public static const b2_maxTOIContactsPerIsland:int = 32;
public static const b2_velocityThreshold:Number = 1;
public static const b2_maxLinearCorrection:Number = 0.2;
public static const b2_maxAngularCorrection:Number = 0.139626340159546;
public static const b2_maxLinearVelocity:Number = 200;
public static const b2_maxLinearVelocitySquared:Number = 40000;
public static const b2_maxAngularVelocity:Number = 250;
public static const b2_maxAngularVelocitySquared:Number = 62500;
public static const b2_contactBaumgarte:Number = 0.2;
public static const b2_timeToSleep:Number = 0.5;
public static const b2_linearSleepTolerance:Number = 0.01;
public static const b2_angularSleepTolerance:Number = 0.0111111111111111;
public static function b2Assert(_arg1:Boolean):void{
var _local2:b2Vec2;
if (!_arg1){
_local2.x++;
};
}
}
}//package Box2D.Common
Section 38
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact)
package Box2D.Dynamics.Contacts {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
public class b2CircleContact extends b2Contact {
private var m_manifolds:Array;
public var m_manifold:b2Manifold;
private var m0:b2Manifold;
private static const s_evalCP:b2ContactPoint = new b2ContactPoint();
public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){
m_manifolds = [new b2Manifold()];
m0 = new b2Manifold();
super(_arg1, _arg2);
m_manifold = m_manifolds[0];
m_manifold.pointCount = 0;
var _local3:b2ManifoldPoint = m_manifold.points[0];
_local3.normalImpulse = 0;
_local3.tangentImpulse = 0;
}
override public function Evaluate(_arg1:b2ContactListener):void{
var _local2:b2Vec2;
var _local3:b2Vec2;
var _local4:b2ManifoldPoint;
var _local8:b2ManifoldPoint;
var _local5:b2Body = m_shape1.m_body;
var _local6:b2Body = m_shape2.m_body;
m0.Set(m_manifold);
b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf);
var _local7:b2ContactPoint = s_evalCP;
_local7.shape1 = m_shape1;
_local7.shape2 = m_shape2;
_local7.friction = m_friction;
_local7.restitution = m_restitution;
if (m_manifold.pointCount > 0){
m_manifoldCount = 1;
_local8 = m_manifold.points[0];
if (m0.pointCount == 0){
_local8.normalImpulse = 0;
_local8.tangentImpulse = 0;
if (_arg1){
_local7.position = _local5.GetWorldPoint(_local8.localPoint1);
_local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1);
_local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2);
_local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y));
_local7.normal.SetV(m_manifold.normal);
_local7.separation = _local8.separation;
_local7.id.key = _local8.id._key;
_arg1.Add(_local7);
};
} else {
_local4 = m0.points[0];
_local8.normalImpulse = _local4.normalImpulse;
_local8.tangentImpulse = _local4.tangentImpulse;
if (_arg1){
_local7.position = _local5.GetWorldPoint(_local8.localPoint1);
_local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1);
_local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2);
_local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y));
_local7.normal.SetV(m_manifold.normal);
_local7.separation = _local8.separation;
_local7.id.key = _local8.id._key;
_arg1.Persist(_local7);
};
};
} else {
m_manifoldCount = 0;
if ((((m0.pointCount > 0)) && (_arg1))){
_local4 = m0.points[0];
_local7.position = _local5.GetWorldPoint(_local4.localPoint1);
_local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1);
_local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2);
_local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y));
_local7.normal.SetV(m0.normal);
_local7.separation = _local4.separation;
_local7.id.key = _local4.id._key;
_arg1.Remove(_local7);
};
};
}
override public function GetManifolds():Array{
return (m_manifolds);
}
public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{
return (new b2CircleContact(_arg1, _arg2));
}
public static function Destroy(_arg1:b2Contact, _arg2):void{
}
}
}//package Box2D.Dynamics.Contacts
Section 39
//b2Contact (Box2D.Dynamics.Contacts.b2Contact)
package Box2D.Dynamics.Contacts {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
public class b2Contact {
public var m_flags:uint;
public var m_prev:b2Contact;
public var m_next:b2Contact;
public var m_node1:b2ContactEdge;
public var m_node2:b2ContactEdge;
public var m_shape1:b2Shape;
public var m_shape2:b2Shape;
public var m_manifoldCount:int;
public var m_friction:Number;
public var m_restitution:Number;
public var m_toi:Number;
public static var e_nonSolidFlag:uint = 1;
public static var e_slowFlag:uint = 2;
public static var e_islandFlag:uint = 4;
public static var e_toiFlag:uint = 8;
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 GetManifolds():Array{
return (null);
}
public function GetManifoldCount():int{
return (m_manifoldCount);
}
public function IsSolid():Boolean{
return (((m_flags & e_nonSolidFlag) == 0));
}
public function GetNext():b2Contact{
return (m_next);
}
public function GetShape1():b2Shape{
return (m_shape1);
}
public function GetShape2():b2Shape{
return (m_shape2);
}
public function Update(_arg1:b2ContactListener):void{
var _local2:int = m_manifoldCount;
Evaluate(_arg1);
var _local3:int = m_manifoldCount;
var _local4:b2Body = m_shape1.m_body;
var _local5:b2Body = m_shape2.m_body;
if ((((_local3 == 0)) && ((_local2 > 0)))){
_local4.WakeUp();
_local5.WakeUp();
};
if (((((((_local4.IsStatic()) || (_local4.IsBullet()))) || (_local5.IsStatic()))) || (_local5.IsBullet()))){
m_flags = (m_flags & ~(e_slowFlag));
} else {
m_flags = (m_flags | e_slowFlag);
};
}
public function Evaluate(_arg1:b2ContactListener):void{
}
public static function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{
s_registers[_arg3][_arg4].createFcn = _arg1;
s_registers[_arg3][_arg4].destroyFcn = _arg2;
s_registers[_arg3][_arg4].primary = true;
if (_arg3 != _arg4){
s_registers[_arg4][_arg3].createFcn = _arg1;
s_registers[_arg4][_arg3].destroyFcn = _arg2;
s_registers[_arg4][_arg3].primary = false;
};
}
public static function InitializeRegisters():void{
var _local2:int;
s_registers = new Array(b2Shape.e_shapeTypeCount);
var _local1:int;
while (_local1 < b2Shape.e_shapeTypeCount) {
s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount);
_local2 = 0;
while (_local2 < b2Shape.e_shapeTypeCount) {
s_registers[_local1][_local2] = new b2ContactRegister();
_local2++;
};
_local1++;
};
AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape);
AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape);
AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape);
}
public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{
var _local8:b2Contact;
var _local9:int;
var _local10:b2Manifold;
if (s_initialized == false){
InitializeRegisters();
s_initialized = true;
};
var _local4:int = _arg1.m_type;
var _local5:int = _arg2.m_type;
var _local6:b2ContactRegister = s_registers[_local4][_local5];
var _local7:Function = _local6.createFcn;
if (_local7 != null){
if (_local6.primary){
return (_local7(_arg1, _arg2, _arg3));
};
_local8 = _local7(_arg2, _arg1, _arg3);
_local9 = 0;
while (_local9 < _local8.m_manifoldCount) {
_local10 = _local8.GetManifolds()[_local9];
_local8.GetManifolds()[_local9].normal = _local10.normal.Negative();
_local9++;
};
return (_local8);
//unresolved jump
};
return (null);
}
public static function Destroy(_arg1:b2Contact, _arg2):void{
if (_arg1.m_manifoldCount > 0){
_arg1.m_shape1.m_body.WakeUp();
_arg1.m_shape2.m_body.WakeUp();
};
var _local3:int = _arg1.m_shape1.m_type;
var _local4:int = _arg1.m_shape2.m_type;
var _local5:b2ContactRegister = s_registers[_local3][_local4];
var _local6:Function = _local5.destroyFcn;
_local6(_arg1, _arg2);
}
}
}//package Box2D.Dynamics.Contacts
Section 40
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint)
package Box2D.Dynamics.Contacts {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Common.*;
public class b2ContactConstraint {
public var points:Array;
public var normal:b2Vec2;
public var manifold:b2Manifold;
public var body1:b2Body;
public var body2:b2Body;
public var friction:Number;
public var restitution:Number;
public var pointCount:int;
public function b2ContactConstraint(){
normal = new b2Vec2();
super();
points = new Array(b2Settings.b2_maxManifoldPoints);
var _local1:int;
while (_local1 < b2Settings.b2_maxManifoldPoints) {
points[_local1] = new b2ContactConstraintPoint();
_local1++;
};
}
}
}//package Box2D.Dynamics.Contacts
Section 41
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint)
package Box2D.Dynamics.Contacts {
import Box2D.Common.Math.*;
public class b2ContactConstraintPoint {
public var localAnchor1:b2Vec2;
public var localAnchor2:b2Vec2;
public var r1:b2Vec2;
public var r2:b2Vec2;
public var normalImpulse:Number;
public var tangentImpulse:Number;
public var positionImpulse:Number;
public var normalMass:Number;
public var tangentMass:Number;
public var equalizedMass:Number;
public var separation:Number;
public var velocityBias:Number;
public function b2ContactConstraintPoint(){
localAnchor1 = new b2Vec2();
localAnchor2 = new b2Vec2();
r1 = new b2Vec2();
r2 = new b2Vec2();
super();
}
}
}//package Box2D.Dynamics.Contacts
Section 42
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge)
package Box2D.Dynamics.Contacts {
import Box2D.Dynamics.*;
public class b2ContactEdge {
public var other:b2Body;
public var contact:b2Contact;
public var prev:b2ContactEdge;
public var next:b2ContactEdge;
}
}//package Box2D.Dynamics.Contacts
Section 43
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister)
package Box2D.Dynamics.Contacts {
public class b2ContactRegister {
public var createFcn:Function;
public var destroyFcn:Function;
public var primary:Boolean;
}
}//package Box2D.Dynamics.Contacts
Section 44
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult)
package Box2D.Dynamics.Contacts {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Collision.Shapes.*;
public class b2ContactResult {
public var shape1:b2Shape;
public var shape2:b2Shape;
public var position:b2Vec2;
public var normal:b2Vec2;
public var normalImpulse:Number;
public var tangentImpulse:Number;
public var id:b2ContactID;
public function b2ContactResult(){
position = new b2Vec2();
normal = new b2Vec2();
id = new b2ContactID();
super();
}
}
}//package Box2D.Dynamics.Contacts
Section 45
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver)
package Box2D.Dynamics.Contacts {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Common.*;
public class b2ContactSolver {
public var m_step:b2TimeStep;
public var m_allocator;
public var m_constraints:Array;
public var m_constraintCount:int;
public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){
var _local5:b2Contact;
var _local6:int;
var _local7:b2Vec2;
var _local8:b2Mat22;
var _local10:b2Body;
var _local11:b2Body;
var _local12:int;
var _local13:Array;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:int;
var _local23:b2Manifold;
var _local24:Number;
var _local25:Number;
var _local26:b2ContactConstraint;
var _local27:uint;
var _local28:b2ManifoldPoint;
var _local29:b2ContactConstraintPoint;
var _local30:Number;
var _local31:Number;
var _local32:Number;
var _local33:Number;
var _local34:Number;
var _local35:Number;
var _local36:Number;
var _local37:Number;
var _local38:Number;
var _local39:Number;
var _local40:Number;
var _local41:Number;
var _local42:Number;
var _local43:Number;
var _local44:Number;
var _local45:Number;
var _local46:Number;
var _local47:Number;
m_step = new b2TimeStep();
m_constraints = new Array();
super();
m_step.dt = _arg1.dt;
m_step.inv_dt = _arg1.inv_dt;
m_step.maxIterations = _arg1.maxIterations;
m_allocator = _arg4;
m_constraintCount = 0;
_local6 = 0;
while (_local6 < _arg3) {
_local5 = _arg2[_local6];
m_constraintCount = (m_constraintCount + _local5.m_manifoldCount);
_local6++;
};
_local6 = 0;
while (_local6 < m_constraintCount) {
m_constraints[_local6] = new b2ContactConstraint();
_local6++;
};
var _local9:int;
_local6 = 0;
while (_local6 < _arg3) {
_local5 = _arg2[_local6];
_local10 = _local5.m_shape1.m_body;
_local11 = _local5.m_shape2.m_body;
_local12 = _local5.m_manifoldCount;
_local13 = _local5.GetManifolds();
_local14 = _local5.m_friction;
_local15 = _local5.m_restitution;
_local16 = _local10.m_linearVelocity.x;
_local17 = _local10.m_linearVelocity.y;
_local18 = _local11.m_linearVelocity.x;
_local19 = _local11.m_linearVelocity.y;
_local20 = _local10.m_angularVelocity;
_local21 = _local11.m_angularVelocity;
_local22 = 0;
while (_local22 < _local12) {
_local23 = _local13[_local22];
_local24 = _local23.normal.x;
_local25 = _local23.normal.y;
_local26 = m_constraints[_local9];
_local26.body1 = _local10;
_local26.body2 = _local11;
_local26.manifold = _local23;
_local26.normal.x = _local24;
_local26.normal.y = _local25;
_local26.pointCount = _local23.pointCount;
_local26.friction = _local14;
_local26.restitution = _local15;
_local27 = 0;
while (_local27 < _local26.pointCount) {
_local28 = _local23.points[_local27];
_local29 = _local26.points[_local27];
_local29.normalImpulse = _local28.normalImpulse;
_local29.tangentImpulse = _local28.tangentImpulse;
_local29.separation = _local28.separation;
_local29.positionImpulse = 0;
_local29.localAnchor1.SetV(_local28.localPoint1);
_local29.localAnchor2.SetV(_local28.localPoint2);
_local8 = _local10.m_xf.R;
_local32 = (_local28.localPoint1.x - _local10.m_sweep.localCenter.x);
_local33 = (_local28.localPoint1.y - _local10.m_sweep.localCenter.y);
_local30 = ((_local8.col1.x * _local32) + (_local8.col2.x * _local33));
_local33 = ((_local8.col1.y * _local32) + (_local8.col2.y * _local33));
_local32 = _local30;
_local29.r1.Set(_local32, _local33);
_local8 = _local11.m_xf.R;
_local34 = (_local28.localPoint2.x - _local11.m_sweep.localCenter.x);
_local35 = (_local28.localPoint2.y - _local11.m_sweep.localCenter.y);
_local30 = ((_local8.col1.x * _local34) + (_local8.col2.x * _local35));
_local35 = ((_local8.col1.y * _local34) + (_local8.col2.y * _local35));
_local34 = _local30;
_local29.r2.Set(_local34, _local35);
_local36 = ((_local32 * _local32) + (_local33 * _local33));
_local37 = ((_local34 * _local34) + (_local35 * _local35));
_local38 = ((_local32 * _local24) + (_local33 * _local25));
_local39 = ((_local34 * _local24) + (_local35 * _local25));
_local40 = (_local10.m_invMass + _local11.m_invMass);
_local40 = (_local40 + ((_local10.m_invI * (_local36 - (_local38 * _local38))) + (_local11.m_invI * (_local37 - (_local39 * _local39)))));
_local29.normalMass = (1 / _local40);
_local41 = ((_local10.m_mass * _local10.m_invMass) + (_local11.m_mass * _local11.m_invMass));
_local41 = (_local41 + (((_local10.m_mass * _local10.m_invI) * (_local36 - (_local38 * _local38))) + ((_local11.m_mass * _local11.m_invI) * (_local37 - (_local39 * _local39)))));
_local29.equalizedMass = (1 / _local41);
_local42 = _local25;
_local43 = -(_local24);
_local44 = ((_local32 * _local42) + (_local33 * _local43));
_local45 = ((_local34 * _local42) + (_local35 * _local43));
_local46 = (_local10.m_invMass + _local11.m_invMass);
_local46 = (_local46 + ((_local10.m_invI * (_local36 - (_local44 * _local44))) + (_local11.m_invI * (_local37 - (_local45 * _local45)))));
_local29.tangentMass = (1 / _local46);
_local29.velocityBias = 0;
if (_local29.separation > 0){
_local29.velocityBias = (-60 * _local29.separation);
};
_local30 = (((_local18 + (-(_local21) * _local35)) - _local16) - (-(_local20) * _local33));
_local31 = (((_local19 + (_local21 * _local34)) - _local17) - (_local20 * _local32));
_local47 = ((_local26.normal.x * _local30) + (_local26.normal.y * _local31));
if (_local47 < -(b2Settings.b2_velocityThreshold)){
_local29.velocityBias = (_local29.velocityBias + (-(_local26.restitution) * _local47));
};
_local27++;
};
_local9++;
_local22++;
};
_local6++;
};
}
public function InitVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Vec2;
var _local3:b2Vec2;
var _local4:b2Mat22;
var _local6:b2ContactConstraint;
var _local7:b2Body;
var _local8:b2Body;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:int;
var _local19:int;
var _local20:b2ContactConstraintPoint;
var _local21:Number;
var _local22:Number;
var _local23:b2ContactConstraintPoint;
var _local5:int;
while (_local5 < m_constraintCount) {
_local6 = m_constraints[_local5];
_local7 = _local6.body1;
_local8 = _local6.body2;
_local9 = _local7.m_invMass;
_local10 = _local7.m_invI;
_local11 = _local8.m_invMass;
_local12 = _local8.m_invI;
_local13 = _local6.normal.x;
_local14 = _local6.normal.y;
_local15 = _local14;
_local16 = -(_local13);
if (_arg1.warmStarting){
_local19 = _local6.pointCount;
_local18 = 0;
while (_local18 < _local19) {
_local20 = _local6.points[_local18];
_local6.points[_local18].normalImpulse = (_local20.normalImpulse * _arg1.dtRatio);
_local20.tangentImpulse = (_local20.tangentImpulse * _arg1.dtRatio);
_local21 = ((_local20.normalImpulse * _local13) + (_local20.tangentImpulse * _local15));
_local22 = ((_local20.normalImpulse * _local14) + (_local20.tangentImpulse * _local16));
_local7.m_angularVelocity = (_local7.m_angularVelocity - (_local10 * ((_local20.r1.x * _local22) - (_local20.r1.y * _local21))));
_local7.m_linearVelocity.x = (_local7.m_linearVelocity.x - (_local9 * _local21));
_local7.m_linearVelocity.y = (_local7.m_linearVelocity.y - (_local9 * _local22));
_local8.m_angularVelocity = (_local8.m_angularVelocity + (_local12 * ((_local20.r2.x * _local22) - (_local20.r2.y * _local21))));
_local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21));
_local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22));
_local18++;
};
} else {
_local19 = _local6.pointCount;
_local18 = 0;
while (_local18 < _local19) {
_local23 = _local6.points[_local18];
_local23.normalImpulse = 0;
_local23.tangentImpulse = 0;
_local18++;
};
};
_local5++;
};
}
public function SolveVelocityConstraints():void{
var _local1:int;
var _local2:b2ContactConstraintPoint;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:b2Mat22;
var _local18:b2Vec2;
var _local20:b2ContactConstraint;
var _local21:b2Body;
var _local22:b2Body;
var _local23:Number;
var _local24:Number;
var _local25:b2Vec2;
var _local26:b2Vec2;
var _local27:Number;
var _local28:Number;
var _local29:Number;
var _local30:Number;
var _local31:Number;
var _local32:Number;
var _local33:Number;
var _local34:Number;
var _local35:Number;
var _local36:Number;
var _local37:int;
var _local38:Number;
var _local19:int;
while (_local19 < m_constraintCount) {
_local20 = m_constraints[_local19];
_local21 = _local20.body1;
_local22 = _local20.body2;
_local23 = _local21.m_angularVelocity;
_local24 = _local22.m_angularVelocity;
_local25 = _local21.m_linearVelocity;
_local26 = _local22.m_linearVelocity;
_local27 = _local21.m_invMass;
_local28 = _local21.m_invI;
_local29 = _local22.m_invMass;
_local30 = _local22.m_invI;
_local31 = _local20.normal.x;
_local32 = _local20.normal.y;
_local33 = _local32;
_local34 = -(_local31);
_local35 = _local20.friction;
_local37 = _local20.pointCount;
_local1 = 0;
while (_local1 < _local37) {
_local2 = _local20.points[_local1];
_local7 = (((_local26.x + (-(_local24) * _local2.r2.y)) - _local25.x) - (-(_local23) * _local2.r1.y));
_local8 = (((_local26.y + (_local24 * _local2.r2.x)) - _local25.y) - (_local23 * _local2.r1.x));
_local9 = ((_local7 * _local31) + (_local8 * _local32));
_local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias));
_local10 = ((_local7 * _local33) + (_local8 * _local34));
_local12 = (_local2.tangentMass * -(_local10));
_local13 = b2Math.b2Max((_local2.normalImpulse + _local11), 0);
_local11 = (_local13 - _local2.normalImpulse);
_local38 = (_local35 * _local2.normalImpulse);
_local14 = b2Math.b2Clamp((_local2.tangentImpulse + _local12), -(_local38), _local38);
_local12 = (_local14 - _local2.tangentImpulse);
_local15 = ((_local11 * _local31) + (_local12 * _local33));
_local16 = ((_local11 * _local32) + (_local12 * _local34));
_local25.x = (_local25.x - (_local27 * _local15));
_local25.y = (_local25.y - (_local27 * _local16));
_local23 = (_local23 - (_local28 * ((_local2.r1.x * _local16) - (_local2.r1.y * _local15))));
_local26.x = (_local26.x + (_local29 * _local15));
_local26.y = (_local26.y + (_local29 * _local16));
_local24 = (_local24 + (_local30 * ((_local2.r2.x * _local16) - (_local2.r2.y * _local15))));
_local2.normalImpulse = _local13;
_local2.tangentImpulse = _local14;
_local1++;
};
_local21.m_angularVelocity = _local23;
_local22.m_angularVelocity = _local24;
_local19++;
};
}
public function FinalizeVelocityConstraints():void{
var _local2:b2ContactConstraint;
var _local3:b2Manifold;
var _local4:int;
var _local5:b2ManifoldPoint;
var _local6:b2ContactConstraintPoint;
var _local1:int;
while (_local1 < m_constraintCount) {
_local2 = m_constraints[_local1];
_local3 = _local2.manifold;
_local4 = 0;
while (_local4 < _local2.pointCount) {
_local5 = _local3.points[_local4];
_local6 = _local2.points[_local4];
_local5.normalImpulse = _local6.normalImpulse;
_local5.tangentImpulse = _local6.tangentImpulse;
_local4++;
};
_local1++;
};
}
public function SolvePositionConstraints(_arg1:Number):Boolean{
var _local3:b2Mat22;
var _local4:b2Vec2;
var _local6:b2ContactConstraint;
var _local7:b2Body;
var _local8:b2Body;
var _local9:b2Vec2;
var _local10:Number;
var _local11:b2Vec2;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:int;
var _local20:int;
var _local21:b2ContactConstraintPoint;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
var _local26:Number;
var _local27:Number;
var _local28:Number;
var _local29:Number;
var _local30:Number;
var _local31:Number;
var _local32:Number;
var _local33:Number;
var _local34:Number;
var _local35:Number;
var _local36:Number;
var _local37:Number;
var _local38:Number;
var _local2:Number = 0;
var _local5:int;
while (_local5 < m_constraintCount) {
_local6 = m_constraints[_local5];
_local7 = _local6.body1;
_local8 = _local6.body2;
_local9 = _local7.m_sweep.c;
_local10 = _local7.m_sweep.a;
_local11 = _local8.m_sweep.c;
_local12 = _local8.m_sweep.a;
_local13 = (_local7.m_mass * _local7.m_invMass);
_local14 = (_local7.m_mass * _local7.m_invI);
_local15 = (_local8.m_mass * _local8.m_invMass);
_local16 = (_local8.m_mass * _local8.m_invI);
_local17 = _local6.normal.x;
_local18 = _local6.normal.y;
_local19 = _local6.pointCount;
_local20 = 0;
while (_local20 < _local19) {
_local21 = _local6.points[_local20];
_local3 = _local7.m_xf.R;
_local4 = _local7.m_sweep.localCenter;
_local22 = (_local21.localAnchor1.x - _local4.x);
_local23 = (_local21.localAnchor1.y - _local4.y);
_local26 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23));
_local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23));
_local22 = _local26;
_local3 = _local8.m_xf.R;
_local4 = _local8.m_sweep.localCenter;
_local24 = (_local21.localAnchor2.x - _local4.x);
_local25 = (_local21.localAnchor2.y - _local4.y);
_local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25));
_local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25));
_local24 = _local26;
_local27 = (_local9.x + _local22);
_local28 = (_local9.y + _local23);
_local29 = (_local11.x + _local24);
_local30 = (_local11.y + _local25);
_local31 = (_local29 - _local27);
_local32 = (_local30 - _local28);
_local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation);
_local2 = b2Math.b2Min(_local2, _local33);
_local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0));
_local35 = (-(_local21.equalizedMass) * _local34);
_local36 = _local21.positionImpulse;
_local21.positionImpulse = b2Math.b2Max((_local36 + _local35), 0);
_local35 = (_local21.positionImpulse - _local36);
_local37 = (_local35 * _local17);
_local38 = (_local35 * _local18);
_local9.x = (_local9.x - (_local13 * _local37));
_local9.y = (_local9.y - (_local13 * _local38));
_local10 = (_local10 - (_local14 * ((_local22 * _local38) - (_local23 * _local37))));
_local7.m_sweep.a = _local10;
_local7.SynchronizeTransform();
_local11.x = (_local11.x + (_local15 * _local37));
_local11.y = (_local11.y + (_local15 * _local38));
_local12 = (_local12 + (_local16 * ((_local24 * _local38) - (_local25 * _local37))));
_local8.m_sweep.a = _local12;
_local8.SynchronizeTransform();
_local20++;
};
_local5++;
};
return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop)));
}
}
}//package Box2D.Dynamics.Contacts
Section 46
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact)
package Box2D.Dynamics.Contacts {
import Box2D.Dynamics.*;
public class b2NullContact extends b2Contact {
override public function Evaluate(_arg1:b2ContactListener):void{
}
override public function GetManifolds():Array{
return (null);
}
}
}//package Box2D.Dynamics.Contacts
Section 47
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact)
package Box2D.Dynamics.Contacts {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
public class b2PolyAndCircleContact extends b2Contact {
private var m_manifolds:Array;
public var m_manifold:b2Manifold;
private var m0:b2Manifold;
private static const s_evalCP:b2ContactPoint = new b2ContactPoint();
public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){
m_manifolds = [new b2Manifold()];
m0 = new b2Manifold();
super(_arg1, _arg2);
m_manifold = m_manifolds[0];
b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape));
b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape));
m_manifold.pointCount = 0;
var _local3:b2ManifoldPoint = m_manifold.points[0];
_local3.normalImpulse = 0;
_local3.tangentImpulse = 0;
}
override public function Evaluate(_arg1:b2ContactListener):void{
var _local2:int;
var _local3:b2Vec2;
var _local4:b2Vec2;
var _local5:b2ManifoldPoint;
var _local10:b2ManifoldPoint;
var _local11:Boolean;
var _local12:uint;
var _local13:int;
var _local6:b2Body = m_shape1.m_body;
var _local7:b2Body = m_shape2.m_body;
m0.Set(m_manifold);
b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf);
var _local8:Array = [false, false];
var _local9:b2ContactPoint = s_evalCP;
_local9.shape1 = m_shape1;
_local9.shape2 = m_shape2;
_local9.friction = m_friction;
_local9.restitution = m_restitution;
if (m_manifold.pointCount > 0){
_local2 = 0;
while (_local2 < m_manifold.pointCount) {
_local10 = m_manifold.points[_local2];
_local10.normalImpulse = 0;
_local10.tangentImpulse = 0;
_local11 = false;
_local12 = _local10.id._key;
_local13 = 0;
while (_local13 < m0.pointCount) {
if (_local8[_local13] == true){
} else {
_local5 = m0.points[_local13];
if (_local5.id._key == _local12){
_local8[_local13] = true;
_local10.normalImpulse = _local5.normalImpulse;
_local10.tangentImpulse = _local5.tangentImpulse;
_local11 = true;
if (_arg1 != null){
_local9.position = _local6.GetWorldPoint(_local10.localPoint1);
_local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1);
_local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2);
_local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y));
_local9.normal.SetV(m_manifold.normal);
_local9.separation = _local10.separation;
_local9.id.key = _local12;
_arg1.Persist(_local9);
};
break;
};
};
_local13++;
};
if ((((_local11 == false)) && (!((_arg1 == null))))){
_local9.position = _local6.GetWorldPoint(_local10.localPoint1);
_local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1);
_local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2);
_local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y));
_local9.normal.SetV(m_manifold.normal);
_local9.separation = _local10.separation;
_local9.id.key = _local12;
_arg1.Add(_local9);
};
_local2++;
};
m_manifoldCount = 1;
} else {
m_manifoldCount = 0;
};
if (_arg1 == null){
return;
};
_local2 = 0;
while (_local2 < m0.pointCount) {
if (_local8[_local2]){
} else {
_local5 = m0.points[_local2];
_local9.position = _local6.GetWorldPoint(_local5.localPoint1);
_local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1);
_local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2);
_local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y));
_local9.normal.SetV(m0.normal);
_local9.separation = _local5.separation;
_local9.id.key = _local5.id._key;
_arg1.Remove(_local9);
};
_local2++;
};
}
override public function GetManifolds():Array{
return (m_manifolds);
}
public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{
return (new b2PolyAndCircleContact(_arg1, _arg2));
}
public static function Destroy(_arg1:b2Contact, _arg2):void{
}
}
}//package Box2D.Dynamics.Contacts
Section 48
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact)
package Box2D.Dynamics.Contacts {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
public class b2PolygonContact extends b2Contact {
private var m0:b2Manifold;
private var m_manifolds:Array;
public var m_manifold:b2Manifold;
private static const s_evalCP:b2ContactPoint = new b2ContactPoint();
public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{
m0 = new b2Manifold();
m_manifolds = [new b2Manifold()];
super(_arg1, _arg2);
m_manifold = m_manifolds[0];
m_manifold.pointCount = 0;
}
override public function Evaluate(_arg1:b2ContactListener):void{
var _local2:b2Vec2;
var _local3:b2Vec2;
var _local4:b2ManifoldPoint;
var _local7:b2ContactPoint;
var _local8:int;
var _local10:b2ManifoldPoint;
var _local11:Boolean;
var _local12:uint;
var _local13:int;
var _local5:b2Body = m_shape1.m_body;
var _local6:b2Body = m_shape2.m_body;
m0.Set(m_manifold);
b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf);
var _local9:Array = [false, false];
_local7 = s_evalCP;
_local7.shape1 = m_shape1;
_local7.shape2 = m_shape2;
_local7.friction = m_friction;
_local7.restitution = m_restitution;
if (m_manifold.pointCount > 0){
_local8 = 0;
while (_local8 < m_manifold.pointCount) {
_local10 = m_manifold.points[_local8];
_local10.normalImpulse = 0;
_local10.tangentImpulse = 0;
_local11 = false;
_local12 = _local10.id._key;
_local13 = 0;
while (_local13 < m0.pointCount) {
if (_local9[_local13] == true){
} else {
_local4 = m0.points[_local13];
if (_local4.id._key == _local12){
_local9[_local13] = true;
_local10.normalImpulse = _local4.normalImpulse;
_local10.tangentImpulse = _local4.tangentImpulse;
_local11 = true;
if (_arg1 != null){
_local7.position = _local5.GetWorldPoint(_local10.localPoint1);
_local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1);
_local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2);
_local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y));
_local7.normal.SetV(m_manifold.normal);
_local7.separation = _local10.separation;
_local7.id.key = _local12;
_arg1.Persist(_local7);
};
break;
};
};
_local13++;
};
if ((((_local11 == false)) && (!((_arg1 == null))))){
_local7.position = _local5.GetWorldPoint(_local10.localPoint1);
_local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1);
_local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2);
_local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y));
_local7.normal.SetV(m_manifold.normal);
_local7.separation = _local10.separation;
_local7.id.key = _local12;
_arg1.Add(_local7);
};
_local8++;
};
m_manifoldCount = 1;
} else {
m_manifoldCount = 0;
};
if (_arg1 == null){
return;
};
_local8 = 0;
while (_local8 < m0.pointCount) {
if (_local9[_local8]){
} else {
_local4 = m0.points[_local8];
_local7.position = _local5.GetWorldPoint(_local4.localPoint1);
_local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1);
_local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2);
_local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y));
_local7.normal.SetV(m0.normal);
_local7.separation = _local4.separation;
_local7.id.key = _local4.id._key;
_arg1.Remove(_local7);
};
_local8++;
};
}
override public function GetManifolds():Array{
return (m_manifolds);
}
public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{
return (new b2PolygonContact(_arg1, _arg2));
}
public static function Destroy(_arg1:b2Contact, _arg2):void{
}
}
}//package Box2D.Dynamics.Contacts
Section 49
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint)
package Box2D.Dynamics.Joints {
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Common.*;
public class b2DistanceJoint extends b2Joint {
public var m_localAnchor1:b2Vec2;
public var m_localAnchor2:b2Vec2;
public var m_u:b2Vec2;
public var m_frequencyHz:Number;
public var m_dampingRatio:Number;
public var m_gamma:Number;
public var m_bias:Number;
public var m_impulse:Number;
public var m_mass:Number;
public var m_length:Number;
public function b2DistanceJoint(_arg1:b2DistanceJointDef){
var _local2:b2Mat22;
var _local3:Number;
var _local4:Number;
m_localAnchor1 = new b2Vec2();
m_localAnchor2 = new b2Vec2();
m_u = new b2Vec2();
super(_arg1);
m_localAnchor1.SetV(_arg1.localAnchor1);
m_localAnchor2.SetV(_arg1.localAnchor2);
m_length = _arg1.length;
m_frequencyHz = _arg1.frequencyHz;
m_dampingRatio = _arg1.dampingRatio;
m_impulse = 0;
m_gamma = 0;
m_bias = 0;
m_inv_dt = 0;
}
override public function InitVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Mat22;
var _local3:Number;
var _local4:b2Body;
var _local5:b2Body;
var _local6:Number;
var _local8:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
m_inv_dt = _arg1.inv_dt;
_local4 = m_body1;
_local5 = m_body2;
_local2 = _local4.m_xf.R;
_local6 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x);
var _local7:Number = (m_localAnchor1.y - _local4.m_sweep.localCenter.y);
_local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7));
_local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7));
_local6 = _local3;
_local2 = _local5.m_xf.R;
_local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x);
var _local9:Number = (m_localAnchor2.y - _local5.m_sweep.localCenter.y);
_local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9));
_local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9));
_local8 = _local3;
m_u.x = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6);
m_u.y = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7);
var _local10:Number = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y)));
if (_local10 > b2Settings.b2_linearSlop){
m_u.Multiply((1 / _local10));
} else {
m_u.SetZero();
};
var _local11:Number = ((_local6 * m_u.y) - (_local7 * m_u.x));
var _local12:Number = ((_local8 * m_u.y) - (_local9 * m_u.x));
var _local13:Number = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12));
m_mass = (1 / _local13);
if (m_frequencyHz > 0){
_local14 = (_local10 - m_length);
_local15 = ((2 * Math.PI) * m_frequencyHz);
_local16 = (((2 * m_mass) * m_dampingRatio) * _local15);
_local17 = ((m_mass * _local15) * _local15);
m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17))));
m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma);
m_mass = (1 / (_local13 + m_gamma));
};
if (_arg1.warmStarting){
m_impulse = (m_impulse * _arg1.dtRatio);
_local18 = (m_impulse * m_u.x);
_local19 = (m_impulse * m_u.y);
_local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local18));
_local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local19));
_local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local19) - (_local7 * _local18))));
_local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local18));
_local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local19));
_local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local19) - (_local9 * _local18))));
} else {
m_impulse = 0;
};
}
override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Mat22;
var _local3:b2Body = m_body1;
var _local4:b2Body = m_body2;
_local2 = _local3.m_xf.R;
var _local5:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x);
var _local6:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y);
var _local7:Number = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6));
_local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6));
_local5 = _local7;
_local2 = _local4.m_xf.R;
var _local8:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x);
var _local9:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y);
_local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9));
_local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9));
_local8 = _local7;
var _local10:Number = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6));
var _local11:Number = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5));
var _local12:Number = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9));
var _local13:Number = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8));
var _local14:Number = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11)));
var _local15:Number = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse)));
m_impulse = (m_impulse + _local15);
var _local16:Number = (_local15 * m_u.x);
var _local17:Number = (_local15 * m_u.y);
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17));
_local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16))));
_local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16));
_local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17));
_local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16))));
}
override public function SolvePositionConstraints():Boolean{
var _local1:b2Mat22;
if (m_frequencyHz > 0){
return (true);
};
var _local2:b2Body = m_body1;
var _local3:b2Body = m_body2;
_local1 = _local2.m_xf.R;
var _local4:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x);
var _local5:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y);
var _local6:Number = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5));
_local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5));
_local4 = _local6;
_local1 = _local3.m_xf.R;
var _local7:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x);
var _local8:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y);
_local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8));
_local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8));
_local7 = _local6;
var _local9:Number = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4);
var _local10:Number = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5);
var _local11:Number = Math.sqrt(((_local9 * _local9) + (_local10 * _local10)));
_local9 = (_local9 / _local11);
_local10 = (_local10 / _local11);
var _local12:Number = (_local11 - m_length);
_local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection);
var _local13:Number = (-(m_mass) * _local12);
m_u.Set(_local9, _local10);
var _local14:Number = (_local13 * m_u.x);
var _local15:Number = (_local13 * m_u.y);
_local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14));
_local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15));
_local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14))));
_local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14));
_local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15));
_local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14))));
_local2.SynchronizeTransform();
_local3.SynchronizeTransform();
return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop));
}
override public function 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 = new b2Vec2();
_local1.SetV(m_u);
_local1.Multiply((m_inv_dt * m_impulse));
return (_local1);
}
override public function GetReactionTorque():Number{
return (0);
}
}
}//package Box2D.Dynamics.Joints
Section 50
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef)
package Box2D.Dynamics.Joints {
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
public class b2DistanceJointDef extends b2JointDef {
public var localAnchor1:b2Vec2;
public var localAnchor2:b2Vec2;
public var length:Number;
public var frequencyHz:Number;
public var dampingRatio:Number;
public function b2DistanceJointDef(){
localAnchor1 = new b2Vec2();
localAnchor2 = new b2Vec2();
super();
type = b2Joint.e_distanceJoint;
length = 1;
frequencyHz = 0;
dampingRatio = 0;
}
public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{
body1 = _arg1;
body2 = _arg2;
localAnchor1.SetV(body1.GetLocalPoint(_arg3));
localAnchor2.SetV(body2.GetLocalPoint(_arg4));
var _local5:Number = (_arg4.x - _arg3.x);
var _local6:Number = (_arg4.y - _arg3.y);
length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6)));
frequencyHz = 0;
dampingRatio = 0;
}
}
}//package Box2D.Dynamics.Joints
Section 51
//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_ground1:b2Body;
public var m_ground2:b2Body;
public var m_revolute1:b2RevoluteJoint;
public var m_prismatic1:b2PrismaticJoint;
public var m_revolute2:b2RevoluteJoint;
public var m_prismatic2:b2PrismaticJoint;
public var m_groundAnchor1:b2Vec2;
public var m_groundAnchor2:b2Vec2;
public var m_localAnchor1:b2Vec2;
public var m_localAnchor2:b2Vec2;
public var m_J:b2Jacobian;
public var m_constant:Number;
public var m_ratio:Number;
public var m_mass:Number;
public var m_force:Number;
public function b2GearJoint(_arg1:b2GearJointDef){
var _local4:Number;
var _local5:Number;
m_groundAnchor1 = new b2Vec2();
m_groundAnchor2 = new b2Vec2();
m_localAnchor1 = new b2Vec2();
m_localAnchor2 = new b2Vec2();
m_J = new b2Jacobian();
super(_arg1);
var _local2:int = _arg1.joint1.m_type;
var _local3:int = _arg1.joint2.m_type;
m_revolute1 = null;
m_prismatic1 = null;
m_revolute2 = null;
m_prismatic2 = null;
m_ground1 = _arg1.joint1.m_body1;
m_body1 = _arg1.joint1.m_body2;
if (_local2 == b2Joint.e_revoluteJoint){
m_revolute1 = (_arg1.joint1 as b2RevoluteJoint);
m_groundAnchor1.SetV(m_revolute1.m_localAnchor1);
m_localAnchor1.SetV(m_revolute1.m_localAnchor2);
_local4 = m_revolute1.GetJointAngle();
} else {
m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint);
m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1);
m_localAnchor1.SetV(m_prismatic1.m_localAnchor2);
_local4 = m_prismatic1.GetJointTranslation();
};
m_ground2 = _arg1.joint2.m_body1;
m_body2 = _arg1.joint2.m_body2;
if (_local3 == b2Joint.e_revoluteJoint){
m_revolute2 = (_arg1.joint2 as b2RevoluteJoint);
m_groundAnchor2.SetV(m_revolute2.m_localAnchor1);
m_localAnchor2.SetV(m_revolute2.m_localAnchor2);
_local5 = m_revolute2.GetJointAngle();
} else {
m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint);
m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1);
m_localAnchor2.SetV(m_prismatic2.m_localAnchor2);
_local5 = m_prismatic2.GetJointTranslation();
};
m_ratio = _arg1.ratio;
m_constant = (_local4 + (m_ratio * _local5));
m_force = 0;
}
override public function GetAnchor1():b2Vec2{
return (m_body1.GetWorldPoint(m_localAnchor1));
}
override public function GetAnchor2():b2Vec2{
return (m_body2.GetWorldPoint(m_localAnchor2));
}
override public function GetReactionForce():b2Vec2{
var _local1:b2Vec2 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y));
return (_local1);
}
override public function GetReactionTorque():Number{
var _local1:b2Mat22 = m_body2.m_xf.R;
var _local2:Number = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x);
var _local3:Number = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y);
var _local4:Number = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3));
_local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3));
_local2 = _local4;
_local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x))));
return (_local4);
}
public function GetRatio():Number{
return (m_ratio);
}
override public function InitVelocityConstraints(_arg1:b2TimeStep):void{
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:b2Mat22;
var _local11:b2Vec2;
var _local12:Number;
var _local13:Number;
var _local15:Number;
var _local2:b2Body = m_ground1;
var _local3:b2Body = m_ground2;
var _local4:b2Body = m_body1;
var _local5:b2Body = m_body2;
var _local14:Number = 0;
m_J.SetZero();
if (m_revolute1){
m_J.angular1 = -1;
_local14 = (_local14 + _local4.m_invI);
} else {
_local10 = _local2.m_xf.R;
_local11 = m_prismatic1.m_localXAxis1;
_local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y));
_local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y));
_local10 = _local4.m_xf.R;
_local8 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x);
_local9 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y);
_local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9));
_local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9));
_local8 = _local13;
_local12 = ((_local8 * _local7) - (_local9 * _local6));
m_J.linear1.Set(-(_local6), -(_local7));
m_J.angular1 = -(_local12);
_local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12)));
};
if (m_revolute2){
m_J.angular2 = -(m_ratio);
_local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI));
} else {
_local10 = _local3.m_xf.R;
_local11 = m_prismatic2.m_localXAxis1;
_local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y));
_local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y));
_local10 = _local5.m_xf.R;
_local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x);
_local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y);
_local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9));
_local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9));
_local8 = _local13;
_local12 = ((_local8 * _local7) - (_local9 * _local6));
m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7));
m_J.angular2 = (-(m_ratio) * _local12);
_local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12))));
};
m_mass = (1 / _local14);
if (_arg1.warmStarting){
_local15 = (_arg1.dt * m_force);
_local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x));
_local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y));
_local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1));
_local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x));
_local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y));
_local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2));
} else {
m_force = 0;
};
}
override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Body = m_body1;
var _local3:b2Body = m_body2;
var _local4:Number = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity);
var _local5:Number = ((-(_arg1.inv_dt) * m_mass) * _local4);
m_force = (m_force + _local5);
var _local6:Number = (_arg1.dt * _local5);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * m_J.linear1.x));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y));
_local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2));
}
override public function SolvePositionConstraints():Boolean{
var _local4:Number;
var _local5:Number;
var _local1:Number = 0;
var _local2:b2Body = m_body1;
var _local3:b2Body = m_body2;
if (m_revolute1){
_local4 = m_revolute1.GetJointAngle();
} else {
_local4 = m_prismatic1.GetJointTranslation();
};
if (m_revolute2){
_local5 = m_revolute2.GetJointAngle();
} else {
_local5 = m_prismatic2.GetJointTranslation();
};
var _local6:Number = (m_constant - (_local4 + (m_ratio * _local5)));
var _local7:Number = (-(m_mass) * _local6);
_local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * m_J.linear1.x));
_local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y));
_local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1));
_local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x));
_local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y));
_local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2));
_local2.SynchronizeTransform();
_local3.SynchronizeTransform();
return ((_local1 < b2Settings.b2_linearSlop));
}
}
}//package Box2D.Dynamics.Joints
Section 52
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef)
package Box2D.Dynamics.Joints {
import Box2D.Common.Math.*;
public class b2GearJointDef extends b2JointDef {
public var joint1:b2Joint;
public var joint2:b2Joint;
public var ratio:Number;
public function b2GearJointDef(){
type = b2Joint.e_gearJoint;
joint1 = null;
joint2 = null;
ratio = 1;
}
}
}//package Box2D.Dynamics.Joints
Section 53
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian)
package Box2D.Dynamics.Joints {
import Box2D.Common.Math.*;
public class b2Jacobian {
public var linear1:b2Vec2;
public var angular1:Number;
public var linear2:b2Vec2;
public var angular2:Number;
public function b2Jacobian(){
linear1 = new b2Vec2();
linear2 = new b2Vec2();
super();
}
public function SetZero():void{
linear1.SetZero();
angular1 = 0;
linear2.SetZero();
angular2 = 0;
}
public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{
linear1.SetV(_arg1);
angular1 = _arg2;
linear2.SetV(_arg3);
angular2 = _arg4;
}
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 54
//b2Joint (Box2D.Dynamics.Joints.b2Joint)
package Box2D.Dynamics.Joints {
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Common.*;
public class b2Joint {
public var m_type:int;
public var m_prev:b2Joint;
public var m_next:b2Joint;
public var m_node1:b2JointEdge;
public var m_node2:b2JointEdge;
public var m_body1:b2Body;
public var m_body2:b2Body;
public var m_inv_dt:Number;
public var m_islandFlag:Boolean;
public var m_collideConnected:Boolean;
public var m_userData;
public static const e_unknownJoint:int = 0;
public static const e_revoluteJoint:int = 1;
public static const e_prismaticJoint:int = 2;
public static const e_distanceJoint:int = 3;
public static const e_pulleyJoint:int = 4;
public static const e_mouseJoint:int = 5;
public static const e_gearJoint:int = 6;
public static const e_inactiveLimit:int = 0;
public static const e_atLowerLimit:int = 1;
public static const e_atUpperLimit:int = 2;
public static const e_equalLimits:int = 3;
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 GetType():int{
return (m_type);
}
public function GetAnchor1():b2Vec2{
return (null);
}
public function GetAnchor2():b2Vec2{
return (null);
}
public function GetReactionForce():b2Vec2{
return (null);
}
public function GetReactionTorque():Number{
return (0);
}
public function GetBody1():b2Body{
return (m_body1);
}
public function GetBody2():b2Body{
return (m_body2);
}
public function GetNext():b2Joint{
return (m_next);
}
public function GetUserData(){
return (m_userData);
}
public function SetUserData(_arg1):void{
m_userData = _arg1;
}
public function InitVelocityConstraints(_arg1:b2TimeStep):void{
}
public function SolveVelocityConstraints(_arg1:b2TimeStep):void{
}
public function InitPositionConstraints():void{
}
public function SolvePositionConstraints():Boolean{
return (false);
}
public static function Create(_arg1:b2JointDef, _arg2):b2Joint{
var _local3:b2Joint;
switch (_arg1.type){
case e_distanceJoint:
_local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef));
break;
case e_mouseJoint:
_local3 = new b2MouseJoint((_arg1 as b2MouseJointDef));
break;
case e_prismaticJoint:
_local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef));
break;
case e_revoluteJoint:
_local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef));
break;
case e_pulleyJoint:
_local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef));
break;
case e_gearJoint:
_local3 = new b2GearJoint((_arg1 as b2GearJointDef));
break;
default:
break;
};
return (_local3);
}
public static function Destroy(_arg1:b2Joint, _arg2):void{
}
}
}//package Box2D.Dynamics.Joints
Section 55
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef)
package Box2D.Dynamics.Joints {
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
public class b2JointDef {
public var type:int;
public var userData;
public var body1:b2Body;
public var body2:b2Body;
public var collideConnected:Boolean;
public function b2JointDef(){
type = b2Joint.e_unknownJoint;
userData = null;
body1 = null;
body2 = null;
collideConnected = false;
}
}
}//package Box2D.Dynamics.Joints
Section 56
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge)
package Box2D.Dynamics.Joints {
import Box2D.Dynamics.*;
public class b2JointEdge {
public var other:b2Body;
public var joint:b2Joint;
public var prev:b2JointEdge;
public var next:b2JointEdge;
}
}//package Box2D.Dynamics.Joints
Section 57
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint)
package Box2D.Dynamics.Joints {
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Common.*;
public class b2MouseJoint extends b2Joint {
private var K:b2Mat22;
private var K1:b2Mat22;
private var K2:b2Mat22;
public var m_localAnchor:b2Vec2;
public var m_target:b2Vec2;
public var m_impulse:b2Vec2;
public var m_mass:b2Mat22;
public var m_C:b2Vec2;
public var m_maxForce:Number;
public var m_beta:Number;
public var m_gamma:Number;
public function b2MouseJoint(_arg1:b2MouseJointDef){
var _local3:Number;
K = new b2Mat22();
K1 = new b2Mat22();
K2 = new b2Mat22();
m_localAnchor = new b2Vec2();
m_target = new b2Vec2();
m_impulse = new b2Vec2();
m_mass = new b2Mat22();
m_C = new b2Vec2();
super(_arg1);
m_target.SetV(_arg1.target);
var _local2:Number = (m_target.x - m_body2.m_xf.position.x);
_local3 = (m_target.y - m_body2.m_xf.position.y);
var _local4:b2Mat22 = m_body2.m_xf.R;
m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y));
m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y));
m_maxForce = _arg1.maxForce;
m_impulse.SetZero();
var _local5:Number = m_body2.m_mass;
var _local6:Number = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz);
var _local7:Number = (((2 * _local5) * _arg1.dampingRatio) * _local6);
var _local8:Number = ((_arg1.timeStep * _local5) * (_local6 * _local6));
m_gamma = (1 / (_local7 + _local8));
m_beta = (_local8 / (_local7 + _local8));
}
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_impulse);
}
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 InitVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Mat22;
var _local4:Number;
var _local5:Number;
var _local7:Number;
var _local8:Number;
_local2 = m_body2;
_local3 = _local2.m_xf.R;
_local4 = (m_localAnchor.x - _local2.m_sweep.localCenter.x);
_local5 = (m_localAnchor.y - _local2.m_sweep.localCenter.y);
var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5));
_local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5));
_local4 = _local6;
_local7 = _local2.m_invMass;
_local8 = _local2.m_invI;
K1.col1.x = _local7;
K1.col2.x = 0;
K1.col1.y = 0;
K1.col2.y = _local7;
K2.col1.x = ((_local8 * _local5) * _local5);
K2.col2.x = ((-(_local8) * _local4) * _local5);
K2.col1.y = ((-(_local8) * _local4) * _local5);
K2.col2.y = ((_local8 * _local4) * _local4);
K.SetM(K1);
K.AddM(K2);
K.col1.x = (K.col1.x + m_gamma);
K.col2.y = (K.col2.y + m_gamma);
K.Invert(m_mass);
m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x);
m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y);
_local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98);
var _local9:Number = (_arg1.dt * m_impulse.x);
var _local10:Number = (_arg1.dt * m_impulse.y);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local7 * _local9));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local7 * _local10));
_local2.m_angularVelocity = (_local2.m_angularVelocity + (_local8 * ((_local4 * _local10) - (_local5 * _local9))));
}
override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{
var _local3:b2Mat22;
var _local4:Number;
var _local5:Number;
var _local2:b2Body = m_body2;
_local3 = _local2.m_xf.R;
var _local6:Number = (m_localAnchor.x - _local2.m_sweep.localCenter.x);
var _local7:Number = (m_localAnchor.y - _local2.m_sweep.localCenter.y);
_local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7));
_local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7));
_local6 = _local4;
var _local8:Number = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7));
var _local9:Number = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6));
_local3 = m_mass;
_local4 = ((_local8 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_impulse.x));
_local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_impulse.y));
var _local10:Number = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)));
var _local11:Number = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)));
var _local12:Number = m_impulse.x;
var _local13:Number = m_impulse.y;
m_impulse.x = (m_impulse.x + _local10);
m_impulse.y = (m_impulse.y + _local11);
var _local14:Number = m_impulse.Length();
if (_local14 > m_maxForce){
m_impulse.Multiply((m_maxForce / _local14));
};
_local10 = (m_impulse.x - _local12);
_local11 = (m_impulse.y - _local13);
var _local15:Number = (_arg1.dt * _local10);
var _local16:Number = (_arg1.dt * _local11);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16));
_local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15))));
}
override public function SolvePositionConstraints():Boolean{
return (true);
}
}
}//package Box2D.Dynamics.Joints
Section 58
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef)
package Box2D.Dynamics.Joints {
import Box2D.Common.Math.*;
public class b2MouseJointDef extends b2JointDef {
public var target:b2Vec2;
public var maxForce:Number;
public var frequencyHz:Number;
public var dampingRatio:Number;
public 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 59
//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_localAnchor1:b2Vec2;
public var m_localAnchor2:b2Vec2;
public var m_localXAxis1:b2Vec2;
public var m_localYAxis1:b2Vec2;
public var m_refAngle:Number;
public var m_linearJacobian:b2Jacobian;
public var m_linearMass:Number;
public var m_force:Number;
public var m_angularMass:Number;
public var m_torque:Number;
public var m_motorJacobian:b2Jacobian;
public var m_motorMass:Number;
public var m_motorForce:Number;
public var m_limitForce:Number;
public var m_limitPositionImpulse:Number;
public var m_lowerTranslation:Number;
public var m_upperTranslation:Number;
public var m_maxMotorForce:Number;
public var m_motorSpeed:Number;
public var m_enableLimit:Boolean;
public var m_enableMotor:Boolean;
public var m_limitState:int;
public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){
var _local2:b2Mat22;
var _local3:Number;
var _local4:Number;
m_localAnchor1 = new b2Vec2();
m_localAnchor2 = new b2Vec2();
m_localXAxis1 = new b2Vec2();
m_localYAxis1 = new b2Vec2();
m_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));
}
override public function GetReactionForce():b2Vec2{
var _local1:b2Mat22 = m_body1.m_xf.R;
var _local2:Number = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y)));
var _local3:Number = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y)));
var _local4:Number = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y)));
var _local5:Number = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y)));
return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5))));
}
override public function GetReactionTorque():Number{
return (m_torque);
}
public function GetJointTranslation():Number{
var _local3:b2Mat22;
var _local1:b2Body = m_body1;
var _local2:b2Body = m_body2;
var _local4:b2Vec2 = _local1.GetWorldPoint(m_localAnchor1);
var _local5:b2Vec2 = _local2.GetWorldPoint(m_localAnchor2);
var _local6:Number = (_local5.x - _local4.x);
var _local7:Number = (_local5.y - _local4.y);
var _local8:b2Vec2 = _local1.GetWorldVector(m_localXAxis1);
var _local9:Number = ((_local8.x * _local6) + (_local8.y * _local7));
return (_local9);
}
public function GetJointSpeed():Number{
var _local3:b2Mat22;
var _local1:b2Body = m_body1;
var _local2:b2Body = m_body2;
_local3 = _local1.m_xf.R;
var _local4:Number = (m_localAnchor1.x - _local1.m_sweep.localCenter.x);
var _local5:Number = (m_localAnchor1.y - _local1.m_sweep.localCenter.y);
var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5));
_local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5));
_local4 = _local6;
_local3 = _local2.m_xf.R;
var _local7:Number = (m_localAnchor2.x - _local2.m_sweep.localCenter.x);
var _local8:Number = (m_localAnchor2.y - _local2.m_sweep.localCenter.y);
_local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8));
_local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8));
_local7 = _local6;
var _local9:Number = (_local1.m_sweep.c.x + _local4);
var _local10:Number = (_local1.m_sweep.c.y + _local5);
var _local11:Number = (_local2.m_sweep.c.x + _local7);
var _local12:Number = (_local2.m_sweep.c.y + _local8);
var _local13:Number = (_local11 - _local9);
var _local14:Number = (_local12 - _local10);
var _local15:b2Vec2 = _local1.GetWorldVector(m_localXAxis1);
var _local16:b2Vec2 = _local1.m_linearVelocity;
var _local17:b2Vec2 = _local2.m_linearVelocity;
var _local18:Number = _local1.m_angularVelocity;
var _local19:Number = _local2.m_angularVelocity;
var _local20:Number = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4)))));
return (_local20);
}
public function IsLimitEnabled():Boolean{
return (m_enableLimit);
}
public function EnableLimit(_arg1:Boolean):void{
m_enableLimit = _arg1;
}
public function GetLowerLimit():Number{
return (m_lowerTranslation);
}
public function GetUpperLimit():Number{
return (m_upperTranslation);
}
public function SetLimits(_arg1:Number, _arg2:Number):void{
m_lowerTranslation = _arg1;
m_upperTranslation = _arg2;
}
public function IsMotorEnabled():Boolean{
return (m_enableMotor);
}
public function EnableMotor(_arg1:Boolean):void{
m_enableMotor = _arg1;
}
public function SetMotorSpeed(_arg1:Number):void{
m_motorSpeed = _arg1;
}
public function GetMotorSpeed():Number{
return (m_motorSpeed);
}
public function SetMaxMotorForce(_arg1:Number):void{
m_maxMotorForce = _arg1;
}
public function GetMotorForce():Number{
return (m_motorForce);
}
override public function InitVelocityConstraints(_arg1:b2TimeStep):void{
var _local4:b2Mat22;
var _local5:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
var _local26:Number;
var _local27:Number;
var _local28:Number;
var _local2:b2Body = m_body1;
var _local3:b2Body = m_body2;
_local4 = _local2.m_xf.R;
var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x);
var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y);
_local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7));
_local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7));
_local6 = _local5;
_local4 = _local3.m_xf.R;
var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x);
var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y);
_local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9));
_local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9));
_local8 = _local5;
var _local10:Number = _local2.m_invMass;
var _local11:Number = _local3.m_invMass;
var _local12:Number = _local2.m_invI;
var _local13:Number = _local3.m_invI;
_local4 = _local2.m_xf.R;
var _local14:Number = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y));
var _local15:Number = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y));
var _local16:Number = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x);
var _local17:Number = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y);
m_linearJacobian.linear1.x = -(_local14);
m_linearJacobian.linear1.y = -(_local15);
m_linearJacobian.linear2.x = _local14;
m_linearJacobian.linear2.y = _local15;
m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14)));
m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14));
m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2));
m_linearMass = (1 / m_linearMass);
m_angularMass = (_local12 + _local13);
if (m_angularMass > Number.MIN_VALUE){
m_angularMass = (1 / m_angularMass);
};
if (((m_enableLimit) || (m_enableMotor))){
_local4 = _local2.m_xf.R;
_local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y));
_local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y));
m_motorJacobian.linear1.x = -(_local18);
m_motorJacobian.linear1.y = -(_local19);
m_motorJacobian.linear2.x = _local18;
m_motorJacobian.linear2.y = _local19;
m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18)));
m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18));
m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2));
m_motorMass = (1 / m_motorMass);
if (m_enableLimit){
_local20 = (_local16 - _local6);
_local21 = (_local17 - _local7);
_local22 = ((_local18 * _local20) + (_local19 * _local21));
if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){
m_limitState = e_equalLimits;
} else {
if (_local22 <= m_lowerTranslation){
if (m_limitState != e_atLowerLimit){
m_limitForce = 0;
};
m_limitState = e_atLowerLimit;
} else {
if (_local22 >= m_upperTranslation){
if (m_limitState != e_atUpperLimit){
m_limitForce = 0;
};
m_limitState = e_atUpperLimit;
} else {
m_limitState = e_inactiveLimit;
m_limitForce = 0;
};
};
};
};
};
if (m_enableMotor == false){
m_motorForce = 0;
};
if (m_enableLimit == false){
m_limitForce = 0;
};
if (_arg1.warmStarting){
_local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x)));
_local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y)));
_local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x)));
_local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y)));
_local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1)));
_local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2)));
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24));
_local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26));
_local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28));
} else {
m_force = 0;
m_torque = 0;
m_limitForce = 0;
m_motorForce = 0;
};
m_limitPositionImpulse = 0;
}
override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{
var _local8:Number;
var _local11:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local2:b2Body = m_body1;
var _local3:b2Body = m_body2;
var _local4:Number = _local2.m_invMass;
var _local5:Number = _local3.m_invMass;
var _local6:Number = _local2.m_invI;
var _local7:Number = _local3.m_invI;
var _local9:Number = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity);
var _local10:Number = ((-(_arg1.inv_dt) * m_linearMass) * _local9);
m_force = (m_force + _local10);
_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));
var _local12:Number = (_local3.m_angularVelocity - _local2.m_angularVelocity);
var _local13:Number = ((-(_arg1.inv_dt) * m_angularMass) * _local12);
m_torque = (m_torque + _local13);
var _local14:Number = (_arg1.dt * _local13);
_local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14));
_local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14));
if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){
_local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed);
_local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15);
_local17 = m_motorForce;
m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce);
_local16 = (m_motorForce - _local17);
_local11 = (_arg1.dt * _local16);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y));
_local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2));
};
if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){
_local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity);
_local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18);
if (m_limitState == e_equalLimits){
m_limitForce = (m_limitForce + _local19);
} else {
if (m_limitState == e_atLowerLimit){
_local8 = m_limitForce;
m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0);
_local19 = (m_limitForce - _local8);
} else {
if (m_limitState == e_atUpperLimit){
_local8 = m_limitForce;
m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0);
_local19 = (m_limitForce - _local8);
};
};
};
_local11 = (_arg1.dt * _local19);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y));
_local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2));
};
}
override public function SolvePositionConstraints():Boolean{
var _local1:Number;
var _local2:Number;
var _local9:b2Mat22;
var _local10:Number;
var _local29:Number;
var _local30:Number;
var _local31:Number;
var _local32:Number;
var _local3:b2Body = m_body1;
var _local4:b2Body = m_body2;
var _local5:Number = _local3.m_invMass;
var _local6:Number = _local4.m_invMass;
var _local7:Number = _local3.m_invI;
var _local8:Number = _local4.m_invI;
_local9 = _local3.m_xf.R;
var _local11:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x);
var _local12:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y);
_local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12));
_local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12));
_local11 = _local10;
_local9 = _local4.m_xf.R;
var _local13:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x);
var _local14:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y);
_local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14));
_local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14));
_local13 = _local10;
var _local15:Number = (_local3.m_sweep.c.x + _local11);
var _local16:Number = (_local3.m_sweep.c.y + _local12);
var _local17:Number = (_local4.m_sweep.c.x + _local13);
var _local18:Number = (_local4.m_sweep.c.y + _local14);
var _local19:Number = (_local17 - _local15);
var _local20:Number = (_local18 - _local16);
_local9 = _local3.m_xf.R;
var _local21:Number = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y));
var _local22:Number = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y));
var _local23:Number = ((_local21 * _local19) + (_local22 * _local20));
_local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection);
var _local24:Number = (-(m_linearMass) * _local23);
_local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x));
_local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y));
_local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1));
_local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x));
_local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y));
_local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2));
var _local25:Number = b2Math.b2Abs(_local23);
var _local26:Number = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle);
_local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection);
var _local27:Number = (-(m_angularMass) * _local26);
_local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27));
_local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27));
_local3.SynchronizeTransform();
_local4.SynchronizeTransform();
var _local28:Number = b2Math.b2Abs(_local26);
if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){
_local9 = _local3.m_xf.R;
_local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x);
_local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y);
_local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12));
_local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12));
_local11 = _local10;
_local9 = _local4.m_xf.R;
_local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x);
_local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y);
_local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14));
_local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14));
_local13 = _local10;
_local15 = (_local3.m_sweep.c.x + _local11);
_local16 = (_local3.m_sweep.c.y + _local12);
_local17 = (_local4.m_sweep.c.x + _local13);
_local18 = (_local4.m_sweep.c.y + _local14);
_local19 = (_local17 - _local15);
_local20 = (_local18 - _local16);
_local9 = _local3.m_xf.R;
_local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y));
_local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y));
_local31 = ((_local29 * _local19) + (_local30 * _local20));
_local32 = 0;
if (m_limitState == e_equalLimits){
_local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection);
_local32 = (-(m_motorMass) * _local1);
_local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26));
} else {
if (m_limitState == e_atLowerLimit){
_local1 = (_local31 - m_lowerTranslation);
_local25 = b2Math.b2Max(_local25, -(_local1));
_local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0);
_local32 = (-(m_motorMass) * _local1);
_local2 = m_limitPositionImpulse;
m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0);
_local32 = (m_limitPositionImpulse - _local2);
} else {
if (m_limitState == e_atUpperLimit){
_local1 = (_local31 - m_upperTranslation);
_local25 = b2Math.b2Max(_local25, _local1);
_local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection);
_local32 = (-(m_motorMass) * _local1);
_local2 = m_limitPositionImpulse;
m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0);
_local32 = (m_limitPositionImpulse - _local2);
};
};
};
_local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x));
_local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y));
_local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1));
_local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x));
_local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y));
_local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2));
_local3.SynchronizeTransform();
_local4.SynchronizeTransform();
};
return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop))));
}
}
}//package Box2D.Dynamics.Joints
Section 60
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef)
package Box2D.Dynamics.Joints {
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
public class b2PrismaticJointDef extends b2JointDef {
public var localAnchor1:b2Vec2;
public var localAnchor2:b2Vec2;
public var localAxis1:b2Vec2;
public var referenceAngle:Number;
public var enableLimit:Boolean;
public var lowerTranslation:Number;
public var upperTranslation:Number;
public var enableMotor:Boolean;
public var maxMotorForce:Number;
public var motorSpeed:Number;
public function b2PrismaticJointDef(){
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 61
//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_groundAnchor1:b2Vec2;
public var m_groundAnchor2:b2Vec2;
public var m_localAnchor1:b2Vec2;
public var m_localAnchor2:b2Vec2;
public var m_u1:b2Vec2;
public var m_u2:b2Vec2;
public var m_constant:Number;
public var m_ratio:Number;
public var m_maxLength1:Number;
public var m_maxLength2:Number;
public var m_pulleyMass:Number;
public var m_limitMass1:Number;
public var m_limitMass2:Number;
public var m_force:Number;
public var m_limitForce1:Number;
public var m_limitForce2:Number;
public var m_positionImpulse:Number;
public var m_limitPositionImpulse1:Number;
public var m_limitPositionImpulse2:Number;
public var m_state:int;
public var m_limitState1:int;
public var m_limitState2:int;
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;
}
override public function GetAnchor1():b2Vec2{
return (m_body1.GetWorldPoint(m_localAnchor1));
}
override public function GetAnchor2():b2Vec2{
return (m_body2.GetWorldPoint(m_localAnchor2));
}
override public function GetReactionForce():b2Vec2{
var _local1:b2Vec2 = m_u2.Copy();
_local1.Multiply(m_force);
return (_local1);
}
override public function GetReactionTorque():Number{
return (0);
}
public function GetGroundAnchor1():b2Vec2{
var _local1:b2Vec2 = m_ground.m_xf.position.Copy();
_local1.Add(m_groundAnchor1);
return (_local1);
}
public function GetGroundAnchor2():b2Vec2{
var _local1:b2Vec2 = m_ground.m_xf.position.Copy();
_local1.Add(m_groundAnchor2);
return (_local1);
}
public function GetLength1():Number{
var _local1:b2Vec2 = m_body1.GetWorldPoint(m_localAnchor1);
var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x);
var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y);
var _local4:Number = (_local1.x - _local2);
var _local5:Number = (_local1.y - _local3);
return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5))));
}
public function GetLength2():Number{
var _local1:b2Vec2 = m_body2.GetWorldPoint(m_localAnchor2);
var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x);
var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y);
var _local4:Number = (_local1.x - _local2);
var _local5:Number = (_local1.y - _local3);
return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5))));
}
public function GetRatio():Number{
return (m_ratio);
}
override public function InitVelocityConstraints(_arg1:b2TimeStep):void{
var _local4:b2Mat22;
var _local5:Number;
var _local6:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
var _local26:Number;
var _local2:b2Body = m_body1;
var _local3:b2Body = m_body2;
_local4 = _local2.m_xf.R;
_local5 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x);
_local6 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y);
var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6));
_local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6));
_local5 = _local7;
_local4 = _local3.m_xf.R;
var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x);
var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y);
_local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9));
_local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9));
_local8 = _local7;
var _local10:Number = (_local2.m_sweep.c.x + _local5);
var _local11:Number = (_local2.m_sweep.c.y + _local6);
var _local12:Number = (_local3.m_sweep.c.x + _local8);
var _local13:Number = (_local3.m_sweep.c.y + _local9);
var _local14:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x);
var _local15:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y);
var _local16:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x);
var _local17:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y);
m_u1.Set((_local10 - _local14), (_local11 - _local15));
m_u2.Set((_local12 - _local16), (_local13 - _local17));
var _local18:Number = m_u1.Length();
var _local19:Number = m_u2.Length();
if (_local18 > b2Settings.b2_linearSlop){
m_u1.Multiply((1 / _local18));
} else {
m_u1.SetZero();
};
if (_local19 > b2Settings.b2_linearSlop){
m_u2.Multiply((1 / _local19));
} else {
m_u2.SetZero();
};
var _local20:Number = ((m_constant - _local18) - (m_ratio * _local19));
if (_local20 > 0){
m_state = e_inactiveLimit;
m_force = 0;
} else {
m_state = e_atUpperLimit;
m_positionImpulse = 0;
};
if (_local18 < m_maxLength1){
m_limitState1 = e_inactiveLimit;
m_limitForce1 = 0;
} else {
m_limitState1 = e_atUpperLimit;
m_limitPositionImpulse1 = 0;
};
if (_local19 < m_maxLength2){
m_limitState2 = e_inactiveLimit;
m_limitForce2 = 0;
} else {
m_limitState2 = e_atUpperLimit;
m_limitPositionImpulse2 = 0;
};
var _local21:Number = ((_local5 * m_u1.y) - (_local6 * m_u1.x));
var _local22:Number = ((_local8 * m_u2.y) - (_local9 * m_u2.x));
m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21));
m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22));
m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2));
m_limitMass1 = (1 / m_limitMass1);
m_limitMass2 = (1 / m_limitMass2);
m_pulleyMass = (1 / m_pulleyMass);
if (_arg1.warmStarting){
_local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x);
_local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y);
_local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x);
_local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24));
_local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23))));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26));
_local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25))));
} else {
m_force = 0;
m_limitForce1 = 0;
m_limitForce2 = 0;
};
}
override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{
var _local4:b2Mat22;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local2:b2Body = m_body1;
var _local3:b2Body = m_body2;
_local4 = _local2.m_xf.R;
var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x);
var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y);
var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6));
_local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6));
_local5 = _local7;
_local4 = _local3.m_xf.R;
var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x);
var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y);
_local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9));
_local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9));
_local8 = _local7;
if (m_state == e_atUpperLimit){
_local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6));
_local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5));
_local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9));
_local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8));
_local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13))));
_local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18);
_local20 = m_force;
m_force = b2Math.b2Max(0, (m_force + _local19));
_local19 = (m_force - _local20);
_local14 = ((-(_arg1.dt) * _local19) * m_u1.x);
_local15 = ((-(_arg1.dt) * _local19) * m_u1.y);
_local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x);
_local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15));
_local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14))));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17));
_local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16))));
};
if (m_limitState1 == e_atUpperLimit){
_local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6));
_local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5));
_local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11)));
_local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18);
_local20 = m_limitForce1;
m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19));
_local19 = (m_limitForce1 - _local20);
_local14 = ((-(_arg1.dt) * _local19) * m_u1.x);
_local15 = ((-(_arg1.dt) * _local19) * m_u1.y);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15));
_local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14))));
};
if (m_limitState2 == e_atUpperLimit){
_local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9));
_local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8));
_local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13)));
_local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18);
_local20 = m_limitForce2;
m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19));
_local19 = (m_limitForce2 - _local20);
_local16 = ((-(_arg1.dt) * _local19) * m_u2.x);
_local17 = ((-(_arg1.dt) * _local19) * m_u2.y);
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17));
_local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16))));
};
}
override public function SolvePositionConstraints():Boolean{
var _local3:b2Mat22;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local1:b2Body = m_body1;
var _local2:b2Body = m_body2;
var _local4:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x);
var _local5:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y);
var _local6:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x);
var _local7:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y);
var _local23:Number = 0;
if (m_state == e_atUpperLimit){
_local3 = _local1.m_xf.R;
_local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x);
_local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y);
_local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9));
_local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9));
_local8 = _local22;
_local3 = _local2.m_xf.R;
_local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x);
_local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y);
_local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11));
_local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11));
_local10 = _local22;
_local12 = (_local1.m_sweep.c.x + _local8);
_local13 = (_local1.m_sweep.c.y + _local9);
_local14 = (_local2.m_sweep.c.x + _local10);
_local15 = (_local2.m_sweep.c.y + _local11);
m_u1.Set((_local12 - _local4), (_local13 - _local5));
m_u2.Set((_local14 - _local6), (_local15 - _local7));
_local16 = m_u1.Length();
_local17 = m_u2.Length();
if (_local16 > b2Settings.b2_linearSlop){
m_u1.Multiply((1 / _local16));
} else {
m_u1.SetZero();
};
if (_local17 > b2Settings.b2_linearSlop){
m_u2.Multiply((1 / _local17));
} else {
m_u2.SetZero();
};
_local18 = ((m_constant - _local16) - (m_ratio * _local17));
_local23 = b2Math.b2Max(_local23, -(_local18));
_local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0);
_local19 = (-(m_pulleyMass) * _local18);
_local20 = m_positionImpulse;
m_positionImpulse = b2Math.b2Max(0, (m_positionImpulse + _local19));
_local19 = (m_positionImpulse - _local20);
_local12 = (-(_local19) * m_u1.x);
_local13 = (-(_local19) * m_u1.y);
_local14 = ((-(m_ratio) * _local19) * m_u2.x);
_local15 = ((-(m_ratio) * _local19) * m_u2.y);
_local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12));
_local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13));
_local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12))));
_local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14));
_local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15));
_local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14))));
_local1.SynchronizeTransform();
_local2.SynchronizeTransform();
};
if (m_limitState1 == e_atUpperLimit){
_local3 = _local1.m_xf.R;
_local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x);
_local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y);
_local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9));
_local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9));
_local8 = _local22;
_local12 = (_local1.m_sweep.c.x + _local8);
_local13 = (_local1.m_sweep.c.y + _local9);
m_u1.Set((_local12 - _local4), (_local13 - _local5));
_local16 = m_u1.Length();
if (_local16 > b2Settings.b2_linearSlop){
m_u1.x = (m_u1.x * (1 / _local16));
m_u1.y = (m_u1.y * (1 / _local16));
} else {
m_u1.SetZero();
};
_local18 = (m_maxLength1 - _local16);
_local23 = b2Math.b2Max(_local23, -(_local18));
_local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0);
_local19 = (-(m_limitMass1) * _local18);
_local21 = m_limitPositionImpulse1;
m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19));
_local19 = (m_limitPositionImpulse1 - _local21);
_local12 = (-(_local19) * m_u1.x);
_local13 = (-(_local19) * m_u1.y);
_local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12));
_local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13));
_local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12))));
_local1.SynchronizeTransform();
};
if (m_limitState2 == e_atUpperLimit){
_local3 = _local2.m_xf.R;
_local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x);
_local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y);
_local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11));
_local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11));
_local10 = _local22;
_local14 = (_local2.m_sweep.c.x + _local10);
_local15 = (_local2.m_sweep.c.y + _local11);
m_u2.Set((_local14 - _local6), (_local15 - _local7));
_local17 = m_u2.Length();
if (_local17 > b2Settings.b2_linearSlop){
m_u2.x = (m_u2.x * (1 / _local17));
m_u2.y = (m_u2.y * (1 / _local17));
} else {
m_u2.SetZero();
};
_local18 = (m_maxLength2 - _local17);
_local23 = b2Math.b2Max(_local23, -(_local18));
_local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0);
_local19 = (-(m_limitMass2) * _local18);
_local21 = m_limitPositionImpulse2;
m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19));
_local19 = (m_limitPositionImpulse2 - _local21);
_local14 = (-(_local19) * m_u2.x);
_local15 = (-(_local19) * m_u2.y);
_local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14));
_local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15));
_local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14))));
_local2.SynchronizeTransform();
};
return ((_local23 < b2Settings.b2_linearSlop));
}
}
}//package Box2D.Dynamics.Joints
Section 62
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef)
package Box2D.Dynamics.Joints {
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
public class b2PulleyJointDef extends b2JointDef {
public var groundAnchor1:b2Vec2;
public var groundAnchor2:b2Vec2;
public var localAnchor1:b2Vec2;
public var localAnchor2:b2Vec2;
public var length1:Number;
public var maxLength1:Number;
public var length2:Number;
public var maxLength2:Number;
public var ratio:Number;
public function b2PulleyJointDef(){
groundAnchor1 = new b2Vec2();
groundAnchor2 = new b2Vec2();
localAnchor1 = new b2Vec2();
localAnchor2 = new b2Vec2();
super();
type = b2Joint.e_pulleyJoint;
groundAnchor1.Set(-1, 1);
groundAnchor2.Set(1, 1);
localAnchor1.Set(-1, 0);
localAnchor2.Set(1, 0);
length1 = 0;
maxLength1 = 0;
length2 = 0;
maxLength2 = 0;
ratio = 1;
collideConnected = true;
}
public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{
body1 = _arg1;
body2 = _arg2;
groundAnchor1.SetV(_arg3);
groundAnchor2.SetV(_arg4);
localAnchor1 = body1.GetLocalPoint(_arg5);
localAnchor2 = body2.GetLocalPoint(_arg6);
var _local8:Number = (_arg5.x - _arg3.x);
var _local9:Number = (_arg5.y - _arg3.y);
length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9)));
var _local10:Number = (_arg6.x - _arg4.x);
var _local11:Number = (_arg6.y - _arg4.y);
length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11)));
ratio = _arg7;
var _local12:Number = (length1 + (ratio * length2));
maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength));
maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio);
}
}
}//package Box2D.Dynamics.Joints
Section 63
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint)
package Box2D.Dynamics.Joints {
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Common.*;
public class b2RevoluteJoint extends b2Joint {
private var K:b2Mat22;
private var K1:b2Mat22;
private var K2:b2Mat22;
private var K3:b2Mat22;
public var m_localAnchor1:b2Vec2;
public var m_localAnchor2:b2Vec2;
public var m_pivotForce:b2Vec2;
public var m_motorForce:Number;
public var m_limitForce:Number;
public var m_limitPositionImpulse:Number;
public var m_pivotMass:b2Mat22;
public var m_motorMass:Number;
public var m_enableMotor:Boolean;
public var m_maxMotorTorque:Number;
public var m_motorSpeed:Number;
public var m_enableLimit:Boolean;
public var m_referenceAngle:Number;
public var m_lowerAngle:Number;
public var m_upperAngle:Number;
public var m_limitState:int;
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));
}
override public function GetReactionForce():b2Vec2{
return (m_pivotForce);
}
override public function GetReactionTorque():Number{
return (m_limitForce);
}
public function GetJointAngle():Number{
return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle));
}
public function GetJointSpeed():Number{
return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity));
}
public function IsLimitEnabled():Boolean{
return (m_enableLimit);
}
public function EnableLimit(_arg1:Boolean):void{
m_enableLimit = _arg1;
}
public function GetLowerLimit():Number{
return (m_lowerAngle);
}
public function GetUpperLimit():Number{
return (m_upperAngle);
}
public function SetLimits(_arg1:Number, _arg2:Number):void{
m_lowerAngle = _arg1;
m_upperAngle = _arg2;
}
public function IsMotorEnabled():Boolean{
return (m_enableMotor);
}
public function EnableMotor(_arg1:Boolean):void{
m_enableMotor = _arg1;
}
public function SetMotorSpeed(_arg1:Number):void{
m_motorSpeed = _arg1;
}
public function GetMotorSpeed():Number{
return (m_motorSpeed);
}
public function SetMaxMotorTorque(_arg1:Number):void{
m_maxMotorTorque = _arg1;
}
public function GetMotorTorque():Number{
return (m_motorForce);
}
override public function InitVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Body;
var _local4:b2Mat22;
var _local5:Number;
var _local7:Number;
var _local8:Number;
var _local10:Number;
var _local14:Number;
_local2 = m_body1;
_local3 = m_body2;
_local4 = _local2.m_xf.R;
var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x);
_local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y);
_local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7));
_local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7));
_local6 = _local5;
_local4 = _local3.m_xf.R;
_local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x);
var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y);
_local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9));
_local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9));
_local8 = _local5;
_local10 = _local2.m_invMass;
var _local11:Number = _local3.m_invMass;
var _local12:Number = _local2.m_invI;
var _local13:Number = _local3.m_invI;
K1.col1.x = (_local10 + _local11);
K1.col2.x = 0;
K1.col1.y = 0;
K1.col2.y = (_local10 + _local11);
K2.col1.x = ((_local12 * _local7) * _local7);
K2.col2.x = ((-(_local12) * _local6) * _local7);
K2.col1.y = ((-(_local12) * _local6) * _local7);
K2.col2.y = ((_local12 * _local6) * _local6);
K3.col1.x = ((_local13 * _local9) * _local9);
K3.col2.x = ((-(_local13) * _local8) * _local9);
K3.col1.y = ((-(_local13) * _local8) * _local9);
K3.col2.y = ((_local13 * _local8) * _local8);
K.SetM(K1);
K.AddM(K2);
K.AddM(K3);
K.Invert(m_pivotMass);
m_motorMass = (1 / (_local12 + _local13));
if (m_enableMotor == false){
m_motorForce = 0;
};
if (m_enableLimit){
_local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle);
if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){
m_limitState = e_equalLimits;
} else {
if (_local14 <= m_lowerAngle){
if (m_limitState != e_atLowerLimit){
m_limitForce = 0;
};
m_limitState = e_atLowerLimit;
} else {
if (_local14 >= m_upperAngle){
if (m_limitState != e_atUpperLimit){
m_limitForce = 0;
};
m_limitState = e_atUpperLimit;
} else {
m_limitState = e_inactiveLimit;
m_limitForce = 0;
};
};
};
} else {
m_limitForce = 0;
};
if (_arg1.warmStarting){
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y));
_local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce)));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce)));
} else {
m_pivotForce.SetZero();
m_motorForce = 0;
m_limitForce = 0;
};
m_limitPositionImpulse = 0;
}
override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{
var _local4:b2Mat22;
var _local5:Number;
var _local10:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local2:b2Body = m_body1;
var _local3:b2Body = m_body2;
_local4 = _local2.m_xf.R;
var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x);
var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y);
_local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7));
_local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7));
_local6 = _local5;
_local4 = _local3.m_xf.R;
var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x);
var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y);
_local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9));
_local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9));
_local8 = _local5;
var _local11:Number = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7));
var _local12:Number = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6));
var _local13:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12)));
var _local14:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12)));
m_pivotForce.x = (m_pivotForce.x + _local13);
m_pivotForce.y = (m_pivotForce.y + _local14);
var _local15:Number = (_arg1.dt * _local13);
var _local16:Number = (_arg1.dt * _local14);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16));
_local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15))));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16));
_local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15))));
if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){
_local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed);
_local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17);
_local19 = m_motorForce;
m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque);
_local18 = (m_motorForce - _local19);
_local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18));
};
if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){
_local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity);
_local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20);
if (m_limitState == e_equalLimits){
m_limitForce = (m_limitForce + _local21);
} else {
if (m_limitState == e_atLowerLimit){
_local10 = m_limitForce;
m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0);
_local21 = (m_limitForce - _local10);
} else {
if (m_limitState == e_atUpperLimit){
_local10 = m_limitForce;
m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0);
_local21 = (m_limitForce - _local10);
};
};
};
_local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21));
};
}
override public function SolvePositionConstraints():Boolean{
var _local1:Number;
var _local2:Number;
var _local6:b2Mat22;
var _local25:Number;
var _local26:Number;
var _local3:b2Body = m_body1;
var _local4:b2Body = m_body2;
var _local5:Number = 0;
_local6 = _local3.m_xf.R;
var _local7:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x);
var _local8:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y);
var _local9:Number = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8));
_local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8));
_local7 = _local9;
_local6 = _local4.m_xf.R;
var _local10:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x);
var _local11:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y);
_local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11));
_local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11));
_local10 = _local9;
var _local12:Number = (_local3.m_sweep.c.x + _local7);
var _local13:Number = (_local3.m_sweep.c.y + _local8);
var _local14:Number = (_local4.m_sweep.c.x + _local10);
var _local15:Number = (_local4.m_sweep.c.y + _local11);
var _local16:Number = (_local14 - _local12);
var _local17:Number = (_local15 - _local13);
_local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17)));
var _local18:Number = _local3.m_invMass;
var _local19:Number = _local4.m_invMass;
var _local20:Number = _local3.m_invI;
var _local21:Number = _local4.m_invI;
K1.col1.x = (_local18 + _local19);
K1.col2.x = 0;
K1.col1.y = 0;
K1.col2.y = (_local18 + _local19);
K2.col1.x = ((_local20 * _local8) * _local8);
K2.col2.x = ((-(_local20) * _local7) * _local8);
K2.col1.y = ((-(_local20) * _local7) * _local8);
K2.col2.y = ((_local20 * _local7) * _local7);
K3.col1.x = ((_local21 * _local11) * _local11);
K3.col2.x = ((-(_local21) * _local10) * _local11);
K3.col1.y = ((-(_local21) * _local10) * _local11);
K3.col2.y = ((_local21 * _local10) * _local10);
K.SetM(K1);
K.AddM(K2);
K.AddM(K3);
K.Solve(tImpulse, -(_local16), -(_local17));
var _local22:Number = tImpulse.x;
var _local23:Number = tImpulse.y;
_local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22));
_local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23));
_local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22))));
_local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22));
_local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23));
_local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22))));
_local3.SynchronizeTransform();
_local4.SynchronizeTransform();
var _local24:Number = 0;
if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){
_local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_referenceAngle);
_local26 = 0;
if (m_limitState == e_equalLimits){
_local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection);
_local26 = (-(m_motorMass) * _local2);
_local24 = b2Math.b2Abs(_local2);
} else {
if (m_limitState == e_atLowerLimit){
_local2 = (_local25 - m_lowerAngle);
_local24 = b2Math.b2Max(0, -(_local2));
_local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0);
_local26 = (-(m_motorMass) * _local2);
_local1 = m_limitPositionImpulse;
m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0);
_local26 = (m_limitPositionImpulse - _local1);
} else {
if (m_limitState == e_atUpperLimit){
_local2 = (_local25 - m_upperAngle);
_local24 = b2Math.b2Max(0, _local2);
_local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection);
_local26 = (-(m_motorMass) * _local2);
_local1 = m_limitPositionImpulse;
m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0);
_local26 = (m_limitPositionImpulse - _local1);
};
};
};
_local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26));
_local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26));
_local3.SynchronizeTransform();
_local4.SynchronizeTransform();
};
return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop))));
}
}
}//package Box2D.Dynamics.Joints
Section 64
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef)
package Box2D.Dynamics.Joints {
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
public class b2RevoluteJointDef extends b2JointDef {
public var localAnchor1:b2Vec2;
public var localAnchor2:b2Vec2;
public var referenceAngle:Number;
public var enableLimit:Boolean;
public var lowerAngle:Number;
public var upperAngle:Number;
public var enableMotor:Boolean;
public var motorSpeed:Number;
public var maxMotorTorque:Number;
public function b2RevoluteJointDef(){
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 65
//b2Body (Box2D.Dynamics.b2Body)
package Box2D.Dynamics {
import Box2D.Common.Math.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import Box2D.Dynamics.Contacts.*;
public class b2Body {
public var b_collisions;// = true
public var m_gravity_vector;
public var m_flags:uint;
public var m_type:int;
public var m_xf:b2XForm;
public var m_sweep:b2Sweep;
public var m_linearVelocity:b2Vec2;
public var m_angularVelocity:Number;
public var m_force:b2Vec2;
public var m_torque:Number;
public var m_world:b2World;
public var m_prev:b2Body;
public var m_next:b2Body;
public var m_shapeList:b2Shape;
public var m_shapeCount:int;
public var m_jointList:b2JointEdge;
public var m_contactList:b2ContactEdge;
public var m_mass:Number;
public var m_invMass:Number;
public var m_I:Number;
public var m_invI:Number;
public var m_linearDamping:Number;
public var m_angularDamping:Number;
public var m_sleepTime:Number;
public var m_userData;
private static var s_massData:b2MassData = new b2MassData();
private static var s_xf1:b2XForm = new b2XForm();
public static var e_frozenFlag:uint = 2;
public static var e_islandFlag:uint = 4;
public static var e_sleepFlag:uint = 8;
public static var e_allowSleepFlag:uint = 16;
public static var e_bulletFlag:uint = 32;
public static var e_fixedRotationFlag:uint = 64;
public static var e_staticType:uint = 1;
public static var e_dynamicType:uint = 2;
public static var e_maxTypes:uint = 3;
public function b2Body(_arg1:b2BodyDef, _arg2:b2World){
m_gravity_vector = new b2Vec2(0, 1);
m_xf = new b2XForm();
m_sweep = new b2Sweep();
m_linearVelocity = new b2Vec2();
m_force = new b2Vec2();
super();
m_flags = 0;
if (_arg1.isBullet){
m_flags = (m_flags | e_bulletFlag);
};
if (_arg1.fixedRotation){
m_flags = (m_flags | e_fixedRotationFlag);
};
if (_arg1.allowSleep){
m_flags = (m_flags | e_allowSleepFlag);
};
if (_arg1.isSleeping){
m_flags = (m_flags | e_sleepFlag);
};
m_world = _arg2;
m_xf.position.SetV(_arg1.position);
m_xf.R.Set(_arg1.angle);
m_sweep.localCenter.SetV(_arg1.massData.center);
m_sweep.t0 = 1;
m_sweep.a0 = (m_sweep.a = _arg1.angle);
var _local3:b2Mat22 = m_xf.R;
var _local4:b2Vec2 = m_sweep.localCenter;
m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y));
m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y));
m_sweep.c.x = (m_sweep.c.x + m_xf.position.x);
m_sweep.c.y = (m_sweep.c.y + m_xf.position.y);
m_sweep.c0.SetV(m_sweep.c);
m_jointList = null;
m_contactList = null;
m_prev = null;
m_next = null;
m_linearDamping = _arg1.linearDamping;
m_angularDamping = _arg1.angularDamping;
m_force.Set(0, 0);
m_torque = 0;
m_linearVelocity.SetZero();
m_angularVelocity = 0;
m_sleepTime = 0;
m_invMass = 0;
m_I = 0;
m_invI = 0;
m_mass = _arg1.massData.mass;
if (m_mass > 0){
m_invMass = (1 / m_mass);
};
if ((m_flags & b2Body.e_fixedRotationFlag) == 0){
m_I = _arg1.massData.I;
};
if (m_I > 0){
m_invI = (1 / m_I);
};
if ((((m_invMass == 0)) && ((m_invI == 0)))){
m_type = e_staticType;
} else {
m_type = e_dynamicType;
};
m_userData = _arg1.userData;
m_shapeList = null;
m_shapeCount = 0;
}
public function CreateShape(_arg1:b2ShapeDef):b2Shape{
if (m_world.m_lock == true){
return (null);
};
var _local2:b2Shape = 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 DestroyShape(_arg1:b2Shape):void{
if (m_world.m_lock == true){
return;
};
_arg1.DestroyProxy(m_world.m_broadPhase);
var _local2:b2Shape = m_shapeList;
var _local3:b2Shape;
var _local4:Boolean;
while (_local2 != null) {
if (_local2 == _arg1){
if (_local3){
_local3.m_next = _arg1.m_next;
} else {
m_shapeList = _arg1.m_next;
};
_local4 = true;
break;
};
_local3 = _local2;
_local2 = _local2.m_next;
};
_arg1.m_body = null;
_arg1.m_next = null;
m_shapeCount--;
b2Shape.Destroy(_arg1, m_world.m_blockAllocator);
}
public function SetMass(_arg1:b2MassData):void{
var _local2:b2Shape;
var _local3:b2Mat22;
if (m_world.m_lock == true){
return;
};
m_invMass = 0;
m_I = 0;
m_invI = 0;
m_mass = _arg1.mass;
if (m_mass > 0){
m_invMass = (1 / m_mass);
};
if ((m_flags & b2Body.e_fixedRotationFlag) == 0){
m_I = _arg1.I;
};
if (m_I > 0){
m_invI = (1 / m_I);
};
m_sweep.localCenter.SetV(_arg1.center);
_local3 = m_xf.R;
var _local4:b2Vec2 = m_sweep.localCenter;
m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y));
m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y));
m_sweep.c.x = (m_sweep.c.x + m_xf.position.x);
m_sweep.c.y = (m_sweep.c.y + m_xf.position.y);
m_sweep.c0.SetV(m_sweep.c);
_local2 = m_shapeList;
while (_local2) {
_local2.UpdateSweepRadius(m_sweep.localCenter);
_local2 = _local2.m_next;
};
var _local5:int = m_type;
if ((((m_invMass == 0)) && ((m_invI == 0)))){
m_type = e_staticType;
} else {
m_type = e_dynamicType;
};
if (_local5 != m_type){
_local2 = m_shapeList;
while (_local2) {
_local2.RefilterProxy(m_world.m_broadPhase, m_xf);
_local2 = _local2.m_next;
};
};
}
public function SetMassFromShapes():void{
var _local1:b2Shape;
if (m_world.m_lock == true){
return;
};
m_mass = 0;
m_invMass = 0;
m_I = 0;
m_invI = 0;
var _local2:Number = 0;
var _local3:Number = 0;
var _local4:b2MassData = s_massData;
_local1 = m_shapeList;
while (_local1) {
_local1.ComputeMass(_local4);
m_mass = (m_mass + _local4.mass);
_local2 = (_local2 + (_local4.mass * _local4.center.x));
_local3 = (_local3 + (_local4.mass * _local4.center.y));
m_I = (m_I + _local4.I);
_local1 = _local1.m_next;
};
if (m_mass > 0){
m_invMass = (1 / m_mass);
_local2 = (_local2 * m_invMass);
_local3 = (_local3 * m_invMass);
};
if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){
m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3))));
m_invI = (1 / m_I);
} else {
m_I = 0;
m_invI = 0;
};
m_sweep.localCenter.Set(_local2, _local3);
var _local5:b2Mat22 = m_xf.R;
var _local6:b2Vec2 = m_sweep.localCenter;
m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y));
m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y));
m_sweep.c.x = (m_sweep.c.x + m_xf.position.x);
m_sweep.c.y = (m_sweep.c.y + m_xf.position.y);
m_sweep.c0.SetV(m_sweep.c);
_local1 = m_shapeList;
while (_local1) {
_local1.UpdateSweepRadius(m_sweep.localCenter);
_local1 = _local1.m_next;
};
var _local7:int = m_type;
if ((((m_invMass == 0)) && ((m_invI == 0)))){
m_type = e_staticType;
} else {
m_type = e_dynamicType;
};
if (_local7 != m_type){
_local1 = m_shapeList;
while (_local1) {
_local1.RefilterProxy(m_world.m_broadPhase, m_xf);
_local1 = _local1.m_next;
};
};
}
public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{
var _local3:b2Shape;
var _local7:Boolean;
if (m_world.m_lock == true){
return (true);
};
if (IsFrozen()){
return (false);
};
m_xf.R.Set(_arg2);
m_xf.position.SetV(_arg1);
var _local4:b2Mat22 = m_xf.R;
var _local5:b2Vec2 = m_sweep.localCenter;
m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y));
m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y));
m_sweep.c.x = (m_sweep.c.x + m_xf.position.x);
m_sweep.c.y = (m_sweep.c.y + m_xf.position.y);
m_sweep.c0.SetV(m_sweep.c);
m_sweep.a0 = (m_sweep.a = _arg2);
var _local6:Boolean;
_local3 = m_shapeList;
while (_local3) {
_local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf);
if (_local7 == false){
_local6 = true;
break;
};
_local3 = _local3.m_next;
};
if (_local6 == true){
m_flags = (m_flags | e_frozenFlag);
m_linearVelocity.SetZero();
m_angularVelocity = 0;
_local3 = m_shapeList;
while (_local3) {
_local3.DestroyProxy(m_world.m_broadPhase);
_local3 = _local3.m_next;
};
return (false);
};
m_world.m_broadPhase.Commit();
return (true);
}
public function GetXForm():b2XForm{
return (m_xf);
}
public function GetPosition():b2Vec2{
return (m_xf.position);
}
public function GetAngle():Number{
return (m_sweep.a);
}
public function GetWorldCenter():b2Vec2{
return (m_sweep.c);
}
public function GetLocalCenter():b2Vec2{
return (m_sweep.localCenter);
}
public function SetLinearVelocity(_arg1:b2Vec2):void{
m_linearVelocity.SetV(_arg1);
}
public function GetLinearVelocity():b2Vec2{
return (m_linearVelocity);
}
public function SetAngularVelocity(_arg1:Number):void{
m_angularVelocity = _arg1;
}
public function GetAngularVelocity():Number{
return (m_angularVelocity);
}
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 ApplyTorque(_arg1:Number):void{
if (IsSleeping()){
WakeUp();
};
m_torque = (m_torque + _arg1);
}
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 GetMass():Number{
return (m_mass);
}
public function GetInertia():Number{
return (m_I);
}
public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{
var _local2:b2Mat22 = m_xf.R;
var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y)));
_local3.x = (_local3.x + m_xf.position.x);
_local3.y = (_local3.y + m_xf.position.y);
return (_local3);
}
public function GetWorldVector(_arg1:b2Vec2):b2Vec2{
return (b2Math.b2MulMV(m_xf.R, _arg1));
}
public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{
return (b2Math.b2MulXT(m_xf, _arg1));
}
public function GetLocalVector(_arg1:b2Vec2):b2Vec2{
return (b2Math.b2MulTMV(m_xf.R, _arg1));
}
public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{
return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_arg1.x - m_sweep.c.x)))));
}
public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{
var _local2:b2Mat22 = m_xf.R;
var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y)));
_local3.x = (_local3.x + m_xf.position.x);
_local3.y = (_local3.y + m_xf.position.y);
return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_local3.x - m_sweep.c.x)))));
}
public function IsBullet():Boolean{
return (((m_flags & e_bulletFlag) == e_bulletFlag));
}
public function SetBullet(_arg1:Boolean):void{
if (_arg1){
m_flags = (m_flags | e_bulletFlag);
} else {
m_flags = (m_flags & ~(e_bulletFlag));
};
}
public function IsStatic():Boolean{
return ((m_type == e_staticType));
}
public function IsDynamic():Boolean{
return ((m_type == e_dynamicType));
}
public function IsFrozen():Boolean{
return (((m_flags & e_frozenFlag) == e_frozenFlag));
}
public function IsSleeping():Boolean{
return (((m_flags & e_sleepFlag) == e_sleepFlag));
}
public function AllowSleeping(_arg1:Boolean):void{
if (_arg1){
m_flags = (m_flags | e_allowSleepFlag);
} else {
m_flags = (m_flags & ~(e_allowSleepFlag));
WakeUp();
};
}
public function WakeUp():void{
m_flags = (m_flags & ~(e_sleepFlag));
m_sleepTime = 0;
}
public function PutToSleep():void{
m_flags = (m_flags | e_sleepFlag);
m_sleepTime = 0;
m_linearVelocity.SetZero();
m_angularVelocity = 0;
m_force.SetZero();
m_torque = 0;
}
public function GetShapeList():b2Shape{
return (m_shapeList);
}
public function GetJointList():b2JointEdge{
return (m_jointList);
}
public function GetNext():b2Body{
return (m_next);
}
public function GetUserData(){
return (m_userData);
}
public function SetUserData(_arg1):void{
m_userData = _arg1;
}
public function GetWorld():b2World{
return (m_world);
}
public function SynchronizeShapes():Boolean{
var _local4:b2Shape;
var _local1:b2XForm = s_xf1;
_local1.R.Set(m_sweep.a0);
var _local2:b2Mat22 = _local1.R;
var _local3:b2Vec2 = m_sweep.localCenter;
_local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y)));
_local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y)));
var _local5:Boolean;
_local4 = m_shapeList;
while (_local4) {
_local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf);
if (_local5 == false){
break;
};
_local4 = _local4.m_next;
};
if (_local5 == false){
m_flags = (m_flags | e_frozenFlag);
m_linearVelocity.SetZero();
m_angularVelocity = 0;
_local4 = m_shapeList;
while (_local4) {
_local4.DestroyProxy(m_world.m_broadPhase);
_local4 = _local4.m_next;
};
return (false);
};
return (true);
}
public function SynchronizeTransform():void{
m_xf.R.Set(m_sweep.a);
var _local1:b2Mat22 = m_xf.R;
var _local2:b2Vec2 = m_sweep.localCenter;
m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y)));
m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y)));
}
public function IsConnected(_arg1:b2Body):Boolean{
var _local2:b2JointEdge = m_jointList;
while (_local2) {
if (_local2.other == _arg1){
return ((_local2.joint.m_collideConnected == false));
};
_local2 = _local2.next;
};
return (false);
}
public function Advance(_arg1:Number):void{
m_sweep.Advance(_arg1);
m_sweep.c.SetV(m_sweep.c0);
m_sweep.a = m_sweep.a0;
SynchronizeTransform();
}
}
}//package Box2D.Dynamics
Section 66
//b2BodyDef (Box2D.Dynamics.b2BodyDef)
package Box2D.Dynamics {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Dynamics.Contacts.*;
public class b2BodyDef {
public var massData:b2MassData;
public var userData;
public var position:b2Vec2;
public var angle:Number;
public var linearDamping:Number;
public var angularDamping:Number;
public var allowSleep:Boolean;
public var isSleeping:Boolean;
public var fixedRotation:Boolean;
public var isBullet:Boolean;
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 67
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener)
package Box2D.Dynamics {
public class b2BoundaryListener {
public function Violation(_arg1:b2Body):void{
}
}
}//package Box2D.Dynamics
Section 68
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter)
package Box2D.Dynamics {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import Box2D.Dynamics.Contacts.*;
public class b2ContactFilter {
public static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter);
;
public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{
var _local3:b2FilterData = _arg1.GetFilterData();
var _local4:b2FilterData = _arg2.GetFilterData();
if ((((((_local3.m_type == 1)) && ((_local4.m_type == 2)))) || ((((_local4.m_type == 1)) && ((_local3.m_type == 2)))))){
return (false);
};
if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){
return ((_local3.groupIndex > 0));
};
var _local5:Boolean = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0))));
return (_local5);
}
}
}//package Box2D.Dynamics
Section 69
//b2ContactListener (Box2D.Dynamics.b2ContactListener)
package Box2D.Dynamics {
import Box2D.Collision.*;
import Box2D.Dynamics.Contacts.*;
public class b2ContactListener {
public function Add(_arg1:b2ContactPoint):void{
}
public function Persist(_arg1:b2ContactPoint):void{
}
public function Remove(_arg1:b2ContactPoint):void{
}
public function Result(_arg1:b2ContactResult):void{
}
}
}//package Box2D.Dynamics
Section 70
//b2ContactManager (Box2D.Dynamics.b2ContactManager)
package Box2D.Dynamics {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import Box2D.Dynamics.Contacts.*;
public class b2ContactManager extends b2PairCallback {
public var m_world:b2World;
public var m_nullContact:b2NullContact;
public var m_destroyImmediate:Boolean;
private static const s_evalCP:b2ContactPoint = new b2ContactPoint();
public function b2ContactManager(){
m_nullContact = new b2NullContact();
super();
m_world = null;
m_destroyImmediate = false;
}
override public function PairAdded(_arg1, _arg2){
var _local3:b2Shape = (_arg1 as b2Shape);
var _local4:b2Shape = (_arg2 as b2Shape);
var _local5:b2Body = _local3.m_body;
var _local6:b2Body = _local4.m_body;
if ((((_local5.b_collisions == false)) || ((_local6.b_collisions == false)))){
return (m_nullContact);
};
if (((_local5.IsStatic()) && (_local6.IsStatic()))){
return (m_nullContact);
};
if (_local3.m_body == _local4.m_body){
return (m_nullContact);
};
if (_local6.IsConnected(_local5)){
return (m_nullContact);
};
if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){
return (m_nullContact);
};
var _local7:b2Contact = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator);
if (_local7 == null){
return (m_nullContact);
};
_local3 = _local7.m_shape1;
_local4 = _local7.m_shape2;
_local5 = _local3.m_body;
_local6 = _local4.m_body;
_local7.m_prev = null;
_local7.m_next = m_world.m_contactList;
if (m_world.m_contactList != null){
m_world.m_contactList.m_prev = _local7;
};
m_world.m_contactList = _local7;
_local7.m_node1.contact = _local7;
_local7.m_node1.other = _local6;
_local7.m_node1.prev = null;
_local7.m_node1.next = _local5.m_contactList;
if (_local5.m_contactList != null){
_local5.m_contactList.prev = _local7.m_node1;
};
_local5.m_contactList = _local7.m_node1;
_local7.m_node2.contact = _local7;
_local7.m_node2.other = _local5;
_local7.m_node2.prev = null;
_local7.m_node2.next = _local6.m_contactList;
if (_local6.m_contactList != null){
_local6.m_contactList.prev = _local7.m_node2;
};
_local6.m_contactList = _local7.m_node2;
m_world.m_contactCount++;
return (_local7);
}
override public function PairRemoved(_arg1, _arg2, _arg3):void{
if (_arg3 == null){
return;
};
var _local4:b2Contact = (_arg3 as b2Contact);
if (_local4 == m_nullContact){
return;
};
Destroy(_local4);
}
public function Destroy(_arg1:b2Contact):void{
var _local7:b2Body;
var _local8:b2Body;
var _local9:Array;
var _local10:b2ContactPoint;
var _local11:int;
var _local12:b2Manifold;
var _local13:int;
var _local14:b2ManifoldPoint;
var _local15:b2Vec2;
var _local16:b2Vec2;
var _local2:b2Shape = _arg1.m_shape1;
var _local3:b2Shape = _arg1.m_shape2;
var _local4:int = _arg1.m_manifoldCount;
if ((((_local4 > 0)) && (m_world.m_contactListener))){
_local7 = _local2.m_body;
_local8 = _local3.m_body;
_local9 = _arg1.GetManifolds();
_local10 = s_evalCP;
_local10.shape1 = _arg1.m_shape1;
_local10.shape2 = _arg1.m_shape1;
_local10.friction = _arg1.m_friction;
_local10.restitution = _arg1.m_restitution;
_local11 = 0;
while (_local11 < _local4) {
_local12 = _local9[_local11];
_local10.normal.SetV(_local12.normal);
_local13 = 0;
while (_local13 < _local12.pointCount) {
_local14 = _local12.points[_local13];
_local10.position = _local7.GetWorldPoint(_local14.localPoint1);
_local15 = _local7.GetLinearVelocityFromLocalPoint(_local14.localPoint1);
_local16 = _local8.GetLinearVelocityFromLocalPoint(_local14.localPoint2);
_local10.velocity.Set((_local16.x - _local15.x), (_local16.y - _local15.y));
_local10.separation = _local14.separation;
_local10.id.key = _local14.id._key;
m_world.m_contactListener.Remove(_local10);
_local13++;
};
_local11++;
};
};
if (_arg1.m_prev){
_arg1.m_prev.m_next = _arg1.m_next;
};
if (_arg1.m_next){
_arg1.m_next.m_prev = _arg1.m_prev;
};
if (_arg1 == m_world.m_contactList){
m_world.m_contactList = _arg1.m_next;
};
var _local5:b2Body = _local2.m_body;
var _local6:b2Body = _local3.m_body;
if (_arg1.m_node1.prev){
_arg1.m_node1.prev.next = _arg1.m_node1.next;
};
if (_arg1.m_node1.next){
_arg1.m_node1.next.prev = _arg1.m_node1.prev;
};
if (_arg1.m_node1 == _local5.m_contactList){
_local5.m_contactList = _arg1.m_node1.next;
};
if (_arg1.m_node2.prev){
_arg1.m_node2.prev.next = _arg1.m_node2.next;
};
if (_arg1.m_node2.next){
_arg1.m_node2.next.prev = _arg1.m_node2.prev;
};
if (_arg1.m_node2 == _local6.m_contactList){
_local6.m_contactList = _arg1.m_node2.next;
};
b2Contact.Destroy(_arg1, m_world.m_blockAllocator);
m_world.m_contactCount--;
}
public function Collide():void{
var _local2:b2Body;
var _local3:b2Body;
var _local1:b2Contact = m_world.m_contactList;
while (_local1) {
_local2 = _local1.m_shape1.m_body;
_local3 = _local1.m_shape2.m_body;
if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){
} else {
_local1.Update(m_world.m_contactListener);
};
_local1 = _local1.m_next;
};
}
}
}//package Box2D.Dynamics
Section 71
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw)
package Box2D.Dynamics {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import Box2D.Dynamics.Contacts.*;
import flash.display.*;
public class b2DebugDraw {
public var m_drawFlags:uint;
public var m_sprite:Sprite;
public var m_drawScale:Number;// = 1
public var m_lineThickness:Number;// = 1
public var m_alpha:Number;// = 1
public var m_fillAlpha:Number;// = 1
public var m_xformScale:Number;// = 1
public static var e_shapeBit:uint = 1;
public static var e_jointBit:uint = 2;
public static var e_coreShapeBit:uint = 4;
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_centerOfMassBit:uint = 64;
public function b2DebugDraw(){
m_drawFlags = 0;
}
public function SetFlags(_arg1:uint):void{
m_drawFlags = _arg1;
}
public function GetFlags():uint{
return (m_drawFlags);
}
public function AppendFlags(_arg1:uint):void{
m_drawFlags = (m_drawFlags | _arg1);
}
public function ClearFlags(_arg1:uint):void{
m_drawFlags = (m_drawFlags & ~(_arg1));
}
public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{
m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha);
m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale));
var _local4 = 1;
while (_local4 < _arg2) {
m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale));
_local4++;
};
m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale));
}
public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{
m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha);
m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale));
m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha);
var _local4 = 1;
while (_local4 < _arg2) {
m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale));
_local4++;
};
m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale));
m_sprite.graphics.endFill();
}
public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{
m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha);
m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale));
}
public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{
m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha);
m_sprite.graphics.moveTo(0, 0);
m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha);
m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale));
m_sprite.graphics.endFill();
m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale));
m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale));
}
public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{
m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha);
m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale));
m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale));
}
public function DrawXForm(_arg1:b2XForm):void{
m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha);
m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale));
m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale));
m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha);
m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale));
m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale));
}
}
}//package Box2D.Dynamics
Section 72
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener)
package Box2D.Dynamics {
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
public class b2DestructionListener {
public function SayGoodbyeJoint(_arg1:b2Joint):void{
}
public function SayGoodbyeShape(_arg1:b2Shape):void{
}
}
}//package Box2D.Dynamics
Section 73
//b2Island (Box2D.Dynamics.b2Island)
package Box2D.Dynamics {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Common.*;
import Box2D.Dynamics.Contacts.*;
public class b2Island {
public var m_allocator;
public var m_listener:b2ContactListener;
public var m_bodies:Array;
public var m_contacts:Array;
public var m_joints:Array;
public var m_bodyCount:int;
public var m_jointCount:int;
public var m_contactCount:int;
public var m_bodyCapacity:int;
public var m_contactCapacity:int;
public var m_jointCapacity:int;
public var m_positionIterationCount:int;
private static var s_reportCR:b2ContactResult = new b2ContactResult();
public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener){
var _local6:int;
super();
m_bodyCapacity = _arg1;
m_contactCapacity = _arg2;
m_jointCapacity = _arg3;
m_bodyCount = 0;
m_contactCount = 0;
m_jointCount = 0;
m_allocator = _arg4;
m_listener = _arg5;
m_bodies = new Array(_arg1);
_local6 = 0;
while (_local6 < _arg1) {
m_bodies[_local6] = null;
_local6++;
};
m_contacts = new Array(_arg2);
_local6 = 0;
while (_local6 < _arg2) {
m_contacts[_local6] = null;
_local6++;
};
m_joints = new Array(_arg3);
_local6 = 0;
while (_local6 < _arg3) {
m_joints[_local6] = null;
_local6++;
};
m_positionIterationCount = 0;
}
public function Clear():void{
m_bodyCount = 0;
m_contactCount = 0;
m_jointCount = 0;
}
public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{
var _local5:int;
var _local6:b2Body;
var _local7:b2Joint;
var _local8:*;
var _local10:int;
var _local11:Boolean;
var _local12:Boolean;
var _local13:Boolean;
var _local14:Number;
var _local15:Number;
var _local16:Number;
_local8 = new b2Vec2();
_local5 = 0;
while (_local5 < m_bodyCount) {
_local6 = m_bodies[_local5];
if (_local6.IsStatic()){
} else {
_local8.x = (_arg2.x * _local6.m_gravity_vector.x);
_local8.y = (_arg2.y * _local6.m_gravity_vector.y);
_local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_local8.x + (_local6.m_invMass * _local6.m_force.x))));
_local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_local8.y + (_local6.m_invMass * _local6.m_force.y))));
_local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque));
_local6.m_force.SetZero();
_local6.m_torque = 0;
_local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1));
_local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1));
if (_local6.m_linearVelocity.LengthSquared() > b2Settings.b2_maxLinearVelocitySquared){
_local6.m_linearVelocity.Normalize();
_local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * b2Settings.b2_maxLinearVelocity);
_local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * b2Settings.b2_maxLinearVelocity);
};
if ((_local6.m_angularVelocity * _local6.m_angularVelocity) > b2Settings.b2_maxAngularVelocitySquared){
if (_local6.m_angularVelocity < 0){
_local6.m_angularVelocity = -(b2Settings.b2_maxAngularVelocity);
} else {
_local6.m_angularVelocity = b2Settings.b2_maxAngularVelocity;
};
};
};
_local5++;
};
var _local9:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator);
_local9.InitVelocityConstraints(_arg1);
_local5 = 0;
while (_local5 < m_jointCount) {
_local7 = m_joints[_local5];
_local7.InitVelocityConstraints(_arg1);
_local5++;
};
_local5 = 0;
while (_local5 < _arg1.maxIterations) {
_local9.SolveVelocityConstraints();
_local10 = 0;
while (_local10 < m_jointCount) {
_local7 = m_joints[_local10];
_local7.SolveVelocityConstraints(_arg1);
_local10++;
};
_local5++;
};
_local9.FinalizeVelocityConstraints();
_local5 = 0;
while (_local5 < m_bodyCount) {
_local6 = m_bodies[_local5];
if (_local6.IsStatic()){
} else {
_local6.m_sweep.c0.SetV(_local6.m_sweep.c);
_local6.m_sweep.a0 = _local6.m_sweep.a;
_local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_arg1.dt * _local6.m_linearVelocity.x));
_local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_arg1.dt * _local6.m_linearVelocity.y));
_local6.m_sweep.a = (_local6.m_sweep.a + (_arg1.dt * _local6.m_angularVelocity));
_local6.SynchronizeTransform();
};
_local5++;
};
if (_arg3){
_local5 = 0;
while (_local5 < m_jointCount) {
_local7 = m_joints[_local5];
_local7.InitPositionConstraints();
_local5++;
};
m_positionIterationCount = 0;
while (m_positionIterationCount < _arg1.maxIterations) {
_local11 = _local9.SolvePositionConstraints(b2Settings.b2_contactBaumgarte);
_local12 = true;
_local5 = 0;
while (_local5 < m_jointCount) {
_local7 = m_joints[_local5];
_local13 = _local7.SolvePositionConstraints();
_local12 = ((_local12) && (_local13));
_local5++;
};
if (((_local11) && (_local12))){
break;
};
m_positionIterationCount++;
};
};
Report(_local9.m_constraints);
if (_arg4){
_local14 = Number.MAX_VALUE;
_local15 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance);
_local16 = (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;
_local14 = 0;
};
if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local16)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local15)))){
_local6.m_sleepTime = 0;
_local14 = 0;
} else {
_local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt);
_local14 = b2Math.b2Min(_local14, _local6.m_sleepTime);
};
};
_local5++;
};
if (_local14 >= 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 SolveTOI(_arg1:b2TimeStep):void{
var _local2:int;
var _local5:b2Body;
var _local6:Boolean;
var _local3:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator);
_local2 = 0;
while (_local2 < _arg1.maxIterations) {
_local3.SolveVelocityConstraints();
_local2++;
};
_local2 = 0;
while (_local2 < m_bodyCount) {
_local5 = m_bodies[_local2];
if (_local5.IsStatic()){
} else {
_local5.m_sweep.c0.SetV(_local5.m_sweep.c);
_local5.m_sweep.a0 = _local5.m_sweep.a;
_local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x));
_local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y));
_local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity));
_local5.SynchronizeTransform();
};
_local2++;
};
var _local4:Number = 0.75;
_local2 = 0;
while (_local2 < _arg1.maxIterations) {
_local6 = _local3.SolvePositionConstraints(_local4);
if (_local6){
break;
};
_local2++;
};
Report(_local3.m_constraints);
}
public function Report(_arg1:Array):void{
var _local2:b2Mat22;
var _local3:b2Vec2;
var _local5:b2Contact;
var _local6:b2ContactConstraint;
var _local7:b2ContactResult;
var _local8:b2Body;
var _local9:int;
var _local10:Array;
var _local11:int;
var _local12:b2Manifold;
var _local13:int;
var _local14:b2ManifoldPoint;
var _local15:b2ContactConstraintPoint;
if (m_listener == null){
return;
};
var _local4:int;
while (_local4 < m_contactCount) {
_local5 = m_contacts[_local4];
_local6 = _arg1[_local4];
_local7 = s_reportCR;
_local7.shape1 = _local5.m_shape1;
_local7.shape2 = _local5.m_shape2;
_local8 = _local7.shape1.m_body;
_local9 = _local5.m_manifoldCount;
_local10 = _local5.GetManifolds();
_local11 = 0;
while (_local11 < _local9) {
_local12 = _local10[_local11];
_local7.normal.SetV(_local12.normal);
_local13 = 0;
while (_local13 < _local12.pointCount) {
_local14 = _local12.points[_local13];
_local15 = _local6.points[_local13];
_local7.position = _local8.GetWorldPoint(_local14.localPoint1);
_local7.normalImpulse = _local15.normalImpulse;
_local7.tangentImpulse = _local15.tangentImpulse;
_local7.id.key = _local14.id.key;
m_listener.Result(_local7);
_local13++;
};
_local11++;
};
_local4++;
};
}
public function AddBody(_arg1:b2Body):void{
var _local2 = m_bodyCount++;
m_bodies[_local2] = _arg1;
}
public function AddContact(_arg1:b2Contact):void{
var _local2 = m_contactCount++;
m_contacts[_local2] = _arg1;
}
public function AddJoint(_arg1:b2Joint):void{
var _local2 = m_jointCount++;
m_joints[_local2] = _arg1;
}
}
}//package Box2D.Dynamics
Section 74
//b2TimeStep (Box2D.Dynamics.b2TimeStep)
package Box2D.Dynamics {
public class b2TimeStep {
public var dt:Number;
public var inv_dt:Number;
public var dtRatio:Number;
public var maxIterations:int;
public var warmStarting:Boolean;
public var positionCorrection:Boolean;
}
}//package Box2D.Dynamics
Section 75
//b2World (Box2D.Dynamics.b2World)
package Box2D.Dynamics {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import Box2D.Dynamics.Contacts.*;
public class b2World {
public var m_blockAllocator;
public var m_stackAllocator;
public var m_lock:Boolean;
public var m_broadPhase:b2BroadPhase;
public var m_contactManager:b2ContactManager;
public var m_bodyList:b2Body;
public var m_jointList:b2Joint;
public var m_contactList:b2Contact;
public var m_bodyCount:int;
public var m_contactCount:int;
public var m_jointCount:int;
public var m_gravity:b2Vec2;
public var m_allowSleep:Boolean;
public var m_groundBody:b2Body;
public var m_destructionListener:b2DestructionListener;
public var m_boundaryListener:b2BoundaryListener;
public var m_contactFilter:b2ContactFilter;
public var m_contactListener:b2ContactListener;
public var m_debugDraw:b2DebugDraw;
public var m_inv_dt0:Number;
public var m_positionIterationCount:int;
private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8);
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 m_positionCorrection:Boolean;
public static var m_warmStarting:Boolean;
public static var m_continuousPhysics:Boolean;
public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){
m_contactManager = new b2ContactManager();
super();
m_destructionListener = null;
m_boundaryListener = null;
m_contactFilter = b2ContactFilter.b2_defaultFilter;
m_contactListener = null;
m_debugDraw = null;
m_bodyList = null;
m_contactList = null;
m_jointList = null;
m_bodyCount = 0;
m_contactCount = 0;
m_jointCount = 0;
m_positionCorrection = true;
m_warmStarting = true;
m_continuousPhysics = true;
m_allowSleep = _arg3;
m_gravity = _arg2;
m_lock = false;
m_inv_dt0 = 0;
m_contactManager.m_world = this;
m_broadPhase = new b2BroadPhase(_arg1, m_contactManager);
var _local4:b2BodyDef = new b2BodyDef();
m_groundBody = CreateBody(_local4);
}
public function SetDestructionListener(_arg1:b2DestructionListener):void{
m_destructionListener = _arg1;
}
public function SetBoundaryListener(_arg1:b2BoundaryListener):void{
m_boundaryListener = _arg1;
}
public function SetContactFilter(_arg1:b2ContactFilter):void{
m_contactFilter = _arg1;
}
public function SetContactListener(_arg1:b2ContactListener):void{
m_contactListener = _arg1;
}
public function SetDebugDraw(_arg1:b2DebugDraw):void{
m_debugDraw = _arg1;
}
public function Validate():void{
m_broadPhase.Validate();
}
public function GetProxyCount():int{
return (m_broadPhase.m_proxyCount);
}
public function GetPairCount():int{
return (m_broadPhase.m_pairManager.m_pairCount);
}
public function CreateBody(_arg1:b2BodyDef):b2Body{
if (m_lock == true){
return (null);
};
var _local2:b2Body = new b2Body(_arg1, this);
_local2.m_prev = null;
_local2.m_next = m_bodyList;
if (m_bodyList){
m_bodyList.m_prev = _local2;
};
m_bodyList = _local2;
m_bodyCount++;
return (_local2);
}
public function DestroyBody(_arg1:b2Body):void{
var _local4:b2JointEdge;
var _local5:b2Shape;
if (m_lock == true){
return;
};
var _local2:b2JointEdge = _arg1.m_jointList;
while (_local2) {
_local4 = _local2;
_local2 = _local2.next;
if (m_destructionListener){
m_destructionListener.SayGoodbyeJoint(_local4.joint);
};
DestroyJoint(_local4.joint);
};
var _local3:b2Shape = _arg1.m_shapeList;
while (_local3) {
_local5 = _local3;
_local3 = _local3.m_next;
if (m_destructionListener){
m_destructionListener.SayGoodbyeShape(_local5);
};
_local5.DestroyProxy(m_broadPhase);
b2Shape.Destroy(_local5, m_blockAllocator);
};
if (_arg1.m_prev){
_arg1.m_prev.m_next = _arg1.m_next;
};
if (_arg1.m_next){
_arg1.m_next.m_prev = _arg1.m_prev;
};
if (_arg1 == m_bodyList){
m_bodyList = _arg1.m_next;
};
m_bodyCount--;
}
public function CreateJoint(_arg1:b2JointDef):b2Joint{
var _local3:b2Body;
var _local4:b2Shape;
var _local2:b2Joint = b2Joint.Create(_arg1, m_blockAllocator);
_local2.m_prev = null;
_local2.m_next = m_jointList;
if (m_jointList){
m_jointList.m_prev = _local2;
};
m_jointList = _local2;
m_jointCount++;
_local2.m_node1.joint = _local2;
_local2.m_node1.other = _local2.m_body2;
_local2.m_node1.prev = null;
_local2.m_node1.next = _local2.m_body1.m_jointList;
if (_local2.m_body1.m_jointList){
_local2.m_body1.m_jointList.prev = _local2.m_node1;
};
_local2.m_body1.m_jointList = _local2.m_node1;
_local2.m_node2.joint = _local2;
_local2.m_node2.other = _local2.m_body1;
_local2.m_node2.prev = null;
_local2.m_node2.next = _local2.m_body2.m_jointList;
if (_local2.m_body2.m_jointList){
_local2.m_body2.m_jointList.prev = _local2.m_node2;
};
_local2.m_body2.m_jointList = _local2.m_node2;
if (_arg1.collideConnected == false){
_local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2;
_local4 = _local3.m_shapeList;
while (_local4) {
_local4.RefilterProxy(m_broadPhase, _local3.m_xf);
_local4 = _local4.m_next;
};
};
return (_local2);
}
public function DestroyJoint(_arg1:b2Joint):void{
var _local5:b2Body;
var _local6:b2Shape;
if (_arg1 == null){
return;
};
var _local2:Boolean = _arg1.m_collideConnected;
if (_arg1.m_prev){
_arg1.m_prev.m_next = _arg1.m_next;
};
if (_arg1.m_next){
_arg1.m_next.m_prev = _arg1.m_prev;
};
if (_arg1 == m_jointList){
m_jointList = _arg1.m_next;
};
var _local3:b2Body = _arg1.m_body1;
var _local4:b2Body = _arg1.m_body2;
_local3.WakeUp();
_local4.WakeUp();
if (_arg1.m_node1.prev){
_arg1.m_node1.prev.next = _arg1.m_node1.next;
};
if (_arg1.m_node1.next){
_arg1.m_node1.next.prev = _arg1.m_node1.prev;
};
if (_arg1.m_node1 == _local3.m_jointList){
_local3.m_jointList = _arg1.m_node1.next;
};
_arg1.m_node1.prev = null;
_arg1.m_node1.next = null;
if (_arg1.m_node2.prev){
_arg1.m_node2.prev.next = _arg1.m_node2.next;
};
if (_arg1.m_node2.next){
_arg1.m_node2.next.prev = _arg1.m_node2.prev;
};
if (_arg1.m_node2 == _local4.m_jointList){
_local4.m_jointList = _arg1.m_node2.next;
};
_arg1.m_node2.prev = null;
_arg1.m_node2.next = null;
b2Joint.Destroy(_arg1, m_blockAllocator);
m_jointCount--;
if (_local2 == false){
_local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4;
_local6 = _local5.m_shapeList;
while (_local6) {
_local6.RefilterProxy(m_broadPhase, _local5.m_xf);
_local6 = _local6.m_next;
};
};
}
public function Refilter(_arg1:b2Shape):void{
_arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf);
}
public function SetWarmStarting(_arg1:Boolean):void{
m_warmStarting = _arg1;
}
public function SetPositionCorrection(_arg1:Boolean):void{
m_positionCorrection = _arg1;
}
public function SetContinuousPhysics(_arg1:Boolean):void{
m_continuousPhysics = _arg1;
}
public function GetBodyCount():int{
return (m_bodyCount);
}
public function GetJointCount():int{
return (m_jointCount);
}
public function GetContactCount():int{
return (m_contactCount);
}
public function SetGravity(_arg1:b2Vec2):void{
m_gravity = _arg1;
}
public function GetGroundBody():b2Body{
return (m_groundBody);
}
public function Step(_arg1:Number, _arg2:int):void{
m_lock = true;
var _local3:b2TimeStep = new b2TimeStep();
_local3.dt = _arg1;
_local3.maxIterations = _arg2;
if (_arg1 > 0){
_local3.inv_dt = (1 / _arg1);
} else {
_local3.inv_dt = 0;
};
_local3.dtRatio = (m_inv_dt0 * _arg1);
_local3.positionCorrection = m_positionCorrection;
_local3.warmStarting = m_warmStarting;
m_contactManager.Collide();
if (_local3.dt > 0){
Solve(_local3);
};
if (((m_continuousPhysics) && ((_local3.dt > 0)))){
SolveTOI(_local3);
};
DrawDebugData();
m_inv_dt0 = _local3.inv_dt;
m_lock = false;
}
public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{
var _local4:Array = new Array(_arg3);
var _local5:int = m_broadPhase.QueryAABB(_arg1, _local4, _arg3);
var _local6:int;
while (_local6 < _local5) {
_arg2[_local6] = _local4[_local6];
_local6++;
};
return (_local5);
}
public function GetBodyList():b2Body{
return (m_bodyList);
}
public function GetJointList():b2Joint{
return (m_jointList);
}
public function Solve(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local9:int;
var _local10:int;
var _local11:b2Body;
var _local12:b2ContactEdge;
var _local13:b2JointEdge;
var _local14:Boolean;
m_positionIterationCount = 0;
var _local3:b2Island = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener);
_local2 = m_bodyList;
while (_local2) {
_local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag));
_local2 = _local2.m_next;
};
var _local4:b2Contact = m_contactList;
while (_local4) {
_local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag));
_local4 = _local4.m_next;
};
var _local5:b2Joint = m_jointList;
while (_local5) {
_local5.m_islandFlag = false;
_local5 = _local5.m_next;
};
var _local6:int = m_bodyCount;
var _local7:Array = new Array(_local6);
var _local8:b2Body = m_bodyList;
while (_local8) {
if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){
} else {
if (_local8.IsStatic()){
} else {
_local3.Clear();
_local9 = 0;
var _temp1 = _local9;
_local9 = (_local9 + 1);
var _local15 = _temp1;
_local7[_local15] = _local8;
_local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag);
while (_local9 > 0) {
--_local9;
_local2 = _local7[_local9];
_local3.AddBody(_local2);
_local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag));
if (_local2.IsStatic()){
} else {
_local12 = _local2.m_contactList;
while (_local12) {
if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){
} else {
if (_local12.contact.m_manifoldCount == 0){
} else {
_local3.AddContact(_local12.contact);
_local12.contact.m_flags = (_local12.contact.m_flags | b2Contact.e_islandFlag);
_local11 = _local12.other;
if ((_local11.m_flags & b2Body.e_islandFlag)){
} else {
var _temp2 = _local9;
_local9 = (_local9 + 1);
var _local16 = _temp2;
_local7[_local16] = _local11;
_local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag);
};
};
};
_local12 = _local12.next;
};
_local13 = _local2.m_jointList;
while (_local13) {
if (_local13.joint.m_islandFlag == true){
} else {
_local3.AddJoint(_local13.joint);
_local13.joint.m_islandFlag = true;
_local11 = _local13.other;
if ((_local11.m_flags & b2Body.e_islandFlag)){
} else {
var _temp3 = _local9;
_local9 = (_local9 + 1);
_local16 = _temp3;
_local7[_local16] = _local11;
_local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag);
};
};
_local13 = _local13.next;
};
};
};
_local3.Solve(_arg1, m_gravity, m_positionCorrection, m_allowSleep);
if (_local3.m_positionIterationCount > m_positionIterationCount){
m_positionIterationCount = _local3.m_positionIterationCount;
};
_local10 = 0;
while (_local10 < _local3.m_bodyCount) {
_local2 = _local3.m_bodies[_local10];
if (_local2.IsStatic()){
_local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag));
};
_local10++;
};
};
};
_local8 = _local8.m_next;
};
_local2 = m_bodyList;
while (_local2) {
if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){
} else {
if (_local2.IsStatic()){
} else {
_local14 = _local2.SynchronizeShapes();
if ((((_local14 == false)) && (!((m_boundaryListener == null))))){
m_boundaryListener.Violation(_local2);
};
};
};
_local2 = _local2.m_next;
};
m_broadPhase.Commit();
}
public function SolveTOI(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Shape;
var _local4:b2Shape;
var _local5:b2Body;
var _local6:b2Body;
var _local7:b2ContactEdge;
var _local11:b2Contact;
var _local12:b2Contact;
var _local13:Number;
var _local14:b2Body;
var _local15:int;
var _local16:b2TimeStep;
var _local17:int;
var _local18:Number;
var _local19:Number;
var _local20:b2Body;
var _local21:Boolean;
var _local8:b2Island = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener);
var _local9:int = m_bodyCount;
var _local10:Array = new Array(_local9);
_local2 = m_bodyList;
while (_local2) {
_local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag));
_local2.m_sweep.t0 = 0;
_local2 = _local2.m_next;
};
_local11 = m_contactList;
while (_local11) {
_local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag)));
_local11 = _local11.m_next;
};
while (true) {
_local12 = null;
_local13 = 1;
_local11 = m_contactList;
for (;_local11;(_local11 = _local11.m_next)) {
if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){
} else {
_local18 = 1;
if ((_local11.m_flags & b2Contact.e_toiFlag)){
_local18 = _local11.m_toi;
} else {
_local3 = _local11.m_shape1;
_local4 = _local11.m_shape2;
_local5 = _local3.m_body;
_local6 = _local4.m_body;
if (((((_local5.IsStatic()) || (_local5.IsSleeping()))) && (((_local6.IsStatic()) || (_local6.IsSleeping()))))){
continue;
};
_local19 = _local5.m_sweep.t0;
if (_local5.m_sweep.t0 < _local6.m_sweep.t0){
_local19 = _local6.m_sweep.t0;
_local5.m_sweep.Advance(_local19);
} else {
if (_local6.m_sweep.t0 < _local5.m_sweep.t0){
_local19 = _local5.m_sweep.t0;
_local6.m_sweep.Advance(_local19);
};
};
_local18 = b2TimeOfImpact.TimeOfImpact(_local11.m_shape1, _local5.m_sweep, _local11.m_shape2, _local6.m_sweep);
if ((((_local18 > 0)) && ((_local18 < 1)))){
_local18 = (((1 - _local18) * _local19) + _local18);
if (_local18 > 1){
_local18 = 1;
};
};
_local11.m_toi = _local18;
_local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag);
};
if ((((Number.MIN_VALUE < _local18)) && ((_local18 < _local13)))){
_local12 = _local11;
_local13 = _local18;
};
};
};
if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){
break;
};
_local3 = _local12.m_shape1;
_local4 = _local12.m_shape2;
_local5 = _local3.m_body;
_local6 = _local4.m_body;
_local5.Advance(_local13);
_local6.Advance(_local13);
_local12.Update(m_contactListener);
_local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag));
if (_local12.m_manifoldCount == 0){
} else {
_local14 = _local5;
if (_local14.IsStatic()){
_local14 = _local6;
};
_local8.Clear();
_local15 = 0;
var _temp1 = _local15;
_local15 = (_local15 + 1);
var _local22 = _temp1;
_local10[_local22] = _local14;
_local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag);
while (_local15 > 0) {
--_local15;
_local2 = _local10[_local15];
_local8.AddBody(_local2);
_local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag));
if (_local2.IsStatic()){
} else {
_local7 = _local2.m_contactList;
while (_local7) {
if (_local8.m_contactCount == _local8.m_contactCapacity){
} else {
if ((_local7.contact.m_flags & ((b2Contact.e_islandFlag | b2Contact.e_slowFlag) | b2Contact.e_nonSolidFlag))){
} else {
if (_local7.contact.m_manifoldCount == 0){
} else {
_local8.AddContact(_local7.contact);
_local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag);
_local20 = _local7.other;
if ((_local20.m_flags & b2Body.e_islandFlag)){
} else {
if (_local20.IsStatic() == false){
_local20.Advance(_local13);
_local20.WakeUp();
};
var _temp2 = _local15;
_local15 = (_local15 + 1);
var _local23 = _temp2;
_local10[_local23] = _local20;
_local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag);
};
};
};
};
_local7 = _local7.next;
};
};
};
_local16 = new b2TimeStep();
_local16.dt = ((1 - _local13) * _arg1.dt);
_local16.inv_dt = (1 / _local16.dt);
_local16.maxIterations = _arg1.maxIterations;
_local8.SolveTOI(_local16);
_local17 = 0;
while (_local17 < _local8.m_bodyCount) {
_local2 = _local8.m_bodies[_local17];
_local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag));
if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){
} else {
if (_local2.IsStatic()){
} else {
_local21 = _local2.SynchronizeShapes();
if ((((_local21 == false)) && (!((m_boundaryListener == null))))){
m_boundaryListener.Violation(_local2);
};
_local7 = _local2.m_contactList;
while (_local7) {
_local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag));
_local7 = _local7.next;
};
};
};
_local17++;
};
_local17 = 0;
while (_local17 < _local8.m_contactCount) {
_local11 = _local8.m_contacts[_local17];
_local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag)));
_local17++;
};
m_broadPhase.Commit();
};
};
}
public function DrawJoint(_arg1:b2Joint):void{
var _local11:b2PulleyJoint;
var _local12:b2Vec2;
var _local13:b2Vec2;
var _local2:b2Body = _arg1.m_body1;
var _local3:b2Body = _arg1.m_body2;
var _local4:b2XForm = _local2.m_xf;
var _local5:b2XForm = _local3.m_xf;
var _local6:b2Vec2 = _local4.position;
var _local7:b2Vec2 = _local5.position;
var _local8:b2Vec2 = _arg1.GetAnchor1();
var _local9:b2Vec2 = _arg1.GetAnchor2();
var _local10:b2Color = s_jointColor;
switch (_arg1.m_type){
case b2Joint.e_distanceJoint:
m_debugDraw.DrawSegment(_local8, _local9, _local10);
break;
case b2Joint.e_pulleyJoint:
_local11 = (_arg1 as b2PulleyJoint);
_local12 = _local11.GetGroundAnchor1();
_local13 = _local11.GetGroundAnchor2();
m_debugDraw.DrawSegment(_local12, _local8, _local10);
m_debugDraw.DrawSegment(_local13, _local9, _local10);
m_debugDraw.DrawSegment(_local12, _local13, _local10);
break;
case b2Joint.e_mouseJoint:
m_debugDraw.DrawSegment(_local8, _local9, _local10);
break;
default:
if (_local2 != m_groundBody){
m_debugDraw.DrawSegment(_local6, _local8, _local10);
};
m_debugDraw.DrawSegment(_local8, _local9, _local10);
if (_local3 != m_groundBody){
m_debugDraw.DrawSegment(_local7, _local9, _local10);
};
};
}
public function DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{
var _local6:b2CircleShape;
var _local7:b2Vec2;
var _local8:Number;
var _local9:b2Vec2;
var _local10:int;
var _local11:b2PolygonShape;
var _local12:int;
var _local13:Array;
var _local14:Array;
var _local15:Array;
var _local5:b2Color = s_coreColor;
switch (_arg1.m_type){
case b2Shape.e_circleShape:
_local6 = (_arg1 as b2CircleShape);
_local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition);
_local8 = _local6.m_radius;
_local9 = _arg2.R.col1;
m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3);
if (_arg4){
m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5);
};
break;
case b2Shape.e_polygonShape:
_local11 = (_arg1 as b2PolygonShape);
_local12 = _local11.GetVertexCount();
_local13 = _local11.GetVertices();
_local14 = new Array(b2Settings.b2_maxPolygonVertices);
_local10 = 0;
while (_local10 < _local12) {
_local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]);
_local10++;
};
m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3);
if (_arg4){
_local15 = _local11.GetCoreVertices();
_local10 = 0;
while (_local10 < _local12) {
_local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]);
_local10++;
};
m_debugDraw.DrawPolygon(_local14, _local12, _local5);
};
break;
};
}
public function DrawDebugData():void{
var _local2:int;
var _local3:b2Body;
var _local4:b2Shape;
var _local5:b2Joint;
var _local6:b2BroadPhase;
var _local11:b2XForm;
var _local15:Boolean;
var _local16:uint;
var _local17:b2Pair;
var _local18:b2Proxy;
var _local19:b2Proxy;
var _local20:b2Vec2;
var _local21:b2Vec2;
var _local22:b2Proxy;
var _local23:b2PolygonShape;
var _local24:b2OBB;
var _local25:b2Vec2;
var _local26:b2Mat22;
var _local27:b2Vec2;
var _local28:Number;
if (m_debugDraw == null){
return;
};
m_debugDraw.m_sprite.graphics.clear();
var _local1:uint = m_debugDraw.GetFlags();
var _local7:b2Vec2 = new b2Vec2();
var _local8:b2Vec2 = new b2Vec2();
var _local9:b2Vec2 = new b2Vec2();
var _local10:b2Color = new b2Color(0, 0, 0);
var _local12:b2AABB = new b2AABB();
var _local13:b2AABB = new b2AABB();
var _local14:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()];
if ((_local1 & b2DebugDraw.e_shapeBit)){
_local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit);
_local3 = m_bodyList;
while (_local3) {
_local11 = _local3.m_xf;
_local4 = _local3.GetShapeList();
while (_local4) {
if (_local3.IsStatic()){
DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15);
} else {
if (_local3.IsSleeping()){
DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15);
} else {
DrawShape(_local4, _local11, new b2Color(0.9, 0.9, 0.9), _local15);
};
};
_local4 = _local4.m_next;
};
_local3 = _local3.m_next;
};
};
if ((_local1 & b2DebugDraw.e_jointBit)){
_local5 = m_jointList;
while (_local5) {
DrawJoint(_local5);
_local5 = _local5.m_next;
};
};
if ((_local1 & b2DebugDraw.e_pairBit)){
_local6 = m_broadPhase;
_local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y));
_local10.Set(0.9, 0.9, 0.3);
_local2 = 0;
while (_local2 < b2Pair.b2_tableCapacity) {
_local16 = _local6.m_pairManager.m_hashTable[_local2];
while (_local16 != b2Pair.b2_nullPair) {
_local17 = _local6.m_pairManager.m_pairs[_local16];
_local18 = _local6.m_proxyPool[_local17.proxyId1];
_local19 = _local6.m_proxyPool[_local17.proxyId2];
_local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value));
_local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value));
_local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value));
_local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value));
_local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value));
_local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value));
_local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value));
_local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value));
_local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x));
_local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y));
_local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x));
_local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y));
m_debugDraw.DrawSegment(_local8, _local9, _local10);
_local16 = _local17.next;
};
_local2++;
};
};
if ((_local1 & b2DebugDraw.e_aabbBit)){
_local6 = m_broadPhase;
_local20 = _local6.m_worldAABB.lowerBound;
_local21 = _local6.m_worldAABB.upperBound;
_local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y));
_local10.Set(0.9, 0.3, 0.9);
_local2 = 0;
while (_local2 < b2Settings.b2_maxProxies) {
_local22 = _local6.m_proxyPool[_local2];
if (_local22.IsValid() == false){
} else {
_local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value));
_local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value));
_local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value));
_local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value));
_local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y);
_local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y);
_local14[2].Set(_local12.upperBound.x, _local12.upperBound.y);
_local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y);
m_debugDraw.DrawPolygon(_local14, 4, _local10);
};
_local2++;
};
_local14[0].Set(_local20.x, _local20.y);
_local14[1].Set(_local21.x, _local20.y);
_local14[2].Set(_local21.x, _local21.y);
_local14[3].Set(_local20.x, _local21.y);
m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9));
};
if ((_local1 & b2DebugDraw.e_obbBit)){
_local10.Set(0.5, 0.3, 0.5);
_local3 = m_bodyList;
while (_local3) {
_local11 = _local3.m_xf;
_local4 = _local3.GetShapeList();
while (_local4) {
if (_local4.m_type != b2Shape.e_polygonShape){
} else {
_local23 = (_local4 as b2PolygonShape);
_local24 = _local23.GetOBB();
_local25 = _local24.extents;
_local14[0].Set(-(_local25.x), -(_local25.y));
_local14[1].Set(_local25.x, -(_local25.y));
_local14[2].Set(_local25.x, _local25.y);
_local14[3].Set(-(_local25.x), _local25.y);
_local2 = 0;
while (_local2 < 4) {
_local26 = _local24.R;
_local27 = _local14[_local2];
_local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y)));
_local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y)));
_local14[_local2].x = _local28;
_local26 = _local11.R;
_local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y)));
_local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y)));
_local14[_local2].x = _local28;
_local2++;
};
m_debugDraw.DrawPolygon(_local14, 4, _local10);
};
_local4 = _local4.m_next;
};
_local3 = _local3.m_next;
};
};
if ((_local1 & b2DebugDraw.e_centerOfMassBit)){
_local3 = m_bodyList;
while (_local3) {
_local11 = s_xf;
_local11.R = _local3.m_xf.R;
_local11.position = _local3.GetWorldCenter();
m_debugDraw.DrawXForm(_local11);
_local3 = _local3.m_next;
};
};
}
}
}//package Box2D.Dynamics
Section 76
//ArmorButton (gui.ArmorButton)
package gui {
import flash.events.*;
import flash.display.*;
import flash.net.*;
public dynamic class ArmorButton extends SimpleButton {
public function ArmorButton(){
addEventListener(MouseEvent.MOUSE_DOWN, onPress);
}
private function onPress(_arg1){
var _local2:URLRequest = new URLRequest("http://armorgames.com");
navigateToURL(_local2, "_blank");
}
}
}//package gui
Section 77
//Base_Button (gui.Base_Button)
package gui {
import flash.events.*;
import flash.display.*;
import flash.net.*;
public dynamic class Base_Button extends SimpleButton {
public function Base_Button(){
addEventListener(MouseEvent.MOUSE_OVER, onOver);
}
private function onOver(_arg1){
if (main.b_sound){
main.m_main.ButtonOver.play();
};
}
}
}//package gui
Section 78
//BonusStar (gui.BonusStar)
package gui {
import flash.events.*;
import flash.display.*;
public dynamic class BonusStar extends MovieClip {
var m_px;// = 279
var m_py;// = 18
var speed;// = 1
var dspeed;// = 0.6
var scores;// = 0
public function BonusStar(_arg1, _arg2, _arg3){
addFrameScript(24, frame25);
scores = _arg3;
x = _arg1;
y = _arg2;
addEventListener(Event.ENTER_FRAME, Update);
main.m_main.GameGUI.addChild(this);
mouseEnabled = false;
main.m_scores = (main.m_scores + scores);
if (main.m_scores > main.mySO.data.Saves.m_scores[(main.m_stage_number - 1)]){
main.mySO.data.Saves.m_scores[(main.m_stage_number - 1)] = main.m_scores;
};
if (main.m_scores >= main.m_scores_data.m_data[main.m_stage_number]){
if (main.LevelNumberClip){
if (main.LevelNumberClip.bg.visible == false){
if (main.b_sound){
main.m_main.GoldSound.play();
};
};
main.LevelNumberClip.bg.visible = true;
};
};
}
public function Update(_arg1){
var _local2:* = (m_px - x);
var _local3:* = (m_py - y);
var _local4:* = Math.sqrt(((_local2 * _local2) + (_local3 * _local3)));
if (_local4 < speed){
Delete();
return;
};
_local2 = (_local2 / _local4);
_local3 = (_local3 / _local4);
x = (x + (_local2 * speed));
y = (y + (_local3 * speed));
speed = (speed + dspeed);
}
public function Delete(){
removeEventListener(Event.ENTER_FRAME, Update);
parent.removeChild(this);
}
function frame25(){
stop();
}
}
}//package gui
Section 79
//FailLogo (gui.FailLogo)
package gui {
import flash.display.*;
public dynamic class FailLogo extends MovieClip {
}
}//package gui
Section 80
//GameGUI (gui.GameGUI)
package gui {
import flash.events.*;
import flash.display.*;
import Objects.*;
public dynamic class GameGUI extends MovieClip {
public function GameGUI(){
addEventListener(Event.ENTER_FRAME, Update);
this.TalkPoint.Marker.visible = false;
}
public function Update(_arg1){
if (main.m_main.currentLabel != "Game"){
removeEventListener(Event.ENTER_FRAME, Update);
if (main.m_objects_panel){
main.m_objects_panel.Release();
};
};
}
}
}//package gui
Section 81
//GameMenu (gui.GameMenu)
package gui {
import flash.events.*;
import flash.display.*;
public dynamic class GameMenu extends MovieClip {
var m_py;// = 456
public function GameMenu(){
y = 506;
trace("GameMenu");
addEventListener(Event.ENTER_FRAME, Update);
}
public function Update(_arg1){
if (Math.abs((y - m_py)) > 1){
y = (y + ((m_py - y) * 0.2));
};
if (main.b_finish){
Hide();
} else {
Show();
};
}
public function Hide(){
}
public function Show(){
m_py = 456;
}
public function Delete(){
removeEventListener(Event.ENTER_FRAME, Update);
parent.removeChild(this);
}
}
}//package gui
Section 82
//GamePoint (gui.GamePoint)
package gui {
import flash.events.*;
import flash.display.*;
public dynamic class GamePoint extends MovieClip {
public function GamePoint(){
if (main.m_stage){
addChild(main.m_stage);
};
}
}
}//package gui
Section 83
//GMButtonBum (gui.GMButtonBum)
package gui {
import flash.events.*;
import flash.display.*;
public dynamic class GMButtonBum extends SimpleButton {
public function GMButtonBum(){
addEventListener(MouseEvent.MOUSE_DOWN, onPress);
}
private function onPress(_arg1){
main.Bum();
}
}
}//package gui
Section 84
//GMButtonMenu (gui.GMButtonMenu)
package gui {
import flash.events.*;
public dynamic class GMButtonMenu extends Base_Button {
public function GMButtonMenu(){
addEventListener(MouseEvent.MOUSE_DOWN, onPress);
}
private function onPress(_arg1){
removeEventListener(MouseEvent.MOUSE_DOWN, onPress);
main.FreeAll();
main.m_main.gotoAndStop("Menu");
}
}
}//package gui
Section 85
//GMButtonRestart (gui.GMButtonRestart)
package gui {
import flash.events.*;
public dynamic class GMButtonRestart extends Base_Button {
public function GMButtonRestart(){
addEventListener(MouseEvent.MOUSE_DOWN, onPress);
}
private function onPress(_arg1){
main.RestartLevel();
}
}
}//package gui
Section 86
//GMButtonWalk (gui.GMButtonWalk)
package gui {
import flash.events.*;
import flash.net.*;
public dynamic class GMButtonWalk extends Base_Button {
public function GMButtonWalk(){
addEventListener(MouseEvent.MOUSE_DOWN, onPress);
}
private function onPress(_arg1){
var _local2:URLRequest = new URLRequest("http://armorgames.com/guide/zomblast-video-guide");
navigateToURL(_local2, "_blank");
}
}
}//package gui
Section 87
//LevelNumber (gui.LevelNumber)
package gui {
import flash.events.*;
import flash.display.*;
public dynamic class LevelNumber extends MovieClip {
public function LevelNumber(){
addFrameScript(0, frame1);
var _local1:String = (main.m_stage_name.charAt((main.m_stage_name.length - 2)) + main.m_stage_name.charAt((main.m_stage_name.length - 1)));
this.level_number_text.text = _local1;
main.m_stage_number = int(_local1);
}
function frame1(){
stop();
}
}
}//package gui
Section 88
//LevelsButtonsClip (gui.LevelsButtonsClip)
package gui {
import flash.events.*;
import flash.display.*;
import flash.net.*;
public dynamic class LevelsButtonsClip extends MovieClip {
public function LevelsButtonsClip(){
var _local2:*;
super();
addFrameScript(40, frame41, 84, frame85);
x = main.m_level_menu_px;
y = main.m_level_menu_py;
addEventListener(Event.ENTER_FRAME, Update);
this.PlayButton.addEventListener(MouseEvent.MOUSE_DOWN, pressPlayButton);
this.BackButton.addEventListener(MouseEvent.MOUSE_DOWN, pressBackButton);
this.CreditsButton.addEventListener(MouseEvent.MOUSE_DOWN, pressCreditsButton);
this.BackCreditsButton.addEventListener(MouseEvent.MOUSE_DOWN, pressBackCreditsButton);
this.MoreGamesButton.addEventListener(MouseEvent.MOUSE_DOWN, pressMoreGamesButton);
this.WalkthroughButton.addEventListener(MouseEvent.MOUSE_DOWN, pressWalkthroughButton);
var _local1:* = 0;
_local2 = 0;
while (_local2 < 30) {
_local1 = (_local1 + main.mySO.data.Saves.m_scores[_local2]);
_local2++;
};
}
public function pressPlayButton(_arg1){
main.m_level_menu_px = 0;
main.m_level_menu_py = 0;
}
public function pressBackButton(_arg1){
main.m_level_menu_px = 640;
main.m_level_menu_py = 0;
}
public function pressCreditsButton(_arg1){
main.m_level_menu_px = 0x0500;
main.m_level_menu_py = 0;
}
public function pressBackCreditsButton(_arg1){
main.m_level_menu_px = 640;
main.m_level_menu_py = 0;
}
public function pressMoreGamesButton(_arg1){
var _local2:URLRequest = new URLRequest("http://armorgames.com");
navigateToURL(_local2, "_blank");
}
public function pressWalkthroughButton(_arg1){
var _local2:URLRequest = new URLRequest("http://armorgames.com/guide/zomblast-video-guide");
navigateToURL(_local2, "_blank");
}
public function pressResetLevelsButton(_arg1){
main.ResetLevels();
}
public function Update(_arg1){
var _local2:* = main.m_level_menu_px;
var _local3:* = main.m_level_menu_py;
if (Math.abs((y - _local3)) > 1){
y = (y + ((_local3 - y) * 0.2));
};
if (Math.abs((x - _local2)) > 1){
x = (x + ((_local2 - x) * 0.2));
};
}
function frame41(){
if (main.m_main.b_first_expl){
if (main.b_music){
main.m_main.Explosion2Sound.play();
};
main.m_main.b_first_expl = false;
};
}
function frame85(){
stop();
}
}
}//package gui
Section 89
//LevelScores (gui.LevelScores)
package gui {
import flash.events.*;
public dynamic class LevelScores {
public var m_data;
public function LevelScores(){
m_data = new Array();
Init();
}
public function Init(){
m_data.push(0);
m_data.push(130);
m_data.push(350);
m_data.push(380);
m_data.push(740);
m_data.push(200);
m_data.push(400);
m_data.push(100);
m_data.push(540);
m_data.push(270);
m_data.push(220);
m_data.push(900);
m_data.push(240);
m_data.push(800);
m_data.push(640);
m_data.push(440);
m_data.push(240);
m_data.push(300);
m_data.push(400);
m_data.push(480);
m_data.push(540);
m_data.push(220);
m_data.push(390);
m_data.push(660);
m_data.push(450);
m_data.push(400);
m_data.push(300);
m_data.push(210);
m_data.push(330);
m_data.push(250);
m_data.push(450);
m_data.push(300);
m_data.push(660);
m_data.push(200);
m_data.push(400);
m_data.push(200);
m_data.push(0);
m_data.push(0);
m_data.push(0);
m_data.push(0);
m_data.push(0);
m_data.push(0);
m_data.push(0);
m_data.push(0);
m_data.push(0);
m_data.push(0);
}
}
}//package gui
Section 90
//MusicButton (gui.MusicButton)
package gui {
import flash.events.*;
import flash.display.*;
import flash.media.*;
public dynamic class MusicButton extends MovieClip {
public function MusicButton(){
addFrameScript(0, frame1);
main.b_music = main.mySO.data.Saves.b_music;
if (main.b_music == false){
this.gotoAndStop(2);
};
addEventListener(MouseEvent.MOUSE_DOWN, onPress);
}
private function onPress(_arg1){
var _local2:SoundTransform;
if (main.b_music){
this.gotoAndStop(2);
main.b_music = false;
_local2 = new SoundTransform(0, 0);
main.m_main.m_music.soundTransform = _local2;
} else {
this.gotoAndStop(1);
main.b_music = true;
_local2 = new SoundTransform(1, 0);
main.m_main.m_music.soundTransform = _local2;
};
main.mySO.data.Saves.b_music = main.b_music;
}
public function Delete(){
if (parent){
parent.removeChild(this);
};
}
function frame1(){
stop();
}
}
}//package gui
Section 91
//NextButton (gui.NextButton)
package gui {
import flash.events.*;
public dynamic class NextButton extends Base_Button {
public function NextButton(){
addEventListener(MouseEvent.MOUSE_DOWN, onPress);
}
private function onPress(_arg1){
var _local2:String = main.m_stage_name;
_local2 = _local2.substr(6, 8);
_local2 = (int(_local2) + 1);
if (_local2 > 35){
this.visible = false;
removeEventListener(MouseEvent.MOUSE_DOWN, onPress);
main.FreeAll();
main.m_main.gotoAndStop("Final");
return;
};
if (_local2 < 10){
main.m_stage_name = ("stage_0" + _local2);
} else {
main.m_stage_name = ("stage_" + _local2);
};
main.FreeAll();
if (main.m_objects_panel){
main.m_objects_panel.Free();
};
main.CreateStage(main.m_stage_name);
parent.visible = false;
}
}
}//package gui
Section 92
//ObjectsPanel (gui.ObjectsPanel)
package gui {
import flash.events.*;
import flash.display.*;
import ai.*;
import Objects.*;
import flash.filters.*;
public dynamic class ObjectsPanel extends MovieClip {
public var m_objects;
public var m_selected;
var m_action;
var dx;
var dy;
public var m_selected_2;// = 0
var m_rot;// = 0
var m_rot2;// = 0
var btn_down;// = false
public var loaded;// = false
public function ObjectsPanel(){
m_objects = new Array();
super();
trace("objects panel");
main.m_objects_panel = this;
addEventListener(Event.ENTER_FRAME, Update);
addEventListener(MouseEvent.MOUSE_DOWN, MouseDown);
addEventListener(MouseEvent.MOUSE_UP, MouseUp);
main.m_main.stage.addEventListener(MouseEvent.MOUSE_WHEEL, onWheel);
}
public function Release(){
main.m_objects_panel.removeEventListener(Event.ENTER_FRAME, Update);
main.m_objects_panel.removeEventListener(MouseEvent.MOUSE_DOWN, MouseDown);
main.m_objects_panel.removeEventListener(MouseEvent.MOUSE_UP, MouseUp);
main.m_objects_panel.parent.removeChild(main.m_objects_panel);
main.m_objects_panel = 0;
}
private function RotateObj(_arg1){
var _local2:* = 0;
for each (i in m_objects) {
if (i.m_object.visible){
if (i.m_object.Selector2.hitTestPoint(main.m_main.mouseX, main.m_main.mouseY)){
_local2 = i;
};
};
};
if (_local2){
_local2.m_object.rotation = (_local2.m_object.rotation + (_arg1 * 8));
_local2.m_object.BBum.rotation = -(_local2.m_object.rotation);
_local2.m_object.Frag.rotation = -(_local2.m_object.rotation);
};
}
private function onWheel(_arg1){
RotateObj(_arg1.delta);
}
public function Update(_arg1){
var _local3:*;
var _local2:* = true;
if (m_selected){
m_selected.m_object.x = (mouseX + dx);
m_selected.m_object.y = (mouseY + dy);
};
if (m_selected_2){
_local3 = Math.atan2((mouseY - m_selected_2.m_object.y), (mouseX - m_selected_2.m_object.x));
m_selected_2.m_object.rotation = ((m_rot + ((_local3 / Math.PI) * 180)) - m_rot2);
m_selected_2.m_object.BBum.rotation = -(m_selected_2.m_object.rotation);
m_selected_2.m_object.Frag.rotation = -(m_selected_2.m_object.rotation);
};
if (main.button_rotate != 0){
RotateObj((main.button_rotate * 0.5));
};
for each (i in m_objects) {
if (i.m_object.visible){
if (i.m_object.Selector2.hitTestPoint(main.m_main.mouseX, main.m_main.mouseY, true)){
MouseWheel.capture();
_local2 = false;
};
};
};
if (_local2){
MouseWheel.release();
};
}
public function MouseDown(_arg1){
var _local2:*;
var _local3:*;
m_selected = 0;
m_selected_2 = 0;
btn_down = true;
for each (_local2 in m_objects) {
if (_local2.m_object.visible){
for each (_local3 in _local2.m_object.m_parts) {
if (_local3.hitTestPoint(main.m_main.mouseX, main.m_main.mouseY, true)){
m_selected_2 = _local2;
m_rot = _local2.m_object.rotation;
m_rot2 = Math.atan2((mouseY - m_selected_2.m_object.y), (mouseX - m_selected_2.m_object.x));
m_rot2 = ((m_rot2 / Math.PI) * 180);
};
};
if (_local2.m_object.Selector.hitTestPoint(main.m_main.mouseX, main.m_main.mouseY, true)){
dx = (_local2.m_object.x - mouseX);
dy = (_local2.m_object.y - mouseY);
m_selected = _local2;
GlowImg(m_selected.m_object, true);
m_selected_2 = 0;
m_selected.m_object.ShowParts(true);
ShowButtons(m_selected.m_object, true);
addChild(m_selected.m_object);
return;
};
};
};
}
public function MouseUp(_arg1){
btn_down = false;
if (m_selected){
if (this.BG.hitTestObject(m_selected.m_object.Selector)){
m_selected.m_object.ShowParts(false);
m_selected.m_object.x = m_selected.m_x;
m_selected.m_object.y = m_selected.m_y;
ShowButtons(m_selected.m_object, false);
} else {
main.StartGameNow();
};
GlowImg(m_selected.m_object, false);
};
m_selected = 0;
m_selected_2 = 0;
}
public function AddGrenade(_arg1=0, _arg2=0, _arg3=0, _arg4=0, _arg5=0, _arg6=0, _arg7=0, _arg8=0, _arg9=0, _arg10=0){
var _local12:*;
var _local13:*;
if (loaded){
return;
};
var _local11:* = new Grenade();
if (_arg2 > 0){
_local11.AddPart(_arg1, _arg2);
};
if (_arg4 > 0){
_local11.AddPart(_arg3, _arg4);
};
if (_arg6 > 0){
_local11.AddPart(_arg5, _arg6);
};
if (_arg8 > 0){
_local11.AddPart(_arg7, _arg8);
};
if (_arg10 > 0){
_local11.AddPart(_arg9, _arg10);
};
_local12 = (25 + (50 * m_objects.length));
_local13 = 0;
m_objects.push({m_x:_local12, m_y:_local13, m_object:_local11});
_local11.x = _local12;
_local11.y = _local13;
ShowButtons(_local11, false);
addChild(_local11);
}
public function Restart(){
var _local1:*;
for each (_local1 in m_objects) {
_local1.m_object.visible = true;
};
}
public function Free(){
var _local1:*;
for each (_local1 in m_objects) {
_local1.m_object.parent.removeChild(_local1.m_object);
};
m_objects.splice(0);
loaded = false;
}
function ShowButtons(_arg1, _arg2){
_arg1.BBum.visible = _arg2;
CenterGrenades();
}
function CenterGrenades(){
var _local3:*;
var _local1:* = 169;
var _local2:* = 0;
for each (_local3 in m_objects) {
if (((_local3.m_object.visible) && ((_local3.m_object.BBum.visible == false)))){
_local2++;
};
};
_local1 = ((_local1 - ((_local2 / 2) * 50)) + (50 / 2));
for each (_local3 in m_objects) {
if (((_local3.m_object.visible) && ((_local3.m_object.BBum.visible == false)))){
_local3.m_object.x = _local1;
_local3.m_x = _local1;
_local1 = (_local1 + 50);
};
};
}
public function GlowImg(_arg1, _arg2, _arg3:Number=16776805){
var _local4:BitmapFilter;
if (!_arg1){
return;
};
var _local5:Array = new Array();
var _local6:Number = 1;
var _local7:Number = 21;
var _local8:Number = 21;
var _local9:Number = 1;
var _local10:Boolean;
var _local11:Boolean;
var _local12:Number = BitmapFilterQuality.HIGH;
_local4 = new GlowFilter(_arg3, _local6, _local7, _local8, _local9, _local12, _local10, _local11);
if (_arg2){
_local5.push(_local4);
};
_arg1.filters = _local5;
}
}
}//package gui
Section 93
//Preloader (gui.Preloader)
package gui {
import flash.events.*;
import flash.display.*;
public dynamic class Preloader extends MovieClip {
var bytestotal;
var bytesloaded;
var max_x;// = 300
var px;// = -370
var pmx;// = -10
var max_mx;// = 618
public function Preloader(){
addFrameScript(0, frame1);
addEventListener(Event.ENTER_FRAME, Update);
this.BPlay.addEventListener(MouseEvent.MOUSE_DOWN, onPressPlay);
this.BPlay.visible = false;
}
public function Update(_arg1){
bytestotal = stage.loaderInfo.bytesTotal;
bytesloaded = stage.loaderInfo.bytesLoaded;
var _local2:int = ((bytesloaded * 100) / bytestotal);
this.LoadingMan.LoadingSign.LoadingText.text = (String(_local2) + "%");
if (bytesloaded >= bytestotal){
this.LoadingMan.LoadingSign.LoadingText.text = "146%";
removeEventListener(Event.ENTER_FRAME, Update);
this.BPlay.visible = true;
};
}
private function onPressPlay(_arg1){
trace("Ok");
if (bytesloaded >= bytestotal){
if (main.b_test == false){
if (main.b_locked){
main.m_main.gotoAndStop("Locked");
} else {
main.m_main.gotoAndStop("Splash");
};
} else {
main.m_main.gotoAndStop("Menu");
};
};
}
function frame1(){
stop();
}
}
}//package gui
Section 94
//SoundButton (gui.SoundButton)
package gui {
import flash.events.*;
import flash.display.*;
import flash.media.*;
public dynamic class SoundButton extends MovieClip {
public function SoundButton(){
addFrameScript(0, frame1);
main.b_sound = main.mySO.data.Saves.b_sound;
if (main.b_sound == false){
this.gotoAndStop(2);
};
addEventListener(MouseEvent.MOUSE_DOWN, onPress);
}
private function onPress(_arg1){
if (main.b_sound){
this.gotoAndStop(2);
main.b_sound = false;
} else {
this.gotoAndStop(1);
main.b_sound = true;
};
main.mySO.data.Saves.b_sound = main.b_sound;
}
public function Delete(){
if (parent){
parent.removeChild(this);
};
}
function frame1(){
stop();
}
}
}//package gui
Section 95
//SplashButton2 (gui.SplashButton2)
package gui {
import flash.events.*;
import flash.net.*;
public dynamic class SplashButton2 extends Base_Button {
public function SplashButton2(){
addEventListener(MouseEvent.MOUSE_DOWN, onPress);
}
private function onPress(_arg1){
var _local2:URLRequest = new URLRequest("http://newstagestudio.com");
navigateToURL(_local2, "_blank");
}
}
}//package gui
Section 96
//StageButtonClip (gui.StageButtonClip)
package gui {
import flash.events.*;
import flash.display.*;
public dynamic class StageButtonClip extends MovieClip {
public function StageButtonClip(){
var _local1:String = (name.charAt((name.length - 2)) + name.charAt((name.length - 1)));
var _local2:* = int(_local1);
this.Red.visible = false;
this.Red.mouseEnabled = false;
this.Green.visible = false;
this.Green.mouseEnabled = false;
this.Good.visible = false;
this.Good.mouseEnabled = false;
if (main.mySO.data.Saves.m_levels[(_local2 - 1)] == 0){
if (main.b_test == false){
this.BButton.mouseEnabled = false;
};
this.Red.visible = true;
};
this.BButton.addEventListener(MouseEvent.MOUSE_DOWN, onPress);
if (main.mySO.data.Saves.m_levels[(_local2 - 1)] == 2){
if (main.mySO.data.Saves.m_scores[(_local2 - 1)] >= main.m_scores_data.m_data[_local2]){
this.Good.visible = true;
};
this.Green.visible = true;
};
}
private function onPress(_arg1){
root.gotoAndStop("Game");
main.CreateStage(name);
}
}
}//package gui
Section 97
//WinMenu (gui.WinMenu)
package gui {
import flash.events.*;
import flash.display.*;
public dynamic class WinMenu extends MovieClip {
public function WinMenu(){
addFrameScript(43, frame44);
visible = false;
addEventListener(Event.ENTER_FRAME, Update);
stop();
}
public function Update(_arg1){
if (((main.b_finish) && (!(visible)))){
Show();
} else {
if (((!(main.b_finish)) && (visible))){
Hide();
};
};
}
public function Show(){
gotoAndPlay(1);
visible = true;
}
public function Hide(){
visible = false;
stop();
}
public function Delete(){
removeEventListener(Event.ENTER_FRAME, Update);
parent.removeChild(this);
}
function frame44(){
stop();
}
}
}//package gui
Section 98
//bird_fly (Objects.bird_fly)
package Objects {
import flash.events.*;
import flash.display.*;
public dynamic class bird_fly extends MovieClip {
var dx;
var dy;
var ddx;
var ddy;
var sx;
var sy;
public function bird_fly():void{
var _local1:* = 1;
if (((!(main.m_stage)) || (!(main.m_stage.bg)))){
return;
};
main.m_stage.bg.addChild(this);
sx = (x = ((Math.random() * 640) - 320));
sy = (y = ((Math.random() * 480) - 240));
dx = ((Math.random() * _local1) - (_local1 / 2));
dy = ((Math.random() * _local1) - (_local1 / 2));
ddx = ((Math.random() * 0.01) - 0.005);
ddy = ((Math.random() * 0.01) - 0.005);
scaleX = 0;
scaleY = 0;
addEventListener(Event.ENTER_FRAME, Update);
}
public function Update(_arg1){
if ((((((((x < -400)) || ((x > 400)))) || ((y < -400)))) || ((y > 400)))){
removeEventListener(Event.ENTER_FRAME, Update);
this.parent.removeChild(this);
return;
};
x = (x + dx);
y = (y + dy);
dx = (dx + ddx);
dy = (dy + ddy);
var _local2:* = (((x - sx) * (x - sx)) + ((y - sy) * (y - sy)));
var _local3:* = (1 * ((_local2 / (800 * 800)) + 0.05));
scaleX = _local3;
scaleY = _local3;
}
}
}//package Objects
Section 99
//Box_01 (Objects.Box_01)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import flash.display.*;
public dynamic class Box_01 extends Box_Base {
public function Box_01(){
m_friction = 0.5;
m_density = 0.02;
}
}
}//package Objects
Section 100
//Box_02 (Objects.Box_02)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import flash.display.*;
public dynamic class Box_02 extends Box_Base {
public function Box_02(){
m_friction = 0.5;
m_density = 0.2;
}
}
}//package Objects
Section 101
//Box_Base (Objects.Box_Base)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import flash.display.*;
public dynamic class Box_Base extends MovieClip {
public var p1:Object;
public var p2:Object;
public var p3:Object;
public var p4:Object;
public var m_phys_body;// = 0
public var m_density;// = 0.2
public var m_friction;// = 0.3
public var m_type;// = 5
public var m_angular_damping;// = 0
public var m_linear_damping;// = 0
public var b_bullet;// = false
public function Box_Base(){
main.AddObject(this, m_type);
}
public function CreatePhysBody(){
var _local1:b2PolygonDef;
var _local3:b2Body;
_local1 = new b2PolygonDef();
var _local2:b2BodyDef = new b2BodyDef();
_local1.density = m_density;
_local1.friction = m_friction;
_local1.restitution = 0.1;
_local2.position.Set((x / main.m_physScale), (y / main.m_physScale));
_local2.angle = ((rotation / 180) * Math.PI);
rotation = 0;
_local2.angularDamping = m_angular_damping;
_local2.linearDamping = m_linear_damping;
_local1.SetAsBox(((width / 2) / main.m_physScale), ((height / 2) / main.m_physScale));
_local3 = main.m_world.CreateBody(_local2);
_local3.CreateShape(_local1);
_local3.SetMassFromShapes();
m_phys_body = _local3;
m_phys_body.m_userData = new Object();
m_phys_body.m_userData.m_type = int(m_type);
m_phys_body.m_userData.m_body = this;
if (b_bullet){
m_phys_body.SetBullet(true);
};
}
public function Update(){
if ((((m_phys_body == 0)) && (main.m_stage))){
CreatePhysBody();
};
if (m_phys_body){
x = (m_phys_body.GetPosition().x * main.m_physScale);
y = (m_phys_body.GetPosition().y * main.m_physScale);
rotation = ((m_phys_body.GetAngle() / Math.PI) * 180);
};
}
public function Destroy(){
main.m_world.DestroyBody(m_phys_body);
}
public function ExploseForce(_arg1, _arg2, _arg3=0){
var _local4:*;
var _local5:*;
if (m_phys_body){
_arg2 = (_arg2 * m_phys_body.GetMass());
_local5 = new b2Vec2((_arg1.x * _arg2), (_arg1.y * _arg2));
if (_arg3 == 0){
_local4 = new b2Vec2(m_phys_body.GetPosition().x, m_phys_body.GetPosition().y);
} else {
_local4 = _arg3;
};
m_phys_body.ApplyImpulse(_local5, _local4);
};
}
}
}//package Objects
Section 102
//BoxStatic_Base (Objects.BoxStatic_Base)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import flash.display.*;
public dynamic class BoxStatic_Base extends MovieClip {
public var p1:Object;
public var p2:Object;
public var p3:Object;
public var p4:Object;
public var m_phys_body;// = 0
public var m_type;// = 0
public var m_friction;// = 0.5
public var m_filter;// = -4
public function BoxStatic_Base(){
main.AddObject(this, m_type);
}
public function CreatePhysBody(){
var _local1:b2PolygonDef;
var _local2:b2BodyDef;
var _local3:b2Body;
_local1 = new b2PolygonDef();
_local2 = new b2BodyDef();
_local1.density = 0;
_local1.friction = m_friction;
_local1.restitution = 0.1;
_local1.filter.groupIndex = this.m_filter;
_local2.position.Set((x / main.m_physScale), (y / main.m_physScale));
_local2.angle = ((rotation / 180) * Math.PI);
rotation = 0;
_local1.SetAsBox(((width / main.m_physScale) / 2), ((height / main.m_physScale) / 2));
_local3 = main.m_world.CreateBody(_local2);
_local3.CreateShape(_local1);
_local3.SetMassFromShapes();
m_phys_body = _local3;
m_phys_body.m_userData = new Object();
m_phys_body.m_userData.m_type = m_type;
m_phys_body.m_userData.m_body = this;
}
public function Update(){
if ((((m_phys_body == 0)) && (main.m_stage))){
CreatePhysBody();
};
if (m_phys_body){
x = (m_phys_body.GetPosition().x * main.m_physScale);
y = (m_phys_body.GetPosition().y * main.m_physScale);
rotation = ((m_phys_body.GetAngle() / Math.PI) * 180);
};
}
public function Destroy(){
main.m_world.DestroyBody(m_phys_body);
if (parent){
parent.removeChild(this);
};
}
}
}//package Objects
Section 103
//BoxStaticRemovable (Objects.BoxStaticRemovable)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import flash.display.*;
public dynamic class BoxStaticRemovable extends BoxStatic_Base {
public function BoxStaticRemovable(){
m_filter = 0;
}
}
}//package Objects
Section 104
//Car_Base (Objects.Car_Base)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import flash.events.*;
import flash.display.*;
public dynamic class Car_Base extends MovieClip {
public var m_phys_body:b2Body;
private var pw;
private var pa;
private var pm;
private var ps;
private var box;
public var ibox;
public var bw;
public var iw;
private var spring_length;
public var b_breaks;// = true
public var m_dens;// = 0.2
public var m_frict;// = 1.5
public var m_force;// = 4.5
public var b_bad;// = false
public var b_back;// = false
public var b_tormoza;// = true
public var m_group_num;
public var m_sound;// = 0
public var m_sound_type;// = 0
public var b_big;// = false
public var m_type;// = 1
public function Car_Base(_arg1=0, _arg2=0):void{
pw = new Array();
pa = new Array();
pm = new Array();
ps = new Array();
bw = new Array();
iw = new Array();
super();
if (((!((_arg1 == 0))) && (!((_arg2 == 0))))){
x = _arg1;
y = _arg2;
};
m_group_num = main.g_num;
main.g_num--;
}
public function FirstInit(_arg1){
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
box = _arg1.Box;
box.visible = false;
var _local2:* = 1;
var _local3:* = true;
while (_local3) {
_local4 = ("Wheel" + _local2);
_local5 = ("IWheel" + _local2);
_local6 = this[_local4];
_local7 = this[_local5];
if ((((_local6 == undefined)) || ((_local7 == undefined)))){
_local3 = false;
} else {
_local6.visible = false;
bw.push(_local6);
iw.push(_local7);
_local2++;
};
};
ibox = _arg1.IBox;
Init();
main.AddObject(this, m_type);
}
public function MouseDown(_arg1){
if (b_breaks){
UnBreak();
} else {
Break(b_tormoza);
};
}
private function Init():void{
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:int;
var _local10:b2Body;
var _local11:b2BodyDef;
var _local12:b2PolygonDef;
var _local13:b2CircleDef;
var _local14:b2RevoluteJointDef;
var _local15:b2PrismaticJointDef;
_local3 = box.width;
_local4 = box.height;
_local11 = new b2BodyDef();
_local12 = new b2PolygonDef();
_local12.density = m_dens;
_local12.friction = 0.5;
_local12.restitution = 0.2;
_local12.filter.groupIndex = m_group_num;
_local11.position.Set(((x + box.x) / main.m_physScale), ((y + box.y) / main.m_physScale));
_local11.angle = ((rotation / 180) * Math.PI);
_local12.SetAsBox(((_local3 / 2) / main.m_physScale), ((_local4 / 2) / main.m_physScale));
m_phys_body = main.m_world.CreateBody(_local11);
m_phys_body.m_userData = new Object();
m_phys_body.m_userData.m_type = int(1);
m_phys_body.m_userData.m_body = this;
m_phys_body.CreateShape(_local12);
m_phys_body.SetMassFromShapes();
_local12.density = 1;
_local12.friction = 0.5;
_local9 = 0;
while (_local9 < bw.length) {
_local1 = (bw[_local9].width / 2);
_local2 = (bw[_local9].width / 2);
spring_length = ((bw[_local9].y - box.y) + (_local4 / 2));
_local11.position.Set(((x + bw[_local9].x) / main.m_physScale), (((y + bw[_local9].y) - (_local1 / 2)) / main.m_physScale));
_local11.angle = (Math.PI / 2);
_local6 = main.m_world.CreateBody(_local11);
_local12.SetAsBox((5 / main.m_physScale), (5 / main.m_physScale));
_local6.CreateShape(_local12);
_local6.SetMassFromShapes();
_local15 = new b2PrismaticJointDef();
_local15.Initialize(m_phys_body, _local6, _local6.GetWorldCenter(), new b2Vec2(0, 1));
_local15.lowerTranslation = (-(spring_length) / main.m_physScale);
_local15.upperTranslation = (spring_length / main.m_physScale);
_local15.enableLimit = true;
_local15.enableMotor = true;
_local8 = (main.m_world.CreateJoint(_local15) as b2PrismaticJoint);
_local13 = new b2CircleDef();
_local13.radius = (_local1 / main.m_physScale);
_local13.density = m_dens;
_local13.friction = m_frict;
_local13.restitution = 0.2;
_local13.filter.groupIndex = m_group_num;
_local11 = new b2BodyDef();
_local11.position.Set(((bw[_local9].x + x) / main.m_physScale), ((bw[_local9].y + y) / main.m_physScale));
_local11.allowSleep = false;
_local5 = main.m_world.CreateBody(_local11);
_local5.CreateShape(_local13);
_local5.SetMassFromShapes();
_local5.m_userData = new Object();
_local5.m_userData.m_type = int(1);
_local5.m_userData.m_body = this;
_local14 = new b2RevoluteJointDef();
_local14.enableMotor = true;
_local14.Initialize(_local6, _local5, _local5.GetWorldCenter());
_local7 = (main.m_world.CreateJoint(_local14) as b2RevoluteJoint);
_local8.SetMaxMotorForce(100000);
_local8.SetMaxMotorForce(100000);
pw.push(_local5);
pa.push(_local6);
pm.push(_local7);
ps.push(_local8);
_local9++;
};
Break(true, true);
}
public function GetPosition(){
return ([(m_phys_body.GetPosition().x * main.m_physScale), (m_phys_body.GetPosition().y * main.m_physScale)]);
}
public function Update(){
var _local1:*;
if (m_phys_body){
ibox.x = ((m_phys_body.GetPosition().x * main.m_physScale) - x);
ibox.y = ((m_phys_body.GetPosition().y * main.m_physScale) - y);
ibox.rotation = ((m_phys_body.GetAngle() / Math.PI) * 180);
};
_local1 = 0;
while (_local1 < iw.length) {
iw[_local1].x = ((pw[_local1].GetPosition().x * main.m_physScale) - x);
iw[_local1].y = ((pw[_local1].GetPosition().y * main.m_physScale) - y);
iw[_local1].rotation = ((pw[_local1].GetAngle() / Math.PI) * 180);
ps[_local1].SetMaxMotorForce((30 + Math.abs((800 * Math.pow(ps[_local1].GetJointTranslation(), 2)))));
ps[_local1].SetMotorSpeed(((ps[_local1].GetMotorSpeed() - (10 * ps[_local1].GetJointTranslation())) * 0.4));
_local1++;
};
var _local2:* = (spring_length / 20);
if (b_breaks == false){
};
}
public function Destroy(){
var _local1:*;
for each (_local1 in pm) {
main.m_world.DestroyJoint(_local1);
};
for each (_local1 in ps) {
main.m_world.DestroyJoint(_local1);
};
for each (_local1 in pw) {
main.m_world.DestroyBody(_local1);
};
for each (_local1 in pa) {
main.m_world.DestroyBody(_local1);
};
main.m_world.DestroyBody(m_phys_body);
for each (_local1 in bw) {
_local1.parent.removeChild(_local1);
};
for each (_local1 in iw) {
_local1.parent.removeChild(_local1);
};
box.parent.removeChild(box);
ibox.parent.removeChild(ibox);
}
public function Break(_arg1, _arg2=false){
var _local3:*;
var _local4:*;
if (b_bad){
return;
};
ibox.smoke.visible = false;
b_breaks = true;
for each (_local3 in pm) {
if (_arg1){
_local4 = _local3.GetJointAngle();
_local3.EnableLimit(true);
_local3.SetLimits((_local4 - 0.1), (_local4 + 0.1));
};
_local3.EnableMotor(false);
};
if (_arg2 == false){
if (main.b_sound){
if (m_sound){
m_sound.stop();
};
m_sound = main.m_main.BreakingSound.play(0, 1);
};
};
}
public function UnBreak(){
if (b_bad){
return;
};
b_breaks = false;
for each (i in pm) {
i.EnableLimit(false);
i.EnableMotor(true);
i.SetMotorSpeed((m_force * Math.PI));
i.SetMaxMotorTorque(30000);
};
if (main.b_sound){
if (m_sound){
m_sound.stop();
};
if (b_big){
m_sound = main.m_main.GasBigSound.play(0, 1);
} else {
m_sound = main.m_main.GasSmallSound.play(0, 1);
};
};
ibox.smoke.visible = true;
}
public function ExploseForce(_arg1, _arg2){
var _local3:*;
var _local4:*;
if (m_phys_body){
_local3 = new b2Vec2((_arg1.x * _arg2), (_arg1.y * _arg2));
_local4 = new b2Vec2(m_phys_body.GetPosition().x, m_phys_body.GetPosition().y);
m_phys_body.ApplyImpulse(_local3, _local4);
};
}
}
}//package Objects
Section 105
//Car1 (Objects.Car1)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import flash.events.*;
public dynamic class Car1 extends Car_Base {
public function Car1(_arg1=0, _arg2=0):void{
var _local3:*;
var _local4:*;
super();
if (((!((_arg1 == 0))) && (!((_arg2 == 0))))){
_local3 = this.IBox.x;
_local4 = this.IBox.y;
x = (_arg1 - _local3);
y = (_arg2 - _local4);
};
m_dens = 0.1;
m_frict = 1.5;
m_force = 6.5;
b_bad = false;
b_tormoza = true;
FirstInit(this);
this.m_back = "Car1_Back";
this.b_left = true;
}
}
}//package Objects
Section 106
//Car3_Back (Objects.Car3_Back)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import flash.events.*;
public dynamic class Car3_Back extends Car_Base {
public function Car3_Back(_arg1=0, _arg2=0):void{
var _local3:*;
var _local4:*;
super();
if (((!((_arg1 == 0))) && (!((_arg2 == 0))))){
_local3 = this.IBox.x;
_local4 = this.IBox.y;
x = (_arg1 - _local3);
y = (_arg2 - _local4);
};
m_dens = 0.1;
m_frict = 0.7;
m_force = -7.5;
b_bad = false;
b_tormoza = true;
b_big = true;
FirstInit(this);
this.m_back = "Car3";
this.b_left = false;
}
}
}//package Objects
Section 107
//Car4_Back (Objects.Car4_Back)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import flash.events.*;
public dynamic class Car4_Back extends Car_Base {
public function Car4_Back(_arg1=0, _arg2=0):void{
var _local3:*;
var _local4:*;
super();
if (((!((_arg1 == 0))) && (!((_arg2 == 0))))){
_local3 = this.IBox.x;
_local4 = this.IBox.y;
x = (_arg1 - _local3);
y = (_arg2 - _local4);
};
m_dens = 0.1;
m_frict = 0.7;
m_force = -7.5;
b_bad = false;
b_tormoza = true;
b_big = true;
FirstInit(this);
this.m_back = "Car4";
this.b_left = false;
}
}
}//package Objects
Section 108
//Circle (Objects.Circle)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import flash.display.*;
public dynamic class Circle extends MovieClip {
public var p1:Object;
public var p2:Object;
public var p3:Object;
public var p4:Object;
public var m_phys_body;// = 0
public var m_type;// = 9
public var b_bullet;// = false
public function Circle(){
main.AddObject(this, m_type);
}
public function CreatePhysBody(){
var _local1:b2BodyDef;
_local1 = new b2BodyDef();
_local1.position.Set((x / main.m_physScale), (y / main.m_physScale));
_local1.angle = ((rotation / 180) * Math.PI);
rotation = 0;
var _local2:b2CircleDef = new b2CircleDef();
_local2.radius = ((width / main.m_physScale) / 2);
_local2.density = 0.2;
_local2.restitution = 0.2;
_local2.friction = 0.1;
b = main.m_world.CreateBody(_local1);
b.CreateShape(_local2);
b.SetMassFromShapes();
m_phys_body = b;
m_phys_body.m_userData = new Object();
m_phys_body.m_userData.m_type = m_type;
m_phys_body.m_userData.m_body = this;
if (b_bullet){
m_phys_body.SetBullet(true);
};
}
public function Update(){
if ((((m_phys_body == 0)) && (main.m_stage))){
CreatePhysBody();
};
if (m_phys_body){
x = (m_phys_body.GetPosition().x * main.m_physScale);
y = (m_phys_body.GetPosition().y * main.m_physScale);
rotation = ((m_phys_body.GetAngle() / Math.PI) * 180);
};
}
public function Destroy(){
main.m_world.DestroyBody(m_phys_body);
}
public function ExploseForce(_arg1, _arg2){
var _local3:*;
var _local4:*;
if (m_phys_body){
_arg2 = (_arg2 * m_phys_body.GetMass());
_local3 = new b2Vec2((_arg1.x * _arg2), (_arg1.y * _arg2));
_local4 = new b2Vec2(m_phys_body.GetPosition().x, m_phys_body.GetPosition().y);
m_phys_body.ApplyImpulse(_local3, _local4);
};
}
}
}//package Objects
Section 109
//ContactListenerClass (Objects.ContactListenerClass)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import flash.events.*;
public class ContactListenerClass extends b2ContactListener {
public var contactStack:Array;
public function ContactListenerClass(){
contactStack = new Array();
super();
}
override public function Add(_arg1:b2ContactPoint):void{
var _local6:Number;
var _local7:b2Vec2;
var _local8:b2Vec2;
var _local2:b2Shape = _arg1.shape1;
var _local3:b2Shape = _arg1.shape2;
var _local4:* = -1;
var _local5:* = -1;
if (_local2.GetBody().m_userData){
_local4 = _local2.GetBody().m_userData.m_type;
};
if (_local3.GetBody().m_userData){
_local5 = _local3.GetBody().m_userData.m_type;
};
if (_local4 == 6){
_local2.GetBody().m_userData.m_body.b_need_delete = true;
};
if (_local5 == 6){
_local3.GetBody().m_userData.m_body.b_need_delete = true;
};
if ((((((((((_local4 == 6)) && ((_local5 == 8)))) || ((((_local4 == 8)) && ((_local5 == 6)))))) || ((((_local4 == 1)) && ((_local5 == 8)))))) || ((((_local4 == 8)) && ((_local5 == 1)))))){
if (_local4 == 8){
contactStack.push({car:_local2.GetBody(), man:_local3.GetBody()});
} else {
contactStack.push({car:_local3.GetBody(), man:_local2.GetBody()});
};
};
if (((!((_local4 == -1))) && (!((_local5 == -1))))){
if ((((((_local4 == 6)) && ((_local5 == 2)))) || ((((_local5 == 6)) && ((_local4 == 2)))))){
_local6 = _arg1.separation;
_local7 = _arg1.position.Copy();
_local8 = _arg1.normal.Copy();
if (_local4 == 6){
contactStack.push({car:_local2.GetBody(), man:_local3.GetBody(), force:_local6, pos:_local7, norm:_local8});
} else {
contactStack.push({car:_local3.GetBody(), man:_local2.GetBody(), force:_local6, pos:_local7, norm:_local8});
};
};
};
}
}
}//package Objects
Section 110
//Explosive_1 (Objects.Explosive_1)
package Objects {
import flash.events.*;
import flash.display.*;
public dynamic class Explosive_1 extends Explosive_Base {
public function Explosive_1(){
addFrameScript(0, frame1);
m_density = 0.4;
m_friction = 0.5;
m_force = 500;
m_time = 0;
m_radius = 50;
}
function frame1(){
stop();
}
}
}//package Objects
Section 111
//Explosive_Base (Objects.Explosive_Base)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import flash.display.*;
import flash.utils.*;
public dynamic class Explosive_Base extends Box_Base {
private var size1;// = 0
private var color1;// = 14922046
private var size2;// = 3
private var color2;// = 16776805
public var m_force;// = 100
public var m_time;// = 0
public var m_radius;// = 200
var t_time;// = 0
var b_start;// = false
var b_final;// = false
var b_visible_parts;// = false
var m_parts;
var b_bum;// = false
public function Explosive_Base(){
m_parts = new Array();
super();
m_type = 8;
}
override public function Update(){
super.Update();
if (b_bum){
return;
};
if (((!(b_visible_parts)) && (this.Selector.hitTestPoint(main.m_main.mouseX, main.m_main.mouseY)))){
ShowParts(true);
};
if (((b_visible_parts) && (!(this.Selector.hitTestPoint(main.m_main.mouseX, main.m_main.mouseY))))){
ShowParts(false);
};
if (b_final){
return;
};
var _local1:* = getTimer();
}
public function AddPart(_arg1, _arg2){
var _local3:* = new MovieClip();
_local3.m_a = _arg1;
_local3.m_r = _arg2;
var _local4:* = new GrenadePart();
_local4.rotation = (_arg1 - 15);
_local4.x = (_arg2 * Math.cos(((_arg1 / 180) * Math.PI)));
_local4.y = (_arg2 * Math.sin(((_arg1 / 180) * Math.PI)));
var _local5:* = new Shape();
_local5.graphics.lineStyle(size1, color1);
_local5.graphics.moveTo(0, 0);
_local5.graphics.lineTo(_local4.x, _local4.y);
_local5.alpha = 0.6;
_local3.addChild(_local5);
_local3.addChild(_local4);
addChild(_local3);
m_parts.push(_local3);
_local3.visible = false;
}
public function ShowParts(_arg1){
var _local2:*;
for each (_local2 in m_parts) {
_local2.visible = _arg1;
};
b_visible_parts = _arg1;
}
public function Explose(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
var _local13:*;
var _local14:*;
var _local7:* = new b2Vec2();
if (b_bum){
return;
};
if (main.b_sound){
main.m_main.ExplosionSound.play();
};
b_bum = true;
main.shake_num = 7;
_local3 = new Explosion();
_local3.x = x;
_local3.y = y;
main.m_stage.addChild(_local3);
gotoAndStop(2);
ShowParts(false);
m_phys_body.m_shapeList.m_filter.groupIndex = -4;
_local5 = x;
_local6 = y;
for each (_local1 in m_parts) {
_local10 = _local5;
_local11 = _local6;
_local3 = new GrenadePhysPart(_local10, _local11, (_local1.m_a + rotation), _local1.m_r);
main.m_stage.addChild(_local3);
};
for each (_local1 in main.m_objects) {
if (((_local1.ExploseForce) && (!((_local1 == this))))){
_local12 = _local1.x;
_local13 = _local1.y;
if ((((_local1.m_type == 1)) || ((_local1.m_type == 3)))){
_local14 = _local1.GetPosition();
_local12 = _local14[0];
_local13 = _local14[1];
};
if ((((_local1.m_type == 5)) || ((_local1.m_type == 8)))){
_local9 = _local1.m_phys_body.m_shapeList.GetVertices();
for each (_local4 in _local9) {
_local12 = ((_local4.x * main.m_physScale) + _local1.x);
_local13 = ((_local4.y * main.m_physScale) + _local1.y);
_local7.x = (_local12 - _local5);
_local7.y = (_local13 - _local6);
_local8 = _local7.Length();
if (_local8 < m_radius){
_local7.Normalize();
_local1.ExploseForce(_local7, ((m_force / _local8) * 0.25), new b2Vec2((_local12 / main.m_physScale), (_local13 / main.m_physScale)));
};
};
} else {
_local7.x = (_local12 - _local5);
_local7.y = (_local13 - _local6);
_local8 = _local7.Length();
if (_local8 < m_radius){
_local7.Normalize();
_local1.ExploseForce(_local7, (m_force / _local8));
};
};
};
};
}
override public function Destroy(){
super.Destroy();
parent.removeChild(this);
}
}
}//package Objects
Section 112
//Explosive_WorkPart (Objects.Explosive_WorkPart)
package Objects {
import flash.events.*;
import flash.display.*;
public dynamic class Explosive_WorkPart extends MovieClip {
public var b_action;// = false
public function Explosive_WorkPart():void{
addEventListener(Event.ENTER_FRAME, Update);
}
public function Update(_arg1){
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
for each (i in main.m_objects) {
if ((((i.m_type == 8)) && ((i.name == name)))){
_local2 = (x - i.x);
_local3 = (y - i.y);
_local4 = ((Math.atan2(_local3, _local2) / Math.PI) * 180);
_local5 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3)));
i.AddPart(_local4, _local5);
};
};
removeEventListener(Event.ENTER_FRAME, Update);
parent.removeChild(this);
}
}
}//package Objects
Section 113
//FireControll (Objects.FireControll)
package Objects {
import flash.events.*;
import flash.display.*;
import gui.*;
import flash.geom.*;
public dynamic class FireControll {
public var m_level_fires;
public var m_body_fires;
public var m_car_fires;
public var m_counter;
public function FireControll(){
trace("Create FireControll");
m_level_fires = new Array();
m_body_fires = new Array();
m_car_fires = new Array();
}
public function AddLevelFire(_arg1){
_arg1.b_enabled = true;
m_level_fires.push(_arg1);
}
public function Update(){
var _local1:*;
var _local2:*;
var _local3:*;
m_counter = 0;
for each (_local1 in m_level_fires) {
if (_local1.b_enabled == true){
for each (_local2 in main.m_objects) {
if ((((_local2.m_type == 3)) && (!((_local2.b_fired == true))))){
if ((((((((((((_local2.m_ibody.b_fire == true)) && ((_local2.m_ihand1.b_fire == true)))) && ((_local2.m_ihand2.b_fire == true)))) && ((_local2.m_ileg1.b_fire == true)))) && ((_local2.m_ileg2.b_fire == true)))) && ((_local2.m_ihead.b_fire == true)))){
_local3 = new BonusStar(_local2.m_ibody.x, _local2.m_ibody.y, 10);
_local2.b_fired = true;
};
};
if ((((_local2.m_type == 3)) && (!((_local2.b_fired == true))))){
TryFirePart(_local1, _local2.m_ibody);
TryFirePart(_local1, _local2.m_ihand1);
TryFirePart(_local1, _local2.m_ihand2);
TryFirePart(_local1, _local2.m_ileg1);
TryFirePart(_local1, _local2.m_ileg2);
TryFirePart(_local1, _local2.m_ihead);
};
};
};
};
for each (_local1 in m_body_fires) {
_local1.x = _local1.m_body.x;
_local1.y = _local1.m_body.y;
};
for each (_local1 in main.m_objects) {
if ((((_local1.m_type == 3)) && (!((_local1.b_fired == true))))){
for each (_local2 in m_body_fires) {
if (TryFirePart(_local2, _local1.m_ibody)){
break;
};
if (TryFirePart(_local2, _local1.m_ihand1)){
break;
};
if (TryFirePart(_local2, _local1.m_ihand2)){
break;
};
if (TryFirePart(_local2, _local1.m_ileg1)){
break;
};
if (TryFirePart(_local2, _local1.m_ileg2)){
break;
};
if (TryFirePart(_local2, _local1.m_ihead)){
break;
};
};
};
};
}
public function TryFirePart(_arg1, _arg2){
if (_arg2.b_fire != true){
if (IfNear(_arg1, _arg2)){
_arg2.b_fire = true;
AddFireBody(_arg2);
return (true);
};
};
return (false);
}
public function AddFireBody(_arg1){
if (main.b_sound){
main.m_main.FireSmallSound.play();
};
var _local2:* = new FireBody();
_local2.x = _arg1.x;
_local2.y = _arg1.y;
_local2.alpha = 0.5;
main.m_main.addChild(_local2);
_local2.m_body = _arg1;
m_body_fires.push(_local2);
}
public function IfNear(_arg1, _arg2){
m_counter++;
var _local3:* = 20;
var _local4:* = 20;
if ((((Math.abs((_arg1.x - _arg2.x)) < _local3)) && ((Math.abs((_arg1.y - _arg2.y)) < _local4)))){
return (true);
};
return (false);
}
public function FreeAll(){
for each (i in m_body_fires) {
i.parent.removeChild(i);
};
for each (i in m_car_fires) {
i.parent.removeChild(i);
};
m_level_fires.splice(0);
m_body_fires.splice(0);
m_car_fires.splice(0);
}
public function Init(){
var _local1:*;
var _local2:* = false;
for each (_local1 in main.m_objects) {
if (_local1.m_type == 4){
_local2 = true;
break;
};
};
if (_local2){
for each (_local1 in m_level_fires) {
_local1.DisableFire();
};
};
}
public function Activate(){
var _local1:*;
for each (_local1 in m_level_fires) {
_local1.EnableFire();
};
}
}
}//package Objects
Section 114
//Grenade (Objects.Grenade)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import flash.display.*;
public dynamic class Grenade extends MovieClip {
private var size1;// = 0
private var color1;// = 14922046
private var size2;// = 3
private var color2;// = 16776805
public var m_parts;
public var b_activated;// = false
public var m_radius;// = 50
public var m_force;// = 500
public function Grenade(){
m_parts = new Array();
super();
this.BBum.addEventListener(MouseEvent.MOUSE_DOWN, BumDown);
}
public function BumDown(_arg1){
main.StartGameNow();
Explose();
main.m_objects_panel.GlowImg(this, false);
main.m_objects_panel.m_selected = 0;
main.m_objects_panel.m_selected_2 = 0;
main.shake_num = 7;
if (main.b_sound){
main.m_main.ExplosionSound.play();
};
}
public function AddPart(_arg1, _arg2){
var _local3:* = new MovieClip();
_local3.m_a = _arg1;
_local3.m_r = _arg2;
var _local4:* = new GrenadePart();
_local4.rotation = (_arg1 - 15);
_local4.x = (_arg2 * Math.cos(((_arg1 / 180) * Math.PI)));
_local4.y = (_arg2 * Math.sin(((_arg1 / 180) * Math.PI)));
var _local5:* = new Shape();
_local5.graphics.lineStyle(size1, color1);
_local5.graphics.moveTo(0, 0);
_local5.graphics.lineTo(_local4.x, _local4.y);
_local5.alpha = 0.6;
_local3.addChild(_local5);
_local3.mouseEnabled = false;
_local3.mouseChildren = false;
_local3.addChild(_local4);
this.CenterBox.addChild(_local3);
m_parts.push(_local3);
_local3.visible = false;
}
public function ShowParts(_arg1){
var _local2:*;
for each (_local2 in m_parts) {
_local2.visible = _arg1;
};
b_activated = _arg1;
}
public function Explose(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
var _local13:*;
var _local14:*;
var _local5:* = new b2Vec2();
_local3 = ((x + parent.x) + parent.parent.x);
_local4 = ((y + parent.y) + parent.parent.y);
_local8 = new Explosion();
_local8.x = _local3;
_local8.y = _local4;
main.m_stage.addChild(_local8);
for each (_local1 in m_parts) {
_local9 = _local3;
_local10 = _local4;
_local8 = new GrenadePhysPart(_local9, _local10, (_local1.m_a + rotation), _local1.m_r);
main.m_stage.addChild(_local8);
};
for each (_local1 in main.m_objects) {
if (_local1.ExploseForce){
_local11 = _local1.x;
_local12 = _local1.y;
if ((((_local1.m_type == 1)) || ((_local1.m_type == 3)))){
_local13 = _local1.GetPosition();
_local11 = _local13[0];
_local12 = _local13[1];
};
if ((((_local1.m_type == 5)) || ((_local1.m_type == 8)))){
_local7 = _local1.m_phys_body.m_shapeList.GetVertices();
for each (_local2 in _local7) {
_local5.x = _local2.x;
_local5.y = _local2.y;
_local5.Rotate(((_local1.rotation / 180) * Math.PI));
_local11 = ((_local5.x * main.m_physScale) + _local1.x);
_local12 = ((_local5.y * main.m_physScale) + _local1.y);
_local5.x = (_local11 - _local3);
_local5.y = (_local12 - _local4);
_local6 = _local5.Length();
if (_local6 < m_radius){
_local5.Normalize();
_local1.ExploseForce(_local5, ((m_force / _local6) * 0.25), new b2Vec2((_local11 / main.m_physScale), (_local12 / main.m_physScale)));
};
};
} else {
_local5.x = (_local11 - _local3);
_local5.y = (_local12 - _local4);
_local6 = _local5.Length();
_local14 = 0;
if (_local1.m_type == 9){
_local14 = (_local1.width / 2);
};
if ((_local6 - _local14) < m_radius){
_local5.Normalize();
_local1.ExploseForce(_local5, (m_force / _local6));
};
};
};
};
visible = false;
}
}
}//package Objects
Section 115
//GrenadePartSled (Objects.GrenadePartSled)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import flash.display.*;
public dynamic class GrenadePartSled extends MovieClip {
var sx;
var sy;
var sw;
var sh;
var dh;
public function GrenadePartSled(_arg1, _arg2){
x = (sx = _arg1);
y = (sy = _arg2);
dh = (height / width);
addEventListener(Event.ENTER_FRAME, Update);
main.m_stage.addChild(this);
}
public function Move(_arg1, _arg2){
rotation = 0;
var _local3:* = Math.sqrt((((_arg1 - sx) * (_arg1 - sx)) + ((_arg2 - sy) * (_arg2 - sy))));
width = _local3;
height = (_local3 * dh);
rotation = ((Math.atan2((_arg2 - sy), (_arg1 - sx)) / Math.PI) * 180);
}
public function Update(_arg1){
alpha = (alpha - 0.05);
if (alpha <= 0){
removeEventListener(Event.ENTER_FRAME, Update);
parent.removeChild(this);
};
}
}
}//package Objects
Section 116
//GrenadePhysPart (Objects.GrenadePhysPart)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import flash.display.*;
public dynamic class GrenadePhysPart extends MovieClip {
public var p1:Object;
public var p2:Object;
public var p3:Object;
public var p4:Object;
public var m_phys_body;// = 0
public var m_type;// = 6
public var b_bullet;// = true
public var b_need_delete;// = false
var rot;// = 0
var max_dist;// = 0
var m_filter;// = -4
var ox;
var oy;
var sled;// = 0
public function GrenadePhysPart(_arg1=0, _arg2=0, _arg3=0, _arg4=0){
ox = (x = _arg1);
oy = (y = _arg2);
rot = ((_arg3 / 180) * Math.PI);
max_dist = (_arg4 * _arg4);
main.AddObject(this, m_type);
sled = new GrenadePartSled(x, y);
}
public function CreatePhysBody(){
var _local1:b2BodyDef = new b2BodyDef();
_local1.position.Set((x / main.m_physScale), (y / main.m_physScale));
_local1.angle = ((rotation / 180) * Math.PI);
rotation = 0;
var _local2:b2CircleDef = new b2CircleDef();
_local2.radius = ((width / main.m_physScale) / 2);
_local2.density = 0.1;
_local2.restitution = 0.2;
_local2.friction = 0.1;
_local2.filter.groupIndex = this.m_filter;
_local2.filter.m_type = 2;
b = main.m_world.CreateBody(_local1);
b.CreateShape(_local2);
b.SetMassFromShapes();
m_phys_body = b;
m_phys_body.m_userData = new Object();
m_phys_body.m_userData.m_type = m_type;
m_phys_body.m_userData.m_body = this;
if (b_bullet){
m_phys_body.SetBullet(true);
};
ForcePart(40);
}
public function Update(){
var _local1:*;
if ((((m_phys_body == 0)) && (main.m_stage))){
CreatePhysBody();
};
if (m_phys_body){
x = (m_phys_body.GetPosition().x * main.m_physScale);
y = (m_phys_body.GetPosition().y * main.m_physScale);
rotation = ((m_phys_body.GetAngle() / Math.PI) * 180);
if (sled){
sled.Move(x, y);
};
_local1 = (((ox - x) * (ox - x)) + ((oy - y) * (oy - y)));
if (b_need_delete == true){
if (_local1 >= max_dist){
x = (ox + (Math.cos(rot) * Math.sqrt(max_dist)));
y = (oy + (Math.sin(rot) * Math.sqrt(max_dist)));
if (sled){
sled.Move(x, y);
};
};
main.DeleteObject(this);
return;
};
if (_local1 >= max_dist){
x = (ox + (Math.cos(rot) * Math.sqrt(max_dist)));
y = (oy + (Math.sin(rot) * Math.sqrt(max_dist)));
if (sled){
sled.Move(x, y);
};
main.DeleteObject(this);
return;
};
};
}
public function IfCan(_arg1, _arg2){
dist = (((ox - _arg1) * (ox - _arg1)) + ((oy - _arg2) * (oy - _arg2)));
if (dist >= max_dist){
return (false);
};
return (true);
}
public function Destroy(){
var _local1:* = new BuhPart();
_local1.angle = ((rotation / 180) * Math.PI);
_local1.x = x;
_local1.y = y;
main.m_stage.addChild(_local1);
sled = 0;
main.m_world.DestroyBody(m_phys_body);
if (parent){
parent.removeChild(this);
};
}
public function ForcePart(_arg1){
var _local2:*;
var _local3:*;
if (m_phys_body){
_arg1 = (_arg1 * m_phys_body.GetMass());
_local2 = new b2Vec2((Math.cos(rot) * _arg1), (Math.sin(rot) * _arg1));
_local3 = new b2Vec2(m_phys_body.GetPosition().x, m_phys_body.GetPosition().y);
m_phys_body.ApplyImpulse(_local2, _local3);
};
}
}
}//package Objects
Section 117
//Joint (Objects.Joint)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import flash.display.*;
public dynamic class Joint extends MovieClip {
public var m_phys_body;// = 0
public var m_phys_body2;// = 0
var m_joint;// = null
public var m_speed;// = 0
var m_break_force;// = 100000
public function Joint(){
main.AddObject(this, 11);
}
public function GetBody(_arg1:Boolean=false){
var _local10:b2Shape;
var _local11:Boolean;
var _local2:b2Vec2 = new b2Vec2();
_local2.Set((x / main.m_physScale), (y / main.m_physScale));
var _local3:b2AABB = new b2AABB();
_local3.lowerBound.Set(((x / main.m_physScale) - 0.001), ((y / main.m_physScale) - 0.001));
_local3.upperBound.Set(((x / main.m_physScale) + 0.001), ((y / main.m_physScale) + 0.001));
var _local4 = 10;
var _local5:Array = new Array();
var _local6:int = main.m_world.Query(_local3, _local5, _local4);
var _local7:b2Body;
var _local8:b2Body;
var _local9:int;
while (_local9 < _local6) {
_local10 = (_local5[_local9] as b2Shape);
_local11 = (_local5[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), _local2);
if (_local11){
if (_local7 == null){
_local7 = _local10.GetBody();
} else {
_local8 = _local10.GetBody();
break;
};
};
_local9++;
};
return ([_local7, _local8]);
}
public function CreatePhysBody(){
var _local2:b2RevoluteJointDef;
var _local3:*;
var _local1:* = GetBody();
m_phys_body = _local1[0];
m_phys_body2 = _local1[1];
if (m_phys_body){
_local2 = new b2RevoluteJointDef();
_local3 = new b2Vec2((x / main.m_physScale), (y / main.m_physScale));
if (m_phys_body2){
_local2.Initialize(m_phys_body, m_phys_body2, _local3);
} else {
_local2.Initialize(main.m_world.GetGroundBody(), m_phys_body, _local3);
};
m_joint = (main.m_world.CreateJoint(_local2) as b2RevoluteJoint);
if (m_speed){
m_joint.EnableMotor(true);
m_joint.SetMotorSpeed((m_speed * Math.PI));
m_joint.SetMaxMotorTorque(10000);
};
};
}
public function Update(){
var _local1:*;
if ((((m_phys_body == 0)) && (main.m_stage))){
CreatePhysBody();
if (!m_phys_body){
main.DeleteObject(this);
return;
};
};
if (m_joint){
_local1 = m_joint.GetAnchor1();
x = (_local1.x * main.m_physScale);
y = (_local1.y * main.m_physScale);
if (m_joint.m_pivotForce.Length() > m_break_force){
main.DeleteObject(this);
};
if (m_speed){
m_joint.SetMotorSpeed((m_speed * Math.PI));
};
};
}
public function Destroy(){
main.m_world.DestroyJoint(m_joint);
m_joint = null;
if (parent){
parent.removeChild(this);
};
}
}
}//package Objects
Section 118
//JointRotor (Objects.JointRotor)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import flash.display.*;
public dynamic class JointRotor extends Joint {
public function JointRotor(){
m_speed = 1;
}
}
}//package Objects
Section 119
//JointStatic (Objects.JointStatic)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import flash.display.*;
public dynamic class JointStatic extends MovieClip {
public var m_phys_body;// = 0
public var m_phys_body2;// = 0
var m_joint;// = null
var m_speed;// = 0
public function JointStatic(){
main.AddObject(this, 11);
}
public function GetBody(_arg1:Boolean=false){
var _local10:b2Shape;
var _local11:Boolean;
var _local2:b2Vec2 = new b2Vec2();
_local2.Set((x / main.m_physScale), (y / main.m_physScale));
var _local3:b2AABB = new b2AABB();
_local3.lowerBound.Set(((x / main.m_physScale) - 0.001), ((y / main.m_physScale) - 0.001));
_local3.upperBound.Set(((x / main.m_physScale) + 0.001), ((y / main.m_physScale) + 0.001));
var _local4 = 10;
var _local5:Array = new Array();
var _local6:int = main.m_world.Query(_local3, _local5, _local4);
var _local7:b2Body;
var _local8:b2Body;
var _local9:int;
while (_local9 < _local6) {
_local10 = (_local5[_local9] as b2Shape);
_local11 = (_local5[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), _local2);
if (_local11){
if (_local7 == null){
_local7 = _local10.GetBody();
} else {
_local8 = _local10.GetBody();
break;
};
};
_local9++;
};
return ([_local7, _local8]);
}
public function CreatePhysBody(){
var _local2:b2RevoluteJointDef;
var _local3:*;
var _local1:* = GetBody();
m_phys_body = _local1[0];
m_phys_body2 = _local1[1];
if (m_phys_body){
_local2 = new b2RevoluteJointDef();
_local3 = new b2Vec2((x / main.m_physScale), (y / main.m_physScale));
if (m_phys_body2){
_local2.Initialize(m_phys_body, m_phys_body2, _local3);
} else {
_local2.Initialize(main.m_world.GetGroundBody(), m_phys_body, _local3);
};
m_joint = (main.m_world.CreateJoint(_local2) as b2RevoluteJoint);
if (m_speed){
m_joint.EnableMotor(true);
m_joint.SetMotorSpeed((m_speed * Math.PI));
m_joint.SetMaxMotorTorque(1);
};
m_joint.m_enableLimit = true;
};
}
public function Update(){
var _local1:*;
if ((((m_phys_body == 0)) && (main.m_stage))){
CreatePhysBody();
if (!m_phys_body){
main.DeleteObject(this);
return;
};
};
if (m_joint){
_local1 = m_joint.GetAnchor1();
x = (_local1.x * main.m_physScale);
y = (_local1.y * main.m_physScale);
};
}
public function Destroy(){
main.m_world.DestroyJoint(m_joint);
m_joint = null;
}
}
}//package Objects
Section 120
//Man_01 (Objects.Man_01)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import flash.events.*;
public dynamic class Man_01 extends Man_Base {
public function Man_01():void{
addFrameScript(0, frame1);
m_img_name = "Man_01_";
Init(this.BBox, this.BBody);
}
function frame1(){
stop();
}
}
}//package Objects
Section 121
//Man_01_reverse (Objects.Man_01_reverse)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import flash.events.*;
public dynamic class Man_01_reverse extends Man_Base {
public function Man_01_reverse():void{
addFrameScript(0, frame1);
m_img_name = "Man_01_";
b_reverse = true;
Init(this.BBox, this.BBody);
}
function frame1(){
stop();
}
}
}//package Objects
Section 122
//Man_02 (Objects.Man_02)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import flash.events.*;
public dynamic class Man_02 extends Man_Base {
public function Man_02():void{
addFrameScript(0, frame1);
m_img_name = "Man_02_";
Init(this.BBox, this.BBody);
}
function frame1(){
stop();
}
}
}//package Objects
Section 123
//Man_03 (Objects.Man_03)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import flash.events.*;
public dynamic class Man_03 extends Man_Base {
public function Man_03():void{
addFrameScript(0, frame1);
m_img_name = "Man_03_";
Init(this.BBox, this.BBody);
}
function frame1(){
stop();
}
}
}//package Objects
Section 124
//Man_04 (Objects.Man_04)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import flash.events.*;
public dynamic class Man_04 extends Man_Base {
public function Man_04():void{
addFrameScript(0, frame1);
m_img_name = "Man_04_";
Init(this.BBox, this.BBody);
}
function frame1(){
stop();
}
}
}//package Objects
Section 125
//Man_04_reverse (Objects.Man_04_reverse)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import flash.events.*;
public dynamic class Man_04_reverse extends Man_Base {
public function Man_04_reverse():void{
addFrameScript(0, frame1);
m_img_name = "Man_04_";
b_reverse = true;
Init(this.BBox, this.BBody);
}
function frame1(){
stop();
}
}
}//package Objects
Section 126
//Man_06 (Objects.Man_06)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import flash.events.*;
public dynamic class Man_06 extends Man_Base {
public function Man_06():void{
addFrameScript(0, frame1);
m_img_name = "Man_06_";
Init(this.BBox, this.BBody);
}
function frame1(){
stop();
}
}
}//package Objects
Section 127
//Man_07 (Objects.Man_07)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import flash.events.*;
public dynamic class Man_07 extends Man_Base {
public function Man_07():void{
addFrameScript(0, frame1);
m_img_name = "Man_07_";
Init(this.BBox, this.BBody);
}
function frame1(){
stop();
}
}
}//package Objects
Section 128
//Man_08 (Objects.Man_08)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import flash.events.*;
public dynamic class Man_08 extends Man_Base {
public function Man_08():void{
addFrameScript(0, frame1);
m_img_name = "Man_08_";
Init(this.BBox, this.BBody);
}
function frame1(){
stop();
}
}
}//package Objects
Section 129
//Man_Base (Objects.Man_Base)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import flash.display.*;
public dynamic class Man_Base extends MovieClip {
public var p1:Object;
public var p2:Object;
public var p3:Object;
public var p4:Object;
public var m_phys_body;// = 0
public var m_box;// = 0
public var m_body;// = 0
public var m_break_coeff;// = 1
public var m_img_name;
public var anim;// = 1
var ox;
var oy;
public var m_talk;// = 0
public var b_reverse;// = false
public var b_overscreen;// = false
public function Man_Base(){
ox = x;
oy = y;
stop();
}
public function Init(_arg1, _arg2){
m_box = _arg1;
m_body = _arg2;
m_box.visible = false;
m_body.Head.visible = false;
m_body.Body.visible = false;
m_body.Hand1.visible = false;
m_body.Hand2.visible = false;
m_body.Leg1.visible = false;
m_body.Leg2.visible = false;
main.AddObject(this, 2);
}
public function ChangeStatic(){
var _local1:* = int((Math.random() * 3));
if (_local1 == 0){
this.gotoAndStop("Static");
} else {
if (_local1 == 1){
this.gotoAndStop("Static2");
} else {
if (_local1 == 2){
this.gotoAndStop("Static3");
};
};
};
}
public function CreatePhysBody(){
var _local3:b2Body;
var _local1:b2PolygonDef = new b2PolygonDef();
var _local2:b2BodyDef = new b2BodyDef();
_local1.density = 0.02;
_local1.friction = 0.2;
_local1.restitution = 0.1;
_local1.filter.b_rigid = 1;
_local2.position.Set((x / main.m_physScale), (y / main.m_physScale));
_local2.angle = ((m_box.rotation / 180) * Math.PI);
m_box.rotation = 0;
_local1.SetAsBox(((m_box.width / 2) / main.m_physScale), ((m_box.height / 2) / main.m_physScale));
_local3 = main.m_world.CreateBody(_local2);
_local3.CreateShape(_local1);
_local3.SetMassFromShapes();
m_phys_body = _local3;
m_phys_body.m_userData = new Object();
m_phys_body.m_userData.m_type = int(2);
m_phys_body.m_userData.m_body = this;
}
public function Update(){
var _local1:* = 5;
var _local2:* = 5;
if ((((m_phys_body == 0)) && (main.m_stage))){
CreatePhysBody();
};
if (m_phys_body){
x = (m_phys_body.GetPosition().x * main.m_physScale);
y = (m_phys_body.GetPosition().y * main.m_physScale);
rotation = ((m_phys_body.GetAngle() / Math.PI) * 180);
};
var _local3:* = this.BBox.hitTestPoint(main.m_main.mouseX, main.m_main.mouseY);
if (main.over_pause > 0){
_local3 = false;
};
if (anim == 1){
if (((!((currentLabel == "Over"))) && (_local3))){
gotoAndStop("Over");
};
if ((((currentLabel == "Over")) && (!(_local3)))){
ChangeStatic();
};
};
if (anim == 1){
if (((((((((ox - x) < -(_local1))) || (((ox - x) > 5)))) || (((oy - y) < -(_local2))))) || (((oy - y) > _local2)))){
gotoAndStop("Fall");
anim = 2;
};
};
if (anim == 2){
if ((((ox == x)) && ((oy == y)))){
ChangeStatic();
anim = 1;
};
ox = x;
oy = y;
};
var _local4:* = -(m_phys_body.GetAngle());
m_phys_body.ApplyTorque((_local4 * 1));
if (y > 1000){
main.DeleteObject(this);
};
}
public function Destroy(){
main.m_world.DestroyBody(m_phys_body);
if (parent){
parent.removeChild(this);
};
}
public function ExploseForce(_arg1, _arg2){
var _local3:*;
if (m_phys_body){
_arg2 = (_arg2 * m_phys_body.GetMass());
_arg2 = new b2Vec2((_arg1.x * _arg2), (_arg1.y * _arg2));
_local3 = new b2Vec2(m_phys_body.GetPosition().x, m_phys_body.GetPosition().y);
m_phys_body.ApplyImpulse(_arg2, _local3);
};
}
public function GetPosition(){
return ([(m_phys_body.GetPosition().x * main.m_physScale), (m_phys_body.GetPosition().y * main.m_physScale)]);
}
}
}//package Objects
Section 130
//Migalka_Med (Objects.Migalka_Med)
package Objects {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Migalka_Med extends MovieClip {
public function Migalka_Med(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package Objects
Section 131
//Ragdoll (Objects.Ragdoll)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import flash.display.*;
import gui.*;
import flash.utils.*;
import flash.geom.*;
public dynamic class Ragdoll extends MovieClip {
public var m_pbody;// = 0
public var m_phand1;// = 0
public var m_phand2;// = 0
public var m_pleg1;// = 0
public var m_pleg2;// = 0
public var m_phead;// = 0
public var m_ibody;// = 0
public var m_ihand1;// = 0
public var m_ihand2;// = 0
public var m_ileg1;// = 0
public var m_ileg2;// = 0
public var m_ihead;// = 0
public var joint1;// = 0
public var joint2;// = 0
public var joint3;// = 0
public var joint4;// = 0
public var joint5;// = 0
public var m_group_num;
public var m_bc;// = 1
public var m_type;// = 3
public var m_filter;// = 0
public var m_talk;// = 0
public function Ragdoll(_arg1, _arg2, _arg3, _arg4, _arg5){
m_bc = _arg1.m_break_coeff;
m_group_num = main.g_num;
main.g_num--;
m_pbody = CreatePhysBody(_arg1.BBody.Body);
m_phand1 = CreatePhysBody(_arg1.BBody.Hand1);
m_phand2 = CreatePhysBody(_arg1.BBody.Hand2);
m_pleg1 = CreatePhysBody(_arg1.BBody.Leg1);
m_pleg2 = CreatePhysBody(_arg1.BBody.Leg2);
m_phead = CreatePhysCircle(_arg1.BBody.Head);
joint1 = CreatePhysJoint(m_pbody, m_phand1, -2, -7);
joint2 = CreatePhysJoint(m_pbody, m_phand2, 2, -7);
joint3 = CreatePhysJoint(m_pbody, m_pleg1, -4, 7);
joint4 = CreatePhysJoint(m_pbody, m_pleg2, 4, 7);
joint5 = CreatePhysJoint(m_pbody, m_phead, 0, -10);
m_ibody = new ((getDefinitionByName((_arg1.m_img_name + "Body")) as Class));
m_ihand1 = new ((getDefinitionByName((_arg1.m_img_name + "Hand1")) as Class));
m_ihand2 = new ((getDefinitionByName((_arg1.m_img_name + "Hand2")) as Class));
m_ileg1 = new ((getDefinitionByName((_arg1.m_img_name + "Leg1")) as Class));
m_ileg2 = new ((getDefinitionByName((_arg1.m_img_name + "Leg2")) as Class));
m_ihead = new ((getDefinitionByName((_arg1.m_img_name + "Head")) as Class));
main.m_stage.addChild(m_ibody);
main.m_stage.addChild(m_ihand1);
main.m_stage.addChild(m_ihand2);
main.m_stage.addChild(m_ileg1);
main.m_stage.addChild(m_ileg2);
main.m_stage.addChild(m_ihead);
main.AddObject(this, m_type);
var _local6:* = new b2Vec2(_arg4, _arg5);
var _local7:* = new b2Vec2(_arg4, _arg5);
var _local8:* = new b2Vec2(0, 0);
if (_arg2){
_local8 = _arg2.m_phys_body.GetLinearVelocity();
};
_local8.Multiply(main.m_force_coeff);
if (_arg2){
m_pbody.ApplyForce(_local8, _local6);
} else {
m_pbody.ApplyForce(new b2Vec2(0.003, 0), _local7);
};
if (_arg2){
if (_local8.x > 0){
m_pbody.ApplyTorque((Math.PI / (Math.random() * 100)));
} else {
m_pbody.ApplyTorque((-(Math.PI) / (Math.random() * 100)));
};
};
if (_arg1.m_talk){
m_talk = _arg1.m_talk;
m_talk.m_man = this;
_arg1.m_talk = 0;
};
main.m_talks.ChangeMan(_arg1, this);
}
public function CreatePhysBody(_arg1){
var _local4:b2Body;
var _local2:b2PolygonDef = new b2PolygonDef();
var _local3:b2BodyDef = new b2BodyDef();
_local2.density = 0.03;
_local2.friction = 0.5;
_local2.restitution = 0.1;
_local2.filter.groupIndex = this.m_filter;
_local2.filter.m_type = 1;
var _local5:* = new Point(_arg1.x, _arg1.y);
_local5 = _arg1.parent.localToGlobal(_local5);
_local3.position.Set((_local5.x / main.m_physScale), (_local5.y / main.m_physScale));
_local3.angle = ((_arg1.rotation / 180) * Math.PI);
_arg1.rotation = 0;
_local2.SetAsBox(((_arg1.width / 2) / main.m_physScale), ((_arg1.height / 2) / main.m_physScale));
_local4 = main.m_world.CreateBody(_local3);
_local4.CreateShape(_local2);
_local4.SetMassFromShapes();
_local4.m_userData = new Object();
_local4.m_userData.m_type = int(m_type);
_local4.m_userData.m_body = this;
return (_local4);
}
public function CreatePhysCircle(_arg1){
var _local2:* = new Point(_arg1.x, _arg1.y);
_local2 = _arg1.parent.localToGlobal(_local2);
var _local3:b2BodyDef = new b2BodyDef();
_local3.position.Set((_local2.x / main.m_physScale), (_local2.y / main.m_physScale));
_local3.angle = ((rotation / 180) * Math.PI);
rotation = 0;
var _local4:b2CircleDef = new b2CircleDef();
_local4.radius = ((_arg1.width / main.m_physScale) / 2);
_local4.density = 0.02;
_local4.restitution = 0.2;
_local4.friction = 0.1;
_local4.filter.groupIndex = this.m_filter;
_local4.filter.m_type = 1;
b = main.m_world.CreateBody(_local3);
b.CreateShape(_local4);
b.SetMassFromShapes();
b.m_userData = new Object();
b.m_userData.m_type = int(m_type);
b.m_userData.m_body = this;
return (b);
}
public function CreatePhysJoint(_arg1, _arg2, _arg3, _arg4){
var _local5:* = new b2RevoluteJointDef();
var _local6:* = _arg1.GetWorldCenter();
_arg1.GetWorldCenter().x = (_local6.x + (_arg3 / main.m_physScale));
_local6.y = (_local6.y + (_arg4 / main.m_physScale));
_local5.Initialize(_arg1, _arg2, _local6);
var _local7:* = (main.m_world.CreateJoint(_local5) as b2RevoluteJoint);
_local6.x = (_local6.x - (_arg3 / main.m_physScale));
_local6.y = (_local6.y - (_arg4 / main.m_physScale));
var _local8:* = _local7.GetJointAngle();
_local7.EnableLimit(true);
_local7.SetLimits((_local8 - (Math.PI / 4)), (_local8 + (Math.PI / 4)));
return (_local7);
}
public function Update(){
if (m_ibody == 0){
return;
};
SetIObj(m_ibody, m_pbody);
SetIObj(m_ihand1, m_phand1);
SetIObj(m_ihand2, m_phand2);
SetIObj(m_ileg1, m_pleg1);
SetIObj(m_ileg2, m_pleg2);
SetIObj(m_ihead, m_phead);
var _local1:* = 16;
if (UJoint(joint1)){
m_ibody.Blood_LHand.gotoAndPlay(_local1);
m_ihand1.Blood.gotoAndPlay(_local1);
joint1 = null;
};
if (UJoint(joint2)){
m_ibody.Blood_RHand.gotoAndPlay(_local1);
m_ihand2.Blood.gotoAndPlay(_local1);
joint2 = null;
};
if (UJoint(joint3)){
m_ibody.Blood_LLeg.gotoAndPlay(_local1);
m_ileg1.Blood.gotoAndPlay(_local1);
joint3 = null;
};
if (UJoint(joint4)){
m_ibody.Blood_RLeg.gotoAndPlay(_local1);
m_ileg2.Blood.gotoAndPlay(_local1);
joint4 = null;
};
if (UJoint(joint5)){
m_ibody.Blood_Head.gotoAndPlay(_local1);
m_ihead.Blood.gotoAndPlay(_local1);
joint5 = null;
};
}
public function UJoint(_arg1){
var _local5:*;
var _local6:*;
var _local7:*;
if (_arg1 == null){
return;
};
var _local2:* = _arg1.GetReactionForce();
var _local3:* = _local2.Length();
var _local4:* = 1;
if (_local3 > (_local4 * m_bc)){
if (main.b_sound){
_local7 = (int((Math.random() * 3)) + 1);
if (_local7 == 1){
main.m_main.CrackSound1.play();
} else {
if (_local7 == 2){
main.m_main.CrackSound2.play();
} else {
if (_local7 == 3){
main.m_main.CrackSound3.play();
};
};
};
};
_local5 = _arg1.GetAnchor1();
_local6 = new BonusStar((_local5.x * main.m_physScale), (_local5.y * main.m_physScale), 10);
main.m_world.DestroyJoint(_arg1);
return (true);
};
return (false);
}
public function SetIObj(_arg1, _arg2){
_arg1.x = (_arg2.GetPosition().x * main.m_physScale);
_arg1.y = (_arg2.GetPosition().y * main.m_physScale);
_arg1.rotation = ((_arg2.GetAngle() / Math.PI) * 180);
}
public function Destroy(){
main.m_world.DestroyJoint(joint1);
main.m_world.DestroyJoint(joint2);
main.m_world.DestroyJoint(joint3);
main.m_world.DestroyJoint(joint4);
main.m_world.DestroyJoint(joint5);
main.m_world.DestroyBody(m_pbody);
main.m_world.DestroyBody(m_phand1);
main.m_world.DestroyBody(m_phand2);
main.m_world.DestroyBody(m_pleg1);
main.m_world.DestroyBody(m_pleg2);
main.m_world.DestroyBody(m_phead);
main.m_stage.removeChild(m_ibody);
main.m_stage.removeChild(m_ihand1);
main.m_stage.removeChild(m_ihand2);
main.m_stage.removeChild(m_ileg1);
main.m_stage.removeChild(m_ileg2);
main.m_stage.removeChild(m_ihead);
}
public function GetPosition(){
return ([(m_phead.GetPosition().x * main.m_physScale), (m_phead.GetPosition().y * main.m_physScale)]);
}
public function ExploseForce(_arg1, _arg2){
var _local3:*;
var _local4:*;
if (m_pbody){
_arg2 = (_arg2 * m_pbody.GetMass());
_local3 = new b2Vec2((_arg1.x * _arg2), (_arg1.y * _arg2));
_local4 = new b2Vec2(m_pbody.GetPosition().x, m_pbody.GetPosition().y);
m_pbody.ApplyImpulse(_local3, _local4);
m_phand1.ApplyImpulse(_local3, _local4);
m_phand2.ApplyImpulse(_local3, _local4);
m_pleg1.ApplyImpulse(_local3, _local4);
m_pleg2.ApplyImpulse(_local3, _local4);
m_phead.ApplyImpulse(_local3, _local4);
};
}
}
}//package Objects
Section 132
//StaticTrigger (Objects.StaticTrigger)
package Objects {
import flash.events.*;
import flash.display.*;
public dynamic class StaticTrigger extends MovieClip {
public var b_action;// = false
public var m_type;// = 7
public function StaticTrigger():void{
main.AddObject(this, m_type);
}
public function Update(){
var _local1:*;
if (b_action == true){
return;
};
for each (_local1 in main.m_objects) {
if (_local1.m_type == 1){
CheckTrigger2(_local1.ibox);
} else {
if (_local1.m_type == 3){
CheckTrigger(_local1.m_ibody);
CheckTrigger(_local1.m_ihand1);
CheckTrigger(_local1.m_ihand2);
CheckTrigger(_local1.m_ileg1);
CheckTrigger(_local1.m_ileg2);
CheckTrigger(_local1.m_ihead);
} else {
if ((((_local1.m_type == 5)) || ((_local1.m_type == 9)))){
CheckTrigger2(_local1);
} else {
if (_local1.m_type == 2){
CheckTrigger2(_local1.BBox);
};
};
};
};
};
}
public function CheckTrigger(_arg1){
if (b_action == true){
return;
};
if (this.hitTestPoint(_arg1.x, _arg1.y, true)){
Action();
};
}
public function CheckTrigger2(_arg1){
if (b_action == true){
return;
};
if (this.hitTestObject(_arg1)){
Action();
};
}
public function Action(){
var _local2:*;
var _local3:*;
b_action = true;
var _local1:* = ("S" + this.name);
var _local4:* = 0;
var _local5:* = true;
while (_local5) {
_local5 = false;
_local2 = 0;
while (_local2 < main.m_stage.numChildren) {
_local3 = main.m_stage.getChildAt(_local2);
if ((((_local3.name == _local1)) && (!((_local3 == this))))){
_local5 = true;
main.DeleteObject(_local3);
break;
};
_local2++;
};
};
this.stop();
this.visible = false;
}
public function Destroy(){
if (parent){
parent.removeChild(this);
};
}
}
}//package Objects
Section 133
//TalkClip (Objects.TalkClip)
package Objects {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.net.*;
public dynamic class TalkClip extends MovieClip {
public var m_man;
var m_text;
var m_px;
var m_py;
var b_active;// = false
var m_death_time;// = 0
var m_dx;// = 0
var m_dy;// = 0
public function TalkClip(_arg1, _arg2, _arg3){
addFrameScript(9, frame10);
if (_arg3 > 0){
m_death_time = (getTimer() + _arg3);
};
m_man = _arg1;
_arg1.m_talk = this;
m_text = _arg2;
main.m_main.GameGUI.TalkPoint.addChild(this);
mouseEnabled = false;
mouseChildren = false;
if (_arg1.b_reverse){
m_dx = 20;
};
UpdatePPosition();
x = m_px;
y = m_py;
}
function UpdatePPosition(){
var _local1:* = m_man.GetPosition();
m_px = (_local1[0] + m_dx);
m_py = (_local1[1] + m_dy);
}
public function Update(){
var _local1:*;
_local1 = 0.4;
if (this.TextAnim.TText){
this.TextAnim.TText.text = m_text;
this.TextAnim.TText.y = (-(this.TextAnim.TText.textHeight) / 2);
};
UpdatePPosition();
var _local2:* = (m_px - x);
var _local3:* = (m_py - y);
var _local4:* = Math.sqrt(((_local2 * _local2) + (_local3 * _local3)));
if (_local4 < 5){
b_active = false;
};
if (_local4 > 10){
b_active = true;
};
if (b_active){
x = (x + (_local2 * _local1));
y = (y + (_local3 * _local1));
};
if (y < 135){
y = 135;
};
if (x > 546){
x = 546;
};
if (x < 105){
x = 105;
};
if (m_death_time > 0){
if (getTimer() > m_death_time){
main.m_talks.DeleteTalk(this);
};
};
}
public function Delete(){
if (parent){
parent.removeChild(this);
};
}
function frame10(){
stop();
}
}
}//package Objects
Section 134
//TalkManager (Objects.TalkManager)
package Objects {
import flash.events.*;
import flash.utils.*;
public dynamic class TalkManager {
var m_talks;
var m_data;
var t_time;// = 0
var t_time2;
public function TalkManager():void{
m_talks = new Array();
m_data = new Array();
}
public function Clear(){
var _local1:*;
for each (_local1 in m_talks) {
_local1.Delete();
};
m_talks.splice(0);
m_data.splice(0);
}
public function ResetTime(){
t_time2 = getTimer();
t_time = 0;
}
public function Update(){
var _local1:*;
for each (_local1 in m_talks) {
_local1.Update();
};
_local1 = 0;
while (_local1 < m_data.length) {
if (m_data[_local1].m_type == 1){
if (((getTimer() - m_data[_local1].m_time) - t_time2) > 0){
CreateTalk(m_data[_local1]);
m_data.splice(_local1, 1);
};
};
_local1++;
};
if (main.b_finish == false){
return;
};
if (t_time == 0){
t_time = getTimer();
};
_local1 = 0;
while (_local1 < m_data.length) {
if (m_data[_local1].m_type == 2){
if (((getTimer() - m_data[_local1].m_time) - t_time) > 0){
CreateTalk(m_data[_local1]);
m_data.splice(_local1, 1);
};
};
_local1++;
};
}
public function AddTalkStart(_arg1, _arg2, _arg3, _arg4){
m_data.push({m_man:_arg1, m_text:_arg2, m_time:_arg3, m_time2:_arg4, m_type:1});
}
public function AddTalkFinish(_arg1, _arg2, _arg3){
m_data.push({m_man:_arg1, m_text:_arg2, m_time:_arg3, m_time2:0, m_type:2});
}
public function CreateTalk(_arg1){
var _local2:* = new TalkClip(_arg1.m_man, _arg1.m_text, _arg1.m_time2);
m_talks.push(_local2);
}
public function DeleteTalk(_arg1){
var _local2:*;
_local2 = 0;
while (_local2 < m_talks.length) {
if (m_talks[_local2] == _arg1){
m_talks[_local2].m_man.m_talk = 0;
m_talks[_local2].Delete();
m_talks.splice(_local2, 1);
};
_local2++;
};
}
public function ChangeMan(_arg1, _arg2){
var _local3:*;
for each (_local3 in m_data) {
if (_local3.m_man == _arg1){
_local3.m_man = _arg2;
};
};
}
public function DeleteStartDialogs(){
var _local1:*;
_local1 = 0;
while (_local1 < m_data.length) {
if (m_data[_local1].m_type == 1){
m_data.splice(_local1, 1);
_local1 = 0;
};
_local1++;
};
_local1 = 0;
while (_local1 < m_talks.length) {
m_talks[_local1].m_man.m_talk = 0;
m_talks[_local1].Delete();
m_talks.splice(_local1, 1);
_local1 = 0;
_local1++;
};
}
}
}//package Objects
Section 135
//Treug_01 (Objects.Treug_01)
package Objects {
import flash.events.*;
import flash.display.*;
public dynamic class Treug_01 extends Treug_Base {
public function Treug_01(){
m_density = 0.05;
m_friction = 0.3;
}
}
}//package Objects
Section 136
//Treug_Base (Objects.Treug_Base)
package Objects {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import flash.display.*;
public dynamic class Treug_Base extends MovieClip {
public var m_phys_body;// = 0
public var m_density;// = 0.2
public var m_friction;// = 0.3
public var m_type;// = 5
public function Treug_Base(){
main.AddObject(this, m_type);
}
public function CreatePhysBody(){
var _local1:b2PolygonDef;
var _local2:b2BodyDef;
var _local3:b2Body;
_local1 = new b2PolygonDef();
_local2 = new b2BodyDef();
_local1.density = m_density;
_local1.friction = m_friction;
_local1.restitution = 0.1;
_local2.position.Set((x / main.m_physScale), (y / main.m_physScale));
_local2.angle = ((rotation / 180) * Math.PI);
rotation = 0;
_local1.vertexCount = 3;
_local1.vertices[0].Set(((-(width) / 2) / main.m_physScale), ((height / 2) / main.m_physScale));
_local1.vertices[1].Set(0, ((-(height) / 2) / main.m_physScale));
_local1.vertices[2].Set(((width / 2) / main.m_physScale), ((height / 2) / main.m_physScale));
_local3 = main.m_world.CreateBody(_local2);
_local3.CreateShape(_local1);
_local3.SetMassFromShapes();
m_phys_body = _local3;
m_phys_body.m_userData = new Object();
m_phys_body.m_userData.m_type = int(m_type);
m_phys_body.m_userData.m_body = this;
}
public function Update(){
if ((((m_phys_body == 0)) && (main.m_stage))){
CreatePhysBody();
};
if (m_phys_body){
x = (m_phys_body.GetPosition().x * main.m_physScale);
y = (m_phys_body.GetPosition().y * main.m_physScale);
rotation = ((m_phys_body.GetAngle() / Math.PI) * 180);
};
}
public function Destroy(){
main.m_world.DestroyBody(m_phys_body);
}
public function ExploseForce(_arg1, _arg2, _arg3=0){
var _local4:*;
var _local5:*;
if (m_phys_body){
_arg2 = (_arg2 * m_phys_body.GetMass());
_local5 = new b2Vec2((_arg1.x * _arg2), (_arg1.y * _arg2));
if (_arg3 == 0){
_local4 = new b2Vec2(m_phys_body.GetPosition().x, m_phys_body.GetPosition().y);
} else {
_local4 = _arg3;
};
m_phys_body.ApplyImpulse(_local5, _local4);
};
}
}
}//package Objects
Section 137
//ZombikClip (Objects.ZombikClip)
package Objects {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public dynamic class ZombikClip extends MovieClip {
var m_talks;
var m_speed_talks;
var t_time;// = 0
var m_n;// = 0
public function ZombikClip(){
m_talks = new Array();
m_speed_talks = new Array();
super();
this.addEventListener(MouseEvent.MOUSE_DOWN, MouseDown);
this.addEventListener(Event.ENTER_FRAME, Update);
this.TalkClip.visible = false;
this.Selector.visible = false;
m_talks.push("I have gnawed all my fingernails till my elbows already!");
m_talks.push("Aaaa! the player has come, we are doomed! ");
m_talks.push("Do you like my flying eyebrows?");
m_talks.push("Move your head closer to the monitor, I want your brai... brush your hair");
m_talks.push("Zombies are green because of photosynthesis!");
m_talks.push("Press the 'play' button already, not me!");
m_talks.push("If you find grammar errors, don't be angry, zombies are uneducated!");
m_talks.push("I hate flash developers!");
m_talks.push("Don't do that!");
m_speed_talks.push("You've clicked on me all over already, stop it!");
m_speed_talks.push("I'm already all battered and tattered!");
m_speed_talks.push("don't click so fast, it tickles!");
}
public function MouseDown(_arg1){
var _local2:*;
if (this.Selector.hitTestPoint(main.m_main.mouseX, main.m_main.mouseY, true)){
if ((getTimer() - t_time) < 400){
m_n++;
if (m_n == 3){
m_n = 0;
this.TalkClip.visible = true;
_local2 = int((Math.random() * m_speed_talks.length));
this.TalkClip.TText.text = m_speed_talks[_local2];
};
} else {
m_n = 0;
this.TalkClip.visible = true;
_local2 = int((Math.random() * m_talks.length));
this.TalkClip.TText.text = m_talks[_local2];
};
t_time = getTimer();
};
}
public function Update(_arg1){
if ((((this.TalkClip.visible == true)) && (((getTimer() - t_time) > 4000)))){
this.TalkClip.visible = false;
};
}
}
}//package Objects
Section 138
//ZombikFinal (Objects.ZombikFinal)
package Objects {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public dynamic class ZombikFinal extends MovieClip {
var m_talks;
var t_time;// = 0
var m_n;// = 0
public function ZombikFinal(){
m_talks = new Array();
super();
this.addEventListener(MouseEvent.MOUSE_DOWN, MouseDown);
this.FinalButton.BButton.addEventListener(MouseEvent.MOUSE_DOWN, MenuDown);
this.addEventListener(Event.ENTER_FRAME, Update);
this.TalkClip.visible = false;
this.Selector.visible = false;
this.FinalButton.visible = false;
m_talks.push("What?... What!?... I'm trying to die!");
m_talks.push("Yes, guess it will take more time... ");
m_talks.push("Don't click on me, click on the BigDino button");
m_talks.push("Yes, it's a good game portal ");
m_talks.push("Am I dead already?");
m_talks.push("I guess not...");
m_talks.push("Hey, I know the secret! press on the BigDino button and I will tell you");
m_talks.push("Well, I tell you anyway, You are a ruthless zombie killer..");
m_talks.push("I'm just kidding, we all know that is not a secret!");
m_talks.push("But in the level 17, there is an easter egg");
m_talks.push("Guess I'm still not dead..");
m_talks.push("May be I should try to die after a dinner?");
m_talks.push("Do you have some brains?");
m_talks.push("No? Than I won't tell you anything");
m_talks.push("...");
m_talks.push("No.");
m_talks.push("No and No.");
m_talks.push("Well, if you scratch my belly..");
m_talks.push("well, ok, better go and click on Zombie in the main menu");
m_talks.push("Don't you see I have a job to do here");
m_talks.push("Make love, not flash games");
m_talks.push("Stop clicking on me, click on main menu button already");
m_talks.push("Seriously, there is nothing left here, click BigDino button for more awesome games and thanks for playing :)");
}
public function MenuDown(_arg1){
this.removeEventListener(Event.ENTER_FRAME, Update);
main.m_main.gotoAndStop("Menu");
}
public function MouseDown(_arg1){
var _local2:*;
if (this.Selector.hitTestPoint(main.m_main.mouseX, main.m_main.mouseY, true)){
this.TalkClip.visible = true;
_local2 = m_n;
m_n++;
if (_local2 >= m_talks.length){
_local2 = 0;
m_n = 0;
};
if (_local2 == (m_talks.length - 1)){
if (this.FinalButton.visible == false){
this.FinalButton.visible = true;
this.FinalButton.play();
};
};
this.TalkClip.TText.text = m_talks[_local2];
t_time = getTimer();
};
}
public function Update(_arg1){
if ((((this.TalkClip.visible == true)) && (((getTimer() - t_time) > 4000)))){
this.TalkClip.visible = false;
};
}
}
}//package Objects
Section 139
//base_stage (Stages.base_stage)
package Stages {
import flash.display.*;
public dynamic class base_stage extends MovieClip {
}
}//package Stages
Section 140
//stage_01 (Stages.stage_01)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_01 extends base_stage {
var loaded;// = false
public function stage_01(){
main.m_talks.AddTalkStart(this.Zombie_01, "Damn! Another zombie game again... ", 1500, 4000);
main.m_talks.AddTalkStart(this.Zombie_01, "if i could get a dollar... ", 6000, 3000);
main.m_talks.AddTalkFinish(this.Zombie_01, "Grenades and Zombies? That is rough even for a flash game!", 0);
this.GrenPlace.visible = false;
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade(0, 80, 90, 80, 180, 80, 270, 80);
loaded = true;
main.m_objects_panel.loaded = true;
};
if (main.m_objects_panel.m_selected){
this.GrenPlace.visible = true;
} else {
this.GrenPlace.visible = false;
};
}
}
}//package Stages
Section 141
//stage_02 (Stages.stage_02)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_02 extends base_stage {
var loaded;// = false
public function stage_02(){
main.m_talks.AddTalkStart(this.Zombie_01, "The Pushkin's poetry impressed me!", 1500, 3000);
main.m_talks.AddTalkStart(this.Zombie_02, "Especially i like the theme of love in his poem", 4500, 3000);
main.m_talks.AddTalkStart(this.Zombie_03, "Damn, The player is watching us! ", 7500, 3000);
main.m_talks.AddTalkStart(this.Zombie_01, "Brainz!", 10500, 2000);
main.m_talks.AddTalkStart(this.Zombie_02, "Brainzz!", 11000, 2000);
main.m_talks.AddTalkStart(this.Zombie_03, "Brainz!!!", 11500, 2000);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade(0, 80, 90, 80);
main.m_objects_panel.AddGrenade(0, 80, 90, 80);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 142
//stage_03 (Stages.stage_03)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_03 extends base_stage {
var loaded;// = false
public function stage_03(){
main.m_talks.AddTalkStart(this.Zombie_01, "Red barrels again? Oh, if I could get a dollar...", 3500, 4000);
main.m_talks.AddTalkFinish(this.Zombie_01, "That is worse than Gordon Freeman's crowbar", 0);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade(0, 80);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 143
//stage_04 (Stages.stage_04)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_04 extends base_stage {
var loaded;// = false
public function stage_04(){
main.m_talks.AddTalkStart(this.Zombie_01, "Zombo-party!", 4000, 3000);
main.m_talks.AddTalkStart(this.Zombie_02, "Zombies rules!", 7000, 3000);
main.m_talks.AddTalkStart(this.Zombie_03, "Evacuate the dance floor!", 10000, 3000);
main.m_talks.AddTalkStart(this.Zombie_04, "Let's blow this party!", 13000, 3000);
main.m_talks.AddTalkFinish(this.Zombie_03, "explosive party!", 1500);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade(0, 80);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 144
//stage_05 (Stages.stage_05)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
import flash.utils.*;
public dynamic class stage_05 extends base_stage {
var loaded;// = false
var t;
var b_action;// = false
public function stage_05(){
t = getTimer();
main.m_talks.AddTalkStart(this.Zombie_01, "Hey, How I can became a zombo-rock star?", 1500, 3000);
main.m_talks.AddTalkStart(this.Zombie_02, "Simple! Take the old pop song...", 5000, 3000);
main.m_talks.AddTalkStart(this.Zombie_02, "And change the word 'baby' into the word 'brainz' ", 8500, 3000);
main.m_talks.AddTalkStart(this.Zombie_01, "hmm...", 12000, 2000);
main.m_talks.AddTalkStart(this.Zombie_01, "I love you, brainz! And if it’s quite alright", 15000, 3000);
main.m_talks.AddTalkStart(this.Zombie_01, "I need you, brainz, To warm the darkest night.", 18100, 3000);
main.m_talks.AddTalkStart(this.Zombie_02, "platinum album is yours!", 21500, 3000);
main.m_talks.AddTalkFinish(this.Zombie_01, "Zombie will back!", 0);
main.over_pause = 22;
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade();
loaded = true;
main.m_objects_panel.loaded = true;
};
if ((((b_action == false)) && (((getTimer() - t) > 14500)))){
if (main.b_music){
main.SetSoundPause(8);
main.m_main.m_uniq_music = main.m_main.LoveMusic.play(0, 1);
};
b_action = true;
};
}
}
}//package Stages
Section 145
//stage_06 (Stages.stage_06)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
import flash.utils.*;
public dynamic class stage_06 extends base_stage {
var loaded;// = false
var t;
var b_action;// = false
public function stage_06(){
t = getTimer();
main.m_talks.AddTalkStart(this.Zombie_01, "Hey, That joke from a previous level...", 1500, 3000);
main.m_talks.AddTalkStart(this.Zombie_02, "what about it?", 5000, 3000);
main.m_talks.AddTalkStart(this.Zombie_01, "it's already has been in the simpsons ", 8500, 3000);
main.m_talks.AddTalkStart(this.Zombie_02, "Heh, Everything has already been in the simpsons", 12000, 2000);
main.m_talks.AddTalkStart(this.Zombie_01, "No way! We haven't been in the simpsons!", 15000, 3000);
main.m_talks.AddTalkStart(this.Zombie_01, "D'ooooh!!!", 23000, 3000);
main.m_talks.AddTalkFinish(this.Zombie_01, "Once you go dead, you never go back", 0);
main.m_talks.AddTalkFinish(this.Zombie_02, "Guess this is something new", 3000);
main.over_pause = 28;
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade(0, 100, 90, 100, 180, 100, 270, 100);
loaded = true;
main.m_objects_panel.loaded = true;
};
if ((((b_action == false)) && (((getTimer() - t) > 18600)))){
if (main.b_music){
main.SetSoundPause(7);
main.m_main.m_uniq_music = main.m_main.SimpsonsMusic.play(0, 1);
};
b_action = true;
};
}
}
}//package Stages
Section 146
//stage_07 (Stages.stage_07)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_07 extends base_stage {
var loaded;// = false
public function stage_07(){
main.m_talks.AddTalkStart(this.Zombie_01, " It's a stereotype that Zombies are your enemies!", 1500, 3000);
main.m_talks.AddTalkStart(this.Zombie_01, " We just love to eat your brainz", 5000, 3000);
main.m_talks.AddTalkFinish(this.Zombie_01, "Zombies will be back!", 0);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade();
main.m_objects_panel.AddGrenade();
main.m_objects_panel.AddGrenade();
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 147
//stage_08 (Stages.stage_08)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_08 extends base_stage {
var loaded;// = false
public function stage_08(){
main.m_talks.AddTalkStart(this.Zombie_01, "Brains! ", 1500, 2000);
main.m_talks.AddTalkStart(this.Zombie_02, "Brainzz! ", 3500, 2000);
main.m_talks.AddTalkStart(this.Zombie_01, "Braainzzz! ", 5500, 2000);
main.m_talks.AddTalkStart(this.Zombie_02, "Breeyyndzzz! ", 7500, 2000);
main.m_talks.AddTalkStart(this.Zombie_01, "It's stupid, I've graduated zombo-college", 10000, 4000);
main.m_talks.AddTalkStart(this.Zombie_01, "And now I act as an unintellectual zombie in this dumb flash game", 14000, 5000);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade(0, 80);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 148
//stage_09 (Stages.stage_09)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_09 extends base_stage {
var loaded;// = false
public function stage_09(){
main.m_talks.AddTalkStart(this.Zombie_01, "Humans are intolerant to zombies", 1500, 3000);
main.m_talks.AddTalkStart(this.Zombie_02, "Yes, but we actually love to eat their brains", 4500, 3000);
main.m_talks.AddTalkStart(this.Zombie_01, "And what? some of their girlfriends love to eat their brains too", 7500, 4000);
main.m_talks.AddTalkStart(this.Zombie_02, "Hmm, maybe some of their girlfriends are zombies?", 11500, 4000);
main.m_talks.AddTalkStart(this.Zombie_01, "Yes, the ones who watch reality shows", 15500, 4000);
main.m_talks.AddTalkFinish(this.Zombie_01, "I feel like I'm falling apart", 0);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade();
main.m_objects_panel.AddGrenade(0, 80, 90, 80);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 149
//stage_10 (Stages.stage_10)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_10 extends base_stage {
var loaded;// = false
public function stage_10(){
main.m_talks.AddTalkStart(this.Zombie_01, "this game is ruthless and intolerant! ", 1500, 3000);
main.m_talks.AddTalkStart(this.Zombie_02, "and where are the brainz, developers promised us? ", 5000, 4000);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade(0, 80);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 150
//stage_11 (Stages.stage_11)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_11 extends base_stage {
var loaded;// = false
public function stage_11(){
main.m_talks.AddTalkStart(this.Zombie_01, "Why humans hate us so much? ", 1500, 3000);
main.m_talks.AddTalkStart(this.Zombie_02, "May be they are afraid their brains could be eaten", 5000, 4000);
main.m_talks.AddTalkStart(this.Zombie_01, "well, right but that means... ", 9000, 3000);
main.m_talks.AddTalkStart(this.Zombie_01, "the developers of this game have nothing to worry about ", 12000, 4500);
main.m_talks.AddTalkFinish(this.Zombie_01, "Ouch! I wanted to become a spacezombie :(", 0);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade(0, 80, 90, 80);
main.m_objects_panel.AddGrenade(0, 80, 90, 80);
main.m_objects_panel.AddGrenade(0, 80, 180, 80);
main.m_objects_panel.AddGrenade(0, 80, 90, 80, 180, 80, 270, 80);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 151
//stage_12 (Stages.stage_12)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_12 extends base_stage {
var loaded;// = false
public function stage_12(){
main.m_talks.AddTalkStart(this.Zombie_02, "Are you ready to become a SpaceZombie? ", 1500, 4000);
main.m_talks.AddTalkStart(this.Zombie_01, "Nooooooo! ", 5500, 4000);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade();
main.m_objects_panel.AddGrenade(0, 90);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 152
//stage_13 (Stages.stage_13)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_13 extends base_stage {
var loaded;// = false
public function stage_13(){
main.m_talks.AddTalkStart(this.Zombie_01, "Zombies!", 1500, 3000);
main.m_talks.AddTalkStart(this.Zombie_02, "I'm so drunk!", 4500, 3000);
main.m_talks.AddTalkStart(this.Zombie_03, "Zombo-party! ", 7500, 3000);
main.m_talks.AddTalkFinish(this.Zombie_04, "What am I doing here?", 2000);
main.m_talks.AddTalkFinish(this.Zombie_03, "I guess alcohol is really bad for my health", 0);
}
public function Update(){
if (!loaded){
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 153
//stage_14 (Stages.stage_14)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_14 extends base_stage {
var loaded;// = false
public function stage_14(){
main.m_talks.AddTalkStart(this.Zombie_01, "Hey! Will this game get badges on Kong? ", 1500, 3000);
main.m_talks.AddTalkStart(this.Zombie_02, "Don't think so, the rating is too low ", 5000, 4000);
main.m_talks.AddTalkStart(this.Zombie_03, "Hey, player! give this game five stars! We want badges! ", 9000, 4500);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade(0, 80);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 154
//stage_15 (Stages.stage_15)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_15 extends base_stage {
var loaded;// = false
public function stage_15(){
main.m_talks.AddTalkStart(this.Zombie_01, "Hey, have you played 'Zombotron' ", 1500, 3000);
main.m_talks.AddTalkStart(this.Zombie_02, "Yes, it's another cruel zombie-killing game!", 4500, 4000);
main.m_talks.AddTalkStart(this.Zombie_01, "Yes, Anton Karlov is good at making awesome zombie-slashers", 8500, 4000);
main.m_talks.AddTalkStart(this.Zombie_03, "I gave it five stars", 12500, 3000);
main.m_talks.AddTalkStart(this.Zombie_02, "You what?", 15500, 2000);
main.m_talks.AddTalkStart(this.Zombie_01, "Me too ", 17500, 2000);
main.m_talks.AddTalkStart(this.Zombie_02, "Well actually... I've rated it five too", 19500, 3000);
main.m_talks.AddTalkFinish(this.Zombie_01, "And I'm waiting for a sequel", 0);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade();
main.m_objects_panel.AddGrenade(0, 80, 180, 80);
main.m_objects_panel.AddGrenade(0, 80, 180, 80);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 155
//stage_16 (Stages.stage_16)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_16 extends base_stage {
var loaded;// = false
public function stage_16(){
main.m_talks.AddTalkStart(this.Zombie_01, "Hey, here is another joke... ", 1500, 3000);
main.m_talks.AddTalkStart(this.Zombie_01, "*BANNED* the joke is not polite correct *CENSORED*", 4500, 5000);
main.m_talks.AddTalkStart(this.Zombie_02, "Ha-Ha-Ha.. That is the most funny joke I ever heard! Ha-Ha-Ha!)) ", 9500, 4000);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade();
main.m_objects_panel.AddGrenade();
main.m_objects_panel.AddGrenade();
main.m_objects_panel.AddGrenade(0, 80);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 156
//stage_17 (Stages.stage_17)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_17 extends base_stage {
var loaded;// = false
public function stage_17(){
main.m_talks.AddTalkStart(this.Zombie_01, "Hey player, we are good Zombies! I swear", 1500, 3000);
main.m_talks.AddTalkStart(this.Zombie_02, "Yes, we are vegeterin-zombies", 4500, 3000);
main.m_talks.AddTalkStart(this.Zombie_03, "Yes, we eat only Bra... mmm...bread, yes I mean - Bread ", 7500, 4000);
main.m_talks.AddTalkStart(this.Zombie_01, "Yes, we are good, I can help you wash your head", 11500, 4000);
main.m_talks.AddTalkFinish(this.Zombie_01, "I guess we blew our cover", 0);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade(0, 80);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 157
//stage_18 (Stages.stage_18)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_18 extends base_stage {
var loaded;// = false
public function stage_18(){
main.m_talks.AddTalkStart(this.Zombie_01, "Gee, Brain, what do you want to do next level?", 1500, 4000);
main.m_talks.AddTalkStart(this.Zombie_02, "The same thing we do every level, Pinky, try to take over the world!", 5500, 4000);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade(0, 0);
main.m_objects_panel.AddGrenade(0, 150, 180, 150);
main.m_objects_panel.AddGrenade(0, 0);
main.m_objects_panel.AddGrenade(0, 150, 180, 150);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 158
//stage_19 (Stages.stage_19)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_19 extends base_stage {
var loaded;// = false
public function stage_19(){
main.m_talks.AddTalkStart(this.Zombie_01, "Hey guys, there is no brains here, developers have cheated us", 1500, 4500);
main.m_talks.AddTalkStart(this.Zombie_02, "Yes, we should get out of here", 6000, 3000);
main.m_talks.AddTalkStart(this.Zombie_01, "If we want brains we should...", 9000, 4000);
main.m_talks.AddTalkStart(this.Zombie_02, " ...open a barbershop!", 13000, 4000);
main.m_talks.AddTalkStart(this.Zombie_01, "Ohh yes!", 17000, 4000);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade(0, 80);
main.m_objects_panel.AddGrenade(0, 80);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 159
//stage_20 (Stages.stage_20)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_20 extends base_stage {
var loaded;// = false
public function stage_20(){
main.m_talks.AddTalkStart(this.Zombie_01, "Previous level was a massacre!", 1500, 3000);
main.m_talks.AddTalkStart(this.Zombie_02, "Are you alright guys?", 4500, 3000);
main.m_talks.AddTalkStart(this.Zombie_03, "Yes, we are dead alright", 7500, 4000);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade(0, 80);
main.m_objects_panel.AddGrenade(0, 80);
main.m_objects_panel.AddGrenade(0, 80);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 160
//stage_21 (Stages.stage_21)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_21 extends base_stage {
var loaded;// = false
public function stage_21(){
main.m_talks.AddTalkStart(this.Zombie_01, "Are you still playing the game?", 1500, 3000);
main.m_talks.AddTalkStart(this.Zombie_02, "Probably you are really hate zombies", 4500, 3000);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade(0, 80);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 161
//stage_22 (Stages.stage_22)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_22 extends base_stage {
var loaded;// = false
public function stage_22(){
main.m_talks.AddTalkStart(this.Zombie_01, "Brains brains brains, brains brains! Brains, brains... brains", 1500, 3000);
main.m_talks.AddTalkStart(this.Zombie_02, "Brains?", 4500, 3000);
main.m_talks.AddTalkStart(this.Zombie_01, "Brains, brains brains!", 7500, 3000);
main.m_talks.AddTalkStart(this.Zombie_03, "Stop talking zombie language!", 10500, 3000);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade(0, 80);
main.m_objects_panel.AddGrenade(0, 80);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 162
//stage_23 (Stages.stage_23)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_23 extends base_stage {
var loaded;// = false
public function stage_23(){
main.m_talks.AddTalkStart(this.Zombie_01, "Why are you still playing?", 1500, 3000);
main.m_talks.AddTalkStart(this.Zombie_02, "There is not even a final movie in the end", 4500, 3000);
main.m_talks.AddTalkStart(this.Zombie_01, "Yes, developers even forgot about easter eggs ", 7500, 3000);
main.m_talks.AddTalkFinish(this.Zombie_03, "Admit it, you love killing zombies!", 0);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade(0, 150, 90, 150);
main.m_objects_panel.AddGrenade(0, 150, 90, 150);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 163
//stage_24 (Stages.stage_24)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_24 extends base_stage {
var loaded;// = false
public function stage_24(){
main.m_talks.AddTalkStart(this.Zombie_01, "When will the Zombie-President finally be elected?", 1500, 4000);
main.m_talks.AddTalkStart(this.Zombie_02, "Hasn't he already been elected?", 5500, 4000);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade(0, 80);
main.m_objects_panel.AddGrenade(0, 100, 70, 100);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 164
//stage_25 (Stages.stage_25)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_25 extends base_stage {
var loaded;// = false
public function stage_25(){
main.m_talks.AddTalkStart(this.Zombie_01, "Wow, a vehicle", 1500, 3000);
main.m_talks.AddTalkStart(this.Zombie_01, "Does anyone has a driver's license?", 4500, 3000);
this.Rotor1.m_speed = -1;
this.Rotor2.m_speed = -1;
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade();
main.m_objects_panel.AddGrenade();
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 165
//stage_26 (Stages.stage_26)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_26 extends base_stage {
var loaded;// = false
public function stage_26(){
main.m_talks.AddTalkStart(this.Zombie_01, "Guess it's the hardest level in the game", 1500, 4000);
main.m_talks.AddTalkStart(this.Zombie_02, "Bet you can't do it!", 5500, 4000);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade(0, 0);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 166
//stage_27 (Stages.stage_27)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_27 extends base_stage {
var loaded;// = false
public function stage_27(){
main.m_talks.AddTalkStart(this.Zombie_01, "The player is tougher than we thought", 1500, 4000);
main.m_talks.AddTalkStart(this.Zombie_02, "He's gonna kill us all! We are doomed!!!", 5500, 4000);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade();
main.m_objects_panel.AddGrenade();
main.m_objects_panel.AddGrenade(0, 150);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 167
//stage_28 (Stages.stage_28)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_28 extends base_stage {
var loaded;// = false
public function stage_28(){
main.m_talks.AddTalkStart(this.Zombie_01, "Hey guys, I saw 'twilights' and I like it!", 1500, 4000);
main.m_talks.AddTalkStart(this.Zombie_02, "I don't know you", 5500, 2500);
main.m_talks.AddTalkStart(this.Zombie_03, "Kill him already!", 8000, 3000);
main.m_talks.AddTalkFinish(this.Zombie_03, "Good job!", 0);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade(0, 180, 180, 180);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 168
//stage_29 (Stages.stage_29)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_29 extends base_stage {
var loaded;// = false
public function stage_29(){
main.m_talks.AddTalkStart(this.Zombie_01, "But why there are so much zombie games recently?", 1500, 4000);
main.m_talks.AddTalkStart(this.Zombie_02, "I guess it's a conspiracy of the developers!", 5500, 4000);
main.m_talks.AddTalkStart(this.Zombie_01, "I bet it is!", 9500, 3000);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade();
main.m_objects_panel.AddGrenade();
main.m_objects_panel.AddGrenade(0, 80);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 169
//stage_30 (Stages.stage_30)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_30 extends base_stage {
var loaded;// = false
public function stage_30(){
main.m_talks.AddTalkStart(this.Zombie_01, "I better play 'Skyrim' ", 1500, 4000);
main.m_talks.AddTalkStart(this.Zombie_01, "At least you can summon zombies there!", 5500, 4000);
main.m_talks.AddTalkStart(this.Zombie_02, "But I still like 'Morrowind' more", 9500, 4000);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade(0, 150);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 170
//stage_31 (Stages.stage_31)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_31 extends base_stage {
var loaded;// = false
public function stage_31(){
main.m_talks.AddTalkStart(this.Zombie_01, "Have you noticed? There are no black zombies in the game ", 1500, 4000);
main.m_talks.AddTalkStart(this.Zombie_02, "Damn, racists!", 5500, 4000);
main.m_talks.AddTalkStart(this.Zombie_03, "Calm down, there are no white zombies either", 9500, 4000);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade(0, 0);
main.m_objects_panel.AddGrenade(0, 0);
main.m_objects_panel.AddGrenade(0, 0);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 171
//stage_32 (Stages.stage_32)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_32 extends base_stage {
var loaded;// = false
public function stage_32(){
main.m_talks.AddTalkStart(this.Zombie_01, "Do you remember me? you've pushed me in the abyss in the 5th level ", 1500, 4000);
main.m_talks.AddTalkStart(this.Zombie_02, "He won't remember, the zombies are all the same for humans", 5500, 4000);
main.m_talks.AddTalkStart(this.Zombie_01, "Oh, yeah, right", 9500, 4000);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade(0, 80);
main.m_objects_panel.AddGrenade(0, 80);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 172
//stage_33 (Stages.stage_33)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_33 extends base_stage {
var loaded;// = false
public function stage_33(){
main.m_talks.AddTalkStart(this.Zombie_01, "Hey man, you won't believe it, I'm all green! ", 1500, 4000);
main.m_talks.AddTalkStart(this.Zombie_02, "Well, actually all zombies are green", 5500, 4000);
main.m_talks.AddTalkStart(this.Zombie_01, "What? Am I also a zombie?", 9500, 4000);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade(0, 0);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 173
//stage_34 (Stages.stage_34)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_34 extends base_stage {
var loaded;// = false
public function stage_34(){
main.m_talks.AddTalkStart(this.Zombie_01, "Hey! Why do humans always reject my dinner invitation?", 1500, 3000);
main.m_talks.AddTalkStart(this.Zombie_02, "Next time, try to tell them you're a vegetarian.. he he", 5000, 4000);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade();
main.m_objects_panel.AddGrenade();
main.m_objects_panel.AddGrenade(0, 80, 180, 80);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 174
//stage_35 (Stages.stage_35)
package Stages {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import Objects.*;
public dynamic class stage_35 extends base_stage {
var loaded;// = false
public function stage_35(){
main.m_talks.AddTalkStart(this.Zombie_01, "You've done it man! You've completed another intolerant zombie game!", 1500, 4000);
main.m_talks.AddTalkStart(this.Zombie_02, "With players like you all zombies are doomed!", 5500, 4000);
main.m_talks.AddTalkStart(this.Zombie_01, "You are like Gordon Freeman, but with the grenades", 9500, 4000);
}
public function Update(){
if (!loaded){
main.m_objects_panel.AddGrenade(0, 0);
main.m_objects_panel.AddGrenade(0, 0);
main.m_objects_panel.AddGrenade(0, 0);
loaded = true;
main.m_objects_panel.loaded = true;
};
}
}
}//package Stages
Section 175
//_33level_162 (ZomBlast_fla._33level_162)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class _33level_162 extends MovieClip {
public function _33level_162(){
addFrameScript(24, frame25);
}
function frame25(){
stop();
}
}
}//package ZomBlast_fla
Section 176
//ag_intro_mc_212 (ZomBlast_fla.ag_intro_mc_212)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class ag_intro_mc_212 extends MovieClip {
public function ag_intro_mc_212(){
addFrameScript(0, frame1, 224, frame225);
}
function frame1(){
gotoAndPlay(2);
}
function frame225(){
main.m_main.gotoAndStop("Menu");
}
}
}//package ZomBlast_fla
Section 177
//Blood_33 (ZomBlast_fla.Blood_33)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Blood_33 extends MovieClip {
public function Blood_33(){
addFrameScript(0, frame1, 14, frame15, 31, frame32);
}
function frame1(){
stop();
}
function frame15(){
stop();
}
function frame32(){
stop();
}
}
}//package ZomBlast_fla
Section 178
//Blood_6 (ZomBlast_fla.Blood_6)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Blood_6 extends MovieClip {
public function Blood_6(){
addFrameScript(0, frame1, 14, frame15, 31, frame32);
}
function frame1(){
stop();
}
function frame15(){
stop();
}
function frame32(){
stop();
}
}
}//package ZomBlast_fla
Section 179
//BuhSmall_335 (ZomBlast_fla.BuhSmall_335)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class BuhSmall_335 extends MovieClip {
public function BuhSmall_335(){
addFrameScript(5, frame6);
}
function frame6(){
stop();
}
}
}//package ZomBlast_fla
Section 180
//CreditsButtonAnim_240 (ZomBlast_fla.CreditsButtonAnim_240)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class CreditsButtonAnim_240 extends MovieClip {
public function CreditsButtonAnim_240(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
}
}
}//package ZomBlast_fla
Section 181
//ExploseRadius_73 (ZomBlast_fla.ExploseRadius_73)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class ExploseRadius_73 extends MovieClip {
public function ExploseRadius_73(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
}
}
}//package ZomBlast_fla
Section 182
//FinalButtonBack_270 (ZomBlast_fla.FinalButtonBack_270)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class FinalButtonBack_270 extends MovieClip {
public var BButton:BackButton;
public function FinalButtonBack_270(){
addFrameScript(0, frame1, 19, frame20);
}
function frame1(){
stop();
}
function frame20(){
stop();
}
}
}//package ZomBlast_fla
Section 183
//logo_newstage_215 (ZomBlast_fla.logo_newstage_215)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class logo_newstage_215 extends MovieClip {
public function logo_newstage_215(){
addFrameScript(100, frame101);
}
function frame101(){
main.m_main.gotoAndStop("Menu");
}
}
}//package ZomBlast_fla
Section 184
//Man1_Neighbour_45 (ZomBlast_fla.Man1_Neighbour_45)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man1_Neighbour_45 extends MovieClip {
public function Man1_Neighbour_45(){
addFrameScript(61, frame62);
}
function frame62(){
if (parent){
parent.ChangeStatic();
};
}
}
}//package ZomBlast_fla
Section 185
//Man1_Over_43 (ZomBlast_fla.Man1_Over_43)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man1_Over_43 extends MovieClip {
public function Man1_Over_43(){
addFrameScript(28, frame29);
}
function frame29(){
stop();
}
}
}//package ZomBlast_fla
Section 186
//Man1_Static_31 (ZomBlast_fla.Man1_Static_31)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man1_Static_31 extends MovieClip {
public function Man1_Static_31(){
addFrameScript(230, frame231);
}
function frame231(){
if (parent){
parent.ChangeStatic();
};
}
}
}//package ZomBlast_fla
Section 187
//Man1_Static2_40 (ZomBlast_fla.Man1_Static2_40)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man1_Static2_40 extends MovieClip {
public function Man1_Static2_40(){
addFrameScript(79, frame80);
}
function frame80(){
if (parent){
parent.ChangeStatic();
};
}
}
}//package ZomBlast_fla
Section 188
//Man1_Static3_41 (ZomBlast_fla.Man1_Static3_41)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man1_Static3_41 extends MovieClip {
public function Man1_Static3_41(){
addFrameScript(79, frame80);
}
function frame80(){
if (parent){
parent.ChangeStatic();
};
}
}
}//package ZomBlast_fla
Section 189
//Man1_Static4_42 (ZomBlast_fla.Man1_Static4_42)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man1_Static4_42 extends MovieClip {
public function Man1_Static4_42(){
addFrameScript(230, frame231);
}
function frame231(){
if (parent){
parent.ChangeStatic();
};
}
}
}//package ZomBlast_fla
Section 190
//Man2_Neighbour_119 (ZomBlast_fla.Man2_Neighbour_119)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man2_Neighbour_119 extends MovieClip {
public function Man2_Neighbour_119(){
addFrameScript(61, frame62);
}
function frame62(){
if (parent){
parent.ChangeStatic();
};
}
}
}//package ZomBlast_fla
Section 191
//Man2_Over_118 (ZomBlast_fla.Man2_Over_118)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man2_Over_118 extends MovieClip {
public function Man2_Over_118(){
addFrameScript(28, frame29);
}
function frame29(){
stop();
}
}
}//package ZomBlast_fla
Section 192
//Man2_Static_113 (ZomBlast_fla.Man2_Static_113)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man2_Static_113 extends MovieClip {
public function Man2_Static_113(){
addFrameScript(54, frame55);
}
function frame55(){
if (parent){
parent.ChangeStatic();
};
}
}
}//package ZomBlast_fla
Section 193
//Man2_Static2_115 (ZomBlast_fla.Man2_Static2_115)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man2_Static2_115 extends MovieClip {
public function Man2_Static2_115(){
addFrameScript(50, frame51);
}
function frame51(){
if (parent){
parent.ChangeStatic();
};
}
}
}//package ZomBlast_fla
Section 194
//Man2_Static3_116 (ZomBlast_fla.Man2_Static3_116)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man2_Static3_116 extends MovieClip {
public function Man2_Static3_116(){
addFrameScript(17, frame18);
}
function frame18(){
if (parent){
parent.ChangeStatic();
};
}
}
}//package ZomBlast_fla
Section 195
//Man2_Static4_117 (ZomBlast_fla.Man2_Static4_117)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man2_Static4_117 extends MovieClip {
public function Man2_Static4_117(){
addFrameScript(36, frame37);
}
function frame37(){
if (parent){
parent.ChangeStatic();
};
}
}
}//package ZomBlast_fla
Section 196
//Man3_Static_79 (ZomBlast_fla.Man3_Static_79)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man3_Static_79 extends MovieClip {
public function Man3_Static_79(){
addFrameScript(656, frame657);
}
function frame657(){
if (parent){
parent.ChangeStatic();
};
}
}
}//package ZomBlast_fla
Section 197
//Man3_Static4_87 (ZomBlast_fla.Man3_Static4_87)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man3_Static4_87 extends MovieClip {
public function Man3_Static4_87(){
addFrameScript(230, frame231);
}
function frame231(){
if (parent){
parent.ChangeStatic();
};
}
}
}//package ZomBlast_fla
Section 198
//Man4_Static_126 (ZomBlast_fla.Man4_Static_126)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man4_Static_126 extends MovieClip {
public function Man4_Static_126(){
addFrameScript(803, frame804);
}
function frame804(){
if (parent){
parent.ChangeStatic();
};
}
}
}//package ZomBlast_fla
Section 199
//Man6_Static4_174 (ZomBlast_fla.Man6_Static4_174)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man6_Static4_174 extends MovieClip {
public function Man6_Static4_174(){
addFrameScript(230, frame231);
}
function frame231(){
if (parent){
parent.ChangeStatic();
};
}
}
}//package ZomBlast_fla
Section 200
//Man7_Neighbour_62 (ZomBlast_fla.Man7_Neighbour_62)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man7_Neighbour_62 extends MovieClip {
public function Man7_Neighbour_62(){
addFrameScript(61, frame62);
}
function frame62(){
if (parent){
parent.ChangeStatic();
};
}
}
}//package ZomBlast_fla
Section 201
//Man7_Over_61 (ZomBlast_fla.Man7_Over_61)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man7_Over_61 extends MovieClip {
public function Man7_Over_61(){
addFrameScript(28, frame29);
}
function frame29(){
stop();
}
}
}//package ZomBlast_fla
Section 202
//Man7_Static_51 (ZomBlast_fla.Man7_Static_51)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man7_Static_51 extends MovieClip {
public function Man7_Static_51(){
addFrameScript(230, frame231);
}
function frame231(){
if (parent){
parent.ChangeStatic();
};
}
}
}//package ZomBlast_fla
Section 203
//Man7_Static2_58 (ZomBlast_fla.Man7_Static2_58)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man7_Static2_58 extends MovieClip {
public function Man7_Static2_58(){
addFrameScript(79, frame80);
}
function frame80(){
if (parent){
parent.ChangeStatic();
};
}
}
}//package ZomBlast_fla
Section 204
//Man7_Static3_59 (ZomBlast_fla.Man7_Static3_59)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man7_Static3_59 extends MovieClip {
public function Man7_Static3_59(){
addFrameScript(79, frame80);
}
function frame80(){
if (parent){
parent.ChangeStatic();
};
}
}
}//package ZomBlast_fla
Section 205
//Man7_Static4_60 (ZomBlast_fla.Man7_Static4_60)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man7_Static4_60 extends MovieClip {
public function Man7_Static4_60(){
addFrameScript(230, frame231);
}
function frame231(){
if (parent){
parent.ChangeStatic();
};
}
}
}//package ZomBlast_fla
Section 206
//Man8_Neighbour_296 (ZomBlast_fla.Man8_Neighbour_296)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man8_Neighbour_296 extends MovieClip {
public function Man8_Neighbour_296(){
addFrameScript(61, frame62);
}
function frame62(){
if (parent){
parent.ChangeStatic();
};
}
}
}//package ZomBlast_fla
Section 207
//Man8_Over_295 (ZomBlast_fla.Man8_Over_295)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man8_Over_295 extends MovieClip {
public function Man8_Over_295(){
addFrameScript(28, frame29);
}
function frame29(){
stop();
}
}
}//package ZomBlast_fla
Section 208
//Man8_Static_285 (ZomBlast_fla.Man8_Static_285)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man8_Static_285 extends MovieClip {
public function Man8_Static_285(){
addFrameScript(230, frame231);
}
function frame231(){
if (parent){
parent.ChangeStatic();
};
}
}
}//package ZomBlast_fla
Section 209
//Man8_Static2_292 (ZomBlast_fla.Man8_Static2_292)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man8_Static2_292 extends MovieClip {
public function Man8_Static2_292(){
addFrameScript(79, frame80);
}
function frame80(){
if (parent){
parent.ChangeStatic();
};
}
}
}//package ZomBlast_fla
Section 210
//Man8_Static3_293 (ZomBlast_fla.Man8_Static3_293)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man8_Static3_293 extends MovieClip {
public function Man8_Static3_293(){
addFrameScript(79, frame80);
}
function frame80(){
if (parent){
parent.ChangeStatic();
};
}
}
}//package ZomBlast_fla
Section 211
//Man8_Static4_294 (ZomBlast_fla.Man8_Static4_294)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Man8_Static4_294 extends MovieClip {
public function Man8_Static4_294(){
addFrameScript(230, frame231);
}
function frame231(){
if (parent){
parent.ChangeStatic();
};
}
}
}//package ZomBlast_fla
Section 212
//next_268 (ZomBlast_fla.next_268)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class next_268 extends MovieClip {
public function next_268(){
addFrameScript(0, frame1);
}
function frame1(){
this.mouseEnabled = false;
}
}
}//package ZomBlast_fla
Section 213
//Selector_278 (ZomBlast_fla.Selector_278)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Selector_278 extends MovieClip {
public function Selector_278(){
addFrameScript(0, frame1);
}
function frame1(){
visible = false;
}
}
}//package ZomBlast_fla
Section 214
//Selector_Quad_95 (ZomBlast_fla.Selector_Quad_95)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Selector_Quad_95 extends MovieClip {
public function Selector_Quad_95(){
addFrameScript(0, frame1);
}
function frame1(){
visible = false;
}
}
}//package ZomBlast_fla
Section 215
//Stage1_bonus1_69 (ZomBlast_fla.Stage1_bonus1_69)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Stage1_bonus1_69 extends MovieClip {
public function Stage1_bonus1_69(){
addFrameScript(333, frame334);
}
function frame334(){
stop();
}
}
}//package ZomBlast_fla
Section 216
//Stage2_tutorial_90 (ZomBlast_fla.Stage2_tutorial_90)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Stage2_tutorial_90 extends MovieClip {
public function Stage2_tutorial_90(){
addFrameScript(438, frame439);
}
function frame439(){
stop();
}
}
}//package ZomBlast_fla
Section 217
//Stage3_tutorial_150 (ZomBlast_fla.Stage3_tutorial_150)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Stage3_tutorial_150 extends MovieClip {
public function Stage3_tutorial_150(){
addFrameScript(71, frame72);
}
function frame72(){
stop();
}
}
}//package ZomBlast_fla
Section 218
//Stage4_tutorial_120 (ZomBlast_fla.Stage4_tutorial_120)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Stage4_tutorial_120 extends MovieClip {
public function Stage4_tutorial_120(){
addFrameScript(71, frame72);
}
function frame72(){
stop();
}
}
}//package ZomBlast_fla
Section 219
//Stage5_tutorial_88 (ZomBlast_fla.Stage5_tutorial_88)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Stage5_tutorial_88 extends MovieClip {
public function Stage5_tutorial_88(){
addFrameScript(701, frame702);
}
function frame702(){
stop();
}
}
}//package ZomBlast_fla
Section 220
//theZombies2_122 (ZomBlast_fla.theZombies2_122)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class theZombies2_122 extends MovieClip {
public function theZombies2_122(){
addFrameScript(682, frame683);
}
function frame683(){
stop();
}
}
}//package ZomBlast_fla
Section 221
//title_anim_10 (ZomBlast_fla.title_anim_10)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class title_anim_10 extends MovieClip {
public function title_anim_10(){
addFrameScript(55, frame56);
}
function frame56(){
stop();
}
}
}//package ZomBlast_fla
Section 222
//Tween10_249 (ZomBlast_fla.Tween10_249)
package ZomBlast_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Tween10_249 extends MovieClip {
public function Tween10_249(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
}
}
}//package ZomBlast_fla
Section 223
//BackButton (BackButton)
package {
import gui.*;
public dynamic class BackButton extends Base_Button {
}
}//package
Section 224
//Base_Body (Base_Body)
package {
import flash.display.*;
public dynamic class Base_Body extends MovieClip {
}
}//package
Section 225
//Base_Hand1 (Base_Hand1)
package {
import flash.display.*;
public dynamic class Base_Hand1 extends MovieClip {
}
}//package
Section 226
//Base_Hand2 (Base_Hand2)
package {
import flash.display.*;
public dynamic class Base_Hand2 extends MovieClip {
}
}//package
Section 227
//Base_Head (Base_Head)
package {
import flash.display.*;
public dynamic class Base_Head extends MovieClip {
}
}//package
Section 228
//Base_Leg1 (Base_Leg1)
package {
import flash.display.*;
public dynamic class Base_Leg1 extends MovieClip {
}
}//package
Section 229
//Base_Leg2 (Base_Leg2)
package {
import flash.display.*;
public dynamic class Base_Leg2 extends MovieClip {
}
}//package
Section 230
//Box_10 (Box_10)
package {
import Objects.*;
public dynamic class Box_10 extends Box_01 {
}
}//package
Section 231
//BrakeClip (BrakeClip)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class BrakeClip extends MovieClip {
public function BrakeClip(){
addFrameScript(19, frame20);
}
function frame20(){
stop();
if (parent){
parent.removeChild(this);
};
}
}
}//package
Section 232
//BreakingSound (BreakingSound)
package {
import flash.media.*;
public dynamic class BreakingSound extends Sound {
}
}//package
Section 233
//BuhPart (BuhPart)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class BuhPart extends MovieClip {
public function BuhPart(){
addFrameScript(24, frame25);
}
function frame25(){
stop();
}
}
}//package
Section 234
//Bum_Sound (Bum_Sound)
package {
import flash.media.*;
public dynamic class Bum_Sound extends Sound {
}
}//package
Section 235
//Bum2_Sound (Bum2_Sound)
package {
import flash.media.*;
public dynamic class Bum2_Sound extends Sound {
}
}//package
Section 236
//Bum3_Sound (Bum3_Sound)
package {
import flash.media.*;
public dynamic class Bum3_Sound extends Sound {
}
}//package
Section 237
//Bum4_Sound (Bum4_Sound)
package {
import flash.media.*;
public dynamic class Bum4_Sound extends Sound {
}
}//package
Section 238
//Bum5_Sound (Bum5_Sound)
package {
import flash.media.*;
public dynamic class Bum5_Sound extends Sound {
}
}//package
Section 239
//Bum6_Sound (Bum6_Sound)
package {
import flash.media.*;
public dynamic class Bum6_Sound extends Sound {
}
}//package
Section 240
//Button_Over (Button_Over)
package {
import flash.media.*;
public dynamic class Button_Over extends Sound {
}
}//package
Section 241
//Car_Crush (Car_Crush)
package {
import flash.media.*;
public dynamic class Car_Crush extends Sound {
}
}//package
Section 242
//ClickClip (ClickClip)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class ClickClip extends MovieClip {
public function ClickClip(){
addFrameScript(4, frame5);
}
function frame5(){
stop();
if (parent){
parent.removeChild(this);
};
}
}
}//package
Section 243
//CrackSound1 (CrackSound1)
package {
import flash.media.*;
public dynamic class CrackSound1 extends Sound {
}
}//package
Section 244
//CrackSound2 (CrackSound2)
package {
import flash.media.*;
public dynamic class CrackSound2 extends Sound {
}
}//package
Section 245
//CrackSound3 (CrackSound3)
package {
import flash.media.*;
public dynamic class CrackSound3 extends Sound {
}
}//package
Section 246
//Explosion (Explosion)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Explosion extends MovieClip {
public function Explosion(){
addFrameScript(14, frame15);
}
function frame15(){
if (parent){
parent.removeChild(this);
};
}
}
}//package
Section 247
//Explosion2Sound (Explosion2Sound)
package {
import flash.media.*;
public dynamic class Explosion2Sound extends Sound {
}
}//package
Section 248
//ExplosionSound (ExplosionSound)
package {
import flash.media.*;
public dynamic class ExplosionSound extends Sound {
}
}//package
Section 249
//Fire_Start (Fire_Start)
package {
import flash.media.*;
public dynamic class Fire_Start extends Sound {
}
}//package
Section 250
//Fire_Start_Small (Fire_Start_Small)
package {
import flash.media.*;
public dynamic class Fire_Start_Small extends Sound {
}
}//package
Section 251
//FireBody (FireBody)
package {
import flash.display.*;
public dynamic class FireBody extends MovieClip {
}
}//package
Section 252
//Frag_Button (Frag_Button)
package {
import gui.*;
public dynamic class Frag_Button extends Base_Button {
}
}//package
Section 253
//GasBigSound (GasBigSound)
package {
import flash.media.*;
public dynamic class GasBigSound extends Sound {
}
}//package
Section 254
//GasSmallSound (GasSmallSound)
package {
import flash.media.*;
public dynamic class GasSmallSound extends Sound {
}
}//package
Section 255
//GoldSound (GoldSound)
package {
import flash.media.*;
public dynamic class GoldSound extends Sound {
}
}//package
Section 256
//GreenBarClip (GreenBarClip)
package {
import flash.display.*;
public dynamic class GreenBarClip extends MovieClip {
}
}//package
Section 257
//GrenadePart (GrenadePart)
package {
import flash.display.*;
public dynamic class GrenadePart extends MovieClip {
}
}//package
Section 258
//LevelGoodClip (LevelGoodClip)
package {
import flash.display.*;
public dynamic class LevelGoodClip extends MovieClip {
}
}//package
Section 259
//LevelStartClip (LevelStartClip)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class LevelStartClip extends MovieClip {
public function LevelStartClip(){
addFrameScript(22, frame23);
}
function frame23(){
stop();
if (parent){
parent.removeChild(this);
};
}
}
}//package
Section 260
//LogoMusic (LogoMusic)
package {
import flash.media.*;
public dynamic class LogoMusic extends Sound {
}
}//package
Section 261
//LoveMusic (LoveMusic)
package {
import flash.media.*;
public dynamic class LoveMusic extends Sound {
}
}//package
Section 262
//main (main)
package {
import Box2D.Collision.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import Box2D.Dynamics.Joints.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.*;
import flash.events.*;
import Box2D.Dynamics.Contacts.*;
import flash.display.*;
import Objects.*;
import gui.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.geom.*;
import flash.ui.*;
public dynamic class main extends MovieClip {
public var transform2:SoundTransform;
public var transform3:SoundTransform;
public static var b_sound = true;
public static var b_music = true;
public static var b_pause = false;
public static var m_main;
public static var m_objects = new Array();
public static var m_stage = 0;
public static var m_sprite:Sprite;
public static var m_world:b2World;
public static var m_iterations:int = 10;
public static var m_timeStep:Number = 0.0333333333333333;
public static var m_physScale:Number = 30;
public static var m_stage_name;
public static var m_stage_number;
public static var b_finish = false;
public static var t_timer = 0;
public static var b_first = false;
public static var m_clicks = 0;
public static var b_loose = false;
public static var b_menu_up = false;
public static var LevelNumberClip = 0;
public static var mySO:SharedObject = SharedObject.getLocal("Zomblast_5");
public static var m_fire_controll;
public static var m_scores_data;
public static var m_WalkClip = 0;
public static var g_num = -5;
public static var myContactListener = 0;
public static var m_force_coeff = 0;
public static var m_bonus_y = 0;
public static var m_scores = 0;
public static var m_counter = 0;
public static var b_level_loaded = false;
public static var b_locked = false;
public static var m_level_menu_px = 640;
public static var m_level_menu_py = 0;
public static var b_mochi = false;
public static var b_kong = false;
public static var kongregate = 0;
public static var m_objects_panel = 0;
public static var m_gameGUI = 0;
public static var shake_x = 0;
public static var shake_y = 0;
public static var shake_num = 0;
public static var m_talks = 0;
public static var m_bird_time = 0;
public static var over_pause = 0;
public static var button_rotate = 0;
public static var m_sound_pause = 0;
public static var b_test = false;
public function main(){
var _local1:*;
super();
addFrameScript(0, frame1, 46, frame47, 64, frame65, 74, frame75, 94, frame95);
addEventListener(Event.ENTER_FRAME, Update);
stage.addEventListener(MouseEvent.MOUSE_DOWN, MouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, MouseUp);
stage.addEventListener(MouseEvent.MOUSE_MOVE, MouseMove);
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
m_main = this;
m_scores_data = new LevelScores();
m_sprite = new Sprite();
addChild(m_sprite);
InitPhysics();
if (!mySO.data.Saves){
if (b_mochi){
MochiBot.track(main.m_main, "1b0ab10d");
};
mySO.data.Saves = new Object();
mySO.data.Saves.m_scores = new Array();
mySO.data.Saves.m_levels = new Array();
_local1 = 0;
while (_local1 < 35) {
mySO.data.Saves.m_levels.push(0);
mySO.data.Saves.m_scores.push(0);
_local1++;
};
mySO.data.Saves.m_levels[0] = 1;
mySO.data.Saves.b_uniq_bubble = false;
mySO.data.Saves.b_uniq_lara = false;
mySO.data.Saves.b_01 = false;
mySO.data.Saves.b_05 = false;
mySO.data.Saves.b_10 = false;
mySO.data.Saves.b_30 = false;
mySO.data.Saves.b_music = main.b_music;
mySO.data.Saves.b_sound = main.b_sound;
mySO.flush();
} else {
main.b_music = mySO.data.Saves.b_music;
main.b_sound = mySO.data.Saves.b_sound;
};
if (!isUrl(["armorgames.com"])){
b_locked = true;
};
m_fire_controll = new FireControll();
m_talks = new TalkManager();
}
public function InitPhysics(){
var _local1:b2AABB = new b2AABB();
_local1.lowerBound.Set(-1000, -1000);
_local1.upperBound.Set(1000, 1000);
var _local2:b2Vec2 = new b2Vec2(0, 10);
var _local3:Boolean;
m_world = new b2World(_local1, _local2, _local3);
var _local4:b2DebugDraw = new b2DebugDraw();
_local4.m_sprite = m_sprite;
_local4.m_drawScale = m_physScale;
_local4.m_fillAlpha = 0.2;
_local4.m_lineThickness = 1;
_local4.m_drawFlags = (b2DebugDraw.e_shapeBit | b2DebugDraw.e_jointBit);
myContactListener = new ContactListenerClass();
m_world.SetContactListener(myContactListener);
}
private function keyDownHandler(_arg1:KeyboardEvent):void{
if ((((((_arg1.keyCode == 27)) || ((_arg1.keyCode == 32)))) || ((_arg1.keyCode == 80)))){
};
if (_arg1.keyCode == 82){
main.RestartLevel();
};
if (main.b_test == true){
if (_arg1.keyCode == 87){
FinishLevel();
};
};
if ((((_arg1.keyCode == 37)) || ((_arg1.keyCode == 40)))){
main.button_rotate = -1;
};
if ((((_arg1.keyCode == 38)) || ((_arg1.keyCode == 39)))){
main.button_rotate = 1;
};
}
private function keyUpHandler(_arg1:KeyboardEvent):void{
if ((((((((_arg1.keyCode == 37)) || ((_arg1.keyCode == 38)))) || ((_arg1.keyCode == 39)))) || ((_arg1.keyCode == 40)))){
main.button_rotate = 0;
};
}
public function Update(_arg1){
var _local2:*;
var _local3:uint;
var _local4:*;
var _local5:*;
if (b_pause){
return;
};
if (((b_level_loaded) && ((m_counter > 0)))){
m_counter--;
};
if (over_pause > 0){
over_pause = (over_pause - (1 / 30));
};
m_sprite.graphics.clear();
CalculateContacts();
for each (_local2 in m_objects) {
_local2.Update();
if ((((_local2.y > 1000)) && ((_local2.m_type == 2)))){
DeleteObject(_local2);
};
};
_local3 = getTimer();
m_world.Step(m_timeStep, m_iterations);
CheckFinish();
if (m_main.clicks_number_text != undefined){
m_main.clicks_number_text.text = m_clicks;
};
m_fire_controll.Update();
if (this.GameGUI){
this.GameGUI.LevelNumber.scores_number_text.text = main.m_scores;
this.GameGUI.LevelNumber.scores2_number_text.text = ("/ " + m_scores_data.m_data[main.m_stage_number]);
this.GameGUI.LevelNumber.level_number_text.text = main.m_stage_number;
};
if (((((((m_stage) && (m_stage.Update))) && (main.m_objects_panel))) && (main.m_main.GamePoint))){
m_stage.Update();
};
if ((((shake_num > 0)) && (m_stage))){
_local4 = 10;
shake_num--;
m_stage.x = ((Math.random() * _local4) - (_local4 / 2));
m_stage.y = ((Math.random() * _local4) - (_local4 / 2));
if (shake_num == 0){
m_stage.x = (shake_x = 0);
m_stage.y = (shake_y = 0);
};
_local4--;
};
m_talks.Update();
if (m_stage){
m_bird_time = (m_bird_time - (1 / 30));
if (m_bird_time <= 0){
m_bird_time = (2 + (Math.random() * 2));
_local5 = new bird_fly();
};
};
UpdateSoundPause();
}
public function MouseDown(_arg1){
var _local2:*;
if (b_pause){
return;
};
if (m_counter > 0){
return;
};
for each (_local2 in m_objects) {
if (_local2.m_type == 1){
if (_local2.ibox.selector.hitTestPoint(mouseX, mouseY)){
if (_local2.b_breaks){
CreateEffect("WrrClip", mouseX, mouseY);
_local2.UnBreak();
} else {
CreateEffect("BrakeClip", mouseX, mouseY);
_local2.Break(_local2.b_tormoza);
};
return;
};
};
};
CreateEffect("ClickClip", mouseX, mouseY);
}
public function MouseUp(_arg1){
if (main.m_objects_panel){
main.m_objects_panel.m_selected_2 = 0;
};
if (b_pause){
return;
};
}
public function MouseMove(_arg1:MouseEvent):void{
if (b_pause){
return;
};
}
public function CalculateContacts(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
if (myContactListener == 0){
return;
};
while (myContactListener.contactStack[0]) {
_local1 = myContactListener.contactStack.pop();
_local2 = _local1.car;
_local3 = _local1.man;
_local4 = _local2.m_userData.m_type;
_local5 = _local3.m_userData.m_type;
if (_local4 == 8){
_local2.m_userData.m_body.Explose();
} else {
if ((((_local5 == 2)) && ((_local4 == 6)))){
_local6 = _local1.pos.x;
_local7 = _local1.pos.y;
if (_local2.m_userData.m_body.IfCan((_local6 * main.m_physScale), (_local7 * main.m_physScale)) == false){
} else {
_local8 = -(_local1.force);
_local9 = _local1.norm;
if ((((_local8 > 0.005)) && (!((_local3.m_userData.m_body.b_deleted == true))))){
if (main.b_sound){
_local12 = (int((Math.random() * 6)) + 1);
if (_local12 == 1){
main.m_main.BumSound.play();
} else {
if (_local12 == 2){
main.m_main.BumSound2.play();
} else {
if (_local12 == 3){
main.m_main.BumSound3.play();
} else {
if (_local12 == 4){
main.m_main.BumSound4.play();
} else {
if (_local12 == 5){
main.m_main.BumSound5.play();
} else {
if (_local12 == 6){
main.m_main.BumSound6.play();
};
};
};
};
};
};
};
CreateEffect("RagdollClip", (_local6 * main.m_physScale), (_local7 * main.m_physScale));
_local10 = new BonusStar((_local6 * main.m_physScale), (_local7 * main.m_physScale), 100);
_local11 = new Ragdoll(_local3.m_userData.m_body, _local2.m_userData.m_body, _local8, _local6, _local7);
main.DeleteObject(_local3.m_userData.m_body);
main.Panic();
};
};
};
};
};
}
public function CreateEffect(_arg1, _arg2, _arg3){
var _local4:* = new ((getDefinitionByName(_arg1) as Class));
_local4.x = _arg2;
_local4.y = _arg3;
var _local5:* = ((Math.random() * 60) - 30);
_local4.rotation = _local5;
main.m_main.addChild(_local4);
}
function frame1(){
stop();
this.b_first = true;
main.m_main.b_first_expl = true;
main.m_main.ButtonOver = new Button_Over();
}
function frame47(){
stop();
}
function frame65(){
if (this.b_first){
main.m_main.Music1 = new Music1();
main.m_main.Music2 = new Music2();
main.m_main.BumSound = new Bum_Sound();
main.m_main.BumSound2 = new Bum2_Sound();
main.m_main.BumSound3 = new Bum3_Sound();
main.m_main.BumSound4 = new Bum4_Sound();
main.m_main.BumSound5 = new Bum5_Sound();
main.m_main.BumSound6 = new Bum6_Sound();
main.m_main.CarCrashSound = new Car_Crush();
main.m_main.FireSound = new Fire_Start();
main.m_main.FireSmallSound = new Fire_Start_Small();
main.m_main.StarSound = new Star_Arrive();
main.m_main.CrackSound1 = new CrackSound1();
main.m_main.CrackSound2 = new CrackSound2();
main.m_main.CrackSound3 = new CrackSound3();
main.m_main.BreakingSound = new BreakingSound();
main.m_main.GasBigSound = new GasBigSound();
main.m_main.GasSmallSound = new GasSmallSound();
main.m_main.ExplosionSound = new ExplosionSound();
main.m_main.GoldSound = new GoldSound();
main.m_main.RestartSound = new RestartSound();
main.m_main.WinSound = new WinSound();
main.m_main.LoveMusic = new LoveMusic();
main.m_main.SimpsonsMusic = new SimpsonsMusic();
main.m_main.Explosion2Sound = new Explosion2Sound();
this.b_first = false;
main.m_main.m_music_type = 0;
};
if (main.m_main.m_music_type != 1){
transform2 = new SoundTransform(1, 0);
if (!main.b_music){
transform2.volume = 0;
};
if (main.m_main.m_music){
main.m_main.m_music.stop();
};
main.m_main.m_music = main.m_main.Music1.play(0, 9999, transform2);
main.m_main.m_music_type = 1;
};
}
function frame75(){
if (main.m_main.m_music_type != 2){
transform3 = new SoundTransform(1, 0);
if (!main.b_music){
transform3.volume = 0;
};
if (main.m_main.m_music){
main.m_main.m_music.stop();
};
main.m_main.m_music = main.m_main.Music2.play(0, 9999, transform3);
main.m_main.m_music_type = 2;
};
}
function frame95(){
gotoAndStop("Menu");
}
public static function ResetLevels(){
var _local1:* = 0;
while (_local1 < 35) {
mySO.data.Saves.m_levels[_local1] = 0;
mySO.data.Saves.m_scores[_local1] = 0;
_local1++;
};
mySO.data.Saves.m_levels[0] = 1;
main.m_main.gotoAndStop("Reset");
}
public static function FinishLevel(){
var _local1:*;
if (b_finish){
return;
};
i = 0;
while (i < m_objects.length) {
if (m_objects[i].m_type == 2){
_local1 = m_objects[i];
if (_local1.m_type == 2){
DeleteObject(_local1);
i = 0;
};
};
i++;
};
CheckFinish();
t_timer = (t_timer - 3000);
}
public static function RestartLevel(){
if (main.m_stage){
if (main.b_sound){
main.m_main.RestartSound.play();
};
main.FreeAll();
main.CreateStage(main.m_stage_name);
};
}
public static function Panic(){
i = 0;
while (i < m_objects.length) {
if (m_objects[i].m_type == 2){
if (m_objects[i].anim == 1){
m_objects[i].gotoAndStop("Neighbour");
};
};
i++;
};
}
public static function AddObject(_arg1, _arg2=0){
_arg1.b_deleted = false;
_arg1.m_type = int(_arg2);
m_objects.push(_arg1);
}
public static function DeleteObject(_arg1){
var _local2:*;
_local2 = 0;
while (_local2 < m_objects.length) {
if (m_objects[_local2] == _arg1){
m_objects[_local2].Destroy();
m_objects[_local2].b_deleted = true;
m_objects.splice(_local2, 1);
return (true);
};
_local2++;
};
return (false);
}
public static function FreeAll(){
var _local1:*;
m_talks.Clear();
_local1 = 0;
while (_local1 < m_objects.length) {
if (m_objects[_local1].m_type == 11){
m_objects[_local1].Destroy();
m_objects.splice(_local1, 1);
_local1 = 0;
};
_local1++;
};
for each (_local1 in m_objects) {
_local1.Destroy();
};
if (m_stage.Destroy){
m_stage.Destroy();
};
m_stage.parent.removeChild(m_stage);
m_stage = 0;
m_objects.splice(0);
m_fire_controll.FreeAll();
b_level_loaded = false;
if (main.m_main.m_uniq_music){
main.m_main.m_uniq_music.stop();
m_sound_pause = getTimer();
};
}
public static function CreateStage(_arg1){
over_pause = 0;
main.button_rotate = 0;
m_counter = 3;
b_level_loaded = true;
m_force_coeff = 0.5;
m_bonus_y = 1;
var _local2:* = new ((getDefinitionByName(("Stages." + _arg1)) as Class));
main.m_stage = _local2;
if (main.m_main.GamePoint){
trace("add");
main.m_main.GamePoint.addChild(main.m_stage);
};
m_stage_name = _arg1;
b_pause = false;
b_finish = false;
b_loose = false;
t_timer = 0;
b_first = true;
m_clicks = 0;
b_menu_up = true;
m_scores = 0;
m_fire_controll.Init();
if (main.m_objects_panel){
main.m_objects_panel.Restart();
};
var _local3:String = (main.m_stage_name.charAt((main.m_stage_name.length - 2)) + main.m_stage_name.charAt((main.m_stage_name.length - 1)));
main.m_stage_number = int(_local3);
main.m_talks.ResetTime();
var _local4:* = new LevelStartClip();
m_stage.addChild(_local4);
}
public static function CheckFinish(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:String;
var _local10:*;
var _local11:*;
if (m_stage == 0){
return;
};
if (b_finish == false){
_local4 = true;
_local5 = true;
_local1 = 0;
while (_local1 < m_objects.length) {
_local6 = m_objects[_local1];
if (_local6.m_type == 1){
_local2 = (_local6.x + _local6.ibox.x);
_local3 = (_local6.y + _local6.ibox.y);
if ((((((((_local2 < -100)) || ((_local2 > 740)))) || ((_local3 < -100)))) || ((_local3 > 580)))){
_local4 = false;
};
};
if (_local6.m_type == 2){
if ((((((((_local6.x > 0)) && ((_local6.x < 640)))) && ((_local6.y > 0)))) && ((_local6.y < 480)))){
_local5 = false;
} else {
if (_local6.b_overscreen == false){
_local7 = new BonusStar(_local6.x, _local6.y, 100);
_local6.b_overscreen = true;
};
};
};
_local1++;
};
if ((((_local5 == true)) && ((t_timer == 0)))){
t_timer = getTimer();
};
if (_local4 == false){
if (b_loose == false){
_local8 = new FailLogo();
_local8.alpha = 0.4;
m_stage.addChild(_local8);
if (main.b_sound){
m_main.CarCrashSound.play();
};
};
b_loose = true;
return;
};
if (((!((t_timer == 0))) && (((getTimer() - t_timer) > 3000)))){
if (_local5 == true){
_local9 = (main.m_stage_name.charAt((main.m_stage_name.length - 2)) + main.m_stage_name.charAt((main.m_stage_name.length - 1)));
_local10 = int(_local9);
_local11 = 0;
_local1 = 0;
while (_local1 < 35) {
_local11 = (_local11 + main.mySO.data.Saves.m_scores[_local1]);
_local1++;
};
main.mySO.data.Saves.m_levels[(_local10 - 1)] = 2;
if ((((_local10 < 30)) && ((main.mySO.data.Saves.m_levels[_local10] == 0)))){
main.mySO.data.Saves.m_levels[_local10] = 1;
};
main.mySO.flush();
if (main.b_sound){
m_main.WinSound.play();
};
b_finish = true;
};
};
};
}
public static function isUrl(_arg1:Array):Boolean{
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local2:String = main.m_main.stage.loaderInfo.loaderURL;
var _local3:* = _local2.split("://");
if (_local3[1]){
_local2 = _local3[1];
};
for (_local5 in _arg1) {
_local4 = true;
_local6 = _local2.search(_arg1[_local5]);
if (_local6 > 0){
_local7 = _local2.charAt((_local6 - 1));
};
if (_local6 == -1){
_local4 = false;
};
if ((((_local6 > 0)) && (!((_local7 == "."))))){
_local4 = false;
};
if (_local4){
return (true);
};
};
return (false);
}
public static function Bum(){
var _local1:*;
for each (_local1 in m_objects_panel.m_objects) {
_local1.m_object.Explose();
};
}
public static function SetSoundPause(_arg1){
m_sound_pause = (getTimer() + (_arg1 * 1000));
var _local2:SoundTransform = new SoundTransform();
_local2.volume = 0;
var _local3:* = main.m_main.m_music;
if (_local3){
_local3.soundTransform = _local2;
};
trace("small sound");
}
public static function UpdateSoundPause(){
var _local1:*;
var _local2:SoundTransform;
if (m_sound_pause <= 0){
return;
};
if (getTimer() > m_sound_pause){
_local1 = main.m_main.m_music;
if (_local1){
if ((((_local1.soundTransform.volume < 1)) && (main.b_music))){
_local2 = new SoundTransform();
_local2.volume = (_local1.soundTransform.volume + 0.05);
_local1.soundTransform = _local2;
} else {
m_sound_pause = 0;
trace("big sound");
};
};
};
}
public static function StartGameNow(){
main.m_talks.DeleteStartDialogs();
main.m_talks.DeleteStartDialogs();
main.over_pause = 0;
if (main.m_stage_number == 1){
if (main.m_stage.Tutorial.currentFrame < 294){
main.m_stage.Tutorial.gotoAndPlay(294);
};
};
if (main.m_stage_number == 2){
if (main.m_stage.Tutorial.currentFrame < 398){
main.m_stage.Tutorial.gotoAndPlay(398);
};
};
}
}
}//package
Section 263
//Man_01_Body (Man_01_Body)
package {
import flash.display.*;
public dynamic class Man_01_Body extends MovieClip {
public var Blood_LHand:MovieClip;
public var Blood_RHand:MovieClip;
public var Blood_RLeg:MovieClip;
public var Blood_LLeg:MovieClip;
public var Blood_Head:MovieClip;
}
}//package
Section 264
//Man_01_Hand1 (Man_01_Hand1)
package {
import flash.display.*;
public dynamic class Man_01_Hand1 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 265
//Man_01_Hand2 (Man_01_Hand2)
package {
import flash.display.*;
public dynamic class Man_01_Hand2 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 266
//Man_01_Head (Man_01_Head)
package {
import flash.display.*;
public dynamic class Man_01_Head extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 267
//Man_01_Leg1 (Man_01_Leg1)
package {
import flash.display.*;
public dynamic class Man_01_Leg1 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 268
//Man_01_Leg2 (Man_01_Leg2)
package {
import flash.display.*;
public dynamic class Man_01_Leg2 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 269
//Man_02_Body (Man_02_Body)
package {
import flash.display.*;
public dynamic class Man_02_Body extends MovieClip {
public var Blood_LHand:MovieClip;
public var Blood_RHand:MovieClip;
public var Blood_RLeg:MovieClip;
public var Blood_LLeg:MovieClip;
public var Blood_Head:MovieClip;
}
}//package
Section 270
//Man_02_Hand1 (Man_02_Hand1)
package {
import flash.display.*;
public dynamic class Man_02_Hand1 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 271
//Man_02_Hand2 (Man_02_Hand2)
package {
import flash.display.*;
public dynamic class Man_02_Hand2 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 272
//Man_02_Head (Man_02_Head)
package {
import flash.display.*;
public dynamic class Man_02_Head extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 273
//Man_02_Leg1 (Man_02_Leg1)
package {
import flash.display.*;
public dynamic class Man_02_Leg1 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 274
//Man_02_Leg2 (Man_02_Leg2)
package {
import flash.display.*;
public dynamic class Man_02_Leg2 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 275
//Man_03_Body (Man_03_Body)
package {
import flash.display.*;
public dynamic class Man_03_Body extends MovieClip {
public var Blood_LHand:MovieClip;
public var Blood_RHand:MovieClip;
public var Blood_RLeg:MovieClip;
public var Blood_LLeg:MovieClip;
public var Blood_Head:MovieClip;
}
}//package
Section 276
//Man_03_Hand1 (Man_03_Hand1)
package {
import flash.display.*;
public dynamic class Man_03_Hand1 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 277
//Man_03_Hand2 (Man_03_Hand2)
package {
import flash.display.*;
public dynamic class Man_03_Hand2 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 278
//Man_03_Head (Man_03_Head)
package {
import flash.display.*;
public dynamic class Man_03_Head extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 279
//Man_03_Leg1 (Man_03_Leg1)
package {
import flash.display.*;
public dynamic class Man_03_Leg1 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 280
//Man_03_Leg2 (Man_03_Leg2)
package {
import flash.display.*;
public dynamic class Man_03_Leg2 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 281
//Man_04_Body (Man_04_Body)
package {
import flash.display.*;
public dynamic class Man_04_Body extends MovieClip {
public var Blood_LHand:MovieClip;
public var Blood_RHand:MovieClip;
public var Blood_RLeg:MovieClip;
public var Blood_LLeg:MovieClip;
public var Blood_Head:MovieClip;
}
}//package
Section 282
//Man_04_Hand1 (Man_04_Hand1)
package {
import flash.display.*;
public dynamic class Man_04_Hand1 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 283
//Man_04_Hand2 (Man_04_Hand2)
package {
import flash.display.*;
public dynamic class Man_04_Hand2 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 284
//Man_04_Head (Man_04_Head)
package {
import flash.display.*;
public dynamic class Man_04_Head extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 285
//Man_04_Leg1 (Man_04_Leg1)
package {
import flash.display.*;
public dynamic class Man_04_Leg1 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 286
//Man_04_Leg2 (Man_04_Leg2)
package {
import flash.display.*;
public dynamic class Man_04_Leg2 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 287
//Man_05_Body (Man_05_Body)
package {
import flash.display.*;
public dynamic class Man_05_Body extends MovieClip {
public var Blood_LHand:MovieClip;
public var Blood_RHand:MovieClip;
public var Blood_RLeg:MovieClip;
public var Blood_LLeg:MovieClip;
public var Blood_Head:MovieClip;
}
}//package
Section 288
//Man_05_Hand1 (Man_05_Hand1)
package {
import flash.display.*;
public dynamic class Man_05_Hand1 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 289
//Man_05_Hand2 (Man_05_Hand2)
package {
import flash.display.*;
public dynamic class Man_05_Hand2 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 290
//Man_05_Head (Man_05_Head)
package {
import flash.display.*;
public dynamic class Man_05_Head extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 291
//Man_05_Leg1 (Man_05_Leg1)
package {
import flash.display.*;
public dynamic class Man_05_Leg1 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 292
//Man_05_Leg2 (Man_05_Leg2)
package {
import flash.display.*;
public dynamic class Man_05_Leg2 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 293
//Man_06_Body (Man_06_Body)
package {
import flash.display.*;
public dynamic class Man_06_Body extends MovieClip {
public var Blood_LHand:MovieClip;
public var Blood_RHand:MovieClip;
public var Blood_RLeg:MovieClip;
public var Blood_LLeg:MovieClip;
public var Blood_Head:MovieClip;
}
}//package
Section 294
//Man_06_Hand1 (Man_06_Hand1)
package {
import flash.display.*;
public dynamic class Man_06_Hand1 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 295
//Man_06_Hand2 (Man_06_Hand2)
package {
import flash.display.*;
public dynamic class Man_06_Hand2 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 296
//Man_06_Head (Man_06_Head)
package {
import flash.display.*;
public dynamic class Man_06_Head extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 297
//Man_06_Leg1 (Man_06_Leg1)
package {
import flash.display.*;
public dynamic class Man_06_Leg1 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 298
//Man_06_Leg2 (Man_06_Leg2)
package {
import flash.display.*;
public dynamic class Man_06_Leg2 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 299
//Man_07_Body (Man_07_Body)
package {
import flash.display.*;
public dynamic class Man_07_Body extends MovieClip {
public var Blood_LHand:MovieClip;
public var Blood_RHand:MovieClip;
public var Blood_RLeg:MovieClip;
public var Blood_LLeg:MovieClip;
public var Blood_Head:MovieClip;
}
}//package
Section 300
//Man_07_Hand1 (Man_07_Hand1)
package {
import flash.display.*;
public dynamic class Man_07_Hand1 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 301
//Man_07_Hand2 (Man_07_Hand2)
package {
import flash.display.*;
public dynamic class Man_07_Hand2 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 302
//Man_07_Head (Man_07_Head)
package {
import flash.display.*;
public dynamic class Man_07_Head extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 303
//Man_07_Leg1 (Man_07_Leg1)
package {
import flash.display.*;
public dynamic class Man_07_Leg1 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 304
//Man_07_Leg2 (Man_07_Leg2)
package {
import flash.display.*;
public dynamic class Man_07_Leg2 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 305
//Man_08_Body (Man_08_Body)
package {
import flash.display.*;
public dynamic class Man_08_Body extends MovieClip {
public var Blood_LHand:MovieClip;
public var Blood_RHand:MovieClip;
public var Blood_RLeg:MovieClip;
public var Blood_LLeg:MovieClip;
public var Blood_Head:MovieClip;
}
}//package
Section 306
//Man_08_Hand1 (Man_08_Hand1)
package {
import flash.display.*;
public dynamic class Man_08_Hand1 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 307
//Man_08_Hand2 (Man_08_Hand2)
package {
import flash.display.*;
public dynamic class Man_08_Hand2 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 308
//Man_08_Head (Man_08_Head)
package {
import flash.display.*;
public dynamic class Man_08_Head extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 309
//Man_08_Leg1 (Man_08_Leg1)
package {
import flash.display.*;
public dynamic class Man_08_Leg1 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 310
//Man_08_Leg2 (Man_08_Leg2)
package {
import flash.display.*;
public dynamic class Man_08_Leg2 extends MovieClip {
public var Blood:MovieClip;
}
}//package
Section 311
//MochiBot (MochiBot)
package {
import flash.display.*;
import flash.net.*;
import flash.system.*;
public dynamic class MochiBot extends Sprite {
public static function track(_arg1:Sprite, _arg2:String):MochiBot{
if (Security.sandboxType == "localWithFile"){
return (null);
};
var _local3:MochiBot = new (MochiBot);
_arg1.addChild(_local3);
Security.allowDomain("*");
Security.allowInsecureDomain("*");
var _local4 = "http://core.mochibot.com/my/core.swf";
var _local5:URLVariables = new URLVariables();
_local5["sb"] = Security.sandboxType;
_local5["v"] = Capabilities.version;
_local5["swfid"] = _arg2;
_local5["mv"] = "8";
_local5["fv"] = "9";
var _local6:String = _local3.root.loaderInfo.loaderURL;
if (_local6.indexOf("http") == 0){
_local5["url"] = _local6;
} else {
_local5["url"] = "local";
};
var _local7:URLRequest = new URLRequest(_local4);
_local7.contentType = "application/x-www-form-urlencoded";
_local7.method = URLRequestMethod.POST;
_local7.data = _local5;
var _local8:Loader = new Loader();
_local3.addChild(_local8);
_local8.load(_local7);
return (_local3);
}
}
}//package
Section 312
//MoreGamesButton (MoreGamesButton)
package {
import gui.*;
public dynamic class MoreGamesButton extends Base_Button {
}
}//package
Section 313
//Music1 (Music1)
package {
import flash.media.*;
public dynamic class Music1 extends Sound {
}
}//package
Section 314
//Music2 (Music2)
package {
import flash.media.*;
public dynamic class Music2 extends Sound {
}
}//package
Section 315
//NewStagebutton (NewStagebutton)
package {
import gui.*;
public dynamic class NewStagebutton extends SplashButton2 {
}
}//package
Section 316
//PlayButton (PlayButton)
package {
import gui.*;
public dynamic class PlayButton extends Base_Button {
}
}//package
Section 317
//Prepare_StartGame (Prepare_StartGame)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Prepare_StartGame extends MovieClip {
public function Prepare_StartGame(){
addFrameScript(14, frame15);
}
function frame15(){
stop();
parent.removeChild(this);
}
}
}//package
Section 318
//RagdollClip (RagdollClip)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class RagdollClip extends MovieClip {
public function RagdollClip(){
addFrameScript(19, frame20);
}
function frame20(){
stop();
if (parent){
parent.removeChild(this);
};
}
}
}//package
Section 319
//RedLineClip (RedLineClip)
package {
import flash.display.*;
public dynamic class RedLineClip extends MovieClip {
}
}//package
Section 320
//RestartSound (RestartSound)
package {
import flash.media.*;
public dynamic class RestartSound extends Sound {
}
}//package
Section 321
//SimpsonsMusic (SimpsonsMusic)
package {
import flash.media.*;
public dynamic class SimpsonsMusic extends Sound {
}
}//package
Section 322
//StageButton (StageButton)
package {
import gui.*;
public dynamic class StageButton extends Base_Button {
}
}//package
Section 323
//Star_Arrive (Star_Arrive)
package {
import flash.media.*;
public dynamic class Star_Arrive extends Sound {
}
}//package
Section 324
//Stars (Stars)
package {
import flash.display.*;
public dynamic class Stars extends MovieClip {
}
}//package
Section 325
//WinSound (WinSound)
package {
import flash.media.*;
public dynamic class WinSound extends Sound {
}
}//package
Section 326
//WrrClip (WrrClip)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
import flash.geom.*;
import flash.system.*;
import flash.accessibility.*;
import flash.filters.*;
import flash.text.*;
import flash.ui.*;
public dynamic class WrrClip extends MovieClip {
public function WrrClip(){
addFrameScript(19, frame20);
}
function frame20(){
stop();
if (parent){
parent.removeChild(this);
};
}
}
}//package