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

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

Minigolf & Golf - Zombie Golf.swf

This is the info page for
Flash #231528

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


Text
00000

CLUB SELECTED

CLUB:

DR

5w

9I

x2

reg

hard

freeze

timed

xplod1

xplod2

0

RTRTRththrthrthETERTERT

00

0

0

0

Sidebottom

Sidebottom





00

CASH

000

+

>

NEW!

?

SCORE

BATSMAN

BOWLER

SKILL POINTS

Welcome to
The Clubhouse

NEXT

EXIT

Fix BAT

Level

CLICK A CLUB
TO BUY  IT

CASH

ball1

ball2

ball3

ball4

SET BALL ORDER HERE : DRAG BALLS INTO CADDY SLOT

PRESENTS

HELLO

000

LOADERIZING

DESTROY THIS
ACCURSED TABLE

GO

GO

Click again to
set Power

When Your Shots = level PAR
THE END BOSS WILL APPEAR
Sink the ball before then to bring him out early

FULL

LOW

hit on the
GREEN
AREA !

MED

Click again to
set Angle

paste text into Here








+ BALL

+ POCKET

PLAY TABLE from EDITOR





+ EDGE

Generate TABLE CODE

Get Editable Table from
INPUT CODE

outputted text will appear here

Make Basic Editable Table !

PLAY TABLE from CODE

WIPE TABLE

WIPE OBJECT

+ BUMPER

+ PICKUP

ROTATE /
inc moverRange

CHANGE Table

+ MOVER

CLONE OBJECT

CHANGE
Play Type

+ BLOCKO

Change FORM

SCALE
XY

-X

+X

+Y

-Y

<p align="left"><font face="Basic Sans Heavy SF" size="13" color="#ffffff" letterSpacing="0.000000" kerning="0"><b>00000000000</b></font></p><p align="left"></p>

<p align="left"><font face="Basic Sans Heavy SF" size="13" color="#000000" letterSpacing="0.000000" kerning="0"><b>99</b></font></p><p align="left"></p>

<p align="left"><font face="Basic Sans Heavy SF" size="13" color="#ffffff" letterSpacing="0.000000" kerning="0"><b>BALL TIMER:</b></font></p><p align="left"></p>

<p align="left"><font face="Basic Sans Heavy SF" size="13" color="#ffffff" letterSpacing="0.000000" kerning="0"><b>00000000000</b></font></p><p align="left"></p>

20

-10

Achievement!

Achievement!Achievement!Achievement!Achievement!Achievement!Achievement!

BACK
TO
TITLE

BACK
TO
TITLE

HOLES
COMPLETED

HOLE IN
ONES

HOLES
COMPLETED

HOLE IN
ONES

99%

12/36

12/36

12/36

MILLION DOLLAR MONKEY

Finished all levels, send off for t-shirtFinished all levels, send off for

Your name here

NICE
ONE

PLAY
AGAIN

PLAY
AGAIN

SUBMIT
SCORE

SUBMIT
SCORE

clever trevor

ZOMBIE
GOLF

START

WIPE SAVE
& RESTART
COURSE

WIPE SAVE
& RESTART
COURSE

TROPHY
CABINET

TROPHY
CABINET

TROPHY
CABINET

GET MORE
GOLF &
ZOMBIE
GAMES

GET MORE
GOLF &
ZOMBIE
GAMES

GET MORE
GOLF &
ZOMBIE
GAMES

CLUB HOUSE OF THE DEAD

v2.2

ZOMBI
GOLF

PAR:

PRIZE

SCORE

BANK

SHOTS

rtretrtrt

rtretrtrt

+9

rtretrtrt

rtretrtrt

rtretrtrt

00

PLAYER
TURN

ZOMMER
TURN

Now that's a LOVELY little tickle into the silly mid off...

<p align="left"><font face="Arial" size="14" color="#ffffff" letterSpacing="0.000000" kerning="0">Click to start a level</font></p><p align="left"></p>

START

one shot at a time. player moves
to balls rest point

one shot - player moves to ball
rest point IF SPACEBAR HELD

0

THERE'S RED RUNNING ON THE GREEN
AND YOU ARE THE MAIN COURSE
The undead have  overrun the links and you are the last
line of defence. To win this you are going to have to
destroy the horror that lies beneath all 18 holes.
Wake each boss by sinking a ball in it's hole, then kill
it before it can get to you.

REMEMBER THIS GAME IS TURN BASED
YOU SHOOT -  THEY WALK - YOU SHOOT - THEY DIE !

HOLE

THIS HAS FAILED TO LOAD !

SFX

THIS HAS FAILED TO LOAD PART2 !

THIS HAS FAILED TO LOAD PART3 !

ActionScript [AS3]

Section 1
//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 2
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_localPosition:b2Vec2; public var m_radius:Number; public function b2CircleShape(_arg1:b2ShapeDef){ m_localPosition = new b2Vec2(); super(_arg1); var _local2:b2CircleDef = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } override public function 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 3
//b2FilterData (Box2D.Collision.Shapes.b2FilterData) package Box2D.Collision.Shapes { public class b2FilterData { public var categoryBits:uint;// = 1 public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public function Copy():b2FilterData{ var _local1:b2FilterData = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Collision.Shapes
Section 4
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ center = new b2Vec2(0, 0); super(); } } }//package Box2D.Collision.Shapes
Section 5
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertices:Array; public var vertexCount:int; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; var _local1:int; while (_local1 < b2Settings.b2_maxPolygonVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } public function 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 6
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { 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 7
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2Shape { public var m_type:int; public var m_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 8
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { 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 9
//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 10
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var value:uint; public var proxyId:uint; public var stabbingCount:uint; public function 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 11
//b2BoundValues (Box2D.Collision.b2BoundValues) package Box2D.Collision { public class b2BoundValues { public var lowerValues:Array; public var upperValues:Array; public function b2BoundValues(){ lowerValues = [0, 0]; upperValues = [0, 0]; super(); } } }//package Box2D.Collision
Section 12
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_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 13
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 14
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function 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 15
//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 16
//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 17
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Distance { private static var s_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 18
//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 19
//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 20
//b2OBB (Box2D.Collision.b2OBB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2OBB { public var R:b2Mat22; public var center:b2Vec2; public var extents:b2Vec2; public function b2OBB(){ R = new b2Mat22(); center = new b2Vec2(); extents = new b2Vec2(); super(); } } }//package Box2D.Collision
Section 21
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var userData;// = null public var proxyId1:uint; public var proxyId2:uint; public var 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 22
//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 23
//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 24
//b2Point (Box2D.Collision.b2Point) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Point { public var p:b2Vec2; public function b2Point(){ p = new b2Vec2(); super(); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ return (p); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (p); } } }//package Box2D.Collision
Section 25
//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 26
//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 27
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_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 28
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var v:b2Vec2; public var id:b2ContactID; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 29
//Features (Box2D.Collision.Features) package Box2D.Collision { public class Features { public var _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 30
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(_arg1:Number=0, _arg2:b2Vec2=null, _arg3:b2Vec2=null){ var _local4:Number; var _local5:Number; col1 = new b2Vec2(); col2 = new b2Vec2(); super(); if (((!((_arg2 == null))) && (!((_arg3 == null))))){ col1.SetV(_arg2); col2.SetV(_arg3); } else { _local4 = Math.cos(_arg1); _local5 = Math.sin(_arg1); col1.x = _local4; col2.x = -(_local5); col1.y = _local5; col2.y = _local4; }; } public function 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 _local4:Number = col1.x; var _local5:Number = col2.x; var _local6:Number = col1.y; var _local7:Number = col2.y; var _local8:Number = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } public function Abs():void{ col1.Abs(); col2.Abs(); } } }//package Box2D.Common.Math
Section 31
//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 32
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var c0:b2Vec2; public var c:b2Vec2; public var a0:Number; public var a:Number; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } public function 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 33
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { public class b2Vec2 { public var x:Number; public var y:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function 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 IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 34
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { public class b2XForm { public var position:b2Vec2; public var R:b2Mat22; public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function 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 35
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _r:uint;// = 0 private var _g:uint;// = 0 private var _b:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function set 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 36
//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 37
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; 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 38
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; 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 39
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var normal:b2Vec2; public var 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 40
//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 41
//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 42
//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 43
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Collision.*; 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 44
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactSolver { public var m_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 45
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function Evaluate(_arg1:b2ContactListener):void{ } override public function GetManifolds():Array{ return (null); } } }//package Box2D.Dynamics.Contacts
Section 46
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; 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 47
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; 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 48
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_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 49
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2DistanceJointDef extends b2JointDef { public var localAnchor1:b2Vec2; public var 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 50
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { public var m_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 51
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { public class b2GearJointDef extends b2JointDef { public var joint1:b2Joint; public var joint2:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 52
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linear1:b2Vec2; public var 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 53
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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 54
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { 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 55
//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 56
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { private var 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 57
//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 58
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PrismaticJoint extends b2Joint { public var m_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 _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = _local2.m_invMass; var _local5:Number = _local3.m_invMass; var _local6:Number = _local2.m_invI; var _local7:Number = _local3.m_invI; var _local9:Number = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local10:Number = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); var _local11:Number = (_arg1.dt * _local10); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2)); var _local12:Number = (_local3.m_angularVelocity - _local2.m_angularVelocity); var _local13:Number = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); var _local14:Number = (_arg1.dt * _local13); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15); _local17 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce); _local16 = (m_motorForce - _local17); _local11 = (_arg1.dt * _local16); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local19); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); }; }; }; _local11 = (_arg1.dt * _local19); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; } override public function 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 59
//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 60
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { public var m_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 _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local2.m_sweep.c.x + _local5); var _local11:Number = (_local2.m_sweep.c.y + _local6); var _local12:Number = (_local3.m_sweep.c.x + _local8); var _local13:Number = (_local3.m_sweep.c.y + _local9); var _local14:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local15:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local16:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local17:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); var _local18:Number = m_u1.Length(); var _local19:Number = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; var _local20:Number = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_force = 0; } else { m_state = e_atUpperLimit; m_positionImpulse = 0; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitForce1 = 0; } else { m_limitState1 = e_atUpperLimit; m_limitPositionImpulse1 = 0; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitForce2 = 0; } else { m_limitState2 = e_atUpperLimit; m_limitPositionImpulse2 = 0; }; var _local21:Number = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); var _local22:Number = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ _local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x); _local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y); _local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x); _local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25)))); } else { m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; }; } override public function 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 61
//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 62
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { 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 _local14:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; K1.col1.x = (_local10 + _local11); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local10 + _local11); K2.col1.x = ((_local12 * _local7) * _local7); K2.col2.x = ((-(_local12) * _local6) * _local7); K2.col1.y = ((-(_local12) * _local6) * _local7); K2.col2.y = ((_local12 * _local6) * _local6); K3.col1.x = ((_local13 * _local9) * _local9); K3.col2.x = ((-(_local13) * _local8) * _local9); K3.col1.y = ((-(_local13) * _local8) * _local9); K3.col2.y = ((_local13 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Invert(m_pivotMass); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; } else { m_limitForce = 0; }; if (_arg1.warmStarting){ _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); } else { m_pivotForce.SetZero(); m_motorForce = 0; m_limitForce = 0; }; m_limitPositionImpulse = 0; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local10:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local11:Number = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); var _local12:Number = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); var _local13:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); var _local14:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12))); m_pivotForce.x = (m_pivotForce.x + _local13); m_pivotForce.y = (m_pivotForce.y + _local14); var _local15:Number = (_arg1.dt * _local13); _local16 = (_arg1.dt * _local14); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed); _local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17); _local19 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque); _local18 = (m_motorForce - _local19); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local21); } else { if (m_limitState == e_atLowerLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); } else { if (m_limitState == e_atUpperLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); }; }; }; _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21)); }; } override public function 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 63
//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 64
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; public class b2Body { 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_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{ var _local2:b2Shape; if (m_world.m_lock == true){ return (null); }; _local2 = b2Shape.Create(_arg1, m_world.m_blockAllocator); _local2.m_next = m_shapeList; m_shapeList = _local2; m_shapeCount++; _local2.m_body = this; _local2.CreateProxy(m_world.m_broadPhase, m_xf); _local2.UpdateSweepRadius(m_sweep.localCenter); return (_local2); } public function 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; if (m_world.m_lock == true){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_sweep.localCenter.SetV(_arg1.center); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local2 = m_shapeList; while (_local2) { _local2.UpdateSweepRadius(m_sweep.localCenter); _local2 = _local2.m_next; }; var _local5:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local5 != m_type){ _local2 = m_shapeList; while (_local2) { _local2.RefilterProxy(m_world.m_broadPhase, m_xf); _local2 = _local2.m_next; }; }; } public function 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 65
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; 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 66
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 67
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; public class b2ContactFilter { public static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:b2FilterData = _arg1.GetFilterData(); var _local4:b2FilterData = _arg2.GetFilterData(); if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; var _local5:Boolean = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local5); } } }//package Box2D.Dynamics
Section 68
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2ContactListener { public function Add(_arg1:b2ContactPoint):void{ } public function Persist(_arg1:b2ContactPoint):void{ } public function Remove(_arg1:b2ContactPoint):void{ } public function Result(_arg1:b2ContactResult):void{ } } }//package Box2D.Dynamics
Section 69
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.*; 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.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 70
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import Box2D.Common.Math.*; import flash.display.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; 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 71
//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 72
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.*; 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 _local9:int; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; var _local13:Number; var _local14:Number; var _local15:Number; _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_arg2.x + (_local6.m_invMass * _local6.m_force.x)))); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_arg2.y + (_local6.m_invMass * _local6.m_force.y)))); _local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque)); _local6.m_force.SetZero(); _local6.m_torque = 0; _local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); if (_local6.m_linearVelocity.LengthSquared() > b2Settings.b2_maxLinearVelocitySquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * b2Settings.b2_maxLinearVelocity); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * b2Settings.b2_maxLinearVelocity); }; if ((_local6.m_angularVelocity * _local6.m_angularVelocity) > b2Settings.b2_maxAngularVelocitySquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = -(b2Settings.b2_maxAngularVelocity); } else { _local6.m_angularVelocity = b2Settings.b2_maxAngularVelocity; }; }; }; _local5++; }; var _local8:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local8.InitVelocityConstraints(_arg1); _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitVelocityConstraints(_arg1); _local5++; }; _local5 = 0; while (_local5 < _arg1.maxIterations) { _local8.SolveVelocityConstraints(); _local9 = 0; while (_local9 < m_jointCount) { _local7 = m_joints[_local9]; _local7.SolveVelocityConstraints(_arg1); _local9++; }; _local5++; }; _local8.FinalizeVelocityConstraints(); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_sweep.c0.SetV(_local6.m_sweep.c); _local6.m_sweep.a0 = _local6.m_sweep.a; _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_arg1.dt * _local6.m_linearVelocity.x)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_arg1.dt * _local6.m_linearVelocity.y)); _local6.m_sweep.a = (_local6.m_sweep.a + (_arg1.dt * _local6.m_angularVelocity)); _local6.SynchronizeTransform(); }; _local5++; }; if (_arg3){ _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitPositionConstraints(); _local5++; }; m_positionIterationCount = 0; while (m_positionIterationCount < _arg1.maxIterations) { _local10 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local11 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local12 = _local7.SolvePositionConstraints(); _local11 = ((_local11) && (_local12)); _local5++; }; if (((_local10) && (_local11))){ break; }; m_positionIterationCount++; }; }; Report(_local8.m_constraints); if (_arg4){ _local13 = Number.MAX_VALUE; _local14 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local15 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.m_invMass == 0){ } else { if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){ _local6.m_sleepTime = 0; _local13 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local15)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local14)))){ _local6.m_sleepTime = 0; _local13 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local13 = b2Math.b2Min(_local13, _local6.m_sleepTime); }; }; _local5++; }; if (_local13 >= b2Settings.b2_timeToSleep){ _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; m_bodies[_local5].m_flags = (_local6.m_flags | b2Body.e_sleepFlag); _local6.m_linearVelocity.SetZero(); _local6.m_angularVelocity = 0; _local5++; }; }; }; } public function 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 73
//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 74
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.*; 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; 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 75
//Color (fl.motion.Color) package fl.motion { import flash.display.*; import flash.geom.*; public class Color extends ColorTransform { private var _tintColor:Number;// = 0 private var _tintMultiplier:Number;// = 0 public function Color(_arg1:Number=1, _arg2:Number=1, _arg3:Number=1, _arg4:Number=1, _arg5:Number=0, _arg6:Number=0, _arg7:Number=0, _arg8:Number=0){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); } public function get brightness():Number{ return ((this.redOffset) ? (1 - this.redMultiplier) : (this.redMultiplier - 1)); } public function set brightness(_arg1:Number):void{ if (_arg1 > 1){ _arg1 = 1; } else { if (_arg1 < -1){ _arg1 = -1; }; }; var _local2:Number = (1 - Math.abs(_arg1)); var _local3:Number = 0; if (_arg1 > 0){ _local3 = (_arg1 * 0xFF); }; this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = _local2)); this.redOffset = (this.greenOffset = (this.blueOffset = _local3)); } public function setTint(_arg1:uint, _arg2:Number):void{ this._tintColor = _arg1; this._tintMultiplier = _arg2; this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = (1 - _arg2))); var _local3:uint = ((_arg1 >> 16) & 0xFF); var _local4:uint = ((_arg1 >> 8) & 0xFF); var _local5:uint = (_arg1 & 0xFF); this.redOffset = Math.round((_local3 * _arg2)); this.greenOffset = Math.round((_local4 * _arg2)); this.blueOffset = Math.round((_local5 * _arg2)); } public function get tintColor():uint{ return (this._tintColor); } public function set tintColor(_arg1:uint):void{ this.setTint(_arg1, this.tintMultiplier); } private function deriveTintColor():uint{ var _local1:Number = (1 / this.tintMultiplier); var _local2:uint = Math.round((this.redOffset * _local1)); var _local3:uint = Math.round((this.greenOffset * _local1)); var _local4:uint = Math.round((this.blueOffset * _local1)); var _local5:uint = (((_local2 << 16) | (_local3 << 8)) | _local4); return (_local5); } public function get tintMultiplier():Number{ return (this._tintMultiplier); } public function set tintMultiplier(_arg1:Number):void{ this.setTint(this.tintColor, _arg1); } private function parseXML(_arg1:XML=null):Color{ var _local3:XML; var _local4:String; var _local5:uint; if (!_arg1){ return (this); }; var _local2:XML = _arg1.elements()[0]; if (!_local2){ return (this); }; for each (_local3 in _local2.attributes()) { _local4 = _local3.localName(); if (_local4 == "tintColor"){ _local5 = (Number(_local3.toString()) as uint); this.tintColor = _local5; } else { this[_local4] = Number(_local3.toString()); }; }; return (this); } public static function fromXML(_arg1:XML):Color{ return (Color(new (Color).parseXML(_arg1))); } public static function interpolateTransform(_arg1:ColorTransform, _arg2:ColorTransform, _arg3:Number):ColorTransform{ var _local4:Number = (1 - _arg3); var _local5:ColorTransform = new ColorTransform(((_arg1.redMultiplier * _local4) + (_arg2.redMultiplier * _arg3)), ((_arg1.greenMultiplier * _local4) + (_arg2.greenMultiplier * _arg3)), ((_arg1.blueMultiplier * _local4) + (_arg2.blueMultiplier * _arg3)), ((_arg1.alphaMultiplier * _local4) + (_arg2.alphaMultiplier * _arg3)), ((_arg1.redOffset * _local4) + (_arg2.redOffset * _arg3)), ((_arg1.greenOffset * _local4) + (_arg2.greenOffset * _arg3)), ((_arg1.blueOffset * _local4) + (_arg2.blueOffset * _arg3)), ((_arg1.alphaOffset * _local4) + (_arg2.alphaOffset * _arg3))); return (_local5); } public static function interpolateColor(_arg1:uint, _arg2:uint, _arg3:Number):uint{ var _local4:Number = (1 - _arg3); var _local5:uint = ((_arg1 >> 24) & 0xFF); var _local6:uint = ((_arg1 >> 16) & 0xFF); var _local7:uint = ((_arg1 >> 8) & 0xFF); var _local8:uint = (_arg1 & 0xFF); var _local9:uint = ((_arg2 >> 24) & 0xFF); var _local10:uint = ((_arg2 >> 16) & 0xFF); var _local11:uint = ((_arg2 >> 8) & 0xFF); var _local12:uint = (_arg2 & 0xFF); var _local13:uint = ((_local5 * _local4) + (_local9 * _arg3)); var _local14:uint = ((_local6 * _local4) + (_local10 * _arg3)); var _local15:uint = ((_local7 * _local4) + (_local11 * _arg3)); var _local16:uint = ((_local8 * _local4) + (_local12 * _arg3)); var _local17:uint = ((((_local13 << 24) | (_local14 << 16)) | (_local15 << 8)) | _local16); return (_local17); } } }//package fl.motion
Section 76
//Actor (game.Actor) package game { import flash.display.*; import flash.events.*; import Box2D.Dynamics.*; public class Actor extends EventDispatcher { protected var _body:b2Body; protected var _costume:DisplayObject; public function Actor(_arg1:b2Body, _arg2:DisplayObject){ _body = _arg1; _body.SetUserData(this); _costume = _arg2; updateMyLook(); } public function updateNow(){ if (!_body.IsStatic()){ updateMyLook(); }; childSpecificUpdating(); } protected function childSpecificUpdating():void{ } public function destroy():void{ cleanUpBeforeRemoving(); _costume.parent.removeChild(_costume); PhysiVals.world.DestroyBody(_body); } private function cleanUpBeforeRemoving():void{ } private function updateMyLook():void{ _costume.x = (_body.GetPosition().x * PhysiVals.RATIO); _costume.y = (_body.GetPosition().y * PhysiVals.RATIO); _costume.rotation = ((_body.GetAngle() * 180) / Math.PI); } } }//package game
Section 77
//BgSky (game.BgSky) package game { import flash.display.*; public dynamic class BgSky extends MovieClip { } }//package game
Section 78
//BrickActor (game.BrickActor) package game { import Box2D.Common.Math.*; import flash.display.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.geom.*; public class BrickActor extends Actor { private var BRICK_WIDTH:int;// = 32 private var BRICK_HEIGHT:int;// = 32 private var _beenHit:Boolean; private var _pegType:int; private var _bangTimer:int;// = 0 private var myTable:Table; private var spawnPoint:Point; public var BunnyAsset:Class; public static const FIXED:int = 1; public static const MOV:int = 2; public static const CRUMBLE:int = 3; public static const DEATH:int = 4; public static const TOTAL_FIXED:int = 5; public static const JOINTED:int = 6; public static const TOTAL_FIXED_INVISIBLE:int = 7; public static const TOTAL_FIXED_INVISIBLE_PORUS:int = 8; public static const TOTAL_FIXED_SAND:int = 9; public function BrickActor(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:int, _arg4, _arg5, _arg6, _arg7){ var _local14:b2CircleDef; var _local15:b2RevoluteJointDef; var _local16:b2BodyDef; var _local17:b2Body; var _local18:b2RevoluteJoint; _beenHit = false; _pegType = _arg3; myTable = _arg4; spawnPoint = _arg2; BRICK_WIDTH = (_arg5 * 10); BRICK_HEIGHT = (_arg6 * 10); var _local8:MovieClip = new MovieClip(); var _local9:Matrix = new Matrix(); _local9.translate((BRICK_WIDTH / 2), (BRICK_HEIGHT / 2)); _local8.graphics.beginBitmapFill(new tileShevron2(3, 3), _local9, true, false); _local8.graphics.moveTo((-(BRICK_WIDTH) / 2), (-(BRICK_HEIGHT) / 2)); _local8.graphics.lineTo((-(BRICK_WIDTH) / 2), (BRICK_HEIGHT / 2)); _local8.graphics.lineTo((BRICK_WIDTH / 2), (BRICK_HEIGHT / 2)); _local8.graphics.lineTo((BRICK_WIDTH / 2), (-(BRICK_HEIGHT) / 2)); _local8.graphics.lineTo((-(BRICK_WIDTH) / 2), (-(BRICK_HEIGHT) / 2)); _local8.graphics.endFill(); _arg1.addChild(_local8); if ((((_arg3 == TOTAL_FIXED_INVISIBLE)) || ((_arg3 == TOTAL_FIXED_SAND)))){ _local8.visible = false; }; var _local10:MovieClip = _local8; if (_arg3 == JOINTED){ _local14 = new b2CircleDef(); _local15 = new b2RevoluteJointDef(); _local14.radius = 0.1; _local14.density = 0; _local16 = new b2BodyDef(); _local16.position.Set((_arg2.x / PhysiVals.RATIO), (_arg2.y / PhysiVals.RATIO)); _local17 = PhysiVals.world.CreateBody(_local16); _local17.CreateShape(_local14); _local17.SetMassFromShapes(); }; var _local11:* = new b2PolygonDef(); _local11.SetAsBox(((BRICK_WIDTH / 2) / PhysiVals.RATIO), ((BRICK_HEIGHT / 2) / PhysiVals.RATIO)); _local11.density = 0; _local11.userData = "Brick"; if (_arg3 == MOV){ _local11.density = 1; }; if (_arg3 == TOTAL_FIXED_INVISIBLE_PORUS){ _local8.visible = false; _local11.filter.categoryBits = 8; } else { _local11.filter.categoryBits = 4; }; _local11.friction = 0.1; _local11.restitution = 0.1; if (_arg3 == JOINTED){ _local11.density = 0.5; _local11.friction = 1; _local11.restitution = 0.1; }; var _local12:b2BodyDef = new b2BodyDef(); _local12.position.Set((_arg2.x / PhysiVals.RATIO), (_arg2.y / PhysiVals.RATIO)); _local12.angle = ((_arg7 * Math.PI) / 180); var _local13:* = PhysiVals.world.CreateBody(_local12); _local13.CreateShape(_local11); _local13.SetMassFromShapes(); if (_arg3 == JOINTED){ _local15.Initialize(_local17, _local13, new b2Vec2((_arg2.x / PhysiVals.RATIO), (_arg2.y / PhysiVals.RATIO))); _local18 = (PhysiVals.world.CreateJoint(_local15) as b2RevoluteJoint); }; super(_local13, _local10); setMyMovieFrame(); } public function hitByPlayer(_arg1):void{ if ((((_pegType == CRUMBLE)) && ((_bangTimer < 0)))){ MovieClip(_costume).alpha = 0.5; _bangTimer = 200; }; if (_pegType == DEATH){ trace("DEATH OK !"); _arg1.hitByMonster(); }; } public function getMyInfo(){ return (_pegType); } private function setMyMovieFrame():void{ MovieClip(_costume).gotoAndStop(_pegType); } override protected function childSpecificUpdating():void{ _bangTimer--; if (_bangTimer == 1){ MovieClip(_costume).alpha = 1; _body.SetXForm(new b2Vec2((spawnPoint.x / PhysiVals.RATIO), (spawnPoint.y / PhysiVals.RATIO)), 0); }; if (_bangTimer == 180){ MovieClip(_costume).alpha = 0; _body.SetXForm(new b2Vec2(0, 0), 0); }; if (((((((!((_pegType == MOV))) && (!((_pegType == JOINTED))))) && (!((_pegType == TOTAL_FIXED))))) && ((_bangTimer < 1)))){ }; super.childSpecificUpdating(); } } }//package game
Section 79
//BrickMovie (game.BrickMovie) package game { import flash.display.*; public dynamic class BrickMovie extends MovieClip { } }//package game
Section 80
//Caddie (game.Caddie) package game { import flash.display.*; public dynamic class Caddie extends MovieClip { public function Caddie(){ addFrameScript(0, frame1, 9, frame10, 28, frame29, 41, frame42, 174, frame175); } function frame1(){ stop(); } function frame10(){ gotoAndStop(1); } function frame29(){ gotoAndStop(1); } function frame42(){ gotoAndPlay("win"); } function frame175(){ stop(); } } }//package game
Section 81
//Guide (game.Guide) package game { import flash.display.*; import utils.*; public class Guide extends MovieClip { public var g0:MovieClip; public var g1:MovieClip; public var g2:MovieClip; public var g3:MovieClip; public var g4:MovieClip; public var g5:MovieClip; public var g6:MovieClip; private var _gravInMeters:Number; public function Guide(){ _gravInMeters = 17; } public function update(_arg1:MovieClip, _arg2:int, _arg3:Number):void{ var _local9:int; var _local4:* = 0; var _local5:* = 0; var _local6:* = ((_arg3 * PhysiVals.RATIO) * JMath.getX(_arg2)); var _local7:* = ((_arg3 * PhysiVals.RATIO) * JMath.getY(_arg2)); var _local8:Number = 10; while (_local9 < 7) { _arg1 = this[("g" + _local9)]; _arg1.x = (_local4 + (_local6 / _local8)); _arg1.y = (_local5 + (_local7 / _local8)); _local7 = (_local7 + ((_gravInMeters * PhysiVals.RATIO) / _local8)); _local4 = _arg1.x; _local5 = _arg1.y; _local9++; }; } public function deleteMe(){ parent.removeChild(this); } } }//package game
Section 82
//InstantParticle (game.InstantParticle) package game { import flash.display.*; import flash.events.*; import utils.*; public class InstantParticle extends MovieClip { public var body:MovieClip; private var active:Boolean; private var parType:Number; private var grav:Number;// = 0.05 private var ground:Number; private var hitTimer:Number; private var index:Number; private var index2:Number; private var lastTime:int; private var dx:Number; private var dy:Number; private var myTable:Table; public static const TYPE_EXPLODE:int = 10; public static const TYPE_BLUE_OUT:int = 2; public static const TYPE_SMOKE:int = 3; public static const TYPE_DEADZOMBIE:int = 4; public static const TYPE_BLOODSPLAT:int = 5; public static const TYPE_MEGA_EXPLODE:int = 6; public static const TYPE_BALL_POTTED:int = 7; public static const TYPE_PRAXIS:int = 8; public static const TYPE_LUCKY:int = 9; public static const TYPE_BLOOD:int = 1; public static const TYPE_MEGA_BLOODSPLAT:int = 11; public function InstantParticle(_arg1:Number, _arg2:Number, _arg3:int, _arg4:int, _arg5){ var _local6:MovieClip; var _local7:int; var _local8:int; super(); addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9, 9, frame10, 10, frame11); addEventListener(Event.ENTER_FRAME, moveMe); myTable = _arg5; this.x = _arg1; this.y = _arg2; hitTimer = 50; if (_arg3 == TYPE_DEADZOMBIE){ _local6 = new ZombieAnim(_arg4, -1); addChild(_local6); _local6.gotoAndPlay("die"); hitTimer = 100; trace("--------------------------head shot REGISTERED"); }; if (_arg3 == TYPE_BLOOD){ _local7 = (315 + JMath.getRand(270)); _local8 = (1 + JMath.getRand(3)); dx = (_local8 * JMath.getX(_local7)); dy = (_local8 * JMath.getY(_local7)); this.body.gotoAndStop((1 + JMath.getRand(4))); hitTimer = (40 + JMath.getRand(30)); } else { this.gotoAndStop(_arg3); }; parType = _arg3; } public function moveMe(_arg1:Event){ switch (parType){ case TYPE_BLOOD: this.x = (this.x + dx); this.y = (this.y + dy); dy = (dy + grav); dx = (dx * 0.98); dy = (dy * 0.98); break; }; hitTimer--; if (hitTimer == 0){ deleteMe(); }; } public function deleteMe(){ removeEventListener(Event.ENTER_FRAME, moveMe); parent.removeChild(this); } function frame1(){ stop(); } function frame2(){ stop(); } function frame3(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame6(){ stop(); } function frame7(){ stop(); } function frame8(){ stop(); } function frame9(){ stop(); } function frame10(){ stop(); } function frame11(){ stop(); } } }//package game
Section 83
//LevelsFromString (game.LevelsFromString) package game { import flash.display.*; import flash.events.*; import flash.utils.*; import utils.*; import flash.net.*; public class LevelsFromString extends MovieClip { public var angleList:Array; public var timer:Timer; public var setUpTimer:int; public var myLevel:int; public var myTable:Table; public var outputList:Array; var xmlLoader:URLLoader; var xmlData:XML; public function LevelsFromString(_arg1, _arg2){ outputList = []; xmlLoader = new URLLoader(); xmlData = new XML(); super(); myTable = _arg2; LoadWorld(_arg1); } function LoadWorld(_arg1):void{ var _local4:int; var _local7:Array; var _local8:*; var _local9:int; var _local10:*; var _local11:*; var _local12:*; var _local13:*; var _local14:*; var _local15:*; var _local16:*; var _local17:*; var _local2:Array = _arg1.split(":"); outputList = []; var _local3:* = _local2.length; _local4 = 0; while (_local4 <= (_local3 - 1)) { _local7 = _local2[_local4].split(" "); _local8 = _local7.length; outputList.push([]); _local9 = 0; while (_local9 <= (_local8 - 1)) { outputList[_local4][_local9] = _local7[_local9]; _local9++; }; _local4++; }; var _local5:Boolean; var _local6:Boolean; while (!(_local6)) { _local4 = (outputList.length - 1); while (_local4 >= 0) { _local10 = outputList[_local4][2]; _local11 = Number(outputList[_local4][0]); _local12 = Number(outputList[_local4][1]); _local13 = Number(outputList[_local4][3]); _local14 = Number(outputList[_local4][4]); _local15 = Number(outputList[_local4][5]); _local16 = Number(outputList[_local4][6]); switch (_local10){ case "O_Player": if (_local5){ myTable.addLevelPlayer(_local11, _local12); _local6 = true; }; break; case "O_Rect": if (!_local5){ myTable.addLevelBrick(_local11, _local12, _local16, _local14, _local15, _local13); }; break; case "O_Mover": if (!_local5){ myTable.addLevelMover(_local11, _local12, _local16, _local14, _local15, _local13); }; break; case "O_Pickup": if (!_local5){ myTable.addLevelPickup(_local11, _local12, _local16); }; break; case "Tbg": _local17 = _local11; trace(((("tableFrame " + _local11) + " playtype ") + _local13)); myTable.myTableBg.gotoAndStop(_local17); myTable.playType = _local13; break; }; _local4--; }; _local5 = true; }; } public function moveMe(_arg1:Event){ } public function deleteMe(){ parent.removeChild(this); } } }//package game
Section 84
//MonsterActor (game.MonsterActor) package game { import Box2D.Common.Math.*; import flash.display.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.geom.*; public class MonsterActor extends Actor { private var _beenHit:Boolean; private var _pegType:int; public var _pickedUp:Boolean; private var movePlatformBodyDirection:int;// = 1 private var prismaticJointDef:b2PrismaticJointDef; private var myTable:Table; private var limit:int;// = 32 private var initPoint:Point; public static const PICKUP:String = "Pickup"; public static const HORIZ:int = 1; public static const VERT:int = 2; private static const MY_WIDTH:int = 32; private static const MY_HEIGHT:int = 32; public function MonsterActor(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:int, _arg4){ myTable = _arg4; initPoint = _arg2; _beenHit = false; _pegType = _arg3; _pickedUp = false; var _local5:MovieClip = new MonsterMovie(); _local5.scaleX = (MY_WIDTH / _local5.width); _local5.scaleY = (MY_HEIGHT / _local5.height); _arg1.addChild(_local5); var _local6:* = new b2PolygonDef(); _local6.SetAsBox(((MY_WIDTH / 2) / PhysiVals.RATIO), ((MY_HEIGHT / 2) / PhysiVals.RATIO)); _local6.density = 1; _local6.friction = 1; _local6.restitution = 0.1; _local6.isSensor = true; var _local7:b2BodyDef = new b2BodyDef(); _local7.position.Set((_arg2.x / PhysiVals.RATIO), (_arg2.y / PhysiVals.RATIO)); var _local8:* = PhysiVals.world.CreateBody(_local7); _local8.CreateShape(_local6); _local8.SetMassFromShapes(); prismaticJointDef = new b2PrismaticJointDef(); if (_pegType == HORIZ){ prismaticJointDef.Initialize(PhysiVals.world.GetGroundBody(), _local8, _local8.GetWorldCenter(), new b2Vec2(-1, 0)); } else { prismaticJointDef.Initialize(PhysiVals.world.GetGroundBody(), _local8, _local8.GetWorldCenter(), new b2Vec2(0, -1)); }; movePlatformBodyDirection = -1; PhysiVals.world.CreateJoint(prismaticJointDef); super(_local8, _local5); setMyMovieFrame(); } public function pickedUp():void{ } public function hitByBall(_arg1):void{ } private function setMyMovieFrame():void{ MovieClip(_costume).gotoAndPlay(2); } override protected function childSpecificUpdating():void{ switch (_pegType){ case HORIZ: if (MovieClip(_costume).x < (initPoint.x - limit)){ movePlatformBodyDirection = 1; }; if (MovieClip(_costume).x > (initPoint.x + limit)){ movePlatformBodyDirection = -1; }; _body.SetLinearVelocity(new b2Vec2((2 * movePlatformBodyDirection), 0)); break; case VERT: if (MovieClip(_costume).y < (initPoint.y - limit)){ movePlatformBodyDirection = 1; }; if (MovieClip(_costume).y > (initPoint.y + limit)){ movePlatformBodyDirection = -1; }; _body.SetLinearVelocity(new b2Vec2(0, (2 * movePlatformBodyDirection))); break; }; super.childSpecificUpdating(); } } }//package game
Section 85
//MonsterMovie (game.MonsterMovie) package game { import flash.display.*; public dynamic class MonsterMovie extends MovieClip { } }//package game
Section 86
//MovActor (game.MovActor) package game { import Box2D.Common.Math.*; import flash.display.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.geom.*; public class MovActor extends Actor { private var MY_WIDTH:int;// = 32 private var MY_HEIGHT:int;// = 32 private var _beenHit:Boolean; private var _pegType:int; private var _pegForm:int; public var _pickedUp:Boolean; private var movePlatformBodyDirection:int;// = 1 private var prismaticJointDef:b2PrismaticJointDef; private var myTable:Table; private var limit:int;// = 32 private var initPoint:Point; public static const PICKUP:String = "Pickup"; public static const STATIC:int = 1; public static const HORIZ:int = 2; public static const VERT:int = 3; public function MovActor(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:int, _arg4, _arg5:Number, _arg6:Number, _arg7){ myTable = _arg4; initPoint = _arg2; limit = _arg7; _beenHit = false; _pickedUp = false; _pegForm = Math.ceil((_arg3 / 3)); _pegType = (_arg3 % 3); if (_pegType == 0){ _pegType = 3; }; trace((" I AM A : " + _pegForm)); MY_WIDTH = (_arg5 * 10); MY_HEIGHT = (_arg6 * 10); var _local8:MovieClip = new PegMovieRect(); _local8.body.scaleX = (MY_WIDTH / 10); _local8.body.scaleY = (MY_HEIGHT / 10); _arg1.addChild(_local8); var _local9:* = new b2PolygonDef(); _local9.SetAsBox(((MY_WIDTH / 2) / PhysiVals.RATIO), ((MY_HEIGHT / 2) / PhysiVals.RATIO)); _local9.density = 1; _local9.friction = 1; _local9.restitution = 0.1; var _local10:b2BodyDef = new b2BodyDef(); _local10.position.Set((_arg2.x / PhysiVals.RATIO), (_arg2.y / PhysiVals.RATIO)); var _local11:* = PhysiVals.world.CreateBody(_local10); _local11.CreateShape(_local9); _local11.SetMassFromShapes(); prismaticJointDef = new b2PrismaticJointDef(); if (_pegType == HORIZ){ prismaticJointDef.Initialize(PhysiVals.world.GetGroundBody(), _local11, _local11.GetWorldCenter(), new b2Vec2(-1, 0)); } else { prismaticJointDef.Initialize(PhysiVals.world.GetGroundBody(), _local11, _local11.GetWorldCenter(), new b2Vec2(0, -1)); }; movePlatformBodyDirection = -1; PhysiVals.world.CreateJoint(prismaticJointDef); super(_local11, _local8); setMyMovieFrame(); } public function pickedUp():void{ } public function hitByBall(_arg1):void{ } private function setMyMovieFrame():void{ } public function getMyInfo(){ return (_pegForm); } override protected function childSpecificUpdating():void{ switch (_pegType){ case HORIZ: if (MovieClip(_costume).x < (initPoint.x - limit)){ movePlatformBodyDirection = 1; }; if (MovieClip(_costume).x > (initPoint.x + limit)){ movePlatformBodyDirection = -1; }; _body.SetLinearVelocity(new b2Vec2((2 * movePlatformBodyDirection), 0)); break; case VERT: if (MovieClip(_costume).y < (initPoint.y - limit)){ movePlatformBodyDirection = 1; }; if (MovieClip(_costume).y > (initPoint.y + limit)){ movePlatformBodyDirection = -1; }; _body.SetLinearVelocity(new b2Vec2(0, (2 * movePlatformBodyDirection))); break; }; super.childSpecificUpdating(); } } }//package game
Section 87
//ParticleActor (game.ParticleActor) package game { import Box2D.Common.Math.*; import flash.display.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import flash.geom.*; import utils.*; public class ParticleActor extends Actor { private var _pegType:int; private var myRot:int;// = 0 public static const GORE:int = 1; public static const EARTH:int = 2; public static const HEAD:int = 3; private static const MY_WIDTH:int = 12; private static const MY_HEIGHT:int = 12; private static const PEG_DIAMETER:int = 6; public function ParticleActor(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:int, _arg4:int, _arg5:int){ var _local10:b2Vec2; var _local6:MovieClip = new ParticleMovie(); _arg1.addChild(_local6); trace(("PARTY ACTOR " + _arg3)); if (_arg3 == GORE){ _local6.animBody.gotoAndStop((1 + JMath.getRand(5))); } else { _local6.gotoAndStop(_arg3); _local6.rotation = JMath.getRand(360); }; var _local7:b2CircleDef = new b2CircleDef(); _local7.radius = ((PEG_DIAMETER / 2) / PhysiVals.RATIO); _local7.filter.categoryBits = 64; _local7.filter.maskBits = 4; _local7.density = 0.5; _local7.friction = 1; _local7.restitution = 0.45; _local7.userData = "ParticleActor"; var _local8:b2BodyDef = new b2BodyDef(); _local8.position.Set((_arg2.x / PhysiVals.RATIO), (_arg2.y / PhysiVals.RATIO)); _local8.fixedRotation = true; var _local9:* = PhysiVals.world.CreateBody(_local8); _local9.CreateShape(_local7); _local9.SetMassFromShapes(); _pegType = _arg3; super(_local9, _local6); if (_arg4 != 0){ _local10 = _body.GetLinearVelocity(); _local10.x = (_arg4 * JMath.getX(_arg5)); _local10.y = (_arg4 * JMath.getY(_arg5)); _body.SetLinearVelocity(_local10); trace("BOING !"); }; } override protected function childSpecificUpdating():void{ var _local1:b2Vec2 = _body.GetLinearVelocity(); myRot = (myRot + _local1.x); _costume.rotation = myRot; super.childSpecificUpdating(); } } }//package game
Section 88
//ParticleMovie (game.ParticleMovie) package game { import flash.display.*; public dynamic class ParticleMovie extends MovieClip { public var animBody:MovieClip; public function ParticleMovie(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package game
Section 89
//PegActor (game.PegActor) package game { import Box2D.Common.Math.*; import flash.display.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import flash.geom.*; import utils.*; public class PegActor extends Actor { private var lastY:Number;// = 0 private var lastX:Number;// = 0 private var myTable:Table; private var myRot:int;// = 0 private var _stopped:Boolean;// = false private var boosted:Boolean;// = false private var bunkered:Boolean;// = false private var myType:int; private var _bangTimer:int;// = 0 private var bombTimer:int;// = 0 private var special:int;// = 0 public static const TYPE_REG:int = 1; public static const TYPE_HARD:int = 2; public static const TYPE_FREEZE:int = 3; public static const TYPE_BANG:int = 4; public static const TYPE_TIMED:int = 5; public static const TYPE_8BALL:int = 6; public static const TYPE_HEAD:int = 7; public static const SPECIAL_NOT:int = 1; public static const SPECIAL_HITBOOST:int = 2; public static const SPECIAL_BOUNCEBOOST:int = 3; public static const SPECIAL_LUCKBOOST:int = 4; private static const PEG_DIAMETER:int = 10; private static const MY_WIDTH:int = 10; private static const MY_HEIGHT:int = 10; public function PegActor(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7, _arg8){ var _local13:MovieClip; var _local14:MovieClip; var _local15:b2Vec2; myTable = _arg7; _stopped = false; myType = _arg3; special = Arrays.clubDATA[_arg8][3]; var _local9:MovieClip = new PegMovieRound(); _local9.scaleX = (PEG_DIAMETER / _local9.width); _local9.scaleY = (PEG_DIAMETER / _local9.height); _arg1.addChild(_local9); _local9.camx = -150; if (myType != TYPE_HEAD){ _local13 = new PegMovieBalls(); _local9.addChild(_local13); _local13.gotoAndStop(myType); _local13.special.gotoAndStop(special); _arg7.targetClip = _local9; } else { _local14 = new PegHead(myTable.headOffList[0][5]); _local9.addChild(_local14); _local9.scaleX = (_local9.scaleY = 1); }; var _local10:* = new b2CircleDef(); _local10.radius = ((PEG_DIAMETER / 2) / PhysiVals.RATIO); _local10.filter.categoryBits = 2; _local10.filter.maskBits = 20; _local10.density = 0.5; _local10.friction = 0.25; _local10.restitution = 0.45; _local10.userData = "Peg"; var _local11:b2BodyDef = new b2BodyDef(); _local11.position.Set((_arg2.x / PhysiVals.RATIO), (_arg2.y / PhysiVals.RATIO)); _local11.angle = ((_arg4 * Math.PI) / 180); _local11.isBullet = true; _local11.fixedRotation = true; var _local12:* = PhysiVals.world.CreateBody(_local11); _local12.CreateShape(_local10); _local12.SetMassFromShapes(); super(_local12, _local9); if (_arg5 != 0){ _local15 = _body.GetLinearVelocity(); _local15.x = (_arg5 * JMath.getX(_arg6)); _local15.y = (_arg5 * JMath.getY(_arg6)); _body.SetLinearVelocity(_local15); }; } private function fireMe():void{ var _local1:b2Vec2 = _body.GetLinearVelocity(); _local1.x = 10; _local1.y = -8; _body.SetLinearVelocity(_local1); } public function hitByBrick(_arg1):void{ var _local2:b2Vec2; if ((((((_arg1.getMyInfo() == BrickActor.TOTAL_FIXED_SAND)) && (!((myType == TYPE_HEAD))))) && (!(bunkered)))){ _local2 = _body.GetLinearVelocity(); _bangTimer = 2; bunkered = true; trace("-------------------------BUNKER ZOMMER ADDED RIGHT?"); if (myTable.myLevel < 8){ myTable.nextZombieList.push([MovieClip(_costume).x, (MovieClip(_costume).y - 5), ZombieActor.SKELLY]); } else { myTable.nextZombieList.push([MovieClip(_costume).x, (MovieClip(_costume).y - 5), ZombieActor.SKELLY_2]); }; myTable.ZOMBIE_FLAG = true; myTable.bunkerZoms++; } else { if ((((myType == TYPE_BANG)) || ((myType == TYPE_8BALL)))){ explodeMe(InstantParticle.TYPE_EXPLODE); }; }; } public function explodeMe(_arg1){ if (_arg1 == InstantParticle.TYPE_EXPLODE){ SoundManager.playSound("sndExplode1"); } else { SoundManager.playSound("sndExplode2"); }; myTable.newParticles(0, MovieClip(_costume).x, MovieClip(_costume).y, _arg1, null); myTable.nextExplosionList.push([MovieClip(_costume).x, MovieClip(_costume).y, myType]); removeMe(); } public function pegInHole(){ if (myType == TYPE_HEAD){ Achieve.testAchieve(Achieve.A_HEAD_SUNK); }; removeMe(); } public function removeMe(){ if (((!(_stopped)) && (Arrays.ballNameDATA[myType][3]))){ dispatchEvent(new PegEvent(PegEvent.PEG_POTTED, 0)); }; dispatchEvent(new PegEvent(PegEvent.PEG_POTTED, 1)); } public function getMyInfo(){ var _local1:b2Vec2 = _body.GetLinearVelocity(); return ([MovieClip(_costume).x, MovieClip(_costume).y, JMath.getHyp(0, 0, _local1.x, _local1.y), myType, special, _local1.x, _local1.y]); } public function hitZombie():void{ if (_bangTimer < 0){ _bangTimer = 100; }; } override protected function childSpecificUpdating():void{ var _local1:b2Vec2 = _body.GetLinearVelocity(); var _local2:* = JMath.getHyp(0, 0, _local1.x, _local1.y); if ((((((_local2 > 10)) && (((myTable.tableTimer % 5) == 0)))) && ((special > 1)))){ myTable.newParticles(0, MovieClip(_costume).x, MovieClip(_costume).y, InstantParticle.TYPE_BLUE_OUT, null); }; _bangTimer--; if (myTable.ADD_ZOMBIE_FLAG){ bombTimer--; if (bombTimer == 1){ explodeMe(InstantParticle.TYPE_MEGA_EXPLODE); }; }; if ((((((((lastX == _costume.x)) && ((lastY == _costume.y)))) || ((_bangTimer == 1)))) || ((_costume.x > (myTable.hole.getClip().x + 1000))))){ if (!_stopped){ if ((((special == SPECIAL_BOUNCEBOOST)) && ((boosted == false)))){ SoundManager.playSound("sndBounce"); boosted = true; fireMe(); } else { if (Arrays.ballNameDATA[myType][3]){ dispatchEvent(new PegEvent(PegEvent.PEG_POTTED, 0)); }; _stopped = true; if (Arrays.ballNameDATA[myType][2]){ dispatchEvent(new PegEvent(PegEvent.PEG_POTTED, 1)); }; if (myType == TYPE_TIMED){ bombTimer = 3; }; }; }; }; myRot = (myRot + (_local1.x * 5)); _costume.rotation = myRot; lastX = _costume.x; lastY = _costume.y; super.childSpecificUpdating(); } } }//package game
Section 90
//PegEvent (game.PegEvent) package game { import flash.events.*; public class PegEvent extends Event { public var pegData:int; public static const PEG_POTTED:String = "PegPotted"; public static const CUE_POTTED:String = "CuePotted"; public static const PICKED_UP:String = "PickedUp"; public function PegEvent(_arg1:String, _arg2:int, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); this.pegData = _arg2; } override public function clone():Event{ return (new PegEvent(type, pegData, bubbles, cancelable)); } override public function toString():String{ return (formatToString("PegEvent", "type", "bubbles", "cancelable", "eventPhase")); } } }//package game
Section 91
//PegHead (game.PegHead) package game { import flash.display.*; import fl.motion.*; import utils.*; public class PegHead extends MovieClip { public var rHead:MovieClip; private var myTable:Table; public function PegHead(_arg1){ var _local2:* = (Arrays.zomDATA[_arg1][1] / ZombieActor.ZOM_CLIP_HEIGHT); var _local3:* = -(_local2); var _local4:* = 9; var _local5:* = Arrays.zomDATA[_arg1][4]; var _local6:* = Arrays.zomDATA[_arg1][3]; setMyKit(1, 9, _local5, this); rHead.gotoAndStop(_local6); this.scaleX = _local3; this.scaleY = _local2; } public function setMyKit(_arg1, _arg2, _arg3, _arg4){ var _local5:* = _arg1; var _local6:* = _arg2; tintColor(_arg4.rHead.rHeadType.skin, _arg3, 1); _arg4.rHead.gotoAndStop(2); _arg4.rHead.rHair.gotoAndStop(_local6); } function tintColor(_arg1:Sprite, _arg2:Number, _arg3:Number):void{ var _local4:Color = new Color(); _local4.setTint(_arg2, _arg3); _arg1.transform.colorTransform = _local4; } } }//package game
Section 92
//PegMovieBalls (game.PegMovieBalls) package game { import flash.display.*; public dynamic class PegMovieBalls extends MovieClip { public var special:MovieClip; public function PegMovieBalls(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8); } function frame1(){ stop(); } function frame2(){ stop(); } function frame3(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame6(){ stop(); } function frame7(){ stop(); } function frame8(){ stop(); } } }//package game
Section 93
//PegMovieRect (game.PegMovieRect) package game { import flash.display.*; public dynamic class PegMovieRect extends MovieClip { public var body:MovieClip; } }//package game
Section 94
//PegMovieRound (game.PegMovieRound) package game { import flash.display.*; public dynamic class PegMovieRound extends MovieClip { public function PegMovieRound(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8); } function frame1(){ stop(); } function frame2(){ stop(); } function frame3(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame6(){ stop(); } function frame7(){ stop(); } function frame8(){ stop(); } } }//package game
Section 95
//PhysiVals (game.PhysiVals) package game { import Box2D.Dynamics.*; public class PhysiVals { public static const RATIO:Number = 30; private static var _world:b2World; public static function get world():b2World{ return (_world); } public static function set world(_arg1:b2World):void{ _world = _arg1; } } }//package game
Section 96
//PickupActor (game.PickupActor) package game { import Box2D.Common.Math.*; import flash.display.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import flash.geom.*; public class PickupActor extends Actor { private var _beenHit:Boolean; private var _pegType:int; public var _pickedUp:Boolean; public static const PICKUP:String = "Pickup"; public static const ONE:int = 1; public static const TWO:int = 2; public static const HOLE:int = 3; private static const MY_WIDTH:int = 32; private static const MY_HEIGHT:int = 32; public function PickupActor(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:int){ var _local4:MovieClip = new PickupMovie(); _arg1.addChild(_local4); var _local5:* = new b2PolygonDef(); _local5.SetAsBox(((MY_WIDTH / 2) / PhysiVals.RATIO), ((MY_HEIGHT / 2) / PhysiVals.RATIO)); if (_arg3 == HOLE){ _local5.density = 0; } else { _local5.density = 1; }; _local5.friction = 0; _local5.restitution = 0.45; _local5.userData = PickupActor.PICKUP; _local5.filter.categoryBits = 4; var _local6:b2BodyDef = new b2BodyDef(); _local6.position.Set((_arg2.x / PhysiVals.RATIO), (_arg2.y / PhysiVals.RATIO)); var _local7:* = PhysiVals.world.CreateBody(_local6); _local7.CreateShape(_local5); _local7.SetMassFromShapes(); _beenHit = false; _pegType = _arg3; _pickedUp = false; super(_local7, _local4); setMyMovieFrame(); } public function pickedUp():void{ if (!_pickedUp){ _pickedUp = true; dispatchEvent(new PegEvent(PegEvent.PICKED_UP, 1)); }; } public function hitByBall(_arg1):void{ if (_pegType == HOLE){ dispatchEvent(new PegEvent(PegEvent.PICKED_UP, 3)); _arg1.pegInHole(); }; } private function setMyMovieFrame():void{ MovieClip(_costume).gotoAndStop(_pegType); } public function getClip():MovieClip{ return (MovieClip(_costume)); } override protected function childSpecificUpdating():void{ super.childSpecificUpdating(); } } }//package game
Section 97
//PickupMovie (game.PickupMovie) package game { import flash.display.*; public dynamic class PickupMovie extends MovieClip { } }//package game
Section 98
//PlayerActor (game.PlayerActor) package game { import Box2D.Common.Math.*; import flash.display.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import flash.geom.*; import utils.*; public class PlayerActor extends Actor { private var hitTimer:int;// = 0 private var playerFrame:Number;// = 0 private var playerFrameBase:Number;// = 2 private var PLAYER_WIDTH:int;// = 16 private var PLAYER_HEIGHT:int;// = 56 private var _grounded:Boolean;// = true private var _type:int; private var _bangTimer:int;// = 0 private var scaleFactor:Number;// = 0 private var myTable:Table; public var myShotArrow:MovieClip; public static const PLAYER:String = "Player"; public static const PLAYER_TEST:String = "PlayerTest"; public function PlayerActor(_arg1:DisplayObjectContainer, _arg2:Point, _arg3){ myTable = _arg3; var _local4:MovieClip = new ZombieMovie(); _arg1.addChild(_local4); _local4.camx = -50; scaleFactor = (PLAYER_HEIGHT / 140); var _local5:MovieClip = new ZombieAnim(0, 1); _local4.addChild(_local5); _local5.y = (PLAYER_HEIGHT / 2); _local5.gotoAndPlay("swingAmb"); myShotArrow = new ShotArrow(); myShotArrow.y = (PLAYER_HEIGHT / 2); myShotArrow.bg1.sSpot.gotoAndStop(1); _local4.addChild(myShotArrow); var _local6:* = new Guide(); _local6.y = myShotArrow.y; _local4.addChild(_local6); var _local7:* = new b2PolygonDef(); _local7.SetAsBox(((PLAYER_WIDTH / 2) / PhysiVals.RATIO), ((PLAYER_HEIGHT / 2) / PhysiVals.RATIO)); _local7.filter.categoryBits = 1; _local7.filter.maskBits = 28; _local7.density = 1; _local7.friction = 0; _local7.restitution = 0; _local7.userData = PlayerActor.PLAYER; var _local8:b2BodyDef = new b2BodyDef(); _local8.position.Set((_arg2.x / PhysiVals.RATIO), (_arg2.y / PhysiVals.RATIO)); _local8.fixedRotation = true; var _local9:* = PhysiVals.world.CreateBody(_local8); _local9.CreateShape(_local7); _local9.SetMassFromShapes(); super(_local9, _local4); } public function hitBrick():void{ _grounded = true; trace("HITTING"); } public function leftBrick():void{ _grounded = false; trace("not **HITTING"); } public function hitByZombie():void{ _bangTimer = 25; animate("die", true); dispatchEvent(new PegEvent(PegEvent.PEG_POTTED, 10)); } public function getClip():MovieClip{ return (MovieClip(_costume)); } public function getMyCam():int{ return ((MovieClip(_costume).x - 50)); } public function drawShotPointer(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7){ var _local11:int; var _local8:* = JMath.getAngle(MovieClip(_costume).x, MovieClip(_costume).y, _arg1, _arg2); var _local9:* = (5 + (JMath.getHyp(MovieClip(_costume).x, MovieClip(_costume).y, _arg1, _arg2) / 3)); var _local10:MovieClip = MovieClip(MovieClip(_costume).getChildAt(2)); if (_arg3 < 1){ myShotArrow.visible = true; _local10.visible = true; myShotArrow.ball.gotoAndStop(_arg7); myShotArrow.ball.special.visible = false; if (_arg6 == 0){ myShotArrow.shotArrowClip.rotation = _local8; _local10.visible = false; myShotArrow.shotArrowClip.visible = true; myShotArrow.bg1.alpha = 0.5; } else { _local10.visible = true; myShotArrow.shotArrowClip.visible = false; myShotArrow.bg1.alpha = 1; _local11 = Arrays.clubDATA[myTable.clubSelected][1]; if (_arg5 != 0){ } else { Guide(_local10).update(myShotArrow, myTable.playerShotAngle, (_arg4 / _local11)); }; }; myShotArrow.powerArrowClip.rotation = (180 + _arg4); myShotArrow.lockArrowClip.rotation = (180 + _arg5); } else { _local10.visible = false; myShotArrow.visible = false; }; return ([_local9, _local8]); } public function hitByMover(_arg1):void{ var _local2:int = _arg1.getMyInfo(); if ((((_bangTimer < 1)) && ((_local2 == 2)))){ trace(("OOOPS" + _body.m_linearVelocity.y)); if (_body.m_linearVelocity.y >= 0){ _body.WakeUp(); _body.m_linearVelocity.y = -10; }; _bangTimer = 25; }; } public function animate(_arg1, _arg2):void{ if (_arg2){ MovieClip(MovieClip(_costume).getChildAt(0)).gotoAndPlay(_arg1); } else { MovieClip(MovieClip(_costume).getChildAt(0)).gotoAndStop(_arg1); }; } override protected function childSpecificUpdating():void{ _bangTimer--; if (((!(myTable.PLAYER_LEFT)) && (!(myTable.PLAYER_RIGHT)))){ _body.m_linearVelocity.x = 0; playerFrameBase = 1; }; playerFrame = (playerFrame + 1); if (playerFrame > 9){ playerFrame = 0; }; var _local1:* = MovieClip(_costume); var _local2:* = _body; var _local3:b2Body = myTable.GetBodyAtPoint(_local1.x, ((_local1.y + 1) + (PLAYER_HEIGHT / 2)), true); var _local4:b2Body = myTable.GetBodyAtPoint((_local1.x - 14), (((_local1.y + 1) + (PLAYER_HEIGHT / 2)) - 0), true); var _local5:b2Body = myTable.GetBodyAtPoint((_local1.x + 14), (((_local1.y + 1) + (PLAYER_HEIGHT / 2)) - 0), true); var _local6:* = false; if (((((((((((!((_local3 == _local2))) && (!((_local4 == _local2))))) && (!((_local5 == _local2))))) && (((((!((_local3 == null))) || (!((_local4 == null))))) || (!((_local5 == null))))))) && ((_bangTimer < 0)))) && ((_local2.m_linearVelocity.y >= -0.1)))){ _local6 = true; }; if (((myTable.PLAYER_JUMP) && (_local6))){ _body.WakeUp(); _local2.ApplyImpulse(new b2Vec2(0, -10), _local2.GetPosition()); }; if (myTable.PLAYER_LEFT){ _body.WakeUp(); _body.SetLinearVelocity(new b2Vec2(-2, _body.GetLinearVelocity().y)); playerFrameBase = 27; MovieClip(MovieClip(_costume).getChildAt(0)).scaleX = -(scaleFactor); }; if (myTable.PLAYER_RIGHT){ _body.WakeUp(); _body.SetLinearVelocity(new b2Vec2(2, _body.GetLinearVelocity().y)); playerFrameBase = 27; MovieClip(MovieClip(_costume).getChildAt(0)).scaleX = scaleFactor; }; if (myTable.playerReposList.length > 0){ _body.SetXForm(new b2Vec2((myTable.playerReposList[0][0] / PhysiVals.RATIO), ((myTable.playerReposList[0][1] - 30) / PhysiVals.RATIO)), 0); myTable.playerReposList = []; }; myTable.playerY = MovieClip(_costume).y; if (_bangTimer > 1){ playerFrameBase = 132; }; if (_bangTimer == 1){ playerFrameBase = 2; }; super.childSpecificUpdating(); } } }//package game
Section 99
//PlayerMovie (game.PlayerMovie) package game { import flash.display.*; public dynamic class PlayerMovie extends MovieClip { public var shotArrow:ShotArrow; } }//package game
Section 100
//PocketMovie (game.PocketMovie) package game { import flash.display.*; public dynamic class PocketMovie extends MovieClip { } }//package game
Section 101
//SensorMovie (game.SensorMovie) package game { import flash.display.*; public dynamic class SensorMovie extends MovieClip { } }//package game
Section 102
//ShotArrow (game.ShotArrow) package game { import flash.display.*; public dynamic class ShotArrow extends MovieClip { public var powerArrowClip:MovieClip; public var lockArrowClip:MovieClip; public var shotArrowClip:MovieClip; public var ball:PegMovieBalls; public var bg1:MovieClip; } }//package game
Section 103
//shotController (game.shotController) package game { import flash.display.*; import flash.events.*; public class shotController { public var myTable:Table; public function shotController(_arg1){ myTable = _arg1; } public function doShotControls(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6){ var _local7:int; if ((((((Main.instance.clicked == 1)) && ((_arg5 < 1)))) && (!(_arg6)))){ if ((((((_arg1 == 0)) && ((_arg2 == 0)))) && ((_arg3 == 0)))){ _arg1 = 1; _arg2 = 1; _arg3 = 1; }; if ((((((_arg2 == -1)) && ((_arg4 == 0)))) && ((_arg3 == 2)))){ _arg2 = -1; _arg4 = _arg1; _arg3 = 3; }; if ((((((_arg2 == 1)) && ((_arg4 == 0)))) && ((_arg3 == 2)))){ _arg2 = -1; _arg4 = _arg1; _arg3 = 3; }; if ((((_arg2 == -1)) && ((_arg3 == 4)))){ _local7 = Arrays.clubDATA[myTable.clubSelected][1]; }; }; if (Main.instance.clicked == 0){ if (_arg3 == 1){ _arg3 = 2; }; if (_arg3 == 3){ _arg3 = 4; }; }; var _local8:* = 3; if (_arg4 != 0){ _local8 = (2 + (_arg4 / 25)); }; _arg1 = (_arg1 + (_arg2 * _local8)); if ((((_arg1 > 180)) && ((_arg2 == 1)))){ _arg2 = -1; }; if ((((_arg1 < -30)) && ((_arg2 == -1)))){ _local7 = 50; }; return ([_arg1, _arg2, _arg3, _arg4, _arg5, _local7]); } } }//package game
Section 104
//Table (game.Table) package game { import Box2D.Common.Math.*; import flash.display.*; import flash.events.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import flash.geom.*; import navigation.*; import utils.*; public class Table extends MovieClip { public var DEBUG_DRAW:Boolean;// = false public var _actorsToRemove:Array; public var outputList:Array; public var _allActors:Array; public var ballList:Array; public var ballListNum:int;// = 0 public var outputString:String;// = "" public var myGameType:String;// = "" public var myInGameGui:InGameGui; public var myTableBg; public var myTableFg:MovieClip; public var myTableMid:Sprite; public var myTableBackdrop:MovieClip; public var PLAYER_RIGHT; public var SPACEBAR; public var PLAYER_JUMP; public var PLAYER_LEFT:Boolean;// = false public var LEVEL_IN_PLAY:Boolean;// = false public var PLAYER_WAKE_UP:Boolean;// = false public var FORE_FLAG:Boolean;// = false public var RESET_TO_ZOMBIES:Boolean;// = false public var ZOMBIE_FLAG:Boolean;// = false public var MOVE_ZOMBIE_FLAG:Boolean;// = true public var ADD_ZOMBIE_FLAG:Boolean;// = true public var BOSS_RELEASED:Boolean;// = false public var BOSS_DEAD:Boolean;// = false public var SET_ZOMBIE_ANIM_TO_AMB:Boolean;// = false public var SPLASH_DAMAGE_FLAG:Boolean;// = false public var nextZombieList:Array; public var playerReposList:Array; public var headOffList:Array; public var nextExplosionList:Array; public var cueStartPos:Point; public var power:int;// = 0 public var playerShotPower;// = -1 public var playerShotAngle:int;// = 0 public var playerShots:int;// = 0 public var playerStrength:int;// = 100 public var shotStage:int;// = 0 public var shotTimer:Number;// = 0 public var shotTimerDir:int;// = 0 public var shotLock:int;// = 0 public var foreTimer:int;// = 50 public var shakeTimer:int;// = 0 public var clubSelected:int; public var levelPar:int;// = -6 public var zomOnscreen:int;// = 0 public var zomKilled:int;// = 0 public var zomTimer:int;// = 0 public var nextZom:int;// = 100 public var zomNum:int;// = 0 public var headShots:int;// = 0 public var bunkerZoms:int;// = 0 public var tx:int;// = 0 public var ty:int;// = 0 public var camx:int;// = 0 public var tableTimer:int;// = 0 public var levelCountOut:int;// = 0 public var myLevel:int; public var myCaddie:Caddie; public var myShotController:shotController; public var player:PlayerActor; public var hole:PickupActor; public var targetClip:MovieClip; public var playerY:int;// = 0 public var ballsOnTable:int;// = 0 public var playType:int;// = 0 public static const ONESHOT:int = 0; public static const MULTISHOT:int = 1; public static const HOLD_MOVE:int = 2; public function Table(_arg1, _arg2:String){ _actorsToRemove = []; outputList = []; _allActors = []; ballList = Main.instance.ballList; nextZombieList = []; playerReposList = []; headOffList = []; nextExplosionList = []; cueStartPos = new Point(0, 0); clubSelected = Main.instance.clubSelected; myLevel = Main.instance.level; super(); addEventListener(Event.ENTER_FRAME, update); if ((((_arg2 == "TEST")) || ((_arg2 == "REAL")))){ LEVEL_IN_PLAY = true; }; myGameType = _arg2; outputString = _arg1; trace("*************TABLE ADDED"); buildWorld(_arg1); addInGameGui(); myShotController = new shotController(this); myInGameGui.stayMessage("Here comes the first undead of the day...marvellous."); levelPar = (1 - Arrays.levelDATA[Main.instance.level][0].length); player.myShotArrow.bg1.sSpot.gotoAndStop(Arrays.clubDATA[clubSelected][6]); SoundManager.playSound("sndMusicAmb"); } public function update(_arg1:Event){ var _local2:int; var _local3:Actor; var _local4:Boolean; var _local5:Array; var _local6:int; var _local7:*; var _local8:int; tx = this.stage.mouseX; ty = this.stage.mouseY; PLAYER_LEFT = (PLAYER_RIGHT = (PLAYER_JUMP = false)); if (((Main.instance.key_leftArrow) && ((playType == MULTISHOT)))){ PLAYER_LEFT = true; foreTimer = 50; }; if (((Main.instance.key_rightArrow) && ((playType == MULTISHOT)))){ PLAYER_RIGHT = true; foreTimer = 50; }; if (Main.instance.key_spaceBar){ SPACEBAR = true; } else { SPACEBAR = false; }; if (RESET_TO_ZOMBIES){ RESET_TO_ZOMBIES = false; MOVE_ZOMBIE_FLAG = true; zomTimer = 0; ADD_ZOMBIE_FLAG = true; myInGameGui.flip(2); if (playerShots == 1){ myInGameGui.stayMessage("and now it's the turn of the undead.."); }; }; if (!LEVEL_IN_PLAY){ levelCountOut--; }; if (shakeTimer > 0){ shakeTimer--; }; if (levelCountOut > -50){ tableTimer++; _local2 = (targetClip.x + targetClip.camx); if (_local2 > (hole.getClip().x + 100)){ _local2 = (hole.getClip().x + 100); }; camx = (camx + ((_local2 - camx) / 10)); camx = (camx + (JMath.getRand((shakeTimer * 2)) - shakeTimer)); this.x = -(camx); this.y = (JMath.getRand((shakeTimer * 2)) - shakeTimer); myTableBackdrop.x = (camx / 1.2); myInGameGui.x = camx; PhysiVals.world.Step((1 / 30), 10); for each (_local3 in _allActors) { _local3.updateNow(); }; }; if (SET_ZOMBIE_ANIM_TO_AMB){ SET_ZOMBIE_ANIM_TO_AMB = false; }; reallyRemoveActors(); doShotPointer(); fakeGui(); if (((!(MOVE_ZOMBIE_FLAG)) && (LEVEL_IN_PLAY))){ _local4 = myInGameGui.myClubBox.hitTestPoint(tx, ty, true); _local5 = myShotController.doShotControls(shotTimer, shotTimerDir, shotStage, shotLock, foreTimer, _local4); shotTimer = _local5[0]; shotTimerDir = _local5[1]; shotStage = _local5[2]; shotLock = _local5[3]; foreTimer = _local5[4]; _local6 = (522 + Math.floor(((shotTimer / 180) * 10))); if (_local6 < 522){ _local6 = 522; }; if (_local6 > 532){ _local6 = 532; }; if (shotStage == 2){ player.animate(_local6, false); }; if (_local5[5] != 0){ hitBall(_local5[5]); player.animate("swingShot", true); }; if (FORE_FLAG){ addLevelObject(targetClip.x, (targetClip.y + 20), getNextBall(), playerShotAngle, playerShotPower); FORE_FLAG = false; playerShots++; levelPar++; foreTimer = 50; }; }; if (MOVE_ZOMBIE_FLAG){ if (ADD_ZOMBIE_FLAG){ if (Arrays.levelDATA[myLevel][0][zomNum] > 0){ addLevelTestObject((player.getClip().x + 660), 1, Arrays.levelDATA[myLevel][0][zomNum]); trace(("GET READY FOR " + Arrays.levelDATA[myLevel][0][zomNum])); }; zomNum++; ADD_ZOMBIE_FLAG = false; }; zomTimer++; if ((((((zomTimer > nextZom)) && ((zomNum < 300000)))) || ((((zomOnscreen < 1)) && ((zomKilled > 0)))))){ MOVE_ZOMBIE_FLAG = false; foreTimer = 0; shotLock = 0; shotTimer = 0; shotTimerDir = 0; shotStage = 0; headShots = 0; myInGameGui.flip(1); if (LEVEL_IN_PLAY){ myCaddie.gotoAndPlay(2); }; if (playerShots == 0){ myInGameGui.popMessage("and now it's time for the players shot.."); } else { if (zomOnscreen == 0){ if (levelCountOut == 0){ myInGameGui.stayMessage("now lets see if he can roll it up in there.."); } else { myInGameGui.stayMessage(("That's $ 100 for finishing plus a bonus for finishing par " + levelPar)); }; }; }; SET_ZOMBIE_ANIM_TO_AMB = true; }; }; if (ZOMBIE_FLAG){ ZOMBIE_FLAG = false; for each (_local7 in nextZombieList) { if ((((((_local7[2] == ZombieActor.BOSS)) && (BOSS_RELEASED))) || (!(LEVEL_IN_PLAY)))){ trace("BOSS RELEASED ALREADY AZZHOLE"); } else { addLevelZombie(_local7[0], _local7[1], _local7[2]); zomOnscreen++; if (_local7[2] == ZombieActor.BOSS){ shakeTimer = 50; myInGameGui.stayMessage("and here come the big fella, and he's looking mighty peeved.."); BOSS_RELEASED = true; hole.getClip().gotoAndStop("potted"); headOffList.push([hole.getClip().x, (hole.getClip().y - 50), ParticleActor.EARTH]); headOffList.push([hole.getClip().x, (hole.getClip().y - 50), ParticleActor.EARTH]); headOffList.push([hole.getClip().x, (hole.getClip().y - 50), ParticleActor.EARTH]); _local8 = (-(levelPar) * 50); if (_local8 < 0){ _local8 = 0; }; Main.instance.cash = (Main.instance.cash + _local8); Main.instance.cash = (Main.instance.cash + 100); }; }; }; nextZombieList = []; }; if (headOffList.length > 0){ doBodyBits(); }; if (nextExplosionList.length > 0){ if (!SPLASH_DAMAGE_FLAG){ SPLASH_DAMAGE_FLAG = true; shakeTimer = 20; } else { nextExplosionList = []; SPLASH_DAMAGE_FLAG = false; }; }; } public function doBodyBits(){ var _local1:*; for each (_local1 in headOffList) { if (_local1[2] == PegActor.TYPE_HEAD){ addLevelObject(_local1[0], _local1[1], _local1[2], _local1[3], _local1[4]); } else { addLevelParticle(_local1[0], _local1[1], _local1[2]); }; }; headOffList = []; } public function clubSelect(_arg1){ if ((((shotStage == 0)) || (MOVE_ZOMBIE_FLAG))){ if (clubSelected != _arg1){ myCaddie.gotoAndPlay("clubGive"); player.animate("getClub", true); }; clubSelected = _arg1; player.myShotArrow.bg1.sSpot.gotoAndStop(Arrays.clubDATA[_arg1][6]); return (true); //unresolved jump }; return (false); } public function hitBall(_arg1){ FORE_FLAG = true; playerShotPower = (shotLock / _arg1); var _local2 = "A Perfect shot. Right on the nose !"; if (Math.abs(shotTimer) < 1){ SoundManager.playSound("sndHitMetal"); } else { if (Math.abs(shotTimer) < (Arrays.clubDATA[clubSelected][7] + 1)){ _local2 = "Lovely shot."; SoundManager.playSound("sndHitMetal"); } else { _local2 = "Ooo, he's fluffed that up.."; SoundManager.playSound("sndBoing"); playerShotAngle = (playerShotAngle - 10); playerShotPower = 10; }; }; shotTimerDir = 0; myInGameGui.popMessage(_local2); } public function getNextBall(){ var _local1:int = ballList[ballListNum]; ballListNum++; if (ballListNum > (ballList.length - 1)){ ballListNum = 0; }; myInGameGui.myClubBox.setBallGfk((-1 + ballList[ballListNum])); return (_local1); } public function fakeGui(){ myInGameGui.levelName.text = String(Arrays.levelDATA[myLevel][4]); var _local1:int = (-(levelPar) * 50); if (_local1 < 0){ _local1 = 0; }; myInGameGui.playerShots.text = String(playerShots); myInGameGui.levelPar.text = String((Arrays.levelDATA[Main.instance.level][0].length - 1)); myInGameGui.prizeMoney.text = String(("$ " + _local1)); myInGameGui.playerScore.text = String(Main.instance.score); myInGameGui.playerCash.text = String(("$ " + Main.instance.cash)); myInGameGui.distToHole.text = String(("DIST TO HOLE: " + Math.floor(Math.abs((player.getClip().x - hole.getClip().x))))); } public function doShotPointer(){ var _local1:Array = player.drawShotPointer((tx + camx), ty, foreTimer, shotTimer, shotLock, shotStage, ballList[ballListNum]); if (shotStage == 0){ playerShotAngle = _local1[1]; }; } public function addLevelTestObject(_arg1, _arg2, _arg3:int){ var _local4:TestActor = new TestActor(myTableMid, new Point(_arg1, _arg2), _arg3); _local4.addEventListener(PegEvent.PEG_POTTED, handleTestResult); _allActors.push(_local4); } public function addLevelObject(_arg1, _arg2, _arg3:int, _arg4:int, _arg5:int){ var _local6:PegActor = new PegActor(myTableMid, new Point(_arg1, _arg2), _arg3, 0, _arg5, _arg4, this, clubSelected); _local6.addEventListener(PegEvent.PEG_POTTED, handlePegStopped); _allActors.push(_local6); } public function addLevelMover(_arg1, _arg2, _arg3:int, _arg4, _arg5, _arg6){ var _local7:MovActor = new MovActor(myTableMid, new Point(_arg1, _arg2), _arg3, this, _arg4, _arg5, _arg6); _allActors.push(_local7); } public function addLevelMonster(_arg1, _arg2, _arg3:int){ var _local4:MonsterActor = new MonsterActor(myTableMid, new Point(_arg1, _arg2), _arg3, this); _allActors.push(_local4); } public function addLevelZombie(_arg1, _arg2, _arg3:int){ var _local4:ZombieActor = new ZombieActor(myTableMid, new Point(_arg1, _arg2), _arg3, this); _local4.addEventListener(PegEvent.PEG_POTTED, handleZombieDead); _allActors.push(_local4); } public function addLevelPickup(_arg1, _arg2, _arg3:int){ var _local4:PickupActor = new PickupActor(myTableMid, new Point(_arg1, _arg2), _arg3); _local4.addEventListener(PegEvent.PICKED_UP, handlePickup); _allActors.push(_local4); if (_arg3 == PickupActor.HOLE){ hole = _local4; }; ballsOnTable++; } public function addLevelParticle(_arg1, _arg2, _arg3:int){ var _local4:ParticleActor = new ParticleActor(myTableMid, new Point(_arg1, _arg2), _arg3, (5 + JMath.getRand(5)), (JMath.getRand(90) - 45)); _allActors.push(_local4); } public function addLevelPlayer(_arg1, _arg2){ var _local3:PlayerActor = new PlayerActor(myTableMid, new Point(_arg1, _arg2), this); _local3.addEventListener(PegEvent.PEG_POTTED, handlePlayerHit); _allActors.push(_local3); player = _local3; targetClip = _local3.getClip(); var _local4:Caddie = new Caddie(); addChild(_local4); myCaddie = _local4; _local4.x = _arg1; _local4.y = _arg2; } public function addLevelBrick(_arg1, _arg2, _arg3:int, _arg4, _arg5, _arg6){ var _local7:BrickActor = new BrickActor(myTableMid, new Point(_arg1, _arg2), _arg3, this, _arg4, _arg5, _arg6); _allActors.push(_local7); } private function handleTestResult(_arg1:PegEvent):void{ var _local2:TestActor = TestActor(_arg1.currentTarget); _local2.removeEventListener(PegEvent.PEG_POTTED, handleTestResult); var _local3:Array = _local2.getInfo(); if (_arg1.pegData == ZombieActor.BOSS){ nextZombieList.push([hole.getClip().x, (hole.getClip().y - 50), ZombieActor.BOSS]); } else { nextZombieList.push([_local3[0], (_local3[1] - 20), _arg1.pegData]); }; safeRemoveActor(_local2); ZOMBIE_FLAG = true; } private function handleZombieDead(_arg1:PegEvent):void{ var _local2:ZombieActor = ZombieActor(_arg1.currentTarget); _local2.removeEventListener(PegEvent.PEG_POTTED, handleZombieDead); safeRemoveActor(_local2); zomKilled++; zomOnscreen--; var _local3:* = _arg1.pegData; if (LEVEL_IN_PLAY){ Main.instance.score++; }; if (_local3 > 99){ headShots++; _local3 = (_local3 / 100); headOffList[0] = [_local2.getClip().x, (_local2.getClip().y - 20), PegActor.TYPE_HEAD, 45, 6, _local3]; myInGameGui.popMessage("He's lost his head over that.."); Achieve.testAchieve(Achieve.A_HEAD_OFF); if (headShots > 1){ Achieve.testAchieve(Achieve.A_2_HEADS); }; if ((((_local3 > 10)) && ((_local3 < 14)))){ Achieve.testAchieve(Achieve.A_DECAPITATE_CELEBRITY); }; } else { if ((((_local3 > 10)) && ((_local3 < 14)))){ myInGameGui.popMessage("Ever the crowd pleaser to the end.."); } else { myInGameGui.popMessage("And the crowd are enjoying this..."); }; }; if (_local3 == ZombieActor.BOSS){ Main.instance.clubSelected = clubSelected; targetClip = player.getClip(); BOSS_DEAD = true; LEVEL_IN_PLAY = false; myCaddie.gotoAndPlay("win"); SoundManager.playSound("sndCheer"); if ((((Arrays.levelDATA[myLevel][3] == 5)) || ((Arrays.levelDATA[myLevel][3] == 6)))){ if (bunkerZoms == 0){ Achieve.testAchieve(Achieve.A_NO_BUNKING); }; }; if (myLevel == 10){ MochiBot.track(this, "a38c4c34"); }; if (myLevel != 17){ myInGameGui.stayMessage("Wonderful round, now off to the Club House for drinks..."); dispatchEvent(new NavigationEvent(NavigationEvent.LEVEL_COMPLETE)); } else { MochiBot.track(this, "969fdd93"); myInGameGui.stayMessage("Magical stuff - he's completed this game !"); dispatchEvent(new NavigationEvent(NavigationEvent.GAME_OVER)); Achieve.testAchieve(Achieve.A_FINISHED); }; }; Achieve.testAchieve(Achieve.A_FIRST_KILL); } private function handlePlayerHit(_arg1:PegEvent):void{ playerStrength = (playerStrength - _arg1.pegData); if (LEVEL_IN_PLAY){ Main.instance.clubSelected = clubSelected; SoundManager.playSound("sndDie"); SoundManager.playSound("sndGong"); LEVEL_IN_PLAY = false; newParticles(0, player.getClip().x, player.getClip().y, InstantParticle.TYPE_MEGA_BLOODSPLAT, null); dispatchEvent(new NavigationEvent(NavigationEvent.GAME_OVER)); myInGameGui.stayMessage("Shame. He wanted his ashes scattered here but not his entrails..."); levelCountOut = -40; myCaddie.gotoAndPlay("lose"); }; } private function handlePegStopped(_arg1:PegEvent):void{ var _local2:PegActor; if (_arg1.pegData == 1){ _local2 = PegActor(_arg1.currentTarget); _local2.removeEventListener(PegEvent.PEG_POTTED, handlePegStopped); safeRemoveActor(_local2); } else { targetClip = player.getClip(); RESET_TO_ZOMBIES = true; }; } private function handlePickup(_arg1:PegEvent):void{ var _local2:PickupActor = PickupActor(_arg1.currentTarget); SoundManager.playSound("sndLucky"); if (_arg1.pegData == 3){ if (levelPar == 1){ Achieve.testAchieve(Achieve.A_BOGEY); }; if (levelPar == -1){ Achieve.testAchieve(Achieve.A_BIRDIE); }; if (levelPar == -2){ Achieve.testAchieve(Achieve.A_EAGLE); }; if (playerShots == 1){ Achieve.testAchieve(Achieve.A_HOLE_IN_ONE); Achieve.testLevelAchieve(myLevel); }; trace(("POTTED ! - " + BOSS_RELEASED)); if (!BOSS_RELEASED){ myInGameGui.stayMessage("Lovely, and that's got him out of bed early !"); ZOMBIE_FLAG = true; nextZombieList.push([hole.getClip().x, (hole.getClip().y - 50), ZombieActor.BOSS]); } else { myInGameGui.stayMessage("Marvellous - there'll be G&T's on the house tonight.."); newParticles(1, hole.getClip().x, (hole.getClip().y - 50), InstantParticle.TYPE_BALL_POTTED, null); }; }; } private function handleTimerOut(_arg1:PegEvent):void{ if (LEVEL_IN_PLAY){ LEVEL_IN_PLAY = false; removeAllActors(); if (myGameType == "REAL"){ dispatchEvent(new NavigationEvent(NavigationEvent.GAME_OVER)); }; }; } public function addInGameGui(){ var _local1:InGameGui = new InGameGui(this); addChild(_local1); myInGameGui = _local1; myInGameGui.myClubBox.setBallGfk(ballList[ballListNum]); } public function newParticles(_arg1, _arg2, _arg3, _arg4, _arg5){ var _local7:InstantParticle; var _local6:int = _arg1; while (_local6 >= 0) { _local7 = new InstantParticle(_arg2, _arg3, _arg4, _arg5, this); myTableFg.addChild(_local7); _local6--; }; } private function reallyRemoveActors():void{ var _local1:Actor; var _local2:int; for each (_local1 in _actorsToRemove) { _local1.destroy(); _local2 = _allActors.indexOf(_local1); if (_local2 > -1){ _allActors.splice(_local2, 1); }; }; _actorsToRemove = []; } public function safeRemoveActor(_arg1:Actor):void{ if (_actorsToRemove.indexOf(_arg1) < 0){ _actorsToRemove.push(_arg1); }; } public function removeAllActors():void{ var _local1:Actor; for each (_local1 in _allActors) { _actorsToRemove.push(_local1); }; removeChild(myTableBackdrop); removeChild(myTableBg); removeChild(myTableMid); removeChild(myTableFg); removeChild(myCaddie); myInGameGui.deleteMe(); } private function buildWorld(_arg1){ myTableBackdrop = new TableBgBlank(); addChild(myTableBackdrop); myTableBg = new TableBg(); addChild(myTableBg); myTableMid = new TableMid(); addChild(myTableMid); myTableFg = new TableFg(); addChild(myTableFg); setupPhysicsWorld(); var _local2:LevelsFromString = new LevelsFromString(_arg1, this); addChild(_local2); var _local3:int = (1 + (myLevel % 3)); myTableBackdrop.bgSky.gotoAndStop(_local3); myTableBg.cacheAsBitmap = true; myTableBackdrop.cacheAsBitmap = true; } private function setupPhysicsWorld():void{ var _local4:b2DebugDraw; var _local5:Sprite; var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set((-5000 / PhysiVals.RATIO), (-5000 / PhysiVals.RATIO)); _local1.upperBound.Set((5000 / PhysiVals.RATIO), (5000 / PhysiVals.RATIO)); var _local2:b2Vec2 = new b2Vec2(0, 15); var _local3:Boolean; PhysiVals.world = new b2World(_local1, _local2, _local3); PhysiVals.world.SetContactListener(new TableContactListener()); if (DEBUG_DRAW){ _local4 = new b2DebugDraw(); _local5 = new Sprite(); addChild(_local5); _local4.m_sprite = _local5; _local4.m_drawScale = 30; _local4.m_fillAlpha = 0; _local4.m_lineThickness = 2; _local4.m_drawFlags = 4294967295; PhysiVals.world.SetDebugDraw(_local4); }; } public function GetBodyAtPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):b2Body{ var _local13:b2Shape; var _local14:Boolean; var _local4:* = (_arg1 / 30); var _local5:* = (_arg2 / 30); var _local6:b2Vec2 = new b2Vec2(); _local6.Set(_local4, _local5); var _local7:b2AABB = new b2AABB(); _local7.lowerBound.Set((_local4 - 0.001), (_local5 - 0.001)); _local7.upperBound.Set((_local4 + 0.001), (_local5 + 0.001)); var _local8 = 10; var _local9:Array = new Array(); var _local10:int = PhysiVals.world.Query(_local7, _local9, _local8); var _local11:b2Body; var _local12:int; while (_local12 < _local10) { if ((((_local9[_local12].m_body.IsStatic() == false)) || (_arg3))){ _local13 = (_local9[_local12] as b2Shape); _local14 = (_local9[_local12] as b2Shape).TestPoint(_local13.m_body.GetXForm(), _local6); if (_local14){ _local11 = _local13.m_body; break; }; }; _local12++; }; return (_local11); } public function deleteMe(){ SoundManager.stopSound("sndMusicAmb"); removeAllActors(); removeEventListener(Event.ENTER_FRAME, update); parent.removeChild(this); } } }//package game
Section 105
//TableBg (game.TableBg) package game { import flash.display.*; public dynamic class TableBg extends MovieClip { public var bg1:MovieClip; public function TableBg(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8); } function frame1(){ stop(); } function frame2(){ stop(); } function frame3(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame6(){ stop(); } function frame7(){ stop(); } function frame8(){ stop(); } } }//package game
Section 106
//TableBgBlank (game.TableBgBlank) package game { import flash.display.*; public dynamic class TableBgBlank extends MovieClip { public var bgSky:BgSky; public function TableBgBlank(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package game
Section 107
//TableContactListener (game.TableContactListener) package game { import Box2D.Dynamics.*; import Box2D.Collision.*; public class TableContactListener extends b2ContactListener { override public function Add(_arg1:b2ContactPoint):void{ if ((((((_arg1.shape1.GetUserData() is String)) && ((_arg1.shape1.GetBody().GetUserData() is TestActor)))) && ((_arg1.shape2.GetBody().GetUserData() is BrickActor)))){ TestActor(_arg1.shape1.GetBody().GetUserData()).hitByBrick(); } else { if ((((((_arg1.shape2.GetUserData() is String)) && ((_arg1.shape2.GetBody().GetUserData() is TestActor)))) && ((_arg1.shape1.GetBody().GetUserData() is BrickActor)))){ TestActor(_arg1.shape2.GetBody().GetUserData()).hitByBrick(); } else { if ((((((_arg1.shape1.GetUserData() is String)) && ((_arg1.shape1.GetBody().GetUserData() is PegActor)))) && ((_arg1.shape2.GetBody().GetUserData() is ZombieActor)))){ ZombieActor(_arg1.shape2.GetBody().GetUserData()).hitByBall(PegActor(_arg1.shape1.GetBody().GetUserData())); } else { if ((((((_arg1.shape2.GetUserData() is String)) && ((_arg1.shape2.GetBody().GetUserData() is PegActor)))) && ((_arg1.shape1.GetBody().GetUserData() is ZombieActor)))){ ZombieActor(_arg1.shape1.GetBody().GetUserData()).hitByBall(PegActor(_arg1.shape2.GetBody().GetUserData())); } else { if ((((((_arg1.shape1.GetUserData() is String)) && ((_arg1.shape1.GetBody().GetUserData() is BrickActor)))) && ((_arg1.shape2.GetBody().GetUserData() is PegActor)))){ PegActor(_arg1.shape2.GetBody().GetUserData()).hitByBrick(BrickActor(_arg1.shape1.GetBody().GetUserData())); } else { if ((((((_arg1.shape2.GetUserData() is String)) && ((_arg1.shape2.GetBody().GetUserData() is BrickActor)))) && ((_arg1.shape1.GetBody().GetUserData() is PegActor)))){ PegActor(_arg1.shape1.GetBody().GetUserData()).hitByBrick(BrickActor(_arg1.shape2.GetBody().GetUserData())); } else { if ((((((_arg1.shape1.GetUserData() is String)) && ((_arg1.shape1.GetBody().GetUserData() is BrickActor)))) && ((_arg1.shape2.GetBody().GetUserData() is ZombieActor)))){ ZombieActor(_arg1.shape2.GetBody().GetUserData()).hitByBrick(BrickActor(_arg1.shape1.GetBody().GetUserData())); } else { if ((((((_arg1.shape2.GetUserData() is String)) && ((_arg1.shape2.GetBody().GetUserData() is BrickActor)))) && ((_arg1.shape1.GetBody().GetUserData() is ZombieActor)))){ ZombieActor(_arg1.shape1.GetBody().GetUserData()).hitByBrick(BrickActor(_arg1.shape2.GetBody().GetUserData())); } else { if ((((((_arg1.shape1.GetUserData() is String)) && ((_arg1.shape1.GetBody().GetUserData() is PlayerActor)))) && ((_arg1.shape2.GetBody().GetUserData() is ZombieActor)))){ ZombieActor(_arg1.shape2.GetBody().GetUserData()).hitPlayer(PlayerActor(_arg1.shape1.GetBody().GetUserData())); } else { if ((((((_arg1.shape2.GetUserData() is String)) && ((_arg1.shape2.GetBody().GetUserData() is PlayerActor)))) && ((_arg1.shape1.GetBody().GetUserData() is ZombieActor)))){ ZombieActor(_arg1.shape1.GetBody().GetUserData()).hitPlayer(PlayerActor(_arg1.shape2.GetBody().GetUserData())); } else { if ((((((_arg1.shape1.GetUserData() is String)) && ((_arg1.shape1.GetBody().GetUserData() is PegActor)))) && ((_arg1.shape2.GetBody().GetUserData() is PickupActor)))){ PickupActor(_arg1.shape2.GetBody().GetUserData()).hitByBall(PegActor(_arg1.shape1.GetBody().GetUserData())); } else { if ((((((_arg1.shape2.GetUserData() is String)) && ((_arg1.shape2.GetBody().GetUserData() is PegActor)))) && ((_arg1.shape1.GetBody().GetUserData() is PickupActor)))){ PickupActor(_arg1.shape1.GetBody().GetUserData()).hitByBall(PegActor(_arg1.shape2.GetBody().GetUserData())); }; }; }; }; }; }; }; }; }; }; }; }; super.Add(_arg1); } override public function Persist(_arg1:b2ContactPoint):void{ super.Persist(_arg1); } override public function Remove(_arg1:b2ContactPoint):void{ super.Remove(_arg1); } } }//package game
Section 108
//TableFg (game.TableFg) package game { import flash.display.*; public dynamic class TableFg extends MovieClip { public function TableFg(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package game
Section 109
//TableMid (game.TableMid) package game { import flash.display.*; public dynamic class TableMid extends Sprite { } }//package game
Section 110
//TableTop (game.TableTop) package game { import flash.display.*; public dynamic class TableTop extends MovieClip { } }//package game
Section 111
//TestActor (game.TestActor) package game { import Box2D.Common.Math.*; import flash.display.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import flash.geom.*; import utils.*; public class TestActor extends Actor { private var myTable:Table; private var _hitEdge:Boolean;// = false private var _beenHit:Boolean;// = false private var _testType:int; private var _timer:int; private static const PEG_DIAMETER:int = 10; public function TestActor(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:int){ _beenHit = false; _testType = _arg3; _timer = 0; var _local4:MovieClip = new PegMovieRound(); _local4.scaleX = (PEG_DIAMETER / _local4.width); _local4.scaleY = (PEG_DIAMETER / _local4.height); _arg1.addChild(_local4); _local4.visible = false; var _local5:* = new b2CircleDef(); _local5.radius = ((PEG_DIAMETER / 2) / PhysiVals.RATIO); _local5.density = 1.5; _local5.friction = 0; _local5.restitution = 0.45; _local5.userData = "Test"; _local5.isSensor = true; _local5.filter.categoryBits = 32; if ((((_arg3 == ZombieActor.FLYING)) || ((_arg3 == ZombieActor.FLYING_2)))){ _local5.filter.maskBits = 12; } else { _local5.filter.maskBits = 4; }; var _local6:b2BodyDef = new b2BodyDef(); _local6.position.Set((_arg2.x / PhysiVals.RATIO), (_arg2.y / PhysiVals.RATIO)); _local6.isBullet = true; var _local7:* = PhysiVals.world.CreateBody(_local6); _local7.CreateShape(_local5); _local7.SetMassFromShapes(); super(_local7, _local4); } public function getInfo(){ return ([MovieClip(_costume).x, MovieClip(_costume).y]); } public function hitByBrick():void{ dispatchEvent(new PegEvent(PegEvent.PEG_POTTED, _testType)); _beenHit = true; } private function repositionMe():void{ var _local1:b2Vec2; _local1 = _body.GetLinearVelocity(); _local1.x = 0; _local1.y = 0; _body.SetLinearVelocity(_local1); } override protected function childSpecificUpdating():void{ super.childSpecificUpdating(); } } }//package game
Section 112
//ZombieActor (game.ZombieActor) package game { import Box2D.Common.Math.*; import flash.display.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import flash.geom.*; import utils.*; public class ZombieActor extends Actor { private var freezeTimer:int;// = 1 private var bangTimer:int;// = 0 private var initPoint:Point; private var myMaxSpeed:Number;// = 1 private var mySpeed:Number;// = 0.5 private var myBaseAnim:String;// = "zomWalk" private var myDir:int;// = -1 private var scaleFactor:Number;// = 1 public var myType;// = 1 private var myClip:MovieClip; private var strength:int;// = 50 private var myTable:Table; public static const REGULAR:int = 1; public static const BOSS:int = 2; public static const DEVIL:int = 3; public static const FLYING:int = 4; public static const SHIELD_TOP:int = 5; public static const SHIELD_BOTTOM:int = 6; public static const SKELLY:int = 7; public static const FLYING_2:int = 8; public static const DEVIL_2:int = 9; public static const SKELLY_2:int = 10; public static const BOB_HOPE:int = 11; public static const TARBUCK:int = 12; public static const BRUCE:int = 13; public static const UMBRELLA:int = 14; public static const ZOM_CLIP_HEIGHT:int = 140; private static var MY_WIDTH:int = 16; private static var MY_HEIGHT:int = 56; public function ZombieActor(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:int, _arg4){ myTable = _arg4; myType = _arg3; initPoint = _arg2; MY_HEIGHT = Arrays.zomDATA[myType][1]; strength = Arrays.zomDATA[myType][2]; myMaxSpeed = Arrays.zomDATA[myType][6]; var _local5:MovieClip = new ZombieMovie(); _arg1.addChild(_local5); scaleFactor = (MY_HEIGHT / ZOM_CLIP_HEIGHT); var _local6:MovieClip = new ZombieAnim(myType, myDir); _local5.addChild(_local6); myClip = _local6; _local6.y = (MY_HEIGHT / 2); if ((((myType == FLYING)) || ((myType == FLYING_2)))){ myBaseAnim = "flight"; }; myClip.gotoAndPlay(myBaseAnim); if ((((myType == BOSS)) || ((myType == SKELLY)))){ myClip.gotoAndPlay("emerge"); freezeTimer = -1; }; var _local7:* = new b2PolygonDef(); _local7.SetAsBox(((MY_WIDTH / 2) / PhysiVals.RATIO), ((MY_HEIGHT / 2) / PhysiVals.RATIO)); _local7.density = 1; _local7.friction = 1; _local7.restitution = 0.1; _local7.userData = "Zombie"; _local7.filter.categoryBits = 16; _local7.filter.maskBits = 15; var _local8:b2BodyDef = new b2BodyDef(); _local8.position.Set((_arg2.x / PhysiVals.RATIO), ((_arg2.y - 28) / PhysiVals.RATIO)); _local8.fixedRotation = true; var _local9:* = PhysiVals.world.CreateBody(_local8); _local9.CreateShape(_local7); _local9.SetMassFromShapes(); super(_local9, _local5); SoundManager.playSound(("sndZombie" + Arrays.zomDATA[myType][9])); } public function checkDir():void{ } public function hitPlayer(_arg1):void{ if (myClip.currentFrame < 450){ _arg1.hitByZombie(); myClip.gotoAndPlay("eat"); }; } public function hitByBrick(_arg1):void{ if (_arg1.getMyInfo() != BrickActor.TOTAL_FIXED_INVISIBLE_PORUS){ if ((((myType == FLYING)) || ((myType == FLYING_2)))){ myBaseAnim = "zomWalk"; myClip.gotoAndPlay("zomWalk"); }; }; } public function hitByBall(_arg1):void{ var _local13:int; var _local14:int; var _local2:Array = _arg1.getMyInfo(); var _local3:int = _local2[0]; var _local4:int = _local2[1]; var _local5:int = _local2[3]; var _local6:int = (_local2[2] * Arrays.ballNameDATA[_local5][1]); var _local7:int = _local2[4]; var _local8:int = (_local4 - _costume.y); var _local9 = ""; var _local10:Number = 0; var _local11 = 1; if ((((myType == ZombieActor.SHIELD_TOP)) && ((_local8 < 5)))){ myTable.newParticles(0, _local3, _local4, InstantParticle.TYPE_SMOKE, null); return; }; if ((((myType == ZombieActor.SHIELD_BOTTOM)) && ((_local8 > 0)))){ myTable.newParticles(0, _local3, _local4, InstantParticle.TYPE_SMOKE, null); return; }; if ((((myType == ZombieActor.UMBRELLA)) && ((_local2[4] > 0)))){ myTable.newParticles(0, _local3, _local4, InstantParticle.TYPE_SMOKE, null); return; }; _arg1.hitZombie(); if (_local6 > 5){ bangTimer = 50; SoundManager.playSound("sndHitZom"); _local13 = (MY_HEIGHT / 3); _local14 = 0; if ((((_local6 > 10)) && ((_local7 == PegActor.SPECIAL_HITBOOST)))){ myTable.newParticles(0, _local3, _local4, InstantParticle.TYPE_PRAXIS, null); _local10 = (_local10 + 1); SoundManager.playSound("sndAirpump"); }; if ((((_local6 > 10)) && ((_local7 == PegActor.SPECIAL_LUCKBOOST)))){ myTable.newParticles(0, _local3, _local4, InstantParticle.TYPE_LUCKY, null); _local14 = 7; SoundManager.playSound("sndAirpump"); }; if (_local8 < -(_local13)){ _local9 = "hitHigh"; _local10 = 5; if (_local6 > (Arrays.zomDATA[myType][8] - _local14)){ trace("------------------------------ HEAD OFF"); _local10 = 1000000; _local11 = 100; }; } else { if (_local8 > _local13){ _local10 = 0.5; _local9 = "hitLow"; } else { _local10 = 2; _local9 = "hitMid"; }; }; if (myBaseAnim != "zomWalk"){ _local9 = "flightHit"; }; myTable.newParticles(0, (_local3 + 10), _local4, InstantParticle.TYPE_BLOODSPLAT, null); }; switch (_local5){ case PegActor.TYPE_8BALL: _arg1.explodeMe(InstantParticle.TYPE_MEGA_EXPLODE); _local9 = "hitHigh"; break; case PegActor.TYPE_BANG: _arg1.explodeMe(InstantParticle.TYPE_EXPLODE); _local9 = "hitHigh"; break; case PegActor.TYPE_FREEZE: SoundManager.playSound("sndFreeze"); _arg1.explodeMe(InstantParticle.TYPE_BLUE_OUT); _local10 = 1; myClip.gotoAndStop(myClip.currentFrame); myClip.alpha = 0.6; freezeTimer = -2; _local9 = ""; break; }; if (((!((_local9 == ""))) && ((freezeTimer > 0)))){ myClip.gotoAndPlay(_local9); }; var _local12:int = Math.floor((_local6 * _local10)); trace(((((("hf =========== " + _local6) + " hitFactor ") + _local10) + " damageTaken ") + _local12)); doDamage(_local12, _local11); } public function checkForSplashDamage(){ var _local2:*; var _local3:int; var _local4:int; trace("SPLASH CHECK"); var _local1:Array = myTable.nextExplosionList; for each (_local2 in _local1) { _local3 = JMath.getHyp(_local2[0], _local2[1], MovieClip(_costume).x, MovieClip(_costume).y); _local4 = ((Arrays.ballNameDATA[_local2[2]][4] - _local3) / 3); if ((((myType == ZombieActor.UMBRELLA)) && ((_local2[0] < MovieClip(_costume).x)))){ _local4 = (_local4 * 0.3); trace("----------------------------------------SHIELDED"); }; if ((((myType == ZombieActor.SHIELD_BOTTOM)) && ((_local2[1] > MovieClip(_costume).y)))){ _local4 = (_local4 * 0.5); trace(((("----------------------------------------SHIELDED:me at " + MovieClip(_costume).y) + " ball at") + _local2[1])); }; if ((((myType == ZombieActor.SHIELD_TOP)) && ((_local2[1] < MovieClip(_costume).y)))){ _local4 = (_local4 * 0.5); trace(((("----------------------------------------SHIELDED:me at " + MovieClip(_costume).y) + " ball at") + _local2[1])); }; trace(("DAMAGE TAKEN: " + _local4)); doDamage(_local4, 1); }; } private function doDamage(_arg1, _arg2){ trace(((strength + " str & damaged by ") + _arg1)); if (_arg1 < 1){ _arg1 = 0; } else { strength = (strength - _arg1); myClip.zomMeter.gotoAndPlay(2); myClip.zomMeter.zomMeterClip.zomMeterBar.scaleX = (strength / Arrays.zomDATA[myType][2]); myClip.zomMeter.zomMeterClip.damage.text = String(("-" + _arg1)); }; if (strength < 0){ dispatchEvent(new PegEvent(PegEvent.PEG_POTTED, (myType * _arg2))); if ((((_arg1 < 30)) || ((_arg1 > 10000)))){ myTable.newParticles(0, MovieClip(_costume).x, (MovieClip(_costume).y + myClip.y), InstantParticle.TYPE_DEADZOMBIE, (myType * _arg2)); } else { SoundManager.playSound("sndHitSplat"); myTable.newParticles(0, MovieClip(_costume).x, MovieClip(_costume).y, InstantParticle.TYPE_MEGA_BLOODSPLAT, null); myTable.headOffList.push([MovieClip(_costume).x, (MovieClip(_costume).y + myClip.y), ParticleActor.GORE]); myTable.headOffList.push([MovieClip(_costume).x, (MovieClip(_costume).y + myClip.y), ParticleActor.GORE]); myTable.headOffList.push([MovieClip(_costume).x, (MovieClip(_costume).y + myClip.y), ParticleActor.GORE]); }; }; } public function getClip():MovieClip{ return (MovieClip(_costume)); } public function testSuicide(){ if (((myTable.BOSS_DEAD) && ((strength > -1)))){ strength = -1; doDamage(1, 1); }; } override protected function childSpecificUpdating():void{ bangTimer--; var _local1:Number = myMaxSpeed; if (myTable.SPLASH_DAMAGE_FLAG){ checkForSplashDamage(); }; if (myTable.player.getClip().x < MovieClip(_costume).x){ myDir = -1; } else { myDir = 1; }; myClip.scaleX = (scaleFactor * myDir); if (myTable.ADD_ZOMBIE_FLAG){ freezeTimer = (freezeTimer + 1); if (freezeTimer > 0){ myClip.alpha = 1; myClip.gotoAndPlay(myBaseAnim); }; }; testSuicide(); if (((myTable.SET_ZOMBIE_ANIM_TO_AMB) && ((freezeTimer > 0)))){ if (myBaseAnim == "zomWalk"){ myClip.gotoAndPlay("ambient"); myClip.gotoAndPlay((myClip.currentFrame + JMath.getRand(16))); }; }; var _local2:b2Vec2 = _body.GetLinearVelocity(); var _local3:* = JMath.getHyp(0, 0, _local2.x, _local2.y); if ((((((bangTimer < 0)) && (myTable.MOVE_ZOMBIE_FLAG))) && ((freezeTimer > 0)))){ if (Math.abs(_local2.x) < _local1){ mySpeed = (mySpeed + 0.1); }; if (Math.abs(_local2.x) > _local1){ mySpeed = (mySpeed - 0.1); }; _body.SetLinearVelocity(new b2Vec2((mySpeed * myDir), _body.GetLinearVelocity().y)); _body.WakeUp(); } else { if ((((myType == FLYING)) || ((myType == FLYING_2)))){ _body.SetLinearVelocity(new b2Vec2(-(_local2.x), _local2.y)); } else { _body.SetLinearVelocity(new b2Vec2(-(_local2.x), -(_local2.y))); }; _body.WakeUp(); }; super.childSpecificUpdating(); } } }//package game
Section 113
//ZombieAnim (game.ZombieAnim) package game { import flash.display.*; import fl.motion.*; import utils.*; public class ZombieAnim extends MovieClip { public var rLegUpper1:MovieClip; public var zomMeter:MovieClip; public var rHead:MovieClip; public var rLowerLeg2:MovieClip; public var rArmUpper2:MovieClip; public var rLowerLeg1:MovieClip; public var rLowerArm2:MovieClip; public var rArmUpper1:MovieClip; public var rPants:MovieClip; public var blood:MovieClip; public var rTorso:MovieClip; public var rHand1:MovieClip; public var rLowerArm1:MovieClip; public var rFoot1:MovieClip; public var rHand2:MovieClip; public var rFoot2:MovieClip; public var rLegUpper2:MovieClip; private var myTable:Table; public function ZombieAnim(_arg1, _arg2){ addFrameScript(54, frame55, 55, frame56, 81, frame82, 110, frame111, 130, frame131, 159, frame160, 190, frame191, 237, frame238, 294, frame295, 355, frame356, 377, frame378, 391, frame392, 446, frame447, 459, frame460, 467, frame468, 487, frame488, 519, frame520, 531, frame532, 537, frame538, 561, frame562, 581, frame582); if (_arg1 > 99){ this.rHead.visible = false; _arg1 = (_arg1 / 100); }; var _local3:* = (Arrays.zomDATA[_arg1][1] / ZombieActor.ZOM_CLIP_HEIGHT); var _local4:* = (_local3 * _arg2); var _local5:* = Arrays.zomDATA[_arg1][5]; var _local6:* = Arrays.zomDATA[_arg1][7]; var _local7:* = Arrays.zomDATA[_arg1][4]; var _local8:* = Arrays.zomDATA[_arg1][3]; setMyKit(_local5, _local6, _local7, this); rHead.gotoAndStop(_local8); this.scaleX = _local4; this.scaleY = _local3; if (_arg1 == ZombieActor.SHIELD_TOP){ rHead.visible = (rArmUpper1.visible = (rArmUpper2.visible = (rLowerArm1.visible = (rLowerArm2.visible = (rHand1.visible = (rHand2.visible = false)))))); }; if (_arg1 == ZombieActor.SHIELD_BOTTOM){ rLegUpper1.visible = (rLegUpper2.visible = (rLowerLeg1.visible = (rLowerLeg2.visible = (rFoot1.visible = (rFoot2.visible = false))))); }; } public function setMyKit(_arg1, _arg2, _arg3, _arg4){ var _local5:* = _arg1; var _local6:* = _arg2; trace(((("kit" + _arg1) + " hair ") + _arg2)); tintColor(_arg4.rLowerArm2.skin, _arg3, 1); tintColor(_arg4.rLowerArm1.skin, _arg3, 1); tintColor(_arg4.rHand1.skin, _arg3, 1); tintColor(_arg4.rHand2.skin, _arg3, 1); tintColor(_arg4.rLegUpper1.skin, _arg3, 1); tintColor(_arg4.rLegUpper2.skin, _arg3, 1); tintColor(_arg4.rHead.rHeadType.skin, _arg3, 1); _arg4.rHead.gotoAndStop(2); _arg4.rTorso.gotoAndStop(_local5); _arg4.rHead.rHair.gotoAndStop(_local6); _arg4.rArmUpper1.gotoAndStop(_local5); _arg4.rArmUpper2.gotoAndStop(_local5); _arg4.rLowerArm1.gotoAndStop(_local5); _arg4.rLowerArm2.gotoAndStop(_local5); _arg4.rHand1.gotoAndStop(_local5); _arg4.rHand2.gotoAndStop(_local5); _arg4.rPants.gotoAndStop(_local5); _arg4.rLegUpper1.gotoAndStop(_local5); _arg4.rLegUpper2.gotoAndStop(_local5); _arg4.rLowerLeg1.gotoAndStop(_local5); _arg4.rLowerLeg2.gotoAndStop(_local5); _arg4.rFoot1.gotoAndStop(_local5); _arg4.rFoot2.gotoAndStop(_local5); } function tintColor(_arg1:Sprite, _arg2:Number, _arg3:Number):void{ var _local4:Color = new Color(); _local4.setTint(_arg2, _arg3); _arg1.transform.colorTransform = _local4; } function frame55(){ gotoAndPlay("ambient"); } function frame56(){ gotoAndPlay("ambient"); } function frame82(){ gotoAndPlay("run"); } function frame111(){ gotoAndPlay("ambient"); } function frame131(){ gotoAndPlay("ambient"); } function frame160(){ gotoAndPlay("zomWalk"); } function frame191(){ gotoAndPlay("reWalk"); } function frame238(){ gotoAndPlay("reWalk"); } function frame295(){ gotoAndPlay("reWalk"); } function frame356(){ stop(); } function frame378(){ gotoAndPlay("keeperAmb"); } function frame392(){ gotoAndPlay("keeperAmb"); } function frame447(){ gotoAndPlay("getUp"); } function frame460(){ gotoAndPlay("flight"); } function frame468(){ gotoAndPlay("flight"); } function frame488(){ gotoAndPlay("flight"); } function frame520(){ gotoAndPlay("zomWalk"); } function frame532(){ stop(); } function frame538(){ } function frame562(){ gotoAndPlay("swingAmb"); } function frame582(){ gotoAndPlay("swingAmb"); } } }//package game
Section 114
//ZombieMovie (game.ZombieMovie) package game { import flash.display.*; public dynamic class ZombieMovie extends MovieClip { } }//package game
Section 115
//MochiAd (mochi.as3.MochiAd) package mochi.as3 { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class MochiAd { public static function getVersion():String{ return (MochiServices.getVersion()); } public static function doOnEnterFrame(_arg1:MovieClip):void{ var mc = _arg1; var f:Function = function (_arg1:Object):void{ if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){ mc.onEnterFrame(); } else { _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; }; mc.addEventListener(Event.ENTER_FRAME, f); } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{ var _local4:MovieClip = new MovieClip(); if (((false) && (_arg3))){ _arg1.addChildAt(_local4, _arg3); } else { _arg1.addChild(_local4); }; _arg1[_arg2] = _local4; _local4["_name"] = _arg2; return (_local4); } public static function showPreGameAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var complete:Boolean; var unloaded:Boolean; var sendHostProgress:Boolean; var fn:Function; var r:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:5500, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); trace("BOING"); Main.instance.mochiDone(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }, ad_progress:function (_arg1:Number):void{ }, progress_override:function (_arg1:Object):Number{ return (NaN); }, bar_offset:0}; options = MochiAd._parseOptions(options, DEFAULTS); if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){ options.ad_started(); fn = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); return; }; clip = options.clip; var ad_msec:Number = 11000; var ad_timeout:Number = options.ad_timeout; if (options.skip){ ad_timeout = 0; }; delete options.ad_timeout; var fadeout_time:Number = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); var fn:Function = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.x = (w * -0.5); chk.y = (h * -0.5); var bar:MovieClip = createEmptyMovieClip(chk, "_mochiad_bar", 4); if (options.no_progress_bar){ bar.visible = false; delete options.no_progress_bar; } else { bar.x = (10 + options.bar_offset); bar.y = (h - 20); }; var bar_w:Number = ((w - bar.x) - 10); var bar_color:Number = options.color; delete options.color; var bar_background:Number = options.background; delete options.background; var bar_outline:Number = options.outline; delete options.outline; var backing_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 1); var backing:Object = backing_mc.graphics; backing.beginFill(bar_background); backing.moveTo(0, 0); backing.lineTo(bar_w, 0); backing.lineTo(bar_w, 10); backing.lineTo(0, 10); backing.lineTo(0, 0); backing.endFill(); var inside_mc:MovieClip = createEmptyMovieClip(bar, "_inside", 2); var inside:Object = inside_mc.graphics; inside.beginFill(bar_color); inside.moveTo(0, 0); inside.lineTo(bar_w, 0); inside.lineTo(bar_w, 10); inside.lineTo(0, 10); inside.lineTo(0, 0); inside.endFill(); inside_mc.scaleX = 0; var outline_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 3); var outline:Object = outline_mc.graphics; outline.lineStyle(0, bar_outline, 100); outline.moveTo(0, 0); outline.lineTo(bar_w, 0); outline.lineTo(bar_w, 10); outline.lineTo(0, 10); outline.lineTo(0, 0); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.last_pcnt = 0; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; complete = false; unloaded = false; var progress:Number = Math.min(1, options.progress_override(clip)); var f:Function = function (_arg1:Event):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); complete = true; if (unloaded){ MochiAd.unload(clip); }; }; if (!isNaN(progress)){ complete = (progress == 1); } else { if (clip.loaderInfo.bytesLoaded == clip.loaderInfo.bytesTotal){ complete = true; } else { if ((clip.root is MovieClip)){ r = (clip.root as MovieClip); if (r.framesLoaded >= r.totalFrames){ complete = true; } else { clip.loaderInfo.addEventListener(Event.COMPLETE, f); }; } else { clip.loaderInfo.addEventListener(Event.COMPLETE, f); }; }; }; mc.unloadAd = function ():void{ unloaded = true; if (complete){ MochiAd.unload(clip); }; }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = _arg1; }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; mc.rpcTestFn = function (_arg1:String):Object{ trace(("[MOCHIAD rpcTestFn] " + _arg1)); return (_arg1); }; sendHostProgress = false; mc.sendHostLoadProgress = function (_arg1:String):void{ sendHostProgress = true; }; chk["onEnterFrame"] = function ():void{ var _local12:Number; if (((!(this.parent)) || (!(this.parent.parent)))){ delete this["onEnterFrame"]; return; }; var _local1:Object = this.parent.parent.root; var _local2:Object = this.parent._mochiad_ctr; var _local3:Number = (getTimer() - this.started); var _local4:Boolean; var _local5:Number = _local1.loaderInfo.bytesTotal; var _local6:Number = _local1.loaderInfo.bytesLoaded; var _local7:Number = Math.min(1, options.progress_override(_local1)); if (_local7 == 1){ complete = true; }; if (complete){ _local6 = Math.max(1, _local6); _local5 = _local6; }; var _local8:Number = ((100 * _local6) / _local5); if (!isNaN(_local7)){ _local8 = (100 * _local7); }; var _local9:Number = ((100 * _local3) / chk.ad_msec); var _local10:Object = this._mochiad_bar._inside; var _local11:Number = Math.min(100, Math.min(((_local8) || (0)), _local9)); _local11 = Math.max(this.last_pcnt, _local11); this.last_pcnt = _local11; _local10.scaleX = (_local11 * 0.01); options.ad_progress(_local11); if (sendHostProgress){ clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local8}); if (_local8 >= 100){ sendHostProgress = false; }; }; if (!chk.showing){ _local12 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local12 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if ((((_local3 > chk.ad_timeout)) && ((_local8 == 100)))){ options.ad_failed(); _local4 = true; }; }; }; if (_local3 > chk.ad_msec){ _local4 = true; }; if (((complete) && (_local4))){ if (unloaded){ MochiAd.unload(_local1); } else { if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = chk.fadeFunction; }; }; }; }; doOnEnterFrame(chk); } public static function showClickAwayAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:5500, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{ }, ad_finished:function ():void{ }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; chk["onEnterFrame"] = function ():void{ var _local4:Number; if (!this.parent){ delete this.onEnterFrame; return; }; var _local1:Object = this.parent._mochiad_ctr; var _local2:Number = (getTimer() - this.started); var _local3:Boolean; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; _local3 = true; chk.started = getTimer(); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (this.root == null){ _local3 = true; }; if (_local3){ delete this.onEnterFrame; }; }; doOnEnterFrame(chk); } public static function showInterLevelAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:5500, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; var ad_msec:Number = 11000; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; var fadeout_time:Number = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = (_arg1 - 250); }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; chk["onEnterFrame"] = function ():void{ var _local4:Number; if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; var _local1:Object = this.parent._mochiad_ctr; var _local2:Number = (getTimer() - this.started); var _local3:Boolean; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (_local2 > chk.ad_msec){ _local3 = true; }; if (_local3){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = this.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function showPreloaderAd(_arg1:Object):void{ trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0"); MochiAd.showPreGameAd(_arg1); } public static function showTimedAd(_arg1:Object):void{ trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0"); MochiAd.showInterLevelAd(_arg1); } public static function _allowDomains(_arg1:String):String{ var _local2:String = _arg1.split("/")[2].split(":")[0]; if (Security.sandboxType == "application"){ return (_local2); }; Security.allowDomain("*"); Security.allowDomain(_local2); Security.allowInsecureDomain("*"); Security.allowInsecureDomain(_local2); return (_local2); } public static function load(_arg1:Object):MovieClip{ var clip:Object; var mc:MovieClip; var k:String; var server:String; var hostname:String; var lc:LocalConnection; var name:String; var loader:Loader; var g:Function; var req:URLRequest; var v:Object; var options = _arg1; var DEFAULTS:Object = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"}; options = MochiAd._parseOptions(options, DEFAULTS); options.swfv = 9; options.mav = MochiAd.getVersion(); clip = options.clip; if (!(clip is DisplayObject)){ trace("Warning: Object passed as container clip not a descendant of the DisplayObject type"); return (null); }; if (MovieClip(clip).stage == null){ trace("Warning: Container clip for ad is not attached to the stage"); return (null); }; if (!MochiAd._isNetworkAvailable()){ return (null); }; try { if (clip._mochiad_loaded){ return (null); }; } catch(e:Error) { throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); }; var depth:Number = options.depth; delete options.depth; mc = createEmptyMovieClip(clip, "_mochiad", depth); var wh:Array = MochiAd._getRes(options, clip); options.res = ((wh[0] + "x") + wh[1]); options.server = (options.server + options.id); delete options.id; clip._mochiad_loaded = true; if (clip.loaderInfo.loaderURL.indexOf("http") == 0){ options.as3_swf = clip.loaderInfo.loaderURL; } else { trace("[MochiAd] NOTE: Security Sandbox Violation errors below are normal"); }; var lv:URLVariables = new URLVariables(); for (k in options) { v = options[k]; if (!(v is Function)){ lv[k] = v; }; }; server = lv.server; delete lv.server; hostname = _allowDomains(server); lc = new LocalConnection(); lc.client = mc; name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_"); lc.allowDomain("*", "localhost"); lc.allowInsecureDomain("*", "localhost"); lc.connect(name); mc.lc = lc; mc.lcName = name; lv.lc = name; lv.st = getTimer(); mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; loader = new Loader(); g = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); MochiAd.unload(clip); }; loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g); req = new URLRequest(((server + ".swf?cacheBust=") + new Date().getTime())); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:IOErrorEvent):void{ trace("[MochiAds] Blocked URL"); }); if (!options.skip){ loader.load(req); }; mc.addChild(loader); mc._mochiad_ctr = loader; return (mc); } public static function unload(_arg1:Object):Boolean{ if (((_arg1.clip) && (_arg1.clip._mochiad))){ _arg1 = _arg1.clip; }; if (_arg1.origFrameRate != undefined){ _arg1.stage.frameRate = _arg1.origFrameRate; }; if (!_arg1._mochiad){ return (false); }; if (_arg1._mochiad._containerLCName != undefined){ _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "notify", {id:"unload"}); }; if (_arg1._mochiad.onUnload){ _arg1._mochiad.onUnload(); }; delete _arg1._mochiad_loaded; delete _arg1._mochiad; return (true); } public static function _cleanup(_arg1:Object):void{ var k:String; var lc:LocalConnection; var f:Function; var mc = _arg1; if (("lc" in mc)){ lc = mc.lc; f = function ():void{ try { lc.client = null; lc.close(); } catch(e:Error) { }; }; setTimeout(f, 0); }; var idx:Number = DisplayObjectContainer(mc).numChildren; while (idx > 0) { idx = (idx - 1); DisplayObjectContainer(mc).removeChildAt(idx); }; for (k in mc) { delete mc[k]; }; } public static function _isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function _getRes(_arg1:Object, _arg2:Object):Array{ var _local6:Array; var _local3:Object = _arg2.getBounds(_arg2.root); var _local4:Number = 0; var _local5:Number = 0; if (typeof(_arg1.res) != "undefined"){ _local6 = _arg1.res.split("x"); _local4 = parseFloat(_local6[0]); _local5 = parseFloat(_local6[1]); } else { _local4 = (_local3.right - _local3.left); _local5 = (_local3.top - _local3.bottom); }; if ((((_local4 == 0)) || ((_local5 == 0)))){ _local4 = _arg2.stage.stageWidth; _local5 = _arg2.stage.stageHeight; }; return ([_local4, _local5]); } public static function _parseOptions(_arg1:Object, _arg2:Object):Object{ var _local4:String; var _local5:Array; var _local6:Number; var _local7:Array; var _local3:Object = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; if (_arg1){ for (_local4 in _arg1) { _local3[_local4] = _arg1[_local4]; }; }; if (_local3.clip == undefined){ throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite.")); }; _arg1 = _local3.clip.loaderInfo.parameters.mochiad_options; if (_arg1){ _local5 = _arg1.split("&"); _local6 = 0; while (_local6 < _local5.length) { _local7 = _local5[_local6].split("="); _local3[unescape(_local7[0])] = unescape(_local7[1]); _local6++; }; }; if (_local3.id == "test"){ trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!"); }; return (_local3); } public static function rpc(_arg1:Object, _arg2:Number, _arg3:Object):void{ var _local4:Object; var _local5:Object; switch (_arg3.id){ case "setValue": MochiAd.setValue(_arg1, _arg3.objectName, _arg3.value); break; case "getValue": _local4 = MochiAd.getValue(_arg1, _arg3.objectName); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local4); break; case "runMethod": _local5 = MochiAd.runMethod(_arg1, _arg3.method, _arg3.args); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local5); break; default: trace(("[mochiads rpc] unknown rpc id: " + _arg3.id)); }; } public static function setValue(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Array = _arg2.split("."); var _local5:Number = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return; }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; _arg1[_local4[_local5]] = _arg3; } public static function getValue(_arg1:Object, _arg2:String):Object{ var _local3:Array = _arg2.split("."); var _local4:Number = 0; while (_local4 < (_local3.length - 1)) { if ((((_arg1[_local3[_local4]] == undefined)) || ((_arg1[_local3[_local4]] == null)))){ return (undefined); }; _arg1 = _arg1[_local3[_local4]]; _local4++; }; return (_arg1[_local3[_local4]]); } public static function runMethod(_arg1:Object, _arg2:String, _arg3:Array):Object{ var _local4:Array = _arg2.split("."); var _local5:Number = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return (undefined); }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; if (typeof(_arg1[_local4[_local5]]) == "function"){ return (_arg1[_local4[_local5]].apply(_arg1, _arg3)); }; return (undefined); } public static function adShowing(_arg1:Object):void{ _arg1.origFrameRate = _arg1.stage.frameRate; _arg1.stage.frameRate = 30; } } }//package mochi.as3
Section 116
//MochiCoins (mochi.as3.MochiCoins) package mochi.as3 { public class MochiCoins { public static const STORE_SHOW:String = "StoreShow"; public static const STORE_HIDE:String = "StoreHide"; public static const ITEM_OWNED:String = "ItemOwned"; public static const ITEM_NEW:String = "ItemNew"; public static const STORE_ITEMS:String = "StoreItems"; public static const ERROR:String = "Error"; public static const IO_ERROR:String = "IOError"; public static const NO_USER:String = "NoUser"; public static var _inventory:MochiInventory; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public static function get inventory():MochiInventory{ return (_inventory); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function showStore(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("coins_showStore", {options:_arg1}, null, null); } public static function showItem(_arg1:Object=null):void{ if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){ trace("ERROR: showItem call must pass an Object with an item key"); return; }; MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("coins_showItem", {options:_arg1}, null, null); } public static function showVideo(_arg1:Object=null):void{ if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){ trace("ERROR: showVideo call must pass an Object with an item key"); return; }; MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("coins_showVideo", {options:_arg1}, null, null); } public static function getStoreItems():void{ MochiServices.send("coins_getStoreItems"); } public static function requestFunding(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("social_requestFunding", _arg1); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } addEventListener(MochiSocial.LOGGED_IN, function (_arg1:Object):void{ _inventory = new MochiInventory(); }); addEventListener(MochiSocial.LOGGED_OUT, function (_arg1:Object):void{ _inventory = null; }); } }//package mochi.as3
Section 117
//MochiDigits (mochi.as3.MochiDigits) package mochi.as3 { public final class MochiDigits { private var Fragment:Number; private var Sibling:MochiDigits; private var Encoder:Number; public function MochiDigits(_arg1:Number=0, _arg2:uint=0):void{ Encoder = 0; setValue(_arg1, _arg2); } public function get value():Number{ return (Number(this.toString())); } public function set value(_arg1:Number):void{ setValue(_arg1); } public function addValue(_arg1:Number):void{ value = (value + _arg1); } public function setValue(_arg1:Number=0, _arg2:uint=0):void{ var _local3:String = _arg1.toString(); var _temp1 = _arg2; _arg2 = (_arg2 + 1); Fragment = (_local3.charCodeAt(_temp1) ^ Encoder); if (_arg2 < _local3.length){ Sibling = new MochiDigits(_arg1, _arg2); } else { Sibling = null; }; reencode(); } public function reencode():void{ var _local1:uint = int((2147483647 * Math.random())); Fragment = (Fragment ^ (_local1 ^ Encoder)); Encoder = _local1; } public function toString():String{ var _local1:String = String.fromCharCode((Fragment ^ Encoder)); if (Sibling != null){ _local1 = (_local1 + Sibling.toString()); }; return (_local1); } } }//package mochi.as3
Section 118
//MochiEventDispatcher (mochi.as3.MochiEventDispatcher) package mochi.as3 { public class MochiEventDispatcher { private var eventTable:Object; public function MochiEventDispatcher():void{ eventTable = {}; } public function addEventListener(_arg1:String, _arg2:Function):void{ removeEventListener(_arg1, _arg2); eventTable[_arg1].push(_arg2); } public function removeEventListener(_arg1:String, _arg2:Function):void{ var _local3:Object; if (eventTable[_arg1] == undefined){ eventTable[_arg1] = []; return; }; for (_local3 in eventTable[_arg1]) { if (eventTable[_arg1][_local3] != _arg2){ } else { eventTable[_arg1].splice(Number(_local3), 1); }; }; } public function triggerEvent(_arg1:String, _arg2:Object):void{ var _local3:Object; if (eventTable[_arg1] == undefined){ return; }; for (_local3 in eventTable[_arg1]) { var _local6 = eventTable[_arg1]; _local6[_local3](_arg2); }; } } }//package mochi.as3
Section 119
//MochiEvents (mochi.as3.MochiEvents) package mochi.as3 { import flash.display.*; public class MochiEvents { public static const ACHIEVEMENT_RECEIVED:String = "AchievementReceived"; public static const ALIGN_TOP_LEFT:String = "ALIGN_TL"; public static const ALIGN_TOP:String = "ALIGN_T"; public static const ALIGN_TOP_RIGHT:String = "ALIGN_TR"; public static const ALIGN_LEFT:String = "ALIGN_L"; public static const ALIGN_CENTER:String = "ALIGN_C"; public static const ALIGN_RIGHT:String = "ALIGN_R"; public static const ALIGN_BOTTOM_LEFT:String = "ALIGN_BL"; public static const ALIGN_BOTTOM:String = "ALIGN_B"; public static const ALIGN_BOTTOM_RIGHT:String = "ALIGN_BR"; public static const FORMAT_SHORT:String = "ShortForm"; public static const FORMAT_LONG:String = "LongForm"; private static var gameStart:Number; private static var levelStart:Number; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public static function getVersion():String{ return (MochiServices.getVersion()); } public static function startSession(_arg1:String):void{ MochiServices.send("events_beginSession", {achievementID:_arg1}, null, null); } public static function setNotifications(_arg1:MovieClip, _arg2:Object):void{ var _local4:Object; var _local3:Object = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; _local3.clip = _arg1; MochiServices.send("events_setNotifications", _local3, null, null); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function startPlay(_arg1:String="gameplay"):void{ MochiServices.send("events_setRoundID", {tag:String(_arg1)}, null, null); } public static function endPlay():void{ MochiServices.send("events_clearRoundID", null, null, null); } public static function trackEvent(_arg1:String, _arg2=null):void{ MochiServices.send("events_trackEvent", {tag:_arg1, value:_arg2}, null, null); } } }//package mochi.as3
Section 120
//MochiInventory (mochi.as3.MochiInventory) package mochi.as3 { import flash.events.*; import flash.utils.*; public dynamic class MochiInventory extends Proxy { private var _timer:Timer; private var _consumableProperties:Object; private var _syncPending:Boolean; private var _outstandingID:Number; private var _syncID:Number; private var _names:Array; private var _storeSync:Object; private static const CONSUMER_KEY:String = "MochiConsumables"; private static const KEY_SALT:String = " syncMaint"; public static const READY:String = "InvReady"; public static const WRITTEN:String = "InvWritten"; public static const ERROR:String = "Error"; public static const IO_ERROR:String = "IoError"; public static const VALUE_ERROR:String = "InvValueError"; public static const NOT_READY:String = "InvNotReady"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public function MochiInventory():void{ MochiCoins.addEventListener(MochiCoins.ITEM_OWNED, itemOwned); MochiCoins.addEventListener(MochiCoins.ITEM_NEW, newItems); MochiSocial.addEventListener(MochiSocial.LOGGED_IN, loggedIn); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, loggedOut); _storeSync = new Object(); _syncPending = false; _outstandingID = 0; _syncID = 0; _timer = new Timer(1000); _timer.addEventListener(TimerEvent.TIMER, sync); _timer.start(); if (MochiSocial.loggedIn){ loggedIn(); } else { loggedOut(); }; } public function release():void{ MochiCoins.removeEventListener(MochiCoins.ITEM_NEW, newItems); MochiSocial.removeEventListener(MochiSocial.LOGGED_IN, loggedIn); MochiSocial.removeEventListener(MochiSocial.LOGGED_OUT, loggedOut); } private function loggedOut(_arg1:Object=null):void{ _consumableProperties = null; } private function loggedIn(_arg1:Object=null):void{ MochiUserData.get(CONSUMER_KEY, getConsumableBag); } private function newItems(_arg1:Object):void{ if (!this[(_arg1.id + KEY_SALT)]){ this[(_arg1.id + KEY_SALT)] = 0; }; if (!this[_arg1.id]){ this[_arg1.id] = 0; }; this[(_arg1.id + KEY_SALT)] = (this[(_arg1.id + KEY_SALT)] + _arg1.count); this[_arg1.id] = (this[_arg1.id] + _arg1.count); if (((_arg1.privateProperties) && (_arg1.privateProperties.consumable))){ if (!this[_arg1.privateProperties.tag]){ this[_arg1.privateProperties.tag] = 0; }; this[_arg1.privateProperties.tag] = (this[_arg1.privateProperties.tag] + (_arg1.privateProperties.inc * _arg1.count)); }; } private function itemOwned(_arg1:Object):void{ _storeSync[_arg1.id] = {properties:_arg1.properties, count:_arg1.count}; } private function getConsumableBag(_arg1:MochiUserData):void{ var _local2:String; var _local3:Number; if (_arg1.error){ triggerEvent(ERROR, {type:IO_ERROR, error:_arg1.error}); return; }; _consumableProperties = {}; _names = new Array(); if (_arg1.data){ for (_local2 in _arg1.data) { _names.push(_local2); _consumableProperties[_local2] = new MochiDigits(_arg1.data[_local2]); }; }; for (_local2 in _storeSync) { _local3 = _storeSync[_local2].count; if (_consumableProperties[(_local2 + KEY_SALT)]){ _local3 = (_local3 - _consumableProperties[(_local2 + KEY_SALT)].value); }; if (_local3 == 0){ } else { newItems({id:_local2, count:_local3, properties:_storeSync[_local2].properties}); }; }; triggerEvent(READY, {}); } private function putConsumableBag(_arg1:MochiUserData):void{ _syncPending = false; if (_arg1.error){ triggerEvent(ERROR, {type:IO_ERROR, error:_arg1.error}); _outstandingID = -1; }; triggerEvent(WRITTEN, {}); } private function sync(_arg1:Event=null):void{ var _local3:String; if (((_syncPending) || ((_syncID == _outstandingID)))){ return; }; _outstandingID = _syncID; var _local2:Object = {}; for (_local3 in _consumableProperties) { _local2[_local3] = MochiDigits(_consumableProperties[_local3]).value; }; MochiUserData.put(CONSUMER_KEY, _local2, putConsumableBag); _syncPending = true; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){ if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return (-1); }; if (_consumableProperties[_arg1]){ return (MochiDigits(_consumableProperties[_arg1]).value); }; return (undefined); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function deleteProperty(_arg1):Boolean{ if (!_consumableProperties[_arg1]){ return (false); }; _names.splice(_names.indexOf(_arg1), 1); delete _consumableProperties[_arg1]; return (true); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function hasProperty(_arg1):Boolean{ if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return (false); }; if (_consumableProperties[_arg1] == undefined){ return (false); }; return (true); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{ var _local3:MochiDigits; if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return; }; if (!(_arg2 is Number)){ triggerEvent(ERROR, {type:VALUE_ERROR, error:"Invalid type", arg:_arg2}); return; }; if (_consumableProperties[_arg1]){ _local3 = MochiDigits(_consumableProperties[_arg1]); if (_local3.value == _arg2){ return; }; _local3.value = _arg2; } else { _names.push(_arg1); _consumableProperties[_arg1] = new MochiDigits(_arg2); }; _syncID++; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextNameIndex(_arg1:int):int{ return (((_arg1)>=_names.length) ? 0 : (_arg1 + 1)); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextName(_arg1:int):String{ return (_names[(_arg1 - 1)]); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } } }//package mochi.as3
Section 121
//MochiServices (mochi.as3.MochiServices) package mochi.as3 { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class MochiServices { public static const CONNECTED:String = "onConnected"; private static var _id:String; private static var _container:Object; private static var _clip:MovieClip; private static var _loader:Loader; private static var _timer:Timer; private static var _preserved:Object; private static var _servURL:String = "http://www.mochiads.com/static/lib/services/"; private static var _services:String = "services.swf"; private static var _mochiLC:String = "MochiLC.swf"; private static var _swfVersion:String; private static var _listenChannelName:String = "__ms_"; private static var _sendChannel:LocalConnection; private static var _sendChannelName:String; private static var _connecting:Boolean = false; private static var _connected:Boolean = false; public static var netup:Boolean = true; public static var netupAttempted:Boolean = false; public static var onError:Object; public static var widget:Boolean = false; private static var _mochiLocalConnection:MovieClip; private static var _queue:Array; private static var _nextCallbackID:Number; private static var _callbacks:Object; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public static function get id():String{ return (_id); } public static function get clip():Object{ return (_container); } public static function get childClip():Object{ return (_clip); } public static function getVersion():String{ return ("3.9.2 as3"); } public static function allowDomains(_arg1:String):String{ var _local2:String; if (Security.sandboxType != "application"){ Security.allowDomain("*"); Security.allowInsecureDomain("*"); }; if (_arg1.indexOf("http://") != -1){ _local2 = _arg1.split("/")[2].split(":")[0]; if (Security.sandboxType != "application"){ Security.allowDomain(_local2); Security.allowInsecureDomain(_local2); }; }; return (_local2); } public static function isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function set comChannelName(_arg1:String):void{ if (_arg1 != null){ if (_arg1.length > 3){ _sendChannelName = (_arg1 + "_fromgame"); initComChannels(); }; }; } public static function get connected():Boolean{ return (_connected); } public static function warnID(_arg1:String, _arg2:Boolean):void{ _arg1 = _arg1.toLowerCase(); if (_arg1.length != 16){ trace((("WARNING: " + (_arg2) ? "board" : "game") + " ID is not the appropriate length")); return; } else { if (_arg1 == "1e113c7239048b3f"){ if (_arg2){ trace("WARNING: Using testing board ID"); } else { trace("WARNING: Using testing board ID as game ID"); }; return; } else { if (_arg1 == "84993a1de4031cd8"){ if (_arg2){ trace("WARNING: Using testing game ID as board ID"); } else { trace("WARNING: Using testing game ID"); }; return; }; }; }; var _local3:Number = 0; while (_local3 < _arg1.length) { switch (_arg1.charAt(_local3)){ case "0": case "1": case "2": case "3": case "4": case "5": case "6": case "7": case "8": case "9": case "a": case "b": case "c": case "d": case "e": case "f": break; default: trace(("WARNING: Board ID contains illegal characters: " + _arg1)); return; }; _local3++; }; } public static function connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{ var id = _arg1; var clip = _arg2; var onError = _arg3; warnID(id, false); if ((clip is DisplayObject)){ if (clip.stage == null){ trace("MochiServices connect requires the containing clip be attached to the stage"); }; if (((!(_connected)) && ((_clip == null)))){ trace("MochiServices Connecting..."); _connecting = true; init(id, clip); }; } else { trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage."); }; if (onError != null){ MochiServices.onError = onError; } else { if (MochiServices.onError == null){ MochiServices.onError = function (_arg1:String):void{ trace(_arg1); }; }; }; } public static function disconnect():void{ if (((_connected) || (_connecting))){ if (_clip != null){ if (_clip.parent != null){ if ((_clip.parent is Sprite)){ Sprite(_clip.parent).removeChild(_clip); _clip = null; }; }; }; _connecting = (_connected = false); flush(true); try { _mochiLocalConnection.close(); } catch(error:Error) { }; }; if (_timer != null){ try { _timer.stop(); _timer.removeEventListener(TimerEvent.TIMER, connectWait); _timer = null; } catch(error:Error) { }; }; } public static function stayOnTop():void{ _container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true); if (_clip != null){ _clip.visible = true; }; } public static function doClose():void{ _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); } public static function bringToTop(_arg1:Event=null):void{ var e = _arg1; if (((!((MochiServices.clip == null))) && (!((MochiServices.childClip == null))))){ try { if (MochiServices.clip.numChildren > 1){ MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1)); }; } catch(errorObject:Error) { trace("Warning: Depth sort error."); _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); }; }; } private static function init(_arg1:String, _arg2:Object):void{ _id = _arg1; if (_arg2 != null){ _container = _arg2; loadCommunicator(_arg1, _container); }; } public static function setContainer(_arg1:Object=null, _arg2:Boolean=true):void{ if (_clip.parent){ _clip.parent.removeChild(_clip); }; if (_arg1 != null){ if ((_arg1 is DisplayObjectContainer)){ _container = _arg1; }; }; if (_arg2){ if ((_container is DisplayObjectContainer)){ DisplayObjectContainer(_container).addChild(_clip); }; }; } private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{ if (_clip != null){ return (_clip); }; if (!MochiServices.isNetworkAvailable()){ return (null); }; if (urlOptions(_arg2).servURL){ _servURL = urlOptions(_arg2).servURL; }; var _local3:String = (_servURL + _services); if (urlOptions(_arg2).servicesURL){ _local3 = urlOptions(_arg2).servicesURL; }; _listenChannelName = (_listenChannelName + ((Math.floor(new Date().time) + "_") + Math.floor((Math.random() * 99999)))); MochiServices.allowDomains(_local3); _clip = new MovieClip(); loadLCBridge(_clip); _loader = new Loader(); _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, detach); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, detach); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); var _local4:URLRequest = new URLRequest(_local3); var _local5:URLVariables = new URLVariables(); _local5.listenLC = _listenChannelName; _local5.mochiad_options = _arg2.loaderInfo.parameters.mochiad_options; _local5.api_version = getVersion(); if (widget){ _local5.widget = true; }; _local4.data = _local5; _loader.load(_local4); _clip.addChild(_loader); _sendChannel = new LocalConnection(); _queue = []; _nextCallbackID = 0; _callbacks = {}; _timer = new Timer(10000, 1); _timer.addEventListener(TimerEvent.TIMER, connectWait); _timer.start(); return (_clip); } private static function detach(_arg1:Event):void{ var _local2:LoaderInfo = LoaderInfo(_arg1.target); _local2.removeEventListener(Event.COMPLETE, detach); _local2.removeEventListener(IOErrorEvent.IO_ERROR, detach); _local2.removeEventListener(Event.COMPLETE, loadLCBridgeComplete); _local2.removeEventListener(IOErrorEvent.IO_ERROR, loadError); } private static function loadLCBridge(_arg1:Object):void{ var _local2:Loader = new Loader(); var _local3:String = (_servURL + _mochiLC); var _local4:URLRequest = new URLRequest(_local3); _local2.contentLoaderInfo.addEventListener(Event.COMPLETE, detach); _local2.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, detach); _local2.contentLoaderInfo.addEventListener(Event.COMPLETE, loadLCBridgeComplete); _local2.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); _local2.load(_local4); _arg1.addChild(_local2); } private static function loadLCBridgeComplete(_arg1:Event):void{ var _local2:Loader = LoaderInfo(_arg1.target).loader; _mochiLocalConnection = MovieClip(_local2.content); listen(); } private static function loadError(_arg1:Object):void{ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load."); MochiServices.disconnect(); MochiServices.onError("IOError"); } public static function connectWait(_arg1:TimerEvent):void{ if (!_connected){ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load. (timeout)"); MochiServices.disconnect(); MochiServices.onError("IOError"); } else { _timer.stop(); _timer.removeEventListener(TimerEvent.TIMER, connectWait); _timer = null; }; } private static function listen():void{ _mochiLocalConnection.connect(_listenChannelName); _clip.handshake = function (_arg1:Object):void{ MochiServices.comChannelName = _arg1.newChannel; }; trace("Waiting for MochiAds services to connect..."); } private static function initComChannels():void{ if (!_connected){ trace("[SERVICES_API] connected!"); _connecting = false; _connected = true; _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"}); _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"registerGame", preserved:_preserved, id:_id, version:getVersion(), parentURL:_container.loaderInfo.loaderURL}); _clip.onReceive = onReceive; _clip.onEvent = onEvent; _clip.onError = function ():void{ MochiServices.onError("IOError"); }; while (_queue.length > 0) { _mochiLocalConnection.send(_sendChannelName, "onReceive", _queue.shift()); }; }; } private static function onReceive(_arg1:Object):void{ var methodName:String; var pkg = _arg1; var cb:String = pkg.callbackID; var cblst:Object = _callbacks[cb]; if (!cblst){ return; }; var method:* = cblst.callbackMethod; methodName = ""; var obj:Object = cblst.callbackObject; if (((obj) && ((typeof(method) == "string")))){ methodName = method; if (obj[method] != null){ method = obj[method]; } else { trace((("Error: Method " + method) + " does not exist.")); }; }; if (method != undefined){ try { method.apply(obj, pkg.args); } catch(error:Error) { trace(((("Error invoking callback method '" + methodName) + "': ") + error.toString())); }; } else { if (obj != null){ try { obj(pkg.args); } catch(error:Error) { trace(("Error invoking method on object: " + error.toString())); }; }; }; delete _callbacks[cb]; } private static function onEvent(_arg1:Object):void{ var _local2:String = _arg1.target; var _local3:String = _arg1.event; switch (_local2){ case "services": MochiServices.triggerEvent(_arg1.event, _arg1.args); break; case "events": MochiEvents.triggerEvent(_arg1.event, _arg1.args); break; case "coins": MochiCoins.triggerEvent(_arg1.event, _arg1.args); break; case "social": MochiSocial.triggerEvent(_arg1.event, _arg1.args); break; }; } private static function flush(_arg1:Boolean):void{ var _local2:Object; var _local3:Object; if (((_clip) && (_queue))){ while (_queue.length > 0) { _local2 = _queue.shift(); _local3 = null; if (_local2 != null){ if (_local2.callbackID != null){ _local3 = _callbacks[_local2.callbackID]; }; delete _callbacks[_local2.callbackID]; if (((_arg1) && (!((_local3 == null))))){ handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod); }; }; }; }; } private static function handleError(_arg1:Object, _arg2:Object, _arg3:Object):void{ var args = _arg1; var callbackObject = _arg2; var callbackMethod = _arg3; if (args != null){ if (args.onError != null){ args.onError.apply(null, ["NotConnected"]); }; if (((!((args.options == null))) && (!((args.options.onError == null))))){ args.options.onError.apply(null, ["NotConnected"]); }; }; if (callbackMethod != null){ args = {}; args.error = true; args.errorCode = "NotConnected"; if (((!((callbackObject == null))) && ((callbackMethod is String)))){ try { var _local5 = callbackObject; _local5[callbackMethod](args); } catch(error:Error) { }; } else { if (callbackMethod != null){ try { callbackMethod.apply(args); } catch(error:Error) { }; }; }; }; } public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{ if (_connected){ _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_nextCallbackID}); } else { if ((((_clip == null)) || (!(_connecting)))){ trace(("Error: MochiServices not connected. Please call MochiServices.connect(). Function: " + _arg1)); handleError(_arg2, _arg3, _arg4); flush(true); return; }; _queue.push({methodName:_arg1, args:_arg2, callbackID:_nextCallbackID}); }; if (_clip != null){ if (_callbacks != null){ _callbacks[_nextCallbackID] = {callbackObject:_arg3, callbackMethod:_arg4}; _nextCallbackID++; }; }; } private static function urlOptions(_arg1:Object):Object{ var _local3:String; var _local4:Array; var _local5:Number; var _local6:Array; var _local2:Object = {}; if (_arg1.stage){ _local3 = _arg1.stage.loaderInfo.parameters.mochiad_options; } else { _local3 = _arg1.loaderInfo.parameters.mochiad_options; }; if (_local3){ _local4 = _local3.split("&"); _local5 = 0; while (_local5 < _local4.length) { _local6 = _local4[_local5].split("="); _local2[unescape(_local6[0])] = unescape(_local6[1]); _local5++; }; }; return (_local2); } public static function addLinkEvent(_arg1:String, _arg2:String, _arg3:DisplayObjectContainer, _arg4:Function=null):void{ var avm1Click:DisplayObject; var x:String; var req:URLRequest; var loader:Loader; var setURL:Function; var err:Function; var complete:Function; var url = _arg1; var burl = _arg2; var btn = _arg3; var onClick = _arg4; var vars:Object = new Object(); vars["mav"] = getVersion(); vars["swfv"] = "9"; vars["swfurl"] = btn.loaderInfo.loaderURL; vars["fv"] = Capabilities.version; vars["os"] = Capabilities.os; vars["lang"] = Capabilities.language; vars["scres"] = ((Capabilities.screenResolutionX + "x") + Capabilities.screenResolutionY); var s = "?"; var i:Number = 0; for (x in vars) { if (i != 0){ s = (s + "&"); }; i = (i + 1); s = (((s + x) + "=") + escape(vars[x])); }; req = new URLRequest("http://link.mochiads.com/linkping.swf"); loader = new Loader(); setURL = function (_arg1:String):void{ if (avm1Click){ btn.removeChild(avm1Click); }; avm1Click = clickMovie(_arg1, onClick); var _local2:Rectangle = btn.getBounds(btn); btn.addChild(avm1Click); avm1Click.x = _local2.x; avm1Click.y = _local2.y; avm1Click.scaleX = (0.01 * _local2.width); avm1Click.scaleY = (0.01 * _local2.height); }; err = function (_arg1:Object):void{ netup = false; _arg1.target.removeEventListener(_arg1.type, arguments.callee); setURL(burl); }; complete = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; if (netup){ setURL((url + s)); } else { setURL(burl); }; if (!((netupAttempted) || (_connected))){ netupAttempted = true; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, err); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.load(req); }; } private static function clickMovie(_arg1:String, _arg2:Function):MovieClip{ var _local4:int; var _local14:Loader; var _local3:Array = [150, 21, 0, 7, 1, 0, 0, 0, 0, 98, 116, 110, 0, 7, 2, 0, 0, 0, 0, 116, 104, 105, 115, 0, 28, 150, 22, 0, 0, 99, 114, 101, 97, 116, 101, 69, 109, 112, 116, 121, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 82, 135, 1, 0, 0, 23, 150, 13, 0, 4, 0, 0, 111, 110, 82, 101, 108, 101, 97, 115, 101, 0, 142, 8, 0, 0, 0, 0, 2, 42, 0, 114, 0, 150, 17, 0, 0, 32, 0, 7, 1, 0, 0, 0, 8, 0, 0, 115, 112, 108, 105, 116, 0, 82, 135, 1, 0, 1, 23, 150, 7, 0, 4, 1, 7, 0, 0, 0, 0, 78, 150, 8, 0, 0, 95, 98, 108, 97, 110, 107, 0, 154, 1, 0, 0, 150, 7, 0, 0, 99, 108, 105, 99, 107, 0, 150, 7, 0, 4, 1, 7, 1, 0, 0, 0, 78, 150, 27, 0, 7, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 76, 111, 99, 97, 108, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 0, 64, 150, 6, 0, 0, 115, 101, 110, 100, 0, 82, 79, 150, 15, 0, 4, 0, 0, 95, 97, 108, 112, 104, 97, 0, 7, 0, 0, 0, 0, 79, 150, 23, 0, 7, 0xFF, 0, 0xFF, 0, 7, 1, 0, 0, 0, 4, 0, 0, 98, 101, 103, 105, 110, 70, 105, 108, 108, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 109, 111, 118, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 16, 0, 7, 0, 0, 0, 0, 4, 0, 0, 101, 110, 100, 70, 105, 108, 108, 0, 82, 23]; var _local5:Array = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3]; var _local6:Array = [0, 64, 0, 0, 0]; var _local7:MovieClip = new MovieClip(); var _local8:LocalConnection = new LocalConnection(); var _local9:String = ((("_click_" + Math.floor((Math.random() * 999999))) + "_") + Math.floor(new Date().time)); _local8 = new LocalConnection(); _local7.lc = _local8; _local7.click = _arg2; _local8.client = _local7; _local8.connect(_local9); var _local10:ByteArray = new ByteArray(); var _local11:ByteArray = new ByteArray(); _local11.endian = Endian.LITTLE_ENDIAN; _local11.writeShort(1); _local11.writeUTFBytes(((_arg1 + " ") + _local9)); _local11.writeByte(0); var _local12:uint = ((_local3.length + _local11.length) + 4); var _local13:uint = (_local12 + 35); _local10.endian = Endian.LITTLE_ENDIAN; _local10.writeUTFBytes("FWS"); _local10.writeByte(8); _local10.writeUnsignedInt(_local13); for each (_local4 in _local5) { _local10.writeByte(_local4); }; _local10.writeUnsignedInt(_local12); _local10.writeByte(136); _local10.writeShort(_local11.length); _local10.writeBytes(_local11); for each (_local4 in _local3) { _local10.writeByte(_local4); }; for each (_local4 in _local6) { _local10.writeByte(_local4); }; _local14 = new Loader(); _local14.loadBytes(_local10); _local7.addChild(_local14); return (_local7); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } } }//package mochi.as3
Section 122
//MochiSocial (mochi.as3.MochiSocial) package mochi.as3 { public class MochiSocial { public static const LOGGED_IN:String = "LoggedIn"; public static const LOGGED_OUT:String = "LoggedOut"; public static const LOGIN_SHOW:String = "LoginShow"; public static const LOGIN_HIDE:String = "LoginHide"; public static const LOGIN_SHOWN:String = "LoginShown"; public static const PROFILE_SHOW:String = "ProfileShow"; public static const PROFILE_HIDE:String = "ProfileHide"; public static const PROPERTIES_SAVED:String = "PropertySaved"; public static const WIDGET_LOADED:String = "WidgetLoaded"; public static const FRIEND_LIST:String = "FriendsList"; public static const PROFILE_DATA:String = "ProfileData"; public static const GAMEPLAY_DATA:String = "GameplayData"; public static const ACTION_CANCELED:String = "onCancel"; public static const ACTION_COMPLETE:String = "onComplete"; public static const USER_INFO:String = "UserInfo"; public static const ERROR:String = "Error"; public static const IO_ERROR:String = "IOError"; public static const NO_USER:String = "NoUser"; public static const PROPERTIES_SIZE:String = "PropertiesSize"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public static var _user_info:Object = null; public static function getVersion():String{ return (MochiServices.getVersion()); } public static function getAPIURL():String{ if (!_user_info){ return (null); }; return (_user_info.api_url); } public static function getAPIToken():String{ if (!_user_info){ return (null); }; return (_user_info.api_token); } public static function showLoginWidget(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("social_showLoginWidget", {options:_arg1}); } public static function hideLoginWidget():void{ MochiServices.send("social_hideLoginWidget"); } public static function requestLogin(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("social_requestLogin", _arg1); } public static function saveUserProperties(_arg1:Object):void{ MochiServices.send("social_saveUserProperties", _arg1); } public static function getFriendsList(_arg1:Object=null):void{ MochiServices.send("social_getFriendsList", _arg1); } public static function postToStream(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("social_postToStream", _arg1); } public static function inviteFriends(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("social_inviteFriends", _arg1); } public static function requestFan(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("social_requestFan", _arg1); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function get loggedIn():Boolean{ return (!((_user_info == null))); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } MochiSocial.addEventListener(MochiSocial.LOGGED_IN, function (_arg1:Object):void{ _user_info = _arg1; }); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, function (_arg1:Object):void{ _user_info = null; }); } }//package mochi.as3
Section 123
//MochiUserData (mochi.as3.MochiUserData) package mochi.as3 { import flash.events.*; import flash.utils.*; import flash.net.*; public class MochiUserData extends EventDispatcher { public var _loader:URLLoader; public var key:String;// = null public var data;// = null public var error:Event;// = null public var operation:String;// = null public var callback:Function;// = null public function MochiUserData(_arg1:String="", _arg2:Function=null){ this.key = _arg1; this.callback = _arg2; } public function serialize(_arg1):ByteArray{ var _local2:ByteArray = new ByteArray(); _local2.objectEncoding = ObjectEncoding.AMF3; _local2.writeObject(_arg1); _local2.compress(); return (_local2); } public function deserialize(_arg1:ByteArray){ _arg1.objectEncoding = ObjectEncoding.AMF3; _arg1.uncompress(); return (_arg1.readObject()); } public function request(_arg1:String, _arg2:ByteArray):void{ var _operation = _arg1; var _data = _arg2; operation = _operation; var api_url:String = MochiSocial.getAPIURL(); var api_token:String = MochiSocial.getAPIToken(); if ((((api_url == null)) || ((api_token == null)))){ errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, "not logged in")); return; }; _loader = new URLLoader(); var args:URLVariables = new URLVariables(); args.op = _operation; args.key = key; var req:URLRequest = new URLRequest((((MochiSocial.getAPIURL() + "/") + "MochiUserData?") + args.toString())); req.method = URLRequestMethod.POST; req.contentType = "application/x-mochi-userdata"; req.requestHeaders = [new URLRequestHeader("x-mochi-services-version", MochiServices.getVersion()), new URLRequestHeader("x-mochi-api-token", api_token)]; req.data = _data; _loader.dataFormat = URLLoaderDataFormat.BINARY; _loader.addEventListener(Event.COMPLETE, completeHandler); _loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); _loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); try { _loader.load(req); } catch(e:SecurityError) { errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + e.toString()))); }; } public function completeHandler(_arg1:Event):void{ var event = _arg1; try { if (_loader.data.length){ data = deserialize(_loader.data); } else { data = null; }; } catch(e:Error) { errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("deserialize error: " + e.toString()))); return; }; if (callback != null){ performCallback(); } else { dispatchEvent(event); }; close(); } public function errorHandler(_arg1:IOErrorEvent):void{ data = null; error = _arg1; if (callback != null){ performCallback(); } else { dispatchEvent(_arg1); }; close(); } public function securityErrorHandler(_arg1:SecurityErrorEvent):void{ errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + _arg1.toString()))); } public function performCallback():void{ try { callback(this); } catch(e:Error) { trace(("[MochiUserData] exception during callback: " + e)); }; } public function close():void{ if (_loader){ _loader.removeEventListener(Event.COMPLETE, completeHandler); _loader.removeEventListener(IOErrorEvent.IO_ERROR, errorHandler); _loader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); _loader.close(); _loader = null; }; error = null; callback = null; } public function getEvent():void{ request("get", serialize(null)); } public function putEvent(_arg1):void{ request("put", serialize(_arg1)); } override public function toString():String{ return ((((((((("[MochiUserData operation=" + operation) + " key=\"") + key) + "\" data=") + data) + " error=\"") + error) + "\"]")); } public static function get(_arg1:String, _arg2:Function):void{ var _local3:MochiUserData = new MochiUserData(_arg1, _arg2); _local3.getEvent(); } public static function put(_arg1:String, _arg2, _arg3:Function):void{ var _local4:MochiUserData = new MochiUserData(_arg1, _arg3); _local4.putEvent(_arg2); } } }//package mochi.as3
Section 124
//AchieveScreen (navigation.AchieveScreen) package navigation { import flash.display.*; import flash.events.*; import utils.*; import flash.text.*; public class AchieveScreen extends MovieClip { public var percentAchieved:TextField; public var backBut:SimpleButton; public var tablesPerfected:TextField; public var tablesUnlocked:TextField; private var amentList:Array; private var totalAments:int; public function AchieveScreen(_arg1){ addFrameScript(0, frame1); this.backBut.addEventListener(MouseEvent.CLICK, backButHit); totalAments = Achieve.achieveDATA.length; amentList = new Array(); addAments(); var _local2:* = Math.floor(_arg1); if (_local2 < 0){ _local2 = 0; }; tablesUnlocked.text = String((_local2 + "/18")); var _local3:* = Achieve.testTablesPerfected(); tablesPerfected.text = String((_local3 + "/18")); } public function backButHit(_arg1:MouseEvent){ Main.instance.addTitleScreen(1); deleteMe(); } public function addAments(){ var _local5:AmentTag; var _local1:* = 1; var _local2:* = 0; var _local3:int = (totalAments - 1); while (_local3 >= 0) { _local5 = new AmentTag(); _local5.y = (63 + (Math.floor((_local3 / _local1)) * (_local5.height * 1))); _local5.x = (182 + ((_local3 - (Math.floor((_local3 / _local1)) * _local1)) * (_local5.width * 1.1))); _local5.achieveTitle.text = Achieve.achieveDATA[_local3][0]; _local5.achieveDesc.text = Achieve.achieveDATA[_local3][1]; _local5.icon.gotoAndStop((1 + Main.instance.amentsList[_local3])); if (Main.instance.amentsList[_local3] == 1){ _local2++; }; this.addChild(_local5); amentList.push(_local5); _local3--; }; var _local4:int = (100 * (_local2 / totalAments)); percentAchieved.text = String((_local4 + "%")); } public function deleteMe(){ parent.removeChild(this); } function frame1(){ stop(); } } }//package navigation
Section 125
//Ament (navigation.Ament) package navigation { import flash.display.*; import flash.events.*; import utils.*; public class Ament extends MovieClip { public var aClip:MovieClip; private var myIndex:int; private var myParent:Main; public function Ament(_arg1, _arg2, _arg3){ addFrameScript(116, frame117); this.addEventListener(Event.ENTER_FRAME, update); myIndex = _arg1; myParent = _arg3; this.y = (_arg2 * 50); aClip.aText.text = String(Achieve.achieveDATA[_arg1][0]); } public function update(_arg1:Event){ if (this.currentFrame == 110){ deleteMe(); }; } public function deleteMe(){ this.removeEventListener(Event.ENTER_FRAME, update); myParent.amentGone(); parent.removeChild(this); } function frame117(){ stop(); } } }//package navigation
Section 126
//AmentTag (navigation.AmentTag) package navigation { import flash.display.*; import flash.text.*; public dynamic class AmentTag extends MovieClip { public var achieveTitle:TextField; public var icon:MovieClip; public var achieveDesc:TextField; } }//package navigation
Section 127
//Board (navigation.Board) package navigation { import flash.display.*; import flash.events.*; import game.*; import utils.*; public class Board extends MovieClip { public var boardFace:MovieClip; private var levelBatter:int; private var levelBowler:int; private var levelSkills:int; private var lastTime:int; private var boardY:int; private var ballChosen:int; private var ballHovered:int; private var clicked:int; private var boardBallSeqList:Array; private var boardCaddyList:Array; public function Board(_arg1:int, _arg2:int){ levelSkills = 1; levelBatter = _arg1; levelBowler = _arg2; boardY = 0; ballHovered = 0; clicked = 0; addEventListener(Event.ENTER_FRAME, moveMe); this.boardFace.fixBatBut.addEventListener(MouseEvent.CLICK, fixBat); this.boardFace.moreBatBut.addEventListener(MouseEvent.CLICK, moreBat); this.boardFace.moreBowlBut.addEventListener(MouseEvent.CLICK, moreBowl); this.boardFace.doneBut.addEventListener(MouseEvent.CLICK, doneStuff); boardBallSeqList = Main.instance.ballList; boardCaddyList = Main.instance.caddyList; drawBalls(); drawClubs(); boardFace.ballName.text = String((("Nice work out there laddy, fancy a G&T ?" + "\n") + "I see there's some fancy new balls to use..")); } public function moveMe(_arg1:Event){ testBalls(); testClubs(); } public function testClubs(){ var _local1:int; var _local2:*; while (_local1 < 7) { _local2 = boardFace[("cb" + _local1)]; if (((_local2.hitTestPoint(mouseX, mouseY, true)) && ((boardCaddyList[_local1] == 0)))){ ballHovered = _local1; if ((Main.instance.cash + 1) < Arrays.clubDATA[_local1][4]){ boardFace.ballName.text = String((("Nice but at a stiff " + Arrays.clubDATA[_local1][4]) + ", your type can't afford that sort of thing just yet...")); } else { boardFace.ballName.text = String((((("Ooo - a " + Arrays.clubDATA[_local1][0]) + " and a snap at just ") + Arrays.clubDATA[_local1][4]) + " nicker.")); }; if (Main.instance.clicked == 1){ if (Main.instance.cash > (Arrays.clubDATA[_local1][4] - 1)){ Main.instance.tableList[0].newParticles(0, _local2.x, _local2.y, InstantParticle.TYPE_BLUE_OUT, null); boardCaddyList[_local1] = 1; _local2.alpha = 0.2; boardFace[("c" + _local1)].visible = true; Main.instance.cash = (Main.instance.cash - Arrays.clubDATA[_local1][4]); boardFace.ballName.text = String((("Congats - you just bought your first" + Arrays.clubDATA[_local1][0]) + ", looks tasty too !")); } else { boardFace.ballName.text = String("You don't have the mullah for that one I'm afraid..."); }; }; }; _local1++; }; } public function testBalls(){ var _local2:*; var _local3:int; var _local4:*; var _local5:Boolean; var _local6:int; var _local7:*; trace(("score = " + Main.instance.cash)); boardFace.score.text = String(Main.instance.score); boardFace.cash.text = String(Main.instance.cash); boardFace.batter.text = String(levelBatter); boardFace.bowler.text = String(levelBowler); boardFace.skills.text = String(levelSkills); clicked = Main.instance.clicked; var _local1 = 6; while (_local1 >= 2) { _local2 = boardFace[("b" + _local1)]; if (((((_local2.hitTestPoint(mouseX, mouseY, true)) && (_local2.visible))) && ((ballChosen == 0)))){ ballHovered = _local1; boardFace.ballName.text = String((Arrays.ballNameDATA[ballHovered][0] + " Ball ! - sounds good, why not give it a go eh ?")); if (clicked == 1){ _local3 = 2; while (_local3 >= 0) { if (boardBallSeqList[_local3] == _local1){ boardBallSeqList[_local3] = 1; }; _local3--; }; ballChosen = _local1; }; }; _local1--; }; if (ballChosen != 0){ _local4 = boardFace[("b" + ballChosen)]; _local4.x = mouseX; _local4.y = mouseY; if (clicked == 0){ _local5 = false; _local6 = 2; while (_local6 >= 0) { _local7 = boardFace[("bs" + _local6)]; if (_local7.hitTestPoint(_local4.x, _local4.y, true)){ _local4.x = _local7.x; _local4.y = _local7.y; if (boardBallSeqList[_local6] != 1){ boardFace[("b" + boardBallSeqList[_local6])].x = boardFace[("bh" + boardBallSeqList[_local6])].x; boardFace[("b" + boardBallSeqList[_local6])].y = boardFace[("bh" + boardBallSeqList[_local6])].y; boardFace.ballName.text = String("Wonderful - can't wait to try it out on those bloody zommers eh ? Mwa-ha-ha.."); }; boardBallSeqList[_local6] = ballChosen; ballChosen = 0; _local5 = true; }; _local6--; }; if (!_local5){ _local4.x = boardFace[("bh" + ballChosen)].x; _local4.y = boardFace[("bh" + ballChosen)].y; ballChosen = 0; }; }; }; } public function drawBalls(){ var _local3:*; var _local1:int; while (_local1 < (boardBallSeqList.length - 1)) { ballChosen = boardBallSeqList[_local1]; if (ballChosen != 1){ boardFace[("b" + ballChosen)].x = boardFace[("bs" + _local1)].x; boardFace[("b" + ballChosen)].y = boardFace[("bs" + _local1)].y; }; boardFace[("bs" + _local1)].gotoAndStop(1); _local1++; }; boardFace[("bs" + 3)].gotoAndStop(1); var _local2 = 6; while (_local2 >= 2) { _local3 = boardFace[("b" + _local2)]; _local3.gotoAndStop(_local2); boardFace[("bh" + _local2)].BallNew.visible = false; if (_local2 > Arrays.levelDATA[Main.instance.level][1]){ _local3.visible = false; } else { if ((_local2 - 1) < Arrays.levelDATA[Main.instance.level][1]){ boardFace[("bh" + _local2)].BallNew.visible = true; }; }; _local2--; }; ballChosen = 0; } public function drawClubs(){ var _local1:int; while (_local1 < boardCaddyList.length) { boardFace[("c" + _local1)].gotoAndStop((_local1 + 1)); boardFace[("cb" + _local1)].gotoAndStop((_local1 + 1)); boardFace[("c" + _local1)].clubInfo.visible = false; boardFace[("cb" + _local1)].clubInfo.info.text = String(Arrays.clubDATA[_local1][5]); boardFace[("cb" + _local1)].clubInfo.cost.text = String(Arrays.clubDATA[_local1][4]); boardFace[("c" + _local1)].clubNum.text = String((_local1 + 1)); boardFace[("cb" + _local1)].clubNum.text = String((_local1 + 1)); if (boardCaddyList[_local1] != 1){ boardFace[("c" + _local1)].visible = false; } else { boardFace[("cb" + _local1)].clubInfo.visible = false; boardFace[("cb" + _local1)].alpha = 0.2; }; _local1++; }; } public function doneStuff(_arg1:MouseEvent){ Main.instance.ballList = boardBallSeqList; Main.instance.caddyList = boardCaddyList; Main.instance.levelUp(); deleteMe(); } public function moreBat(_arg1:MouseEvent){ if ((((levelSkills > 0)) && ((levelBatter < 9)))){ levelSkills = (levelSkills - 1); levelBatter = (levelBatter + 1); }; } public function fixBat(_arg1:MouseEvent){ } public function moreBowl(_arg1:MouseEvent){ if ((((levelSkills > 0)) && ((levelBowler < 9)))){ levelSkills = (levelSkills - 1); levelBowler = (levelBowler + 1); }; } public function deleteMe(){ removeEventListener(Event.ENTER_FRAME, moveMe); parent.removeChild(this); } } }//package navigation
Section 128
//ClubBox (navigation.ClubBox) package navigation { import flash.display.*; import flash.events.*; import game.*; import utils.*; import flash.text.*; public class ClubBox extends MovieClip { public var highlight:MovieClip; public var b0:SimpleButton; public var b1:SimpleButton; public var b2:SimpleButton; public var b3:SimpleButton; public var b4:SimpleButton; public var b5:SimpleButton; public var club:TextField; public var b6:SimpleButton; public var nextBall:MovieClip; private var myTable:Table; public function ClubBox(_arg1){ var _local3:int; var _local4:*; super(); myTable = _arg1; var _local2:* = Main.instance.caddyList; this.b0.addEventListener(MouseEvent.MOUSE_DOWN, b_hit); this.b1.addEventListener(MouseEvent.MOUSE_DOWN, b_hit); this.b2.addEventListener(MouseEvent.MOUSE_DOWN, b_hit); this.b3.addEventListener(MouseEvent.MOUSE_DOWN, b_hit); this.b4.addEventListener(MouseEvent.MOUSE_DOWN, b_hit); this.b5.addEventListener(MouseEvent.MOUSE_DOWN, b_hit); this.b6.addEventListener(MouseEvent.MOUSE_DOWN, b_hit); while (_local3 < 7) { _local4 = this[("b" + _local3)]; if (_local2[_local3] == 0){ _local4.visible = false; }; _local3++; }; club.text = String(("Club: " + Arrays.clubDATA[myTable.clubSelected][0])); highlight.x = (50 + (myTable.clubSelected * 30)); } public function setBallGfk(_arg1){ trace(("-----------------------next Ball is :" + _arg1)); nextBall.gotoAndStop((_arg1 + 1)); } public function b_hit(_arg1:MouseEvent){ trace((("The " + _arg1.target.name) + " button was clicked")); var _local2:Array = new Array(); _local2["b0"] = 0; _local2["b1"] = 1; _local2["b2"] = 2; _local2["b3"] = 3; _local2["b4"] = 4; _local2["b5"] = 5; _local2["b6"] = 6; var _local3:Boolean = myTable.clubSelect(_local2[_arg1.target.name]); trace(((((("CLUB IS " + _local3) + " which is ") + _local2[_arg1.target.name]) + " : ") + Arrays.clubDATA[int(_local2[_arg1.target.name])][0])); if (_local3){ highlight.x = _arg1.target.x; club.text = String(Arrays.clubDATA[int(_local2[_arg1.target.name])][0]); }; } public function deleteMe(){ this.b0.removeEventListener(MouseEvent.MOUSE_DOWN, b_hit); this.b1.removeEventListener(MouseEvent.MOUSE_DOWN, b_hit); this.b2.removeEventListener(MouseEvent.MOUSE_DOWN, b_hit); this.b3.removeEventListener(MouseEvent.MOUSE_DOWN, b_hit); this.b4.removeEventListener(MouseEvent.MOUSE_DOWN, b_hit); this.b5.removeEventListener(MouseEvent.MOUSE_DOWN, b_hit); this.b6.removeEventListener(MouseEvent.MOUSE_DOWN, b_hit); parent.removeChild(this); } } }//package navigation
Section 129
//gameOverScreen (navigation.gameOverScreen) package navigation { import flash.display.*; import flash.events.*; import utils.*; import flash.text.*; public class gameOverScreen extends MovieClip { public var submitBut:SimpleButton; public var playerName:TextField; public var againBut:SimpleButton; public function gameOverScreen(_arg1){ addEventListener(Event.ENTER_FRAME, moveMe); this.submitBut.addEventListener(MouseEvent.CLICK, HighScoreHandler.handleScoreEvent); this.againBut.addEventListener(MouseEvent.CLICK, playAgain); } public function moveMe(_arg1:Event){ } public function playAgain(_arg1:MouseEvent){ deleteMe(); Main.instance.resetGame(); Main.instance.addTitleScreen(1); } public function deleteMe(){ this.submitBut.removeEventListener(MouseEvent.CLICK, HighScoreHandler.handleScoreEvent); this.againBut.removeEventListener(MouseEvent.CLICK, playAgain); removeEventListener(Event.ENTER_FRAME, moveMe); parent.removeChild(this); } } }//package navigation
Section 130
//InGameGui (navigation.InGameGui) package navigation { import flash.display.*; import flash.events.*; import flash.text.*; public class InGameGui extends MovieClip { public var ray:MovieClip; public var prizeMoney:TextField; public var levelPar:TextField; public var playerScore:TextField; public var playerShots:TextField; public var levelName:TextField; public var bar:MovieClip; public var flipper:MovieClip; public var distToHole:TextField; public var playerCash:TextField; public var myClubBox:ClubBox; public function InGameGui(_arg1){ this.ray.gotoAndStop(1); this.flipper.gotoAndStop(1); this.flipper.flipperClip.gotoAndStop(2); myClubBox = new ClubBox(_arg1); myClubBox.y = 412; myClubBox.x = 10; this.addChild(myClubBox); this.bar.cacheAsBitmap = true; } public function moveMe(_arg1:Event){ } public function flip(_arg1){ this.flipper.gotoAndPlay(2); this.flipper.flipperClip.gotoAndStop(_arg1); } public function popMessage(_arg1){ this.ray.gotoAndPlay("pop"); this.ray.rayBub.rayText.text = String(_arg1); } public function stayMessage(_arg1){ this.ray.gotoAndPlay("stay"); this.ray.rayBub.rayText.text = String(_arg1); } public function deleteMe(){ myClubBox.deleteMe(); parent.removeChild(this); } } }//package navigation
Section 131
//LevelSelect (navigation.LevelSelect) package navigation { import flash.display.*; import flash.events.*; import flash.text.*; public class LevelSelect extends MovieClip { public var butStart3:SimpleButton; public var butStart:SimpleButton; public var levelToGo:TextField; public var butStart2:SimpleButton; public var levelName:TextField; public var butStart1:SimpleButton; private var butList:Array; private var rolledOver:int; private var timer:int; private var rollClip:MovieClip; public function LevelSelect(){ butList = []; super(); this.butStart.addEventListener(MouseEvent.CLICK, startButHit); this.butStart1.addEventListener(MouseEvent.CLICK, startButHit1); this.butStart2.addEventListener(MouseEvent.CLICK, startButHit2); this.butStart3.addEventListener(MouseEvent.CLICK, startButHit3); rolledOver = 1; addButtons(); this.levelToGo.text = String(((Main.instance.levelReached + 1) + " /18")); } public function addTables(){ } public function startButHit(_arg1:MouseEvent){ rolledOver = 1; Main.instance.startGame(rolledOver); deleteMe(); } public function startButHit1(_arg1:MouseEvent){ Main.instance.startGame(int(levelToGo.text)); deleteMe(); } public function startButHit2(_arg1:MouseEvent){ Main.instance.startGame(1); deleteMe(); } public function startButHit3(_arg1:MouseEvent){ Main.instance.startGame(2); deleteMe(); } public function moveMe(_arg1:Event){ } public function addButtons(){ } public function deleteMe(){ this.butStart.removeEventListener(MouseEvent.CLICK, startButHit); parent.removeChild(this); } } }//package navigation
Section 132
//levelUpScreen (navigation.levelUpScreen) package navigation { import flash.display.*; import flash.events.*; public class levelUpScreen extends MovieClip { public var levelUpBut:SimpleButton; public function levelUpScreen(){ addEventListener(Event.ENTER_FRAME, moveMe); this.levelUpBut.addEventListener(MouseEvent.CLICK, levelUp); } public function moveMe(_arg1:Event){ } public function levelUp(_arg1:MouseEvent){ Main.instance.addBoard(); deleteMe(); } public function deleteMe(){ this.levelUpBut.removeEventListener(MouseEvent.CLICK, levelUp); removeEventListener(Event.ENTER_FRAME, moveMe); parent.removeChild(this); } } }//package navigation
Section 133
//loadingScreen (navigation.loadingScreen) package navigation { import flash.display.*; import flash.events.*; import flash.text.*; public class loadingScreen extends MovieClip { public var loadingBar:MovieClip; public var cokeLine:MovieClip; public var loadingText:TextField; public function loadingScreen(){ this.addEventListener(Event.ENTER_FRAME, enterFrameListener); } function enterFrameListener(_arg1:Event):void{ var _local2:* = this.loaderInfo.bytesLoaded; var _local3:* = this.loaderInfo.bytesTotal; var _local4:Number = Math.floor(((_local2 * 100) / _local3)); this.cokeLine.pipe.x = (260 * (_local4 / 100)); if (_local2 == _local3){ Main.instance.onCompletelyDownloaded(); deleteMe(); }; } public function deleteMe(){ this.removeEventListener(Event.ENTER_FRAME, enterFrameListener); parent.removeChild(this); } } }//package navigation
Section 134
//MbSplash (navigation.MbSplash) package navigation { import flash.display.*; import flash.events.*; import Plato_fla.*; public class MbSplash extends MovieClip { public var exp:Symbol242_54; public function MbSplash(){ addFrameScript(170, frame171); addEventListener(Event.ENTER_FRAME, moveMe); this.x = (Main.instance.stage.width / 2); this.y = (Main.instance.stage.height / 2); this.x = (700 / 2); this.y = 250; } public function moveMe(_arg1:Event){ if (this.currentFrame == this.totalFrames){ Main.instance.addTitleScreen(1); deleteMe(); }; } public function deleteMe(){ removeEventListener(Event.ENTER_FRAME, moveMe); parent.removeChild(this); } function frame171(){ stop(); } } }//package navigation
Section 135
//NavigationEvent (navigation.NavigationEvent) package navigation { import flash.events.*; public class NavigationEvent extends Event { public static const ANIMATION:String = "animation"; public static const SPLASH:String = "splash"; public static const INFO:String = "info"; public static const PLAY:String = "play"; public static const GAME_OVER:String = "gameover"; public static const LEVEL_COMPLETE:String = "levelComplete"; public static const SUBMIT:String = "submit"; public function NavigationEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function clone():Event{ return (new NavigationEvent(type, bubbles, cancelable)); } override public function toString():String{ return (formatToString("NavigationEvent", "type", "bubbles", "cancelable", "eventPhase")); } } }//package navigation
Section 136
//titleScreen (navigation.titleScreen) package navigation { import flash.display.*; import flash.events.*; import utils.*; import flash.net.*; public class titleScreen extends MovieClip { public var startBut:SimpleButton; public var linkBut:SimpleButton; public var wipeBut:SimpleButton; public var amentBut:SimpleButton; public var editBut:SimpleButton; public function titleScreen(_arg1){ addEventListener(Event.ENTER_FRAME, moveMe); this.startBut.addEventListener(MouseEvent.CLICK, playAgain); this.wipeBut.addEventListener(MouseEvent.CLICK, playAgainWiped); this.amentBut.addEventListener(MouseEvent.CLICK, amentButHit); this.editBut.addEventListener(MouseEvent.CLICK, editTable); this.linkBut.addEventListener(MouseEvent.CLICK, linkButHit); if (Main.instance.levelReached == 0){ wipeBut.visible = false; }; trace("titleAdded"); SoundManager.playSound(("sndZombie" + (1 + JMath.getRand(8)))); } public function moveMe(_arg1:Event){ } public function linkButHit(_arg1:MouseEvent){ var event = _arg1; var url2 = "http://www.mousebreaker.com/?utm_source=distributiongames&utm_medium=zombiegolf&utm_campaign=email"; var request:URLRequest = new URLRequest(url2); try { navigateToURL(request, "_blank"); } catch(e:Error) { trace("Error occurred!"); }; } public function amentButHit(_arg1:MouseEvent){ SoundManager.playSound("sndPop"); Main.instance.addAmentScreen(); deleteMe(); } public function playAgain(_arg1:MouseEvent){ SoundManager.playSound("sndPop"); Main.instance.addLevelSelect(); deleteMe(); } public function playAgainWiped(_arg1:MouseEvent){ Main.instance.resetPlayer(); Main.instance.writeCookie(); SoundManager.playSound("sndPop"); Main.instance.addLevelSelect(); deleteMe(); } public function editTable(_arg1:MouseEvent){ SoundManager.playSound("sndPop"); Main.instance.addLevelEditor(); deleteMe(); } public function deleteMe(){ trace("POINK"); this.startBut.removeEventListener(MouseEvent.CLICK, playAgain); this.editBut.removeEventListener(MouseEvent.CLICK, editTable); this.amentBut.removeEventListener(MouseEvent.CLICK, amentButHit); this.linkBut.removeEventListener(MouseEvent.CLICK, linkButHit); removeEventListener(Event.ENTER_FRAME, moveMe); parent.removeChild(this); } } }//package navigation
Section 137
//eyes_53 (Plato_fla.eyes_53) package Plato_fla { import flash.display.*; public dynamic class eyes_53 extends MovieClip { } }//package Plato_fla
Section 138
//mouse_52 (Plato_fla.mouse_52) package Plato_fla { import flash.display.*; public dynamic class mouse_52 extends MovieClip { } }//package Plato_fla
Section 139
//mouse_55 (Plato_fla.mouse_55) package Plato_fla { import flash.display.*; public dynamic class mouse_55 extends MovieClip { } }//package Plato_fla
Section 140
//Symbol242_54 (Plato_fla.Symbol242_54) package Plato_fla { import flash.display.*; public dynamic class Symbol242_54 extends MovieClip { public function Symbol242_54(){ addFrameScript(22, frame23); } function frame23(){ stop(); } } }//package Plato_fla
Section 141
//Achieve (utils.Achieve) package utils { import navigation.*; public class Achieve { public static const A_FIRST_KILL:int = 0; public static const A_BIRDIE:int = 1; public static const A_EAGLE:int = 2; public static const A_HEAD_OFF:int = 3; public static const A_2_HEADS:int = 4; public static const A_HEAD_SUNK:int = 5; public static const A_DECAPITATE_CELEBRITY:int = 6; public static const A_BOSS_WITH_BAD_CLUB:int = 7; public static const A_HOLE_IN_ONE:int = 8; public static const A_NO_BUNKING:int = 9; public static const A_BOGEY:int = 10; public static const A_FINISHED:int = 11; public static const achieveDATA:Array = new Array(["FIRST_KILL", "Kill somebody - they're already dead mind.."], ["BIRDIE", "Sink a ball when 1 under par"], ["EAGLE", "Sink a ball when 2 under par"], ["MR DECAPITATOR", "Knock someone's block off"], ["2 HEADS R BETTER THAN 1", "Knock 2 heads off in the same shot"], ["IT'S DARK IN HERE", "Sink a zombie head in the hole"], ["AUTOGRAPH HUNTER", "Decapitate a celebrity golfer"], ["GO POSTAL", "Kill the boss with a shot from a low power club"], ["THE POLO", "Get a Hole in One"], ["NO BUNKING OFF", "Finish a bunker level without waking up a bunkerzom"], ["THE BOGEYMAN", "Sink a ball at one over par"], ["MASTERS OF HORROR", "Complete all 18 holes"]); public static function testAchieve(_arg1){ var _local2:* = Main.instance.amentsList; if (_local2[_arg1] == 0){ trace((" I HAVENT DONE THAT YET !" + _arg1)); Main.instance.addAment(_arg1); Main.instance.amentsList[_arg1] = 1; } else { trace(" I DONE THAT THING ALREADY !"); }; } public static function testLevelAchieve(_arg1){ var _local2:* = Main.instance.amentsList[12]; if (_local2[_arg1] == 0){ trace((" I HAVENT DONE THAT YET !" + _arg1)); _local2[_arg1] = 1; Main.instance.addAment(1); } else { trace(" I DONE THAT LEVEL WELL ALREADY !"); }; testTablesPerfected(); } public static function testTablesPerfected(){ var _local1:int; var _local2:* = Main.instance.amentsList[12]; var _local3:int; while (_local3 <= (_local2.length - 1)) { if (_local2[_local3] != 0){ _local1++; }; _local3++; }; trace(("TABLES DONE PERFECTLY ====================================== " + _local1)); return (_local1); } } }//package utils
Section 142
//DepthSortedSprite (utils.DepthSortedSprite) package utils { import flash.display.*; public class DepthSortedSprite extends Sprite { public function sortChildren():void{ var _local2:DisplayObject; var _local3:DisplayObject; var _local1:uint; while (_local1 < (numChildren - 1)) { _local2 = this.getChildAt(_local1); _local3 = this.getChildAt((_local1 + 1)); if ((((_local2.y > _local3.y)) && ((_local2.alpha == 1)))){ this.swapChildrenAt(_local1, (_local1 + 1)); }; _local1++; }; } public function sortCompletely():void{ var _local1:Boolean; var _local2:uint; var _local3:DisplayObject; var _local4:DisplayObject; trace(("sortCompletely numChildren = " + numChildren)); do { _local1 = false; _local2 = 0; while (_local2 < (numChildren - 1)) { _local3 = this.getChildAt(_local2); _local4 = this.getChildAt((_local2 + 1)); if (_local3.y > _local4.y){ _local1 = true; this.swapChildrenAt(_local2, (_local2 + 1)); }; _local2++; }; } while (_local1); } } }//package utils
Section 143
//EditBall (utils.EditBall) package utils { import flash.display.*; public dynamic class EditBall extends MovieClip { } }//package utils
Section 144
//EditBumper (utils.EditBumper) package utils { import flash.display.*; public dynamic class EditBumper extends MovieClip { } }//package utils
Section 145
//EditCannon (utils.EditCannon) package utils { import flash.display.*; public dynamic class EditCannon extends MovieClip { public function EditCannon(){ addFrameScript(0, frame1, 1, frame2, 2, frame3); } function frame1(){ stop(); } function frame2(){ stop(); } function frame3(){ stop(); } } }//package utils
Section 146
//EditMisc (utils.EditMisc) package utils { import flash.display.*; public dynamic class EditMisc extends MovieClip { public var miscLimit:MovieClip; } }//package utils
Section 147
//EditPlayer (utils.EditPlayer) package utils { import flash.display.*; public dynamic class EditPlayer extends MovieClip { } }//package utils
Section 148
//EditRect (utils.EditRect) package utils { import flash.display.*; public dynamic class EditRect extends MovieClip { public function EditRect(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9); } function frame1(){ stop(); } function frame2(){ stop(); } function frame3(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame6(){ stop(); } function frame7(){ stop(); } function frame8(){ stop(); } function frame9(){ stop(); } } }//package utils
Section 149
//HighScoreHandler (utils.HighScoreHandler) package utils { import flash.events.*; import flash.net.*; public class HighScoreHandler { public static function handleScoreEvent(_arg1:MouseEvent){ var _local2:URLRequest = new URLRequest("highscores_zombiegolf.php?"); var _local3:URLLoader = new URLLoader(); var _local4:URLVariables = new URLVariables(); _local3.addEventListener(Event.COMPLETE, handleLoadSuccessful); _local3.addEventListener(IOErrorEvent.IO_ERROR, handleLoadError); _local4.score = Main.instance.score; _local4.playerName = Main.instance.myGameOverScreen.playerName.text; Main.instance.myGameOverScreen.submitBut.visible = false; _local2.method = URLRequestMethod.POST; _local2.data = _local4; _local3.load(_local2); } public static function handleLoadSuccessful(_arg1:Event):void{ trace("Message sent."); } public static function handleLoadError(_arg1:IOErrorEvent):void{ trace("Message failed."); } } }//package utils
Section 150
//JMath (utils.JMath) package utils { public class JMath { public function JMath(){ trace("init"); } public function rangeTest(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int){ if ((((Math.abs((_arg1 - _arg3)) < _arg5)) && ((Math.abs((_arg2 - _arg4)) < _arg5)))){ return (true); }; return (false); } public static function collCheck(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int, _arg9:int){ var _local10:* = (_arg2 - _arg1); var _local11:* = (_arg4 - _arg3); var _local12:* = (_arg6 - _arg5); var _local13:* = (_arg8 - _arg7); var _local14:* = (((-(_local11) * (_arg1 - _arg5)) + (_local10 * (_arg3 - _arg7))) / ((-(_local12) * _local11) + (_local10 * _local13))); var _local15:* = (((_local12 * (_arg3 - _arg7)) - (_local13 * (_arg1 - _arg5))) / ((-(_local12) * _local11) + (_local10 * _local13))); var _local16:* = -1; if ((((((((_local14 > 0)) && ((_local14 < 1)))) && ((_local15 > 0)))) && ((_local15 < 1)))){ _local16 = _local15; }; return (_local16); } public static function testInterval(_arg1:int, _arg2:int){ var _local3:* = false; if (Math.floor((_arg1 / _arg2)) == (_arg1 / _arg2)){ _local3 = true; }; return (_local3); } public static function getLimit(_arg1:int, _arg2:int){ var _local3:* = _arg1; if (_arg1 > _arg2){ _local3 = _arg2; }; return (_local3); } public static function getX(_arg1:int){ var _local2:* = (_arg1 * (Math.PI / 180)); return (Math.sin(_local2)); } public static function getY(_arg1:int){ var _local2:* = (_arg1 * (Math.PI / 180)); return (-(Math.cos(_local2))); } public static function getAngle(_arg1:int, _arg2:int, _arg3:int, _arg4:int){ var _local5:* = Math.sqrt((((_arg1 - _arg3) * (_arg1 - _arg3)) + ((_arg2 - _arg4) * (_arg2 - _arg4)))); var _local6:* = ((180 / Math.PI) * Math.acos(((_arg2 - _arg4) / _local5))); if (_arg1 > _arg3){ _local6 = (360 - ((180 / Math.PI) * Math.acos(((_arg2 - _arg4) / _local5)))); }; return (_local6); } public static function getHyp(_arg1:int, _arg2:int, _arg3:int, _arg4:int){ var _local5:* = Math.sqrt((((_arg1 - _arg3) * (_arg1 - _arg3)) + ((_arg2 - _arg4) * (_arg2 - _arg4)))); return (_local5); } public static function getRand(_arg1){ var _local2:* = Math.floor((Math.random() * _arg1)); return (_local2); } } }//package utils
Section 151
//levelEditor (utils.levelEditor) package utils { import Box2D.Common.Math.*; import flash.display.*; import flash.events.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import game.*; public class levelEditor extends MovieClip { public var tableBg:TableBg; public var editPanel:MovieClip; public var myTableDestroy:TableDestroy; public var outputText:String;// = "" public var editList:Array; public var outputList:Array; public var dragClip:MovieClip;// = null public var selectClip:MovieClip;// = null public var worldBuilt:Boolean;// = false public var offsetX;// = 0 public var offsetY;// = 0 public var playType:int;// = 0 public var loadLevelArrayIndex:int;// = 0 public function levelEditor(){ editList = []; outputList = []; super(); addEventListener(Event.ENTER_FRAME, update); this.editPanel.ballBut.addEventListener(MouseEvent.CLICK, clickAddBall); this.editPanel.rectBut.addEventListener(MouseEvent.CLICK, clickAddRect); this.editPanel.bumperBut.addEventListener(MouseEvent.CLICK, clickAddBumper); this.editPanel.cannonBut.addEventListener(MouseEvent.CLICK, clickAddCannon); this.editPanel.miscBut.addEventListener(MouseEvent.CLICK, clickAddMisc); this.editPanel.changeTypeBut.addEventListener(MouseEvent.CLICK, clickChangeType); this.editPanel.changeLevelFromArrayBut.addEventListener(MouseEvent.CLICK, changeLevelFromArrayButHit); this.editPanel.loadLevelFromArrayBut.addEventListener(MouseEvent.CLICK, loadLevelFromArrayButHit); this.editPanel.bgBut.addEventListener(MouseEvent.CLICK, clickChangeBg); this.editPanel.playTypeBut.addEventListener(MouseEvent.CLICK, clickChangePlayType); this.editPanel.textBut.addEventListener(MouseEvent.CLICK, generateText); this.editPanel.rotBut.addEventListener(MouseEvent.CLICK, rotObject); this.editPanel.scaleDownXBut.addEventListener(MouseEvent.CLICK, scaleDownObjectX); this.editPanel.scaleUpXBut.addEventListener(MouseEvent.CLICK, scaleUpObjectX); this.editPanel.scaleDownYBut.addEventListener(MouseEvent.CLICK, scaleDownObjectY); this.editPanel.scaleUpYBut.addEventListener(MouseEvent.CLICK, scaleUpObjectY); this.editPanel.wipeBut.addEventListener(MouseEvent.CLICK, wipeEdit); this.editPanel.wipeObjectBut.addEventListener(MouseEvent.CLICK, wipeObject); this.editPanel.cloneObjectBut.addEventListener(MouseEvent.CLICK, cloneObject); this.editPanel.buildBut.addEventListener(MouseEvent.CLICK, buildWorld); this.editPanel.buildFromCodeBut.addEventListener(MouseEvent.CLICK, buildWorldFromCode); this.editPanel.makeEditBut.addEventListener(MouseEvent.CLICK, makeEditTable); this.editPanel.makeDefaultTableBut.addEventListener(MouseEvent.CLICK, makeDefaultTableHit); this.editPanel.scrollLeftBut.addEventListener(MouseEvent.CLICK, scrollLeftButHit); this.editPanel.scrollRightBut.addEventListener(MouseEvent.CLICK, scrollRightButHit); tableBg.gotoAndStop(1); addPlayer(150, 150, 0, 1, 1); this.editPanel.loadLevelText.text = String(loadLevelArrayIndex); this.editPanel.playTypeText.text = String(Arrays.playTypeDATA[playType]); makeDefaultTable(); } public function update(_arg1:Event){ var _local4:*; var _local2:* = this.stage.mouseX; var _local3:* = this.stage.mouseY; if (!worldBuilt){ if (selectClip != null){ this.editPanel.selectPosition.text = String(((((selectClip.typ + " : ") + selectClip.x) + " # ") + selectClip.y)); if (Main.instance.key_downArrow){ selectClip.y++; }; if (Main.instance.key_upArrow){ selectClip.y--; }; if (Main.instance.key_leftArrow){ selectClip.x--; }; if (Main.instance.key_rightArrow){ selectClip.x++; }; }; for each (_local4 in editList) { if (((((_local4.hitTestPoint(_local2, _local3, true)) && ((Main.instance.clicked == 1)))) && ((dragClip == null)))){ makeSelect(_local4); dragClip = _local4; offsetX = (_local4.x - _local2); offsetY = (_local4.y - _local3); trace(((("picked " + offsetX) + " : ") + offsetY)); }; if (dragClip == _local4){ _local4.x = (_local2 + offsetX); _local4.y = (_local3 + offsetY); }; }; if (Main.instance.clicked == 0){ dragClip = null; }; if (selectClip != null){ selectClip.alpha = (0.2 + (JMath.getRand(8) / 10)); }; }; } public function makeSelect(_arg1){ if (selectClip != null){ selectClip.alpha = 1; }; selectClip = _arg1; } public function changeLevelFromArrayButHit(_arg1:MouseEvent){ loadLevelArrayIndex = int(this.editPanel.loadLevelText.text); loadLevelArrayIndex++; if (loadLevelArrayIndex > (Arrays.tableDATA.length - 1)){ loadLevelArrayIndex = 0; }; this.editPanel.loadLevelText.text = String(loadLevelArrayIndex); } public function loadLevelFromArrayButHit(_arg1:MouseEvent){ var _local2:int = int(this.editPanel.loadLevelText.text); Main.instance.level = _local2; if (_local2 > (Arrays.tableDATA.length - 1)){ _local2 = 0; }; this.editPanel.levelInput.text = String(Arrays.tableDATA[_local2]); wipeCurrentEdit(); buildEditFromString(String(this.editPanel.levelInput.text)); } public function scrollLeftButHit(_arg1:MouseEvent){ this.x = (this.x + 50); editPanel.x = -(this.x); } public function scrollRightButHit(_arg1:MouseEvent){ this.x = (this.x - 50); editPanel.x = -(this.x); } public function wipeObject(_arg1:MouseEvent){ if (selectClip != null){ if (selectClip.typ == "O_Player"){ this.editPanel.levelOutput.text = "-------------DON'T DELETE ME CUEBALL MOMMA !------------"; } else { trace(((selectClip.currentFrame + " : ") + selectClip.typ)); removeEditObject(selectClip); selectClip = null; }; }; } public function cloneObject(_arg1:MouseEvent){ if (selectClip != null){ trace(("CLONED at " + (150 + this.x))); addObject(selectClip.typ, (150 - this.x), 150, selectClip.rotation, selectClip.scaleX, selectClip.scaleY, selectClip.currentFrame); }; } public function clickChangePlayType(_arg1:MouseEvent){ playType++; if (playType > (Arrays.playTypeDATA.length - 1)){ playType = 0; }; this.editPanel.playTypeText.text = String(Arrays.playTypeDATA[playType]); } public function clickChangeBg(_arg1:MouseEvent){ var _local2:* = tableBg.currentFrame; _local2++; if (_local2 > tableBg.totalFrames){ _local2 = 1; }; tableBg.gotoAndStop(_local2); } public function clickChangeType(_arg1:MouseEvent){ var _local2:*; if (selectClip != null){ if ((((((selectClip.typ == "O_Pickup")) || ((selectClip.typ == "O_Rect")))) || ((selectClip.typ == "O_Mover")))){ _local2 = selectClip.currentFrame; if ((_local2 + 1) > selectClip.totalFrames){ selectClip.gotoAndStop(1); } else { selectClip.gotoAndStop((_local2 + 1)); }; checkLimitDraw(); }; }; } public function clickAddBall(_arg1:MouseEvent){ addBall((150 + this.x), 150, 0, 1, 1); } public function clickAddRect(_arg1:MouseEvent){ addRect((150 + this.x), 150, 0, 1, 1, 1); } public function clickAddCannon(_arg1:MouseEvent){ addCannon((150 + this.x), 150, 0, 1, 1, 1); } public function clickAddMisc(_arg1:MouseEvent){ addMisc((150 + this.x), 150, 0, 1, 1, 1); } public function clickAddBumper(_arg1:MouseEvent){ addBumper((150 + this.x), 150, 0, 1, 1); } public function addPlayer(_arg1, _arg2, _arg3, _arg4, _arg5){ var _local6:EditPlayer = new EditPlayer(); addChild(_local6); _local6.x = _arg1; _local6.y = _arg2; _local6.rotation = _arg3; _local6.typ = "O_Player"; editList.push(_local6); makeSelect(_local6); } public function addBall(_arg1, _arg2, _arg3, _arg4, _arg5){ var _local6:EditBall = new EditBall(); addChild(_local6); _local6.x = _arg1; _local6.y = _arg2; _local6.rotation = _arg3; _local6.typ = "Ball"; if (editList.length == 0){ _local6.gotoAndStop(2); }; editList.push(_local6); makeSelect(_local6); } public function addRect(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6){ var _local7:EditRect = new EditRect(); addChild(_local7); _local7.x = _arg1; _local7.y = _arg2; _local7.rotation = _arg3; _local7.scaleX = _arg4; _local7.scaleY = _arg5; _local7.gotoAndStop(_arg6); _local7.typ = "O_Rect"; editList.push(_local7); makeSelect(_local7); } public function addBumper(_arg1, _arg2, _arg3, _arg4, _arg5){ var _local6:EditBumper = new EditBumper(); addChild(_local6); _local6.x = _arg1; _local6.y = _arg2; _local6.rotation = _arg3; _local6.typ = "Bumper"; editList.push(_local6); makeSelect(_local6); } public function addCannon(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6){ var _local7:EditCannon = new EditCannon(); addChild(_local7); _local7.x = _arg1; _local7.y = _arg2; _local7.rotation = _arg3; _local7.gotoAndStop(_arg6); _local7.typ = "O_Pickup"; editList.push(_local7); makeSelect(_local7); } public function addMisc(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6){ var _local7:EditMisc = new EditMisc(); addChild(_local7); _local7.x = _arg1; _local7.y = _arg2; _local7.limit = 40; _local7.gotoAndStop(_arg6); _local7.typ = "O_Mover"; editList.push(_local7); makeSelect(_local7); checkLimitDraw(); } public function addTableDestroy(){ var _local1:TableDestroy = new TableDestroy(); Main.instance.addChild(_local1); _local1.x = 670; _local1.y = 630; myTableDestroy = _local1; myTableDestroy.tableDestroyBut.addEventListener(MouseEvent.CLICK, destroyTable); } public function rotObject(_arg1:MouseEvent){ if (selectClip != null){ if ((((selectClip.typ == "Edge")) || ((selectClip.typ == "O_Rect")))){ selectClip.rotation = (selectClip.rotation + int(editPanel.rotateAmount.text)); }; if (selectClip.typ == "O_Mover"){ selectClip.limit = (selectClip.limit + 10); if (selectClip.limit > 140){ selectClip.limit = 40; }; checkLimitDraw(); }; }; } public function checkLimitDraw(){ var _local1:*; if (selectClip.typ == "O_Mover"){ _local1 = (selectClip.currentFrame % 3); if (_local1 == 0){ _local1 = 3; }; switch (_local1){ case 1: selectClip.miscLimit.scaleY = 0.1; selectClip.miscLimit.scaleX = 0.1; break; case 2: selectClip.miscLimit.scaleY = (0.5 * (1 / selectClip.scaleY)); selectClip.miscLimit.scaleX = (((selectClip.limit * 2) / 10) * (1 / selectClip.scaleX)); trace(((("scaleX: " + selectClip.miscLimit.scaleX) + "scaleY: ") + selectClip.miscLimit.scaleY)); break; case 3: selectClip.miscLimit.scaleY = (((selectClip.limit * 2) / 10) * (1 / selectClip.scaleY)); selectClip.miscLimit.scaleX = (0.5 * (1 / selectClip.scaleX)); trace(((("scaleX: " + selectClip.miscLimit.scaleX) + "scaleY: ") + selectClip.miscLimit.scaleY)); break; }; }; } public function scaleDownObjectCalled(){ if (selectClip != null){ if ((((selectClip.typ == "Bumper")) || ((selectClip.typ == "Edge")))){ selectClip.scaleX = (selectClip.scaleX - 0.25); selectClip.scaleY = selectClip.scaleX; }; checkLimitDraw(); }; } public function scaleUpObjectCalled(){ if ((((selectClip.typ == "Bumper")) || ((selectClip.typ == "Edge")))){ selectClip.scaleX = (selectClip.scaleX + 0.25); selectClip.scaleY = selectClip.scaleX; }; checkLimitDraw(); } public function scaleDownObjectX(_arg1:MouseEvent){ if (selectClip != null){ if ((((selectClip.typ == "O_Rect")) || ((selectClip.typ == "O_Mover")))){ selectClip.scaleX = (selectClip.scaleX - 1); }; scaleDownObjectCalled(); }; } public function scaleUpObjectX(_arg1:MouseEvent){ if (selectClip != null){ if ((((selectClip.typ == "O_Rect")) || ((selectClip.typ == "O_Mover")))){ selectClip.scaleX = (selectClip.scaleX + 1); }; scaleUpObjectCalled(); }; } public function scaleDownObjectY(_arg1:MouseEvent){ if (selectClip != null){ if ((((selectClip.typ == "O_Rect")) || ((selectClip.typ == "O_Mover")))){ selectClip.scaleY = (selectClip.scaleY - 1); }; scaleDownObjectCalled(); }; } public function scaleUpObjectY(_arg1:MouseEvent){ if (selectClip != null){ if ((((selectClip.typ == "O_Rect")) || ((selectClip.typ == "O_Mover")))){ selectClip.scaleY = (selectClip.scaleY + 1); }; scaleUpObjectCalled(); }; } public function destroyTable(_arg1:MouseEvent){ Main.instance.removeChild(myTableDestroy); Main.instance.removeTable(); worldBuilt = false; this.alpha = 1; } public function outputArray(){ var _local2:*; outputText = ""; var _local1:int; while (_local1 <= (editList.length - 1)) { _local2 = editList[_local1]; if (_local2.typ == "O_Mover"){ outputText = (outputText + ((((((((((((_local2.x + " ") + _local2.y) + " ") + _local2.typ) + " ") + _local2.limit) + " ") + _local2.scaleX) + " ") + _local2.scaleY) + " ") + _local2.currentFrame)); } else { outputText = (outputText + ((((((((((((_local2.x + " ") + _local2.y) + " ") + _local2.typ) + " ") + _local2.rotation) + " ") + _local2.scaleX) + " ") + _local2.scaleY) + " ") + _local2.currentFrame)); }; if (_local1 < (editList.length - 1)){ outputText = (outputText + ":"); }; _local1++; }; outputText = (outputText + (((((":" + tableBg.currentFrame) + " ") + String(int(this.editPanel.ballTimer.text))) + " Tbg ") + playType)); trace(("output Text is " + outputText)); } public function generateText(_arg1:MouseEvent){ outputArray(); this.editPanel.levelOutput.text = outputText; } public function makeEditTable(_arg1:MouseEvent){ wipeCurrentEdit(); buildEditFromString(String(this.editPanel.levelInput.text)); } public function wipeEdit(_arg1:MouseEvent){ wipeCurrentEdit(); addPlayer(150, 150, 0, 1, 1); } public function makeDefaultTableHit(_arg1:MouseEvent){ makeDefaultTable(); } public function makeDefaultTable(){ this.editPanel.levelInput.text = String(String("461 372 O_Player 0 1 1 1:101 395 O_Rect 0 15 1 5:255 395 O_Rect 0 15 1 5:407 395 O_Rect 0 15 1 5:559 395 O_Rect 0 15 1 5:32 314 O_Rect 90 15 1 5:32 162 O_Rect 90 15 1 5:629 314 O_Rect 90 15 1 5:628 162 O_Rect 90 15 1 5:102 81 O_Rect 180 15 1 5:254 81 O_Rect 180 15 1 5:406 81 O_Rect 180 15 1 5:557 80 O_Rect 180 15 1 5:341 356 O_Rect 180 15 3 1:338 305 O_Rect 180 11 3 1:474 263 O_Rect 180 9 2 6:213 263 O_Rect 180 9 2 6:474 228 O_Rect 180 3 3 2:78 372 O_Rect 180 3 3 2:77 340 O_Rect 180 3 3 2:119 231 O_Rect 180 9 2 3:120 201 O_Pickup 0 1 1 1:554 170 O_Pickup 0 1 1 2:557 195 O_Rect 180 7 1 5:340 211 O_Mover 90 6 1 2:1 99 Tbg 0")); wipeCurrentEdit(); buildEditFromString(String(this.editPanel.levelInput.text)); } private function wipeCurrentEdit(){ var _local2:*; var _local1:int = (editList.length - 1); while (_local1 >= 0) { _local2 = editList[_local1]; removeChild(_local2); _local1--; }; editList = []; } public function buildEditFromString(_arg1){ var _local5:int; var _local6:Array; var _local7:*; var _local8:int; var _local9:*; var _local10:*; var _local11:*; var _local12:*; var _local13:*; var _local14:*; var _local15:*; var _local2:Array = _arg1.split(":"); outputList = []; var _local3:* = _local2.length; var _local4:int; while (_local4 <= (_local3 - 1)) { _local6 = _local2[_local4].split(" "); _local7 = _local6.length; outputList.push([]); _local8 = 0; while (_local8 <= (_local7 - 1)) { outputList[_local5][_local8] = _local6[_local8]; _local8++; }; _local4++; }; _local5 = 0; while (_local5 <= (outputList.length - 1)) { _local9 = outputList[_local5][2]; _local10 = Number(outputList[_local5][0]); _local11 = Number(outputList[_local5][1]); _local12 = Number(outputList[_local5][3]); _local13 = Number(outputList[_local5][4]); _local14 = Number(outputList[_local5][5]); _local15 = Number(outputList[_local5][6]); addObject(_local9, _local10, _local11, _local12, _local13, _local14, _local15); _local5++; }; } public function addObject(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7){ switch (_arg1){ case "O_Player": addPlayer(_arg2, _arg3, 0, 1, 1); break; case "O_Rect": addRect(_arg2, _arg3, _arg4, _arg5, _arg6, _arg7); break; case "O_Mover": addMisc(_arg2, _arg3, _arg4, _arg5, _arg6, _arg7); break; case "O_Pickup": addCannon(_arg2, _arg3, _arg4, _arg5, _arg6, _arg7); break; case "Tbg": playType = _arg4; editPanel.playTypeText.text = String(Arrays.playTypeDATA[playType]); tableBg.gotoAndStop(_arg2); break; }; } public function buildWorld(_arg1:MouseEvent){ var _local2:String; this.alpha = 0.1; if (!worldBuilt){ worldBuilt = true; outputArray(); this.editPanel.levelOutput.text = outputText; this.editPanel.levelInput.text = outputText; _local2 = this.editPanel.levelOutput.text; Main.instance.addTable(_local2, "TEST"); addTableDestroy(); }; } public function buildWorldFromCode(_arg1:MouseEvent){ var _local2:String; if (!worldBuilt){ worldBuilt = true; _local2 = this.editPanel.levelInput.text; Main.instance.addTable(_local2, "TEST"); addTableDestroy(); }; } private function setupPhysicsWorld():void{ var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set((-5000 / PhysiVals.RATIO), (-5000 / PhysiVals.RATIO)); _local1.upperBound.Set((5000 / PhysiVals.RATIO), (5000 / PhysiVals.RATIO)); var _local2:b2Vec2 = new b2Vec2(0, 9.8); var _local3:Boolean; PhysiVals.world = new b2World(_local1, _local2, _local3); } public function removeEditObject(_arg1:MovieClip){ var _local2:int = editList.length; while (_local2 >= 0) { if (editList[_local2] == _arg1){ editList.splice(_local2, 1); removeChild(_arg1); break; }; _local2--; }; } public function deleteMe(){ removeEventListener(Event.ENTER_FRAME, update); parent.removeChild(this); } } }//package utils
Section 152
//SiteLocker (utils.SiteLocker) package utils { import flash.events.*; import flash.net.*; public class SiteLocker { public static function siteLock():void{ var url2:String; var request:URLRequest; var lockURL:Array = ["origin-www.mousebreaker.com", "www.mousebreaker.com", "www.mousebreaker.net", "www.magneticboots.com"]; var lock:Boolean; var url:* = lockURL; var urlString:String = Main.instance.stage.loaderInfo.url; var urlParts:Array = urlString.split("://"); var wwwPart:Array = urlParts[1].split("/"); var i:uint; while (i < url.length) { if (url[i] == wwwPart[0]){ lock = false; }; i = (i + 1); }; if (lock){ Main.instance.alpha = 0; url2 = "http://www.mousebreaker.com"; request = new URLRequest(url2); try { navigateToURL(request, "_self"); } catch(e:Error) { trace("Error occurred!"); }; }; } public static function testSiteLock(){ siteLock(); } } }//package utils
Section 153
//SoundManager (utils.SoundManager) package utils { import flash.events.*; import flash.media.*; public class SoundManager { private var beep_transform:SoundTransform; public static var sndMusic1:s_music1 = new s_music1(); public static var sndMusic2:s_music2 = new s_music2(); public static var sndMusicAmb:s_musicAmb = new s_musicAmb(); public static var sndPuke1:s_puke1 = new s_puke1(); public static var sndBounce:s_bounce = new s_bounce(); public static var sndBoing:s_boing = new s_boing(); public static var sndAirpump:s_airpump = new s_airpump(); public static var sndLion:s_lion = new s_lion(); public static var sndWitch:s_witch = new s_witch(); public static var sndFlipper:s_flipper = new s_flipper(); public static var sndCheer:s_cheer = new s_cheer(); public static var sndCrowd:s_crowd = new s_crowd(); public static var sndGong:s_gong = new s_gong(); public static var sndHitMetal:s_hitMetal = new s_hitMetal(); public static var sndHitSplat:s_hitSplat = new s_hitSplat(); public static var sndKick:s_kick = new s_kick(); public static var sndKick2:s_kick2 = new s_kick2(); public static var sndZombie1:s_zombie1 = new s_zombie1(); public static var sndZombie2:s_zombie2 = new s_zombie2(); public static var sndZombie3:s_zombie3 = new s_zombie3(); public static var sndHitZom:s_hitZom = new s_hitZom(); public static var sndLucky:s_lucky = new s_lucky(); public static var sndFreeze:s_freeze = new s_freeze(); public static var sndWhistle:s_whistle = new s_whistle(); public static var sndExplode1:s_explode1 = new s_explode1(); public static var sndExplode2:s_explode2 = new s_explode2(); public static var sndFlames:s_flames = new s_flames(); public static var sndDie:s_die = new s_die(); public static var sndPop:s_pop = new s_pop(); public static var musicChannel; public function SoundManager(){ beep_transform = new SoundTransform(0.5); super(); } public static function initStart(){ } public static function playSound(_arg1){ switch (_arg1){ case "sndMusic1": musicChannel = sndMusic1.play(0, 1000); break; case "sndMusicAmb": musicChannel = sndMusicAmb.play(0, 1000); break; case "sndMusic2": musicChannel = sndMusic2.play(0, 1000); break; case "sndPuke1": sndPuke1.play(); break; case "sndBounce": sndBounce.play(); break; case "sndLucky": sndLucky.play(); break; case "sndCheer": sndCheer.play(); break; case "sndCrowd": sndCrowd.play(); break; case "sndBoing": sndBoing.play(); break; case "sndGong": sndGong.play(); break; case "sndHitZom": sndHitZom.play(); break; case "sndHitMetal": sndHitMetal.play(); break; case "sndHitSplat": sndHitSplat.play(); break; case "sndAirpump": sndAirpump.play(); break; case "sndBoing": sndBoing.play(); break; case "sndKick": sndKick.play(); break; case "sndKick2": sndKick2.play(); break; case "sndZombie1": sndZombie1.play(); break; case "sndZombie2": sndZombie2.play(); break; case "sndZombie3": sndZombie3.play(); break; case "sndZombie4": sndDie.play(); break; case "sndZombie5": sndFlipper.play(); break; case "sndZombie6": sndLion.play(); break; case "sndZombie7": sndWitch.play(); break; case "sndZombie8": sndPop.play(); break; case "sndZombie9": sndFlames.play(); break; case "sndWhistle": sndWhistle.play(); break; case "sndFreeze": sndFreeze.play(); break; case "sndExplode1": sndExplode1.play(); break; case "sndExplode2": sndExplode2.play(); break; case "sndPop": trace("====================where my POP SOUND ASSHOLE"); sndPop.play(); break; case "sndFlames": sndFlames.play(); break; case "sndDie": sndDie.play(); break; }; } public static function stopSound(_arg1){ musicChannel.stop(); } public static function reduceSound(){ var _local1:SoundTransform = new SoundTransform(0); musicChannel.soundTransform = _local1; } public static function increaseSound(){ var _local1:SoundTransform = new SoundTransform(1); musicChannel.soundTransform = _local1; } public static function wink(){ trace("winked"); } } }//package utils
Section 154
//TableDestroy (utils.TableDestroy) package utils { import flash.display.*; public dynamic class TableDestroy extends MovieClip { public var tableDestroyBut:SimpleButton; } }//package utils
Section 155
//ballBoard_60 (zombieGolf_Dist_fla.ballBoard_60) package zombieGolf_Dist_fla { import flash.display.*; public dynamic class ballBoard_60 extends MovieClip { public function ballBoard_60(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6); } function frame1(){ stop(); } function frame2(){ stop(); } function frame3(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame6(){ stop(); } } }//package zombieGolf_Dist_fla
Section 156
//ballBoardHole_62 (zombieGolf_Dist_fla.ballBoardHole_62) package zombieGolf_Dist_fla { import flash.display.*; public dynamic class ballBoardHole_62 extends MovieClip { public var BallNew:MovieClip; public function ballBoardHole_62(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package zombieGolf_Dist_fla
Section 157
//boardGolfClub_56 (zombieGolf_Dist_fla.boardGolfClub_56) package zombieGolf_Dist_fla { import flash.display.*; import flash.text.*; public dynamic class boardGolfClub_56 extends MovieClip { public var clubNum:TextField; public var clubInfo:MovieClip; public function boardGolfClub_56(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6); } function frame1(){ stop(); } function frame2(){ stop(); } function frame3(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame6(){ stop(); } } }//package zombieGolf_Dist_fla
Section 158
//GUI_ray_11 (zombieGolf_Dist_fla.GUI_ray_11) package zombieGolf_Dist_fla { import flash.display.*; public dynamic class GUI_ray_11 extends MovieClip { public var rayBub:MovieClip; public function GUI_ray_11(){ addFrameScript(0, frame1, 124, frame125, 132, frame133); } function frame1(){ stop(); } function frame125(){ gotoAndStop(1); } function frame133(){ stop(); } } }//package zombieGolf_Dist_fla
Section 159
//guiTurnFlipper_9 (zombieGolf_Dist_fla.guiTurnFlipper_9) package zombieGolf_Dist_fla { import flash.display.*; public dynamic class guiTurnFlipper_9 extends MovieClip { public var flipperClip:MovieClip; public function guiTurnFlipper_9(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package zombieGolf_Dist_fla
Section 160
//instParticleBlood_81 (zombieGolf_Dist_fla.instParticleBlood_81) package zombieGolf_Dist_fla { import flash.display.*; public dynamic class instParticleBlood_81 extends MovieClip { public function instParticleBlood_81(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4); } function frame1(){ stop(); } function frame2(){ stop(); } function frame3(){ stop(); } function frame4(){ stop(); } } }//package zombieGolf_Dist_fla
Section 161
//particleBang_88 (zombieGolf_Dist_fla.particleBang_88) package zombieGolf_Dist_fla { import flash.display.*; public dynamic class particleBang_88 extends MovieClip { public function particleBang_88(){ addFrameScript(18, frame19); } function frame19(){ stop(); } } }//package zombieGolf_Dist_fla
Section 162
//particleBigBLOOD_95 (zombieGolf_Dist_fla.particleBigBLOOD_95) package zombieGolf_Dist_fla { import flash.display.*; public dynamic class particleBigBLOOD_95 extends MovieClip { public function particleBigBLOOD_95(){ addFrameScript(14, frame15); } function frame15(){ stop(); } } }//package zombieGolf_Dist_fla
Section 163
//particleBlood_87 (zombieGolf_Dist_fla.particleBlood_87) package zombieGolf_Dist_fla { import flash.display.*; public dynamic class particleBlood_87 extends MovieClip { public function particleBlood_87(){ addFrameScript(10, frame11); } function frame11(){ stop(); } } }//package zombieGolf_Dist_fla
Section 164
//particleBonusAPPEAR_82 (zombieGolf_Dist_fla.particleBonusAPPEAR_82) package zombieGolf_Dist_fla { import flash.display.*; public dynamic class particleBonusAPPEAR_82 extends MovieClip { public function particleBonusAPPEAR_82(){ addFrameScript(20, frame21); } function frame21(){ stop(); } } }//package zombieGolf_Dist_fla
Section 165
//particlePottedAnim_89 (zombieGolf_Dist_fla.particlePottedAnim_89) package zombieGolf_Dist_fla { import flash.display.*; public dynamic class particlePottedAnim_89 extends MovieClip { public function particlePottedAnim_89(){ addFrameScript(19, frame20); } function frame20(){ stop(); } } }//package zombieGolf_Dist_fla
Section 166
//particlePraxisAnim_91 (zombieGolf_Dist_fla.particlePraxisAnim_91) package zombieGolf_Dist_fla { import flash.display.*; public dynamic class particlePraxisAnim_91 extends MovieClip { public function particlePraxisAnim_91(){ addFrameScript(19, frame20); } function frame20(){ stop(); } } }//package zombieGolf_Dist_fla
Section 167
//particleSmoke_85 (zombieGolf_Dist_fla.particleSmoke_85) package zombieGolf_Dist_fla { import flash.display.*; public dynamic class particleSmoke_85 extends MovieClip { public function particleSmoke_85(){ addFrameScript(20, frame21); } function frame21(){ stop(); } } }//package zombieGolf_Dist_fla
Section 168
//playerShotArrowSS_36 (zombieGolf_Dist_fla.playerShotArrowSS_36) package zombieGolf_Dist_fla { import flash.display.*; public dynamic class playerShotArrowSS_36 extends MovieClip { public function playerShotArrowSS_36(){ addFrameScript(0, frame1, 1, frame2, 2, frame3); } function frame1(){ stop(); } function frame2(){ stop(); } function frame3(){ stop(); } } }//package zombieGolf_Dist_fla
Section 169
//rHair_111 (zombieGolf_Dist_fla.rHair_111) package zombieGolf_Dist_fla { import flash.display.*; public dynamic class rHair_111 extends MovieClip { public function rHair_111(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9, 9, frame10, 10, frame11, 11, frame12, 12, frame13, 13, frame14, 14, frame15, 15, frame16, 16, frame17, 17, frame18, 18, frame19, 19, frame20, 20, frame21, 21, frame22); } function frame1(){ stop(); } function frame2(){ stop(); } function frame3(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame6(){ stop(); } function frame7(){ stop(); } function frame8(){ stop(); } function frame9(){ stop(); } function frame10(){ stop(); } function frame11(){ stop(); } function frame12(){ stop(); } function frame13(){ stop(); } function frame14(){ stop(); } function frame15(){ stop(); } function frame16(){ stop(); } function frame17(){ stop(); } function frame18(){ stop(); } function frame19(){ stop(); } function frame20(){ stop(); } function frame21(){ stop(); } function frame22(){ stop(); } } }//package zombieGolf_Dist_fla
Section 170
//rHead_108 (zombieGolf_Dist_fla.rHead_108) package zombieGolf_Dist_fla { import flash.display.*; public dynamic class rHead_108 extends MovieClip { public var rHeadType:MovieClip; public var rHair:MovieClip; public function rHead_108(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9, 9, frame10, 10, frame11, 11, frame12); } function frame1(){ stop(); } function frame2(){ stop(); } function frame3(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame6(){ stop(); } function frame7(){ stop(); } function frame8(){ stop(); } function frame9(){ stop(); } function frame10(){ stop(); } function frame11(){ stop(); } function frame12(){ stop(); } } }//package zombieGolf_Dist_fla
Section 171
//zombieBlood_149 (zombieGolf_Dist_fla.zombieBlood_149) package zombieGolf_Dist_fla { import flash.display.*; public dynamic class zombieBlood_149 extends MovieClip { public function zombieBlood_149(){ addFrameScript(0, frame1, 6, frame7, 7, frame8); } function frame1(){ stop(); } function frame7(){ gotoAndStop(1); } function frame8(){ stop(); } } }//package zombieGolf_Dist_fla
Section 172
//zomMeter_150 (zombieGolf_Dist_fla.zomMeter_150) package zombieGolf_Dist_fla { import flash.display.*; public dynamic class zomMeter_150 extends MovieClip { public var zomMeterClip:MovieClip; public function zomMeter_150(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package zombieGolf_Dist_fla
Section 173
//zTorsoShield_145 (zombieGolf_Dist_fla.zTorsoShield_145) package zombieGolf_Dist_fla { import flash.display.*; public dynamic class zTorsoShield_145 extends MovieClip { public function zTorsoShield_145(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package zombieGolf_Dist_fla
Section 174
//Arrays (Arrays) package { import utils.*; public class Arrays { public static const SOFT:int = 1; public static const MEDIUM:int = 2; public static const HARD:int = 3; public static const DOUBLE_DAMAGE:int = 4; public static const DOUBLE_BOUNCE:int = 5; public static const INCREASE_HEADOFF:int = 6; public static const EASY_HARD:int = 7; public static const playTypeDATA:Array = new Array("oneshot", "multishot", "hold&move"); public static const clubDATA:Array = new Array(["9 IRON", 10, 4, 1, 10, "Nice Starter club", 1, 25], ["5 WOOD", 5, 5, 1, 100, "Medium Range Hitter", 2, 15], ["DRIVER", 3, 7, 1, 500, "Long Range Whacker", 3, 6], ["DOUBLER", 5, 6, 2, 1000, "Doubles Impact Damage", 3, 6], ["BOUNCER", 5, 6, 3, 2000, "Adds Double Ball Bounce", 3, 6], ["NECKER", 5, 6, 4, 3000, "Increased Decapitation", 3, 6], ["BOOMSTICK", 5, 6, 1, 5000, "Acurate & Devastating", 1, 15]); public static const ballNameDATA:Array = new Array(["blank"], ["REGULAR", 1, true, true, 1], ["HARD", 2, true, true, 1], ["FREEZE", 1, true, true, 0], ["BANGER", 1, false, true, 200], ["TIMED", 1, false, true, 400], ["8Ball", 1, true, true, 400], ["HEAD", 1, true, false, 1]); public static const levelDATA:Array = new Array([[1, 0, 0, 0, 2], [2], [-6], [9], "1st Hole : 'Bring on The BogeyMan'"], [[1, 1, 0, 3, 0, 2], [2], [-6], [1], "2nd Hole : 'Dead Links'"], [[3, 0, 3, 0, 3, 0, 11, 0, 2], [3], [-6], [2], "3rd Hole : 'What about Bob ?'"], [[4, 0, 1, 0, 1, 0, 1, 0, 2], [3], [-6], [3], "4th Hole : 'Deadly Slice'"], [[0, 0, 0, 0, 2], [4], [-6], [5], "5th Hole : 'A little too quiet..'"], [[6, 0, 6, 0, 6, 0, 6, 0, 2], [4], [-6], [6], "6th Hole : 'Sack the gardener'"], [[6, 0, 5, 3, 0, 6, 0, 5, 0, 2], [4], [-6], [1], "7th Hole : 'Caddyshagged'"], [[4, 0, 4, 0, 4, 0, 2], [4], [-6], [6], "8th Hole : 'GArgyleGoyles'"], [[12, 5, 0, 3, 0, 3, 0, 6, 2], [4], [-6], [2], "9th Hole : 'Fear the Gap Faced Scouser'"], [[6, 6, 0, 9, 0, 2], [4], [-6], [5], "10th Hole : 'Day of the Jackyln'"], [[4, 0, 1, 4, 0, 8, 0, 2], [5], [-6], [3], "11th Hole : 'My Way or The Fairway'"], [[3, 3, 0, 8, 0, 8, 2], [5], [-6], [6], "12th Hole : 'Something beige this way comes'"], [[9, 1, 1, 9, 1, 2], [6], [-6], [1], "13th Hole : 'Assault on Fairway 13'"], [[14, 0, 2], [6], [-6], [6], "14th Hole : 'The Black Hole'"], [[11, 5, 0, 3, 0, 3, 0, 6, 2], [6], [-6], [2], "15th Hole : 'Nick Faldeado'"], [[14, 0, 9, 0, 13, 0, 2], [6], [-6], [3], "16th Hole : 'Not so nice to see you'"], [[6, 5, 6, 9, 6, 6, 6, 2], [6], [-6], [5], "17th Hole : 'Drive me to Hell'"], [[14, 6, 14, 6, 0, 13, 2], [6], [-6], [2], "18th Hole : 'The Final Slice'"]); public static const tableDATA:Array = new Array("42 296 O_Player 0 1 1 1:233 320 O_Rect 15 15 1 7:89 309 O_Rect 167 7 1 7:304 331 O_Rect 0 9 1 7:492 345 O_Rect -1 8 1 7:-138 315 O_Rect 180 32 1 7:719 344 O_Rect -10 8 1 7:1180 286 O_Rect -11 28 1 7:855 329 O_Rect 175 21 1 7:393 345 O_Rect -163 10 1 7:1425 261 O_Rect 1 22 1 7:654 379 O_Pickup 0 1 1 3:577 347 O_Rect 3 10 1 7:423 349 O_Rect 176 7 1 7:141 301 O_Rect -1 4 1 7:1628 279 O_Rect 9 19 1 7:1734 308 O_Rect 3 17 1 7:1858 297 O_Rect -17 10 1 7:1919 283 O_Rect 0 3 1 7:2042 295 O_Rect 12 12 1 7:2176 307 O_Rect 0 15 1 7:2358 289 O_Rect -10 22 1 7:2542 270 O_Rect 0 16 1 7:2596 135 O_Rect 90 28 1 7:1972 283 O_Rect 0 3 1 7:1946 283 O_Rect 0 3 1 8:630 350 O_Rect 179 2 1 7:676 350 O_Rect 179 2 1 7:654 350 O_Rect 179 3 1 8:36 314 O_Rect 180 9 1 7:990 319 O_Rect 175 21 1 7:-15 150 O_Rect 90 32 1 7:3 99 Tbg 1", "48 309 O_Player 0 1 1 1:112 325 O_Rect -10 9 1 7:63 328 O_Rect 1 15 1 7:201 282 O_Rect -34 15 1 7:294 228 O_Rect -20 7 1 7:0 163 O_Rect 90 32 1 7:517 290 O_Rect -1 5 1 7:1049 205 O_Rect 16 17 1 7:486 261 O_Rect -142 10 1 7:416 224 O_Rect -167 7 1 7:1357 204 O_Rect -9 9 1 7:663 290 O_Pickup 0 1 1 3:900 188 O_Rect -6 14 1 7:795 210 O_Rect 159 9 1 7:352 217 O_Rect -1 6 1 7:1222 218 O_Rect -4 21 1 7:1439 203 O_Rect 10 8 1 7:1566 242 O_Rect 20 19 1 7:1734 292 O_Rect 13 17 1 7:1858 297 O_Rect -17 10 1 7:1919 283 O_Rect 0 3 1 7:2042 295 O_Rect 12 12 1 7:2176 307 O_Rect 0 15 1 7:2358 289 O_Rect -10 22 1 7:2542 270 O_Rect 0 16 1 7:2596 135 O_Rect 90 28 1 7:1972 283 O_Rect 0 3 1 7:1946 283 O_Rect 0 3 1 7:593 290 O_Rect -1 5 1 7:556 290 O_Rect -1 5 1 7:665 259 O_Rect -1 5 1 8:596 289 O_Rect -41 4 1 7:621 269 O_Rect -29 3 1 7:637 261 O_Rect -19 1 1 7:707 259 O_Rect -1 5 1 7:726 243 O_Rect 149 7 1 7:4 99 Tbg 1", "42 296 O_Player 0 1 1 1:233 320 O_Rect 15 15 1 7:89 309 O_Rect 167 7 1 7:305 328 O_Rect -4 9 1 7:447 350 O_Rect 0 7 1 7:0 163 O_Rect 90 32 1 7:721 292 O_Rect 19 13 1 7:1171 289 O_Rect -11 34 1 7:520 318 O_Rect 141 12 1 7:394 342 O_Rect -159 10 1 7:1238 319 O_Rect -13 6 1 7:1343 319 O_Rect -54 13 1 7:661 125 O_Rect -170 22 1 8:631 300 O_Pickup 0 1 1 3:879 311 O_Rect 3 30 1 7:586 277 O_Rect 165 4 1 7:141 301 O_Rect -1 4 1 7:1368 204 O_Rect -12 7 1 7:1439 203 O_Rect 10 8 1 7:1566 242 O_Rect 20 19 1 7:1734 292 O_Rect 13 17 1 7:1858 297 O_Rect -17 10 1 7:1919 283 O_Rect 0 3 1 7:2042 295 O_Rect 12 12 1 7:2176 307 O_Rect 0 15 1 7:2358 289 O_Rect -10 22 1 7:2542 270 O_Rect 0 16 1 7:2596 135 O_Rect 90 28 1 7:1972 283 O_Rect 0 3 1 7:1946 283 O_Rect 0 3 1 8:612 271 O_Rect 179 2 1 7:651 271 O_Rect 179 2 1 7:631 271 O_Rect 179 2 1 8:36 314 O_Rect 180 9 1 7:466 139 O_Rect 160 19 1 8:300 164 O_Rect -175 16 1 8:2 99 Tbg 1", "42 296 O_Player 0 1 1 1:233 320 O_Rect 15 15 1 7:89 309 O_Rect 167 7 1 7:304 331 O_Rect 0 9 1 7:492 345 O_Rect -1 8 1 7:0 163 O_Rect 90 32 1 7:719 344 O_Rect -10 8 1 7:1180 286 O_Rect -11 29 1 7:855 329 O_Rect 175 21 1 7:393 345 O_Rect -163 10 1 7:1401 259 O_Rect 0 16 1 7:654 379 O_Pickup 0 1 1 3:577 347 O_Rect 3 10 1 7:423 349 O_Rect 176 7 1 7:141 301 O_Rect -1 4 1 7:1575 269 O_Rect 6 19 1 7:1734 292 O_Rect 13 17 1 7:1858 297 O_Rect -17 10 1 7:1919 283 O_Rect 0 3 1 7:2042 295 O_Rect 12 12 1 7:2176 307 O_Rect 0 15 1 7:2358 289 O_Rect -10 22 1 7:2542 270 O_Rect 0 16 1 7:2596 135 O_Rect 90 28 1 7:1972 283 O_Rect 0 3 1 7:1946 283 O_Rect 0 3 1 8:630 350 O_Rect 179 2 1 7:676 350 O_Rect 179 2 1 7:654 350 O_Rect 179 3 1 8:36 314 O_Rect 180 9 1 7:990 319 O_Rect 175 21 1 7:644 201 O_Rect -176 26 1 8:390 205 O_Rect 174 26 1 8:3 99 Tbg 1", "121 320 O_Player 0 1 1 1:193 331 O_Rect -12 15 1 7:65 337 O_Rect 9 15 1 7:309 285 O_Rect -35 15 1 7:402 230 O_Rect -20 7 1 7:0 163 O_Rect 90 32 1 7:1070 251 O_Rect -1 6 1 7:722 330 O_Rect 11 13 1 7:1156 286 O_Rect 31 14 1 7:621 286 O_Rect -139 10 1 7:538 235 O_Rect -159 10 1 7:1238 319 O_Rect -13 6 1 7:1297 262 O_Rect -54 13 1 7:855 359 O_Pickup 0 1 1 3:979 285 O_Rect -28 15 1 7:804 338 O_Rect 170 7 1 7:463 218 O_Rect -1 6 1 7:1368 204 O_Rect -12 7 1 7:1439 203 O_Rect 10 8 1 7:1566 242 O_Rect 20 19 1 7:1734 292 O_Rect 13 17 1 7:1858 297 O_Rect -17 10 1 7:1919 283 O_Rect 0 3 1 7:2042 295 O_Rect 12 12 1 7:2176 307 O_Rect 0 15 1 7:2358 289 O_Rect -10 22 1 7:2542 270 O_Rect 0 16 1 7:2596 135 O_Rect 90 28 1 7:1972 283 O_Rect 0 3 1 7:1946 283 O_Rect 0 3 1 8:855 329 O_Rect 170 6 1 8:904 320 O_Rect 170 7 1 7:1 99 Tbg 0", "42 296 O_Player 0 1 1 1:233 320 O_Rect 15 15 1 7:89 309 O_Rect 167 7 1 7:304 331 O_Rect 0 9 1 7:486 360 O_Rect 3 8 1 9:0 163 O_Rect 90 32 1 7:719 344 O_Rect -10 8 1 7:1180 286 O_Rect -11 29 1 7:855 329 O_Rect 175 21 1 7:393 345 O_Rect -163 10 1 7:1422 261 O_Rect 1 20 1 7:654 379 O_Pickup 0 1 1 3:556 359 O_Rect -4 9 1 9:455 358 O_Rect -170 7 1 9:141 301 O_Rect -1 4 1 7:1615 280 O_Rect 10 19 1 7:1734 308 O_Rect 3 17 1 7:1858 297 O_Rect -17 10 1 7:1919 283 O_Rect 0 3 1 7:2042 295 O_Rect 12 12 1 7:2176 307 O_Rect 0 15 1 7:2358 289 O_Rect -10 22 1 7:2542 270 O_Rect 0 16 1 7:2596 135 O_Rect 90 28 1 7:1972 283 O_Rect 0 3 1 7:1946 283 O_Rect 0 3 1 8:630 350 O_Rect 179 2 1 7:676 350 O_Rect 179 2 1 7:654 350 O_Rect 179 3 1 8:36 314 O_Rect 180 9 1 7:990 319 O_Rect 175 21 1 7:608 353 O_Rect 170 3 1 9:5 99 Tbg 1", "-135 295 O_Player 0 1 1 1:-281 316 O_Rect 0 38 1 7:457 347 O_Pickup 0 1 1 3:501 286 O_Rect -50 6 1 7:89 297 O_Rect -46 8 1 7:265 304 O_Rect -46 5 1 7:-49 310 O_Rect -28 8 1 7:-79 313 O_Rect -6 8 1 7:311 305 O_Rect 32 8 1 7:404 300 O_Rect 15 5 1 7:457 319 O_Rect -5 5 1 8:238 309 O_Rect -5 6 1 7:190 288 O_Rect 39 7 1 7:25 307 O_Rect 39 5 1 7:54 316 O_Rect -1 5 1 7:141 269 O_Rect -1 5 1 7:-5 292 O_Rect -1 3 1 7:371 303 O_Rect -31 3 1 9:333 313 O_Rect 4 3 1 9:352 311 O_Rect -11 3 1 9:748 279 O_Rect -31 19 1 7:624 300 O_Rect 34 15 1 7:541 262 O_Rect -6 5 1 7:1111 253 O_Rect 9 40 1 7:870 226 O_Rect -6 9 1 7:433 312 O_Rect 37 2 1 7:478 316 O_Rect 117 2 1 7:-464 318 O_Rect 80 4 1 7:-193 178 O_Rect 90 38 1 7:690 307 O_Rect -13 12 1 7:605 142 O_Rect 7 21 1 8:398 144 O_Rect -8 21 1 8:224 150 O_Rect 7 15 1 8:6 99 Tbg 1", "-94 301 O_Player 0 1 1 1:398 437 O_Pickup 0 1 1 3:-84 323 O_Rect 2 22 1 7:403 406 O_Rect 2 28 1 7:267 393 O_Rect 57 4 1 7:224 363 O_Rect 62 4 1 7:184 338 O_Rect 62 4 1 7:132 306 O_Rect 62 5 1 7:94 263 O_Rect 62 6 1 7:237 380 O_Rect 177 5 1 7:195 350 O_Rect 177 5 1 7:155 326 O_Rect 177 5 1 7:99 289 O_Rect 177 5 1 7:723 344 O_Rect 162 43 1 7:66 243 O_Rect 167 4 1 7:38 288 O_Rect 107 9 1 7:7 99 Tbg 0", "-99 256 O_Player 0 1 1 1:478 389 O_Pickup 0 1 1 3:-145 280 O_Rect 2 29 1 7:444 367 O_Rect 3 25 1 7:264 352 O_Rect 57 4 1 7:224 321 O_Rect 62 4 1 7:183 300 O_Rect 62 4 1 7:135 270 O_Rect 62 5 1 7:86 224 O_Rect 62 6 1 7:231 338 O_Rect 177 5 1 7:193 307 O_Rect 177 5 1 7:153 284 O_Rect 177 5 1 7:103 248 O_Rect 177 5 1 7:911 224 O_Rect -177 35 1 7:34 241 O_Rect -178 4 1 7:8 265 O_Rect 112 6 1 7:50 224 O_Rect 117 6 1 7:67 200 O_Rect -178 2 1 7:284 367 O_Rect 171 8 1 7:582 314 O_Rect 107 4 1 7:540 357 O_Rect 107 6 1 7:645 283 O_Rect 107 4 1 7:694 254 O_Rect 107 4 1 7:736 231 O_Rect 107 4 1 7:569 331 O_Rect 177 4 1 7:619 301 O_Rect -176 7 1 7:679 270 O_Rect -176 7 1 7:729 239 O_Rect -180 7 1 7:7 99 Tbg 0", "42 296 O_Player 0 1 1 1:233 320 O_Rect 15 15 1 7:89 309 O_Rect 167 7 1 7:304 331 O_Rect 0 9 1 7:492 345 O_Rect -1 8 1 7:-138 315 O_Rect 180 32 1 7:719 344 O_Rect -10 8 1 7:1180 286 O_Rect -11 28 1 7:855 329 O_Rect 175 21 1 7:393 345 O_Rect -163 10 1 7:1425 261 O_Rect 1 22 1 7:654 379 O_Pickup 0 1 1 3:577 347 O_Rect 3 10 1 7:423 349 O_Rect 176 7 1 7:141 301 O_Rect -1 4 1 7:1628 279 O_Rect 9 19 1 7:1734 308 O_Rect 3 17 1 7:1858 297 O_Rect -17 10 1 7:1919 283 O_Rect 0 3 1 7:2042 295 O_Rect 12 12 1 7:2176 307 O_Rect 0 15 1 7:2358 289 O_Rect -10 22 1 7:2542 270 O_Rect 0 16 1 7:2596 135 O_Rect 90 28 1 7:1972 283 O_Rect 0 3 1 7:1946 283 O_Rect 0 3 1 8:630 350 O_Rect 179 2 1 7:676 350 O_Rect 179 2 1 7:654 350 O_Rect 179 3 1 8:36 314 O_Rect 180 9 1 7:990 319 O_Rect 175 21 1 7:8 99 Tbg 1"); public static const cookLevelDATA:Array = new Array("blank0", "Underdone", "Healthly", "Bronzed", "Perfect", "Pipin' Hot", "Overbrowned", "Too dark", "Charcoal", "Carbonised", "Devilled", "blank0"); public static const levelNameDATA:Array = new Array("blank0", "11pm at 'The Three Steps'", "11pm at 'The Dixon of Dock Green'", "Midnight at 'The Lamb and Golfcart'", "11pm at 'The Pig and Step'", "11pm at 'The Prancing Pakiderm'"); public static const powerHelpDATA:Array = new Array("blank", "HOLD & RELEASE TO FIRE CARROTS AND STUN BADDIES", "ALLOWS YOU TO PUKE BOOST IN ANY DIRECTION MID JUMP", "GIVES YOU CONCENTRATED POWER BOOST TO DOUBLE YOUR DISTANCE"); public static const zomDATA:Array = new Array(["hero", 70, 50, 1, "0xFFCC99", 1, 0, 1, 15], ["regular", 70, 50, 2, "0x81cded", 2, 1, (2 + JMath.getRand(3)), 15, (1 + JMath.getRand(3))], ["boss", 90, (100 + (Main.instance.level * 10)), 3, "0x81cded", 6, 0.75, (Main.instance.level + 1), 25, 6], ["devil", 80, 50, 4, "0xff0000", 2, 1.5, 2, 20, 7], ["flying", 60, 50, 4, "0x00FF66", 3, 1, 2, 25, 5], ["shieldTop", 70, 50, 2, "0x999999", 4, 1, 2, 25, (1 + JMath.getRand(3))], ["shieldBot", 70, 50, 2, "0x999999", 5, 1.5, 5, 25, (1 + JMath.getRand(3))], ["skelly", 70, 30, 5, "0x999999", 2, 1.5, 5, 25, 9], ["flying2", 70, 150, 7, "0x00FF66", 3, 1, 6, 25, 5], ["devil_v2", 80, 150, 8, "0xffffff", 7, 1.5, 6, 25, 7], ["skellyTough", 70, 130, 6, "0x66FFCC", 8, 1.25, 6, 10, 9], ["bob hope", 70, 100, 10, "0x81cded", 6, 1, 6, 20, 1], ["tarby", 70, 100, 11, "0x81cded", 6, 1, 6, 20, 2], ["Bruce", 70, 100, 12, "0x81cded", 6, 1, 6, 20, 3], ["Umbrella", 70, 50, 2, "0x81cded", 9, 1, 6, 20, 7]); } }//package
Section 175
//Main (Main) package { import flash.display.*; import flash.events.*; import mochi.as3.*; import navigation.*; import game.*; import utils.*; import flash.net.*; import flash.external.*; public dynamic class Main extends MovieClip { public var DistVersion:Boolean;// = true public var key_leftArrow; public var key_rightArrow; public var key_upArrow; public var key_downArrow; public var key_spaceBar; public var key_enter:Boolean;// = false public var cash:int; public var score:int; public var lives:int; public var level:int; public var clubSelected:int;// = 0 public var levelTimer:int; public var clicked:int; public var gameState:int; public var plays:int; public var amentsList:Array; public var amentsOnscreen:int;// = 0 public var caddyList:Array; public var ballList:Array; public var levelReached:int; public var tableList:Array; private var lastTime:int; public var timePassed:int; public var myBoard:Board; public var myTable:Table; public var myDepthSortedSprite:DepthSortedSprite; public var myTitleScreen:titleScreen; public var myLevelUpScreen:levelUpScreen; public var myGameOverScreen:gameOverScreen; public var mySoundONOFF:SoundONOFF; public var myAchieveScreen:AchieveScreen; public static var instance:Main; public function Main(){ tableList = []; super(); addFrameScript(0, frame1); instance = this; stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownFunction); stage.addEventListener(KeyboardEvent.KEY_UP, keyUpFunction); stage.addEventListener(MouseEvent.MOUSE_DOWN, MouseDownFunction); stage.addEventListener(MouseEvent.MOUSE_UP, MouseUpFunction); if (!DistVersion){ SiteLocker.testSiteLock(); }; MochiAd.showPreGameAd({clip:root, id:"7ae6e3b51ef98cc6", res:"700x500"}); } public function debug(_arg1){ trace(_arg1); ExternalInterface.call((("debug('FLASH: " + _arg1) + "')")); } public function onCompletelyDownloaded():void{ gotoAndStop(3); addMbSplash(); levelCookie(); } public function mochiDone(){ var _local1:* = new loadingScreen(); addChild(_local1); } public function resetPlayer(){ levelReached = 0; caddyList = [1, 1, 0, 0, 0, 0, 0]; ballList = [1, 1, 1, 1]; } public function cheatPlayer(){ levelReached = 0; caddyList = [1, 1, 1, 1, 1, 1, 1]; ballList = [4, 4, 4, 1]; } public function addAment(_arg1){ var _local2:Ament = new Ament(_arg1, amentsOnscreen, this); Main.instance.addChild(_local2); amentsOnscreen++; } public function addAmentScreen(){ var _local1:AchieveScreen = new AchieveScreen(levelReached); addChild(_local1); myAchieveScreen = _local1; } public function amentGone(){ amentsOnscreen--; } public function levelCookie(){ var _local1:SharedObject = SharedObject.getLocal("zomCook7"); levelReached = _local1.data.levelReached; caddyList = _local1.data.caddyList; ballList = _local1.data.ballList; cash = _local1.data.cash; amentsList = _local1.data.amentsList; if (!levelReached){ resetPlayer(); amentsList = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]; }; } public function writeCookie(){ var _local1:SharedObject = SharedObject.getLocal("zomCook7"); _local1.data.levelReached = levelReached; _local1.data.caddyList = caddyList; _local1.data.ballList = ballList; _local1.data.cash = cash; _local1.data.amentsList = amentsList; _local1.flush(); } public function addMbSplash(){ var _local1:* = new MbSplash(); addChild(_local1); } public function addTable(_arg1, _arg2){ var _local4:int; var _local3:Table = new Table(_arg1, _arg2); addChild(_local3); _local3.addEventListener(NavigationEvent.GAME_OVER, onGameOver); _local3.addEventListener(NavigationEvent.LEVEL_COMPLETE, onLevelComplete); tableList.push(_local3); if (_arg2 == "SELECT"){ _local4 = 2; _local3.scaleX = (_local3.scaleY = 0.5); _local3.x = (((tableList.length - 1) % _local4) * _local3.width); _local3.y = (Math.floor(((tableList.length - 1) / _local4)) * 200); trace(((((("+++++++++++++++++++++++++++++++++ SELECT TABLE ADDED " + tableList.length) + " xval: ") + _local3.x) + " yval: ") + _local3.y)); }; } public function removeTable(){ var _local1:int = (tableList.length - 1); while (_local1 >= 0) { tableList[_local1].deleteMe(); _local1--; }; tableList = []; trace("DELETING OK!"); } public function addDepthSortedSprite(){ var _local1:DepthSortedSprite = new DepthSortedSprite(); addChild(_local1); myDepthSortedSprite = _local1; } public function addTitleScreen(_arg1){ var _local2:titleScreen = new titleScreen(_arg1); addChild(_local2); myTitleScreen = _local2; } public function addLevelSelect(){ var _local1:LevelSelect = new LevelSelect(); addChild(_local1); } public function addLevelEditor(){ var _local1:levelEditor = new levelEditor(); addChild(_local1); } public function addGameOverScreen(_arg1){ var _local2:gameOverScreen = new gameOverScreen(_arg1); addChild(_local2); myGameOverScreen = _local2; } public function addLevelUpScreen(){ var _local1:levelUpScreen = new levelUpScreen(); addChild(_local1); myLevelUpScreen = _local1; } public function startGame(_arg1){ score = 0; level = levelReached; levelBegin(); MochiBot.track(this, "2f5b8eed"); } public function addBoard(){ var _local1:Board = new Board(1, 1); addChild(_local1); myBoard = _local1; } public function levelUp(){ resetGame(); level++; levelReached = level; writeCookie(); levelBegin(); } public function levelBegin(){ stage.focus = stage; levelTimer = 0; var _local1:int = Arrays.levelDATA[level][3]; addTable(Arrays.tableDATA[_local1], "REAL"); } private function onGameOver(_arg1:NavigationEvent):void{ addGameOverScreen(1); trace("POO"); } private function onLevelComplete(_arg1:NavigationEvent):void{ addLevelUpScreen(); trace("POO"); } public function resetGame(){ removeTable(); } public function finishBuildWorld(){ } public function incScore(_arg1:int, _arg2:String){ score = (score + _arg1); if (score < 0){ score = 0; }; } public function ClearButHit(_arg1:MouseEvent){ levelReached = 0; } public function MouseDownFunction(_arg1:MouseEvent){ clicked = 1; } public function MouseUpFunction(_arg1:MouseEvent){ clicked = 0; } public function keyDownFunction(_arg1:KeyboardEvent){ if (_arg1.keyCode == 37){ key_leftArrow = true; } else { if (_arg1.keyCode == 39){ key_rightArrow = true; } else { if (_arg1.keyCode == 38){ key_upArrow = true; } else { if (_arg1.keyCode == 40){ key_downArrow = true; } else { if (_arg1.keyCode == 32){ key_spaceBar = true; } else { if (_arg1.keyCode == 13){ key_enter = true; }; }; }; }; }; }; } public function keyUpFunction(_arg1:KeyboardEvent){ if (_arg1.keyCode == 37){ key_leftArrow = false; } else { if (_arg1.keyCode == 39){ key_rightArrow = false; } else { if (_arg1.keyCode == 38){ key_upArrow = false; } else { if (_arg1.keyCode == 40){ key_downArrow = false; } else { if (_arg1.keyCode == 32){ key_spaceBar = false; } else { if (_arg1.keyCode == 13){ key_enter = false; }; }; }; }; }; }; } function frame1(){ MochiBot.track(this, "d1ffe293"); } trace("class"); } }//package
Section 176
//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 177
//s_airpump (s_airpump) package { import flash.media.*; public dynamic class s_airpump extends Sound { } }//package
Section 178
//s_boing (s_boing) package { import flash.media.*; public dynamic class s_boing extends Sound { } }//package
Section 179
//s_bounce (s_bounce) package { import flash.media.*; public dynamic class s_bounce extends Sound { } }//package
Section 180
//s_cheer (s_cheer) package { import flash.media.*; public dynamic class s_cheer extends Sound { } }//package
Section 181
//s_crowd (s_crowd) package { import flash.media.*; public dynamic class s_crowd extends Sound { } }//package
Section 182
//s_die (s_die) package { import flash.media.*; public dynamic class s_die extends Sound { } }//package
Section 183
//s_explode1 (s_explode1) package { import flash.media.*; public dynamic class s_explode1 extends Sound { } }//package
Section 184
//s_explode2 (s_explode2) package { import flash.media.*; public dynamic class s_explode2 extends Sound { } }//package
Section 185
//s_flames (s_flames) package { import flash.media.*; public dynamic class s_flames extends Sound { } }//package
Section 186
//s_flipper (s_flipper) package { import flash.media.*; public dynamic class s_flipper extends Sound { } }//package
Section 187
//s_freeze (s_freeze) package { import flash.media.*; public dynamic class s_freeze extends Sound { } }//package
Section 188
//s_gong (s_gong) package { import flash.media.*; public dynamic class s_gong extends Sound { } }//package
Section 189
//s_hitMetal (s_hitMetal) package { import flash.media.*; public dynamic class s_hitMetal extends Sound { } }//package
Section 190
//s_hitSplat (s_hitSplat) package { import flash.media.*; public dynamic class s_hitSplat extends Sound { } }//package
Section 191
//s_hitZom (s_hitZom) package { import flash.media.*; public dynamic class s_hitZom extends Sound { } }//package
Section 192
//s_honk (s_honk) package { import flash.media.*; public dynamic class s_honk extends Sound { } }//package
Section 193
//s_kick (s_kick) package { import flash.media.*; public dynamic class s_kick extends Sound { } }//package
Section 194
//s_kick2 (s_kick2) package { import flash.media.*; public dynamic class s_kick2 extends Sound { } }//package
Section 195
//s_lion (s_lion) package { import flash.media.*; public dynamic class s_lion extends Sound { } }//package
Section 196
//s_lucky (s_lucky) package { import flash.media.*; public dynamic class s_lucky extends Sound { } }//package
Section 197
//s_music1 (s_music1) package { import flash.media.*; public dynamic class s_music1 extends Sound { } }//package
Section 198
//s_music2 (s_music2) package { import flash.media.*; public dynamic class s_music2 extends Sound { } }//package
Section 199
//s_musicAmb (s_musicAmb) package { import flash.media.*; public dynamic class s_musicAmb extends Sound { } }//package
Section 200
//s_pop (s_pop) package { import flash.media.*; public dynamic class s_pop extends Sound { } }//package
Section 201
//s_puke1 (s_puke1) package { import flash.media.*; public dynamic class s_puke1 extends Sound { } }//package
Section 202
//s_whistle (s_whistle) package { import flash.media.*; public dynamic class s_whistle extends Sound { } }//package
Section 203
//s_witch (s_witch) package { import flash.media.*; public dynamic class s_witch extends Sound { } }//package
Section 204
//s_zombie1 (s_zombie1) package { import flash.media.*; public dynamic class s_zombie1 extends Sound { } }//package
Section 205
//s_zombie2 (s_zombie2) package { import flash.media.*; public dynamic class s_zombie2 extends Sound { } }//package
Section 206
//s_zombie3 (s_zombie3) package { import flash.media.*; public dynamic class s_zombie3 extends Sound { } }//package
Section 207
//SoundONOFF (SoundONOFF) package { import flash.display.*; public dynamic class SoundONOFF extends MovieClip { public var soundToggle:MovieClip; public var soundBut:MovieClip; } }//package
Section 208
//tileDeath (tileDeath) package { import flash.display.*; public dynamic class tileDeath extends BitmapData { public function tileDeath(_arg1:int=16, _arg2:int=16){ super(_arg1, _arg2); } } }//package
Section 209
//tileGrass (tileGrass) package { import flash.display.*; public dynamic class tileGrass extends BitmapData { public function tileGrass(_arg1:int=64, _arg2:int=64){ super(_arg1, _arg2); } } }//package
Section 210
//tileGrass2 (tileGrass2) package { import flash.display.*; public dynamic class tileGrass2 extends BitmapData { public function tileGrass2(_arg1:int=64, _arg2:int=64){ super(_arg1, _arg2); } } }//package
Section 211
//tileMovable (tileMovable) package { import flash.display.*; public dynamic class tileMovable extends BitmapData { public function tileMovable(_arg1:int=16, _arg2:int=16){ super(_arg1, _arg2); } } }//package
Section 212
//tileMud (tileMud) package { import flash.display.*; public dynamic class tileMud extends BitmapData { public function tileMud(_arg1:int=16, _arg2:int=16){ super(_arg1, _arg2); } } }//package
Section 213
//tileShevron (tileShevron) package { import flash.display.*; public dynamic class tileShevron extends BitmapData { public function tileShevron(_arg1:int=16, _arg2:int=16){ super(_arg1, _arg2); } } }//package
Section 214
//tileShevron2 (tileShevron2) package { import flash.display.*; public dynamic class tileShevron2 extends BitmapData { public function tileShevron2(_arg1:int=16, _arg2:int=16){ super(_arg1, _arg2); } } }//package

Library Items

Symbol 1 Sound {s_musicAmb}Used by:789
Symbol 2 Sound {s_kick2}Used by:789
Symbol 3 Sound {s_cheer}Used by:789
Symbol 4 Sound {s_bounce}Used by:789
Symbol 5 Sound {s_explode1}Used by:789
Symbol 6 Sound {s_lion}Used by:789
Symbol 7 Sound {s_zombie3}Used by:789
Symbol 8 Sound {s_witch}Used by:789
Symbol 9 Sound {s_flames}Used by:789
Symbol 10 Sound {s_zombie2}Used by:789
Symbol 11 Sound {s_whistle}Used by:789
Symbol 12 Sound {s_boing}Used by:789
Symbol 13 Sound {s_music2}Used by:789
Symbol 14 Sound {s_music1}Used by:789
Symbol 15 Sound {s_flipper}Used by:789
Symbol 16 Sound {s_airpump}Used by:789
Symbol 17 Sound {s_hitSplat}Used by:789
Symbol 18 Sound {s_gong}Used by:789
Symbol 19 Sound {s_kick}Used by:789
Symbol 20 Sound {s_die}Used by:789
Symbol 21 Sound {s_pop}Used by:789
Symbol 22 Sound {s_crowd}Used by:789
Symbol 23 Sound {s_explode2}Used by:789
Symbol 24 Sound {s_zombie1}Used by:789
Symbol 25 Sound {s_freeze}Used by:789
Symbol 26 Sound {s_hitMetal}Used by:789
Symbol 27 Sound {s_puke1}Used by:789
Symbol 28 Sound {s_honk}
Symbol 29 Sound {s_lucky}
Symbol 30 Sound {s_hitZom}
Symbol 31 Bitmap {tileShevron2}
Symbol 32 Bitmap {tileShevron}
Symbol 33 Bitmap {tileMud}
Symbol 34 Bitmap {tileMovable}
Symbol 35 Bitmap {tileGrass2}
Symbol 36 Bitmap {tileGrass}
Symbol 37 Bitmap {tileDeath}
Symbol 38 MovieClip {game.ZombieMovie}
Symbol 39 GraphicUsed by:40
Symbol 40 MovieClipUses:39Used by:49
Symbol 41 GraphicUsed by:49
Symbol 42 GraphicUsed by:49
Symbol 43 GraphicUsed by:49
Symbol 44 GraphicUsed by:49
Symbol 45 GraphicUsed by:49
Symbol 46 GraphicUsed by:49
Symbol 47 GraphicUsed by:49
Symbol 48 GraphicUsed by:49
Symbol 49 MovieClipUses:40 41 42 43 44 45 46 47 48Used by:292
Symbol 50 GraphicUsed by:85
Symbol 51 GraphicUsed by:85
Symbol 52 GraphicUsed by:85
Symbol 53 GraphicUsed by:85
Symbol 54 GraphicUsed by:85
Symbol 55 GraphicUsed by:85
Symbol 56 GraphicUsed by:85
Symbol 57 GraphicUsed by:85
Symbol 58 GraphicUsed by:85
Symbol 59 GraphicUsed by:85
Symbol 60 GraphicUsed by:85
Symbol 61 GraphicUsed by:85
Symbol 62 GraphicUsed by:85
Symbol 63 GraphicUsed by:85
Symbol 64 GraphicUsed by:85
Symbol 65 GraphicUsed by:85
Symbol 66 GraphicUsed by:85
Symbol 67 GraphicUsed by:85
Symbol 68 GraphicUsed by:85
Symbol 69 GraphicUsed by:85
Symbol 70 GraphicUsed by:85
Symbol 71 GraphicUsed by:85
Symbol 72 GraphicUsed by:85
Symbol 73 GraphicUsed by:85
Symbol 74 GraphicUsed by:85
Symbol 75 GraphicUsed by:85
Symbol 76 GraphicUsed by:85
Symbol 77 GraphicUsed by:85
Symbol 78 GraphicUsed by:85
Symbol 79 GraphicUsed by:85
Symbol 80 GraphicUsed by:85
Symbol 81 GraphicUsed by:85
Symbol 82 GraphicUsed by:85
Symbol 83 GraphicUsed by:85
Symbol 84 GraphicUsed by:85
Symbol 85 MovieClipUses:50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84Used by:292
Symbol 86 GraphicUsed by:87
Symbol 87 MovieClipUses:86Used by:89
Symbol 88 GraphicUsed by:89
Symbol 89 MovieClipUses:87 88Used by:292
Symbol 90 GraphicUsed by:120
Symbol 91 GraphicUsed by:120
Symbol 92 GraphicUsed by:120
Symbol 93 GraphicUsed by:120
Symbol 94 GraphicUsed by:120
Symbol 95 GraphicUsed by:120
Symbol 96 GraphicUsed by:120
Symbol 97 GraphicUsed by:120
Symbol 98 GraphicUsed by:120
Symbol 99 GraphicUsed by:120
Symbol 100 GraphicUsed by:120
Symbol 101 GraphicUsed by:120
Symbol 102 GraphicUsed by:120
Symbol 103 GraphicUsed by:120
Symbol 104 GraphicUsed by:120
Symbol 105 GraphicUsed by:120
Symbol 106 GraphicUsed by:120
Symbol 107 GraphicUsed by:120
Symbol 108 GraphicUsed by:120
Symbol 109 GraphicUsed by:120
Symbol 110 GraphicUsed by:120
Symbol 111 GraphicUsed by:120
Symbol 112 GraphicUsed by:120
Symbol 113 GraphicUsed by:120
Symbol 114 GraphicUsed by:120
Symbol 115 GraphicUsed by:120
Symbol 116 GraphicUsed by:120
Symbol 117 GraphicUsed by:120
Symbol 118 GraphicUsed by:120
Symbol 119 GraphicUsed by:120
Symbol 120 MovieClipUses:90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119Used by:292
Symbol 121 GraphicUsed by:122
Symbol 122 MovieClipUses:121Used by:292
Symbol 123 GraphicUsed by:124
Symbol 124 MovieClipUses:123Used by:153
Symbol 125 GraphicUsed by:153
Symbol 126 GraphicUsed by:153
Symbol 127 GraphicUsed by:153
Symbol 128 GraphicUsed by:153
Symbol 129 GraphicUsed by:153
Symbol 130 GraphicUsed by:153
Symbol 131 GraphicUsed by:153
Symbol 132 GraphicUsed by:153
Symbol 133 GraphicUsed by:153
Symbol 134 GraphicUsed by:153
Symbol 135 GraphicUsed by:153
Symbol 136 GraphicUsed by:153
Symbol 137 GraphicUsed by:153
Symbol 138 GraphicUsed by:153
Symbol 139 GraphicUsed by:153
Symbol 140 GraphicUsed by:153
Symbol 141 GraphicUsed by:153
Symbol 142 GraphicUsed by:153
Symbol 143 GraphicUsed by:153
Symbol 144 GraphicUsed by:153
Symbol 145 GraphicUsed by:153
Symbol 146 GraphicUsed by:153
Symbol 147 GraphicUsed by:153
Symbol 148 GraphicUsed by:153
Symbol 149 GraphicUsed by:153
Symbol 150 GraphicUsed by:153
Symbol 151 GraphicUsed by:153
Symbol 152 GraphicUsed by:153
Symbol 153 MovieClipUses:124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152Used by:292
Symbol 154 GraphicUsed by:174
Symbol 155 GraphicUsed by:174
Symbol 156 GraphicUsed by:174
Symbol 157 GraphicUsed by:174
Symbol 158 GraphicUsed by:174
Symbol 159 GraphicUsed by:174
Symbol 160 GraphicUsed by:174
Symbol 161 GraphicUsed by:174
Symbol 162 GraphicUsed by:174
Symbol 163 GraphicUsed by:174
Symbol 164 GraphicUsed by:174
Symbol 165 GraphicUsed by:174
Symbol 166 GraphicUsed by:174
Symbol 167 GraphicUsed by:174
Symbol 168 GraphicUsed by:174
Symbol 169 GraphicUsed by:174
Symbol 170 GraphicUsed by:174
Symbol 171 GraphicUsed by:174
Symbol 172 GraphicUsed by:174
Symbol 173 GraphicUsed by:174
Symbol 174 MovieClipUses:154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173Used by:292
Symbol 175 GraphicUsed by:227
Symbol 176 GraphicUsed by:227
Symbol 177 GraphicUsed by:182
Symbol 178 GraphicUsed by:182
Symbol 179 GraphicUsed by:182
Symbol 180 GraphicUsed by:182
Symbol 181 GraphicUsed by:182
Symbol 182 MovieClipUses:177 178 179 180 181Used by:227
Symbol 183 GraphicUsed by:227
Symbol 184 GraphicUsed by:227
Symbol 185 GraphicUsed by:187
Symbol 186 GraphicUsed by:187
Symbol 187 MovieClipUses:185 186Used by:227
Symbol 188 GraphicUsed by:227
Symbol 189 GraphicUsed by:227
Symbol 190 GraphicUsed by:227
Symbol 191 GraphicUsed by:227
Symbol 192 GraphicUsed by:227
Symbol 193 GraphicUsed by:227
Symbol 194 GraphicUsed by:227
Symbol 195 GraphicUsed by:227
Symbol 196 GraphicUsed by:227
Symbol 197 GraphicUsed by:227
Symbol 198 GraphicUsed by:227
Symbol 199 GraphicUsed by:227
Symbol 200 GraphicUsed by:227
Symbol 201 GraphicUsed by:227
Symbol 202 GraphicUsed by:227
Symbol 203 GraphicUsed by:227
Symbol 204 GraphicUsed by:227
Symbol 205 GraphicUsed by:227
Symbol 206 GraphicUsed by:227
Symbol 207 GraphicUsed by:227
Symbol 208 GraphicUsed by:227
Symbol 209 GraphicUsed by:227
Symbol 210 GraphicUsed by:227
Symbol 211 GraphicUsed by:227
Symbol 212 GraphicUsed by:227
Symbol 213 GraphicUsed by:227
Symbol 214 GraphicUsed by:227
Symbol 215 GraphicUsed by:227
Symbol 216 GraphicUsed by:227
Symbol 217 GraphicUsed by:227
Symbol 218 GraphicUsed by:227
Symbol 219 GraphicUsed by:227
Symbol 220 GraphicUsed by:221
Symbol 221 MovieClipUses:220Used by:222
Symbol 222 MovieClip {zombieGolf_Dist_fla.zTorsoShield_145}Uses:221Used by:227
Symbol 223 GraphicUsed by:227
Symbol 224 GraphicUsed by:227
Symbol 225 GraphicUsed by:227
Symbol 226 GraphicUsed by:227
Symbol 227 MovieClipUses:175 176 182 183 184 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 222 223 224 225 226Used by:292
Symbol 228 GraphicUsed by:229
Symbol 229 MovieClipUses:228Used by:231
Symbol 230 GraphicUsed by:231
Symbol 231 MovieClipUses:229 230Used by:271
Symbol 232 GraphicUsed by:271
Symbol 233 GraphicUsed by:250
Symbol 234 GraphicUsed by:250
Symbol 235 GraphicUsed by:250
Symbol 236 GraphicUsed by:250
Symbol 237 GraphicUsed by:250
Symbol 238 GraphicUsed by:250
Symbol 239 GraphicUsed by:250
Symbol 240 GraphicUsed by:250
Symbol 241 GraphicUsed by:250
Symbol 242 GraphicUsed by:250
Symbol 243 GraphicUsed by:250
Symbol 244 GraphicUsed by:250
Symbol 245 GraphicUsed by:250
Symbol 246 GraphicUsed by:250
Symbol 247 GraphicUsed by:250
Symbol 248 GraphicUsed by:250
Symbol 249 GraphicUsed by:250
Symbol 250 MovieClip {zombieGolf_Dist_fla.rHair_111}Uses:233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249Used by:271
Symbol 251 GraphicUsed by:271
Symbol 252 GraphicUsed by:271
Symbol 253 GraphicUsed by:271
Symbol 254 GraphicUsed by:271
Symbol 255 GraphicUsed by:271
Symbol 256 GraphicUsed by:271
Symbol 257 GraphicUsed by:271
Symbol 258 GraphicUsed by:271
Symbol 259 GraphicUsed by:262
Symbol 260 BitmapUsed by:261
Symbol 261 GraphicUses:260Used by:262
Symbol 262 MovieClipUses:259 261Used by:271
Symbol 263 GraphicUsed by:266
Symbol 264 BitmapUsed by:265
Symbol 265 GraphicUses:264Used by:266
Symbol 266 MovieClipUses:263 265Used by:271
Symbol 267 GraphicUsed by:270
Symbol 268 BitmapUsed by:269
Symbol 269 GraphicUses:268Used by:270
Symbol 270 MovieClipUses:267 269Used by:271
Symbol 271 MovieClip {zombieGolf_Dist_fla.rHead_108}Uses:231 232 250 251 252 253 254 255 256 257 258 262 266 270Used by:292 374
Symbol 272 GraphicUsed by:273
Symbol 273 MovieClipUses:272Used by:276
Symbol 274 GraphicUsed by:276
Symbol 275 GraphicUsed by:276
Symbol 276 MovieClipUses:273 274 275Used by:292
Symbol 277 GraphicUsed by:280 416
Symbol 278 GraphicUsed by:280 416
Symbol 279 GraphicUsed by:280 416
Symbol 280 MovieClip {zombieGolf_Dist_fla.zombieBlood_149}Uses:277 278 279Used by:292
Symbol 281 GraphicUsed by:286
Symbol 282 FontUsed by:283 457 458 462 463 464 465 469 470 471 472 473 474 482 484 485 496 497 499 511 516 522 525 526 527 528 529 530 531 618 619 620 621 622 623 625 631 635 658 659 660 661 679 680 682 683 684 685 686 725 728 729 731 732 733 736 737 738 746 747 748 749 750 752 753 755 756 757 761 762 779 782 783 784 785
Symbol 283 EditableTextUses:282Used by:286
Symbol 284 GraphicUsed by:285 587 590
Symbol 285 MovieClipUses:284Used by:286
Symbol 286 MovieClipUses:281 283 285Used by:287
Symbol 287 MovieClip {zombieGolf_Dist_fla.zomMeter_150}Uses:286Used by:292
Symbol 288 GraphicUsed by:289
Symbol 289 MovieClipUses:288Used by:292
Symbol 290 GraphicUsed by:291
Symbol 291 MovieClipUses:290Used by:292
Symbol 292 MovieClip {game.ZombieAnim}Uses:49 85 89 120 122 153 174 227 271 276 280 287 289 291
Symbol 293 GraphicUsed by:294 338 570 590 598 789 790
Symbol 294 MovieClipUses:293Used by:295
Symbol 295 MovieClip {game.PegMovieRect}Uses:294
Symbol 296 MovieClip {game.TableMid}
Symbol 297 MovieClip {game.TableFg}
Symbol 298 GraphicUsed by:301
Symbol 299 GraphicUsed by:301
Symbol 300 GraphicUsed by:301
Symbol 301 MovieClip {game.BgSky}Uses:298 299 300Used by:302
Symbol 302 MovieClip {game.TableBgBlank}Uses:301
Symbol 303 GraphicUsed by:307
Symbol 304 GraphicUsed by:307
Symbol 305 GraphicUsed by:307
Symbol 306 GraphicUsed by:307
Symbol 307 MovieClip {game.BrickMovie}Uses:303 304 305 306
Symbol 308 GraphicUsed by:311
Symbol 309 GraphicUsed by:311
Symbol 310 GraphicUsed by:311
Symbol 311 MovieClip {game.MonsterMovie}Uses:308 309 310
Symbol 312 GraphicUsed by:313
Symbol 313 MovieClip {game.PegMovieRound}Uses:312
Symbol 314 GraphicUsed by:329
Symbol 315 GraphicUsed by:329
Symbol 316 GraphicUsed by:326
Symbol 317 GraphicUsed by:325
Symbol 318 GraphicUsed by:325
Symbol 319 GraphicUsed by:325
Symbol 320 GraphicUsed by:325
Symbol 321 GraphicUsed by:325
Symbol 322 GraphicUsed by:325
Symbol 323 GraphicUsed by:325
Symbol 324 GraphicUsed by:325
Symbol 325 MovieClipUses:317 318 319 320 321 322 323 324Used by:326
Symbol 326 MovieClipUses:316 325Used by:329
Symbol 327 GraphicUsed by:329
Symbol 328 GraphicUsed by:329
Symbol 329 MovieClip {game.PickupMovie}Uses:314 315 326 327 328
Symbol 330 GraphicUsed by:368
Symbol 331 GraphicUsed by:336
Symbol 332 GraphicUsed by:335
Symbol 333 GraphicUsed by:335
Symbol 334 GraphicUsed by:335
Symbol 335 MovieClip {zombieGolf_Dist_fla.playerShotArrowSS_36}Uses:332 333 334Used by:336
Symbol 336 MovieClipUses:331 335Used by:355 626
Symbol 337 GraphicUsed by:355
Symbol 338 MovieClipUses:293Used by:339
Symbol 339 MovieClipUses:338Used by:355
Symbol 340 GraphicUsed by:341
Symbol 341 MovieClipUses:340Used by:355
Symbol 342 GraphicUsed by:345 722 773
Symbol 343 GraphicUsed by:345 369
Symbol 344 GraphicUsed by:345
Symbol 345 MovieClipUses:342 343 344Used by:354
Symbol 346 GraphicUsed by:354
Symbol 347 GraphicUsed by:354
Symbol 348 GraphicUsed by:354
Symbol 349 GraphicUsed by:354
Symbol 350 GraphicUsed by:352
Symbol 351 GraphicUsed by:352
Symbol 352 MovieClipUses:350 351Used by:354
Symbol 353 GraphicUsed by:354
Symbol 354 MovieClip {game.PegMovieBalls}Uses:345 346 347 348 349 352 353Used by:355
Symbol 355 MovieClip {game.ShotArrow}Uses:336 337 339 341 354Used by:368
Symbol 356 GraphicUsed by:368
Symbol 357 GraphicUsed by:368
Symbol 358 GraphicUsed by:368
Symbol 359 GraphicUsed by:368
Symbol 360 GraphicUsed by:368
Symbol 361 GraphicUsed by:368
Symbol 362 GraphicUsed by:368
Symbol 363 GraphicUsed by:368
Symbol 364 GraphicUsed by:368
Symbol 365 GraphicUsed by:368
Symbol 366 GraphicUsed by:368
Symbol 367 GraphicUsed by:368
Symbol 368 MovieClip {game.PlayerMovie}Uses:330 355 356 357 358 359 360 361 362 363 364 365 366 367
Symbol 369 MovieClip {game.PocketMovie}Uses:343
Symbol 370 GraphicUsed by:371
Symbol 371 MovieClip {game.SensorMovie}Uses:370
Symbol 372 GraphicUsed by:373
Symbol 373 MovieClip {game.TableTop}Uses:372
Symbol 374 MovieClip {game.PegHead}Uses:271
Symbol 375 GraphicUsed by:376
Symbol 376 MovieClipUses:375Used by:377
Symbol 377 MovieClip {game.Guide}Uses:376
Symbol 378 GraphicUsed by:379
Symbol 379 MovieClipUses:378Used by:395
Symbol 380 GraphicUsed by:381
Symbol 381 MovieClipUses:380Used by:395 691
Symbol 382 GraphicUsed by:383
Symbol 383 MovieClipUses:382Used by:395
Symbol 384 GraphicUsed by:385
Symbol 385 MovieClipUses:384Used by:395
Symbol 386 GraphicUsed by:387
Symbol 387 MovieClipUses:386Used by:395
Symbol 388 GraphicUsed by:389
Symbol 389 MovieClipUses:388Used by:395
Symbol 390 GraphicUsed by:391
Symbol 391 MovieClipUses:390Used by:395
Symbol 392 GraphicUsed by:393
Symbol 393 MovieClipUses:392Used by:394
Symbol 394 MovieClip {zombieGolf_Dist_fla.particleSmoke_85}Uses:393Used by:395 443
Symbol 395 MovieClip {game.Caddie}Uses:379 381 383 385 387 389 391 394
Symbol 396 GraphicUsed by:401
Symbol 397 GraphicUsed by:401
Symbol 398 GraphicUsed by:401
Symbol 399 GraphicUsed by:401
Symbol 400 GraphicUsed by:401
Symbol 401 MovieClipUses:396 397 398 399 400Used by:403
Symbol 402 GraphicUsed by:403
Symbol 403 MovieClip {game.ParticleMovie}Uses:401 402
Symbol 404 GraphicUsed by:408
Symbol 405 GraphicUsed by:408
Symbol 406 GraphicUsed by:408
Symbol 407 GraphicUsed by:408
Symbol 408 MovieClip {zombieGolf_Dist_fla.instParticleBlood_81}Uses:404 405 406 407Used by:443
Symbol 409 GraphicUsed by:412
Symbol 410 GraphicUsed by:412
Symbol 411 GraphicUsed by:412
Symbol 412 MovieClipUses:409 410 411Used by:415
Symbol 413 GraphicUsed by:414 763
Symbol 414 MovieClipUses:413Used by:415
Symbol 415 MovieClip {zombieGolf_Dist_fla.particleBonusAPPEAR_82}Uses:412 414Used by:443
Symbol 416 MovieClip {zombieGolf_Dist_fla.particleBlood_87}Uses:277 278 279Used by:443
Symbol 417 GraphicUsed by:423
Symbol 418 GraphicUsed by:423
Symbol 419 GraphicUsed by:423
Symbol 420 GraphicUsed by:423
Symbol 421 GraphicUsed by:423
Symbol 422 GraphicUsed by:423
Symbol 423 MovieClip {zombieGolf_Dist_fla.particleBang_88}Uses:417 418 419 420 421 422Used by:443
Symbol 424 GraphicUsed by:425
Symbol 425 MovieClipUses:424Used by:426
Symbol 426 MovieClip {zombieGolf_Dist_fla.particlePottedAnim_89}Uses:425Used by:443
Symbol 427 GraphicUsed by:429
Symbol 428 GraphicUsed by:429
Symbol 429 MovieClipUses:427 428Used by:430
Symbol 430 MovieClip {zombieGolf_Dist_fla.particlePraxisAnim_91}Uses:429Used by:443
Symbol 431 GraphicUsed by:433
Symbol 432 GraphicUsed by:433
Symbol 433 MovieClipUses:431 432Used by:434
Symbol 434 MovieClipUses:433Used by:443
Symbol 435 GraphicUsed by:442
Symbol 436 GraphicUsed by:442
Symbol 437 GraphicUsed by:442
Symbol 438 GraphicUsed by:442
Symbol 439 GraphicUsed by:442
Symbol 440 GraphicUsed by:442
Symbol 441 GraphicUsed by:442
Symbol 442 MovieClip {zombieGolf_Dist_fla.particleBigBLOOD_95}Uses:435 436 437 438 439 440 441Used by:443
Symbol 443 MovieClip {game.InstantParticle}Uses:408 415 394 416 423 426 430 434 442
Symbol 444 GraphicUsed by:445
Symbol 445 MovieClipUses:444Used by:448
Symbol 446 GraphicUsed by:447
Symbol 447 MovieClipUses:446Used by:448
Symbol 448 MovieClip {SoundONOFF}Uses:445 447
Symbol 449 BitmapUsed by:450 453 479 678 701 735 744
Symbol 450 GraphicUses:449Used by:476
Symbol 451 GraphicUsed by:452
Symbol 452 MovieClipUses:451Used by:476
Symbol 453 GraphicUses:449Used by:454
Symbol 454 ButtonUses:453Used by:476
Symbol 455 GraphicUsed by:456
Symbol 456 ButtonUses:455Used by:476
Symbol 457 EditableTextUses:282Used by:476
Symbol 458 TextUses:282Used by:476
Symbol 459 GraphicUsed by:460
Symbol 460 MovieClipUses:459Used by:476
Symbol 461 GraphicUsed by:476
Symbol 462 TextUses:282Used by:476
Symbol 463 TextUses:282Used by:476
Symbol 464 TextUses:282Used by:476
Symbol 465 TextUses:282Used by:476
Symbol 466 GraphicUsed by:476
Symbol 467 GraphicUsed by:468
Symbol 468 MovieClipUses:467Used by:475
Symbol 469 TextUses:282Used by:475
Symbol 470 TextUses:282Used by:475
Symbol 471 TextUses:282Used by:475
Symbol 472 TextUses:282Used by:475
Symbol 473 TextUses:282Used by:475
Symbol 474 TextUses:282Used by:475
Symbol 475 MovieClip {zombieGolf_Dist_fla.ballBoard_60}Uses:468 469 470 471 472 473 474Used by:476 532
Symbol 476 MovieClip {navigation.ClubBox}Uses:450 452 454 456 457 458 460 461 462 463 464 465 466 475
Symbol 477 GraphicUsed by:533
Symbol 478 BitmapUsed by:479
Symbol 479 GraphicUses:449 478Used by:532
Symbol 480 GraphicUsed by:532
Symbol 481 GraphicUsed by:488
Symbol 482 EditableTextUses:282Used by:488
Symbol 483 GraphicUsed by:486
Symbol 484 EditableTextUses:282Used by:486
Symbol 485 EditableTextUses:282Used by:486
Symbol 486 MovieClipUses:483 484 485Used by:488
Symbol 487 GraphicUsed by:488
Symbol 488 MovieClip {zombieGolf_Dist_fla.boardGolfClub_56}Uses:481 482 486 487Used by:532
Symbol 489 GraphicUsed by:532
Symbol 490 FontUsed by:491 492 493 494 495 498 502 506 513 517 518 519 520 521 523 524 788
Symbol 491 EditableTextUses:490Used by:532
Symbol 492 EditableTextUses:490Used by:532
Symbol 493 EditableTextUses:490Used by:532
Symbol 494 EditableTextUses:490Used by:532
Symbol 495 EditableTextUses:490Used by:532
Symbol 496 EditableTextUses:282Used by:532
Symbol 497 EditableTextUses:282Used by:532
Symbol 498 TextUses:490Used by:532
Symbol 499 EditableTextUses:282Used by:532
Symbol 500 GraphicUsed by:532
Symbol 501 GraphicUsed by:504
Symbol 502 TextUses:490Used by:504
Symbol 503 GraphicUsed by:504 507
Symbol 504 ButtonUses:501 502 503Used by:532
Symbol 505 GraphicUsed by:507
Symbol 506 TextUses:490Used by:507
Symbol 507 ButtonUses:505 503 506Used by:532
Symbol 508 GraphicUsed by:509
Symbol 509 MovieClipUses:508Used by:514
Symbol 510 GraphicUsed by:512
Symbol 511 TextUses:282Used by:512
Symbol 512 MovieClipUses:510 511Used by:514
Symbol 513 TextUses:490Used by:514
Symbol 514 MovieClip {zombieGolf_Dist_fla.ballBoardHole_62}Uses:509 512 513Used by:532
Symbol 515 GraphicUsed by:532
Symbol 516 TextUses:282Used by:532
Symbol 517 TextUses:490Used by:532
Symbol 518 TextUses:490Used by:532
Symbol 519 TextUses:490Used by:532
Symbol 520 TextUses:490Used by:532
Symbol 521 TextUses:490Used by:532
Symbol 522 TextUses:282Used by:532
Symbol 523 TextUses:490Used by:532
Symbol 524 TextUses:490Used by:532
Symbol 525 TextUses:282Used by:532
Symbol 526 TextUses:282Used by:532
Symbol 527 TextUses:282Used by:532
Symbol 528 TextUses:282Used by:532
Symbol 529 TextUses:282Used by:532
Symbol 530 TextUses:282Used by:532
Symbol 531 TextUses:282Used by:532
Symbol 532 MovieClipUses:479 480 488 489 491 492 493 494 495 496 497 498 499 500 504 507 475 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531Used by:533
Symbol 533 MovieClip {navigation.Board}Uses:477 532
Symbol 534 GraphicUsed by:566 598
Symbol 535 GraphicUsed by:566
Symbol 536 GraphicUsed by:537 559
Symbol 537 MovieClip {Plato_fla.mouse_52}Uses:536Used by:566
Symbol 538 GraphicUsed by:540
Symbol 539 GraphicUsed by:540
Symbol 540 MovieClip {Plato_fla.eyes_53}Uses:538 539Used by:566
Symbol 541 BitmapUsed by:542
Symbol 542 GraphicUses:541Used by:545
Symbol 543 BitmapUsed by:544
Symbol 544 GraphicUses:543Used by:545
Symbol 545 MovieClip {Plato_fla.Symbol242_54}Uses:542 544Used by:566
Symbol 546 GraphicUsed by:566
Symbol 547 GraphicUsed by:559
Symbol 548 GraphicUsed by:559
Symbol 549 GraphicUsed by:559
Symbol 550 GraphicUsed by:559
Symbol 551 GraphicUsed by:559
Symbol 552 GraphicUsed by:559
Symbol 553 GraphicUsed by:559
Symbol 554 GraphicUsed by:559
Symbol 555 GraphicUsed by:559
Symbol 556 GraphicUsed by:559
Symbol 557 GraphicUsed by:559
Symbol 558 GraphicUsed by:559
Symbol 559 MovieClip {Plato_fla.mouse_55}Uses:536 547 548 549 550 551 552 553 554 555 556 557 558Used by:566
Symbol 560 GraphicUsed by:566
Symbol 561 GraphicUsed by:566 742 751
Symbol 562 FontUsed by:563
Symbol 563 TextUses:562Used by:566
Symbol 564 FontUsed by:565 603 605 687 690 697 700 702 703 704 706 707 709 740 741 758 787 791 792
Symbol 565 TextUses:564Used by:566
Symbol 566 MovieClip {navigation.MbSplash}Uses:534 535 537 540 545 546 559 560 561 563 565
Symbol 567 GraphicUsed by:577
Symbol 568 FontUsed by:569
Symbol 569 EditableTextUses:568Used by:577
Symbol 570 MovieClipUses:293Used by:577
Symbol 571 FontUsed by:572 713 745
Symbol 572 TextUses:571Used by:577
Symbol 573 GraphicUsed by:576
Symbol 574 GraphicUsed by:575
Symbol 575 MovieClipUses:574Used by:576
Symbol 576 MovieClipUses:573 575Used by:577
Symbol 577 MovieClip {navigation.loadingScreen}Uses:567 569 570 572 576
Symbol 578 GraphicUsed by:580
Symbol 579 GraphicUsed by:580
Symbol 580 MovieClip {utils.EditBall}Uses:578 579
Symbol 581 GraphicUsed by:582
Symbol 582 MovieClip {utils.EditBumper}Uses:581
Symbol 583 GraphicUsed by:586
Symbol 584 GraphicUsed by:586
Symbol 585 GraphicUsed by:586
Symbol 586 MovieClip {utils.EditCannon}Uses:583 584 585
Symbol 587 MovieClipUses:284Used by:590
Symbol 588 GraphicUsed by:590
Symbol 589 GraphicUsed by:590
Symbol 590 MovieClip {utils.EditMisc}Uses:293 587 588 589 284
Symbol 591 GraphicUsed by:598
Symbol 592 GraphicUsed by:598
Symbol 593 GraphicUsed by:598
Symbol 594 GraphicUsed by:598
Symbol 595 GraphicUsed by:598
Symbol 596 GraphicUsed by:598
Symbol 597 GraphicUsed by:598
Symbol 598 MovieClip {utils.EditRect}Uses:591 592 593 293 534 594 595 596 597
Symbol 599 FontUsed by:600 632 633 634 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 662 663 696 754
Symbol 600 TextUses:599Used by:607
Symbol 601 GraphicUsed by:606 705 708
Symbol 602 GraphicUsed by:606 705 708
Symbol 603 TextUses:564Used by:606
Symbol 604 GraphicUsed by:606 705 708
Symbol 605 TextUses:564Used by:606
Symbol 606 ButtonUses:601 602 603 604 605Used by:607 699
Symbol 607 MovieClip {utils.TableDestroy}Uses:600 606
Symbol 608 GraphicUsed by:626
Symbol 609 GraphicUsed by:626
Symbol 610 GraphicUsed by:626
Symbol 611 GraphicUsed by:626
Symbol 612 GraphicUsed by:626
Symbol 613 GraphicUsed by:626
Symbol 614 GraphicUsed by:626
Symbol 615 GraphicUsed by:626
Symbol 616 GraphicUsed by:626
Symbol 617 GraphicUsed by:626
Symbol 618 TextUses:282Used by:626
Symbol 619 TextUses:282Used by:626
Symbol 620 TextUses:282Used by:626
Symbol 621 TextUses:282Used by:626
Symbol 622 TextUses:282Used by:626
Symbol 623 TextUses:282Used by:626
Symbol 624 GraphicUsed by:626
Symbol 625 TextUses:282Used by:626
Symbol 626 MovieClip {game.TableBg}Uses:608 609 610 611 612 613 614 615 616 617 336 618 619 620 621 622 623 624 625Used by:665
Symbol 627 GraphicUsed by:665
Symbol 628 GraphicUsed by:630
Symbol 629 GraphicUsed by:630
Symbol 630 ButtonUses:628 629Used by:664 742 786
Symbol 631 EditableTextUses:282Used by:664
Symbol 632 TextUses:599Used by:664
Symbol 633 TextUses:599Used by:664
Symbol 634 TextUses:599Used by:664
Symbol 635 EditableTextUses:282Used by:664
Symbol 636 TextUses:599Used by:664
Symbol 637 TextUses:599Used by:664
Symbol 638 TextUses:599Used by:664
Symbol 639 TextUses:599Used by:664
Symbol 640 TextUses:599Used by:664
Symbol 641 TextUses:599Used by:664
Symbol 642 TextUses:599Used by:664
Symbol 643 TextUses:599Used by:664
Symbol 644 TextUses:599Used by:664
Symbol 645 TextUses:599Used by:664
Symbol 646 TextUses:599Used by:664
Symbol 647 TextUses:599Used by:664
Symbol 648 TextUses:599Used by:664
Symbol 649 TextUses:599Used by:664
Symbol 650 TextUses:599Used by:664
Symbol 651 TextUses:599Used by:664
Symbol 652 TextUses:599Used by:664
Symbol 653 TextUses:599Used by:664
Symbol 654 TextUses:599Used by:664
Symbol 655 TextUses:599Used by:664
Symbol 656 TextUses:599Used by:664
Symbol 657 TextUses:599Used by:664
Symbol 658 EditableTextUses:282Used by:664
Symbol 659 EditableTextUses:282Used by:664
Symbol 660 EditableTextUses:282Used by:664
Symbol 661 EditableTextUses:282Used by:664
Symbol 662 EditableTextUses:599Used by:664
Symbol 663 EditableTextUses:599Used by:664
Symbol 664 MovieClipUses:630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663Used by:665
Symbol 665 MovieClip {utils.levelEditor}Uses:627 626 664
Symbol 666 GraphicUsed by:667
Symbol 667 MovieClip {utils.EditPlayer}Uses:666
Symbol 668 GraphicUsed by:673
Symbol 669 FontUsed by:670
Symbol 670 TextUses:669Used by:673
Symbol 671 FontUsed by:672
Symbol 672 EditableTextUses:671Used by:673
Symbol 673 MovieClipUses:668 670 672Used by:674
Symbol 674 MovieClip {navigation.Ament}Uses:673
Symbol 675 GraphicUsed by:691
Symbol 676 BitmapUsed by:677
Symbol 677 GraphicUses:676Used by:691
Symbol 678 GraphicUses:449Used by:681 691 730 734
Symbol 679 TextUses:282Used by:681
Symbol 680 TextUses:282Used by:681
Symbol 681 ButtonUses:678 679 680Used by:691
Symbol 682 TextUses:282Used by:691
Symbol 683 TextUses:282Used by:691
Symbol 684 TextUses:282Used by:691
Symbol 685 TextUses:282Used by:691
Symbol 686 EditableTextUses:282Used by:691
Symbol 687 EditableTextUses:564Used by:691
Symbol 688 FontUsed by:689
Symbol 689 EditableTextUses:688Used by:691
Symbol 690 EditableTextUses:564Used by:691
Symbol 691 MovieClip {navigation.AchieveScreen}Uses:675 381 677 681 678 682 683 684 685 686 687 689 690
Symbol 692 GraphicUsed by:698
Symbol 693 GraphicUsed by:695
Symbol 694 GraphicUsed by:695
Symbol 695 MovieClipUses:693 694Used by:698
Symbol 696 EditableTextUses:599Used by:698
Symbol 697 EditableTextUses:564Used by:698
Symbol 698 MovieClip {navigation.AmentTag}Uses:692 695 696 697
Symbol 699 MovieClip {navigation.levelUpScreen}Uses:606Used by:790
Symbol 700 TextUses:564Used by:710
Symbol 701 GraphicUses:449Used by:710
Symbol 702 TextUses:564Used by:710
Symbol 703 TextUses:564Used by:705
Symbol 704 TextUses:564Used by:705
Symbol 705 ButtonUses:601 602 703 604 704Used by:710
Symbol 706 TextUses:564Used by:708
Symbol 707 TextUses:564Used by:708
Symbol 708 ButtonUses:601 602 706 604 707Used by:710
Symbol 709 EditableTextUses:564Used by:710
Symbol 710 MovieClip {navigation.gameOverScreen}Uses:700 701 702 705 708 709Used by:790
Symbol 711 GraphicUsed by:742
Symbol 712 GraphicUsed by:742
Symbol 713 TextUses:571Used by:742
Symbol 714 BitmapUsed by:715 759
Symbol 715 GraphicUses:714Used by:722
Symbol 716 GraphicUsed by:717
Symbol 717 MovieClipUses:716Used by:722 763
Symbol 718 GraphicUsed by:722
Symbol 719 GraphicUsed by:720
Symbol 720 MovieClipUses:719Used by:722 763
Symbol 721 GraphicUsed by:722
Symbol 722 MovieClipUses:342 715 717 718 720 721Used by:742 786
Symbol 723 GraphicUsed by:726
Symbol 724 GraphicUsed by:726
Symbol 725 TextUses:282Used by:726
Symbol 726 ButtonUses:723 724 725Used by:742
Symbol 727 GraphicUsed by:742
Symbol 728 TextUses:282Used by:730
Symbol 729 TextUses:282Used by:730
Symbol 730 ButtonUses:678 728 729Used by:742
Symbol 731 TextUses:282Used by:734
Symbol 732 TextUses:282Used by:734
Symbol 733 TextUses:282Used by:734
Symbol 734 ButtonUses:678 731 732 733Used by:742
Symbol 735 GraphicUses:449Used by:739
Symbol 736 TextUses:282Used by:739
Symbol 737 TextUses:282Used by:739
Symbol 738 TextUses:282Used by:739
Symbol 739 ButtonUses:735 736 737 738Used by:742
Symbol 740 TextUses:564Used by:742
Symbol 741 TextUses:564Used by:742
Symbol 742 MovieClip {navigation.titleScreen}Uses:711 630 712 713 561 722 726 727 730 734 739 740 741Used by:790
Symbol 743 GraphicUsed by:775
Symbol 744 GraphicUses:449Used by:751
Symbol 745 TextUses:571Used by:751
Symbol 746 TextUses:282Used by:751
Symbol 747 TextUses:282Used by:751
Symbol 748 TextUses:282Used by:751
Symbol 749 TextUses:282Used by:751
Symbol 750 TextUses:282Used by:751
Symbol 751 MovieClipUses:744 745 561 746 747 748 749 750Used by:775
Symbol 752 EditableTextUses:282Used by:775
Symbol 753 EditableTextUses:282Used by:775
Symbol 754 EditableTextUses:599Used by:775
Symbol 755 EditableTextUses:282Used by:775
Symbol 756 EditableTextUses:282Used by:775
Symbol 757 EditableTextUses:282Used by:775
Symbol 758 EditableTextUses:564Used by:775
Symbol 759 GraphicUses:714Used by:763
Symbol 760 GraphicUsed by:763
Symbol 761 TextUses:282Used by:763
Symbol 762 TextUses:282Used by:763
Symbol 763 MovieClipUses:413 759 760 761 717 720 762Used by:764
Symbol 764 MovieClip {zombieGolf_Dist_fla.guiTurnFlipper_9}Uses:763Used by:775
Symbol 765 GraphicUsed by:768
Symbol 766 FontUsed by:767
Symbol 767 EditableTextUses:766Used by:768
Symbol 768 MovieClipUses:765 767Used by:774
Symbol 769 GraphicUsed by:773
Symbol 770 BitmapUsed by:771
Symbol 771 GraphicUses:770Used by:773
Symbol 772 GraphicUsed by:773
Symbol 773 MovieClipUses:769 342 771 772Used by:774
Symbol 774 MovieClip {zombieGolf_Dist_fla.GUI_ray_11}Uses:768 773Used by:775
Symbol 775 MovieClip {navigation.InGameGui}Uses:743 751 752 753 754 755 756 757 758 764 774Used by:790
Symbol 776 GraphicUsed by:786
Symbol 777 FontUsed by:778 780 781
Symbol 778 EditableTextUses:777Used by:786
Symbol 779 TextUses:282Used by:786
Symbol 780 TextUses:777Used by:786
Symbol 781 TextUses:777Used by:786
Symbol 782 EditableTextUses:282Used by:786
Symbol 783 TextUses:282Used by:786
Symbol 784 TextUses:282Used by:786
Symbol 785 TextUses:282Used by:786
Symbol 786 MovieClip {navigation.LevelSelect}Uses:776 722 778 779 780 781 782 783 784 785 630Used by:790
Symbol 787 TextUses:564Used by:Timeline
Symbol 788 EditableTextUses:490Used by:789
Symbol 789 MovieClipUses:293 788 1 3 25 16 12 15 6 8 7 10 24 11 27 21 13 14 2 19 17 26 18 20 9 23 5 22 4Used by:790
Symbol 790 MovieClipUses:293 786 775 742 710 699 789Used by:Timeline
Symbol 791 TextUses:564Used by:Timeline
Symbol 792 TextUses:564Used by:Timeline

Instance Names

"skin"Symbol 49 MovieClip Frame 1Symbol 40 MovieClip
"skin"Symbol 89 MovieClip Frame 1Symbol 87 MovieClip
"skin"Symbol 153 MovieClip Frame 1Symbol 124 MovieClip
"shield"Symbol 227 MovieClip Frame 51Symbol 222 MovieClip {zombieGolf_Dist_fla.zTorsoShield_145}
"shield"Symbol 227 MovieClip Frame 53Symbol 222 MovieClip {zombieGolf_Dist_fla.zTorsoShield_145}
"skin"Symbol 231 MovieClip Frame 1Symbol 229 MovieClip
"rHeadType"Symbol 271 MovieClip {zombieGolf_Dist_fla.rHead_108} Frame 1Symbol 231 MovieClip
"rHair"Symbol 271 MovieClip {zombieGolf_Dist_fla.rHead_108} Frame 1Symbol 250 MovieClip {zombieGolf_Dist_fla.rHair_111}
"skin"Symbol 276 MovieClip Frame 1Symbol 273 MovieClip
"damage"Symbol 286 MovieClip Frame 1Symbol 283 EditableText
"zomMeterBar"Symbol 286 MovieClip Frame 1Symbol 285 MovieClip
"zomMeterClip"Symbol 287 MovieClip {zombieGolf_Dist_fla.zomMeter_150} Frame 1Symbol 286 MovieClip
"rLowerArm2"Symbol 292 MovieClip {game.ZombieAnim} Frame 1Symbol 49 MovieClip
"rArmUpper2"Symbol 292 MovieClip {game.ZombieAnim} Frame 1Symbol 85 MovieClip
"rHand2"Symbol 292 MovieClip {game.ZombieAnim} Frame 1Symbol 89 MovieClip
"rLowerLeg2"Symbol 292 MovieClip {game.ZombieAnim} Frame 1Symbol 120 MovieClip
"rFoot2"Symbol 292 MovieClip {game.ZombieAnim} Frame 1Symbol 122 MovieClip
"rLegUpper2"Symbol 292 MovieClip {game.ZombieAnim} Frame 1Symbol 153 MovieClip
"rPants"Symbol 292 MovieClip {game.ZombieAnim} Frame 1Symbol 174 MovieClip
"rLowerLeg1"Symbol 292 MovieClip {game.ZombieAnim} Frame 1Symbol 120 MovieClip
"rFoot1"Symbol 292 MovieClip {game.ZombieAnim} Frame 1Symbol 122 MovieClip
"rLegUpper1"Symbol 292 MovieClip {game.ZombieAnim} Frame 1Symbol 153 MovieClip
"rTorso"Symbol 292 MovieClip {game.ZombieAnim} Frame 1Symbol 227 MovieClip
"rHead"Symbol 292 MovieClip {game.ZombieAnim} Frame 1Symbol 271 MovieClip {zombieGolf_Dist_fla.rHead_108}
"rLowerArm1"Symbol 292 MovieClip {game.ZombieAnim} Frame 1Symbol 49 MovieClip
"rArmUpper1"Symbol 292 MovieClip {game.ZombieAnim} Frame 1Symbol 85 MovieClip
"rHand1"Symbol 292 MovieClip {game.ZombieAnim} Frame 1Symbol 276 MovieClip
"blood"Symbol 292 MovieClip {game.ZombieAnim} Frame 1Symbol 280 MovieClip {zombieGolf_Dist_fla.zombieBlood_149}
"zomMeter"Symbol 292 MovieClip {game.ZombieAnim} Frame 1Symbol 287 MovieClip {zombieGolf_Dist_fla.zomMeter_150}
"body"Symbol 295 MovieClip {game.PegMovieRect} Frame 1Symbol 294 MovieClip
"bgSky"Symbol 302 MovieClip {game.TableBgBlank} Frame 1Symbol 301 MovieClip {game.BgSky}
"sSpot"Symbol 336 MovieClip Frame 1Symbol 335 MovieClip {zombieGolf_Dist_fla.playerShotArrowSS_36}
"shotArrowClipBar"Symbol 339 MovieClip Frame 1Symbol 338 MovieClip
"special"Symbol 354 MovieClip {game.PegMovieBalls} Frame 1Symbol 345 MovieClip
"bg1"Symbol 355 MovieClip {game.ShotArrow} Frame 1Symbol 336 MovieClip
"lockArrowClip"Symbol 355 MovieClip {game.ShotArrow} Frame 1Symbol 339 MovieClip
"powerArrowClip"Symbol 355 MovieClip {game.ShotArrow} Frame 1Symbol 339 MovieClip
"shotArrowClip"Symbol 355 MovieClip {game.ShotArrow} Frame 1Symbol 341 MovieClip
"ball"Symbol 355 MovieClip {game.ShotArrow} Frame 1Symbol 354 MovieClip {game.PegMovieBalls}
"shotArrow"Symbol 368 MovieClip {game.PlayerMovie} Frame 1Symbol 355 MovieClip {game.ShotArrow}
"rHead"Symbol 374 MovieClip {game.PegHead} Frame 1Symbol 271 MovieClip {zombieGolf_Dist_fla.rHead_108}
"g0"Symbol 377 MovieClip {game.Guide} Frame 1Symbol 376 MovieClip
"g1"Symbol 377 MovieClip {game.Guide} Frame 1Symbol 376 MovieClip
"g2"Symbol 377 MovieClip {game.Guide} Frame 1Symbol 376 MovieClip
"g3"Symbol 377 MovieClip {game.Guide} Frame 1Symbol 376 MovieClip
"g4"Symbol 377 MovieClip {game.Guide} Frame 1Symbol 376 MovieClip
"g5"Symbol 377 MovieClip {game.Guide} Frame 1Symbol 376 MovieClip
"g6"Symbol 377 MovieClip {game.Guide} Frame 1Symbol 376 MovieClip
"animBody"Symbol 403 MovieClip {game.ParticleMovie} Frame 1Symbol 401 MovieClip
"body"Symbol 443 MovieClip {game.InstantParticle} Frame 1Symbol 408 MovieClip {zombieGolf_Dist_fla.instParticleBlood_81}
"body"Symbol 443 MovieClip {game.InstantParticle} Frame 2Symbol 415 MovieClip {zombieGolf_Dist_fla.particleBonusAPPEAR_82}
"body"Symbol 443 MovieClip {game.InstantParticle} Frame 3Symbol 394 MovieClip {zombieGolf_Dist_fla.particleSmoke_85}
"body"Symbol 443 MovieClip {game.InstantParticle} Frame 5Symbol 416 MovieClip {zombieGolf_Dist_fla.particleBlood_87}
"body"Symbol 443 MovieClip {game.InstantParticle} Frame 6Symbol 423 MovieClip {zombieGolf_Dist_fla.particleBang_88}
"body"Symbol 443 MovieClip {game.InstantParticle} Frame 6Symbol 423 MovieClip {zombieGolf_Dist_fla.particleBang_88}
"body"Symbol 443 MovieClip {game.InstantParticle} Frame 6Symbol 423 MovieClip {zombieGolf_Dist_fla.particleBang_88}
"body"Symbol 443 MovieClip {game.InstantParticle} Frame 6Symbol 423 MovieClip {zombieGolf_Dist_fla.particleBang_88}
"body"Symbol 443 MovieClip {game.InstantParticle} Frame 7Symbol 426 MovieClip {zombieGolf_Dist_fla.particlePottedAnim_89}
"body"Symbol 443 MovieClip {game.InstantParticle} Frame 10Symbol 423 MovieClip {zombieGolf_Dist_fla.particleBang_88}
"soundBut"Symbol 448 MovieClip {SoundONOFF} Frame 1Symbol 445 MovieClip
"soundToggle"Symbol 448 MovieClip {SoundONOFF} Frame 1Symbol 447 MovieClip
"b1"Symbol 476 MovieClip {navigation.ClubBox} Frame 1Symbol 454 Button
"b2"Symbol 476 MovieClip {navigation.ClubBox} Frame 1Symbol 454 Button
"b3"Symbol 476 MovieClip {navigation.ClubBox} Frame 1Symbol 456 Button
"b4"Symbol 476 MovieClip {navigation.ClubBox} Frame 1Symbol 456 Button
"b5"Symbol 476 MovieClip {navigation.ClubBox} Frame 1Symbol 456 Button
"b6"Symbol 476 MovieClip {navigation.ClubBox} Frame 1Symbol 456 Button
"club"Symbol 476 MovieClip {navigation.ClubBox} Frame 1Symbol 457 EditableText
"b0"Symbol 476 MovieClip {navigation.ClubBox} Frame 1Symbol 454 Button
"highlight"Symbol 476 MovieClip {navigation.ClubBox} Frame 1Symbol 460 MovieClip
"nextBall"Symbol 476 MovieClip {navigation.ClubBox} Frame 1Symbol 475 MovieClip {zombieGolf_Dist_fla.ballBoard_60}
"info"Symbol 486 MovieClip Frame 1Symbol 484 EditableText
"cost"Symbol 486 MovieClip Frame 1Symbol 485 EditableText
"clubNum"Symbol 488 MovieClip {zombieGolf_Dist_fla.boardGolfClub_56} Frame 1Symbol 482 EditableText
"clubInfo"Symbol 488 MovieClip {zombieGolf_Dist_fla.boardGolfClub_56} Frame 1Symbol 486 MovieClip
"BallNew"Symbol 514 MovieClip {zombieGolf_Dist_fla.ballBoardHole_62} Frame 1Symbol 512 MovieClip
"c1"Symbol 532 MovieClip Frame 1Symbol 488 MovieClip {zombieGolf_Dist_fla.boardGolfClub_56}
"c0"Symbol 532 MovieClip Frame 1Symbol 488 MovieClip {zombieGolf_Dist_fla.boardGolfClub_56}
"c5"Symbol 532 MovieClip Frame 1Symbol 488 MovieClip {zombieGolf_Dist_fla.boardGolfClub_56}
"c3"Symbol 532 MovieClip Frame 1Symbol 488 MovieClip {zombieGolf_Dist_fla.boardGolfClub_56}
"c2"Symbol 532 MovieClip Frame 1Symbol 488 MovieClip {zombieGolf_Dist_fla.boardGolfClub_56}
"c4"Symbol 532 MovieClip Frame 1Symbol 488 MovieClip {zombieGolf_Dist_fla.boardGolfClub_56}
"c6"Symbol 532 MovieClip Frame 1Symbol 488 MovieClip {zombieGolf_Dist_fla.boardGolfClub_56}
"cb5"Symbol 532 MovieClip Frame 1Symbol 488 MovieClip {zombieGolf_Dist_fla.boardGolfClub_56}
"cb4"Symbol 532 MovieClip Frame 1Symbol 488 MovieClip {zombieGolf_Dist_fla.boardGolfClub_56}
"cb3"Symbol 532 MovieClip Frame 1Symbol 488 MovieClip {zombieGolf_Dist_fla.boardGolfClub_56}
"cb2"Symbol 532 MovieClip Frame 1Symbol 488 MovieClip {zombieGolf_Dist_fla.boardGolfClub_56}
"cb1"Symbol 532 MovieClip Frame 1Symbol 488 MovieClip {zombieGolf_Dist_fla.boardGolfClub_56}
"cb0"Symbol 532 MovieClip Frame 1Symbol 488 MovieClip {zombieGolf_Dist_fla.boardGolfClub_56}
"cb6"Symbol 532 MovieClip Frame 1Symbol 488 MovieClip {zombieGolf_Dist_fla.boardGolfClub_56}
"batter"Symbol 532 MovieClip Frame 1Symbol 491 EditableText
"bowler"Symbol 532 MovieClip Frame 1Symbol 492 EditableText
"skills"Symbol 532 MovieClip Frame 1Symbol 493 EditableText
"batterName"Symbol 532 MovieClip Frame 1Symbol 494 EditableText
"bowlerName"Symbol 532 MovieClip Frame 1Symbol 495 EditableText
"ballName"Symbol 532 MovieClip Frame 1Symbol 496 EditableText
"score"Symbol 532 MovieClip Frame 1Symbol 497 EditableText
"cash"Symbol 532 MovieClip Frame 1Symbol 499 EditableText
"moreBatBut"Symbol 532 MovieClip Frame 1Symbol 504 Button
"moreBowlBut"Symbol 532 MovieClip Frame 1Symbol 504 Button
"nextBut"Symbol 532 MovieClip Frame 1Symbol 507 Button
"doneBut"Symbol 532 MovieClip Frame 1Symbol 507 Button
"fixBatBut"Symbol 532 MovieClip Frame 1Symbol 504 Button
"bs0"Symbol 532 MovieClip Frame 1Symbol 475 MovieClip {zombieGolf_Dist_fla.ballBoard_60}
"bs1"Symbol 532 MovieClip Frame 1Symbol 475 MovieClip {zombieGolf_Dist_fla.ballBoard_60}
"bs2"Symbol 532 MovieClip Frame 1Symbol 475 MovieClip {zombieGolf_Dist_fla.ballBoard_60}
"bh4"Symbol 532 MovieClip Frame 1Symbol 514 MovieClip {zombieGolf_Dist_fla.ballBoardHole_62}
"bh3"Symbol 532 MovieClip Frame 1Symbol 514 MovieClip {zombieGolf_Dist_fla.ballBoardHole_62}
"bh2"Symbol 532 MovieClip Frame 1Symbol 514 MovieClip {zombieGolf_Dist_fla.ballBoardHole_62}
"bh5"Symbol 532 MovieClip Frame 1Symbol 514 MovieClip {zombieGolf_Dist_fla.ballBoardHole_62}
"bh6"Symbol 532 MovieClip Frame 1Symbol 514 MovieClip {zombieGolf_Dist_fla.ballBoardHole_62}
"b4"Symbol 532 MovieClip Frame 1Symbol 475 MovieClip {zombieGolf_Dist_fla.ballBoard_60}
"b3"Symbol 532 MovieClip Frame 1Symbol 475 MovieClip {zombieGolf_Dist_fla.ballBoard_60}
"b2"Symbol 532 MovieClip Frame 1Symbol 475 MovieClip {zombieGolf_Dist_fla.ballBoard_60}
"b5"Symbol 532 MovieClip Frame 1Symbol 475 MovieClip {zombieGolf_Dist_fla.ballBoard_60}
"b6"Symbol 532 MovieClip Frame 1Symbol 475 MovieClip {zombieGolf_Dist_fla.ballBoard_60}
"bs3"Symbol 532 MovieClip Frame 1Symbol 475 MovieClip {zombieGolf_Dist_fla.ballBoard_60}
"boardFace"Symbol 533 MovieClip {navigation.Board} Frame 1Symbol 532 MovieClip
"exp"Symbol 566 MovieClip {navigation.MbSplash} Frame 45Symbol 545 MovieClip {Plato_fla.Symbol242_54}
"pipe"Symbol 576 MovieClip Frame 1Symbol 575 MovieClip
"loadingText"Symbol 577 MovieClip {navigation.loadingScreen} Frame 1Symbol 569 EditableText
"loadingBar"Symbol 577 MovieClip {navigation.loadingScreen} Frame 1Symbol 570 MovieClip
"cokeLine"Symbol 577 MovieClip {navigation.loadingScreen} Frame 1Symbol 576 MovieClip
"miscLimit"Symbol 590 MovieClip {utils.EditMisc} Frame 1Symbol 587 MovieClip
"tableDestroyBut"Symbol 607 MovieClip {utils.TableDestroy} Frame 1Symbol 606 Button
"bg1"Symbol 626 MovieClip {game.TableBg} Frame 8Symbol 336 MovieClip
"buildBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"ballBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"pocketBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"edgeBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"rotBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"scrollLeftBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"scrollRightBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"textBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"makeEditBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"makeDefaultTableBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"buildFromCodeBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"wipeBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"wipeObjectBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"bumperBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"cannonBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"bgBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"scaleDownXBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"scaleUpXBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"scaleDownYBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"scaleUpYBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"rectBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"changeTypeBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"miscBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"cloneObjectBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"playTypeBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"levelInput"Symbol 664 MovieClip Frame 1Symbol 631 EditableText
"levelOutput"Symbol 664 MovieClip Frame 1Symbol 635 EditableText
"selectPosition"Symbol 664 MovieClip Frame 1Symbol 658 EditableText
"ballTimer"Symbol 664 MovieClip Frame 1Symbol 659 EditableText
"playTypeText"Symbol 664 MovieClip Frame 1Symbol 661 EditableText
"loadLevelFromArrayBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"changeLevelFromArrayBut"Symbol 664 MovieClip Frame 1Symbol 630 Button
"loadLevelText"Symbol 664 MovieClip Frame 1Symbol 662 EditableText
"rotateAmount"Symbol 664 MovieClip Frame 1Symbol 663 EditableText
"tableBg"Symbol 665 MovieClip {utils.levelEditor} Frame 1Symbol 626 MovieClip {game.TableBg}
"editPanel"Symbol 665 MovieClip {utils.levelEditor} Frame 1Symbol 664 MovieClip
"aText"Symbol 673 MovieClip Frame 1Symbol 672 EditableText
"aClip"Symbol 674 MovieClip {navigation.Ament} Frame 1Symbol 673 MovieClip
"backBut"Symbol 691 MovieClip {navigation.AchieveScreen} Frame 1Symbol 681 Button
"percentAchieved"Symbol 691 MovieClip {navigation.AchieveScreen} Frame 1Symbol 686 EditableText
"tablesUnlocked"Symbol 691 MovieClip {navigation.AchieveScreen} Frame 1Symbol 687 EditableText
"tablesPerfected"Symbol 691 MovieClip {navigation.AchieveScreen} Frame 1Symbol 689 EditableText
"tablesPerfected"Symbol 691 MovieClip {navigation.AchieveScreen} Frame 1Symbol 690 EditableText
"icon"Symbol 698 MovieClip {navigation.AmentTag} Frame 1Symbol 695 MovieClip
"achieveTitle"Symbol 698 MovieClip {navigation.AmentTag} Frame 1Symbol 696 EditableText
"achieveDesc"Symbol 698 MovieClip {navigation.AmentTag} Frame 1Symbol 697 EditableText
"levelUpBut"Symbol 699 MovieClip {navigation.levelUpScreen} Frame 1Symbol 606 Button
"againBut"Symbol 710 MovieClip {navigation.gameOverScreen} Frame 1Symbol 705 Button
"submitBut"Symbol 710 MovieClip {navigation.gameOverScreen} Frame 1Symbol 708 Button
"playerName"Symbol 710 MovieClip {navigation.gameOverScreen} Frame 1Symbol 709 EditableText
"editBut"Symbol 742 MovieClip {navigation.titleScreen} Frame 1Symbol 630 Button
"startBut"Symbol 742 MovieClip {navigation.titleScreen} Frame 1Symbol 726 Button
"wipeBut"Symbol 742 MovieClip {navigation.titleScreen} Frame 1Symbol 730 Button
"amentBut"Symbol 742 MovieClip {navigation.titleScreen} Frame 1Symbol 734 Button
"linkBut"Symbol 742 MovieClip {navigation.titleScreen} Frame 1Symbol 739 Button
"flipperClip"Symbol 764 MovieClip {zombieGolf_Dist_fla.guiTurnFlipper_9} Frame 1Symbol 763 MovieClip
"rayText"Symbol 768 MovieClip Frame 1Symbol 767 EditableText
"rayBub"Symbol 774 MovieClip {zombieGolf_Dist_fla.GUI_ray_11} Frame 1Symbol 768 MovieClip
"bar"Symbol 775 MovieClip {navigation.InGameGui} Frame 1Symbol 751 MovieClip
"prizeMoney"Symbol 775 MovieClip {navigation.InGameGui} Frame 1Symbol 752 EditableText
"distToHole"Symbol 775 MovieClip {navigation.InGameGui} Frame 1Symbol 753 EditableText
"levelPar"Symbol 775 MovieClip {navigation.InGameGui} Frame 1Symbol 754 EditableText
"levelName"Symbol 775 MovieClip {navigation.InGameGui} Frame 1Symbol 755 EditableText
"playerCash"Symbol 775 MovieClip {navigation.InGameGui} Frame 1Symbol 756 EditableText
"playerScore"Symbol 775 MovieClip {navigation.InGameGui} Frame 1Symbol 757 EditableText
"playerShots"Symbol 775 MovieClip {navigation.InGameGui} Frame 1Symbol 758 EditableText
"flipper"Symbol 775 MovieClip {navigation.InGameGui} Frame 1Symbol 764 MovieClip {zombieGolf_Dist_fla.guiTurnFlipper_9}
"ray"Symbol 775 MovieClip {navigation.InGameGui} Frame 1Symbol 774 MovieClip {zombieGolf_Dist_fla.GUI_ray_11}
"levelName"Symbol 786 MovieClip {navigation.LevelSelect} Frame 1Symbol 778 EditableText
"levelToGo"Symbol 786 MovieClip {navigation.LevelSelect} Frame 1Symbol 782 EditableText
"butStart"Symbol 786 MovieClip {navigation.LevelSelect} Frame 1Symbol 630 Button
"butStart1"Symbol 786 MovieClip {navigation.LevelSelect} Frame 1Symbol 630 Button
"butStart2"Symbol 786 MovieClip {navigation.LevelSelect} Frame 1Symbol 630 Button
"butStart3"Symbol 786 MovieClip {navigation.LevelSelect} Frame 1Symbol 630 Button

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.

Labels

"fan"Symbol 120 MovieClip Frame 44
"fan"Symbol 122 MovieClip Frame 45
"spiker"Symbol 122 MovieClip Frame 46
"wag"Symbol 122 MovieClip Frame 48
"naked"Symbol 122 MovieClip Frame 60
"fan"Symbol 153 MovieClip Frame 44
"fan"Symbol 174 MovieClip Frame 45
"spiker"Symbol 174 MovieClip Frame 46
"human"Symbol 271 MovieClip {zombieGolf_Dist_fla.rHead_108} Frame 1
"regular"Symbol 271 MovieClip {zombieGolf_Dist_fla.rHead_108} Frame 2
"blood"Symbol 280 MovieClip {zombieGolf_Dist_fla.zombieBlood_149} Frame 2
"sticky"Symbol 280 MovieClip {zombieGolf_Dist_fla.zombieBlood_149} Frame 8
"ambient"Symbol 292 MovieClip {game.ZombieAnim} Frame 1
"run"Symbol 292 MovieClip {game.ZombieAnim} Frame 57
"throw"Symbol 292 MovieClip {game.ZombieAnim} Frame 83
"kick1"Symbol 292 MovieClip {game.ZombieAnim} Frame 112
"zomWalk"Symbol 292 MovieClip {game.ZombieAnim} Frame 132
"reWalk"Symbol 292 MovieClip {game.ZombieAnim} Frame 146
"hitHigh"Symbol 292 MovieClip {game.ZombieAnim} Frame 162
"hitMid"Symbol 292 MovieClip {game.ZombieAnim} Frame 193
"hitLow"Symbol 292 MovieClip {game.ZombieAnim} Frame 240
"getUp"Symbol 292 MovieClip {game.ZombieAnim} Frame 285
"die"Symbol 292 MovieClip {game.ZombieAnim} Frame 297
"keeperAmb"Symbol 292 MovieClip {game.ZombieAnim} Frame 357
"keeperSave"Symbol 292 MovieClip {game.ZombieAnim} Frame 380
"emerge"Symbol 292 MovieClip {game.ZombieAnim} Frame 394
"flight"Symbol 292 MovieClip {game.ZombieAnim} Frame 448
"flightHit"Symbol 292 MovieClip {game.ZombieAnim} Frame 461
"flightBounce"Symbol 292 MovieClip {game.ZombieAnim} Frame 469
"eat"Symbol 292 MovieClip {game.ZombieAnim} Frame 489
"eatLoop"Symbol 292 MovieClip {game.ZombieAnim} Frame 504
"swingStart"Symbol 292 MovieClip {game.ZombieAnim} Frame 522
"swingShot"Symbol 292 MovieClip {game.ZombieAnim} Frame 533
"swingAmb"Symbol 292 MovieClip {game.ZombieAnim} Frame 551
"getClub"Symbol 292 MovieClip {game.ZombieAnim} Frame 563
"potted"Symbol 329 MovieClip {game.PickupMovie} Frame 10
"amb"Symbol 368 MovieClip {game.PlayerMovie} Frame 2
"clubGive"Symbol 395 MovieClip {game.Caddie} Frame 11
"win"Symbol 395 MovieClip {game.Caddie} Frame 30
"lose"Symbol 395 MovieClip {game.Caddie} Frame 43
"blood"Symbol 416 MovieClip {zombieGolf_Dist_fla.particleBlood_87} Frame 1
"pop"Symbol 774 MovieClip {zombieGolf_Dist_fla.GUI_ray_11} Frame 2
"stay"Symbol 774 MovieClip {zombieGolf_Dist_fla.GUI_ray_11} Frame 126




http://swfchan.com/47/231528/info.shtml
Created: 7/2 -2020 17:24:04 Last modified: 7/2 -2020 17:24:04 Server time: 09/05 -2024 11:21:36