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

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

Stonepunk - help the stone age scientist to upgrade his vehicle.swf

This is the info page for
Flash #90285

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


Text
loading...

stonepunk's about to be loaded...

developed by steelpanda team
steelpanda.com

Play more at

1

2

3

4

5

6

7

8

9

10

11

Dynamic
sprite

Convex

non-convex

UPGRADES

x

Welcome

Paused...

Menu

Pause

height

displacement

0

0

Speed

MUTE

x

Use the Space bar for acceleration
You can buy three accelerators:
the rodent for ground
the pterodactyl for air
and the turtle for water.

s

W

Use the
Arrow Keys
to move UP
and DOWN

when you
are on the
road.

Sound

Acheivement earned

Play Again

SUBMIT
SCORE

Main Menu

Continue

You escaped the doom!
you win!

Race results

Distance:

3413413

Duration:

232342

Max height:

3413413

max speed:

232342

Total:

232342

continue

Main Menu

brought to you by

Select stage

500
metres

1000
metres

2000
metres

3000
metres

5000
metres

75 mph

100 mph

200 mph

250 mph

300 mph

30m
HEIGHT

50m
HEIGHT

100m
HEIGHT

400m
HEIGHT

1000m
HEIGHT

5 secs

15 secs

25 secs

15,000
metres

Man
Cannon

Addiction

Text Achivement

TErrific!

Runway 1

runway 2

runway 3

runway 4

runway 5

Just Go

a
c
h
i
e
v
e
m
e
n
t
s

a
c
h
i
e
v
e
m
e
n
t
s

OFF

ON

PAUSE

Pause

HIGH

LOW

MEDIUM

reset All

Game Settings

Quality:

Sound volume:

Music:

Options

Are you sure?

YES

YES

NO

NO

<p align="left"><font face="Flintstone" size="14" color="#ffffff" letterSpacing="0.000000" kerning="0">1,000,000</font></p><p align="left"></p>

BUY

BUY

<p align="right"><font face="Flintstone" size="15" color="#000000" letterSpacing="0.000000" kerning="0"><b>top speed </b></font></p><p align="right"></p>

<p align="left"><font face="Flintstone" size="14" color="#ffffff" letterSpacing="0.000000" kerning="0">1,000,000</font></p><p align="left"></p>

<p align="right"><font face="Flintstone" size="15" color="#000000" letterSpacing="0.000000" kerning="0"><b>top speed </b></font></p><p align="right"></p>

<p align="left"><font face="Flintstone" size="14" color="#ffffff" letterSpacing="0.000000" kerning="0">1,000,000</font></p><p align="left"></p>

<p align="right"><font face="Flintstone" size="15" color="#000000" letterSpacing="0.000000" kerning="0"><b>top speed </b></font></p><p align="right"></p>

<p align="right"><font face="Flintstone" size="12" color="#000000" letterSpacing="0.000000" kerning="0">top speed </font></p><p align="right"></p>

<p align="left"><font face="Flintstone" size="14" color="#ffffff" letterSpacing="0.000000" kerning="0">1,000,000</font></p><p align="left"></p>

GEMS:

999

Play Game

Play

Options

Resume

Upgrades

ver. 1.04

Created by steelpanda team. SteelPanda.com

?

Click anywhere to close...

please wait a few seconds

i'm building a game world
here...

SOUNDS

www.flonga.com

ActionScript [AS3]

Section 1
//Acelerator (AS.goals.Acelerator) package AS.goals { import flash.display.*; import game.physics.goals.*; public class Acelerator extends MonsterGoal { public function Acelerator(_arg1:Sprite, _arg2:Boolean=false, _arg3:Number=0, _arg4:Number=0.2, _arg5:Number=0.3){ super(_arg1, _arg2, _arg3, _arg4, _arg5); } override public function doAction(_arg1:ActorGoal):Boolean{ return (super.doAction(_arg1)); } } }//package AS.goals
Section 2
//CollidableSkyObjectGoal (AS.goals.CollidableSkyObjectGoal) package AS.goals { import game.logic.*; import AS.utils.*; import flash.display.*; import Box2D.Common.Math.*; import game.physics.goals.*; import game.physics.creators.*; import core.*; public class CollidableSkyObjectGoal extends Unacelerator { private var planeScene; private var _engine:Engine; public static const TYPE_STARS:int = 0; public static const TYPE_PLANET:int = 1; public function CollidableSkyObjectGoal(_arg1:Sprite, _arg2:int, _arg3:Number=2){ _engine = Global.nameManager.lookup(Engine); planeScene = _arg3; switch (_arg2){ default: break; }; super(_arg1, true); } override public function doAction(_arg1:ActorGoal):Boolean{ if (ActorGoaldoAction(_arg1)){ if ((((_arg1 == GameBoard.frontWheel)) || ((_arg1 == GameBoard.backWheel)))){ this.type = ActorGoal.NONE; DoFromSky(); createStars(); return (true); }; return (false); }; return (false); } override public function onTick():void{ decor.alpha = (1 - GameBoard._engine.levelMap.bg.blue_sky.alpha); super.onTick(); } override protected function applyGalileoTransformation():void{ var _local1:b2Vec2; var _local2:b2Vec2; _local1 = body.GetPosition(); _local2 = WorldUpdateGoal.dr.Copy(); _local2.Multiply((0.2 / planeScene)); _local1.Subtract(_local2); body.SetXForm(_local1, body.GetAngle()); } private function ActorGoaldoAction(_arg1):Boolean{ if (this.type == ActorGoal.NONE){ return (false); }; return (true); } override protected function setXY(){ var _local1:Number; var _local2:Number; if (WorldUpdateGoal.dr.y < 0){ _local1 = (GameBoard.truck.body.GetPosition().x + 20); _local2 = (GameBoard.truck.body.GetPosition().y - 10); } else { _local1 = (GameBoard.truck.body.GetPosition().x + 20); _local2 = (GameBoard.truck.body.GetPosition().y + 5); }; body.SetXForm(new b2Vec2(_local1, _local2), body.GetAngle()); } private function DoFromSky():void{ var _local1:Number; _local1 = GameBoard.truck.body.GetLinearVelocity().x; _local1 = (_local1 - ((_local1 * General.UNACELERATOR_AIR_REST_VELOCITY_X) / 100)); GameBoard.truck.body.SetLinearVelocity(new b2Vec2(_local1, GameBoard.truck.body.GetLinearVelocity().y)); } } }//package AS.goals
Section 3
//Food (AS.goals.Food) package AS.goals { import AS.utils.*; import core.sound.*; import flash.display.*; import game.physics.goals.*; public class Food extends PrizeGoal { public function Food(_arg1:Sprite, _arg2:Boolean=false){ super(_arg1, _arg2); } override public function doAction(_arg1:ActorGoal):Boolean{ if (super.doAction(_arg1)){ Music.playSingleSound(SOUND_get_prize); General.PRIZE.GetingFood(); }; return (false); } } }//package AS.goals
Section 4
//GeneratedObject (AS.goals.GeneratedObject) package AS.goals { import game.logic.*; import AS.utils.*; import flash.display.*; import game.physics.*; import core.cache.*; import game.physics.goals.*; public class GeneratedObject { private static const c_scale_min:int = 90; private static const h_scale_min:int = 80; private static const range_x_min:Number = -520; private static const range_y_min:Number = -65; private static const LEVEL2_FRONT_OBJECTS:Array = [Level2FrontObj1, Level2FrontObj2, Level2FrontObj4, Level2FrontObj5]; private static const LEVEL3_FRONT_OBJECTS:Array = [Level3FrontObj1, Level3FrontObj2, Level3FrontObj3, Level3FrontObj4, Level3FrontObj5]; private static const LEVEL4_FRONT_OBJECTS:Array = [Level4FrontObj1, Level4FrontObj2, Level4FrontObj3, Level4FrontObj4]; private static const LEVEL5_FRONT_OBJECTS:Array = [Level5FrontObj1, Level5FrontObj2, Level5FrontObj3, Level5FrontObj4, Level5FrontObj5]; private static const c_scale_max:int = 200; private static const LEVEL1_CLOUDS:Array = [Cloud1, Cloud2, Cloud3, Cloud4]; private static const h_scale_max:int = 110; private static const t_scale_min:int = 70; private static const range_x_max:Number = 556; private static const range_y_max:Number = -75; private static const h_DistanceBetwen:int = 60; private static const t_scale_max:int = 120; private static const c_range_x_min:Number = -500; private static const LEVEL1_FRONT_OBJECTS:Array = [Level1FrontObj4, Level1FrontObj4, Level1FrontObj4, Level1FrontObj4, Level1FrontObj4, Level1FrontObj6]; private static const LEVEL4_CLOUDS:Array = [DustyCloud1, DustyCloud2, DustyCloud3, DustyCloud4, DustyCloud5]; private static const c_range_x_max:Number = 0; public static function GeneratedHerb(_arg1:Sprite):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:*; _local2 = (range_x_min - h_DistanceBetwen); _local3 = range_y_max; _local4 = 1; while (_local2 < range_x_max) { _local2 = (_local2 + ((h_DistanceBetwen + (Math.random() * 100)) - 50)); if ((Math.random() * 10) < 9){ } else { _local5 = ClipCache.newClip(getRandomFrontObjectClass()); _local3 = General.RandomIntRange(range_y_min, range_y_max); _local4 = General.RandomIntRange(h_scale_max, h_scale_min); _local4 = (_local4 / 100); Create(_local5, _local2, _local3, _local4); _arg1.addChild(_local5); }; }; } public static function GeneratedTree(_arg1:Sprite):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:*; if ((Math.random() * 10) < 4){ return; }; _local2 = General.RandomIntRange(range_x_max, range_x_min); _local3 = General.RandomIntRange(range_y_min, range_y_max); _local4 = General.RandomIntRange(t_scale_max, t_scale_min); _local4 = (_local4 / 100); _local5 = ClipCache.newClip(getRandomFrontObjectClass()); Create(_local5, _local2, _local3, _local4); _arg1.addChild(_local5); } public static function getRandomFrontObjectClass():Class{ var _local1:Array; var _local2:int; _local1 = null; switch (General.CURRENT_LEVEL){ case General.LEVEL_1: _local1 = LEVEL1_FRONT_OBJECTS; break; case General.LEVEL_2: _local1 = LEVEL2_FRONT_OBJECTS; break; case General.LEVEL_3: _local1 = LEVEL3_FRONT_OBJECTS; break; case General.LEVEL_4: _local1 = LEVEL4_FRONT_OBJECTS; break; case General.LEVEL_5: _local1 = LEVEL5_FRONT_OBJECTS; break; }; _local2 = int(((Math.random() - 0.01) * _local1.length)); return (_local1[_local2]); } private static function Create(_arg1:Sprite, _arg2:Number, _arg3:Number, _arg4=1):void{ _arg1.x = _arg2; _arg1.y = _arg3; if (_arg4 != 1){ _arg1.scaleX = _arg4; _arg1.scaleY = _arg4; }; } public static function GeneratedClouds(_arg1:Sprite, _arg2:int):void{ var _local3:int; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:*; if (GameBoard.truck.displacement.y < -((General.ATMOSPHERE_HEIGHT - 15))){ return; }; _local3 = General.RandomIntRange(1, 6); while (_local3 != 0) { _local3--; _local4 = General.RandomIntRange(c_range_x_max, c_range_x_min); if (WorldUpdateGoal.dr.y < 0){ _local5 = (-700 + (GameBoard.truck.displacement.y * FancyWorld.RATIO)); _local6 = (-100 + (GameBoard.truck.displacement.y * FancyWorld.RATIO)); } else { _local5 = (100 + (GameBoard.truck.displacement.y * FancyWorld.RATIO)); _local6 = (700 + (GameBoard.truck.displacement.y * FancyWorld.RATIO)); }; _local7 = (General.RandomIntRange(_local5, _local6) * _arg2); if (GameBoard.truck.displacement.y > -25){ _local7 = (_local7 - 1200); }; _local8 = General.RandomIntRange(c_scale_max, c_scale_min); _local8 = (_local8 / 100); _local9 = ClipCache.newClip(getRandomCloud()); Create(_local9, _local4, _local7, _local8); _arg1.addChild(_local9); }; } private static function getRandomCloud():Class{ var _local1:Array; var _local2:int; _local1 = LEVEL1_CLOUDS; switch (General.CURRENT_LEVEL){ case General.LEVEL_4: _local1 = LEVEL4_CLOUDS; break; case General.LEVEL_5: _local1 = LEVEL4_CLOUDS; break; }; _local2 = int(((Math.random() - 0.01) * _local1.length)); return (_local1[_local2]); } public static function RemoveAllChildren(_arg1:Sprite, _arg2:int=4){ while (_arg2 < _arg1.numChildren) { _arg1.removeChildAt((_arg1.numChildren - 1)); }; } } }//package AS.goals
Section 5
//GroundGoal (AS.goals.GroundGoal) package AS.goals { import game.logic.*; import AS.utils.*; import flash.display.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import game.physics.*; import Box2D.Collision.Shapes.*; import game.physics.goals.*; import core.system.*; public class GroundGoal extends TickListener { private var s:Sprite; private var x0:Number; public static var body:b2Body; public static var dy = 0; public static var itself:GroundGoal = null; public static var FILTER:int = -10; public function GroundGoal(){ var _local1:b2BodyDef; var _local2:b2PolygonDef; var _local3:b2CircleDef; super(); itself = this; _local1 = new b2BodyDef(); _local1.position.Set(10, 20); _local2 = new b2PolygonDef(); _local2.SetAsBox(50, 6); _local2.friction = 0; _local2.density = 0; _local2.restitution = 1; body = FancyWorld.world.CreateBody(_local1); body.CreateShape(_local2); body.SetMassFromShapes(); General.UpdateFilterData(body, FILTER); } override public function onTick():void{ if (WorldUpdateGoal.dr != null){ body.SetXForm(new b2Vec2(GameBoard.truck.body.GetPosition().x, body.GetPosition().y), 0); }; applyGalileoTransformation(); } override public function destroy():void{ super.destroy(); itself = null; } private function applyGalileoTransformation(){ var _local1:b2Vec2; _local1 = body.GetPosition(); _local1.Subtract(WorldUpdateGoal.dr); body.SetXForm(_local1, body.GetAngle()); } } }//package AS.goals
Section 6
//Money (AS.goals.Money) package AS.goals { import AS.utils.*; import core.sound.*; import flash.display.*; import game.physics.goals.*; public class Money extends PrizeGoal { public function Money(_arg1:Sprite, _arg2:Boolean=false){ super(_arg1, _arg2); } override public function doAction(_arg1:ActorGoal):Boolean{ if (super.doAction(_arg1)){ Music.playSingleSound(SOUND_get_prize); General.PRIZE.GetingGold(); }; return (false); } } }//package AS.goals
Section 7
//MonsterGoal (AS.goals.MonsterGoal) package AS.goals { import game.logic.*; import AS.utils.*; import flash.display.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import core.cache.*; import Box2D.Collision.Shapes.*; import game.physics.goals.*; import game.physics.common.*; import core.common.*; import game.physics.creators.*; import core.*; public class MonsterGoal extends ActorGoal { private var _fixed_y:Boolean;// = false private var _velocity:Number;// = 0 private var _was_not_in_water:int;// = 0 private var _engine:Engine; private var inTheSky:Boolean; private var _sensitive_to_velocity:Boolean;// = false public static const FILTER:int = -2; public function MonsterGoal(_arg1:Sprite, _arg2:Boolean=false, _arg3:Number=0, _arg4:Number=0.2, _arg5:Number=0.3, _arg6:Boolean=false, _arg7:CachingParams=null){ var _local8:AbstractCreator; var _local9:CompoundBody; _velocity = 0; _sensitive_to_velocity = false; _was_not_in_water = 0; _fixed_y = false; _engine = Global.nameManager.lookup(Engine); _local8 = new PolygonCreator(); _local9 = _local8.createCompoundBody(_arg1, _arg3, _arg4, _arg5); inTheSky = _arg2; super(_local9.body, _arg1, _arg6, _arg7); setXY(); General.UpdateFilterData(body, FILTER); onTick(); checkForWater(true); } override public function onTick():void{ var _local1:b2XForm; if (_velocity > 0){ _local1 = body.GetXForm(); _local1.position.x = (_local1.position.x - _velocity); body.SetXForm(_local1.position, body.GetAngle()); checkForWater(false); }; super.onTick(); } public function get sensitiveToVelocity():Boolean{ return (_sensitive_to_velocity); } public function setMovingVelocity(_arg1:Number):void{ _velocity = _arg1; } public function IsInTheSky():Boolean{ return (inTheSky); } protected function setXY(){ var _local1:Number; var _local2:Number; var _local3:Number; if (inTheSky){ _local1 = (((General.ROAD_RANGE_Y_MAX - GameBoard.truck.displacement.y) - 10) + (Math.random() * 15)); _local2 = (GroundGoal.body.GetPosition().y - _local1); if (GameBoard.truck.displacement.y > -10){ _local2 = (_local2 - 7); }; body.SetXForm(new b2Vec2(50, _local2), body.GetAngle()); } else { _fixed_y = true; _local3 = (((General.ROAD_RANGE_Y_MAX - GameBoard.truck.displacement.y) - (Math.random() * (General.ROAD_RANGE_Y_MAX - General.ROAD_RANGE_Y_MIN))) + 2); body.SetXForm(new b2Vec2((40 + (Math.random() * 20)), _local3), body.GetAngle()); checkForWater(true); }; } public function set sensitiveToVelocity(_arg1:Boolean):void{ _sensitive_to_velocity = _arg1; } private function checkForWater(_arg1:Boolean):void{ var _local2:ObjectList; var _local3:int; var _local4:Sprite; if (inTheSky){ return; }; _local2 = _engine.gameBoard.waterGoals; _local3 = 0; while (_local3 < _local2.length) { if (_local2[_local3].isRunning){ _local4 = _local2[_local3].decor; if (_local4.hitTestObject(decor)){ if (_arg1){ destroy(); } else { setMovingVelocity(0); if (_inner_animation){ _inner_animation.getChildAt(0).stop(); }; }; break; }; }; _local3++; }; } public function set was_not_in_water(_arg1:int):void{ _was_not_in_water = _arg1; } public function get was_not_in_water():int{ return (_was_not_in_water); } } }//package AS.goals
Section 8
//ObjectGoal (AS.goals.ObjectGoal) package AS.goals { import game.logic.*; import AS.utils.*; import flash.display.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import game.physics.*; import core.cache.*; import Box2D.Collision.Shapes.*; import game.physics.goals.*; import core.common.*; import game.physics.creators.*; import core.system.*; import core.*; public class ObjectGoal extends TickListener { private var nlast_water_blocks:int;// = 0 private var count_meter_unacelerator:int; private var count_meter_springboard:int; private var PROBABILITY; private var nlast_prize:int;// = 0 private var nlast_water:int;// = 0 private var count_meter_prize:int; private var count_meter_water:int; private var nlast_springboard:int;// = 0 private var PROBABILITY_WATER_BLOCKS; private var nlast_unacelerator:int;// = 0 private var PROBABILITY_PRIZE; private var PROBABILITY_WATER; private var PROBABILITY_UNACELERATOR; private var count_meter_water_blocks:int; private var _engine:Engine; private var decor:Sprite; private var actor:ActorGoal;// = null private static const LEVEL4_AIR_UNACCELERATORS:Array = [Bird4, Bird5]; private static const LEVEL2_GROUND_UNACCELERATORS:Array = [Bush2, Bush6, Bush7]; private static const PRIZE_FOOD:int = 0; private static const PRIZE_GOLD:int = 1; private static const SPRINGBOARD_DINO_GREEN:int = 3; private static const LEVEL4_GROUND_UNACCELERATORS:Array = [Bush9]; private static const SPRINGBOARD_DINO_BLUE:int = 1; private static const LEVEL3_STONES:Array = []; private static const LEVEL5_DINOS:Array = [[Dino1, true], [Dino2, true], [Dino3, true], [Dino4, true], [Dino5, true], [Dino6, true], [Dino7, true], [Dino8, true], [Dino9, true], [Dino10, true], [Dino11, false], [Dino12, false]]; private static const LEVEL3_DINOS:Array = [[Dino1, true], [Dino2, true], [Dino5, true], [Dino6, true], [Dino7, true], [Dino8, true], [Dino9, true], [Dino10, true], [Dino12, false]]; private static const LEVEL1_DINOS:Array = [[Dino1, true], [Dino3, true], [Dino4, true], [Dino5, true]]; private static const SPRINGBOARD_DINO:int = 0; private static const LEVEL3_AIR_UNACCELERATORS:Array = [Bird1, Bird2, Bird3, Bird4]; private static const LEVEL2_STONES:Array = [Stone4, Stone5]; private static const LEVEL2_AIR_UNACCELERATORS:Array = [Bird1, Bird2, Bird3, Bird4]; private static const LEVEL3_GROUND_UNACCELERATORS:Array = [Bush4, Bush5]; private static const LEVEL5_GROUND_UNACCELERATORS:Array = [Bush2, Bush6]; private static const LEVEL1_GROUND_UNACCELERATORS:Array = [Bush8]; private static const UNACELERATOR_BIRD:int = 1; private static const SPRINGBOARD_DINO_TYR:int = 4; private static const LEVEL5_STONES:Array = [Stone2, Stone3, Stone4, Stone5]; private static const SPRINGBOARD_DINO_RED:int = 2; private static const LEVEL1_STONES:Array = [Stone1, Stone2, Stone3, Stone4, Stone5]; private static const LEVEL2_DINOS:Array = [[Dino1, true], [Dino3, true], [Dino4, true], [Dino5, true], [Dino6, true], [Dino7, true], [Dino10, true], [Dino11, false]]; private static const LEVEL5_AIR_UNACCELERATORS:Array = [Bird1, Bird2, Bird3, Bird4, Bird5]; private static const LEVEL1_AIR_UNACCELERATORS:Array = [Bird1, Bird2, Bird3]; private static const LEVEL4_DINOS:Array = [[Dino1, true], [Dino2, true], [Dino3, true], [Dino4, true], [Dino5, true], [Dino6, true], [Dino7, true], [Dino8, true], [Dino9, true], [Dino10, true], [Dino12, false]]; private static const UNACELERATOR_FLOWER:int = 0; private static const LEVEL4_STONES:Array = [Stone1, Stone2, Stone3, Stone4, Stone5]; public function ObjectGoal(_arg1:Sprite){ actor = null; nlast_springboard = 0; nlast_prize = 0; nlast_water = 0; nlast_unacelerator = 0; PROBABILITY = General.PROBABILITY_OF_SPRINGBOARD_APPEAR; count_meter_springboard = General.COUNT_MIN_FOR_SPRINGBOARD_APPEAR; count_meter_prize = General.COUNT_MIN_FOR_PRIZE_APPEAR; PROBABILITY_PRIZE = General.PROBABILITY_PRIZE; count_meter_water = General.COUNT_MIN_FOR_WATER_APPEAR; PROBABILITY_WATER = General.PROBABILITY_OF_WATER_APPEAR; count_meter_unacelerator = General.COUNT_MIN_FOR_UNACELERATOR_APPEAR; PROBABILITY_UNACELERATOR = General.PROBABILITY_UNACELERATOR; count_meter_water_blocks = General.COUNT_MIN_FOR_WATER_BLOCKS_APPEAR; PROBABILITY_WATER_BLOCKS = General.PROBABILITY_OF_WATER__BLOCKS_APPEAR; nlast_water_blocks = 0; super(); _engine = Global.nameManager.lookup(Engine); decor = _arg1; } private function AddingWaterBlocks(){ var _local1:Number; var _local2:Number; var _local3:int; var _local4:int; var _local5:int; var _local6:water; var _local7:WaterGoal; var _local8:b2Vec2; _local1 = 20; _local2 = (General.RandomIntRange((General.ROAD_RANGE_Y_MAX - 1.5), General.ROAD_RANGE_Y_MAX) - GameBoard.truck.displacement.y); _local3 = 50; _local4 = General.RandomIntRange(General.WATER_BLOCKS_RANGE_MIN, General.WATER_BLOCKS_RANGE_MAX); _local5 = 0; while (_local5 < _local4) { _local6 = new water(); (decor as MovieClip).back_water_layer.addChild(_local6); _local7 = new WaterGoal(_local6); _local1 = (_local1 + (((_local6.width - _local3) / FancyWorld.RATIO) - 1.7)); _local8 = new b2Vec2(_local1, _local2); _local7.body.SetXForm(_local8, _local7.body.GetAngle()); Global.tickManager.addTickListener(_local7); _local5++; }; } private function CreateMoney(_arg1:Sprite, _arg2:Boolean=false):void{ var _local3:Money; _local3 = new Money(_arg1, _arg2); Global.tickManager.addTickListener(_local3); } private function getRandomMovingDino():Array{ var _local1:Array; var _local2:int; _local1 = LEVEL1_DINOS; switch (General.CURRENT_LEVEL){ case General.LEVEL_1: _local1 = LEVEL1_DINOS; break; case General.LEVEL_2: _local1 = LEVEL2_DINOS; break; case General.LEVEL_3: _local1 = LEVEL3_DINOS; break; case General.LEVEL_4: _local1 = LEVEL4_DINOS; break; case General.LEVEL_5: _local1 = LEVEL5_DINOS; break; }; _local2 = int(((Math.random() - 0.01) * _local1.length)); return (_local1[_local2]); } override public function onTick():void{ CreatingSpringboard(); CreatingPrizes(); CreatingUnacelerator(); CreatingSkyObject(); if (((!((General.CURRENT_LEVEL == General.LEVEL_4))) && (!((General.CURRENT_LEVEL == General.LEVEL_3))))){ CreatingWaterBlocks(); }; } private function addSpringboard(_arg1:Class):MonsterGoal{ var _local2:*; if (!_arg1){ return (null); }; _local2 = new (_arg1); _local2.scaleX = (_local2.scaleY = (0.7 + (Math.random() * 0.4))); decor.addChild(_local2); return (CreateSpringBoard(_local2, false, true, new CachingParams(5, 5, 5, 5))); } private function addGold(){ var _local1:gold; _local1 = new gold(); (decor as MovieClip).back_prize_layer.addChild(_local1); CreateMoney(_local1); } private function CreateSpringBoard(_arg1:Sprite, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:CachingParams=null):MonsterGoal{ var _local5:SpringBoard; _local5 = new SpringBoard(_arg1, _arg2, 0, 0.2, 0.3, _arg3, _arg4); Global.tickManager.addTickListener(_local5); return (_local5); } private function CreateFood(_arg1:Sprite, _arg2:Boolean=false):void{ var _local3:Food; _local3 = new Food(_arg1, _arg2); Global.tickManager.addTickListener(_local3); } private function AddingOnePrize():void{ var _local1:int; _local1 = General.RandomInt(1); switch (_local1){ case PRIZE_FOOD: addFood(); break; case PRIZE_GOLD: addGold(); break; }; } private function CreateUnacelerator(_arg1:Sprite, _arg2:Boolean=false, _arg3:Number=0, _arg4:Boolean=false, _arg5:CachingParams=null):void{ var _local6:Unacelerator; _local6 = new Unacelerator(_arg1, _arg2, 0, 0.2, 0.3, _arg4, _arg5); _local6.setMovingVelocity(_arg3); Global.tickManager.addTickListener(_local6); } private function addFood(){ var _local1:food; if (_engine.noAnimals){ return; }; _local1 = new food(); (decor as MovieClip).back_prize_layer.addChild(_local1); CreateFood(_local1); } private function getRandomStone():Class{ var _local1:Array; var _local2:int; _local1 = LEVEL1_STONES; switch (General.CURRENT_LEVEL){ case General.LEVEL_1: _local1 = LEVEL1_STONES; break; case General.LEVEL_2: _local1 = LEVEL2_STONES; break; case General.LEVEL_3: _local1 = LEVEL3_STONES; break; case General.LEVEL_4: _local1 = LEVEL4_STONES; break; case General.LEVEL_5: _local1 = LEVEL5_STONES; break; }; _local2 = int(((Math.random() - 0.01) * _local1.length)); return (_local1[_local2]); } private function CreatingWater(){ var _local1:int; var _local2:water; var _local3:WaterGoal; _local1 = (int(GameBoard.truck.displacement.x) / count_meter_water); if (_local1 > nlast_water){ if ((Math.random() * 100) < PROBABILITY_WATER){ _local2 = new water(); decor.addChild(_local2); _local3 = new WaterGoal(_local2); Global.tickManager.addTickListener(_local3); }; }; nlast_water = _local1; } private function CreateAcelerator(_arg1:Sprite, _arg2:Boolean=false):void{ var _local3:Acelerator; _local3 = new Acelerator(_arg1, _arg2); Global.tickManager.addTickListener(_local3); } private function CreatingPrizes(){ var _local1:int; _local1 = (int(GameBoard.truck.displacement.x) / count_meter_prize); if (_local1 > nlast_prize){ if ((Math.random() * 100) < PROBABILITY_PRIZE){ AddingOnePrize(); }; }; nlast_prize = _local1; } private function AddingOneSpringboard():void{ var _local1:MonsterGoal; var _local2:Array; _local1 = null; if (MathUtils.isLikely(0.1)){ _local1 = addSpringboard(getRandomStone()); if (!_local1){ return; }; _local1.sensitiveToVelocity = true; } else { _local2 = getRandomMovingDino(); _local1 = addSpringboard(_local2[0]); if (!_local1){ return; }; if (_local2[1]){ _local1.setMovingVelocity((0.1 + (Math.random() * 0.2))); }; (_local1 as SpringBoard).its_a_dino = true; }; } private function CreatingUnacelerator(){ var _local1:int; if (GameBoard.truck.displacement.y < -((General.ATMOSPHERE_HEIGHT - 15))){ return; }; _local1 = (int(GameBoard.truck.displacement.x) / count_meter_unacelerator); if (_local1 > nlast_unacelerator){ if ((Math.random() * 100) < PROBABILITY_UNACELERATOR){ AddingOneUnacelerator(); }; }; nlast_unacelerator = _local1; } private function CreatingSpringboard(){ var _local1:int; _local1 = (int(GameBoard.truck.displacement.x) / count_meter_springboard); if (_local1 > nlast_springboard){ if ((Math.random() * 100) < PROBABILITY){ AddingOneSpringboard(); }; }; nlast_springboard = _local1; } private function CreatingWaterBlocks(){ var _local1:int; if (!General.CREATE_BIG_BLOCK_WATER){ return; }; _local1 = (int(GameBoard.truck.displacement.x) / count_meter_water_blocks); if (_local1 > nlast_water_blocks){ if ((Math.random() * 100) < PROBABILITY_WATER_BLOCKS){ AddingWaterBlocks(); }; }; nlast_water_blocks = _local1; } private function CreatingSkyObject():void{ var _local1:star_group_1; var _local2:*; var _local3:Array; var _local4:*; if (((General.CREATE_SKY_OBJECT) && ((GameBoard.truck.displacement.y < -((General.ATMOSPHERE_HEIGHT - 10)))))){ _local1 = new star_group_1(); decor.addChild(_local1); _local2 = new SkyObjectGoal(_local1, SkyObjectGoal.TYPE_STARS, 4); Global.tickManager.addTickListener(_local2); bringToBackLayer(_local2); _local3 = [planet, planet2, Ufo]; ArrayUtils.shuffle(_local3); _local4 = new (_local3[0]); decor.addChild(_local4); _local2 = new CollidableSkyObjectGoal(_local4, SkyObjectGoal.TYPE_PLANET, General.RandomIntRange(1, 3)); Global.tickManager.addTickListener(_local2); bringToBackLayer(_local2); General.CREATE_SKY_OBJECT = false; }; } private function getRandomAirUnaccelerator():Class{ var _local1:Array; var _local2:int; _local1 = LEVEL1_AIR_UNACCELERATORS; switch (General.CURRENT_LEVEL){ case General.LEVEL_1: _local1 = LEVEL1_AIR_UNACCELERATORS; break; case General.LEVEL_2: _local1 = LEVEL2_AIR_UNACCELERATORS; break; case General.LEVEL_3: _local1 = LEVEL3_AIR_UNACCELERATORS; break; case General.LEVEL_4: _local1 = LEVEL4_AIR_UNACCELERATORS; break; case General.LEVEL_5: _local1 = LEVEL5_AIR_UNACCELERATORS; break; }; _local2 = int(((Math.random() - 0.01) * _local1.length)); return (_local1[_local2]); } private function AddingOneUnacelerator():void{ var _local1:*; _local1 = null; _local1 = new ((getRandomAirUnaccelerator() as Class)); decor.addChild(_local1); _local1.scaleX = (_local1.scaleY = (0.7 + (Math.random() * 0.5))); CreateUnacelerator(_local1, true, 0.35, true); if (MathUtils.isLikely(0.14)){ _local1 = new ((getRandomGroundUnaccelerator() as Class)); decor.addChild(_local1); _local1.scaleX = (_local1.scaleY = (0.5 + (Math.random() * 0.2))); CreateUnacelerator(_local1, false, 0, true, new CachingParams(5, 5, 5, 5)); }; } private function getRandomGroundUnaccelerator():Class{ var _local1:Array; var _local2:int; _local1 = LEVEL1_GROUND_UNACCELERATORS; switch (General.CURRENT_LEVEL){ case General.LEVEL_1: _local1 = LEVEL1_GROUND_UNACCELERATORS; break; case General.LEVEL_2: _local1 = LEVEL2_GROUND_UNACCELERATORS; break; case General.LEVEL_3: _local1 = LEVEL3_GROUND_UNACCELERATORS; break; case General.LEVEL_4: _local1 = LEVEL4_GROUND_UNACCELERATORS; break; case General.LEVEL_5: _local1 = LEVEL5_GROUND_UNACCELERATORS; break; }; _local2 = int(((Math.random() - 0.01) * _local1.length)); return (_local1[_local2]); } public function bringToBackLayer(_arg1:ActorGoal):void{ var _local2:*; _local2 = _engine.levelMap; if (_local2.back_layer == _arg1.decor.parent){ return; }; _local2.back_layer.addChild(_arg1.decor); } } }//package AS.goals
Section 9
//PadGoal (AS.goals.PadGoal) package AS.goals { import game.logic.*; import flash.display.*; import Box2D.Dynamics.*; import game.physics.goals.*; public class PadGoal extends ActorGoal { public var angle:Number;// = -0.785398163397448 public var launchAngle:Number;// = -0.785398163397448 public static var isJoined:Boolean = true; public function PadGoal(_arg1:b2Body, _arg2:Sprite){ angle = ((-45 * Math.PI) / 180); launchAngle = ((-45 * Math.PI) / 180); super(_arg1, _arg2); } override protected function updateCoords():void{ if (!isJoined){ super.updateCoords(); }; } override public function onTick():void{ super.onTick(); if (isJoined){ if (GameBoard.truck != null){ GameBoard.truck.body.SetXForm(GameBoard.truck.body.GetPosition(), angle); }; }; } public static function reset():void{ isJoined = true; } } }//package AS.goals
Section 10
//PrizeGoal (AS.goals.PrizeGoal) package AS.goals { import game.logic.*; import AS.utils.*; import flash.display.*; import Box2D.Common.Math.*; import game.physics.goals.*; import game.physics.common.*; import game.physics.creators.*; public class PrizeGoal extends ActorGoal { private var inTheSky:Boolean; public static const FILTER:int = -2; public function PrizeGoal(_arg1:Sprite, _arg2:Boolean=false){ var _local3:AbstractCreator; var _local4:CompoundBody; _local3 = new PolygonCreator(); _local4 = _local3.createCompoundBody(_arg1, 0); inTheSky = _arg2; super(_local4.body, _arg1); setXY(); General.UpdateFilterData(body, FILTER); General.PutSensorToAllShapes(body); } override public function doAction(_arg1:ActorGoal):Boolean{ if (super.doAction(_arg1)){ if ((((_arg1 == GameBoard.frontWheel)) || ((_arg1 == GameBoard.backWheel)))){ decor.visible = false; this.type = ActorGoal.NONE; return (true); }; return (false); }; return (false); } private function setXY(){ if (inTheSky){ body.SetXForm(new b2Vec2((20 + (Math.random() * 10)), ((GroundGoal.body.GetPosition().y - 20) - (Math.random() * General.HEIGH))), body.GetAngle()); } else { body.SetXForm(new b2Vec2(30, ((General.ROAD_RANGE_Y_MAX - GameBoard.truck.displacement.y) - (Math.random() * (General.ROAD_RANGE_Y_MAX - General.ROAD_RANGE_Y_MIN)))), body.GetAngle()); }; } } }//package AS.goals
Section 11
//SkyObjectGoal (AS.goals.SkyObjectGoal) package AS.goals { import game.logic.*; import AS.utils.*; import flash.display.*; import Box2D.Common.Math.*; import game.physics.goals.*; import game.physics.common.*; import game.physics.creators.*; import core.*; public class SkyObjectGoal extends ActorGoal { private var planeScene; private var _engine:Engine; public static const TYPE_STARS:int = 0; public static const TYPE_PLANET:int = 1; public function SkyObjectGoal(_arg1:Sprite, _arg2:int, _arg3:Number=2){ var _local4:AbstractCreator; var _local5:CompoundBody; _engine = Global.nameManager.lookup(Engine); planeScene = _arg3; _local4 = new PolygonCreator(); _local5 = _local4.createCompoundBody(_arg1, 0); super(_local5.body, _arg1); General.PutSensorToAllShapes(body); switch (_arg2){ case TYPE_STARS: setXYStar(); _engine.achievements.starsReached(); break; default: setXYPlanet(); decor.scaleX = (decor.scaleX / (planeScene / 2)); decor.scaleY = (decor.scaleY / (planeScene / 2)); break; }; } public function setXYPlanet(){ var _local1:Number; var _local2:Number; if (WorldUpdateGoal.dr.y < 0){ _local1 = (GameBoard.truck.body.GetPosition().x + 20); _local2 = (GameBoard.truck.body.GetPosition().y - 10); } else { _local1 = (GameBoard.truck.body.GetPosition().x + 20); _local2 = (GameBoard.truck.body.GetPosition().y + 5); }; body.SetXForm(new b2Vec2(_local1, _local2), body.GetAngle()); } override public function onTick():void{ decor.alpha = (1 - GameBoard._engine.levelMap.bg.blue_sky.alpha); super.onTick(); } private function setXYStar():void{ var _local1:Number; var _local2:Number; if (WorldUpdateGoal.dr.y < 0){ _local1 = (GameBoard.truck.body.GetPosition().x + 25); _local2 = (GameBoard.truck.body.GetPosition().y - 25); } else { _local1 = GameBoard.truck.body.GetPosition().x; _local2 = (GameBoard.truck.body.GetPosition().y + 45); }; body.SetXForm(new b2Vec2(_local1, _local2), body.GetAngle()); } override protected function applyGalileoTransformation():void{ var _local1:b2Vec2; var _local2:b2Vec2; _local1 = body.GetPosition(); _local2 = WorldUpdateGoal.dr.Copy(); _local2.Multiply((0.2 / planeScene)); _local1.Subtract(_local2); body.SetXForm(_local1, body.GetAngle()); } } }//package AS.goals
Section 12
//SpringBoard (AS.goals.SpringBoard) package AS.goals { import game.logic.*; import AS.utils.*; import core.sound.*; import flash.display.*; import Box2D.Common.Math.*; import core.cache.*; import game.physics.goals.*; import core.common.*; import core.*; public class SpringBoard extends MonsterGoal { private var _its_a_dino:Boolean;// = false private var _engine:Engine;// = null private var _stars:CachedInstance;// = null public function SpringBoard(_arg1:Sprite, _arg2:Boolean=false, _arg3:Number=0, _arg4:Number=0.2, _arg5:Number=0.3, _arg6:Boolean=false, _arg7:CachingParams=null){ _stars = null; _its_a_dino = false; _engine = null; super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7); _engine = Global.nameManager.lookup(Engine); General.PutSensorToAllShapes(body); } public function get its_a_dino():Boolean{ return (_its_a_dino); } override public function doAction(_arg1:ActorGoal):Boolean{ var _local2:b2Vec2; var _local3:Number; if (super.doAction(_arg1)){ if (_arg1 == GameBoard.frontWheel){ type = ActorGoal.NONE; _local2 = General.GetImpulseToApply(); if (sensitiveToVelocity){ _local3 = (GameBoard.truck.getVelocity() / 36); if (GameBoard.truck.getVelocity() < 100){ _local2.Multiply(_local3); }; }; GameBoard.truck.body.ApplyImpulse(_local2, _arg1.body.GetWorldCenter()); if (!_stars){ if (its_a_dino){ Music.playSingleSound((MathUtils.isLikely(0.5)) ? SOUND_encounter1 : SOUND_encounter2); }; Music.playSingleSound(SOUND_boing); if (_its_a_dino){ _engine.achievements.dinoHit(); }; _stars = ClipCache.newClip(StarsAnimation); (_stars as CachedInstance).setFinishRoutine(CachedInstance.destroyItselfAtEnd); decor.addChild(_stars); _stars.scaleX = (_stars.scaleY = 0.4); Global.tickManager.addTickListener(_stars); }; return (true); }; return (false); }; return (false); } public function set its_a_dino(_arg1:Boolean):void{ _its_a_dino = _arg1; } } }//package AS.goals
Section 13
//TruckGoal (AS.goals.TruckGoal) package AS.goals { import game.logic.*; import AS.utils.*; import core.sound.*; import flash.display.*; import caurina.transitions.*; import Box2D.Common.Math.*; import flash.utils.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import game.physics.goals.*; import core.*; public class TruckGoal extends ActorGoal { private const WATER_SPEED_DIVIDER:Number = 2; private var _initial_water_animation_alpha:Number;// = 0.25 private var currentUpgradeObject:Upgrade_Object; public var displacement:b2Vec2; private var _suprised_state:Boolean;// = false private var sealevel:Number;// = -8.5 private var _flying_start_time:int;// = 0 private var x0:Number; private var pumping:Number; public var xIniSprite:Number; public var yIniSprite:Number; private var _upgrade_playing:Boolean;// = false private var _engine:Engine; private var _first_tick:Boolean;// = true private var da:Number;// = 0.1 public static const FILTER_WATER = MonsterGoal.FILTER; public static const FILTER_AIR = WheelGoal.FILTER; public static const dy:Number = 0.0666666666666667; public static const FILTER_ROAD = -14; private static var state:int = 0; public function TruckGoal(_arg1:b2Body, _arg2:Sprite){ sealevel = -8.5; pumping = General.PUMPING; da = 0.1; displacement = new b2Vec2(0, 0); _upgrade_playing = false; _suprised_state = false; _flying_start_time = 0; _first_tick = true; _initial_water_animation_alpha = 0.25; _engine = Global.nameManager.lookup(Engine); _arg1.m_linearDamping = 0; _arg1.m_angularDamping = 0; General.UpdateFilterData(_arg1, FILTER_ROAD); super(_arg1, _arg2); InicializeUpgrades(); xIniSprite = _arg2.x; yIniSprite = _arg2.y; _arg1.SetBullet(true); _initial_water_animation_alpha = (_arg2 as hero).water_animation.alpha; (_arg2 as hero).water_contact_checker.visible = false; hideWaterAnimation(); } private function showWaterAnimation():void{ Tweener.removeTweens((decor as hero).water_animation); (decor as hero).water_animation.alpha = _initial_water_animation_alpha; (decor as hero).water_animation.visible = true; (decor as hero).water_animation.play(); } public function getVelocity():Number{ var _local1:b2Vec2; _local1 = body.GetLinearVelocity(); return (Math.sqrt(((_local1.x * _local1.x) + (_local1.y * _local1.y)))); } private function hideWaterAnimationC():void{ (decor as hero).water_animation.visible = false; (decor as hero).water_animation.stop(); } private function hideWaterAnimation():void{ if (false == (decor as hero).water_animation.visible){ return; }; Tweener.addTween((decor as hero).water_animation, {alpha:0, time:0.5, onComplete:hideWaterAnimationC}); } override public function onTick():void{ var _local1:Number; var _local2:Number; var _local3:b2Vec2; var _local4:Number; if (body.GetLinearVelocity().x < 0){ _local3 = body.GetLinearVelocity().Copy(); _local3.x = 0; body.SetLinearVelocity(_local3); }; body.SetAngularVelocity(0); super.onTick(); CheckCoordinateAndSlope(); plung(); if (CheckWaterContact()){ SetState(2); } else { if ((body.GetPosition().y - GroundGoal.body.GetPosition().y) < -9){ SetState(1); } else { SetState(0); }; }; if (((KeyboardActive.SPACE) && ((General.PRIZE.GetFood() > 0)))){ if (((!(_engine.eatingSound.isPlaying)) && (!(_engine.noAnimals)))){ _engine.eatingSound.play(); }; if (!_upgrade_playing){ _upgrade_playing = true; currentUpgradeObject.S.inner.play(); currentUpgradeObject.S.inner.inner.play(); }; currentUpgradeObject.Action(); } else { if (_upgrade_playing){ _engine.eatingSound.stop(); if (General.PRIZE.GetFood() <= 0){ Music.playSingleSound(SOUND_food_exhausted); }; KeyboardActive.TRUCK_FLYING_WHIT_PTERODACTIL = false; _upgrade_playing = false; if ((currentUpgradeObject is Pterodactil)){ currentUpgradeObject.S.inner.gotoAndStop(1); currentUpgradeObject.S.inner.inner.gotoAndStop(1); } else { currentUpgradeObject.S.inner.stop(); currentUpgradeObject.S.inner.inner.stop(); }; }; }; _local1 = 4; _local2 = 1; if (KeyboardActive.UP){ if (((IsStateRoad()) || (IsStateWater()))){ _local4 = ((body.GetLinearVelocity().x * dy) / _local1); if (_local4 > _local2){ _local4 = _local2; if ((body.GetPosition().y - _local4) <= General.ROAD_RANGE_Y_MIN){ _local4 = ((body.GetPosition().y - General.ROAD_RANGE_Y_MIN) - 0.01); }; }; if (IsStateWater()){ _local4 = (_local4 / WATER_SPEED_DIVIDER); }; if ((body.GetPosition().y - _local4) > General.ROAD_RANGE_Y_MIN){ body.SetXForm(new b2Vec2(body.GetPosition().x, (body.GetPosition().y - _local4)), body.GetAngle()); GroundGoal.body.SetXForm(new b2Vec2(body.GetPosition().x, (GroundGoal.body.GetPosition().y - _local4)), GroundGoal.body.GetAngle()); }; }; } else { if (KeyboardActive.DOWN){ if (((IsStateRoad()) || (IsStateWater()))){ _local4 = ((body.GetLinearVelocity().x * dy) / _local1); if (_local4 > _local2){ _local4 = _local2; if ((body.GetPosition().y + _local4) >= General.ROAD_RANGE_Y_MAX){ _local4 = ((General.ROAD_RANGE_Y_MAX - body.GetPosition().y) - 0.01); }; }; if (IsStateWater()){ _local4 = (_local4 / WATER_SPEED_DIVIDER); }; if ((body.GetPosition().y + _local4) < General.ROAD_RANGE_Y_MAX){ body.SetXForm(new b2Vec2(body.GetPosition().x, (body.GetPosition().y + _local4)), body.GetAngle()); GroundGoal.body.SetXForm(new b2Vec2(body.GetPosition().x, (GroundGoal.body.GetPosition().y + _local4)), GroundGoal.body.GetAngle()); }; }; }; }; } private function getAngle(_arg1:b2Vec2):Number{ var _local2:Number; _local2 = Math.atan2(_arg1.y, _arg1.x); if (_local2 > 0.6){ _local2 = 0.6; }; return (_local2); } override public function doAction(_arg1:ActorGoal):Boolean{ GameBoard.frontWheel.doAction(_arg1); return (true); } private function CheckWaterContact():Boolean{ var _local1:Array; var _local2:int; _local1 = Global.tickManager.listeners; _local2 = 0; while (_local2 < _local1.length) { if ((_local1[_local2] is WaterGoal)){ if ((decor as hero).water_contact_checker.hitTestObject(WaterGoal(_local1[_local2]).decor)){ return (true); }; }; _local2++; }; return (false); } private function CheckCoordinateAndSlope(){ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; if (!PadGoal.isJoined){ _local1 = (decor.y - yIniSprite); _local2 = (decor.x - xIniSprite); _local3 = (Sprite(decor.parent).x + _local2); _local4 = (Sprite(decor.parent).y + _local1); Sprite(decor.parent).x = (Sprite(decor.parent).x - (_local3 / 20)); Sprite(decor.parent).y = (Sprite(decor.parent).y - (_local4 / 20)); }; if (IsStateAir()){ _local5 = 4; _local6 = 0; if (KeyboardActive.TRUCK_FLYING_WHIT_PTERODACTIL){ _local6 = (body.GetAngle() + (Math.PI / 5)); body.SetXForm(body.GetPosition(), (body.GetAngle() - (_local6 / _local5))); } else { _local6 = (body.GetAngle() - getAngle(body.GetLinearVelocity())); body.SetXForm(body.GetPosition(), (body.GetAngle() - (_local6 / _local5))); if (body.GetAngle() > 0.1){ (decor as Object).stonepunk.gotoAndStop("surprised_label"); _suprised_state = true; }; }; } else { if (_suprised_state){ _suprised_state = false; (decor as Object).stonepunk.gotoAndStop("normal_label"); }; }; } public function IsStateRoad(){ if (state == 0){ return (true); }; return (false); } private function CalculatingJump(_arg1:int){ if ((((state == 0)) || ((state == 2)))){ if (_arg1 == 1){ Statistic.JumpBegin(); }; } else { if (state == 1){ if ((((_arg1 == 0)) || ((_arg1 == 2)))){ Statistic.JumpFinish(); Statistic.CalculateJumpTimeAndDistance(); }; }; }; } private function setDampings(_arg1:Number=0, _arg2:Number=0){ var _local3:int; _local3 = 0; while (_local3 < attached.length) { attached[_local3].body.m_linearDamping = _arg1; attached[_local3].body.m_angularDamping = _arg2; _local3++; }; } override protected function applyGalileoTransformation():void{ var _local1:b2Vec2; if (PadGoal.isJoined){ return; }; _local1 = body.GetPosition(); _local1.Subtract(WorldUpdateGoal.dr); body.SetXForm(_local1, body.GetAngle()); } public function dropYVelocity():void{ var _local1:Number; _local1 = GameBoard.truck.body.GetLinearVelocity().y; _local1 = Math.min(_local1, 0.1); GameBoard.truck.body.SetLinearVelocity(new b2Vec2(GameBoard.truck.body.GetLinearVelocity().x, _local1)); } public function IsStateAir(){ if (state == 1){ return (true); }; return (false); } override public function destroy():void{ super.destroy(); } public function SetState(_arg1:int){ var _local2:int; CalculatingJump(_arg1); state = _arg1; (GameBoard.truck.decor as hero).shadow.visible = false; switch (state){ case 0: General.UpdateFilterData(GameBoard.truck.body, FILTER_ROAD); General.UpdateFilterData(GameBoard.frontWheel.body, WheelGoal.FILTER); General.UpdateFilterData(GameBoard.backWheel.body, WheelGoal.FILTER); if (((((currentUpgradeObject) && (currentUpgradeObject.S))) && (!((currentUpgradeObject == General.RODENT))))){ _upgrade_playing = false; if (currentUpgradeObject.S.inner){ currentUpgradeObject.S.inner.stop(); currentUpgradeObject.S.inner.inner.gotoAndStop(1); }; Music.playSingleSound(SOUND_hit); }; if (_flying_start_time > 0){ _local2 = ((getTimer() - _flying_start_time) / 1000); _engine.achievements.timeInAir(_local2); _flying_start_time = 0; }; hideWaterAnimation(); currentUpgradeObject = General.RODENT; (GameBoard.truck.decor as hero).shadow.visible = true; setDampings(currentUpgradeObject.getLinearDamping(), currentUpgradeObject.getAngularDamping()); break; case 1: General.UpdateFilterData(GameBoard.truck.body, FILTER_AIR); if (((((currentUpgradeObject) && (!((currentUpgradeObject == General.PTERODACTYL))))) && (currentUpgradeObject.S))){ _upgrade_playing = false; currentUpgradeObject.S.inner.stop(); currentUpgradeObject.S.inner.inner.gotoAndStop(1); }; currentUpgradeObject = General.PTERODACTYL; hideWaterAnimation(); if (_flying_start_time == 0){ _flying_start_time = getTimer(); }; setDampings(currentUpgradeObject.getLinearDamping(), currentUpgradeObject.getAngularDamping()); break; default: General.UpdateFilterData(GameBoard.truck.body, FILTER_WATER); if (((((currentUpgradeObject) && (!((currentUpgradeObject == General.TURTLE))))) && (currentUpgradeObject.S))){ dropYVelocity(); _upgrade_playing = false; currentUpgradeObject.S.inner.stop(); currentUpgradeObject.S.inner.inner.gotoAndStop(1); }; if (_flying_start_time > 0){ _engine.achievements.timeInAir(int(((getTimer() - _flying_start_time) / 1000))); _flying_start_time = 0; }; showWaterAnimation(); currentUpgradeObject = General.TURTLE; setDampings(currentUpgradeObject.getLinearDamping(), currentUpgradeObject.getAngularDamping()); break; }; } public function plung(){ if (IsStateWater()){ body.ApplyImpulse(new b2Vec2(0, (pumping * ((body.GetPosition().y - GroundGoal.body.GetPosition().y) - sealevel))), body.GetWorldCenter()); body.SetXForm(body.GetPosition(), 0); }; } public function putInFront(){ var _local1:int; var _local2:Sprite; _local1 = 0; while (_local1 < attached.length) { _local2 = Sprite(ActorGoal(attached[_local1]).decor.parent); _local2.setChildIndex(ActorGoal(attached[_local1]).decor, (_local2.numChildren - 1)); _local1++; }; } public function IsStateWater(){ if (state == 2){ return (true); }; return (false); } private function InicializeUpgrades(){ General.RODENT.setMC((decor as Object).rodent); General.PTERODACTYL.setMC((decor as Object).pterodactyl); General.TURTLE.setMC((decor as Object).turtle); currentUpgradeObject = General.PTERODACTYL; General.RODENT.setUpgradeLevel(Upgrades.checkRodentLevel()); General.PTERODACTYL.setUpgradeLevel(Upgrades.checkPterodactylLevel()); General.TURTLE.setUpgradeLevel(Upgrades.checkTurtleLevel()); } public static function reset():void{ state = 0; } } }//package AS.goals
Section 14
//Unacelerator (AS.goals.Unacelerator) package AS.goals { import game.logic.*; import AS.utils.*; import core.sound.*; import flash.display.*; import Box2D.Common.Math.*; import core.cache.*; import game.physics.goals.*; import core.*; public class Unacelerator extends MonsterGoal { private var _engine:Engine;// = null private var _stars:CachedInstance;// = null public function Unacelerator(_arg1:Sprite, _arg2:Boolean=false, _arg3:Number=0, _arg4:Number=0.2, _arg5:Number=0.3, _arg6:Boolean=false, _arg7:CachingParams=null){ _stars = null; _engine = null; super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7); _engine = Global.nameManager.lookup(Engine); General.PutSensorToAllShapes(body); } override public function doAction(_arg1:ActorGoal):Boolean{ if (super.doAction(_arg1)){ if ((((_arg1 == GameBoard.frontWheel)) || ((_arg1 == GameBoard.backWheel)))){ this.type = ActorGoal.NONE; if (IsInTheSky()){ DoFromSky(); if (!_stars){ _engine.achievements.birdHit(); }; createStars(); } else { DoFromGround(); if (!_stars){ }; }; return (true); }; return (false); }; return (false); } override public function destroy():void{ super.destroy(); } private function DoFromGround():void{ var _local1:Number; Music.playSingleSound(SOUND_unaccelerator); _local1 = GameBoard.truck.body.GetLinearVelocity().x; _local1 = (_local1 - ((_local1 * General.UNACELERATOR_ROAD_REST_VELOCITY_X) / 100)); GameBoard.truck.body.SetLinearVelocity(new b2Vec2(_local1, GameBoard.truck.body.GetLinearVelocity().y)); } protected function createStars():void{ if (!_stars){ _stars = ClipCache.newClip(StarsAnimation); (_stars as CachedInstance).setFinishRoutine(CachedInstance.destroyItselfAtEnd); decor.addChild(_stars); _stars.scaleX = (_stars.scaleY = 0.4); Global.tickManager.addTickListener(_stars); }; } private function DoFromSky():void{ var _local1:Number; Music.playSingleSound(SOUND_bird_hit); _local1 = GameBoard.truck.body.GetLinearVelocity().x; _local1 = (_local1 - ((_local1 * General.UNACELERATOR_AIR_REST_VELOCITY_X) / 100)); GameBoard.truck.body.SetLinearVelocity(new b2Vec2(_local1, GameBoard.truck.body.GetLinearVelocity().y)); } } }//package AS.goals
Section 15
//WaterGoal (AS.goals.WaterGoal) package AS.goals { import game.logic.*; import AS.utils.*; import flash.display.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import game.physics.*; import Box2D.Collision.Shapes.*; import game.physics.goals.*; import game.physics.common.*; import game.physics.creators.*; import core.*; public class WaterGoal extends ActorGoal { private var _engine:Engine; public static const FILTER:int = -6; public function WaterGoal(_arg1:Sprite){ var _local2:AbstractCreator; var _local3:CompoundBody; _engine = Global.nameManager.lookup(Engine); _local2 = new PolygonCreator(); _local3 = _local2.createCompoundBody(_arg1, 0); super(_local3.body, _arg1, true); setXY(); General.PutSensorToAllShapes(body); onTick(); CheckForMonsterInWater(); _engine.gameBoard.waterGoals.push(this); } private function CheckForMonsterInWater(){ var _local1:Array; var _local2:int; var _local3:Sprite; _local1 = Global.tickManager.listeners; _local2 = 0; while (_local2 < _local1.length) { if ((((_local1[_local2] is MonsterGoal)) && (MonsterGoal(_local1[_local2]).isRunning))){ _local3 = MonsterGoal(_local1[_local2]).decor; if (_local3.hitTestObject(decor)){ _local1[_local2].destroy(); }; }; _local2++; }; } private function getYCoordinate():Number{ if (General.LEVEL_5 == General.CURRENT_LEVEL){ return (((WorldUpdateGoal.road1.y / FancyWorld.RATIO) + 10)); }; return (((WorldUpdateGoal.road1.y / FancyWorld.RATIO) + 8.5)); } override public function onTick():void{ super.onTick(); } override public function doAction(_arg1:ActorGoal):Boolean{ return (true); } private function setXY(){ var _local1:Number; _local1 = getYCoordinate(); body.SetXForm(new b2Vec2((40 + (Math.random() * 20)), _local1), body.GetAngle()); } override protected function applyGalileoTransformation():void{ var _local1:b2Vec2; _local1 = body.GetPosition(); _local1.Subtract(WorldUpdateGoal.dr); _local1.y = getYCoordinate(); body.SetXForm(_local1, body.GetAngle()); } override public function destroy():void{ super.destroy(); _engine.gameBoard.waterGoals.remove(this); } } }//package AS.goals
Section 16
//WheelGoal (AS.goals.WheelGoal) package AS.goals { import game.logic.*; import AS.utils.*; import flash.display.*; import Box2D.Dynamics.*; import game.physics.*; import Box2D.Collision.Shapes.*; import game.physics.goals.*; import core.*; public class WheelGoal extends ActorGoal { private var _engine:Engine;// = null private var _wheel:wheel_stone;// = null public static const FILTER = -3; public function WheelGoal(_arg1:b2Body, _arg2:Sprite){ _engine = null; _wheel = null; General.UpdateFilterData(_arg1, FILTER); super(_arg1, _arg2); General.PutSensorToAllShapes(_arg1); _arg1.SetBullet(true); _engine = Global.nameManager.lookup(Engine); _wheel = (_arg2 as wheel_stone); } public function bringToBack(_arg1:ActorGoal):void{ var _local2:*; _local2 = _engine.levelMap; if (_local2.back_layer == _arg1.decor.parent){ return; }; _local2.back_layer.addChild(_arg1.decor); } override public function onTick():void{ _decor.x = (_body.GetPosition().x * FancyWorld.RATIO); _decor.y = (_body.GetPosition().y * FancyWorld.RATIO); if (!GameBoard.truck.IsStateWater()){ _wheel.front_part.rotation = (_wheel.front_part.rotation + GameBoard.truck.body.GetLinearVelocity().x); _wheel.back_part.rotation = (_wheel.back_part.rotation + GameBoard.truck.body.GetLinearVelocity().x); } else { _wheel.front_part.rotation = (_wheel.front_part.rotation + Math.min(GameBoard.truck.body.GetLinearVelocity().x, 7)); _wheel.back_part.rotation = (_wheel.back_part.rotation + Math.min(GameBoard.truck.body.GetLinearVelocity().x, 7)); }; applyGalileoTransformation(); } override public function doAction(_arg1:ActorGoal):Boolean{ if (false == (_arg1 is WaterGoal)){ bringToBack(_arg1); }; return (true); } private function UpdatingVisualWithMonsters(_arg1:ActorGoal){ var _local2:Sprite; var _local3:Sprite; var _local4:Sprite; var _local5:Sprite; var _local6:int; _local2 = (GameBoard.truck.decor as Sprite); _local3 = (GameBoard.frontWheel.decor as Sprite); _local4 = (GameBoard.backWheel.decor as Sprite); _local5 = (decor.parent as Sprite); _local6 = _arg1.decor.parent.getChildIndex(_arg1.decor); _local5.setChildIndex(_local3, _local6); _local5.setChildIndex(_local4, _local6); _local5.setChildIndex(_local2, _local6); } } }//package AS.goals
Section 17
//General (AS.utils.General) package AS.utils { import game.logic.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import game.physics.*; import Box2D.Collision.Shapes.*; import core.*; public class General { public static const LEVEL_1:int = 1; public static const LEVEL_2:int = 2; public static const LEVEL_3:int = 3; public static const LEVEL_4:int = 4; public static const LEVEL_5:int = 5; public static const HEIGH:Number = 50; public static const ATMOSPHERE_HEIGHT:Number = 500; public static var PRIZE:Prizes = null; public static var CREATE_BIG_BLOCK_WATER:Boolean = false; public static var CURRENT_LEVEL:int = 0; public static var ROAD_RANGE_Y_MIN:Number = 10; public static var COUNT_MIN_FOR_SPRINGBOARD_APPEAR:Number; public static var COUNT_MIN_FOR_PRIZE_APPEAR:Number; public static var PROBABILITY_OF_WATER_APPEAR:Number; public static var ROAD_RANGE_Y_MAX:Number = 16; public static var COUNT_MIN_FOR_WATER_BLOCKS_APPEAR:Number; public static var PTERODACTYL:Upgrade_Object = null; public static var COUNT_MIN_FOR_UNACELERATOR_APPEAR:Number; public static var INITIAL_IMPULSE:Number; public static var RODENT:Upgrade_Object = null; public static var UNACELERATOR_ROAD_REST_VELOCITY_X:Number; public static var PROBABILITY_PRIZE:Number; public static var UNACELERATOR_AIR_REST_VELOCITY_X:Number; public static var TURTLE:Upgrade_Object = null; public static var PROBABILITY_UNACELERATOR:Number; public static var IS_TRUCK_IN_COLISSION:Boolean = false; public static var WATER_BLOCKS_RANGE_MIN:Number; public static var CREATE_SKY_OBJECT:Boolean = false; public static var PUMPING:Number; public static var IMPULSE_SPRINGBOARD:b2Vec2; public static var COUNT_MIN_FOR_WATER_APPEAR:Number; public static var WATER_BLOCKS_RANGE_MAX:Number; public static var PROBABILITY_OF_WATER__BLOCKS_APPEAR:Number; public static var PROBABILITY_OF_SPRINGBOARD_APPEAR:Number; public static function RandomInt(_arg1:int):int{ return ((int((Math.random() * 10000)) % (_arg1 + 1))); } public static function RandomIntRange(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:int; _local3 = Math.abs((_arg2 - _arg1)); _local4 = RandomInt(_local3); if (_arg2 > _arg1){ return ((_arg2 - _local4)); }; return ((_arg1 - _local4)); } public static function UpdateFilterData(_arg1:b2Body, _arg2:int){ var _local3:b2FilterData; _local3 = new b2FilterData(); _local3.groupIndex = _arg2; _arg1.m_shapeList.SetFilterData(_local3); FancyWorld.world.Refilter(_arg1.m_shapeList); } public static function createEverything():void{ var _local1:Engine; RODENT = new Rodent(); PTERODACTYL = new Pterodactil(); TURTLE = new Turtle(); PRIZE = new Prizes(); Prizes.COUNT_OF_FOOD_PER_UNIT = 10; Prizes.COUNT_OF_GOLD_PER_UNIT = 10; _local1 = Global.nameManager.lookup(Engine); if (_local1.achievements.data[Achievements.TRAVEL_DISTANCE_4]){ Prizes.COUNT_OF_GOLD_PER_UNIT = 50; } else { if (_local1.achievements.data[Achievements.TRAVEL_DISTANCE_3]){ Prizes.COUNT_OF_GOLD_PER_UNIT = 35; } else { if (_local1.achievements.data[Achievements.TRAVEL_DISTANCE_2]){ Prizes.COUNT_OF_GOLD_PER_UNIT = 25; }; }; }; } public static function SetParameterInLevel(_arg1:int):void{ CURRENT_LEVEL = _arg1; createEverything(); switch (_arg1){ default: COUNT_MIN_FOR_SPRINGBOARD_APPEAR = 45; PROBABILITY_OF_SPRINGBOARD_APPEAR = 80; IMPULSE_SPRINGBOARD = new b2Vec2(5, -100); COUNT_MIN_FOR_WATER_APPEAR = 150; PROBABILITY_OF_WATER_APPEAR = 30; PUMPING = -4; INITIAL_IMPULSE = 300; COUNT_MIN_FOR_PRIZE_APPEAR = 35; PROBABILITY_PRIZE = 60; COUNT_MIN_FOR_UNACELERATOR_APPEAR = 43; PROBABILITY_UNACELERATOR = 60; UNACELERATOR_AIR_REST_VELOCITY_X = 50; UNACELERATOR_ROAD_REST_VELOCITY_X = 15; CREATE_BIG_BLOCK_WATER = true; COUNT_MIN_FOR_WATER_BLOCKS_APPEAR = 550; PROBABILITY_OF_WATER__BLOCKS_APPEAR = 40; WATER_BLOCKS_RANGE_MAX = 5; WATER_BLOCKS_RANGE_MIN = 10; break; }; if (LEVEL_5 == CURRENT_LEVEL){ CREATE_BIG_BLOCK_WATER = true; COUNT_MIN_FOR_WATER_BLOCKS_APPEAR = 400; PROBABILITY_OF_WATER__BLOCKS_APPEAR = 65; WATER_BLOCKS_RANGE_MAX = 10; WATER_BLOCKS_RANGE_MIN = 20; }; INITIAL_IMPULSE = Upgrades.checkLaunchingPad(INITIAL_IMPULSE); IMPULSE_SPRINGBOARD = Upgrades.checkBouncingRate(); UNACELERATOR_AIR_REST_VELOCITY_X = Upgrades.checkObstacleResistanceAir(); UNACELERATOR_ROAD_REST_VELOCITY_X = Upgrades.checkObstacleResistanceRoad(); RODENT.ImproveSize(Upgrades.checkRodentImprovement()); PTERODACTYL.ImproveSize(Upgrades.checkPterodactylImprovement()); TURTLE.ImproveSize(Upgrades.checkTurtleImprovement()); PRIZE.setFeedingPortion(0.8); } public static function GetImpulseToApply():b2Vec2{ var _local1:b2Vec2; _local1 = IMPULSE_SPRINGBOARD.Copy(); return (_local1); } public static function destroyEverything():void{ RODENT = (PTERODACTYL = (TURTLE = null)); PRIZE = null; ROAD_RANGE_Y_MAX = 16; ROAD_RANGE_Y_MIN = 10; IS_TRUCK_IN_COLISSION = false; CREATE_SKY_OBJECT = false; } public static function IsWaterRecientCreated(){ } public static function PutSensorToAllShapes(_arg1:b2Body){ var _local2:b2Shape; _local2 = _arg1.m_shapeList; while (_local2 != null) { _local2.m_isSensor = true; _local2 = _local2.GetNext(); }; } } }//package AS.utils
Section 18
//KeyboardActive (AS.utils.KeyboardActive) package AS.utils { import core.common.*; import flash.ui.*; public class KeyboardActive { public static var DOWN:Boolean = false; public static var SPACE:Boolean = false; public static var SPACE_EXECUTE_ACTION:Boolean = false; public static var UP:Boolean = false; public static var TRUCK_FLYING_WHIT_PTERODACTIL:Boolean = false; public static function DesactivandoKeyboardActive(_arg1:uint):Boolean{ switch (_arg1){ case Keyboard.SPACE: KeyboardActive.SPACE = false; SPACE_EXECUTE_ACTION = false; TRUCK_FLYING_WHIT_PTERODACTIL = false; break; case Keyboard.UP: case KeyboardKeys.W_KEY: case KeyboardKeys.w_KEY: KeyboardActive.UP = false; break; case Keyboard.DOWN: case KeyboardKeys.S_KEY: case KeyboardKeys.s_KEY: KeyboardActive.DOWN = false; break; default: return (false); }; return (true); } public static function ActivandoKeyboardActive(_arg1:uint):Boolean{ switch (_arg1){ case Keyboard.SPACE: KeyboardActive.SPACE = true; break; case Keyboard.UP: case KeyboardKeys.W_KEY: case KeyboardKeys.w_KEY: KeyboardActive.UP = true; break; case Keyboard.DOWN: case KeyboardKeys.S_KEY: case KeyboardKeys.s_KEY: KeyboardActive.DOWN = true; break; default: return (false); }; return (true); } public static function reset():void{ UP = false; DOWN = false; SPACE = false; SPACE_EXECUTE_ACTION = false; TRUCK_FLYING_WHIT_PTERODACTIL = false; } } }//package AS.utils
Section 19
//MyContactListener (AS.utils.MyContactListener) package AS.utils { import Box2D.Dynamics.*; import Box2D.Collision.*; import game.physics.goals.*; import Box2D.Dynamics.Contacts.*; public class MyContactListener extends b2ContactListener { private var is_wheel_and_ground_together:Boolean;// = false public function MyContactListener(){ is_wheel_and_ground_together = false; super(); } override public function Persist(_arg1:b2ContactPoint):void{ } override public function Add(_arg1:b2ContactPoint):void{ var _local2:ActorGoal; var _local3:ActorGoal; _local2 = _arg1.shape1.GetBody().GetUserData(); _local3 = _arg1.shape2.GetBody().GetUserData(); if (((!((_local2 == null))) && (!((_local3 == null))))){ _local2.doAction(_local3); _local3.doAction(_local2); }; } override public function Remove(_arg1:b2ContactPoint):void{ } override public function Result(_arg1:b2ContactResult):void{ } } }//package AS.utils
Section 20
//Prizes (AS.utils.Prizes) package AS.utils { import game.logic.*; import core.*; public class Prizes { private var _engine:Engine;// = null private var _feeding_portion:Number;// = 1 public static var COUNT_OF_GOLD_PER_UNIT = 1; public static var COUNT_OF_FOOD_PER_UNIT = 1; public function Prizes(){ _feeding_portion = 1; _engine = null; super(); _engine = Global.nameManager.lookup(Engine); } public function setFeedingPortion(_arg1:Number):void{ _feeding_portion = _arg1; } public function GetingFood():void{ _engine.food = (_engine.food + COUNT_OF_FOOD_PER_UNIT); } public function GetingBonusGold(_arg1:int):void{ _engine.money = (_engine.money + _arg1); _engine.stats.total = (_engine.stats.total + _arg1); Global.top.gameSettings.saveCommon({money:_engine.money}); } public function GetingGold():void{ _engine.money = (_engine.money + COUNT_OF_GOLD_PER_UNIT); _engine.achievements.gemsEarned(COUNT_OF_GOLD_PER_UNIT); GameBoard._engine.playWindowUI.gold_txt.text = _engine.money.toString(); _engine.stats.total = (_engine.stats.total + COUNT_OF_GOLD_PER_UNIT); Global.top.gameSettings.saveCommon({money:_engine.money}); } public function FeedPet(){ _engine.food = (_engine.food - _feeding_portion); } public function GetFood():int{ return (int(_engine.food)); } } }//package AS.utils
Section 21
//Pterodactil (AS.utils.Pterodactil) package AS.utils { import game.logic.*; import Box2D.Common.Math.*; public class Pterodactil extends Upgrade_Object { public function Pterodactil(){ Size = 5; linearDamping = 0; angularDamping = 0; } override public function Action():Boolean{ if (super.Action()){ FeedingThePet(); Handler(); }; return (true); } override protected function Handler():void{ if (GameBoard.truck.IsStateAir()){ GameBoard.truck.body.ApplyImpulse(new b2Vec2((getSize() / 2), -(getSize())), GameBoard.truck.body.GetWorldCenter()); KeyboardActive.TRUCK_FLYING_WHIT_PTERODACTIL = true; } else { KeyboardActive.TRUCK_FLYING_WHIT_PTERODACTIL = false; }; } } }//package AS.utils
Section 22
//Rodent (AS.utils.Rodent) package AS.utils { import game.logic.*; import Box2D.Common.Math.*; public class Rodent extends Upgrade_Object { public function Rodent():void{ Size = 12; linearDamping = 0.7; angularDamping = 0.1; } override public function Action():Boolean{ if (super.Action()){ Handler(); }; return (true); } override protected function Handler():void{ if (GameBoard.truck.IsStateRoad()){ GameBoard.truck.body.ApplyImpulse(new b2Vec2(getSize(), 0), GameBoard.truck.body.GetWorldCenter()); }; } } }//package AS.utils
Section 23
//Statistic (AS.utils.Statistic) package AS.utils { import game.logic.*; import flash.events.*; import flash.utils.*; public class Statistic { private var t:Timer; public static var distanceJumpMax:int = 0; public static var XfJump:int = 0; public static var timeInGame:int = 0; public static var XoJump:int = 0; public static var timeJumpMax:int = 0; public static var timeJumpBegin:int = 0; public static var timeJumpFinish:int = 0; public function Statistic(){ t = new Timer(1000); t.start(); t.addEventListener(TimerEvent.TIMER, timeHandler); } public function destroy():void{ t.stop(); t.removeEventListener(TimerEvent.TIMER, timeHandler); t = null; timeInGame = 0; timeJumpBegin = 0; timeJumpFinish = 0; timeJumpMax = 0; XoJump = 0; XfJump = 0; distanceJumpMax = 0; } private function timeHandler(_arg1:TimerEvent){ timeInGame++; } public static function JumpFinish(){ timeJumpFinish = timeInGame; XfJump = GameBoard.truck.displacement.x; } public static function CalculateJumpTimeAndDistance(){ var _local1:*; var _local2:*; _local1 = (timeJumpFinish - timeJumpBegin); _local2 = (XfJump - XoJump); if (_local2 > distanceJumpMax){ distanceJumpMax = _local2; timeJumpMax = _local1; }; } public static function JumpBegin(){ timeJumpBegin = timeInGame; XoJump = GameBoard.truck.displacement.x; } } }//package AS.utils
Section 24
//Turtle (AS.utils.Turtle) package AS.utils { import game.logic.*; import Box2D.Common.Math.*; public class Turtle extends Upgrade_Object { public function Turtle():void{ Size = 21; linearDamping = 1.5; angularDamping = 5; } override public function Action():Boolean{ if (super.Action()){ FeedingThePet(); Handler(); }; return (true); } override protected function Handler():void{ if (GameBoard.truck.IsStateWater()){ GameBoard.truck.body.ApplyImpulse(new b2Vec2(getSize(), 0), GameBoard.truck.body.GetWorldCenter()); }; } } }//package AS.utils
Section 25
//Upgrade_Object (AS.utils.Upgrade_Object) package AS.utils { import flash.display.*; public class Upgrade_Object { protected var angularDamping; protected var have_upgrade:Boolean;// = false public var S:MovieClip; protected var linearDamping; protected var Size:Number; protected var count_of_upgrade:int;// = 1 public static const SIZE_PERCENT = 50; public function Upgrade_Object(){ have_upgrade = false; count_of_upgrade = 1; super(); } public function setUpgradeLevel(_arg1:int):void{ if (_arg1 > 0){ have_upgrade = true; S.visible = true; S.gotoAndStop(("level" + _arg1.toString())); } else { have_upgrade = false; S.visible = false; }; count_of_upgrade = _arg1; } public function Action():Boolean{ return (((have_upgrade) && (FeedingThePet()))); } public function ImproveLinearDamping(_arg1:Number=20):void{ linearDamping = (linearDamping * (1 - (_arg1 / 100))); } public function getLinearDamping():Number{ return (linearDamping); } protected function Handler():void{ } protected function FeedingThePet():Boolean{ if (General.PRIZE.GetFood() <= 0){ return (false); }; General.PRIZE.FeedPet(); return (true); } public function getAngularDamping():Number{ return (angularDamping); } protected function getSize():Number{ var _local1:Number; _local1 = (Size + ((Size * (SIZE_PERCENT * (count_of_upgrade - 1))) / 100)); return (_local1); } public function setMC(_arg1:MovieClip):void{ S = _arg1; S.visible = false; S.inner.stop(); S.inner.inner.stop(); } public function ImproveSize(_arg1:Number=20):void{ Size = (Size * (1 + (_arg1 / 100))); } public function ImproveAngularDamping(_arg1:Number=20):void{ angularDamping = (angularDamping * (1 - (_arg1 / 100))); } } }//package AS.utils
Section 26
//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 27
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_radius:Number; public var m_localPosition:b2Vec2; public function b2CircleShape(_arg1:b2ShapeDef){ var _local2:b2CircleDef; m_localPosition = new b2Vec2(); super(_arg1); _local2 = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; _local3 = _arg1.R; _local4 = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); _local5 = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local6 = _arg1.R; _local7 = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); _local8 = (_arg1.position.x + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); _local9 = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); _local11 = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ return (false); }; _local12 = (_arg4.p2.x - _arg4.p1.x); _local13 = (_arg4.p2.y - _arg4.p1.y); _local14 = ((_local9 * _local12) + (_local10 * _local13)); _local15 = ((_local12 * _local12) + (_local13 * _local13)); _local16 = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; _local17 = -((_local14 + Math.sqrt(_local16))); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){ _local17 = (_local17 / _local15); _arg2[0] = _local17; _arg3.x = (_local9 + (_local17 * _local12)); _arg3.y = (_local10 + (_local17 * _local13)); _arg3.Normalize(); return (true); }; return (false); } override public function ComputeMass(_arg1:b2MassData):void{ _arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_localPosition); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y)))); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = _arg2.R; _local5 = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); _local6 = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; _local7 = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); _local8 = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius)); _arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius)); } public function GetRadius():Number{ return (m_radius); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number; var _local3:Number; _local2 = (m_localPosition.x - _arg1.x); _local3 = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; _local3 = _arg2.R; _local4 = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); _local5 = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } } }//package Box2D.Collision.Shapes
Section 28
//b2FilterData (Box2D.Collision.Shapes.b2FilterData) package Box2D.Collision.Shapes { public class b2FilterData { public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public var categoryBits:uint;// = 1 public function b2FilterData(){ categoryBits = 1; maskBits = 0xFFFF; groupIndex = 0; super(); } public function Copy():b2FilterData{ var _local1:b2FilterData; _local1 = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Collision.Shapes
Section 29
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ mass = 0; center = new b2Vec2(0, 0); I = 0; super(); } } }//package Box2D.Collision.Shapes
Section 30
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertexCount:int; public var vertices:Array; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(_arg1:uint=8){ var _local2:int; super(); vertices = new Array(_arg1); type = b2Shape.e_polygonShape; vertexCount = 0; _local2 = 0; while (_local2 < _arg1) { vertices[_local2] = new b2Vec2(); _local2++; }; } public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{ var _local5:b2Vec2; var _local6:b2Mat22; var _local7:int; vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); if (_arg3){ _local5 = _arg3; _local6 = s_mat; _local6.Set(_arg4); _local7 = 0; while (_local7 < vertexCount) { _arg3 = vertices[_local7]; _arg1 = (_local5.x + ((_local6.col1.x * _arg3.x) + (_local6.col2.x * _arg3.y))); _arg3.y = (_local5.y + ((_local6.col1.y * _arg3.x) + (_local6.col2.y * _arg3.y))); _arg3.x = _arg1; _local7++; }; }; } public function SetAsBox(_arg1:Number, _arg2:Number):void{ vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); } } }//package Box2D.Collision.Shapes
Section 31
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { public var m_vertices:Array; public var m_normals:Array; private var s_supportVec:b2Vec2; public var m_obb:b2OBB; public var m_coreVertices:Array; public var m_centroid:b2Vec2; public var m_vertexCount:int; private static var s_computeMat:b2Mat22 = new b2Mat22(); private static var s_sweptAABB1:b2AABB = new b2AABB(); private static var s_sweptAABB2:b2AABB = new b2AABB(); public function b2PolygonShape(_arg1:b2ShapeDef){ var _local2:b2PolygonDef; var _local3:int; var _local4:int; var _local5:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; s_supportVec = new b2Vec2(); m_obb = new b2OBB(); m_vertices = new Array(b2Settings.b2_maxPolygonVertices); m_normals = new Array(b2Settings.b2_maxPolygonVertices); m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices); super(_arg1); m_type = e_polygonShape; _local2 = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; _local4 = _local3; _local5 = _local3; _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3] = _local2.vertices[_local3].Copy(); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = (m_vertices[_local5].x - m_vertices[_local4].x); _local7 = (m_vertices[_local5].y - m_vertices[_local4].y); _local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8)); _local3++; }; m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount); ComputeOBB(m_obb, m_vertices, m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { _local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1); _local5 = _local3; _local9 = m_normals[_local4].x; _local10 = m_normals[_local4].y; _local11 = m_normals[_local5].x; _local12 = m_normals[_local5].y; _local13 = (m_vertices[_local3].x - m_centroid.x); _local14 = (m_vertices[_local3].y - m_centroid.y); _local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop); _local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop); _local17 = (1 / ((_local9 * _local12) - (_local10 * _local11))); m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y)); _local3++; }; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Vec2; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:int; var _local10:Number; _local4 = _arg1.R; _local5 = (_arg2.x - _arg1.position.x); _local6 = (_arg2.y - _arg1.position.y); _local7 = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); _local8 = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); _local9 = 0; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } public function GetCoreVertices():Array{ return (m_coreVertices); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:Number; var _local21:Number; _local6 = 0; _local7 = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; _local12 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); _local13 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local8 = (_arg4.p2.x - _arg1.position.x); _local9 = (_arg4.p2.y - _arg1.position.y); _local10 = _arg1.R; _local14 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); _local15 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local16 = (_local14 - _local12); _local17 = (_local15 - _local13); _local18 = -1; _local19 = 0; while (_local19 < m_vertexCount) { _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); } public function GetCentroid():b2Vec2{ return (m_centroid); } override public function ComputeMass(_arg1:b2MassData):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:int; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _local2 = 0; _local3 = 0; _local4 = 0; _local5 = 0; _local6 = 0; _local7 = 0; _local8 = (1 / 3); _local9 = 0; while (_local9 < m_vertexCount) { _local10 = m_vertices[_local9]; _local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[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 Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Vec2; var _local5:b2Mat22; var _local6:Number; var _local7:Number; var _local8:int; var _local9:Number; var _local10:int; var _local11:Number; _local5 = _arg1.R; _local6 = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y)); _local7 = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y)); _local8 = 0; _local4 = m_coreVertices[0]; _local9 = ((_local4.x * _local6) + (_local4.y * _local7)); _local10 = 1; while (_local10 < m_vertexCount) { _local4 = m_coreVertices[_local10]; _local11 = ((_local4.x * _local6) + (_local4.y * _local7)); if (_local11 > _local9){ _local8 = _local10; _local9 = _local11; }; _local10++; }; _local5 = _arg1.R; _local4 = m_coreVertices[_local8]; s_supportVec.x = (_arg1.position.x + ((_local5.col1.x * _local4.x) + (_local5.col2.x * _local4.y))); s_supportVec.y = (_arg1.position.y + ((_local5.col1.y * _local4.x) + (_local5.col2.y * _local4.y))); return (s_supportVec); } public function GetVertexCount():int{ return (m_vertexCount); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB; var _local5:b2AABB; _local4 = s_sweptAABB1; _local5 = s_sweptAABB2; ComputeAABB(_local4, _arg2); ComputeAABB(_local5, _arg3); _arg1.lowerBound.Set(((_local4.lowerBound.x < _local5.lowerBound.x)) ? _local4.lowerBound.x : _local5.lowerBound.x, ((_local4.lowerBound.y < _local5.lowerBound.y)) ? _local4.lowerBound.y : _local5.lowerBound.y); _arg1.upperBound.Set(((_local4.upperBound.x > _local5.upperBound.x)) ? _local4.upperBound.x : _local5.upperBound.x, ((_local4.upperBound.y > _local5.upperBound.y)) ? _local4.upperBound.y : _local5.upperBound.y); } public function GetVertices():Array{ return (m_vertices); } public function GetNormals():Array{ return (m_normals); } public function GetOBB():b2OBB{ return (m_obb); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_coreVertices[0])); } public function Centroid(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_centroid)); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:b2Vec2; var _local3:int; var _local4:Number; var _local5:Number; m_sweepRadius = 0; _local3 = 0; while (_local3 < m_vertexCount) { _local2 = m_coreVertices[_local3]; _local4 = (_local2.x - _arg1.x); _local5 = (_local2.y - _arg1.y); _local4 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); if (_local4 > m_sweepRadius){ m_sweepRadius = _local4; }; _local3++; }; } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22; var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local5 = s_computeMat; _local3 = _arg2.R; _local4 = m_obb.R.col1; _local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local4 = m_obb.R.col2; _local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local5.Abs(); _local6 = _local5; _local4 = m_obb.extents; _local7 = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); _local8 = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; _local9 = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); _local10 = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8)); _arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8)); } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:int; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local3 = new b2Vec2(); _local4 = 0; _local5 = 0; _local6 = 0; _local7 = (1 / 3); _local8 = 0; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0]; _local11 = (_local9.x - _local5); _local12 = (_local9.y - _local6); _local13 = (_local10.x - _local5); _local14 = (_local10.y - _local6); _local15 = ((_local11 * _local14) - (_local12 * _local13)); _local16 = (0.5 * _local15); _local4 = (_local4 + _local16); _local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x))); _local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y))); _local8++; }; _local3.x = (_local3.x * (1 / _local4)); _local3.y = (_local3.y * (1 / _local4)); return (_local3); } public static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{ var _local4:int; var _local5:Array; var _local6:Number; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:b2Mat22; _local5 = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; _local6 = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[int((_local4 - 1))]; _local8 = (_local5[_local4].x - _local7.x); _local9 = (_local5[_local4].y - _local7.y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = -(_local9); _local12 = _local8; _local13 = Number.MAX_VALUE; _local14 = Number.MAX_VALUE; _local15 = -(Number.MAX_VALUE); _local16 = -(Number.MAX_VALUE); _local17 = 0; while (_local17 < _arg3) { _local19 = (_local5[_local17].x - _local7.x); _local20 = (_local5[_local17].y - _local7.y); _local21 = ((_local8 * _local19) + (_local9 * _local20)); _local22 = ((_local11 * _local19) + (_local12 * _local20)); if (_local21 < _local13){ _local13 = _local21; }; if (_local22 < _local14){ _local14 = _local22; }; if (_local21 > _local15){ _local15 = _local21; }; if (_local22 > _local16){ _local16 = _local22; }; _local17++; }; _local18 = ((_local15 - _local13) * (_local16 - _local14)); if (_local18 < (0.95 * _local6)){ _local6 = _local18; _arg1.R.col1.x = _local8; _arg1.R.col1.y = _local9; _arg1.R.col2.x = _local11; _arg1.R.col2.y = _local12; _local23 = (0.5 * (_local13 + _local15)); _local24 = (0.5 * (_local14 + _local16)); _local25 = _arg1.R; _arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24))); _arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24))); _arg1.extents.x = (0.5 * (_local15 - _local13)); _arg1.extents.y = (0.5 * (_local16 - _local14)); }; _local4++; }; } } }//package Box2D.Collision.Shapes
Section 32
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2Shape { public var m_type:int; public var m_sweepRadius:Number; public var m_density:Number; public var m_filter:b2FilterData; public var m_friction:Number; public var m_next:b2Shape; public var m_restitution:Number; public var m_userData; public var m_isSensor:Boolean; public var m_proxyId:uint; public var m_body:b2Body; public static const e_polygonShape:int = 1; public static const e_unknownShape:int = -1; public static const e_circleShape:int = 0; public static const e_shapeTypeCount:int = 2; private static var s_resetAABB:b2AABB = new b2AABB(); private static var s_syncAABB:b2AABB = new b2AABB(); private static var s_proxyAABB:b2AABB = new b2AABB(); public function b2Shape(_arg1:b2ShapeDef){ m_userData = _arg1.userData; m_friction = _arg1.friction; m_restitution = _arg1.restitution; m_density = _arg1.density; m_body = null; m_sweepRadius = 0; m_next = null; m_proxyId = b2Pair.b2_nullProxy; m_filter = _arg1.filter.Copy(); m_isSensor = _arg1.isSensor; } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } public function GetSweepRadius():Number{ return (m_sweepRadius); } public function GetNext():b2Shape{ return (m_next); } public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ } public function GetType():int{ return (m_type); } public function GetRestitution():Number{ return (m_restitution); } public function GetFriction():Number{ return (m_friction); } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ return (false); } public function RefilterProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB; var _local4:Boolean; if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _arg1.DestroyProxy(m_proxyId); _local3 = s_resetAABB; ComputeAABB(_local3, _arg2); _local4 = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } public function GetUserData(){ return (m_userData); } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ var _local4:b2AABB; if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; _local4 = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxyId, _local4); return (true); }; return (false); } public function ComputeMass(_arg1:b2MassData):void{ } public function IsSensor():Boolean{ return (m_isSensor); } public function DestroyProxy(_arg1:b2BroadPhase):void{ if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); m_proxyId = b2Pair.b2_nullProxy; }; } public function UpdateSweepRadius(_arg1:b2Vec2):void{ } public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ } public function GetBody():b2Body{ return (m_body); } public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB; var _local4:Boolean; _local3 = s_proxyAABB; ComputeAABB(_local3, _arg2); _local4 = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public static function Destroy(_arg1:b2Shape, _arg2):void{ } public static function Create(_arg1:b2ShapeDef, _arg2):b2Shape{ switch (_arg1.type){ case e_circleShape: return (new b2CircleShape(_arg1)); case e_polygonShape: return (new b2PolygonShape(_arg1)); default: return (null); }; } } }//package Box2D.Collision.Shapes
Section 33
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { public class b2ShapeDef { public var isSensor:Boolean;// = false public var density:Number;// = 0 public var type:int;// = -1 public var restitution:Number;// = 0 public var userData;// = null public var filter:b2FilterData; public var friction:Number;// = 0.2 public function b2ShapeDef(){ type = b2Shape.e_unknownShape; userData = null; friction = 0.2; restitution = 0; density = 0; isSensor = false; filter = new b2FilterData(); super(); } } }//package Box2D.Collision.Shapes
Section 34
//b2AABB (Box2D.Collision.b2AABB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2AABB { public var upperBound:b2Vec2; public var lowerBound:b2Vec2; public function b2AABB(){ lowerBound = new b2Vec2(); upperBound = new b2Vec2(); super(); } public function IsValid():Boolean{ var _local1:Number; var _local2:Number; var _local3:Boolean; _local1 = (upperBound.x - lowerBound.x); _local2 = (upperBound.y - lowerBound.y); _local3 = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } }//package Box2D.Collision
Section 35
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var proxyId:uint; public var stabbingCount:uint; public var value:uint; public function Swap(_arg1:b2Bound):void{ var _local2:uint; var _local3:uint; var _local4:uint; _local2 = value; _local3 = proxyId; _local4 = stabbingCount; value = _arg1.value; proxyId = _arg1.proxyId; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxyId = _local3; _arg1.stabbingCount = _local4; } public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } } }//package Box2D.Collision
Section 36
//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 37
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_quantizationFactor:b2Vec2; public var m_worldAABB:b2AABB; public var m_bounds:Array; public var m_freeProxy:uint; public var m_proxyCount:int; public var m_proxyPool:Array; public var m_queryResultCount:int; public var m_pairManager:b2PairManager; public var m_timeStamp:uint; public var m_queryResults:Array; public static const b2_nullEdge:uint = b2Settings.USHRT_MAX; public static const b2_invalid:uint = b2Settings.USHRT_MAX; public static var s_validate:Boolean = false; public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){ var _local3:int; var _local4:Number; var _local5:Number; var _local6:b2Proxy; var _local7:int; m_pairManager = new b2PairManager(); m_proxyPool = new Array(b2Settings.b2_maxPairs); m_bounds = new Array((2 * b2Settings.b2_maxProxies)); m_queryResults = new Array(b2Settings.b2_maxProxies); m_quantizationFactor = new b2Vec2(); super(); m_pairManager.Initialize(this, _arg2); m_worldAABB = _arg1; m_proxyCount = 0; _local3 = 0; while (_local3 < b2Settings.b2_maxProxies) { m_queryResults[_local3] = 0; _local3++; }; m_bounds = new Array(2); _local3 = 0; while (_local3 < 2) { m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies)); _local7 = 0; while (_local7 < (2 * b2Settings.b2_maxProxies)) { m_bounds[_local3][_local7] = new b2Bound(); _local7++; }; _local3++; }; _local4 = (_arg1.upperBound.x - _arg1.lowerBound.x); _local5 = (_arg1.upperBound.y - _arg1.lowerBound.y); m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4); m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5); _local3 = 0; while (_local3 < (b2Settings.b2_maxProxies - 1)) { _local6 = new b2Proxy(); m_proxyPool[_local3] = _local6; _local6.SetNext((_local3 + 1)); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; _local3++; }; _local6 = new b2Proxy(); m_proxyPool[int((b2Settings.b2_maxProxies - 1))] = _local6; _local6.SetNext(b2Pair.b2_nullProxy); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; m_freeProxy = 0; m_timeStamp = 1; m_queryResultCount = 0; } public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{ var _local4:Array; var _local5:Array; var _local6:uint; var _local7:uint; var _local8:Array; var _local9:Array; var _local10:int; var _local11:int; var _local12:b2Proxy; _local4 = new Array(); _local5 = new Array(); ComputeBounds(_local4, _local5, _arg1); _local8 = [_local6]; _local9 = [_local7]; Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0); Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1); _local10 = 0; _local11 = 0; while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) { _local12 = m_proxyPool[m_queryResults[_local11]]; _arg2[_local11] = _local12.userData; _local11++; _local10++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local10); } public function Commit():void{ m_pairManager.Commit(); } public function GetProxy(_arg1:int):b2Proxy{ var _local2:b2Proxy; _local2 = m_proxyPool[_arg1]; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((_local2.IsValid() == false)))){ return (null); }; return (_local2); } private function IncrementTimeStamp():void{ var _local1:uint; if (m_timeStamp == b2Settings.USHRT_MAX){ _local1 = 0; while (_local1 < b2Settings.b2_maxProxies) { (m_proxyPool[_local1] as b2Proxy).timeStamp = 0; _local1++; }; m_timeStamp = 1; } else { m_timeStamp++; }; } private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{ var _local8:uint; var _local9:uint; var _local10:b2Bound; var _local11:uint; var _local12:int; var _local13:int; var _local14:b2Proxy; _local8 = BinarySearch(_arg5, _arg6, _arg3); _local9 = BinarySearch(_arg5, _arg6, _arg4); _local11 = _local8; while (_local11 < _local9) { _local10 = _arg5[_local11]; if (_local10.IsLower()){ IncrementOverlapCount(_local10.proxyId); }; _local11++; }; if (_local8 > 0){ _local12 = (_local8 - 1); _local10 = _arg5[_local12]; _local13 = _local10.stabbingCount; while (_local13) { _local10 = _arg5[_local12]; if (_local10.IsLower()){ _local14 = m_proxyPool[_local10.proxyId]; if (_local8 <= _local14.upperBounds[_arg7]){ IncrementOverlapCount(_local10.proxyId); _local13--; }; }; _local12--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local3:int; var _local4:Array; var _local5:b2Bound; var _local6:b2Bound; _local3 = 0; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg1.lowerBounds[_local3]]; _local6 = _local4[_arg2.upperBounds[_local3]]; if (_local5.value > _local6.value){ return (false); }; _local5 = _local4[_arg1.upperBounds[_local3]]; _local6 = _local4[_arg2.lowerBounds[_local3]]; if (_local5.value < _local6.value){ return (false); }; _local3++; }; return (true); } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local4 = _arg3.lowerBound.x; _local5 = _arg3.lowerBound.y; _local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x); _local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y); _local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x); _local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y); _local6 = _arg3.upperBound.x; _local7 = _arg3.upperBound.y; _local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x); _local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y); _local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x); _local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y); _arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1)); _arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1); _arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1)); _arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1); } public function CreateProxy(_arg1:b2AABB, _arg2):uint{ var _local3:uint; var _local4:b2Proxy; var _local5:uint; var _local6:uint; var _local7:Array; var _local8:Array; var _local9:int; var _local10:int; var _local11:Array; var _local12:uint; var _local13:uint; var _local14:Array; var _local15:Array; var _local16:Array; var _local17:int; var _local18:int; var _local19:b2Bound; var _local20:b2Bound; var _local21:b2Bound; var _local22:int; var _local23:b2Proxy; _local5 = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; _local6 = (2 * m_proxyCount); _local7 = new Array(); _local8 = new Array(); ComputeBounds(_local7, _local8, _arg1); _local9 = 0; while (_local9 < 2) { _local11 = m_bounds[_local9]; _local14 = [_local12]; _local15 = [_local13]; Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9); _local12 = _local14[0]; _local13 = _local15[0]; _local16 = new Array(); _local18 = (_local6 - _local13); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local13 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local13 + 2); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local16 = new Array(); _local18 = (_local13 - _local12); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local12 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local12 + 1); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local13++; _local19 = _local11[_local12]; _local20 = _local11[_local13]; _local19.value = _local7[_local9]; _local19.proxyId = _local5; _local20.value = _local8[_local9]; _local20.proxyId = _local5; _local21 = _local11[int((_local12 - 1))]; _local19.stabbingCount = ((_local12 == 0)) ? 0 : _local21.stabbingCount; _local21 = _local11[int((_local13 - 1))]; _local20.stabbingCount = _local21.stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local21 = _local11[_local3]; _local21.stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local6 + 2)) { _local19 = _local11[_local3]; _local23 = m_proxyPool[_local19.proxyId]; if (_local19.IsLower()){ _local23.lowerBounds[_local9] = _local3; } else { _local23.upperBounds[_local9] = _local3; }; _local3++; }; _local9++; }; m_proxyCount++; _local10 = 0; while (_local10 < m_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 _local4:b2Proxy; var _local5:int; var _local6:int; var _local7:int; var _local8:Array; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:Array; var _local14:int; var _local15:int; var _local16:int; var _local17:uint; var _local18:int; var _local19:b2Proxy; _local4 = m_proxyPool[_arg1]; _local5 = (2 * m_proxyCount); _local6 = 0; while (_local6 < 2) { _local8 = m_bounds[_local6]; _local9 = _local4.lowerBounds[_local6]; _local10 = _local4.upperBounds[_local6]; _local2 = _local8[_local9]; _local11 = _local2.value; _local3 = _local8[_local10]; _local12 = _local3.value; _local13 = new Array(); _local15 = ((_local10 - _local9) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local9 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = _local9; _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local13 = new Array(); _local15 = ((_local5 - _local10) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local10 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = (_local10 - 1); _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = (_local5 - 2); _local17 = _local9; while (_local17 < _local15) { _local2 = _local8[_local17]; _local19 = m_proxyPool[_local2.proxyId]; if (_local2.IsLower()){ _local19.lowerBounds[_local6] = _local17; } else { _local19.upperBounds[_local6] = _local17; }; _local17++; }; _local15 = (_local10 - 1); _local18 = _local9; while (_local18 < _local15) { _local2 = _local8[_local18]; _local2.stabbingCount--; _local18++; }; Query([0], [0], _local11, _local12, _local8, (_local5 - 2), _local6); _local6++; }; _local7 = 0; while (_local7 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local7]); _local7++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _local4.userData = null; _local4.overlapCount = b2_invalid; _local4.lowerBounds[0] = b2_invalid; _local4.lowerBounds[1] = b2_invalid; _local4.upperBounds[0] = b2_invalid; _local4.upperBounds[1] = b2_invalid; _local4.SetNext(m_freeProxy); m_freeProxy = _arg1; m_proxyCount--; } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local3:int; var _local4:Array; var _local5:b2Bound; _local3 = 0; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg2.upperBounds[_local3]]; if (_arg1.lowerValues[_local3] > _local5.value){ return (false); }; _local5 = _local4[_arg2.lowerBounds[_local3]]; if (_arg1.upperValues[_local3] < _local5.value){ return (false); }; _local3++; }; return (true); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local5:int; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; _local5 = 0; while (_local5 < 2) { _local6 = m_bounds[_local5]; _local7 = (2 * m_proxyCount); _local8 = 0; _local9 = 0; while (_local9 < _local7) { _local10 = _local6[_local9]; if (_local10.IsLower() == true){ _local8++; } else { _local8--; }; _local9++; }; _local5++; }; } private function IncrementOverlapCount(_arg1:uint):void{ var _local2:b2Proxy; _local2 = m_proxyPool[_arg1]; if (_local2.timeStamp < m_timeStamp){ _local2.timeStamp = m_timeStamp; _local2.overlapCount = 1; } else { _local2.overlapCount = 2; m_queryResults[m_queryResultCount] = _arg1; m_queryResultCount++; }; } public function InRange(_arg1:b2AABB):Boolean{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = _arg1.lowerBound.x; _local3 = _arg1.lowerBound.y; _local2 = (_local2 - m_worldAABB.upperBound.x); _local3 = (_local3 - m_worldAABB.upperBound.y); _local4 = m_worldAABB.lowerBound.x; _local5 = m_worldAABB.lowerBound.y; _local4 = (_local4 - _arg1.upperBound.x); _local5 = (_local5 - _arg1.upperBound.y); _local2 = b2Math.b2Max(_local2, _local4); _local3 = b2Math.b2Max(_local3, _local5); return ((b2Math.b2Max(_local2, _local3) < 0)); } public function MoveProxy(_arg1:uint, _arg2:b2AABB):void{ var _local3:Array; var _local4:int; var _local5:uint; var _local6:uint; var _local7:b2Bound; var _local8:b2Bound; var _local9:b2Bound; var _local10:uint; var _local11:b2Proxy; var _local12:uint; var _local13:b2Proxy; var _local14:b2BoundValues; var _local15:b2BoundValues; var _local16:Array; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:uint; var _local21:int; var _local22:int; var _local23:uint; var _local24:b2Proxy; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){ return; }; if (_arg2.IsValid() == false){ return; }; _local12 = (2 * m_proxyCount); _local13 = m_proxyPool[_arg1]; _local14 = new b2BoundValues(); ComputeBounds(_local14.lowerValues, _local14.upperValues, _arg2); _local15 = new b2BoundValues(); _local5 = 0; while (_local5 < 2) { _local7 = m_bounds[_local5][_local13.lowerBounds[_local5]]; _local15.lowerValues[_local5] = _local7.value; _local7 = m_bounds[_local5][_local13.upperBounds[_local5]]; _local15.upperValues[_local5] = _local7.value; _local5++; }; _local5 = 0; while (_local5 < 2) { _local16 = m_bounds[_local5]; _local17 = _local13.lowerBounds[_local5]; _local18 = _local13.upperBounds[_local5]; _local19 = _local14.lowerValues[_local5]; _local20 = _local14.upperValues[_local5]; _local7 = _local16[_local17]; _local21 = (_local19 - _local7.value); _local7.value = _local19; _local7 = _local16[_local18]; _local22 = (_local20 - _local7.value); _local7.value = _local20; if (_local21 < 0){ _local6 = _local17; while ((((_local6 > 0)) && ((_local19 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local8.proxyId]; _local8.stabbingCount++; if (_local8.IsUpper() == true){ if (TestOverlap(_local14, _local24)){ m_pairManager.AddBufferedPair(_arg1, _local23); }; _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; if (_local22 > 0){ _local6 = _local18; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local20)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount++; if (_local9.IsLower() == true){ if (TestOverlap(_local14, _local11)){ m_pairManager.AddBufferedPair(_arg1, _local10); }; _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local21 > 0){ _local6 = _local17; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local19)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount--; if (_local9.IsUpper()){ if (TestOverlap(_local15, _local11)){ m_pairManager.RemoveBufferedPair(_arg1, _local10); }; _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local22 < 0){ _local6 = _local18; while ((((_local6 > 0)) && ((_local20 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local23]; _local8.stabbingCount--; if (_local8.IsLower() == true){ if (TestOverlap(_local15, _local24)){ m_pairManager.RemoveBufferedPair(_arg1, _local23); }; _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; _local5++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local4:int; var _local5:int; var _local6:int; var _local7:b2Bound; _local4 = 0; _local5 = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); _local7 = _arg1[_local6]; if (_local7.value > _arg3){ _local5 = (_local6 - 1); } else { if (_local7.value < _arg3){ _local4 = (_local6 + 1); } else { return (uint(_local6)); }; }; }; return (uint(_local4)); } } }//package Box2D.Collision
Section 38
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 39
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local6:int; var _local7:Array; var _local8:Array; var _local9:int; var _local10:Array; var _local11:b2Mat22; var _local12:b2Vec2; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:int; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _local6 = _arg1.m_vertexCount; _local7 = _arg1.m_vertices; _local8 = _arg1.m_normals; _local9 = _arg4.m_vertexCount; _local10 = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; _local13 = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); _local14 = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; _local15 = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); _local16 = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); _local17 = 0; _local18 = Number.MAX_VALUE; _local19 = 0; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; _local20 = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); _local21 = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; _local22 = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); _local23 = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); _local24 = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local3 = _arg2.lowerBound; _local4 = _arg1.upperBound; _local5 = (_local3.x - _local4.x); _local6 = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; _local7 = (_local3.x - _local4.x); _local8 = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local7:int; var _local8:Array; var _local9:int; var _local10:Array; var _local11:Array; var _local12:b2Mat22; var _local13:b2Vec2; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:int; var _local20:ClipVertex; var _local21:int; var _local22:int; var _local23:Number; _local7 = _arg2.m_vertexCount; _local8 = _arg2.m_normals; _local9 = _arg5.m_vertexCount; _local10 = _arg5.m_vertices; _local11 = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; _local14 = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); _local15 = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; _local16 = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; _local17 = 0; _local18 = Number.MAX_VALUE; _local19 = 0; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; _local21 = _local17; _local22 = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.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 _local7:int; var _local8:Array; var _local9:Number; var _local10:int; var _local11:Array; var _local12:Number; var _local13:b2PolygonShape; var _local14:b2PolygonShape; var _local15:b2XForm; var _local16:b2XForm; var _local17:int; var _local18:uint; var _local19:Number; var _local20:Number; var _local21:Array; var _local22:int; var _local23:Array; var _local24:b2Vec2; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:b2Vec2; var _local28:b2Vec2; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Array; var _local33:Array; var _local34:int; var _local35:int; var _local36:int; var _local37:b2Vec2; var _local38:Number; var _local39:b2ManifoldPoint; _arg1.pointCount = 0; _local7 = 0; _local8 = [_local7]; _local9 = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5); _local7 = _local8[0]; if (_local9 > 0){ return; }; _local10 = 0; _local11 = [_local10]; _local12 = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3); _local10 = _local11[0]; if (_local12 > 0){ return; }; _local15 = new b2XForm(); _local16 = new b2XForm(); _local19 = 0.98; _local20 = 0.001; if (_local12 > ((_local19 * _local9) + _local20)){ _local13 = _arg4; _local14 = _arg2; _local15.Set(_arg5); _local16.Set(_arg3); _local17 = _local10; _local18 = 1; } else { _local13 = _arg2; _local14 = _arg4; _local15.Set(_arg3); _local16.Set(_arg5); _local17 = _local7; _local18 = 0; }; _local21 = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16); _local22 = _local13.m_vertexCount; _local23 = _local13.m_vertices; _local24 = _local23[_local17]; _local25 = _local24.Copy(); if ((_local17 + 1) < _local22){ _local24 = _local23[int((_local17 + 1))]; _local37 = _local24.Copy(); } else { _local24 = _local23[0]; _local37 = _local24.Copy(); }; _local26 = b2Math.SubtractVV(_local37, _local25); _local27 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25)); _local27.Normalize(); _local28 = b2Math.b2CrossVF(_local27, 1); _local25 = b2Math.b2MulX(_local15, _local25); _local37 = b2Math.b2MulX(_local15, _local37); _local29 = b2Math.b2Dot(_local28, _local25); _local30 = -(b2Math.b2Dot(_local27, _local25)); _local31 = b2Math.b2Dot(_local27, _local37); _local32 = [new ClipVertex(), new ClipVertex()]; _local33 = [new ClipVertex(), new ClipVertex()]; _local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30); if (_local34 < 2){ return; }; _local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31); if (_local34 < 2){ return; }; _arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy(); _local35 = 0; _local36 = 0; while (_local36 < b2Settings.b2_maxManifoldPoints) { _local6 = _local33[_local36]; _local38 = (b2Math.b2Dot(_local28, _local6.v) - _local29); if (_local38 <= 0){ _local39 = _arg1.points[_local35]; _local39.separation = _local38; _local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v); _local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v); _local39.id.key = _local6.id._key; _local39.id.features.flip = _local18; _local35++; }; _local36++; }; _arg1.pointCount = _local35; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local6:int; var _local7:Array; var _local8:b2Vec2; var _local9:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:int; var _local15:Number; var _local16:int; var _local17:Number; var _local18:int; var _local19:Number; var _local20:int; var _local21:Number; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; _local6 = _arg2.m_vertexCount; _local7 = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; _local10 = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); _local11 = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local9 = _arg3.R; _local8 = _arg2.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)))); _local12 = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); _local13 = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); _local14 = 0; _local15 = -(Number.MAX_VALUE); _local16 = 0; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; _local18 = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); _local19 = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); if (_local19 > 0){ return (_local19); }; _local20 = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; _local21 = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); if (_local21 > 0){ return (_local21); }; if ((((_local19 > _local17)) && ((_local19 > _local21)))){ _local24 = -1; _local22 = _local18; _local23 = _local19; } else { if (_local21 > _local17){ _local24 = 1; _local22 = _local20; _local23 = _local21; } else { _arg1[0] = _local14; return (_local17); }; }; while (true) { if (_local24 == -1){ _local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1); } else { _local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; if (_local17 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; _local8 = _local5.v; _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); _local10 = (b2Math.b2Dot(_arg3, _local8) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); var _local14 = _temp1; _arg1[_local14] = _arg2[0]; }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _local14 = _temp2; _arg1[_local14] = _arg2[1]; }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:b2ManifoldPoint; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; _local8 = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local9 = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; _local10 = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local11 = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local12 = (_local10 - _local8); _local13 = (_local11 - _local9); _local14 = ((_local12 * _local12) + (_local13 * _local13)); _local15 = _arg2.m_radius; _local16 = _arg4.m_radius; _local17 = (_local15 + _local16); if (_local14 > (_local17 * _local17)){ return; }; if (_local14 < Number.MIN_VALUE){ _local18 = -(_local17); _arg1.normal.Set(0, 1); } else { _local24 = Math.sqrt(_local14); _local18 = (_local24 - _local17); _local25 = (1 / _local24); _arg1.normal.x = (_local25 * _local12); _arg1.normal.y = (_local25 * _local13); }; _arg1.pointCount = 1; _local19 = _arg1.points[0]; _local19.id.key = 0; _local19.separation = _local18; _local8 = (_local8 + (_local15 * _arg1.normal.x)); _local9 = (_local9 + (_local15 * _arg1.normal.y)); _local10 = (_local10 - (_local16 * _arg1.normal.x)); _local11 = (_local11 - (_local16 * _arg1.normal.y)); _local20 = (0.5 * (_local8 + _local10)); _local21 = (0.5 * (_local9 + _local11)); _local22 = (_local20 - _arg3.position.x); _local23 = (_local21 - _arg3.position.y); _local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y)); _local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y)); _local22 = (_local20 - _arg5.position.x); _local23 = (_local21 - _arg5.position.y); _local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y)); _local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y)); } public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:Number; var _local20:Number; var _local21:int; var _local22:Array; var _local23:Array; var _local24:int; var _local25:int; var _local26:int; var _local27:b2Vec2; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; _local13 = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); _local14 = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; _local15 = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local16 = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local18 = 0; _local19 = -(Number.MAX_VALUE); _local20 = _arg4.m_radius; _local21 = _arg2.m_vertexCount; _local22 = _arg2.m_vertices; _local23 = _arg2.m_normals; _local24 = 0; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _local34 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local34 > _local20){ return; }; if (_local34 > _local19){ _local19 = _local34; _local18 = _local24; }; _local24++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _local23[_local18]; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)); _arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)); _local6 = _arg1.points[0]; _local6.id.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; }; _local25 = _local18; _local26 = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; _local11 = _local22[_local25]; _local27 = _local22[_local26]; _local28 = (_local27.x - _local11.x); _local29 = (_local27.y - _local11.y); _local30 = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local31 = ((_local7 * _local28) + (_local8 * _local29)); _local6 = _arg1.points[0]; if (_local31 <= 0){ _local32 = _local11.x; _local33 = _local11.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local25; } else { if (_local31 >= _local30){ _local32 = _local27.x; _local33 = _local27.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local26; } else { _local32 = ((_local28 * _local31) + _local11.x); _local33 = ((_local29 * _local31) + _local11.y); _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = 0; }; }; _local7 = (_local15 - _local32); _local8 = (_local16 - _local33); _local17 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local7 = (_local7 / _local17); _local8 = (_local8 / _local17); if (_local17 > _local20){ return; }; _arg1.pointCount = 1; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local7) + (_local12.col2.x * _local8)); _arg1.normal.y = ((_local12.col1.y * _local7) + (_local12.col2.y * _local8)); _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local17 - _local20); _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; } } }//package Box2D.Collision
Section 40
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { public class b2ContactID { public var _key:uint; public var features:Features; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID; _local1 = new b2ContactID(); _local1.key = key; return (_local1); } public function get key():uint{ return (_key); } public function set key(_arg1:uint):void{ _key = _arg1; features._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 41
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2ContactPoint { public var separation:Number; public var normal:b2Vec2; public var position:b2Vec2; public var restitution:Number; public var shape1:b2Shape; public var shape2:b2Shape; public var id:b2ContactID; public var friction:Number; public var velocity:b2Vec2; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 42
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Distance { private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); public static var g_GJK_Iterations:int = 0; public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local4:Number; var _local5:int; var _local6:b2Vec2; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local4 = (100 * Number.MIN_VALUE); _local5 = 0; while (_local5 < _arg3) { _local6 = _arg2[_local5]; _local7 = Math.abs((_arg1.x - _local6.x)); _local8 = Math.abs((_arg1.y - _local6.y)); _local9 = Math.max(Math.abs(_arg1.x), Math.abs(_local6.x)); _local10 = Math.max(Math.abs(_arg1.y), Math.abs(_local6.y)); if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:b2Vec2; var _local8:Array; var _local9:Array; var _local10:Array; var _local11:int; var _local12:Number; var _local13:int; var _local14:int; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:int; _local8 = s_p1s; _local9 = s_p2s; _local10 = s_points; _local11 = 0; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); _local12 = 0; _local13 = 20; _local14 = 0; while (_local14 < _local13) { _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local17 = _arg3.Support(_arg4, _local15, _local16); _local18 = _arg5.Support(_arg6, -(_local15), -(_local16)); _local12 = ((_local15 * _local15) + (_local16 * _local16)); _local19 = (_local18.x - _local17.x); _local20 = (_local18.y - _local17.y); _local21 = ((_local15 * _local19) + (_local16 * _local20)); if ((_local12 - ((_local15 * _local19) + (_local16 * _local20))) <= (0.01 * _local12)){ if (_local11 == 0){ _arg1.SetV(_local17); _arg2.SetV(_local18); }; g_GJK_Iterations = _local14; return (Math.sqrt(_local12)); }; switch (_local11){ case 0: _local7 = _local8[0]; _local7.SetV(_local17); _local7 = _local9[0]; _local7.SetV(_local18); _local7 = _local10[0]; _local7.x = _local19; _local7.y = _local20; _arg1.SetV(_local8[0]); _arg2.SetV(_local9[0]); _local11++; break; case 1: _local7 = _local8[1]; _local7.SetV(_local17); _local7 = _local9[1]; _local7.SetV(_local18); _local7 = _local10[1]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10); break; case 2: _local7 = _local8[2]; _local7.SetV(_local17); _local7 = _local9[2]; _local7.SetV(_local18); _local7 = _local10[2]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10); break; }; if (_local11 == 3){ g_GJK_Iterations = _local14; return (0); }; _local22 = -(Number.MAX_VALUE); _local23 = 0; while (_local23 < _local11) { _local7 = _local10[_local23]; _local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y))); _local23++; }; if ((((_local11 == 3)) || ((_local12 <= ((100 * Number.MIN_VALUE) * _local22))))){ g_GJK_Iterations = _local14; _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local12 = ((_local15 * _local15) + (_local16 * _local16)); return (Math.sqrt(_local12)); }; _local14++; }; g_GJK_Iterations = _local13; return (Math.sqrt(_local12)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; _local9 = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local10 = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; _local11 = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local12 = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = ((_local13 * _local13) + (_local14 * _local14)); _local16 = (_arg3.m_radius - b2Settings.b2_toiSlop); _local17 = (_arg5.m_radius - b2Settings.b2_toiSlop); _local18 = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _local20 = (_local19 - _local18); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = (_local11 - (_local17 * _local13)); _arg2.y = (_local12 - (_local17 * _local14)); return (_local20); }; if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; _arg1.x = _local9; _arg1.y = _local10; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:b2Vec2; var _local14:b2Vec2; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg5[2]; _local9 = _arg3[0]; _local10 = _arg3[1]; _local11 = _arg3[2]; _local12 = _arg4[0]; _local13 = _arg4[1]; _local14 = _arg4[2]; _local15 = _local6.x; _local16 = _local6.y; _local17 = _local7.x; _local18 = _local7.y; _local19 = _local8.x; _local20 = _local8.y; _local21 = (_local17 - _local15); _local22 = (_local18 - _local16); _local23 = (_local19 - _local15); _local24 = (_local20 - _local16); _local25 = (_local19 - _local17); _local26 = (_local20 - _local18); _local27 = -(((_local15 * _local21) + (_local16 * _local22))); _local28 = ((_local17 * _local21) + (_local18 * _local22)); _local29 = -(((_local15 * _local23) + (_local16 * _local24))); _local30 = ((_local19 * _local23) + (_local20 * _local24)); _local31 = -(((_local17 * _local25) + (_local18 * _local26))); _local32 = ((_local19 * _local25) + (_local20 * _local26)); if ((((_local30 <= 0)) && ((_local32 <= 0)))){ _arg1.SetV(_local11); _arg2.SetV(_local14); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (1); }; _local33 = ((_local21 * _local24) - (_local22 * _local23)); _local34 = (_local33 * ((_local15 * _local18) - (_local16 * _local17))); _local36 = (_local33 * ((_local17 * _local20) - (_local18 * _local19))); if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){ _local35 = (_local31 / (_local31 + _local32)); _arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x))); _arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y))); _arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x))); _arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y))); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (2); }; _local37 = (_local33 * ((_local19 * _local16) - (_local20 * _local15))); if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){ _local35 = (_local29 / (_local29 + _local30)); _arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x))); _arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y))); _arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x))); _arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y))); _local10.SetV(_local11); _local13.SetV(_local14); _local7.SetV(_local8); return (2); }; _local38 = ((_local36 + _local37) + _local34); _local38 = (1 / _local38); _local39 = (_local36 * _local38); _local40 = (_local37 * _local38); _local41 = ((1 - _local39) - _local40); _arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x)); _arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y)); _arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x)); _arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y)); return (3); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local9:b2Point; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local9 = gPoint; _local8 = _arg5.m_localPosition; _local7 = _arg6.R; _local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local10 = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); _local11 = (_arg5.m_radius - b2Settings.b2_toiSlop); if (_local10 > _local11){ _local10 = (_local10 - _local11); _local12 = (_arg2.x - _arg1.x); _local13 = (_arg2.y - _arg1.y); _local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13))); _local12 = (_local12 / _local14); _local13 = (_local13 / _local14); _arg2.x = (_arg2.x - (_local11 * _local12)); _arg2.y = (_arg2.y - (_local11 * _local13)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ var _local7:int; var _local8:int; _local7 = _arg3.m_type; _local8 = _arg5.m_type; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6)); }; return (0); } public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; _local12 = -(_local7.x); _local13 = -(_local7.y); _local14 = (_local6.x - _local7.x); _local15 = (_local6.y - _local7.y); _local16 = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); _local14 = (_local14 / _local16); _local15 = (_local15 / _local16); _local17 = ((_local12 * _local14) + (_local13 * _local15)); if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){ _arg1.SetV(_local9); _arg2.SetV(_local11); _local8.SetV(_local9); _local10.SetV(_local11); _local6.SetV(_local7); return (1); }; _local17 = (_local17 / _local16); _arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x))); _arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y))); _arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x))); _arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y))); return (2); } } }//package Box2D.Collision
Section 43
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var points:Array; public var pointCount:int;// = 0 public var normal:b2Vec2; public function b2Manifold(){ var _local1:int; pointCount = 0; super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Set(_arg1:b2Manifold):void{ var _local2:int; pointCount = _arg1.pointCount; _local2 = 0; while (_local2 < b2Settings.b2_maxManifoldPoints) { (points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]); _local2++; }; normal.SetV(_arg1.normal); } public function Reset():void{ var _local1:int; _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } } }//package Box2D.Collision
Section 44
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var separation:Number; public var localPoint2:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var localPoint1:b2Vec2; public var id:b2ContactID; public function b2ManifoldPoint(){ localPoint1 = new b2Vec2(); localPoint2 = new b2Vec2(); id = new b2ContactID(); super(); } public function Set(_arg1:b2ManifoldPoint):void{ localPoint1.SetV(_arg1.localPoint1); localPoint2.SetV(_arg1.localPoint2); separation = _arg1.separation; normalImpulse = _arg1.normalImpulse; tangentImpulse = _arg1.tangentImpulse; id.key = _arg1.id.key; } public function Reset():void{ localPoint1.SetZero(); localPoint2.SetZero(); separation = 0; normalImpulse = 0; tangentImpulse = 0; id.key = 0; } } }//package Box2D.Collision
Section 45
//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 46
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var userData;// = null public var proxyId1:uint; public var proxyId2:uint; public var status:uint; public var next:uint; public static var e_pairFinal:uint = 4; public static var b2_tableMask:int = (b2_tableCapacity - 1); public static var e_pairRemoved:uint = 2; public static var b2_nullPair:uint = b2Settings.USHRT_MAX; public static var e_pairBuffered:uint = 1; public static var b2_nullProxy:uint = b2Settings.USHRT_MAX; public static var b2_tableCapacity:int = b2Settings.b2_maxPairs; public function b2Pair(){ userData = null; super(); } public function SetBuffered():void{ status = (status | e_pairBuffered); } public function IsBuffered():Boolean{ return (((status & e_pairBuffered) == e_pairBuffered)); } public function IsFinal():Boolean{ return (((status & e_pairFinal) == e_pairFinal)); } public function ClearRemoved():void{ status = (status & ~(e_pairRemoved)); } public function SetFinal():void{ status = (status | e_pairFinal); } public function IsRemoved():Boolean{ return (((status & e_pairRemoved) == e_pairRemoved)); } public function ClearBuffered():void{ status = (status & ~(e_pairBuffered)); } public function SetRemoved():void{ status = (status | e_pairRemoved); } } }//package Box2D.Collision
Section 47
//b2PairCallback (Box2D.Collision.b2PairCallback) package Box2D.Collision { public class b2PairCallback { public function PairRemoved(_arg1, _arg2, _arg3):void{ } public function PairAdded(_arg1, _arg2){ return (null); } } }//package Box2D.Collision
Section 48
//b2PairManager (Box2D.Collision.b2PairManager) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PairManager { public var m_pairCount:int; public var m_pairBuffer:Array; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_pairBufferCount:int; public var m_hashTable:Array; public var m_broadPhase:b2BroadPhase; public var m_freePair:uint; public function b2PairManager(){ var _local1:uint; super(); m_hashTable = new Array(b2Pair.b2_tableCapacity); _local1 = 0; while (_local1 < b2Pair.b2_tableCapacity) { m_hashTable[_local1] = b2Pair.b2_nullPair; _local1++; }; m_pairs = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1] = new b2Pair(); _local1++; }; m_pairBuffer = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairBuffer[_local1] = new b2BufferedPair(); _local1++; }; _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1].proxyId1 = b2Pair.b2_nullProxy; m_pairs[_local1].proxyId2 = b2Pair.b2_nullProxy; m_pairs[_local1].userData = null; m_pairs[_local1].status = 0; m_pairs[_local1].next = (_local1 + 1); _local1++; }; m_pairs[int((b2Settings.b2_maxPairs - 1))].next = b2Pair.b2_nullPair; m_pairCount = 0; m_pairBufferCount = 0; } private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{ var _local4:b2Pair; var _local5:uint; _local5 = m_hashTable[_arg3]; _local4 = m_pairs[_local5]; while (((!((_local5 == b2Pair.b2_nullPair))) && ((Equals(_local4, _arg1, _arg2) == false)))) { _local5 = _local4.next; _local4 = m_pairs[_local5]; }; if (_local5 == b2Pair.b2_nullPair){ return (null); }; return (_local4); } private function Find(_arg1:uint, _arg2:uint):b2Pair{ var _local3:uint; var _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function ValidateBuffer():void{ } public function Commit():void{ var _local1:b2BufferedPair; var _local2:int; var _local3:int; var _local4:Array; var _local5:b2Pair; var _local6:b2Proxy; var _local7:b2Proxy; _local3 = 0; _local4 = m_broadPhase.m_proxyPool; _local2 = 0; while (_local2 < m_pairBufferCount) { _local1 = m_pairBuffer[_local2]; _local5 = Find(_local1.proxyId1, _local1.proxyId2); _local5.ClearBuffered(); _local6 = _local4[_local5.proxyId1]; _local7 = _local4[_local5.proxyId2]; if (_local5.IsRemoved()){ if (_local5.IsFinal() == true){ m_callback.PairRemoved(_local6.userData, _local7.userData, _local5.userData); }; _local1 = m_pairBuffer[_local3]; _local1.proxyId1 = _local5.proxyId1; _local1.proxyId2 = _local5.proxyId2; _local3++; } else { if (_local5.IsFinal() == false){ _local5.userData = m_callback.PairAdded(_local6.userData, _local7.userData); _local5.SetFinal(); }; }; _local2++; }; _local2 = 0; while (_local2 < _local3) { _local1 = m_pairBuffer[_local2]; RemovePair(_local1.proxyId1, _local1.proxyId2); _local2++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair; _local4 = Find(_arg1, _arg2); if (_local4 == null){ return; }; if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:b2Pair; var _local4:uint; var _local5:uint; var _local6:b2Pair; var _local7:uint; var _local8:uint; var _local9:*; if (_arg1 > _arg2){ _local7 = _arg1; _arg1 = _arg2; _arg2 = _local7; }; _local4 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); _local5 = m_hashTable[_local4]; _local6 = null; while (_local5 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local5], _arg1, _arg2)){ _local8 = _local5; _local3 = m_pairs[_local5]; if (_local6){ _local6.next = _local3.next; } else { m_hashTable[_local4] = _local3.next; }; _local3 = m_pairs[_local8]; _local9 = _local3.userData; _local3.next = m_freePair; _local3.proxyId1 = b2Pair.b2_nullProxy; _local3.proxyId2 = b2Pair.b2_nullProxy; _local3.userData = null; _local3.status = 0; m_freePair = _local8; m_pairCount--; return (_local9); } else { _local6 = m_pairs[_local5]; _local5 = _local6.next; }; }; return (null); } public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{ m_broadPhase = _arg1; m_callback = _arg2; } public function AddBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair; _local4 = AddPair(_arg1, _arg2); if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local3:uint; var _local4:b2Pair; var _local5:uint; var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; _local5 = m_freePair; _local4 = m_pairs[_local5]; m_freePair = _local4.next; _local4.proxyId1 = _arg1; _local4.proxyId2 = _arg2; _local4.status = 0; _local4.userData = null; _local4.next = m_hashTable[_local3]; m_hashTable[_local3] = _local5; m_pairCount++; return (_local4); } private function ValidateTable():void{ } public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{ return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2)))); } public static function Hash(_arg1:uint, _arg2:uint):uint{ var _local3:uint; _local3 = (((_arg2 << 16) & 4294901760) | _arg1); _local3 = (~(_local3) + ((_local3 << 15) & 4294934528)); _local3 = (_local3 ^ ((_local3 >> 12) & 1048575)); _local3 = (_local3 + ((_local3 << 2) & 4294967292)); _local3 = (_local3 ^ ((_local3 >> 4) & 268435455)); _local3 = (_local3 * 2057); _local3 = (_local3 ^ ((_local3 >> 16) & 0xFFFF)); return (_local3); } public static function Equals(_arg1:b2Pair, _arg2:uint, _arg3:uint):Boolean{ return ((((_arg1.proxyId1 == _arg2)) && ((_arg1.proxyId2 == _arg3)))); } } }//package Box2D.Collision
Section 49
//b2Point (Box2D.Collision.b2Point) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Point { public var p:b2Vec2; public function b2Point(){ p = new b2Vec2(); super(); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (p); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ return (p); } } }//package Box2D.Collision
Section 50
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var overlapCount:uint; public var lowerBounds:Array; public var upperBounds:Array; public var userData;// = null public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; userData = null; super(); } public function GetNext():uint{ return (lowerBounds[0]); } public function IsValid():Boolean{ return (!((overlapCount == b2BroadPhase.b2_invalid))); } public function SetNext(_arg1:uint):void{ lowerBounds[0] = (_arg1 & 0xFFFF); } } }//package Box2D.Collision
Section 51
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; _local5 = _arg3.p1; _local6 = (_arg3.p2.x - _local5.x); _local7 = (_arg3.p2.y - _local5.y); _local8 = (p2.x - p1.x); _local9 = (p2.y - p1.y); _local10 = _local9; _local11 = -(_local8); _local12 = (100 * Number.MIN_VALUE); _local13 = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local7) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } } }//package Box2D.Collision
Section 52
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:int; var _local20:int; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:b2XForm; var _local27:b2XForm; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; _local7 = _arg1.m_sweepRadius; _local8 = _arg3.m_sweepRadius; _local9 = _arg2.t0; _local10 = (_arg2.c.x - _arg2.c0.x); _local11 = (_arg2.c.y - _arg2.c0.y); _local12 = (_arg4.c.x - _arg4.c0.x); _local13 = (_arg4.c.y - _arg4.c0.y); _local14 = (_arg2.a - _arg2.a0); _local15 = (_arg4.a - _arg4.a0); _local16 = 0; _local17 = s_p1; _local18 = s_p2; _local19 = 20; _local20 = 0; _local21 = 0; _local22 = 0; _local23 = 0; _local24 = 0; while (true) { _local25 = (((1 - _local16) * _local9) + _local16); _local26 = s_xf1; _local27 = s_xf2; _arg2.GetXForm(_local26, _local25); _arg4.GetXForm(_local27, _local25); _local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27); if (_local20 == 0){ if (_local23 > (2 * b2Settings.b2_toiSlop)){ _local24 = (1.5 * b2Settings.b2_toiSlop); } else { _local5 = (0.05 * b2Settings.b2_toiSlop); _local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop)); _local24 = ((_local5 > _local6)) ? _local5 : _local6; }; }; if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){ break; }; _local21 = (_local18.x - _local17.x); _local22 = (_local18.y - _local17.y); _local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22))); _local21 = (_local21 / _local28); _local22 = (_local22 / _local28); _local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8)); if (_local29 == 0){ _local16 = 1; break; }; _local30 = ((_local23 - _local24) / _local29); _local31 = (_local16 + _local30); if ((((_local31 < 0)) || ((1 < _local31)))){ _local16 = 1; break; }; if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){ break; }; _local16 = _local31; _local20++; }; return (_local16); } } }//package Box2D.Collision
Section 53
//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 54
//Features (Box2D.Collision.Features) package Box2D.Collision { public class Features { public var _referenceEdge:int; public var _incidentEdge:int; public var _flip:int; public var _incidentVertex:int; public var _m_id:b2ContactID; public function get referenceEdge():int{ return (_referenceEdge); } public function set incidentVertex(_arg1:int):void{ _incidentVertex = _arg1; _m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000)); } public function get flip():int{ return (_flip); } public function get incidentEdge():int{ return (_incidentEdge); } public function set referenceEdge(_arg1:int):void{ _referenceEdge = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF)); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } }//package Box2D.Collision
Section 55
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(_arg1:Number=0, _arg2:b2Vec2=null, _arg3:b2Vec2=null){ var _local4:Number; var _local5:Number; col1 = new b2Vec2(); col2 = new b2Vec2(); super(); if (((!((_arg2 == null))) && (!((_arg3 == null))))){ col1.SetV(_arg2); col2.SetV(_arg3); } else { _local4 = Math.cos(_arg1); _local5 = Math.sin(_arg1); col1.x = _local4; col2.x = -(_local5); col1.y = _local5; col2.y = _local4; }; } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function Set(_arg1:Number):void{ var _local2:Number; var _local3:Number; _local2 = Math.cos(_arg1); _local3 = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function Abs():void{ col1.Abs(); col2.Abs(); } public function Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } public function Invert(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; _local2 = col1.x; _local3 = col2.x; _local4 = col1.y; _local5 = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = col1.x; _local5 = col2.x; _local6 = col1.y; _local7 = col2.y; _local8 = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } }//package Box2D.Common.Math
Section 56
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Mat22_identity:b2Mat22 = new b2Mat22(0, new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2XForm_identity:b2XForm = new b2XForm(b2Vec2_zero, b2Mat22_identity); public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function b2MulX(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = b2MulMV(_arg1.R, _arg2); _local3.x = (_local3.x + _arg1.position.x); _local3.y = (_local3.y + _arg1.position.y); return (_local3); } public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:*; _local3 = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22; _local2 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function b2MulXT(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; var _local4:Number; _local3 = SubtractVV(_arg2, _arg1.position); _local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y)); _local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y)); _local3.x = _local4; return (_local3); } public static function b2Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (b2Max(_arg2, b2Min(_arg1, _arg3))); } public static function b2AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2; _local2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22; _local3 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2Mat22; _local3 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); _local4 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); _local5 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean; _local2 = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (b2MaxV(_arg2, b2MinV(_arg1, _arg3))); } public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number; _local3 = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); return (_local3); } public static function b2Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function b2Random():Number{ return (((Math.random() * 2) - 1)); } public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22; _local3 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2)); return (_local3); } public static function b2NextPowerOfTwo(_arg1:uint):uint{ _arg1 = (_arg1 | ((_arg1 >> 1) & 2147483647)); _arg1 = (_arg1 | ((_arg1 >> 2) & 1073741823)); _arg1 = (_arg1 | ((_arg1 >> 4) & 268435455)); _arg1 = (_arg1 | ((_arg1 >> 8) & 0xFFFFFF)); _arg1 = (_arg1 | ((_arg1 >> 16) & 0xFFFF)); return ((_arg1 + 1)); } public static function b2Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } } }//package Box2D.Common.Math
Section 57
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var c:b2Vec2; public var a:Number; public var c0:b2Vec2; public var a0:Number; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } public function Advance(_arg1:Number):void{ var _local2:Number; if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){ _local2 = ((_arg1 - t0) / (1 - t0)); c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x)); c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y)); a0 = (((1 - _local2) * a0) + (_local2 * a)); t0 = _arg1; }; } public function GetXForm(_arg1:b2XForm, _arg2:Number):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; if ((1 - t0) > Number.MIN_VALUE){ _local4 = ((_arg2 - t0) / (1 - t0)); _arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x)); _arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y)); _local5 = (((1 - _local4) * a0) + (_local4 * a)); _arg1.R.Set(_local5); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; _local3 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } } }//package Box2D.Common.Math
Section 58
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { public class b2Vec2 { public var x:Number; public var y:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function SetZero():void{ x = 0; y = 0; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function MaxV(_arg1:b2Vec2):void{ x = ((x > _arg1.x)) ? x : _arg1.x; y = ((y > _arg1.y)) ? y : _arg1.y; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function Negative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function CrossVF(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function MulM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function Normalize():Number{ var _local1:Number; var _local2:Number; _local1 = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; _local2 = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function CrossFV(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 59
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { public class b2XForm { public var R:b2Mat22; public var position:b2Vec2; public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } } }//package Box2D.Common.Math
Section 60
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _g:uint;// = 0 private var _b:uint;// = 0 private var _r:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = 0; _g = 0; _b = 0; super(); _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function get color():uint{ return (((_r | (_g << 8)) | (_b << 16))); } public function set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set g(_arg1:Number):void{ _g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } } }//package Box2D.Common
Section 61
//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { import Box2D.Common.Math.*; public class b2Settings { public static const b2_angularSleepTolerance:Number = 0.0111111111111111; public static const b2_linearSleepTolerance:Number = 0.01; public static const b2_angularSlop:Number = 0.0349065850398866; public static const b2_linearSlop:Number = 0.005; public static const b2_pi:Number = 3.14159265358979; public static const b2_maxProxies:int = 0x0200; public static const b2_maxAngularVelocitySquared:Number = 62500; public static const b2_maxPolygonVertices:int = 8; public static const b2_velocityThreshold:Number = 1; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_maxPairs:int = 4096; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_timeToSleep:Number = 0.5; public static const b2_maxManifoldPoints:int = 2; public static const b2_maxAngularVelocity:Number = 250; public static const b2_maxAngularCorrection:Number = 0.139626340159546; public static const USHRT_MAX:int = 0xFFFF; public static const b2_maxLinearVelocity:Number = 300; public static const b2_maxLinearCorrection:Number = 0.2; public static const b2_toiSlop:Number = 0.04; public static const b2_maxLinearVelocitySquared:Number = 90000; public static function b2Assert(_arg1:Boolean):void{ var _local2:b2Vec2; if (!_arg1){ _local2.x++; }; } } }//package Box2D.Common
Section 62
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Collision.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){ var _local3:b2ManifoldPoint; m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; _local3 = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactPoint; var _local8:b2ManifoldPoint; _local5 = m_shape1.m_body; _local6 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf); _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ m_manifoldCount = 1; _local8 = m_manifold.points[0]; if (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); }; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2CircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 63
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Contact { public var m_shape1:b2Shape; public var m_shape2:b2Shape; public var m_prev:b2Contact; public var m_toi:Number; public var m_next:b2Contact; public var m_friction:Number; public var m_manifoldCount:int; public var m_node1:b2ContactEdge; public var m_node2:b2ContactEdge; public var m_restitution:Number; public var m_flags:uint; public static var e_toiFlag:uint = 8; public static var e_nonSolidFlag:uint = 1; public static var e_slowFlag:uint = 2; public static var e_islandFlag:uint = 4; public static var s_registers:Array; public static var s_initialized:Boolean = false; public function b2Contact(_arg1:b2Shape=null, _arg2:b2Shape=null){ m_node1 = new b2ContactEdge(); m_node2 = new b2ContactEdge(); super(); m_flags = 0; if (((!(_arg1)) || (!(_arg2)))){ m_shape1 = null; m_shape2 = null; return; }; if (((_arg1.IsSensor()) || (_arg2.IsSensor()))){ m_flags = (m_flags | e_nonSolidFlag); }; m_shape1 = _arg1; m_shape2 = _arg2; m_manifoldCount = 0; m_friction = Math.sqrt((m_shape1.m_friction * m_shape2.m_friction)); m_restitution = b2Math.b2Max(m_shape1.m_restitution, m_shape2.m_restitution); m_prev = null; m_next = null; m_node1.contact = null; m_node1.prev = null; m_node1.next = null; m_node1.other = null; m_node2.contact = null; m_node2.prev = null; m_node2.next = null; m_node2.other = null; } public function GetShape1():b2Shape{ return (m_shape1); } public function IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetNext():b2Contact{ return (m_next); } public function GetManifolds():Array{ return (null); } public function GetShape2():b2Shape{ return (m_shape2); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function Update(_arg1:b2ContactListener):void{ var _local2:int; var _local3:int; var _local4:b2Body; var _local5:b2Body; _local2 = m_manifoldCount; Evaluate(_arg1); _local3 = m_manifoldCount; _local4 = m_shape1.m_body; _local5 = m_shape2.m_body; if ((((_local3 == 0)) && ((_local2 > 0)))){ _local4.WakeUp(); _local5.WakeUp(); }; if (((((((_local4.IsStatic()) || (_local4.IsBullet()))) || (_local5.IsStatic()))) || (_local5.IsBullet()))){ m_flags = (m_flags & ~(e_slowFlag)); } else { m_flags = (m_flags | e_slowFlag); }; } public function Evaluate(_arg1:b2ContactListener):void{ } public static function InitializeRegisters():void{ var _local1:int; var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); _local1 = 0; while (_local1 < b2Shape.e_shapeTypeCount) { s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { s_registers[_local1][_local2] = new b2ContactRegister(); _local2++; }; _local1++; }; AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape); AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape); AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape); } public static function Destroy(_arg1:b2Contact, _arg2):void{ var _local3:int; var _local4:int; var _local5:b2ContactRegister; var _local6:Function; if (_arg1.m_manifoldCount > 0){ _arg1.m_shape1.m_body.WakeUp(); _arg1.m_shape2.m_body.WakeUp(); }; _local3 = _arg1.m_shape1.m_type; _local4 = _arg1.m_shape2.m_type; _local5 = s_registers[_local3][_local4]; _local6 = _local5.destroyFcn; _local6(_arg1, _arg2); } public static function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{ s_registers[_arg3][_arg4].createFcn = _arg1; s_registers[_arg3][_arg4].destroyFcn = _arg2; s_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ s_registers[_arg4][_arg3].createFcn = _arg1; s_registers[_arg4][_arg3].destroyFcn = _arg2; s_registers[_arg4][_arg3].primary = false; }; } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ var _local4:int; var _local5:int; var _local6:b2ContactRegister; var _local7:Function; var _local8:b2Contact; var _local9:int; var _local10:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; _local4 = _arg1.m_type; _local5 = _arg2.m_type; _local6 = s_registers[_local4][_local5]; _local7 = _local6.createFcn; if (_local7 != null){ if (_local6.primary){ return (_local7(_arg1, _arg2, _arg3)); }; _local8 = _local7(_arg2, _arg1, _arg3); _local9 = 0; while (_local9 < _local8.m_manifoldCount) { _local10 = _local8.GetManifolds()[_local9]; _local8.GetManifolds()[_local9].normal = _local10.normal.Negative(); _local9++; }; return (_local8); //unresolved jump }; return (null); } } }//package Box2D.Dynamics.Contacts
Section 64
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var restitution:Number; public var body1:b2Body; public var manifold:b2Manifold; public var normal:b2Vec2; public var body2:b2Body; public var friction:Number; public var pointCount:int; public function b2ContactConstraint(){ var _local1:int; normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 65
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var r2:b2Vec2; public var separation:Number; public var positionImpulse:Number; public var normalImpulse:Number; public var equalizedMass:Number; public var tangentMass:Number; public var tangentImpulse:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var normalMass:Number; public var velocityBias:Number; public var r1:b2Vec2; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); r1 = new b2Vec2(); r2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 66
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var next:b2ContactEdge; public var other:b2Body; public var contact:b2Contact; public var prev:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 67
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var primary:Boolean; public var createFcn:Function; public var destroyFcn:Function; } }//package Box2D.Dynamics.Contacts
Section 68
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Collision.*; public class b2ContactResult { public var normal:b2Vec2; public var position:b2Vec2; public var shape1:b2Shape; public var shape2:b2Shape; public var normalImpulse:Number; public var tangentImpulse:Number; public var id:b2ContactID; public function b2ContactResult(){ position = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Dynamics.Contacts
Section 69
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactSolver { public var m_constraintCount:int; public var m_constraints:Array; public var m_allocator; public var m_step:b2TimeStep; public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local9:int; var _local10:b2Body; var _local11:b2Body; var _local12:int; var _local13:Array; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:int; var _local23:b2Manifold; var _local24:Number; var _local25:Number; var _local26:b2ContactConstraint; var _local27:uint; var _local28:b2ManifoldPoint; var _local29:b2ContactConstraintPoint; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; 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++; }; _local9 = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local10 = _local5.m_shape1.m_body; _local11 = _local5.m_shape2.m_body; _local12 = _local5.m_manifoldCount; _local13 = _local5.GetManifolds(); _local14 = _local5.m_friction; _local15 = _local5.m_restitution; _local16 = _local10.m_linearVelocity.x; _local17 = _local10.m_linearVelocity.y; _local18 = _local11.m_linearVelocity.x; _local19 = _local11.m_linearVelocity.y; _local20 = _local10.m_angularVelocity; _local21 = _local11.m_angularVelocity; _local22 = 0; while (_local22 < _local12) { _local23 = _local13[_local22]; _local24 = _local23.normal.x; _local25 = _local23.normal.y; _local26 = m_constraints[_local9]; _local26.body1 = _local10; _local26.body2 = _local11; _local26.manifold = _local23; _local26.normal.x = _local24; _local26.normal.y = _local25; _local26.pointCount = _local23.pointCount; _local26.friction = _local14; _local26.restitution = _local15; _local27 = 0; while (_local27 < _local26.pointCount) { _local28 = _local23.points[_local27]; _local29 = _local26.points[_local27]; _local29.normalImpulse = _local28.normalImpulse; _local29.tangentImpulse = _local28.tangentImpulse; _local29.separation = _local28.separation; _local29.positionImpulse = 0; _local29.localAnchor1.SetV(_local28.localPoint1); _local29.localAnchor2.SetV(_local28.localPoint2); _local8 = _local10.m_xf.R; _local32 = (_local28.localPoint1.x - _local10.m_sweep.localCenter.x); _local33 = (_local28.localPoint1.y - _local10.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local32) + (_local8.col2.x * _local33)); _local33 = ((_local8.col1.y * _local32) + (_local8.col2.y * _local33)); _local32 = _local30; _local29.r1.Set(_local32, _local33); _local8 = _local11.m_xf.R; _local34 = (_local28.localPoint2.x - _local11.m_sweep.localCenter.x); _local35 = (_local28.localPoint2.y - _local11.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local34) + (_local8.col2.x * _local35)); _local35 = ((_local8.col1.y * _local34) + (_local8.col2.y * _local35)); _local34 = _local30; _local29.r2.Set(_local34, _local35); _local36 = ((_local32 * _local32) + (_local33 * _local33)); _local37 = ((_local34 * _local34) + (_local35 * _local35)); _local38 = ((_local32 * _local24) + (_local33 * _local25)); _local39 = ((_local34 * _local24) + (_local35 * _local25)); _local40 = (_local10.m_invMass + _local11.m_invMass); _local40 = (_local40 + ((_local10.m_invI * (_local36 - (_local38 * _local38))) + (_local11.m_invI * (_local37 - (_local39 * _local39))))); _local29.normalMass = (1 / _local40); _local41 = ((_local10.m_mass * _local10.m_invMass) + (_local11.m_mass * _local11.m_invMass)); _local41 = (_local41 + (((_local10.m_mass * _local10.m_invI) * (_local36 - (_local38 * _local38))) + ((_local11.m_mass * _local11.m_invI) * (_local37 - (_local39 * _local39))))); _local29.equalizedMass = (1 / _local41); _local42 = _local25; _local43 = -(_local24); _local44 = ((_local32 * _local42) + (_local33 * _local43)); _local45 = ((_local34 * _local42) + (_local35 * _local43)); _local46 = (_local10.m_invMass + _local11.m_invMass); _local46 = (_local46 + ((_local10.m_invI * (_local36 - (_local44 * _local44))) + (_local11.m_invI * (_local37 - (_local45 * _local45))))); _local29.tangentMass = (1 / _local46); _local29.velocityBias = 0; if (_local29.separation > 0){ _local29.velocityBias = (-60 * _local29.separation); }; _local30 = (((_local18 + (-(_local21) * _local35)) - _local16) - (-(_local20) * _local33)); _local31 = (((_local19 + (_local21 * _local34)) - _local17) - (_local20 * _local32)); _local47 = ((_local26.normal.x * _local30) + (_local26.normal.y * _local31)); if (_local47 < -(b2Settings.b2_velocityThreshold)){ _local29.velocityBias = (_local29.velocityBias + (-(_local26.restitution) * _local47)); }; _local27++; }; _local9++; _local22++; }; _local6++; }; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2Mat22; var _local5:int; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:b2ContactConstraintPoint; var _local21:Number; var _local22:Number; var _local23:b2ContactConstraintPoint; _local5 = 0; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_invMass; _local10 = _local7.m_invI; _local11 = _local8.m_invMass; _local12 = _local8.m_invI; _local13 = _local6.normal.x; _local14 = _local6.normal.y; _local15 = _local14; _local16 = -(_local13); if (_arg1.warmStarting){ _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local20 = _local6.points[_local18]; _local6.points[_local18].normalImpulse = (_local20.normalImpulse * _arg1.dtRatio); _local20.tangentImpulse = (_local20.tangentImpulse * _arg1.dtRatio); _local21 = ((_local20.normalImpulse * _local13) + (_local20.tangentImpulse * _local15)); _local22 = ((_local20.normalImpulse * _local14) + (_local20.tangentImpulse * _local16)); _local7.m_angularVelocity = (_local7.m_angularVelocity - (_local10 * ((_local20.r1.x * _local22) - (_local20.r1.y * _local21)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x - (_local9 * _local21)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y - (_local9 * _local22)); _local8.m_angularVelocity = (_local8.m_angularVelocity + (_local12 * ((_local20.r2.x * _local22) - (_local20.r2.y * _local21)))); _local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21)); _local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22)); _local18++; }; } else { _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local23 = _local6.points[_local18]; _local23.normalImpulse = 0; _local23.tangentImpulse = 0; _local18++; }; }; _local5++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:Number; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:int; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:b2Vec2; var _local10:Number; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:int; var _local21:b2ContactConstraintPoint; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; _local2 = 0; _local5 = 0; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_sweep.c; _local10 = _local7.m_sweep.a; _local11 = _local8.m_sweep.c; _local12 = _local8.m_sweep.a; _local13 = (_local7.m_mass * _local7.m_invMass); _local14 = (_local7.m_mass * _local7.m_invI); _local15 = (_local8.m_mass * _local8.m_invMass); _local16 = (_local8.m_mass * _local8.m_invI); _local17 = _local6.normal.x; _local18 = _local6.normal.y; _local19 = _local6.pointCount; _local20 = 0; while (_local20 < _local19) { _local21 = _local6.points[_local20]; _local3 = _local7.m_xf.R; _local4 = _local7.m_sweep.localCenter; _local22 = (_local21.localAnchor1.x - _local4.x); _local23 = (_local21.localAnchor1.y - _local4.y); _local26 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local26; _local3 = _local8.m_xf.R; _local4 = _local8.m_sweep.localCenter; _local24 = (_local21.localAnchor2.x - _local4.x); _local25 = (_local21.localAnchor2.y - _local4.y); _local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local26; _local27 = (_local9.x + _local22); _local28 = (_local9.y + _local23); _local29 = (_local11.x + _local24); _local30 = (_local11.y + _local25); _local31 = (_local29 - _local27); _local32 = (_local30 - _local28); _local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation); _local2 = b2Math.b2Min(_local2, _local33); _local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0)); _local35 = (-(_local21.equalizedMass) * _local34); _local36 = _local21.positionImpulse; _local21.positionImpulse = b2Math.b2Max((_local36 + _local35), 0); _local35 = (_local21.positionImpulse - _local36); _local37 = (_local35 * _local17); _local38 = (_local35 * _local18); _local9.x = (_local9.x - (_local13 * _local37)); _local9.y = (_local9.y - (_local13 * _local38)); _local10 = (_local10 - (_local14 * ((_local22 * _local38) - (_local23 * _local37)))); _local7.m_sweep.a = _local10; _local7.SynchronizeTransform(); _local11.x = (_local11.x + (_local15 * _local37)); _local11.y = (_local11.y + (_local15 * _local38)); _local12 = (_local12 + (_local16 * ((_local24 * _local38) - (_local25 * _local37)))); _local8.m_sweep.a = _local12; _local8.SynchronizeTransform(); _local20++; }; _local5++; }; return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop))); } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Mat22; var _local18:b2Vec2; var _local19:int; var _local20:b2ContactConstraint; var _local21:b2Body; var _local22:b2Body; var _local23:Number; var _local24:Number; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:int; var _local38:Number; _local19 = 0; while (_local19 < 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 _local1:int; var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ManifoldPoint; var _local6:b2ContactConstraintPoint; _local1 = 0; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.points[_local4]; _local6 = _local2.points[_local4]; _local5.normalImpulse = _local6.normalImpulse; _local5.tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 70
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function GetManifolds():Array{ return (null); } override public function Evaluate(_arg1:b2ContactListener):void{ } } }//package Box2D.Dynamics.Contacts
Section 71
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ var _local3:b2ManifoldPoint; 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; _local3 = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local6:b2Body; var _local7:b2Body; var _local8:Array; var _local9:b2ContactPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; _local6 = m_shape1.m_body; _local7 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf); _local8 = [false, false]; _local9 = s_evalCP; _local9.shape1 = m_shape1; _local9.shape2 = m_shape2; _local9.friction = m_friction; _local9.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local2 = 0; while (_local2 < m_manifold.pointCount) { _local10 = m_manifold.points[_local2]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < 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++; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 72
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Collision.*; public class b2PolygonContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{ m0 = new b2Manifold(); m_manifolds = [new b2Manifold()]; super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactPoint; var _local8:int; var _local9:Array; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; _local5 = m_shape1.m_body; _local6 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf); _local9 = [false, false]; _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local8 = 0; while (_local8 < m_manifold.pointCount) { _local10 = m_manifold.points[_local8]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < 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++; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolygonContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 73
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { public var m_mass:Number; public var m_u:b2Vec2; public var m_impulse:Number; public var m_dampingRatio:Number; public var m_frequencyHz:Number; public var m_localAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_bias:Number; public var m_gamma:Number; public var m_length:Number; public function b2DistanceJoint(_arg1:b2DistanceJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u = new b2Vec2(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_length = _arg1.length; m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_impulse = 0; m_gamma = 0; m_bias = 0; m_inv_dt = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply((m_inv_dt * m_impulse)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; if (m_frequencyHz > 0){ return (true); }; _local2 = m_body1; _local3 = m_body2; _local1 = _local2.m_xf.R; _local4 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; _local7 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local8 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8)); _local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8)); _local7 = _local6; _local9 = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); _local10 = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); _local11 = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); _local12 = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local13 = (-(m_mass) * _local12); m_u.Set(_local9, _local10); _local14 = (_local13 * m_u.x); _local15 = (_local13 * m_u.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; m_inv_dt = _arg1.inv_dt; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7)); _local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7)); _local6 = _local3; _local2 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local3; 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); _local10 = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local10 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local10)); } else { m_u.SetZero(); }; _local11 = ((_local6 * m_u.y) - (_local7 * m_u.x)); _local12 = ((_local8 * m_u.y) - (_local9 * m_u.x)); _local13 = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / _local13); if (m_frequencyHz > 0){ _local14 = (_local10 - m_length); _local15 = ((2 * Math.PI) * m_frequencyHz); _local16 = (((2 * m_mass) * m_dampingRatio) * _local15); _local17 = ((m_mass * _local15) * _local15); m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17)))); m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (1 / (_local13 + m_gamma)); }; if (_arg1.warmStarting){ m_impulse = (m_impulse * _arg1.dtRatio); _local18 = (m_impulse * m_u.x); _local19 = (m_impulse * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local18)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local19)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local19) - (_local7 * _local18)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local18)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local19)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local19) - (_local9 * _local18)))); } else { m_impulse = 0; }; } override public function GetReactionTorque():Number{ return (0); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local3 = m_body1; _local4 = m_body2; _local2 = _local3.m_xf.R; _local5 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; _local8 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; _local10 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); _local11 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); _local12 = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); _local13 = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); _local14 = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); _local15 = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); _local16 = (_local15 * m_u.x); _local17 = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } } }//package Box2D.Dynamics.Joints
Section 74
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2DistanceJointDef extends b2JointDef { public var length:Number; public var dampingRatio:Number; public var frequencyHz:Number; public var localAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; frequencyHz = 0; dampingRatio = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ var _local5:Number; var _local6:Number; body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); _local5 = (_arg4.x - _arg3.x); _local6 = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); frequencyHz = 0; dampingRatio = 0; } } }//package Box2D.Dynamics.Joints
Section 75
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { public var m_force:Number; public var m_mass:Number; public var m_prismatic1:b2PrismaticJoint; public var m_prismatic2:b2PrismaticJoint; public var m_ground1:b2Body; public var m_ground2:b2Body; public var m_constant:Number; public var m_revolute1:b2RevoluteJoint; public var m_revolute2:b2RevoluteJoint; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_ratio:Number; public var m_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local2:int; var _local3:int; var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); _local2 = _arg1.joint1.m_type; _local3 = _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; _local1 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local1 = 0; _local2 = m_body1; _local3 = m_body2; if (m_revolute1){ _local4 = m_revolute1.GetJointAngle(); } else { _local4 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local5 = m_revolute2.GetJointAngle(); } else { _local5 = m_prismatic2.GetJointTranslation(); }; _local6 = (m_constant - (_local4 + (m_ratio * _local5))); _local7 = (-(m_mass) * _local6); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * m_J.linear1.x)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y)); _local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1)); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2)); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((_local1 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; _local2 = m_ground1; _local3 = m_ground2; _local4 = m_body1; _local5 = m_body2; _local14 = 0; m_J.SetZero(); if (m_revolute1){ m_J.angular1 = -1; _local14 = (_local14 + _local4.m_invI); } else { _local10 = _local2.m_xf.R; _local11 = m_prismatic1.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local4.m_xf.R; _local8 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear1.Set(-(_local6), -(_local7)); m_J.angular1 = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angular2 = -(m_ratio); _local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI)); } else { _local10 = _local3.m_xf.R; _local11 = m_prismatic2.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angular2 = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = (1 / _local14); if (_arg1.warmStarting){ _local15 = (_arg1.dt * m_force); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2)); } else { m_force = 0; }; } override public function GetReactionTorque():Number{ var _local1:b2Mat22; var _local2:Number; var _local3:Number; var _local4:Number; _local1 = m_body2.m_xf.R; _local2 = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x); _local3 = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y); _local4 = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3)); _local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3)); _local2 = _local4; _local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x)))); return (_local4); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; _local2 = m_body1; _local3 = m_body2; _local4 = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local5 = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); _local6 = (_arg1.dt * _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * m_J.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2)); } } }//package Box2D.Dynamics.Joints
Section 76
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { public class b2GearJointDef extends b2JointDef { public var joint2:b2Joint; public var joint1:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 77
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linear1:b2Vec2; public var linear2:b2Vec2; public var angular2:Number; public var angular1:Number; public function b2Jacobian(){ linear1 = new b2Vec2(); linear2 = new b2Vec2(); super(); } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linear1.SetV(_arg1); angular1 = _arg2; linear2.SetV(_arg3); angular2 = _arg4; } public function SetZero():void{ linear1.SetZero(); angular1 = 0; linear2.SetZero(); angular2 = 0; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linear1.x * _arg1.x) + (linear1.y * _arg1.y)) + (angular1 * _arg2)) + ((linear2.x * _arg3.x) + (linear2.y * _arg3.y))) + (angular2 * _arg4))); } } }//package Box2D.Dynamics.Joints
Section 78
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2Joint { public var m_islandFlag:Boolean; public var m_body1:b2Body; public var m_prev:b2Joint; public var m_next:b2Joint; public var m_type:int; public var m_collideConnected:Boolean; public var m_node1:b2JointEdge; public var m_node2:b2JointEdge; public var m_inv_dt:Number; public var m_userData; public var m_body2:b2Body; public static const e_unknownJoint:int = 0; public static const e_inactiveLimit:int = 0; public static const e_atUpperLimit:int = 2; public static const e_atLowerLimit:int = 1; public static const e_gearJoint:int = 6; public static const e_revoluteJoint:int = 1; public static const e_equalLimits:int = 3; public static const e_distanceJoint:int = 3; public static const e_pulleyJoint:int = 4; public static const e_prismaticJoint:int = 2; public static const e_mouseJoint:int = 5; public function b2Joint(_arg1:b2JointDef){ m_node1 = new b2JointEdge(); m_node2 = new b2JointEdge(); super(); m_type = _arg1.type; m_prev = null; m_next = null; m_body1 = _arg1.body1; m_body2 = _arg1.body2; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function GetType():int{ return (m_type); } public function GetBody2():b2Body{ return (m_body2); } public function GetNext():b2Joint{ return (m_next); } public function GetReactionTorque():Number{ return (0); } public function GetUserData(){ return (m_userData); } public function GetReactionForce():b2Vec2{ return (null); } public function SolvePositionConstraints():Boolean{ return (false); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetBody1():b2Body{ return (m_body1); } public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } public function InitPositionConstraints():void{ } public static function Destroy(_arg1:b2Joint, _arg2):void{ } public static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; _local3 = null; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; default: break; }; return (_local3); } } }//package Box2D.Dynamics.Joints
Section 79
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var collideConnected:Boolean; public var body1:b2Body; public var body2:b2Body; public var userData; public var type:int; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 80
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var joint:b2Joint; public var other:b2Body; public var next:b2JointEdge; public var prev:b2JointEdge; } }//package Box2D.Dynamics.Joints
Section 81
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { public var m_beta:Number; public var m_mass:b2Mat22; public var m_target:b2Vec2; public var m_impulse:b2Vec2; public var m_localAnchor:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K:b2Mat22; public var m_gamma:Number; public var m_C:b2Vec2; public var m_maxForce:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local2:Number; var _local3:Number; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_impulse = new b2Vec2(); m_mass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); _local2 = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); _local4 = m_body2.m_xf.R; m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y)); m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y)); m_maxForce = _arg1.maxForce; m_impulse.SetZero(); _local5 = m_body2.m_mass; _local6 = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); _local7 = (((2 * _local5) * _arg1.dampingRatio) * _local6); _local8 = ((_arg1.timeStep * _local5) * (_local6 * _local6)); m_gamma = (1 / (_local7 + _local8)); 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 SolvePositionConstraints():Boolean{ return (true); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local4 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local7 = _local2.m_invMass; _local8 = _local2.m_invI; K1.col1.x = _local7; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local7; K2.col1.x = ((_local8 * _local5) * _local5); K2.col2.x = ((-(_local8) * _local4) * _local5); K2.col1.y = ((-(_local8) * _local4) * _local5); K2.col2.y = ((_local8 * _local4) * _local4); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.Invert(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); _local9 = (_arg1.dt * m_impulse.x); _local10 = (_arg1.dt * m_impulse.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local7 * _local9)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local7 * _local10)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local8 * ((_local4 * _local10) - (_local5 * _local9)))); } override public function GetReactionTorque():Number{ return (0); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local6 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local7 = (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; _local8 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); _local9 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_impulse.x)); _local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_impulse.y)); _local10 = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); _local11 = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); _local12 = m_impulse.x; _local13 = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); _local14 = m_impulse.Length(); if (_local14 > m_maxForce){ m_impulse.Multiply((m_maxForce / _local14)); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); _local15 = (_arg1.dt * _local10); _local16 = (_arg1.dt * _local11); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); } } }//package Box2D.Dynamics.Joints
Section 82
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var frequencyHz:Number; public var dampingRatio:Number; public var maxForce:Number; public var target:b2Vec2; public var timeStep:Number; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; timeStep = (1 / 60); } } }//package Box2D.Dynamics.Joints
Section 83
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PrismaticJoint extends b2Joint { public var m_limitForce:Number; public var m_refAngle:Number; public var m_lowerTranslation:Number; public var m_localXAxis1:b2Vec2; public var m_torque:Number; public var m_enableLimit:Boolean; public var m_motorForce:Number; public var m_force:Number; public var m_localYAxis1:b2Vec2; public var m_motorMass:Number; public var m_maxMotorForce:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_angularMass:Number; public var m_limitState:int; public var m_linearMass:Number; public var m_upperTranslation:Number; public var m_motorJacobian:b2Jacobian; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_linearJacobian:b2Jacobian; public var m_enableMotor:Boolean; public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_localXAxis1 = new b2Vec2(); m_localYAxis1 = new b2Vec2(); m_linearJacobian = new b2Jacobian(); m_motorJacobian = new b2Jacobian(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_localXAxis1.SetV(_arg1.localAxis1); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_refAngle = _arg1.referenceAngle; m_linearJacobian.SetZero(); m_linearMass = 0; m_force = 0; m_angularMass = 0; m_torque = 0; m_motorJacobian.SetZero(); m_motorMass = 0; m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerTranslation = _arg1.lowerTranslation; m_upperTranslation = _arg1.upperTranslation; m_maxMotorForce = _arg1.maxMotorForce; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function GetJointTranslation():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:b2Vec2; var _local9:Number; _local1 = m_body1; _local2 = m_body2; _local4 = _local1.GetWorldPoint(m_localAnchor1); _local5 = _local2.GetWorldPoint(m_localAnchor2); _local6 = (_local5.x - _local4.x); _local7 = (_local5.y - _local4.y); _local8 = _local1.GetWorldVector(m_localXAxis1); _local9 = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body1.m_xf.R; _local2 = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); _local3 = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); _local4 = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); _local5 = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y))); return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5)))); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; _local3 = m_body1; _local4 = m_body2; _local5 = _local3.m_invMass; _local6 = _local4.m_invMass; _local7 = _local3.m_invI; _local8 = _local4.m_invI; _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local21 = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); _local22 = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); _local23 = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local24 = (-(m_linearMass) * _local23); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2)); _local25 = b2Math.b2Abs(_local23); _local26 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local27 = (-(m_angularMass) * _local26); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); _local28 = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y)); _local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y)); _local31 = ((_local29 * _local19) + (_local30 * _local20)); _local32 = 0; if (m_limitState == e_equalLimits){ _local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26)); } else { if (m_limitState == e_atLowerLimit){ _local1 = (_local31 - m_lowerTranslation); _local25 = b2Math.b2Max(_local25, -(_local1)); _local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); } else { if (m_limitState == e_atUpperLimit){ _local1 = (_local31 - m_upperTranslation); _local25 = b2Math.b2Max(_local25, _local1); _local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); }; }; }; _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop)))); } public function GetJointSpeed():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:b2Vec2; var _local16:b2Vec2; var _local17:b2Vec2; var _local18:Number; var _local19:Number; var _local20:Number; _local1 = m_body1; _local2 = m_body2; _local3 = _local1.m_xf.R; _local4 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local5 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; _local7 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local8 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; _local9 = (_local1.m_sweep.c.x + _local4); _local10 = (_local1.m_sweep.c.y + _local5); _local11 = (_local2.m_sweep.c.x + _local7); _local12 = (_local2.m_sweep.c.y + _local8); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = _local1.GetWorldVector(m_localXAxis1); _local16 = _local1.m_linearVelocity; _local17 = _local2.m_linearVelocity; _local18 = _local1.m_angularVelocity; _local19 = _local2.m_angularVelocity; _local20 = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local10 = _local2.m_invMass; _local11 = _local3.m_invMass; _local12 = _local2.m_invI; _local13 = _local3.m_invI; _local4 = _local2.m_xf.R; _local14 = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); _local15 = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); _local16 = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); _local17 = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y); m_linearJacobian.linear1.x = -(_local14); m_linearJacobian.linear1.y = -(_local15); m_linearJacobian.linear2.x = _local14; m_linearJacobian.linear2.y = _local15; m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14))); m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14)); m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2)); m_linearMass = (1 / m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > Number.MIN_VALUE){ m_angularMass = (1 / m_angularMass); }; if (((m_enableLimit) || (m_enableMotor))){ _local4 = _local2.m_xf.R; _local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y)); _local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y)); m_motorJacobian.linear1.x = -(_local18); m_motorJacobian.linear1.y = -(_local19); m_motorJacobian.linear2.x = _local18; m_motorJacobian.linear2.y = _local19; m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18))); m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18)); m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2)); m_motorMass = (1 / m_motorMass); if (m_enableLimit){ _local20 = (_local16 - _local6); _local21 = (_local17 - _local7); _local22 = ((_local18 * _local20) + (_local19 * _local21)); if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local22 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local22 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; }; }; if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit == false){ m_limitForce = 0; }; if (_arg1.warmStarting){ _local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x))); _local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y))); _local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x))); _local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y))); _local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1))); _local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28)); } else { m_force = 0; m_torque = 0; m_limitForce = 0; m_motorForce = 0; }; m_limitPositionImpulse = 0; } public function GetMotorForce():Number{ return (m_motorForce); } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } override public function GetReactionTorque():Number{ return (m_torque); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_invMass; _local5 = _local3.m_invMass; _local6 = _local2.m_invI; _local7 = _local3.m_invI; _local9 = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local10 = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); _local11 = (_arg1.dt * _local10); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2)); _local12 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local13 = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); _local14 = (_arg1.dt * _local13); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15); _local17 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce); _local16 = (m_motorForce - _local17); _local11 = (_arg1.dt * _local16); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local19); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); }; }; }; _local11 = (_arg1.dt * _local19); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; } } }//package Box2D.Dynamics.Joints
Section 84
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PrismaticJointDef extends b2JointDef { public var localAxis1:b2Vec2; public var referenceAngle:Number; public var maxMotorForce:Number; public var motorSpeed:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public var lowerTranslation:Number; public function b2PrismaticJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); localAxis1 = new b2Vec2(); super(); type = b2Joint.e_prismaticJoint; localAxis1.Set(1, 0); referenceAngle = 0; enableLimit = false; lowerTranslation = 0; upperTranslation = 0; enableMotor = false; maxMotorForce = 0; motorSpeed = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); localAxis1 = body1.GetLocalVector(_arg4); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 85
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { public var m_ground:b2Body; public var m_maxLength2:Number; public var m_limitForce1:Number; public var m_maxLength1:Number; public var m_limitState1:int; public var m_limitState2:int; public var m_limitPositionImpulse2:Number; public var m_force:Number; public var m_limitPositionImpulse1:Number; public var m_constant:Number; public var m_state:int; public var m_ratio:Number; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_positionImpulse:Number; public var m_limitMass2:Number; public var m_limitMass1:Number; public var m_pulleyMass:Number; public var m_u1:b2Vec2; public var m_u2:b2Vec2; public var m_limitForce2:Number; public static const b2_minPulleyLength:Number = 2; public function b2PulleyJoint(_arg1:b2PulleyJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u1 = new b2Vec2(); m_u2 = new b2Vec2(); super(_arg1); m_ground = m_body1.m_world.m_groundBody; m_groundAnchor1.x = (_arg1.groundAnchor1.x - m_ground.m_xf.position.x); m_groundAnchor1.y = (_arg1.groundAnchor1.y - m_ground.m_xf.position.y); m_groundAnchor2.x = (_arg1.groundAnchor2.x - m_ground.m_xf.position.x); m_groundAnchor2.y = (_arg1.groundAnchor2.y - m_ground.m_xf.position.y); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_ratio = _arg1.ratio; m_constant = (_arg1.length1 + (m_ratio * _arg1.length2)); m_maxLength1 = b2Math.b2Min(_arg1.maxLength1, (m_constant - (m_ratio * b2_minPulleyLength))); m_maxLength2 = b2Math.b2Min(_arg1.maxLength2, ((m_constant - b2_minPulleyLength) / m_ratio)); m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; } public function GetGroundAnchor2():b2Vec2{ var _local1:b2Vec2; _local1 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; _local1 = m_body1; _local2 = m_body2; _local4 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local5 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local6 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local7 = (m_ground.m_xf.position.y + m_groundAnchor2.y); _local23 = 0; if (m_state == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u1.Set((_local12 - _local4), (_local13 - _local5)); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local16 = m_u1.Length(); _local17 = m_u2.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local16)); } else { m_u1.SetZero(); }; if (_local17 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local17)); } else { m_u2.SetZero(); }; _local18 = ((m_constant - _local16) - (m_ratio * _local17)); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_pulleyMass) * _local18); _local20 = m_positionImpulse; m_positionImpulse = b2Math.b2Max(0, (m_positionImpulse + _local19)); _local19 = (m_positionImpulse - _local20); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local14 = ((-(m_ratio) * _local19) * m_u2.x); _local15 = ((-(m_ratio) * _local19) * m_u2.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local1.SynchronizeTransform(); _local2.SynchronizeTransform(); }; if (m_limitState1 == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); m_u1.Set((_local12 - _local4), (_local13 - _local5)); _local16 = m_u1.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.x = (m_u1.x * (1 / _local16)); m_u1.y = (m_u1.y * (1 / _local16)); } else { m_u1.SetZero(); }; _local18 = (m_maxLength1 - _local16); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass1) * _local18); _local21 = m_limitPositionImpulse1; m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19)); _local19 = (m_limitPositionImpulse1 - _local21); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local1.SynchronizeTransform(); }; if (m_limitState2 == e_atUpperLimit){ _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local17 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local17)); m_u2.y = (m_u2.y * (1 / _local17)); } else { m_u2.SetZero(); }; _local18 = (m_maxLength2 - _local17); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass2) * _local18); _local21 = m_limitPositionImpulse2; m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19)); _local19 = (m_limitPositionImpulse2 - _local21); _local14 = (-(_local19) * m_u2.x); _local15 = (-(_local19) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local2.SynchronizeTransform(); }; return ((_local23 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local5 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; _local10 = (_local2.m_sweep.c.x + _local5); _local11 = (_local2.m_sweep.c.y + _local6); _local12 = (_local3.m_sweep.c.x + _local8); _local13 = (_local3.m_sweep.c.y + _local9); _local14 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local15 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local16 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local17 = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); _local18 = m_u1.Length(); _local19 = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; _local20 = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_force = 0; } else { m_state = e_atUpperLimit; m_positionImpulse = 0; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitForce1 = 0; } else { m_limitState1 = e_atUpperLimit; m_limitPositionImpulse1 = 0; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitForce2 = 0; } else { m_limitState2 = e_atUpperLimit; m_limitPositionImpulse2 = 0; }; _local21 = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); _local22 = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ _local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x); _local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y); _local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x); _local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25)))); } else { m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; }; } override public function GetReactionTorque():Number{ return (0); } public function GetRatio():Number{ return (m_ratio); } public function GetLength2():Number{ var _local1:b2Vec2; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body2.GetWorldPoint(m_localAnchor2); _local2 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local3 = (m_ground.m_xf.position.y + m_groundAnchor2.y); _local4 = (_local1.x - _local2); _local5 = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local5 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18); _local20 = m_force; m_force = b2Math.b2Max(0, (m_force + _local19)); _local19 = (m_force - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x); _local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; if (m_limitState1 == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11))); _local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18); _local20 = m_limitForce1; m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19)); _local19 = (m_limitForce1 - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); }; if (m_limitState2 == e_atUpperLimit){ _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13))); _local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18); _local20 = m_limitForce2; m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19)); _local19 = (m_limitForce2 - _local20); _local16 = ((-(_arg1.dt) * _local19) * m_u2.x); _local17 = ((-(_arg1.dt) * _local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } public function GetLength1():Number{ var _local1:b2Vec2; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body1.GetWorldPoint(m_localAnchor1); _local2 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local3 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local4 = (_local1.x - _local2); _local5 = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2; _local1 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } } }//package Box2D.Dynamics.Joints
Section 86
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PulleyJointDef extends b2JointDef { public var maxLength2:Number; public var length1:Number; public var length2:Number; public var maxLength1:Number; public var ratio:Number; public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public function b2PulleyJointDef(){ groundAnchor1 = new b2Vec2(); groundAnchor2 = new b2Vec2(); localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchor1.Set(-1, 1); groundAnchor2.Set(1, 1); localAnchor1.Set(-1, 0); localAnchor2.Set(1, 0); length1 = 0; maxLength1 = 0; length2 = 0; maxLength2 = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); _local8 = (_arg5.x - _arg3.x); _local9 = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local10 = (_arg6.x - _arg4.x); _local11 = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; _local12 = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 87
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { public var m_limitForce:Number; public var m_motorForce:Number; public var m_pivotMass:b2Mat22; public var m_enableLimit:Boolean; public var m_limitState:int; public var m_motorMass:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; private var K:b2Mat22; public var m_pivotForce:b2Vec2; public var m_motorSpeed:Number; public var m_enableMotor:Boolean; public var m_limitPositionImpulse:Number; public var m_maxMotorTorque:Number; public var m_referenceAngle:Number; public var m_lowerAngle:Number; public var m_upperAngle:Number; public static var tImpulse:b2Vec2 = new b2Vec2(); public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){ K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); K3 = new b2Mat22(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_pivotForce = new b2Vec2(); m_pivotMass = new b2Mat22(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_referenceAngle = _arg1.referenceAngle; m_pivotForce.Set(0, 0); m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerAngle = _arg1.lowerAngle; m_upperAngle = _arg1.upperAngle; m_maxMotorTorque = _arg1.maxMotorTorque; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ return (m_pivotForce); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local3 = m_body1; _local4 = m_body2; _local5 = 0; _local6 = _local3.m_xf.R; _local7 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local8 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; _local10 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11)); _local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11)); _local10 = _local9; _local12 = (_local3.m_sweep.c.x + _local7); _local13 = (_local3.m_sweep.c.y + _local8); _local14 = (_local4.m_sweep.c.x + _local10); _local15 = (_local4.m_sweep.c.y + _local11); _local16 = (_local14 - _local12); _local17 = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); _local18 = _local3.m_invMass; _local19 = _local4.m_invMass; _local20 = _local3.m_invI; _local21 = _local4.m_invI; K1.col1.x = (_local18 + _local19); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local18 + _local19); K2.col1.x = ((_local20 * _local8) * _local8); K2.col2.x = ((-(_local20) * _local7) * _local8); K2.col1.y = ((-(_local20) * _local7) * _local8); K2.col2.y = ((_local20 * _local7) * _local7); K3.col1.x = ((_local21 * _local11) * _local11); K3.col2.x = ((-(_local21) * _local10) * _local11); K3.col1.y = ((-(_local21) * _local10) * _local11); K3.col2.y = ((_local21 * _local10) * _local10); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); _local22 = tImpulse.x; _local23 = tImpulse.y; _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); _local24 = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local24 = b2Math.b2Abs(_local2); } else { if (m_limitState == e_atLowerLimit){ _local2 = (_local25 - m_lowerAngle); _local24 = b2Math.b2Max(0, -(_local2)); _local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); } else { if (m_limitState == e_atUpperLimit){ _local2 = (_local25 - m_upperAngle); _local24 = b2Math.b2Max(0, _local2); _local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); }; }; }; _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop)))); } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetJointAngle():Number{ return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local10 = _local2.m_invMass; _local11 = _local3.m_invMass; _local12 = _local2.m_invI; _local13 = _local3.m_invI; K1.col1.x = (_local10 + _local11); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local10 + _local11); K2.col1.x = ((_local12 * _local7) * _local7); K2.col2.x = ((-(_local12) * _local6) * _local7); K2.col1.y = ((-(_local12) * _local6) * _local7); K2.col2.y = ((_local12 * _local6) * _local6); K3.col1.x = ((_local13 * _local9) * _local9); K3.col2.x = ((-(_local13) * _local8) * _local9); K3.col1.y = ((-(_local13) * _local8) * _local9); K3.col2.y = ((_local13 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Invert(m_pivotMass); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; } else { m_limitForce = 0; }; if (_arg1.warmStarting){ _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); } else { m_pivotForce.SetZero(); m_motorForce = 0; m_limitForce = 0; }; m_limitPositionImpulse = 0; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function GetMotorTorque():Number{ return (m_motorForce); } override public function GetReactionTorque():Number{ return (m_limitForce); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local11 = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); _local12 = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); _local13 = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); _local14 = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12))); m_pivotForce.x = (m_pivotForce.x + _local13); m_pivotForce.y = (m_pivotForce.y + _local14); _local15 = (_arg1.dt * _local13); _local16 = (_arg1.dt * _local14); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed); _local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17); _local19 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque); _local18 = (m_motorForce - _local19); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local21); } else { if (m_limitState == e_atLowerLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); } else { if (m_limitState == e_atUpperLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); }; }; }; _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21)); }; } } }//package Box2D.Dynamics.Joints
Section 88
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2RevoluteJointDef extends b2JointDef { public var referenceAngle:Number; public var upperAngle:Number; public var lowerAngle:Number; public var motorSpeed:Number; public var maxMotorTorque:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public function b2RevoluteJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchor1.Set(0, 0); localAnchor2.Set(0, 0); referenceAngle = 0; lowerAngle = 0; upperAngle = 0; maxMotorTorque = 0; motorSpeed = 0; enableLimit = false; enableMotor = false; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 89
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; public class b2Body { public var m_next:b2Body; public var m_contactList:b2ContactEdge; public var m_angularVelocity:Number; public var m_shapeList:b2Shape; public var m_force:b2Vec2; public var m_mass:Number; public var m_sweep:b2Sweep; public var m_xf:b2XForm; public var m_torque:Number; public var m_userData; public var m_flags:uint; public var m_world:b2World; public var m_prev:b2Body; public var m_invMass:Number; public var m_type:int; public var m_linearDamping:Number; public var m_angularDamping:Number; public var m_invI:Number; public var m_linearVelocity:b2Vec2; public var m_sleepTime:Number; public var m_shapeCount:int; public var m_jointList:b2JointEdge; public var m_I:Number; public static var e_fixedRotationFlag:uint = 64; public static var e_frozenFlag:uint = 2; public static var e_maxTypes:uint = 3; public static var e_sleepFlag:uint = 8; private static var s_massData:b2MassData = new b2MassData(); public static var e_bulletFlag:uint = 32; public static var e_staticType:uint = 1; public static var e_islandFlag:uint = 4; public static var e_allowSleepFlag:uint = 16; private static var s_xf1:b2XForm = new b2XForm(); public static var e_dynamicType:uint = 2; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ var _local3:b2Mat22; var _local4:b2Vec2; m_xf = new b2XForm(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.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); _local3 = m_xf.R; _local4 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_contactList = null; m_prev = null; m_next = null; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_sleepTime = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.massData.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_arg1.x - m_sweep.c.x))))); } public function SetLinearVelocity(_arg1:b2Vec2):void{ m_linearVelocity.SetV(_arg1); } public function WakeUp():void{ m_flags = (m_flags & ~(e_sleepFlag)); m_sleepTime = 0; } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function ApplyTorque(_arg1:Number):void{ if (IsSleeping()){ WakeUp(); }; m_torque = (m_torque + _arg1); } public function IsFrozen():Boolean{ return (((m_flags & e_frozenFlag) == e_frozenFlag)); } public function IsDynamic():Boolean{ return ((m_type == e_dynamicType)); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function SynchronizeTransform():void{ var _local1:b2Mat22; var _local2:b2Vec2; m_xf.R.Set(m_sweep.a); _local1 = m_xf.R; _local2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function GetInertia():Number{ return (m_I); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function SetMassFromShapes():void{ var _local1:b2Shape; var _local2:Number; var _local3:Number; var _local4:b2MassData; var _local5:b2Mat22; var _local6:b2Vec2; var _local7:int; if (m_world.m_lock == true){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; _local2 = 0; _local3 = 0; _local4 = s_massData; _local1 = m_shapeList; while (_local1) { _local1.ComputeMass(_local4); m_mass = (m_mass + _local4.mass); _local2 = (_local2 + (_local4.mass * _local4.center.x)); _local3 = (_local3 + (_local4.mass * _local4.center.y)); m_I = (m_I + _local4.I); _local1 = _local1.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local2 = (_local2 * m_invMass); _local3 = (_local3 * m_invMass); }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3)))); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_sweep.localCenter.Set(_local2, _local3); _local5 = m_xf.R; _local6 = m_sweep.localCenter; m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local1 = m_shapeList; while (_local1) { _local1.UpdateSweepRadius(m_sweep.localCenter); _local1 = _local1.m_next; }; _local7 = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local7 != m_type){ _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; }; } public function PutToSleep():void{ m_flags = (m_flags | e_sleepFlag); m_sleepTime = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_force.SetZero(); m_torque = 0; } public function GetJointList():b2JointEdge{ return (m_jointList); } public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; var _local4:b2Mat22; var _local5:b2Vec2; var _local6:Boolean; var _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); _local4 = m_xf.R; _local5 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); _local6 = false; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulXT(m_xf, _arg1)); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_force.x = (m_force.x + _arg1.x); m_force.y = (m_force.y + _arg1.y); m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))); } public function SynchronizeShapes():Boolean{ var _local1:b2XForm; var _local2:b2Mat22; var _local3:b2Vec2; var _local4:b2Shape; var _local5:Boolean; _local1 = s_xf1; _local1.R.Set(m_sweep.a0); _local2 = _local1.R; _local3 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); _local5 = true; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; return (true); } public function GetAngle():Number{ return (m_sweep.a); } public function GetXForm():b2XForm{ return (m_xf); } public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_linearVelocity.x = (m_linearVelocity.x + (m_invMass * _arg1.x)); m_linearVelocity.y = (m_linearVelocity.y + (m_invMass * _arg1.y)); m_angularVelocity = (m_angularVelocity + (m_invI * (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x)))); } public function GetNext():b2Body{ return (m_next); } public function GetMass():Number{ return (m_mass); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22; var _local3:b2Vec2; _local2 = m_xf.R; _local3 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Shape; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:int; if (m_world.m_lock == true){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_sweep.localCenter.SetV(_arg1.center); _local3 = m_xf.R; _local4 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local2 = m_shapeList; while (_local2) { _local2.UpdateSweepRadius(m_sweep.localCenter); _local2 = _local2.m_next; }; _local5 = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local5 != m_type){ _local2 = m_shapeList; while (_local2) { _local2.RefilterProxy(m_world.m_broadPhase, m_xf); _local2 = _local2.m_next; }; }; } public function IsStatic():Boolean{ return ((m_type == e_staticType)); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_xf.R, _arg1)); } public function GetShapeList():b2Shape{ return (m_shapeList); } public function Advance(_arg1:Number):void{ m_sweep.Advance(_arg1); m_sweep.c.SetV(m_sweep.c0); m_sweep.a = m_sweep.a0; SynchronizeTransform(); } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } public function CreateShape(_arg1:b2ShapeDef):b2Shape{ var _local2:b2Shape; if (m_world.m_lock == true){ return (null); }; _local2 = b2Shape.Create(_arg1, m_world.m_blockAllocator); _local2.m_next = m_shapeList; m_shapeList = _local2; m_shapeCount++; _local2.m_body = this; _local2.CreateProxy(m_world.m_broadPhase, m_xf); _local2.UpdateSweepRadius(m_sweep.localCenter); return (_local2); } public function IsConnected(_arg1:b2Body):Boolean{ var _local2:b2JointEdge; _local2 = m_jointList; while (_local2) { if (_local2.other == _arg1){ return ((_local2.joint.m_collideConnected == false)); }; _local2 = _local2.next; }; return (false); } public function DestroyShape(_arg1:b2Shape):void{ var _local2:b2Shape; var _local3:b2Shape; var _local4:Boolean; if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); _local2 = m_shapeList; _local3 = null; _local4 = false; while (_local2 != null) { if (_local2 == _arg1){ if (_local3){ _local3.m_next = _arg1.m_next; } else { m_shapeList = _arg1.m_next; }; _local4 = true; break; }; _local3 = _local2; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function GetUserData(){ return (m_userData); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_xf.R, _arg1)); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22; var _local3:b2Vec2; _local2 = m_xf.R; _local3 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorld():b2World{ return (m_world); } public function GetPosition():b2Vec2{ return (m_xf.position); } } }//package Box2D.Dynamics
Section 90
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2BodyDef { public var isSleeping:Boolean; public var position:b2Vec2; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var angularDamping:Number; public var fixedRotation:Boolean; public var angle:Number; public var linearDamping:Number; public var massData:b2MassData; public function b2BodyDef(){ massData = new b2MassData(); position = new b2Vec2(); super(); massData.center.SetZero(); massData.mass = 0; massData.I = 0; userData = null; position.Set(0, 0); angle = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; isSleeping = false; fixedRotation = false; isBullet = false; } } }//package Box2D.Dynamics
Section 91
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 92
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; public class b2ContactFilter { public static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:b2FilterData; var _local4:b2FilterData; var _local5:Boolean; _local3 = _arg1.GetFilterData(); _local4 = _arg2.GetFilterData(); if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; _local5 = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local5); } } }//package Box2D.Dynamics
Section 93
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2ContactListener { public function Add(_arg1:b2ContactPoint):void{ } public function Remove(_arg1:b2ContactPoint):void{ } public function Persist(_arg1:b2ContactPoint):void{ } public function Result(_arg1:b2ContactResult):void{ } } }//package Box2D.Dynamics
Section 94
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2ContactManager extends b2PairCallback { public var m_world:b2World; public var m_destroyImmediate:Boolean; public var m_nullContact:b2NullContact; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2ContactManager(){ m_nullContact = new b2NullContact(); super(); m_world = null; m_destroyImmediate = false; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2Contact; _local3 = (_arg1 as b2Shape); _local4 = (_arg2 as b2Shape); _local5 = _local3.m_body; _local6 = _local4.m_body; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; _local7 = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.m_shape1; _local4 = _local7.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } override public function PairRemoved(_arg1, _arg2, _arg3):void{ var _local4:b2Contact; if (_arg3 == null){ return; }; _local4 = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local2:b2Shape; var _local3:b2Shape; var _local4:int; var _local5:b2Body; var _local6:b2Body; var _local7:b2Body; var _local8:b2Body; var _local9:Array; var _local10:b2ContactPoint; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2Vec2; var _local16:b2Vec2; _local2 = _arg1.m_shape1; _local3 = _arg1.m_shape2; _local4 = _arg1.m_manifoldCount; if ((((_local4 > 0)) && (m_world.m_contactListener))){ _local7 = _local2.m_body; _local8 = _local3.m_body; _local9 = _arg1.GetManifolds(); _local10 = s_evalCP; _local10.shape1 = _arg1.m_shape1; _local10.shape2 = _arg1.m_shape1; _local10.friction = _arg1.m_friction; _local10.restitution = _arg1.m_restitution; _local11 = 0; while (_local11 < _local4) { _local12 = _local9[_local11]; _local10.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local10.position = _local7.GetWorldPoint(_local14.localPoint1); _local15 = _local7.GetLinearVelocityFromLocalPoint(_local14.localPoint1); _local16 = _local8.GetLinearVelocityFromLocalPoint(_local14.localPoint2); _local10.velocity.Set((_local16.x - _local15.x), (_local16.y - _local15.y)); _local10.separation = _local14.separation; _local10.id.key = _local14.id._key; m_world.m_contactListener.Remove(_local10); _local13++; }; _local11++; }; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; _local5 = _local2.m_body; _local6 = _local3.m_body; if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local6.m_contactList){ _local6.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } public function Collide():void{ var _local1:b2Contact; var _local2:b2Body; var _local3:b2Body; _local1 = m_world.m_contactList; while (_local1) { _local2 = _local1.m_shape1.m_body; _local3 = _local1.m_shape2.m_body; if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); }; _local1 = _local1.m_next; }; } } }//package Box2D.Dynamics
Section 95
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import flash.display.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2DebugDraw { public var m_xformScale:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_alpha:Number;// = 1 public var m_lineThickness:Number;// = 1 public var m_drawFlags:uint; public var m_sprite:Sprite; public var m_drawScale:Number;// = 1 public static var e_coreShapeBit:uint = 4; public static var e_shapeBit:uint = 1; public static var e_centerOfMassBit:uint = 64; public static var e_aabbBit:uint = 8; public static var e_obbBit:uint = 16; public static var e_pairBit:uint = 32; public static var e_jointBit:uint = 2; public function b2DebugDraw(){ m_drawScale = 1; m_lineThickness = 1; m_alpha = 1; m_fillAlpha = 1; m_xformScale = 1; super(); m_drawFlags = 0; } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ var _local4:int; m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo(0, 0); m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); m_sprite.graphics.endFill(); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale)); } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale)); } public function GetFlags():uint{ return (m_drawFlags); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ var _local4:int; m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } } }//package Box2D.Dynamics
Section 96
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; public class b2DestructionListener { public function SayGoodbyeJoint(_arg1:b2Joint):void{ } public function SayGoodbyeShape(_arg1:b2Shape):void{ } } }//package Box2D.Dynamics
Section 97
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2Island { public var m_joints:Array; public var m_listener:b2ContactListener; public var m_positionIterationCount:int; public var m_bodyCapacity:int; public var m_bodies:Array; public var m_jointCapacity:int; public var m_contactCount:int; public var m_contacts:Array; public var m_contactCapacity:int; public var m_jointCount:int; public var m_allocator; public var m_bodyCount:int; private static var s_reportCR:b2ContactResult = new b2ContactResult(); public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener){ var _local6:int; super(); m_bodyCapacity = _arg1; m_contactCapacity = _arg2; m_jointCapacity = _arg3; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_allocator = _arg4; m_listener = _arg5; m_bodies = new Array(_arg1); _local6 = 0; while (_local6 < _arg1) { m_bodies[_local6] = null; _local6++; }; m_contacts = new Array(_arg2); _local6 = 0; while (_local6 < _arg2) { m_contacts[_local6] = null; _local6++; }; m_joints = new Array(_arg3); _local6 = 0; while (_local6 < _arg3) { m_joints[_local6] = null; _local6++; }; m_positionIterationCount = 0; } public function AddBody(_arg1:b2Body):void{ var _local2 = m_bodyCount++; m_bodies[_local2] = _arg1; } public function AddJoint(_arg1:b2Joint):void{ var _local2 = m_jointCount++; m_joints[_local2] = _arg1; } public function Report(_arg1:Array):void{ var _local2:b2Mat22; var _local3:b2Vec2; var _local4:int; var _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactResult; var _local8:b2Body; var _local9:int; var _local10:Array; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2ContactConstraintPoint; if (m_listener == null){ return; }; _local4 = 0; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCR; _local7.shape1 = _local5.m_shape1; _local7.shape2 = _local5.m_shape2; _local8 = _local7.shape1.m_body; _local9 = _local5.m_manifoldCount; _local10 = _local5.GetManifolds(); _local11 = 0; while (_local11 < _local9) { _local12 = _local10[_local11]; _local7.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local15 = _local6.points[_local13]; _local7.position = _local8.GetWorldPoint(_local14.localPoint1); _local7.normalImpulse = _local15.normalImpulse; _local7.tangentImpulse = _local15.tangentImpulse; _local7.id.key = _local14.id.key; m_listener.Result(_local7); _local13++; }; _local11++; }; _local4++; }; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local8:b2ContactSolver; var _local9:int; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; var _local13:Number; var _local14:Number; var _local15:Number; _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_arg2.x + (_local6.m_invMass * _local6.m_force.x)))); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_arg2.y + (_local6.m_invMass * _local6.m_force.y)))); _local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque)); _local6.m_force.SetZero(); _local6.m_torque = 0; _local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); if (_local6.m_linearVelocity.LengthSquared() > b2Settings.b2_maxLinearVelocitySquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * b2Settings.b2_maxLinearVelocity); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * b2Settings.b2_maxLinearVelocity); }; if ((_local6.m_angularVelocity * _local6.m_angularVelocity) > b2Settings.b2_maxAngularVelocitySquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = -(b2Settings.b2_maxAngularVelocity); } else { _local6.m_angularVelocity = b2Settings.b2_maxAngularVelocity; }; }; }; _local5++; }; _local8 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local8.InitVelocityConstraints(_arg1); _local5 = 0; while (_local5 < m_jointCount) { _local7 = 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 AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local3:b2ContactSolver; var _local4:Number; var _local5:b2Body; var _local6:Boolean; _local3 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local2 = 0; while (_local2 < _arg1.maxIterations) { _local3.SolveVelocityConstraints(); _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local5 = m_bodies[_local2]; if (_local5.IsStatic()){ } else { _local5.m_sweep.c0.SetV(_local5.m_sweep.c); _local5.m_sweep.a0 = _local5.m_sweep.a; _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity)); _local5.SynchronizeTransform(); }; _local2++; }; _local4 = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } } }//package Box2D.Dynamics
Section 98
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var warmStarting:Boolean; public var positionCorrection:Boolean; public var dt:Number; public var maxIterations:int; public var dtRatio:Number; public var inv_dt:Number; } }//package Box2D.Dynamics
Section 99
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2World { public var m_inv_dt0:Number; public var m_boundaryListener:b2BoundaryListener; public var m_contactList:b2Contact; public var m_blockAllocator; public var m_contactListener:b2ContactListener; public var m_allowSleep:Boolean; public var m_broadPhase:b2BroadPhase; public var m_destructionListener:b2DestructionListener; public var m_jointCount:int; public var m_bodyCount:int; public var m_lock:Boolean; public var m_positionIterationCount:int; public var m_groundBody:b2Body; public var m_contactCount:int; public var m_debugDraw:b2DebugDraw; public var m_contactFilter:b2ContactFilter; public var m_bodyList:b2Body; public var m_stackAllocator; public var m_jointList:b2Joint; public var m_gravity:b2Vec2; public var m_contactManager:b2ContactManager; private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); public static var m_continuousPhysics:Boolean; public static var m_warmStarting:Boolean; private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6); public static var m_positionCorrection:Boolean; private static var s_xf:b2XForm = new b2XForm(); public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ var _local4:b2BodyDef; m_contactManager = new b2ContactManager(); super(); m_destructionListener = null; m_boundaryListener = null; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_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); _local4 = new b2BodyDef(); m_groundBody = CreateBody(_local4); } public function DrawJoint(_arg1:b2Joint):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2XForm; var _local5:b2XForm; var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Color; var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; _local2 = _arg1.m_body1; _local3 = _arg1.m_body2; _local4 = _local2.m_xf; _local5 = _local3.m_xf; _local6 = _local4.position; _local7 = _local5.position; _local8 = _arg1.GetAnchor1(); _local9 = _arg1.GetAnchor2(); _local10 = s_jointColor; switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; case b2Joint.e_pulleyJoint: _local11 = (_arg1 as b2PulleyJoint); _local12 = _local11.GetGroundAnchor1(); _local13 = _local11.GetGroundAnchor2(); m_debugDraw.DrawSegment(_local12, _local8, _local10); m_debugDraw.DrawSegment(_local13, _local9, _local10); m_debugDraw.DrawSegment(_local12, _local13, _local10); break; case b2Joint.e_mouseJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; default: if (_local2 != m_groundBody){ m_debugDraw.DrawSegment(_local6, _local8, _local10); }; m_debugDraw.DrawSegment(_local8, _local9, _local10); if (_local3 != m_groundBody){ m_debugDraw.DrawSegment(_local7, _local9, _local10); }; }; } public function Refilter(_arg1:b2Shape):void{ _arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf); } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetProxyCount():int{ return (m_broadPhase.m_proxyCount); } public function DrawDebugData():void{ var _local1:uint; var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Color; var _local11:b2XForm; var _local12:b2AABB; var _local13:b2AABB; var _local14:Array; var _local15:Boolean; var _local16:uint; var _local17:b2Pair; var _local18:b2Proxy; var _local19:b2Proxy; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Proxy; var _local23:b2PolygonShape; var _local24:b2OBB; var _local25:b2Vec2; var _local26:b2Mat22; var _local27:b2Vec2; var _local28:Number; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); _local1 = m_debugDraw.GetFlags(); _local7 = new b2Vec2(); _local8 = new b2Vec2(); _local9 = new b2Vec2(); _local10 = new b2Color(0, 0, 0); _local12 = new b2AABB(); _local13 = new b2AABB(); _local14 = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; if ((_local1 & b2DebugDraw.e_shapeBit)){ _local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local3.IsStatic()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15); } else { if (_local3.IsSleeping()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15); } else { DrawShape(_local4, _local11, new b2Color(0.9, 0.9, 0.9), _local15); }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local6 = m_broadPhase; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.9, 0.3); _local2 = 0; while (_local2 < b2Pair.b2_tableCapacity) { _local16 = _local6.m_pairManager.m_hashTable[_local2]; while (_local16 != b2Pair.b2_nullPair) { _local17 = _local6.m_pairManager.m_pairs[_local16]; _local18 = _local6.m_proxyPool[_local17.proxyId1]; _local19 = _local6.m_proxyPool[_local17.proxyId2]; _local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value)); _local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value)); _local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value)); _local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value)); _local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value)); _local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value)); _local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value)); _local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value)); _local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x)); _local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y)); _local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x)); _local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y)); m_debugDraw.DrawSegment(_local8, _local9, _local10); _local16 = _local17.next; }; _local2++; }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local6 = m_broadPhase; _local20 = _local6.m_worldAABB.lowerBound; _local21 = _local6.m_worldAABB.upperBound; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.3, 0.9); _local2 = 0; while (_local2 < b2Settings.b2_maxProxies) { _local22 = _local6.m_proxyPool[_local2]; if (_local22.IsValid() == false){ } else { _local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value)); _local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value)); _local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value)); _local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value)); _local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y); _local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y); _local14[2].Set(_local12.upperBound.x, _local12.upperBound.y); _local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local2++; }; _local14[0].Set(_local20.x, _local20.y); _local14[1].Set(_local21.x, _local20.y); _local14[2].Set(_local21.x, _local21.y); _local14[3].Set(_local20.x, _local21.y); m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9)); }; if ((_local1 & b2DebugDraw.e_obbBit)){ _local10.Set(0.5, 0.3, 0.5); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.m_type != b2Shape.e_polygonShape){ } else { _local23 = (_local4 as b2PolygonShape); _local24 = _local23.GetOBB(); _local25 = _local24.extents; _local14[0].Set(-(_local25.x), -(_local25.y)); _local14[1].Set(_local25.x, -(_local25.y)); _local14[2].Set(_local25.x, _local25.y); _local14[3].Set(-(_local25.x), _local25.y); _local2 = 0; while (_local2 < 4) { _local26 = _local24.R; _local27 = _local14[_local2]; _local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local26 = _local11.R; _local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local2++; }; m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.m_xf.R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.m_next; }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local2:b2JointEdge; var _local3:b2Shape; var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; _local2 = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; _local3 = _arg1.m_shapeList; while (_local3) { _local5 = _local3; _local3 = _local3.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeShape(_local5); }; _local5.DestroyProxy(m_broadPhase); b2Shape.Destroy(_local5, m_blockAllocator); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function GetGroundBody():b2Body{ return (m_groundBody); } public function DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{ var _local5:b2Color; var _local6:b2CircleShape; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:int; var _local11:b2PolygonShape; var _local12:int; var _local13:Array; var _local14:Array; var _local15:Array; _local5 = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition); _local8 = _local6.m_radius; _local9 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3); if (_arg4){ m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5); }; break; case b2Shape.e_polygonShape: _local11 = (_arg1 as b2PolygonShape); _local12 = _local11.GetVertexCount(); _local13 = _local11.GetVertices(); _local14 = new Array(b2Settings.b2_maxPolygonVertices); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]); _local10++; }; m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3); if (_arg4){ _local15 = _local11.GetCoreVertices(); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]); _local10++; }; m_debugDraw.DrawPolygon(_local14, _local12, _local5); }; break; }; } public function GetContactCount():int{ return (m_contactCount); } public function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Island; var _local4:b2Contact; var _local5:b2Joint; var _local6:int; var _local7:Array; var _local8:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; _local3 = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; _local4 = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; _local5 = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; _local6 = m_bodyCount; _local7 = new Array(_local6); _local8 = m_bodyList; while (_local8) { if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){ } else { if (_local8.IsStatic()){ } else { _local3.Clear(); _local9 = 0; var _temp1 = _local9; _local9 = (_local9 + 1); var _local15 = _temp1; _local7[_local15] = _local8; _local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag); while (_local9 > 0) { --_local9; _local2 = _local7[_local9]; _local3.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local12 = _local2.m_contactList; while (_local12) { if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){ } else { if (_local12.contact.m_manifoldCount == 0){ } else { _local3.AddContact(_local12.contact); _local12.contact.m_flags = (_local12.contact.m_flags | b2Contact.e_islandFlag); _local11 = _local12.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local9; _local9 = (_local9 + 1); var _local16 = _temp2; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; }; _local12 = _local12.next; }; _local13 = _local2.m_jointList; while (_local13) { if (_local13.joint.m_islandFlag == true){ } else { _local3.AddJoint(_local13.joint); _local13.joint.m_islandFlag = true; _local11 = _local13.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local9; _local9 = (_local9 + 1); _local16 = _temp3; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; _local13 = _local13.next; }; }; }; _local3.Solve(_arg1, m_gravity, m_positionCorrection, m_allowSleep); if (_local3.m_positionIterationCount > m_positionIterationCount){ m_positionIterationCount = _local3.m_positionIterationCount; }; _local10 = 0; while (_local10 < _local3.m_bodyCount) { _local2 = _local3.m_bodies[_local10]; if (_local2.IsStatic()){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local10++; }; }; }; _local8 = _local8.m_next; }; _local2 = m_bodyList; while (_local2) { if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local14 = _local2.SynchronizeShapes(); if ((((_local14 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; }; }; _local2 = _local2.m_next; }; m_broadPhase.Commit(); } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array; var _local5:int; var _local6:int; _local4 = new Array(_arg3); _local5 = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); _local6 = 0; while (_local6 < _local5) { _arg2[_local6] = _local4[_local6]; _local6++; }; return (_local5); } public function SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; var _local8:b2Island; var _local9:int; var _local10:Array; var _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:b2TimeStep; var _local17:int; var _local18:Number; var _local19:Number; var _local20:b2Body; var _local21:Boolean; _local8 = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); _local9 = m_bodyCount; _local10 = new Array(_local9); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2.m_sweep.t0 = 0; _local2 = _local2.m_next; }; _local11 = m_contactList; while (_local11) { _local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local11 = _local11.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){ } else { _local18 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local18 = _local11.m_toi; } else { _local3 = _local11.m_shape1; _local4 = _local11.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((_local5.IsStatic()) || (_local5.IsSleeping()))) && (((_local6.IsStatic()) || (_local6.IsSleeping()))))){ continue; }; _local19 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local19 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local19); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local19 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local19); }; }; _local18 = b2TimeOfImpact.TimeOfImpact(_local11.m_shape1, _local5.m_sweep, _local11.m_shape2, _local6.m_sweep); if ((((_local18 > 0)) && ((_local18 < 1)))){ _local18 = (((1 - _local18) * _local19) + _local18); if (_local18 > 1){ _local18 = 1; }; }; _local11.m_toi = _local18; _local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local18)) && ((_local18 < _local13)))){ _local12 = _local11; _local13 = _local18; }; }; }; if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){ break; }; _local3 = _local12.m_shape1; _local4 = _local12.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if (_local12.m_manifoldCount == 0){ } else { _local14 = _local5; if (_local14.IsStatic()){ _local14 = _local6; }; _local8.Clear(); _local15 = 0; var _temp1 = _local15; _local15 = (_local15 + 1); var _local22 = _temp1; _local10[_local22] = _local14; _local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag); while (_local15 > 0) { --_local15; _local2 = _local10[_local15]; _local8.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local8.m_contactCount == _local8.m_contactCapacity){ } else { if ((_local7.contact.m_flags & ((b2Contact.e_islandFlag | b2Contact.e_slowFlag) | b2Contact.e_nonSolidFlag))){ } else { if (_local7.contact.m_manifoldCount == 0){ } else { _local8.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local20 = _local7.other; if ((_local20.m_flags & b2Body.e_islandFlag)){ } else { if (_local20.IsStatic() == false){ _local20.Advance(_local13); _local20.WakeUp(); }; var _temp2 = _local15; _local15 = (_local15 + 1); var _local23 = _temp2; _local10[_local23] = _local20; _local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag); }; }; }; }; _local7 = _local7.next; }; }; }; _local16 = new b2TimeStep(); _local16.dt = ((1 - _local13) * _arg1.dt); _local16.inv_dt = (1 / _local16.dt); _local16.maxIterations = _arg1.maxIterations; _local8.SolveTOI(_local16); _local17 = 0; while (_local17 < _local8.m_bodyCount) { _local2 = _local8.m_bodies[_local17]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local21 = _local2.SynchronizeShapes(); if ((((_local21 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local17++; }; _local17 = 0; while (_local17 < _local8.m_contactCount) { _local11 = _local8.m_contacts[_local17]; _local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local17++; }; m_broadPhase.Commit(); }; }; } public function GetJointList():b2Joint{ return (m_jointList); } public function Validate():void{ m_broadPhase.Validate(); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function GetBodyList():b2Body{ return (m_bodyList); } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function SetPositionCorrection(_arg1:Boolean):void{ m_positionCorrection = _arg1; } public function CreateJoint(_arg1:b2JointDef):b2Joint{ var _local2:b2Joint; var _local3:b2Body; var _local4:b2Shape; _local2 = b2Joint.Create(_arg1, m_blockAllocator); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_node1.joint = _local2; _local2.m_node1.other = _local2.m_body2; _local2.m_node1.prev = null; _local2.m_node1.next = _local2.m_body1.m_jointList; if (_local2.m_body1.m_jointList){ _local2.m_body1.m_jointList.prev = _local2.m_node1; }; _local2.m_body1.m_jointList = _local2.m_node1; _local2.m_node2.joint = _local2; _local2.m_node2.other = _local2.m_body1; _local2.m_node2.prev = null; _local2.m_node2.next = _local2.m_body2.m_jointList; if (_local2.m_body2.m_jointList){ _local2.m_body2.m_jointList.prev = _local2.m_node2; }; _local2.m_body2.m_jointList = _local2.m_node2; if (_arg1.collideConnected == false){ _local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2; _local4 = _local3.m_shapeList; while (_local4) { _local4.RefilterProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local2:Boolean; var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; var _local6:b2Shape; _local2 = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; _local3 = _arg1.m_body1; _local4 = _arg1.m_body2; _local3.WakeUp(); _local4.WakeUp(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local3.m_jointList){ _local3.m_jointList = _arg1.m_node1.next; }; _arg1.m_node1.prev = null; _arg1.m_node1.next = null; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local4.m_jointList){ _local4.m_jointList = _arg1.m_node2.next; }; _arg1.m_node2.prev = null; _arg1.m_node2.next = null; b2Joint.Destroy(_arg1, m_blockAllocator); m_jointCount--; if (_local2 == false){ _local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4; _local6 = _local5.m_shapeList; while (_local6) { _local6.RefilterProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function CreateBody(_arg1:b2BodyDef):b2Body{ var _local2:b2Body; if (m_lock == true){ return (null); }; _local2 = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function Step(_arg1:Number, _arg2:int):void{ var _local3:b2TimeStep; m_lock = true; _local3 = new b2TimeStep(); _local3.dt = _arg1; _local3.maxIterations = _arg2; if (_arg1 > 0){ _local3.inv_dt = (1 / _arg1); } else { _local3.inv_dt = 0; }; _local3.dtRatio = (m_inv_dt0 * _arg1); _local3.positionCorrection = m_positionCorrection; _local3.warmStarting = m_warmStarting; m_contactManager.Collide(); if (_local3.dt > 0){ Solve(_local3); }; if (((m_continuousPhysics) && ((_local3.dt > 0)))){ SolveTOI(_local3); }; DrawDebugData(); m_inv_dt0 = _local3.inv_dt; m_lock = false; } public function GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } } }//package Box2D.Dynamics
Section 100
//AuxFunctions (caurina.transitions.AuxFunctions) package caurina.transitions { public class AuxFunctions { public static function getObjectLength(_arg1:Object):uint{ var _local2:uint; var _local3:String; _local2 = 0; for (_local3 in _arg1) { _local2++; }; return (_local2); } public static function numberToG(_arg1:Number):Number{ return (((_arg1 & 0xFF00) >> 8)); } public static function numberToB(_arg1:Number):Number{ return ((_arg1 & 0xFF)); } public static function numberToR(_arg1:Number):Number{ return (((_arg1 & 0xFF0000) >> 16)); } public static function concatObjects(... _args):Object{ var _local2:Object; var _local3:Object; var _local4:int; var _local5:String; _local2 = {}; _local4 = 0; while (_local4 < _args.length) { _local3 = _args[_local4]; for (_local5 in _local3) { if (_local3[_local5] == null){ delete _local2[_local5]; } else { _local2[_local5] = _local3[_local5]; }; }; _local4++; }; return (_local2); } } }//package caurina.transitions
Section 101
//Equations (caurina.transitions.Equations) package caurina.transitions { public class Equations { public function Equations(){ trace("Equations is a static class and should not be instantiated."); } public static function easeOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); if (_arg1 < (1 / 2.75)){ return (((_arg3 * ((7.5625 * _arg1) * _arg1)) + _arg2)); }; if (_arg1 < (2 / 2.75)){ _arg1 = (_arg1 - (1.5 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.75)) + _arg2)); }; if (_arg1 < (2.5 / 2.75)){ _arg1 = (_arg1 - (2.25 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.9375)) + _arg2)); }; _arg1 = (_arg1 - (2.625 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.984375)) + _arg2)); } public static function easeInOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number; var _local7:Number; var _local8:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 == 2){ return ((_arg2 + _arg3)); }; _local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * (0.3 * 1.5)) : _arg5.period; _local8 = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude; if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){ _local8 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8))); }; if (_arg1 < 1){ --_arg1; return (((-0.5 * ((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2)); }; --_arg1; return ((((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) * 0.5) + _arg3) + _arg2)); } public static function easeInOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2)); }; --_arg1; return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2)); } public static function easeInOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (((easeInBounce((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2)); }; return ((((easeOutBounce(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2)); } public static function easeInOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number; _local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ _local6 = (_local6 * 1.525); return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_local6 + 1) * _arg1) - _local6))) + _arg2)); }; _arg1 = (_arg1 - 2); _local6 = (_local6 * 1.525); return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 2)) + _arg2)); } public static function easeOutInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutCubic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInCubic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number; _local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot; _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 1)) + _arg2)); } public static function easeInOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((-(_arg3) / 2) * (Math.cos(((Math.PI * _arg1) / _arg4)) - 1)) + _arg2)); } public static function easeInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number; _local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot; _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * (((_local6 + 1) * _arg1) - _local6)) + _arg2)); } public static function easeInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeOutInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuint((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInQuint(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeOutInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutBounce((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInBounce(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function init():void{ Tweener.registerTransition("easenone", easeNone); Tweener.registerTransition("linear", easeNone); Tweener.registerTransition("easeinquad", easeInQuad); Tweener.registerTransition("easeoutquad", easeOutQuad); Tweener.registerTransition("easeinoutquad", easeInOutQuad); Tweener.registerTransition("easeoutinquad", easeOutInQuad); Tweener.registerTransition("easeincubic", easeInCubic); Tweener.registerTransition("easeoutcubic", easeOutCubic); Tweener.registerTransition("easeinoutcubic", easeInOutCubic); Tweener.registerTransition("easeoutincubic", easeOutInCubic); Tweener.registerTransition("easeinquart", easeInQuart); Tweener.registerTransition("easeoutquart", easeOutQuart); Tweener.registerTransition("easeinoutquart", easeInOutQuart); Tweener.registerTransition("easeoutinquart", easeOutInQuart); Tweener.registerTransition("easeinquint", easeInQuint); Tweener.registerTransition("easeoutquint", easeOutQuint); Tweener.registerTransition("easeinoutquint", easeInOutQuint); Tweener.registerTransition("easeoutinquint", easeOutInQuint); Tweener.registerTransition("easeinsine", easeInSine); Tweener.registerTransition("easeoutsine", easeOutSine); Tweener.registerTransition("easeinoutsine", easeInOutSine); Tweener.registerTransition("easeoutinsine", easeOutInSine); Tweener.registerTransition("easeincirc", easeInCirc); Tweener.registerTransition("easeoutcirc", easeOutCirc); Tweener.registerTransition("easeinoutcirc", easeInOutCirc); Tweener.registerTransition("easeoutincirc", easeOutInCirc); Tweener.registerTransition("easeinexpo", easeInExpo); Tweener.registerTransition("easeoutexpo", easeOutExpo); Tweener.registerTransition("easeinoutexpo", easeInOutExpo); Tweener.registerTransition("easeoutinexpo", easeOutInExpo); Tweener.registerTransition("easeinelastic", easeInElastic); Tweener.registerTransition("easeoutelastic", easeOutElastic); Tweener.registerTransition("easeinoutelastic", easeInOutElastic); Tweener.registerTransition("easeoutinelastic", easeOutInElastic); Tweener.registerTransition("easeinback", easeInBack); Tweener.registerTransition("easeoutback", easeOutBack); Tweener.registerTransition("easeinoutback", easeInOutBack); Tweener.registerTransition("easeoutinback", easeOutInBack); Tweener.registerTransition("easeinbounce", easeInBounce); Tweener.registerTransition("easeoutbounce", easeOutBounce); Tweener.registerTransition("easeinoutbounce", easeInOutBounce); Tweener.registerTransition("easeoutinbounce", easeOutInBounce); } public static function easeOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg1)==_arg4) ? (_arg2 + _arg3) : (((_arg3 * 1.001) * (-(Math.pow(2, ((-10 * _arg1) / _arg4))) + 1)) + _arg2)); } public static function easeOutInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutBack((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInBack(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg1)==0) ? _arg2 : (((_arg3 * Math.pow(2, (10 * ((_arg1 / _arg4) - 1)))) + _arg2) - (_arg3 * 0.001))); } public static function easeInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((-(_arg3) / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) + 1)) + _arg2)); } public static function easeInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((_arg3 * _arg1) * _arg1) + _arg2)); } public static function easeInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg3 - easeOutBounce((_arg4 - _arg1), 0, _arg3, _arg4)) + _arg2)); } public static function easeOutInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutExpo((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInExpo(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((-(_arg3) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 1)) + _arg2)); } public static function easeInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((-(_arg3) * Math.cos(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg3) + _arg2)); } public static function easeInOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((-(_arg3) / 2) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 2)) + _arg2)); } public static function easeOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } public static function easeOutInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutElastic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInElastic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number; var _local7:Number; var _local8:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; _local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period; _local8 = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude; if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){ _local8 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8))); }; --_arg1; return ((-(((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2)); } public static function easeOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeOutInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuad((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInQuad(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg3 * Math.sin(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg2)); } public static function easeInOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((_arg1 * _arg1) * _arg1) + 2)) + _arg2)); } public static function easeInOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2)); } public static function easeInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return (((-(_arg3) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); } public static function easeOutInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutSine((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInSine(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 == 0){ return (_arg2); }; if (_arg1 == _arg4){ return ((_arg2 + _arg3)); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * Math.pow(2, (10 * (_arg1 - 1)))) + _arg2) - (_arg3 * 0.0005))); }; --_arg1; return (((((_arg3 / 2) * 1.0005) * (-(Math.pow(2, (-10 * _arg1))) + 2)) + _arg2)); } public static function easeOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number; var _local7:Number; var _local8:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; _local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period; _local8 = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude; if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){ _local8 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8))); }; return (((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) + _arg3) + _arg2)); } public static function easeOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * Math.sqrt((1 - (_arg1 * _arg1)))) + _arg2)); } public static function easeOutInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuart((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInQuart(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeOutInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutCirc((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInCirc(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } } }//package caurina.transitions
Section 102
//PropertyInfoObj (caurina.transitions.PropertyInfoObj) package caurina.transitions { public class PropertyInfoObj { public var originalValueComplete:Object; public var modifierParameters:Array; public var isSpecialProperty:Boolean; public var hasModifier:Boolean; public var valueComplete:Number; public var extra:Object; public var valueStart:Number; public var modifierFunction:Function; public var arrayIndex:Number; public function PropertyInfoObj(_arg1:Number, _arg2:Number, _arg3:Object, _arg4:Number, _arg5:Object, _arg6:Boolean, _arg7:Function, _arg8:Array){ valueStart = _arg1; valueComplete = _arg2; originalValueComplete = _arg3; arrayIndex = _arg4; extra = _arg5; isSpecialProperty = _arg6; hasModifier = Boolean(_arg7); modifierFunction = _arg7; modifierParameters = _arg8; } public function toString():String{ var _local1:String; _local1 = "\n[PropertyInfoObj "; _local1 = (_local1 + ("valueStart:" + String(valueStart))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("valueComplete:" + String(valueComplete))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("originalValueComplete:" + String(originalValueComplete))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("arrayIndex:" + String(arrayIndex))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("extra:" + String(extra))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("isSpecialProperty:" + String(isSpecialProperty))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("hasModifier:" + String(hasModifier))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("modifierFunction:" + String(modifierFunction))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("modifierParameters:" + String(modifierParameters))); _local1 = (_local1 + "]\n"); return (_local1); } public function clone():PropertyInfoObj{ var _local1:PropertyInfoObj; _local1 = new PropertyInfoObj(valueStart, valueComplete, originalValueComplete, arrayIndex, extra, isSpecialProperty, modifierFunction, modifierParameters); return (_local1); } } }//package caurina.transitions
Section 103
//SpecialProperty (caurina.transitions.SpecialProperty) package caurina.transitions { public class SpecialProperty { public var parameters:Array; public var preProcess:Function; public var setValue:Function; public var getValue:Function; public function SpecialProperty(_arg1:Function, _arg2:Function, _arg3:Array=null, _arg4:Function=null){ getValue = _arg1; setValue = _arg2; parameters = _arg3; preProcess = _arg4; } public function toString():String{ var _local1:String; _local1 = ""; _local1 = (_local1 + "[SpecialProperty "); _local1 = (_local1 + ("getValue:" + String(getValue))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("setValue:" + String(setValue))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("parameters:" + String(parameters))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("preProcess:" + String(preProcess))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 104
//SpecialPropertyModifier (caurina.transitions.SpecialPropertyModifier) package caurina.transitions { public class SpecialPropertyModifier { public var getValue:Function; public var modifyValues:Function; public function SpecialPropertyModifier(_arg1:Function, _arg2:Function){ modifyValues = _arg1; getValue = _arg2; } public function toString():String{ var _local1:String; _local1 = ""; _local1 = (_local1 + "[SpecialPropertyModifier "); _local1 = (_local1 + ("modifyValues:" + String(modifyValues))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("getValue:" + String(getValue))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 105
//SpecialPropertySplitter (caurina.transitions.SpecialPropertySplitter) package caurina.transitions { public class SpecialPropertySplitter { public var parameters:Array; public var splitValues:Function; public function SpecialPropertySplitter(_arg1:Function, _arg2:Array){ splitValues = _arg1; parameters = _arg2; } public function toString():String{ var _local1:String; _local1 = ""; _local1 = (_local1 + "[SpecialPropertySplitter "); _local1 = (_local1 + ("splitValues:" + String(splitValues))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("parameters:" + String(parameters))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 106
//Tweener (caurina.transitions.Tweener) package caurina.transitions { import flash.events.*; import flash.display.*; import flash.utils.*; public class Tweener { private static var _timeScale:Number = 1; private static var _currentTimeFrame:Number; private static var _specialPropertySplitterList:Object; public static var autoOverwrite:Boolean = true; private static var _engineExists:Boolean = false; private static var _currentTime:Number; private static var _tweenList:Array; private static var _specialPropertyModifierList:Object; private static var _specialPropertyList:Object; private static var _transitionList:Object; private static var _inited:Boolean = false; private static var __tweener_controller__:MovieClip; public function Tweener(){ trace("Tweener is a static class and should not be instantiated."); } public static function registerSpecialPropertyModifier(_arg1:String, _arg2:Function, _arg3:Function):void{ var _local4:SpecialPropertyModifier; if (!_inited){ init(); }; _local4 = new SpecialPropertyModifier(_arg2, _arg3); _specialPropertyModifierList[_arg1] = _local4; } public static function registerSpecialProperty(_arg1:String, _arg2:Function, _arg3:Function, _arg4:Array=null, _arg5:Function=null):void{ var _local6:SpecialProperty; if (!_inited){ init(); }; _local6 = new SpecialProperty(_arg2, _arg3, _arg4, _arg5); _specialPropertyList[_arg1] = _local6; } public static function init(... _args):void{ _inited = true; _transitionList = new Object(); Equations.init(); _specialPropertyList = new Object(); _specialPropertyModifierList = new Object(); _specialPropertySplitterList = new Object(); } private static function updateTweens():Boolean{ var _local1:int; if (_tweenList.length == 0){ return (false); }; _local1 = 0; while (_local1 < _tweenList.length) { if ((((_tweenList[_local1] == undefined)) || (!(_tweenList[_local1].isPaused)))){ if (!updateTweenByIndex(_local1)){ removeTweenByIndex(_local1); }; if (_tweenList[_local1] == null){ removeTweenByIndex(_local1, true); _local1--; }; }; _local1++; }; return (true); } public static function addCaller(_arg1:Object=null, _arg2:Object=null):Boolean{ var _local3:Number; var _local4:Array; var _local5:Object; var _local6:Number; var _local7:Number; var _local8:Function; var _local9:TweenListObj; var _local10:Number; var _local11:String; if (!Boolean(_arg1)){ return (false); }; if ((_arg1 is Array)){ _local4 = _arg1.concat(); } else { _local4 = [_arg1]; }; _local5 = _arg2; if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; _local6 = (isNaN(_local5.time)) ? 0 : _local5.time; _local7 = (isNaN(_local5.delay)) ? 0 : _local5.delay; if (typeof(_local5.transition) == "string"){ _local11 = _local5.transition.toLowerCase(); _local8 = _transitionList[_local11]; } else { _local8 = _local5.transition; }; if (!Boolean(_local8)){ _local8 = _transitionList["easeoutexpo"]; }; _local3 = 0; while (_local3 < _local4.length) { if (_local5.useFrames == true){ _local9 = new TweenListObj(_local4[_local3], (_currentTimeFrame + (_local7 / _timeScale)), (_currentTimeFrame + ((_local7 + _local6) / _timeScale)), true, _local8, _local5.transitionParams); } else { _local9 = new TweenListObj(_local4[_local3], (_currentTime + ((_local7 * 1000) / _timeScale)), (_currentTime + (((_local7 * 1000) + (_local6 * 1000)) / _timeScale)), false, _local8, _local5.transitionParams); }; _local9.properties = null; _local9.onStart = _local5.onStart; _local9.onUpdate = _local5.onUpdate; _local9.onComplete = _local5.onComplete; _local9.onOverwrite = _local5.onOverwrite; _local9.onStartParams = _local5.onStartParams; _local9.onUpdateParams = _local5.onUpdateParams; _local9.onCompleteParams = _local5.onCompleteParams; _local9.onOverwriteParams = _local5.onOverwriteParams; _local9.onStartScope = _local5.onStartScope; _local9.onUpdateScope = _local5.onUpdateScope; _local9.onCompleteScope = _local5.onCompleteScope; _local9.onOverwriteScope = _local5.onOverwriteScope; _local9.onErrorScope = _local5.onErrorScope; _local9.isCaller = true; _local9.count = _local5.count; _local9.waitFrames = _local5.waitFrames; _tweenList.push(_local9); if ((((_local6 == 0)) && ((_local7 == 0)))){ _local10 = (_tweenList.length - 1); updateTweenByIndex(_local10); removeTweenByIndex(_local10); }; _local3++; }; return (true); } public static function pauseAllTweens():Boolean{ var _local1:Boolean; var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local1 = false; _local2 = 0; while (_local2 < _tweenList.length) { pauseTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } public static function removeTweens(_arg1:Object, ... _args):Boolean{ var _local3:Array; var _local4:uint; var _local5:SpecialPropertySplitter; var _local6:Array; var _local7:uint; _local3 = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){ if (_specialPropertySplitterList[_args[_local4]]){ _local5 = _specialPropertySplitterList[_args[_local4]]; _local6 = _local5.splitValues(_arg1, null); _local7 = 0; while (_local7 < _local6.length) { _local3.push(_local6[_local7].name); _local7++; }; } else { _local3.push(_args[_local4]); }; }; _local4++; }; return (affectTweens(removeTweenByIndex, _arg1, _local3)); } public static function updateFrame():void{ _currentTimeFrame++; } public static function splitTweens(_arg1:Number, _arg2:Array):uint{ var _local3:TweenListObj; var _local4:TweenListObj; var _local5:uint; var _local6:String; var _local7:Boolean; _local3 = _tweenList[_arg1]; _local4 = _local3.clone(false); _local5 = 0; while (_local5 < _arg2.length) { _local6 = _arg2[_local5]; if (Boolean(_local3.properties[_local6])){ _local3.properties[_local6] = undefined; delete _local3.properties[_local6]; }; _local5++; }; for (_local6 in _local4.properties) { _local7 = false; _local5 = 0; while (_local5 < _arg2.length) { if (_arg2[_local5] == _local6){ _local7 = true; break; }; _local5++; }; if (!_local7){ _local4.properties[_local6] = undefined; delete _local4.properties[_local6]; }; }; _tweenList.push(_local4); return ((_tweenList.length - 1)); } public static function resumeTweenByIndex(_arg1:Number):Boolean{ var _local2:TweenListObj; var _local3:Number; _local2 = _tweenList[_arg1]; if ((((_local2 == null)) || (!(_local2.isPaused)))){ return (false); }; _local3 = getCurrentTweeningTime(_local2); _local2.timeStart = (_local2.timeStart + (_local3 - _local2.timePaused)); _local2.timeComplete = (_local2.timeComplete + (_local3 - _local2.timePaused)); _local2.timePaused = undefined; _local2.isPaused = false; return (true); } public static function getVersion():String{ return ("AS3 1.33.74"); } public static function onEnterFrame(_arg1:Event):void{ var _local2:Boolean; updateTime(); updateFrame(); _local2 = false; _local2 = updateTweens(); if (!_local2){ stopEngine(); }; } public static function updateTime():void{ _currentTime = getTimer(); } private static function updateTweenByIndex(_arg1:Number):Boolean{ var tTweening:TweenListObj; var isOver:Boolean; var mustUpdate:Boolean; var nv:Number; var t:Number; var b:Number; var c:Number; var d:Number; var pName:String; var eventScope:Object; var tScope:Object; var cTime:Number; var tProperty:Object; var pv:Number; var i = _arg1; tTweening = _tweenList[i]; if ((((tTweening == null)) || (!(Boolean(tTweening.scope))))){ return (false); }; isOver = false; cTime = getCurrentTweeningTime(tTweening); if (cTime >= tTweening.timeStart){ tScope = tTweening.scope; if (tTweening.isCaller){ do { t = (((tTweening.timeComplete - tTweening.timeStart) / tTweening.count) * (tTweening.timesCalled + 1)); b = tTweening.timeStart; c = (tTweening.timeComplete - tTweening.timeStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, b, c, d); } while (!(cTime >= nv)); } else { mustUpdate = (((((tTweening.skipUpdates < 1)) || (!(tTweening.skipUpdates)))) || ((tTweening.updatesSkipped >= tTweening.skipUpdates))); if (cTime >= tTweening.timeComplete){ isOver = true; mustUpdate = true; }; if (!tTweening.hasStarted){ if (Boolean(tTweening.onStart)){ eventScope = (Boolean(tTweening.onStartScope)) ? tTweening.onStartScope : tScope; try { tTweening.onStart.apply(eventScope, tTweening.onStartParams); } catch(e2:Error) { handleError(tTweening, e2, "onStart"); }; }; for (pName in tTweening.properties) { if (tTweening.properties[pName].isSpecialProperty){ if (Boolean(_specialPropertyList[pName].preProcess)){ tTweening.properties[pName].valueComplete = _specialPropertyList[pName].preProcess(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].originalValueComplete, tTweening.properties[pName].extra); }; pv = _specialPropertyList[pName].getValue(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra); } else { pv = tScope[pName]; }; tTweening.properties[pName].valueStart = (isNaN(pv)) ? tTweening.properties[pName].valueComplete : pv; }; mustUpdate = true; tTweening.hasStarted = true; }; if (mustUpdate){ for (pName in tTweening.properties) { tProperty = tTweening.properties[pName]; if (isOver){ nv = tProperty.valueComplete; } else { if (tProperty.hasModifier){ t = (cTime - tTweening.timeStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, 0, 1, d, tTweening.transitionParams); nv = tProperty.modifierFunction(tProperty.valueStart, tProperty.valueComplete, nv, tProperty.modifierParameters); } else { t = (cTime - tTweening.timeStart); b = tProperty.valueStart; c = (tProperty.valueComplete - tProperty.valueStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, b, c, d, tTweening.transitionParams); }; }; if (tTweening.rounded){ nv = Math.round(nv); }; if (tProperty.isSpecialProperty){ _specialPropertyList[pName].setValue(tScope, nv, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra); } else { tScope[pName] = nv; }; }; tTweening.updatesSkipped = 0; if (Boolean(tTweening.onUpdate)){ eventScope = (Boolean(tTweening.onUpdateScope)) ? tTweening.onUpdateScope : tScope; try { tTweening.onUpdate.apply(eventScope, tTweening.onUpdateParams); } catch(e3:Error) { handleError(tTweening, e3, "onUpdate"); }; }; } else { tTweening.updatesSkipped++; }; }; if (((isOver) && (Boolean(tTweening.onComplete)))){ eventScope = (Boolean(tTweening.onCompleteScope)) ? tTweening.onCompleteScope : tScope; try { tTweening.onComplete.apply(eventScope, tTweening.onCompleteParams); } catch(e4:Error) { handleError(tTweening, e4, "onComplete"); }; }; return (!(isOver)); }; return (true); } public static function setTimeScale(_arg1:Number):void{ var _local2:Number; var _local3:Number; if (isNaN(_arg1)){ _arg1 = 1; }; if (_arg1 < 1E-5){ _arg1 = 1E-5; }; if (_arg1 != _timeScale){ if (_tweenList != null){ _local2 = 0; while (_local2 < _tweenList.length) { _local3 = getCurrentTweeningTime(_tweenList[_local2]); _tweenList[_local2].timeStart = (_local3 - (((_local3 - _tweenList[_local2].timeStart) * _timeScale) / _arg1)); _tweenList[_local2].timeComplete = (_local3 - (((_local3 - _tweenList[_local2].timeComplete) * _timeScale) / _arg1)); if (_tweenList[_local2].timePaused != undefined){ _tweenList[_local2].timePaused = (_local3 - (((_local3 - _tweenList[_local2].timePaused) * _timeScale) / _arg1)); }; _local2++; }; }; _timeScale = _arg1; }; } public static function resumeAllTweens():Boolean{ var _local1:Boolean; var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local1 = false; _local2 = 0; while (_local2 < _tweenList.length) { resumeTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } private static function handleError(_arg1:TweenListObj, _arg2:Error, _arg3:String):void{ var eventScope:Object; var pTweening = _arg1; var pError = _arg2; var pCallBackName = _arg3; if (((Boolean(pTweening.onError)) && ((pTweening.onError is Function)))){ eventScope = (Boolean(pTweening.onErrorScope)) ? pTweening.onErrorScope : pTweening.scope; try { pTweening.onError.apply(eventScope, [pTweening.scope, pError]); } catch(metaError:Error) { printError(((((String(pTweening.scope) + " raised an error while executing the 'onError' handler. Original error:\n ") + pError.getStackTrace()) + "\nonError error: ") + metaError.getStackTrace())); }; } else { if (!Boolean(pTweening.onError)){ printError(((((String(pTweening.scope) + " raised an error while executing the '") + pCallBackName) + "'handler. \n") + pError.getStackTrace())); }; }; } private static function startEngine():void{ _engineExists = true; _tweenList = new Array(); __tweener_controller__ = new MovieClip(); __tweener_controller__.addEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame); _currentTimeFrame = 0; updateTime(); } public static function removeAllTweens():Boolean{ var _local1:Boolean; var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local1 = false; _local2 = 0; while (_local2 < _tweenList.length) { removeTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } public static function addTween(_arg1:Object=null, _arg2:Object=null):Boolean{ var _local3:Number; var _local4:Number; var _local5:String; var _local6:Array; var _local7:Object; var _local8:Number; var _local9:Number; var _local10:Array; var _local11:Object; var _local12:Object; var _local13:Function; var _local14:Object; var _local15:TweenListObj; var _local16:Number; var _local17:Array; var _local18:Array; var _local19:Array; var _local20:String; if (!Boolean(_arg1)){ return (false); }; if ((_arg1 is Array)){ _local6 = _arg1.concat(); } else { _local6 = [_arg1]; }; _local7 = TweenListObj.makePropertiesChain(_arg2); if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; _local8 = (isNaN(_local7.time)) ? 0 : _local7.time; _local9 = (isNaN(_local7.delay)) ? 0 : _local7.delay; _local10 = new Array(); _local11 = {overwrite:true, time:true, delay:true, useFrames:true, skipUpdates:true, transition:true, transitionParams:true, onStart:true, onUpdate:true, onComplete:true, onOverwrite:true, onError:true, rounded:true, onStartParams:true, onUpdateParams:true, onCompleteParams:true, onOverwriteParams:true, onStartScope:true, onUpdateScope:true, onCompleteScope:true, onOverwriteScope:true, onErrorScope:true}; _local12 = new Object(); for (_local5 in _local7) { if (!_local11[_local5]){ if (_specialPropertySplitterList[_local5]){ _local17 = _specialPropertySplitterList[_local5].splitValues(_local7[_local5], _specialPropertySplitterList[_local5].parameters); _local3 = 0; while (_local3 < _local17.length) { if (_specialPropertySplitterList[_local17[_local3].name]){ _local18 = _specialPropertySplitterList[_local17[_local3].name].splitValues(_local17[_local3].value, _specialPropertySplitterList[_local17[_local3].name].parameters); _local4 = 0; while (_local4 < _local18.length) { _local10[_local18[_local4].name] = {valueStart:undefined, valueComplete:_local18[_local4].value, arrayIndex:_local18[_local4].arrayIndex, isSpecialProperty:false}; _local4++; }; } else { _local10[_local17[_local3].name] = {valueStart:undefined, valueComplete:_local17[_local3].value, arrayIndex:_local17[_local3].arrayIndex, isSpecialProperty:false}; }; _local3++; }; } else { if (_specialPropertyModifierList[_local5] != undefined){ _local19 = _specialPropertyModifierList[_local5].modifyValues(_local7[_local5]); _local3 = 0; while (_local3 < _local19.length) { _local12[_local19[_local3].name] = {modifierParameters:_local19[_local3].parameters, modifierFunction:_specialPropertyModifierList[_local5].getValue}; _local3++; }; } else { _local10[_local5] = {valueStart:undefined, valueComplete:_local7[_local5]}; }; }; }; }; for (_local5 in _local10) { if (_specialPropertyList[_local5] != undefined){ _local10[_local5].isSpecialProperty = true; } else { if (_local6[0][_local5] == undefined){ printError((((("The property '" + _local5) + "' doesn't seem to be a normal object property of ") + String(_local6[0])) + " or a registered special property.")); }; }; }; for (_local5 in _local12) { if (_local10[_local5] != undefined){ _local10[_local5].modifierParameters = _local12[_local5].modifierParameters; _local10[_local5].modifierFunction = _local12[_local5].modifierFunction; }; }; if (typeof(_local7.transition) == "string"){ _local20 = _local7.transition.toLowerCase(); _local13 = _transitionList[_local20]; } else { _local13 = _local7.transition; }; if (!Boolean(_local13)){ _local13 = _transitionList["easeoutexpo"]; }; _local3 = 0; while (_local3 < _local6.length) { _local14 = new Object(); for (_local5 in _local10) { _local14[_local5] = new PropertyInfoObj(_local10[_local5].valueStart, _local10[_local5].valueComplete, _local10[_local5].valueComplete, _local10[_local5].arrayIndex, {}, _local10[_local5].isSpecialProperty, _local10[_local5].modifierFunction, _local10[_local5].modifierParameters); }; if (_local7.useFrames == true){ _local15 = new TweenListObj(_local6[_local3], (_currentTimeFrame + (_local9 / _timeScale)), (_currentTimeFrame + ((_local9 + _local8) / _timeScale)), true, _local13, _local7.transitionParams); } else { _local15 = new TweenListObj(_local6[_local3], (_currentTime + ((_local9 * 1000) / _timeScale)), (_currentTime + (((_local9 * 1000) + (_local8 * 1000)) / _timeScale)), false, _local13, _local7.transitionParams); }; _local15.properties = _local14; _local15.onStart = _local7.onStart; _local15.onUpdate = _local7.onUpdate; _local15.onComplete = _local7.onComplete; _local15.onOverwrite = _local7.onOverwrite; _local15.onError = _local7.onError; _local15.onStartParams = _local7.onStartParams; _local15.onUpdateParams = _local7.onUpdateParams; _local15.onCompleteParams = _local7.onCompleteParams; _local15.onOverwriteParams = _local7.onOverwriteParams; _local15.onStartScope = _local7.onStartScope; _local15.onUpdateScope = _local7.onUpdateScope; _local15.onCompleteScope = _local7.onCompleteScope; _local15.onOverwriteScope = _local7.onOverwriteScope; _local15.onErrorScope = _local7.onErrorScope; _local15.rounded = _local7.rounded; _local15.skipUpdates = _local7.skipUpdates; if (((_local7.overwrite == undefined)) ? autoOverwrite : _local7.overwrite){ removeTweensByTime(_local15.scope, _local15.properties, _local15.timeStart, _local15.timeComplete); }; _tweenList.push(_local15); if ((((_local8 == 0)) && ((_local9 == 0)))){ _local16 = (_tweenList.length - 1); updateTweenByIndex(_local16); removeTweenByIndex(_local16); }; _local3++; }; return (true); } public static function registerTransition(_arg1:String, _arg2:Function):void{ if (!_inited){ init(); }; _transitionList[_arg1] = _arg2; } public static function printError(_arg1:String):void{ trace(("## [Tweener] Error: " + _arg1)); } private static function affectTweens(_arg1:Function, _arg2:Object, _arg3:Array):Boolean{ var _local4:Boolean; var _local5:uint; var _local6:Array; var _local7:uint; var _local8:uint; var _local9:uint; _local4 = false; if (!Boolean(_tweenList)){ return (false); }; _local5 = 0; while (_local5 < _tweenList.length) { if (((_tweenList[_local5]) && ((_tweenList[_local5].scope == _arg2)))){ if (_arg3.length == 0){ _arg1(_local5); _local4 = true; } else { _local6 = new Array(); _local7 = 0; while (_local7 < _arg3.length) { if (Boolean(_tweenList[_local5].properties[_arg3[_local7]])){ _local6.push(_arg3[_local7]); }; _local7++; }; if (_local6.length > 0){ _local8 = AuxFunctions.getObjectLength(_tweenList[_local5].properties); if (_local8 == _local6.length){ _arg1(_local5); _local4 = true; } else { _local9 = splitTweens(_local5, _local6); _arg1(_local9); _local4 = true; }; }; }; }; _local5++; }; return (_local4); } public static function getTweens(_arg1:Object):Array{ var _local2:uint; var _local3:String; var _local4:Array; if (!Boolean(_tweenList)){ return ([]); }; _local4 = new Array(); _local2 = 0; while (_local2 < _tweenList.length) { if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){ for (_local3 in _tweenList[_local2].properties) { _local4.push(_local3); }; }; _local2++; }; return (_local4); } public static function isTweening(_arg1:Object):Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local2 = 0; while (_local2 < _tweenList.length) { if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){ return (true); }; _local2++; }; return (false); } public static function pauseTweenByIndex(_arg1:Number):Boolean{ var _local2:TweenListObj; _local2 = _tweenList[_arg1]; if ((((_local2 == null)) || (_local2.isPaused))){ return (false); }; _local2.timePaused = getCurrentTweeningTime(_local2); _local2.isPaused = true; return (true); } public static function getCurrentTweeningTime(_arg1:Object):Number{ return ((_arg1.useFrames) ? _currentTimeFrame : _currentTime); } public static function getTweenCount(_arg1:Object):Number{ var _local2:uint; var _local3:Number; if (!Boolean(_tweenList)){ return (0); }; _local3 = 0; _local2 = 0; while (_local2 < _tweenList.length) { if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){ _local3 = (_local3 + AuxFunctions.getObjectLength(_tweenList[_local2].properties)); }; _local2++; }; return (_local3); } private static function stopEngine():void{ _engineExists = false; _tweenList = null; _currentTime = 0; _currentTimeFrame = 0; __tweener_controller__.removeEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame); __tweener_controller__ = null; } public static function removeTweensByTime(_arg1:Object, _arg2:Object, _arg3:Number, _arg4:Number):Boolean{ var removed:Boolean; var removedLocally:Boolean; var i:uint; var tl:uint; var pName:String; var eventScope:Object; var p_scope = _arg1; var p_properties = _arg2; var p_timeStart = _arg3; var p_timeComplete = _arg4; removed = false; tl = _tweenList.length; i = 0; while (i < tl) { if (((Boolean(_tweenList[i])) && ((p_scope == _tweenList[i].scope)))){ if ((((p_timeComplete > _tweenList[i].timeStart)) && ((p_timeStart < _tweenList[i].timeComplete)))){ removedLocally = false; for (pName in _tweenList[i].properties) { if (Boolean(p_properties[pName])){ if (Boolean(_tweenList[i].onOverwrite)){ eventScope = (Boolean(_tweenList[i].onOverwriteScope)) ? _tweenList[i].onOverwriteScope : _tweenList[i].scope; try { _tweenList[i].onOverwrite.apply(eventScope, _tweenList[i].onOverwriteParams); } catch(e:Error) { handleError(_tweenList[i], e, "onOverwrite"); }; }; _tweenList[i].properties[pName] = undefined; delete _tweenList[i].properties[pName]; removedLocally = true; removed = true; }; }; if (removedLocally){ if (AuxFunctions.getObjectLength(_tweenList[i].properties) == 0){ removeTweenByIndex(i); }; }; }; }; i = (i + 1); }; return (removed); } public static function registerSpecialPropertySplitter(_arg1:String, _arg2:Function, _arg3:Array=null):void{ var _local4:SpecialPropertySplitter; if (!_inited){ init(); }; _local4 = new SpecialPropertySplitter(_arg2, _arg3); _specialPropertySplitterList[_arg1] = _local4; } public static function removeTweenByIndex(_arg1:Number, _arg2:Boolean=false):Boolean{ _tweenList[_arg1] = null; if (_arg2){ _tweenList.splice(_arg1, 1); }; return (true); } public static function resumeTweens(_arg1:Object, ... _args):Boolean{ var _local3:Array; var _local4:uint; _local3 = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(resumeTweenByIndex, _arg1, _local3)); } public static function pauseTweens(_arg1:Object, ... _args):Boolean{ var _local3:Array; var _local4:uint; _local3 = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(pauseTweenByIndex, _arg1, _local3)); } } }//package caurina.transitions
Section 107
//TweenListObj (caurina.transitions.TweenListObj) package caurina.transitions { public class TweenListObj { public var onUpdate:Function; public var useFrames:Boolean; public var hasStarted:Boolean; public var onOverwriteParams:Array; public var timeStart:Number; public var count:Number; public var timeComplete:Number; public var onStartParams:Array; public var onUpdateScope:Object; public var rounded:Boolean; public var onUpdateParams:Array; public var properties:Object; public var onComplete:Function; public var transitionParams:Object; public var updatesSkipped:Number; public var onStart:Function; public var onOverwriteScope:Object; public var skipUpdates:Number; public var onStartScope:Object; public var scope:Object; public var transition:Function; public var timePaused:Number; public var onCompleteParams:Array; public var timesCalled:Number; public var isCaller:Boolean; public var onError:Function; public var onErrorScope:Object; public var onOverwrite:Function; public var isPaused:Boolean; public var waitFrames:Boolean; public var onCompleteScope:Object; public function TweenListObj(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Boolean, _arg5:Function, _arg6:Object){ scope = _arg1; timeStart = _arg2; timeComplete = _arg3; useFrames = _arg4; transition = _arg5; transitionParams = _arg6; properties = new Object(); isPaused = false; timePaused = undefined; isCaller = false; updatesSkipped = 0; timesCalled = 0; skipUpdates = 0; hasStarted = false; } public function clone(_arg1:Boolean):TweenListObj{ var _local2:TweenListObj; var _local3:String; _local2 = new TweenListObj(scope, timeStart, timeComplete, useFrames, transition, transitionParams); _local2.properties = new Array(); for (_local3 in properties) { _local2.properties[_local3] = properties[_local3].clone(); }; _local2.skipUpdates = skipUpdates; _local2.updatesSkipped = updatesSkipped; if (!_arg1){ _local2.onStart = onStart; _local2.onUpdate = onUpdate; _local2.onComplete = onComplete; _local2.onOverwrite = onOverwrite; _local2.onError = onError; _local2.onStartParams = onStartParams; _local2.onUpdateParams = onUpdateParams; _local2.onCompleteParams = onCompleteParams; _local2.onOverwriteParams = onOverwriteParams; _local2.onStartScope = onStartScope; _local2.onUpdateScope = onUpdateScope; _local2.onCompleteScope = onCompleteScope; _local2.onOverwriteScope = onOverwriteScope; _local2.onErrorScope = onErrorScope; }; _local2.rounded = rounded; _local2.isPaused = isPaused; _local2.timePaused = timePaused; _local2.isCaller = isCaller; _local2.count = count; _local2.timesCalled = timesCalled; _local2.waitFrames = waitFrames; _local2.hasStarted = hasStarted; return (_local2); } public function toString():String{ var _local1:String; var _local2:Boolean; var _local3:String; _local1 = "\n[TweenListObj "; _local1 = (_local1 + ("scope:" + String(scope))); _local1 = (_local1 + ", properties:"); _local2 = true; for (_local3 in properties) { if (!_local2){ _local1 = (_local1 + ","); }; _local1 = (_local1 + ("[name:" + properties[_local3].name)); _local1 = (_local1 + (",valueStart:" + properties[_local3].valueStart)); _local1 = (_local1 + (",valueComplete:" + properties[_local3].valueComplete)); _local1 = (_local1 + "]"); _local2 = false; }; _local1 = (_local1 + (", timeStart:" + String(timeStart))); _local1 = (_local1 + (", timeComplete:" + String(timeComplete))); _local1 = (_local1 + (", useFrames:" + String(useFrames))); _local1 = (_local1 + (", transition:" + String(transition))); _local1 = (_local1 + (", transitionParams:" + String(transitionParams))); if (skipUpdates){ _local1 = (_local1 + (", skipUpdates:" + String(skipUpdates))); }; if (updatesSkipped){ _local1 = (_local1 + (", updatesSkipped:" + String(updatesSkipped))); }; if (Boolean(onStart)){ _local1 = (_local1 + (", onStart:" + String(onStart))); }; if (Boolean(onUpdate)){ _local1 = (_local1 + (", onUpdate:" + String(onUpdate))); }; if (Boolean(onComplete)){ _local1 = (_local1 + (", onComplete:" + String(onComplete))); }; if (Boolean(onOverwrite)){ _local1 = (_local1 + (", onOverwrite:" + String(onOverwrite))); }; if (Boolean(onError)){ _local1 = (_local1 + (", onError:" + String(onError))); }; if (onStartParams){ _local1 = (_local1 + (", onStartParams:" + String(onStartParams))); }; if (onUpdateParams){ _local1 = (_local1 + (", onUpdateParams:" + String(onUpdateParams))); }; if (onCompleteParams){ _local1 = (_local1 + (", onCompleteParams:" + String(onCompleteParams))); }; if (onOverwriteParams){ _local1 = (_local1 + (", onOverwriteParams:" + String(onOverwriteParams))); }; if (onStartScope){ _local1 = (_local1 + (", onStartScope:" + String(onStartScope))); }; if (onUpdateScope){ _local1 = (_local1 + (", onUpdateScope:" + String(onUpdateScope))); }; if (onCompleteScope){ _local1 = (_local1 + (", onCompleteScope:" + String(onCompleteScope))); }; if (onOverwriteScope){ _local1 = (_local1 + (", onOverwriteScope:" + String(onOverwriteScope))); }; if (onErrorScope){ _local1 = (_local1 + (", onErrorScope:" + String(onErrorScope))); }; if (rounded){ _local1 = (_local1 + (", rounded:" + String(rounded))); }; if (isPaused){ _local1 = (_local1 + (", isPaused:" + String(isPaused))); }; if (timePaused){ _local1 = (_local1 + (", timePaused:" + String(timePaused))); }; if (isCaller){ _local1 = (_local1 + (", isCaller:" + String(isCaller))); }; if (count){ _local1 = (_local1 + (", count:" + String(count))); }; if (timesCalled){ _local1 = (_local1 + (", timesCalled:" + String(timesCalled))); }; if (waitFrames){ _local1 = (_local1 + (", waitFrames:" + String(waitFrames))); }; if (hasStarted){ _local1 = (_local1 + (", hasStarted:" + String(hasStarted))); }; _local1 = (_local1 + "]\n"); return (_local1); } public static function makePropertiesChain(_arg1:Object):Object{ var _local2:Object; var _local3:Object; var _local4:Object; var _local5:Object; var _local6:Number; var _local7:Number; var _local8:Number; _local2 = _arg1.base; if (_local2){ _local3 = {}; if ((_local2 is Array)){ _local4 = []; _local8 = 0; while (_local8 < _local2.length) { _local4.push(_local2[_local8]); _local8++; }; } else { _local4 = [_local2]; }; _local4.push(_arg1); _local6 = _local4.length; _local7 = 0; while (_local7 < _local6) { if (_local4[_local7]["base"]){ _local5 = AuxFunctions.concatObjects(makePropertiesChain(_local4[_local7]["base"]), _local4[_local7]); } else { _local5 = _local4[_local7]; }; _local3 = AuxFunctions.concatObjects(_local3, _local5); _local7++; }; if (_local3["base"]){ delete _local3["base"]; }; return (_local3); //unresolved jump }; return (_arg1); } } }//package caurina.transitions
Section 108
//CachedData (core.cache.CachedData) package core.cache { public class CachedData { private var _already_cached:Boolean;// = false private var _max_height:Number;// = 0 private var _labels:Object;// = null private var _renderer:MovieClipRenderer;// = null private var _cached_frames:Array;// = null private var _max_width:Number;// = 0 public function CachedData(){ _already_cached = false; _renderer = null; _cached_frames = null; _labels = null; _max_width = 0; _max_height = 0; super(); } public function get renderer():MovieClipRenderer{ return (_renderer); } public function set renderer(_arg1:MovieClipRenderer):void{ _renderer = _arg1; } public function set max_height(_arg1:Number):void{ _max_height = _arg1; } public function set frames(_arg1:Array):void{ _cached_frames = _arg1; } public function get alreadyCached():Boolean{ return (_already_cached); } public function set max_width(_arg1:Number):void{ _max_width = _arg1; } public function get frames():Array{ return (_cached_frames); } public function get max_height():Number{ return (_max_height); } public function get max_width():Number{ return (_max_width); } public function set alreadyCached(_arg1:Boolean):void{ _already_cached = _arg1; } public function set labels(_arg1:Object):void{ _labels = _arg1; } public function get labels():Object{ return (_labels); } } }//package core.cache
Section 109
//CachedInstance (core.cache.CachedInstance) package core.cache { import flash.display.*; import flash.geom.*; import core.system.*; public class CachedInstance extends Sprite implements ITickListener { private var _assigned_routines:Array; private var _active:Boolean;// = true private var _current_frame:int;// = 0 private var _finish_routine:Function;// = null private var _bitmap:Bitmap;// = null private var _frames:Array;// = null private var _cached_data:CachedData;// = null private var _playing:Boolean;// = true private var _last_bitmap_data:BitmapData;// = null public function CachedInstance(_arg1:CachedData):void{ _frames = null; _cached_data = null; _current_frame = 0; _assigned_routines = []; _active = true; _bitmap = null; _last_bitmap_data = null; _playing = true; _finish_routine = null; super(); _cached_data = _arg1; _frames = _cached_data.frames; _bitmap = new Bitmap(new BitmapData(_arg1.max_width, _arg1.max_height, true, 0), PixelSnapping.AUTO, true); addChild(_bitmap); _last_bitmap_data = _bitmap.bitmapData; if (_frames.length > 0){ redraw(); _current_frame = 1; _assigned_routines.length = _frames.length; } else { destroy(); }; } private function redraw():void{ var _local1:BitmapData; _bitmap.x = -(_frames[_current_frame].offset_x); _bitmap.y = -(_frames[_current_frame].offset_y); _local1 = _frames[_current_frame].bitmap_data; if ((((_local1.width < _last_bitmap_data.width)) || ((_local1.height < _last_bitmap_data.height)))){ _bitmap.bitmapData.fillRect(new Rectangle(0, 0, _last_bitmap_data.width, _last_bitmap_data.height), 0); }; _last_bitmap_data = _local1; _local1 = _bitmap.bitmapData; _local1.copyPixels(_last_bitmap_data, new Rectangle(0, 0, _last_bitmap_data.width, _last_bitmap_data.height), new Point(0, 0)); _bitmap.bitmapData = _local1; _bitmap.smoothing = true; } public function destroy():void{ _active = false; _playing = false; if (_frames){ _frames = null; }; } public function get totalFrames():int{ return (_frames.length); } public function stop():void{ _playing = false; } public function onTick():void{ if (!_playing){ return; }; if (1 == _frames.length){ return; }; if (_current_frame >= _frames.length){ if (_finish_routine != null){ _finish_routine(this); if (!isRunning){ return; }; }; _current_frame = 0; }; drawCurrentFrame(); _current_frame++; } public function play():void{ _playing = true; } public function get isRunning():Boolean{ return (_active); } public function setFinishRoutine(_arg1:Function):void{ _finish_routine = _arg1; } public function get currentFrame():int{ return (_current_frame); } private function getFrameFromLabel(_arg1:Object="0"):int{ var _local2:int; _local2 = 0; if (isNaN(Number(_arg1))){ if (undefined != _cached_data.labels[_arg1]){ _local2 = _cached_data.labels[_arg1]; }; } else { _local2 = int(_arg1); }; return (_local2); } public function clearAssignedRoutines():void{ var _local1:int; _local1 = 0; while (_local1 < _assigned_routines.length) { _assigned_routines[_local1] = null; _local1++; }; } public function gotoAndStop(_arg1:Object=0):void{ _current_frame = getFrameFromLabel(_arg1); drawCurrentFrame(); stop(); } public function get isPlaying():Boolean{ return (_playing); } public function gotoAndPlay(_arg1:Object=0):void{ _current_frame = getFrameFromLabel(_arg1); play(); onTick(); } public function assignRoutine(_arg1:Object, _arg2:Function):void{ var _local3:int; _local3 = getFrameFromLabel(_arg1); _assigned_routines[_local3] = _arg2; } private function drawCurrentFrame():void{ redraw(); if (_assigned_routines[_current_frame] != null){ var _local1 = _assigned_routines; _local1[_current_frame](this); }; } public static function create(_arg1:CachedData):CachedInstance{ var icached:CachedInstance; var cached = _arg1; icached = null; try { icached = new CachedInstance(cached); } catch(e:Error) { trace(e); return (null); }; return (icached); } public static function destroyItselfAtEnd(_arg1:CachedInstance):void{ _arg1.destroy(); if (_arg1.parent){ _arg1.parent.removeChild(_arg1); }; } } }//package core.cache
Section 110
//CachingParams (core.cache.CachingParams) package core.cache { public class CachingParams { private var _scale_x:Number;// = 0 private var _scale_y:Number;// = 0 private var _bottom:Number;// = 0 private var _top:Number;// = 0 private var _right:Number;// = 0 private var _left:Number;// = 0 public function CachingParams(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:Number=0):void{ _scale_x = 0; _scale_y = 0; _top = 0; _bottom = 0; _left = 0; _right = 0; super(); _scale_x = _arg5; _scale_y = _arg6; _top = _arg1; _left = _arg4; _bottom = _arg3; _right = _arg2; } public function isScaleSet():Boolean{ return (((!((scaleX == 0))) || (!((scaleY == 0))))); } public function get scaleX():Number{ return (_scale_x); } public function get top():Number{ return (_top); } public function set scaleX(_arg1:Number):void{ _scale_x = _arg1; } public function set bottom(_arg1:Number):void{ _bottom = _arg1; } public function set scaleY(_arg1:Number):void{ _scale_y = _arg1; } public function get left():Number{ return (_left); } public function get right():Number{ return (_right); } public function get scaleY():Number{ return (_scale_y); } public function set top(_arg1:Number):void{ _top = _arg1; } public function get bottom():Number{ return (_bottom); } public function set left(_arg1:Number):void{ _left = _arg1; } public function set right(_arg1:Number):void{ _right = _arg1; } } }//package core.cache
Section 111
//ClipCache (core.cache.ClipCache) package core.cache { import flash.display.*; import flash.utils.*; public class ClipCache { private static var _cache:Dictionary = new Dictionary(); public static function newClip(_arg1:Class, _arg2:CachingParams=null):CachedInstance{ var _local3:String; var _local4:CachedData; _local3 = getQualifiedClassName(_arg1); _local4 = _cache[_local3]; if (!_local4){ cacheByClass(_arg1, _arg2); _local4 = _cache[_local3]; }; return (CachedInstance.create(_local4)); } public static function getId(_arg1):String{ return (getQualifiedClassName(_arg1)); } public static function createShot(_arg1, _arg2:CachingParams=null, _arg3:Boolean=false):CachedInstance{ var _local4:MovieClipRenderer; _local4 = new MovieClipRenderer(_arg1, _arg2, _arg3); _local4.onTick(); _local4.saveCachedData(); return (CachedInstance.create(_local4.cachedData)); } public static function cacheInPlace(_arg1, _arg2:CachingParams=null, _arg3:Boolean=false):MovieClip{ var _local4:*; var _local5:int; var _local6:CachedInstance; var _local7:String; var _local8:CachedData; var _local9:MovieClip; _local4 = _arg1.parent; if (_local4){ _local5 = _local4.getChildIndex(_arg1); _local4.removeChild(_arg1); _local6 = null; _local7 = getId(_arg1); _local8 = _cache[_local7]; if (!_local8){ _local6 = createShot(_arg1, _arg2, _arg3); } else { _local6 = CachedInstance.create(_local8); }; if (!_local6){ return (null); }; _local9 = new MovieClip(); _local9.addChild(_local6); _local9.x = _arg1.x; _local9.y = _arg1.y; _local4.addChildAt(_local9, _local5); return (_local9); }; return (null); } public static function cacheByObject(_arg1, _arg2:CachingParams=null, _arg3:Boolean=true):MovieClipRenderer{ var _local4:MovieClipRenderer; var _local5:int; var _local6:int; if (_arg1.hasOwnProperty("stop")){ _arg1.stop(); }; _local4 = new MovieClipRenderer(_arg1, _arg2, _arg3); _local5 = 1; if (_arg1.hasOwnProperty("totalFrames")){ _local5 = _arg1.totalFrames; }; _local6 = 0; while (_local6 < _local5) { _local4.onTick(); if (_local6 < (_local5 - 1)){ _arg1.nextFrame(); }; _local6++; }; _local4.saveCachedData(); return (_local4); } public static function saveCachedData(_arg1:String, _arg2:CachedData):void{ _cache[_arg1] = _arg2; } public static function isCached(_arg1):Boolean{ return (_cache[getId(_arg1)]); } public static function cacheByClass(_arg1:Class, _arg2:CachingParams=null, _arg3:Boolean=true):MovieClipRenderer{ return (cacheByObject(new (_arg1), _arg2, _arg3)); } public static function replaceInPlaceById(_arg1, _arg2:String):MovieClip{ var _local3:DisplayObjectContainer; var _local4:int; var _local5:CachedInstance; var _local6:CachedData; var _local7:MovieClip; _local3 = _arg1.parent; if (_local3){ _local4 = _local3.getChildIndex(_arg1); _local3.removeChild(_arg1); _local5 = null; _local6 = _cache[_arg2]; if (!_local6){ trace("wtf"); return (null); }; _local5 = CachedInstance.create(_local6); if (!_local5){ return (null); }; _local7 = new MovieClip(); _local7.addChild(_local5); _local7.x = _arg1.x; _local7.y = _arg1.y; _local3.addChildAt(_local7, _local4); return (_local7); }; return (null); } } }//package core.cache
Section 112
//FrameInfo (core.cache.FrameInfo) package core.cache { import flash.display.*; import flash.geom.*; public class FrameInfo { public var bitmap_bounds:Rectangle;// = null public var bitmap_data:BitmapData;// = null public var offset_x:Number;// = 0 public var offset_y:Number;// = 0 public function FrameInfo(_arg1:BitmapData, _arg2:Rectangle){ bitmap_data = null; bitmap_bounds = null; offset_x = 0; offset_y = 0; super(); bitmap_data = _arg1; bitmap_bounds = _arg2; } } }//package core.cache
Section 113
//MovieClipRenderer (core.cache.MovieClipRenderer) package core.cache { import flash.display.*; import flash.geom.*; import core.system.*; public class MovieClipRenderer extends TickListener { private var _cache:CachedData;// = null private var _smoothing:Boolean;// = true private var _frames:Array; private var _supports_synchronization:Boolean;// = false private var _clip_bounds:Rectangle;// = null private var _final_condition:int;// = 0 private var _final_params:Object;// = null private var _cache_id:String; private var _sprite;// = null private var _caching_params:CachingParams;// = null public static const TOTAL_FRAMES:int = 1; public static const HAS_PARENT:int = 0; public function MovieClipRenderer(_arg1, _arg2:CachingParams=null, _arg3:Boolean=true):void{ _frames = new Array(); _sprite = null; _cache = null; _clip_bounds = null; _final_condition = 0; _final_params = null; _caching_params = null; _smoothing = true; _supports_synchronization = false; super(); _sprite = _arg1; _cache_id = ClipCache.getId(_arg1); _caching_params = _arg2; if (((_caching_params) && (_caching_params.isScaleSet()))){ _sprite.scaleX = _caching_params.scaleX; _sprite.scaleY = _caching_params.scaleY; }; _cache = new CachedData(); _cache.renderer = this; if (_arg3){ ClipCache.saveCachedData(_cache_id, _cache); }; checkClipBounds(); _supports_synchronization = _arg1.hasOwnProperty("currentFrame"); setFinalCondition(TOTAL_FRAMES); } private function checkClipBounds():void{ if (_sprite.hasOwnProperty("clip_bounds")){ _clip_bounds = new Rectangle(_sprite.clip_bounds.x, _sprite.clip_bounds.y, _sprite.clip_bounds.width, _sprite.clip_bounds.height); cleanScaffolds(_sprite); }; } public function saveCachedData():void{ var _local1:Object; var _local2:Array; var _local3:FrameLabel; _local1 = new Object(); if (_sprite.hasOwnProperty("currentLabels")){ _local2 = _sprite.currentLabels; for each (_local3 in _local2) { _local1[_local3.name] = _local3.frame; }; }; _cache.labels = _local1; _cache.frames = _frames; _cache.renderer = null; _cache.alreadyCached = true; } public function snapClip(_arg1):FrameInfo{ var _local2:Rectangle; var _local3:BitmapData; var _local4:Matrix; var _local5:FrameInfo; _local2 = null; if (_clip_bounds){ _local2 = _clip_bounds.clone(); } else { _local2 = _arg1.getBounds(_arg1); if ((((_local2.width == 0)) || ((_local2.height == 0)))){ return (null); }; }; _local2.x = (_local2.x * Math.abs(_arg1.scaleX)); _local2.y = (_local2.y * Math.abs(_arg1.scaleY)); _local2.width = (_local2.width * Math.abs(_arg1.scaleX)); _local2.height = (_local2.height * Math.abs(_arg1.scaleY)); if (_caching_params){ _local2.x = (_local2.x - _caching_params.left); _local2.y = (_local2.y - _caching_params.top); _local2.width = (_local2.width + (_caching_params.left + _caching_params.right)); _local2.height = (_local2.height + (_caching_params.top + _caching_params.bottom)); }; _local3 = new BitmapData(int((_local2.width + 0.5)), int((_local2.height + 0.5)), true, 0); _local4 = new Matrix(); _local4.scale(_arg1.scaleX, _arg1.scaleY); _local4.rotate((_arg1.rotation * (Math.PI / 180))); _local4.translate(-(_local2.x), -(_local2.y)); _local3.draw(_arg1, _local4, null, BlendMode.NORMAL, null, true); if (_local3.width > _cache.max_width){ _cache.max_width = _local3.width; }; if (_local3.height > _cache.max_height){ _cache.max_height = _local3.height; }; _local5 = new FrameInfo(_local3, _local2); _local5.offset_x = -(_local2.x); _local5.offset_y = -(_local2.y); return (_local5); } private function isFinalCondition():Boolean{ if (HAS_PARENT == _final_condition){ return ((_sprite.parent == null)); }; if (TOTAL_FRAMES == _final_condition){ return ((_frames.length >= _final_params.total_frames)); }; return (true); } override public function onTick():void{ var _local1:FrameInfo; if (!isFinalCondition()){ if (((_supports_synchronization) && ((_sprite.currentFrame < (_frames.length + 1))))){ return; }; _local1 = snapClip(_sprite); if (_local1){ _frames.push(_local1); }; } else { saveCachedData(); destroy(); }; } public function setFinalCondition(_arg1:int, _arg2:Object=null):void{ _final_condition = _arg1; switch (_arg1){ case HAS_PARENT: break; case TOTAL_FRAMES: _final_params = new Object(); if (!_arg2){ if (_sprite.hasOwnProperty("totalFrames")){ _final_params.total_frames = _sprite.totalFrames; } else { _final_params.total_frames = 1; }; } else { _final_params.total_frames = _arg2.totalFrames; }; break; }; } public function get cachedData():CachedData{ return (_cache); } public function get frames():Array{ return (_frames); } public static function cleanScaffolds(_arg1):void{ if (_arg1.clip_bounds){ _arg1.removeChild(_arg1.clip_bounds); _arg1.clip_bounds = null; }; } } }//package core.cache
Section 114
//ArrayUtils (core.common.ArrayUtils) package core.common { public class ArrayUtils { public static function shuffle(_arg1:Array):void{ var _local2:int; if (_arg1.length <= 1){ return; }; _local2 = 0; while (_local2 < (_arg1.length + 1)) { exchangeElements(_arg1, ((Math.random() - 0.001) * _arg1.length), ((Math.random() - 0.001) * _arg1.length)); _local2++; }; } public static function exchangeElements(_arg1:Array, _arg2:int, _arg3:int):void{ var _local4:*; if (_arg2 == _arg3){ return; }; _local4 = _arg1[_arg2]; _arg1[_arg2] = _arg1[_arg3]; _arg1[_arg3] = _local4; } } }//package core.common
Section 115
//ClassMap (core.common.ClassMap) package core.common { import flash.utils.*; public class ClassMap { private var pairs:Map; public function ClassMap(_arg1:Array=null):void{ pairs = new Map(); super(); if (_arg1){ buildFromArray(_arg1); }; } public function find(_arg1){ var _local2:XML; var _local3:XMLList; var _local4:*; var _local5:XML; _local2 = describeType(_arg1); _local3 = _local2.extendsClass; _local4 = null; _local4 = pairs.get(_local2.@name); if (_local4){ return (_local4); }; for each (_local5 in _local3) { _local4 = pairs.get(_local5.@type); if (_local4){ break; }; }; return (_local4); } public function buildFromArray(_arg1:Array):void{ var _local2:Array; for each (_local2 in _arg1) { addPair(_local2[0], _local2[1]); }; } public function addPair(_arg1:String, _arg2):void{ pairs.add(getClassName(_arg1), _arg2); } private function getClassName(_arg1:String):String{ return (getQualifiedClassName((getDefinitionByName(_arg1) as Class))); } } }//package core.common
Section 116
//EventManager (core.common.EventManager) package core.common { import flash.events.*; import flash.utils.*; public class EventManager { public static var SHOW_WARNING:Boolean = false; private static var objectMap:Dictionary = new Dictionary(true); public static function cleanUpObject(_arg1:IEventDispatcher):void{ var _local2:Object; var _local3:int; if (objectMap[_arg1] == null){ return; }; for each (_local2 in objectMap[_arg1]) { if ((((_local2 is Number)) || ((_local2 == null)))){ } else { _local3 = ((objectMap[_arg1][_local2[1]] as Array).length - 2); if (!(_local2[0] as EventDispatcher).hasEventListener(_local2[1])){ removeEventListener(_local2[0], _local2[1], _local2[2]); }; }; }; } public static function cleanUp():void{ var _local1:Object; var _local2:Object; var _local3:Object; _local1 = new Object(); for each (_local2 in objectMap) { for each (_local3 in _local2) { if ((((_local3 is Number)) || ((_local3 == null)))){ } else { if (_local3[0] == _local1){ } else { (cleanUpObject((_local3[0] as IEventDispatcher)) + "\n"); _local1 = _local3[0]; }; }; }; }; } public static function getMap():Dictionary{ return (objectMap); } public static function removeAllListeners(_arg1:IEventDispatcher=null, _arg2:String=null, _arg3:Function=null):void{ var _local4:Object; var _local5:Object; var _local6:Object; if (((((((SHOW_WARNING) && ((_arg1 == null)))) && ((_arg2 == null)))) && ((_arg3 == null)))){ trace((("EventManager warning! A call to removeAllListeners had all null parameters " + "(meaning all listeners are being removed). You might want to check your filters. ") + "(Turn off this warning by setting EventManager.SHOW_WARNING to false.)")); }; for (_local4 in objectMap) { if (_arg1 != null){ _local4 = _arg1; }; _local5 = objectMap[_local4]; for each (_local6 in _local5) { if ((((((((_local6 is Number)) || ((_local6 == null)))) || (((!((_arg2 == null))) && (!((_local6[1] == _arg2))))))) || (((!((_arg3 == null))) && (!((_local6[2] == _arg3))))))){ } else { removeEventListener(_local6[0], _local6[1], _local6[2], false, true); }; }; if (_arg1 != null){ break; }; }; } public static function removeEventListener(_arg1:IEventDispatcher, _arg2:String, _arg3:Function, _arg4:Boolean=false, _arg5:Boolean=true):void{ var _local6:Array; var _local7:int; var _local8:int; if (_arg5){ _arg1.removeEventListener(_arg2, _arg3, _arg4); }; if (objectMap[_arg1] == null){ return; }; _local6 = objectMap[_arg1][_arg2]; if (_local6 == null){ return; }; _local7 = _local6.length; _local8 = 2; while (_local8 < _local7) { if (_local6[_local8] == _arg3){ _local6.splice(_local8, 1); }; _local8++; }; if (_local6.length == 2){ objectMap[_arg1][_arg2] = null; objectMap[_arg1].numListeners--; if (objectMap[_arg1].numListeners == 0){ objectMap[_arg1] = null; }; }; } public static function addEventListeners(_arg1:IEventDispatcher, _arg2:Array, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=true, _arg6:Boolean=true):void{ var _local7:int; _local7 = 0; while (_local7 < _arg2.length) { trace(_arg2[_local7], _arg2[(_local7 + 1)]); addEventListener(_arg1, (_arg2[_local7] as String), (_arg2[(_local7 + 1)] as Function), _arg3, _arg4, _arg5, _arg6); _local7 = (_local7 + 2); }; } public static function objectTrace(_arg1:IEventDispatcher):String{ var _local2:String; var _local3:Object; var _local4:int; cleanUpObject(_arg1); _local2 = ""; if (objectMap[_arg1] == null){ _local2 = (_local2 + (("" + _arg1) + " has no listeners in EventManager (or gc got it)\n")); return (_local2); }; _local2 = (_local2 + (((_arg1 + " has ") + objectMap[_arg1].numListeners) + " listeners \n\t")); for each (_local3 in objectMap[_arg1]) { if ((((_local3 is Number)) || ((_local3 == null)))){ } else { _local4 = ((objectMap[_arg1][_local3[1]] as Array).length - 2); _local2 = (_local2 + (((("" + _local4) + " listeners of ") + _local3[1]) + ", ")); }; }; _local2 = _local2.substr(0, (_local2.length - 2)); _local2 = (_local2 + ""); return (_local2); } public static function deepTrace():String{ var _local1:String; var _local2:int; var _local3:Object; var _local4:Object; var _local5:Object; _local1 = ""; _local2 = 0; _local3 = new Object(); for each (_local4 in objectMap) { for each (_local5 in _local4) { if ((((_local5 is Number)) || ((_local5 == null)))){ } else { if (_local5[0] == _local3){ } else { _local1 = (_local1 + (objectTrace((_local5[0] as IEventDispatcher)) + "\n")); if (objectMap[_local5[0]] != null){ _local2 = (_local2 + objectMap[_local5[0]].numListeners); }; _local3 = _local5[0]; }; }; }; }; _local1 = (_local1 + ("\nTotal Listeners: " + _local2)); return (_local1); } public static function addEventListener(_arg1:IEventDispatcher, _arg2:String, _arg3:Function, _arg4:Boolean=false, _arg5:int=0, _arg6:Boolean=true, _arg7:Boolean=true):void{ if (_arg7){ _arg1.addEventListener(_arg2, _arg3, _arg4, _arg5, _arg6); }; if (objectMap[_arg1] == null){ objectMap[_arg1] = new Dictionary(); objectMap[_arg1].numListeners = 0; }; if (objectMap[_arg1][_arg2] == null){ objectMap[_arg1].numListeners++; objectMap[_arg1][_arg2] = new Array(); (objectMap[_arg1][_arg2] as Array).push(_arg1, _arg2); }; (objectMap[_arg1][_arg2] as Array).push(_arg3); } } }//package core.common
Section 117
//KeyboardKeys (core.common.KeyboardKeys) package core.common { import flash.events.*; import core.*; public class KeyboardKeys { public static const A_KEY:int = 65; public static const D_KEY:int = 68; public static const S_KEY:int = 83; public static const W_KEY:int = 87; public static const a_KEY:int = 97; public static const d_KEY:int = 100; public static const s_KEY:int = 115; public static const w_KEY:int = 119; private static var initialized:Boolean = false; private static var keys:Object = new Object(); private static function keyPressed(_arg1:KeyboardEvent):void{ keys[_arg1.keyCode] = true; } public static function initialize():void{ EventManager.addEventListener(Global.mainStage, KeyboardEvent.KEY_DOWN, keyPressed); EventManager.addEventListener(Global.mainStage, KeyboardEvent.KEY_UP, keyReleased); initialized = true; } public static function stop():void{ EventManager.removeEventListener(Global.mainStage, KeyboardEvent.KEY_DOWN, keyPressed); EventManager.removeEventListener(Global.mainStage, KeyboardEvent.KEY_UP, keyReleased); initialized = false; } public static function isDown(_arg1:uint):Boolean{ if (!initialized){ return (false); }; if (Boolean((_arg1 in keys))){ return (keys[_arg1]); }; return (false); } private static function keyReleased(_arg1:KeyboardEvent):void{ keys[_arg1.keyCode] = false; } } }//package core.common
Section 118
//Map (core.common.Map) package core.common { public class Map { public var values:Array; protected var index_:int;// = 0 public var keys:Array; public function Map(){ keys = new Array(); values = new Array(); index_ = 0; super(); } public function add(_arg1:Object, _arg2):void{ index_ = 0; find(_arg1); keys.splice(index_, 0, _arg1); values.splice(index_, 0, _arg2); } public function empty():Boolean{ return ((keys.length == 0)); } public function shift(){ var _local1:*; _local1 = values.shift(); keys.shift(); return (_local1); } public function remove(_arg1:Object):void{ if (find(_arg1)){ keys.splice(index_, 1); values.splice(index_, 1); }; } public function size():int{ return (keys.length); } public function pop(){ var _local1:*; _local1 = values.pop(); keys.pop(); return (_local1); } public function get(_arg1:Object){ if (!find(_arg1)){ return (null); }; return (values[index_]); } public function getout(_arg1:Object){ var _local2:*; if (!find(_arg1)){ return (null); }; _local2 = values[index_]; values.splice(index_, 1); keys.splice(index_, 1); return (_local2); } public function find(_arg1:Object):Boolean{ var _local2:int; var _local3:int; _local2 = 0; _local3 = (keys.length - 1); while (_local2 <= _local3) { index_ = ((_local2 + _local3) >> 1); if (_arg1 < keys[index_]){ _local3 = (index_ - 1); } else { if (_arg1 > keys[index_]){ _local2 = (index_ + 1); } else { return (true); }; }; }; index_ = _local2; return (false); } public function clear():void{ keys.length = 0; values.length = 0; index_ = 0; } } }//package core.common
Section 119
//MathUtils (core.common.MathUtils) package core.common { public class MathUtils { public static function toDegrees(_arg1:Number){ return (((_arg1 * 180) / Math.PI)); } public static function isLikely(_arg1:Number):Boolean{ if (_arg1 == 1){ return (true); }; return ((Math.random() < _arg1)); } public static function toRadians(_arg1:Number){ return (((_arg1 * Math.PI) / 180)); } } }//package core.common
Section 120
//ObjectList (core.common.ObjectList) package core.common { import flash.utils.*; public class ObjectList extends Proxy { private var _objects:Array; public function ObjectList():void{ _objects = []; super(); } public function shift(){ return (_objects.shift()); } public function makeCopy():ObjectList{ var _local1:ObjectList; _local1 = new ObjectList(); _local1._objects = _objects.concat(); return (_local1); } public function remove(_arg1):void{ var _local2:int; _local2 = _objects.indexOf(_arg1); if (_local2 >= 0){ delete _objects[_local2]; _objects.splice(_local2, 1); }; } public function buildFromArray(_arg1:Array):void{ _objects = _arg1.concat(); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){ return (_objects[_arg1]); } public function clear():void{ if (((_objects) && ((_objects.length > 0)))){ _objects.length = 0; _objects = new Array(); }; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function isAttribute(_arg1):Boolean{ return (false); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function callProperty(_arg1, ... _args){ if ((_objects[_arg1] is Function)){ return (_objects[_arg1].apply(null, _args)); }; return (null); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextNameIndex(_arg1:int):int{ return (((_arg1)<_objects.length) ? (_arg1 + 1) : 0); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{ _objects[_arg1] = _arg2; } public function push(_arg1):void{ _objects.push(_arg1); } public function hasItem(_arg1):Boolean{ return (!((_objects.indexOf(_arg1) == -1))); } public function toArray():Array{ return (_objects.concat()); } public function get length():uint{ return (_objects.length); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getDescendants(_arg1){ return (null); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextValue(_arg1:int){ return (_objects[(_arg1 - 1)]); } } }//package core.common
Section 121
//sprintf (core.common.sprintf) package core.common { public function sprintf(_arg1:String, ... _args):String{ var _local3:String; var _local4:int; var _local5:int; var _local6:String; var _local7:*; var _local8:String; var _local9:Boolean; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; var _local13:Boolean; var _local14:Boolean; var _local15:Boolean; var _local16:String; var _local17:String; var _local18:Boolean; var _local19:Boolean; _local3 = ""; _local4 = _arg1.length; _local5 = 0; while (_local5 < _local4) { _local6 = _arg1.charAt(_local5); if (_local6 == "%"){ _local9 = false; _local10 = false; _local11 = false; _local12 = false; _local13 = false; _local14 = false; _local15 = false; _local16 = ""; _local17 = ""; ++_local5; _local6 = _arg1.charAt(_local5); while (((((((((((((((((((((!((_local6 == "d"))) && (!((_local6 == "i"))))) && (!((_local6 == "o"))))) && (!((_local6 == "u"))))) && (!((_local6 == "x"))))) && (!((_local6 == "X"))))) && (!((_local6 == "f"))))) && (!((_local6 == "F"))))) && (!((_local6 == "c"))))) && (!((_local6 == "s"))))) && (!((_local6 == "%"))))) { if (!_local10){ if (((!(_local11)) && ((_local6 == "#")))){ _local11 = true; } else { if (((!(_local12)) && ((_local6 == "0")))){ _local12 = true; } else { if (((!(_local13)) && ((_local6 == "-")))){ _local13 = true; } else { if (((!(_local14)) && ((_local6 == " ")))){ _local14 = true; } else { if (((!(_local15)) && ((_local6 == "+")))){ _local15 = true; } else { _local10 = true; }; }; }; }; }; }; if (((!(_local9)) && ((_local6 == ".")))){ _local10 = true; _local9 = true; ++_local5; _local6 = _arg1.charAt(_local5); } else { if (_local10){ if (!_local9){ _local16 = (_local16 + _local6); } else { _local17 = (_local17 + _local6); }; }; ++_local5; _local6 = _arg1.charAt(_local5); }; }; switch (_local6){ case "d": case "i": _local7 = _args.shift(); _local8 = String(Math.abs(int(_local7))); if (_local17 != ""){ _local8 = leftPad(_local8, int(_local17), "0"); }; if (int(_local7) < 0){ _local8 = ("-" + _local8); } else { if (((_local15) && ((int(_local7) >= 0)))){ _local8 = ("+" + _local8); }; }; if (_local16 != ""){ if (_local13){ _local8 = rightPad(_local8, int(_local16)); } else { if (((_local12) && ((_local17 == "")))){ _local8 = leftPad(_local8, int(_local16), "0"); } else { _local8 = leftPad(_local8, int(_local16)); }; }; }; _local3 = (_local3 + _local8); break; case "o": _local7 = _args.shift(); _local8 = uint(_local7).toString(8); if (((_local11) && (!((_local8 == "0"))))){ _local8 = ("0" + _local8); }; if (_local17 != ""){ _local8 = leftPad(_local8, int(_local17), "0"); }; if (_local16 != ""){ if (_local13){ _local8 = rightPad(_local8, int(_local16)); } else { if (((_local12) && ((_local17 == "")))){ _local8 = leftPad(_local8, int(_local16), "0"); } else { _local8 = leftPad(_local8, int(_local16)); }; }; }; _local3 = (_local3 + _local8); break; case "u": _local7 = _args.shift(); _local8 = uint(_local7).toString(10); if (_local17 != ""){ _local8 = leftPad(_local8, int(_local17), "0"); }; if (_local16 != ""){ if (_local13){ _local8 = rightPad(_local8, int(_local16)); } else { if (((_local12) && ((_local17 == "")))){ _local8 = leftPad(_local8, int(_local16), "0"); } else { _local8 = leftPad(_local8, int(_local16)); }; }; }; _local3 = (_local3 + _local8); break; case "X": _local18 = true; case "x": _local7 = _args.shift(); _local8 = uint(_local7).toString(16); if (_local17 != ""){ _local8 = leftPad(_local8, int(_local17), "0"); }; _local19 = ((_local11) && (!((uint(_local7) == 0)))); if (((((((!((_local16 == ""))) && (!(_local13)))) && (_local12))) && ((_local17 == "")))){ _local8 = leftPad(_local8, (_local19) ? (int(_local16) - 2) : int(_local16), "0"); }; if (_local19){ _local8 = ("0x" + _local8); }; if (_local16 != ""){ if (_local13){ _local8 = rightPad(_local8, int(_local16)); } else { _local8 = leftPad(_local8, int(_local16)); }; }; if (_local18){ _local8 = _local8.toUpperCase(); }; _local3 = (_local3 + _local8); break; case "f": case "F": _local7 = _args.shift(); _local8 = Math.abs(Number(_local7)).toFixed(((_local17)!="") ? int(_local17) : 6); if (int(_local7) < 0){ _local8 = ("-" + _local8); } else { if (((_local15) && ((int(_local7) >= 0)))){ _local8 = ("+" + _local8); }; }; if (((_local11) && ((_local8.indexOf(".") == -1)))){ _local8 = (_local8 + "."); }; if (_local16 != ""){ if (_local13){ _local8 = rightPad(_local8, int(_local16)); } else { if (((_local12) && ((_local17 == "")))){ _local8 = leftPad(_local8, int(_local16), "0"); } else { _local8 = leftPad(_local8, int(_local16)); }; }; }; _local3 = (_local3 + _local8); break; case "c": _local7 = _args.shift(); _local8 = String.fromCharCode(int(_local7)); if (_local16 != ""){ if (_local13){ _local8 = rightPad(_local8, int(_local16)); } else { _local8 = leftPad(_local8, int(_local16)); }; }; _local3 = (_local3 + _local8); break; case "s": _local7 = _args.shift(); _local8 = String(_local7); if (_local17 != ""){ _local8 = _local8.substring(0, int(_local17)); }; if (_local16 != ""){ if (_local13){ _local8 = rightPad(_local8, int(_local16)); } else { _local8 = leftPad(_local8, int(_local16)); }; }; _local3 = (_local3 + _local8); break; case "%": _local3 = (_local3 + "%"); }; } else { _local3 = (_local3 + _local6); }; _local5++; }; return (_local3); } }//package core.common private const leftPad:Function = function (_arg1:String, _arg2:int, _arg3:String=" "):String{ var _local4:String; if (_arg1.length < _arg2){ _local4 = ""; while ((_local4.length + _arg1.length) < _arg2) { _local4 = (_local4 + _arg3); }; return ((_local4 + _arg1)); }; return (_arg1); }; private const rightPad:Function = function (_arg1:String, _arg2:int, _arg3:String=" "):String{ while (_arg1.length < _arg2) { _arg1 = (_arg1 + _arg3); }; return (_arg1); };
Section 122
//StringUtils (core.common.StringUtils) package core.common { public class StringUtils { public static function replaceAll(_arg1:String, _arg2:String, _arg3:String):String{ var _local4:String; var _local5:String; _local4 = _arg1; while (true) { _local5 = _local4.replace(_arg2, _arg3); if (_local5 == _local4){ break; }; _local4 = _local5; }; return (_local4); } } }//package core.common
Section 123
//TimeUtils (core.common.TimeUtils) package core.common { public class TimeUtils { public static function convertToMinSec(_arg1:int):String{ var _local2:int; var _local3:int; var _local4:int; _local2 = (_arg1 / 1000); _local3 = (_local2 / 60); _local4 = (_local2 % 60); return (sprintf("%02d:%02d", _local3, _local4)); } } }//package core.common
Section 124
//SoundSlider (core.controls.SoundSlider) package core.controls { import core.sound.*; import fl.controls.*; import flash.display.*; import fl.managers.*; import fl.events.*; import core.*; public class SoundSlider extends MovieClip { private var _sound_slider:Slider;// = null public function SoundSlider():void{ _sound_slider = null; super(); _sound_slider = new Slider(); _sound_slider.liveDragging = true; _sound_slider.setSize(100, 0); _sound_slider.maximum = 100; _sound_slider.minimum = 0; _sound_slider.tickInterval = 5; _sound_slider.addEventListener(SliderEvent.CHANGE, musicChange); _sound_slider.x = 60; _sound_slider.y = -10; addChild(_sound_slider); _sound_slider.value = (Music.volume * 100); } public function destroy():void{ _sound_slider.removeEventListener(SliderEvent.CHANGE, musicChange); removeChild(_sound_slider); _sound_slider = null; } private function musicChange(_arg1:SliderEvent):void{ var _local2:FocusManager; Music.volume = (_sound_slider.value / 100); _local2 = new FocusManager(Global.mainStage); _local2.setFocus(Global.mainStage); } public function get slider():Slider{ return (_sound_slider); } } }//package core.controls
Section 125
//Filters (core.display.Filters) package core.display { import flash.filters.*; public class Filters { public static function getBlurFilter(_arg1:Number, _arg2:Number, _arg3:int=1):BitmapFilter{ return (new BlurFilter(_arg1, _arg2, _arg3)); } public static function getColorMatrixFilter(_arg1:Array=null):BitmapFilter{ if (!_arg1){ _arg1 = new Array(); _arg1 = _arg1.concat([2, 0, 0, 0, -40]); _arg1 = _arg1.concat([0, 2, 0, 0, -40]); _arg1 = _arg1.concat([0, 0, 2, 0, -40]); _arg1 = _arg1.concat([0, 0, 0, 1, 0]); }; return (new ColorMatrixFilter(_arg1)); } public static function getGlowFilter(_arg1:Number=3394815, _arg2:Number=1, _arg3:Number=5, _arg4:Number=5, _arg5:Number=2, _arg6:Boolean=false, _arg7:Boolean=false, _arg8:Number=1):BitmapFilter{ return (new GlowFilter(_arg1, _arg2, _arg3, _arg4, _arg5, _arg8, _arg6, _arg7)); } public static function getBevelFilter(_arg1:Number=4, _arg2:Number=45, _arg3:Number=0xFFFFFF, _arg4:Number=0.8, _arg5:Number=0, _arg6:Number=0.8, _arg7:Number=9, _arg8:Number=9, _arg9:Number=1.2, _arg10:Number=1, _arg11:String="inner", _arg12:Boolean=false):BitmapFilter{ return (new BevelFilter(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, _arg11, _arg12)); } public static function getGreyscaleFilter():BitmapFilter{ var _local1:Array; _local1 = new Array(); _local1 = _local1.concat([0.5, 0.5, 0.5, 0, 0]); _local1 = _local1.concat([0.5, 0.5, 0.5, 0, 0]); _local1 = _local1.concat([0.5, 0.5, 0.5, 0, 0]); _local1 = _local1.concat([0, 0, 0, 1, 0]); return (getColorMatrixFilter(_local1)); } public static function getShadowFilter(_arg1:Number=0, _arg2:Number=45, _arg3:Number=0.8, _arg4:Number=5, _arg5:Number=5, _arg6:Number=10, _arg7:Number=0.8, _arg8:Boolean=false, _arg9:Boolean=false, _arg10:Number=1):BitmapFilter{ return (new DropShadowFilter(_arg6, _arg2, _arg1, _arg3, _arg4, _arg5, _arg7, _arg10, _arg8, _arg9)); } } }//package core.display
Section 126
//GameTop (core.display.GameTop) package core.display { import flash.display.*; import flash.utils.*; import core.game.*; public class GameTop extends UIWindow { private var _ui_holder:Sprite;// = null private var _windows:Object;// = null private var _game_settings:GameSettings;// = null public function GameTop(_arg1:String, _arg2:int):void{ _ui_holder = null; _game_settings = null; _windows = null; super(); _game_settings = new GameSettings(_arg1, _arg2); _windows = new Object(); _ui_holder = new Sprite(); addChild(_ui_holder); } public function get gameSettings():GameSettings{ return (_game_settings); } public function get uiHolder():Sprite{ return (_ui_holder); } public function get windows():Object{ return (_windows); } public function hideAllWindows():void{ var _local1:*; for each (_local1 in windows) { if (true == _local1.visible){ _local1.close(); }; }; } override public function initialize():void{ } public function addWindow(_arg1:Class, _arg2:Object=null):void{ var _local3:*; var _local4:String; _local3 = new (_arg1); _local3.visible = false; _ui_holder.addChild(_local3); _local4 = null; if (_arg2){ if (_arg2.alias){ _local4 = _arg2.alias; }; }; if (null == _local4){ _local4 = getQualifiedClassName(_arg1); }; _windows[_local4] = _local3; if (_local3.hasOwnProperty("initialize")){ _local3.initialize(); }; } public function destroy():void{ } } }//package core.display
Section 127
//UIWindow (core.display.UIWindow) package core.display { import flash.display.*; public class UIWindow extends Sprite { public function initialize():void{ } public function show():void{ visible = true; } public function close():void{ visible = false; } } }//package core.display
Section 128
//GameSettings (core.game.GameSettings) package core.game { import core.common.*; import flash.net.*; public class GameSettings { private var _slots:Object;// = null private var _save_identifier:String; private var _common_data:Object;// = null private static const SAVE_LABEL:String = "__9828963986489207_save__"; public function GameSettings(_arg1:String, _arg2:int):void{ _slots = null; _common_data = null; super(); _save_identifier = ((StringUtils.replaceAll(_arg1, " ", "_") + "_ver_") + _arg2.toString()); } public function clearAll():void{ var _local1:SharedObject; _local1 = SharedObject.getLocal(saveIdentifier, "/"); _local1.clear(); } private function flush():void{ var _local1:SharedObject; _local1 = SharedObject.getLocal(saveIdentifier, "/"); _local1.data.slots = _slots; _local1.data.common = _common_data; _local1.flush(); } private function load():void{ var _local1:SharedObject; _local1 = SharedObject.getLocal(saveIdentifier, "/"); if (_local1.data.common){ _common_data = _local1.data.common; } else { _common_data = new Object(); }; if (_local1.data.slots){ _slots = _local1.data.slots; } else { _slots = new Object(); }; } public function saveCommon(_arg1:Object):void{ if (!_common_data){ load(); }; transferObjectData(_arg1, _common_data); _common_data[SAVE_LABEL] = true; flush(); } public function getSlot(_arg1:int):Object{ if (!_slots){ load(); }; return (_slots[("slot" + _arg1.toString())]); } public function getCommon():Object{ if (!_common_data){ load(); }; return (_common_data); } private function transferObjectData(_arg1:Object, _arg2:Object):void{ var _local3:String; for (_local3 in _arg1) { _arg2[_local3] = _arg1[_local3]; }; } public function get saveIdentifier():String{ return (_save_identifier); } public function save(_arg1:int, _arg2:Object):void{ _arg2[SAVE_LABEL] = true; _slots[("slot" + _arg1.toString())] = _arg2; flush(); } public static function isEmpty(_arg1:Object):Boolean{ if (!_arg1){ return (true); }; return (!((_arg1[SAVE_LABEL] == true))); } } }//package core.game
Section 129
//Music (core.sound.Music) package core.sound { import flash.media.*; import flash.utils.*; public class Music { private var _music_channel:SoundChannel;// = null private var _loops:int;// = 999999 private var _music_sound:Sound;// = null private static var _volume_off:Boolean = false; private static var _music_off:Boolean = false; private static var _volume:Number = 1; private static var _pool:Dictionary = new Dictionary(); public function Music():void{ _music_sound = null; _music_channel = null; _loops = 999999; super(); } public function stop():void{ if (_music_channel){ _music_channel.stop(); _music_channel = null; delete _pool[this]; }; } public function setTrackType(_arg1:Class, _arg2:int=-1):void{ setTrack(new (_arg1), _arg2); } public function get isPlaying():Boolean{ return (!((_music_channel == null))); } public function setTrack(_arg1:Sound, _arg2:int=-1):void{ _music_sound = _arg1; if (_arg2 > 0){ _loops = _arg2; }; } public function play(_arg1:Boolean=true):void{ var _local2:SoundTransform; stop(); if (((((!(volumeOff)) && (!(musicOff)))) && (_music_sound))){ _local2 = new SoundTransform(); _local2.volume = _volume; _music_channel = _music_sound.play(0, _loops, _local2); if (_arg1){ _pool[this] = this; }; }; } public static function set musicOff(_arg1:Boolean):void{ var _local2:Music; _music_off = _arg1; if (true == _music_off){ for each (_local2 in _pool) { _local2.stop(); }; }; } public static function set volumeOff(_arg1:Boolean):void{ var _local2:Music; _volume_off = _arg1; if (true == _volume_off){ for each (_local2 in _pool) { _local2.stop(); }; }; } public static function get musicOff():Boolean{ return (_music_off); } public static function playSingleSound(_arg1:Class):void{ var _local2:SoundTransform; if (volumeOff){ return; }; _local2 = new SoundTransform(); _local2.volume = volume; new (_arg1).play(0, 0, _local2); } public static function set volume(_arg1:Number):void{ var _local2:Music; var _local3:SoundTransform; _volume = _arg1; for each (_local2 in _pool) { _local3 = _local2._music_channel.soundTransform; _local3.volume = Music.volume; _local2._music_channel.soundTransform = _local3; }; } public static function get volumeOff():Boolean{ return (_volume_off); } public static function get volume():Number{ return (_volume); } public static function stopAll():void{ var _local1:Music; for each (_local1 in _pool) { _local1.stop(); }; } } }//package core.sound
Section 130
//DelayTickListener (core.system.DelayTickListener) package core.system { public class DelayTickListener extends TickListener { private var _DELAY:int;// = 5 private var _delay:int;// = 0 public function DelayTickListener(_arg1:int):void{ _DELAY = 5; _delay = 0; super(); _DELAY = _arg1; } override public function onTick():void{ if (_delay > 0){ _delay--; return; }; delayedOnTick(); _delay = _DELAY; } protected function delayedOnTick():void{ } } }//package core.system
Section 131
//ITickListener (core.system.ITickListener) package core.system { public interface ITickListener { function get isRunning():Boolean; function destroy():void; function onTick():void; } }//package core.system
Section 132
//NameManager (core.system.NameManager) package core.system { import flash.utils.*; public class NameManager { private var _entities:Dictionary; public function NameManager(){ _entities = new Dictionary(); super(); } public function remove(_arg1:Object):void{ _entities[_arg1] = null; delete _entities[_arg1]; } public function add(_arg1, _arg2:Object):void{ _entities[_arg2] = _arg1; } public function lookup(_arg1:Object){ return (_entities[_arg1]); } } }//package core.system
Section 133
//TickListener (core.system.TickListener) package core.system { public class TickListener implements ITickListener { protected var _running:Boolean;// = true public function TickListener(){ _running = true; super(); } public function onTick():void{ } public function get isRunning():Boolean{ return (_running); } public function destroy():void{ _running = false; } } }//package core.system
Section 134
//TickManager (core.system.TickManager) package core.system { import flash.utils.*; import core.*; public class TickManager extends TickListener { private var _listeners:Array; private var _running_count:int;// = 0 private var _paused:Boolean;// = false private var _last_time:Number;// = -1 private var _ticks_per_second:int;// = 0 private var _tick_rate_ms:Number;// = 0 private var _cleaning_delay:int;// = 0 private var _time_adjustment:Boolean;// = false private var _time_multiplier:Number;// = 1 private var _elapsed:Number;// = 0 private static const CLEANING_DELAY:uint = 10; public static const MAX_TICKS_PER_FRAME:uint = 50; public function TickManager(_arg1:Boolean=false, _arg2:int=0):void{ _listeners = []; _cleaning_delay = 0; _running_count = 0; _time_multiplier = 1; _ticks_per_second = 0; _tick_rate_ms = 0; _last_time = -1; _elapsed = 0; _time_adjustment = false; _paused = false; super(); _time_adjustment = _arg1; _ticks_per_second = _arg2; if (0 == _ticks_per_second){ _ticks_per_second = Global.mainStage.frameRate; }; _tick_rate_ms = (1000 / _ticks_per_second); } private function advance():void{ var _local1:ITickListener; _running_count = 0; for each (_local1 in _listeners) { if (_local1.isRunning){ _local1.onTick(); _running_count++; }; }; } public function resetTime():void{ _last_time = getTimer(); } public function get timeMultiplier():Number{ return (_time_multiplier); } public function set paused(_arg1:Boolean):void{ _paused = _arg1; resetTime(); } public function destroyChildren():void{ var _local1:ITickListener; for each (_local1 in _listeners) { if (_local1.isRunning){ _local1.destroy(); }; }; _listeners.length = 0; } public function get paused():Boolean{ return (_paused); } override public function onTick():void{ var _local1:Number; var _local2:int; if (_paused){ return; }; if (_time_adjustment){ _local1 = getTimer(); if (_last_time < 0){ _last_time = (_local1 - _tick_rate_ms); }; _elapsed = (_elapsed + ((_local1 - _last_time) * _time_multiplier)); _local2 = 0; while ((((_elapsed >= _tick_rate_ms)) && ((_local2 < MAX_TICKS_PER_FRAME)))) { advance(); _elapsed = (_elapsed - _tick_rate_ms); _local2++; }; _last_time = _local1; if (_local2 >= MAX_TICKS_PER_FRAME){ _elapsed = 0; }; } else { advance(); }; if (!_cleaning_delay){ cleanListeners(); _cleaning_delay = CLEANING_DELAY; } else { _cleaning_delay--; }; } public function get runningCount():int{ return (_running_count); } public function get timeAdjustment():Boolean{ return (_time_adjustment); } public function addTickListener(_arg1:ITickListener):void{ _listeners.push(_arg1); } private function cleanListeners():void{ var _local1:int; _local1 = 0; while (_local1 < _listeners.length) { if (!_listeners[_local1].isRunning){ _listeners.splice(_local1, 1); } else { _local1++; }; }; } override public function destroy():void{ destroyChildren(); super.destroy(); } public function set timeAdjustment(_arg1:Boolean):void{ _time_adjustment = _arg1; } public function set timeMultiplier(_arg1:Number):void{ _time_multiplier = _arg1; } public function get listeners():Array{ return (_listeners); } } }//package core.system
Section 135
//Global (core.Global) package core { import flash.display.*; import core.display.*; import core.system.*; import flash.events.*; import core.common.*; import flash.ui.*; public class Global { public static const CORE_VERSION:Number = 0.5; private static var _name_manager:NameManager = null; private static var _tick_manager:TickManager = null; private static var _top:GameTop = null; private static var _main = null; public static function hideMenu():void{ var _local1:ContextMenu; if (!isStarted()){ throw (new Error("Cannot retrieve the global stage instance (_main == null)")); }; _local1 = new ContextMenu(); _local1.hideBuiltInItems(); _main.contextMenu = _local1; } public static function get mainStage():Stage{ if (null == _main){ throw (new Error("Cannot retrieve the global stage instance (_main == null)")); }; return (_main.stage); } public static function get mainClass():Sprite{ return (_main); } public static function get nameManager():NameManager{ return (_name_manager); } private static function unloadHandler(_arg1:Event):void{ EventManager.SHOW_WARNING = false; EventManager.removeAllListeners(); _main.destroy(); _top.destroy(); } public static function getCurrentDomain():String{ var _local1:String; var _local2:int; var _local3:int; var _local4:String; var _local5:int; var _local6:int; _local1 = _main.root.loaderInfo.loaderURL; _local2 = (_local1.indexOf("://") + 3); _local3 = _local1.indexOf("/", _local2); _local4 = _local1.substring(_local2, _local3); _local5 = (_local4.lastIndexOf(".") - 1); _local6 = (_local4.lastIndexOf(".", _local5) + 1); return (_local4.substring(_local6, _local4.length)); } public static function get tickManager():TickManager{ return (_tick_manager); } public static function addMenuItem(_arg1:String):void{ var _local2:ContextMenuItem; if (!isStarted()){ throw (new Error("Cannot retrieve the global stage instance (_main == null)")); }; _local2 = new ContextMenuItem(_arg1); _main.contextMenu.customItems.push(_local2); } public static function get top():GameTop{ return (_top); } private static function onFrameHandler(_arg1:Event):void{ _tick_manager.onTick(); } public static function startup(_arg1:Sprite, _arg2):void{ _main = _arg1; _top = _arg2; _name_manager = new NameManager(); _tick_manager = new TickManager(); EventManager.addEventListener(_main.root.loaderInfo, Event.UNLOAD, unloadHandler); EventManager.addEventListener(mainStage, Event.ENTER_FRAME, onFrameHandler); } public static function isStarted():Boolean{ return (!((_main == null))); } } }//package core
Section 136
//BaseButton (fl.controls.BaseButton) package fl.controls { import flash.events.*; import flash.display.*; import fl.core.*; import flash.utils.*; import fl.events.*; public class BaseButton extends UIComponent { protected var _selected:Boolean;// = false private var unlockedMouseState:String; protected var pressTimer:Timer; protected var mouseState:String; protected var background:DisplayObject; private var _mouseStateLocked:Boolean;// = false protected var _autoRepeat:Boolean;// = false private static var defaultStyles:Object = {upSkin:"Button_upSkin", downSkin:"Button_downSkin", overSkin:"Button_overSkin", disabledSkin:"Button_disabledSkin", selectedDisabledSkin:"Button_selectedDisabledSkin", selectedUpSkin:"Button_selectedUpSkin", selectedDownSkin:"Button_selectedDownSkin", selectedOverSkin:"Button_selectedOverSkin", focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35}; public function BaseButton(){ _selected = false; _autoRepeat = false; _mouseStateLocked = false; super(); buttonMode = true; mouseChildren = false; useHandCursor = false; setupMouseEvents(); setMouseState("up"); pressTimer = new Timer(1, 0); pressTimer.addEventListener(TimerEvent.TIMER, buttonDown, false, 0, true); } protected function endPress():void{ pressTimer.reset(); } public function set mouseStateLocked(_arg1:Boolean):void{ _mouseStateLocked = _arg1; if (_arg1 == false){ setMouseState(unlockedMouseState); } else { unlockedMouseState = mouseState; }; } public function get autoRepeat():Boolean{ return (_autoRepeat); } public function set autoRepeat(_arg1:Boolean):void{ _autoRepeat = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; mouseEnabled = _arg1; } public function get selected():Boolean{ return (_selected); } protected function mouseEventHandler(_arg1:MouseEvent):void{ if (_arg1.type == MouseEvent.MOUSE_DOWN){ setMouseState("down"); startPress(); } else { if ((((_arg1.type == MouseEvent.ROLL_OVER)) || ((_arg1.type == MouseEvent.MOUSE_UP)))){ setMouseState("over"); endPress(); } else { if (_arg1.type == MouseEvent.ROLL_OUT){ setMouseState("up"); endPress(); }; }; }; } public function setMouseState(_arg1:String):void{ if (_mouseStateLocked){ unlockedMouseState = _arg1; return; }; if (mouseState == _arg1){ return; }; mouseState = _arg1; invalidate(InvalidationType.STATE); } protected function startPress():void{ if (_autoRepeat){ pressTimer.delay = Number(getStyleValue("repeatDelay")); pressTimer.start(); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } protected function buttonDown(_arg1:TimerEvent):void{ if (!_autoRepeat){ endPress(); return; }; if (pressTimer.currentCount == 1){ pressTimer.delay = Number(getStyleValue("repeatInterval")); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } public function set selected(_arg1:Boolean):void{ if (_selected == _arg1){ return; }; _selected = _arg1; invalidate(InvalidationType.STATE); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function setupMouseEvents():void{ addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false, 0, true); } protected function drawLayout():void{ background.width = width; background.height = height; } protected function drawBackground():void{ var _local1:String; var _local2:DisplayObject; _local1 = (enabled) ? mouseState : "disabled"; if (selected){ _local1 = (("selected" + _local1.substr(0, 1).toUpperCase()) + _local1.substr(1)); }; _local1 = (_local1 + "Skin"); _local2 = background; background = getDisplayObjectInstance(getStyleValue(_local1)); addChildAt(background, 0); if (((!((_local2 == null))) && (!((_local2 == background))))){ removeChild(_local2); }; } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 137
//Button (fl.controls.Button) package fl.controls { import flash.display.*; import fl.core.*; import fl.managers.*; public class Button extends LabelButton implements IFocusManagerComponent { protected var emphasizedBorder:DisplayObject; protected var _emphasized:Boolean;// = false private static var defaultStyles:Object = {emphasizedSkin:"Button_emphasizedSkin", emphasizedPadding:2}; public static var createAccessibilityImplementation:Function; public function Button(){ _emphasized = false; super(); } override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; var _local3:*; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("emphasizedPadding")); if ((((_local2 < 0)) || (!(_emphasized)))){ _local2 = 0; }; _local3 = getStyleValue("focusRectPadding"); _local3 = ((_local3)==null) ? 2 : _local3; _local3 = (_local3 + _local2); uiFocusRect.x = -(_local3); uiFocusRect.y = -(_local3); uiFocusRect.width = (width + (_local3 * 2)); uiFocusRect.height = (height + (_local3 * 2)); }; } public function set emphasized(_arg1:Boolean):void{ _emphasized = _arg1; invalidate(InvalidationType.STYLES); } override protected function draw():void{ if (((isInvalid(InvalidationType.STYLES)) || (isInvalid(InvalidationType.SIZE)))){ drawEmphasized(); }; super.draw(); if (emphasizedBorder != null){ setChildIndex(emphasizedBorder, (numChildren - 1)); }; } public function get emphasized():Boolean{ return (_emphasized); } override protected function initializeAccessibility():void{ if (Button.createAccessibilityImplementation != null){ Button.createAccessibilityImplementation(this); }; } protected function drawEmphasized():void{ var _local1:Object; var _local2:Number; if (emphasizedBorder != null){ removeChild(emphasizedBorder); }; emphasizedBorder = null; if (!_emphasized){ return; }; _local1 = getStyleValue("emphasizedSkin"); if (_local1 != null){ emphasizedBorder = getDisplayObjectInstance(_local1); }; if (emphasizedBorder != null){ addChildAt(emphasizedBorder, 0); _local2 = Number(getStyleValue("emphasizedPadding")); emphasizedBorder.x = (emphasizedBorder.y = -(_local2)); emphasizedBorder.width = (width + (_local2 * 2)); emphasizedBorder.height = (height + (_local2 * 2)); }; } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(LabelButton.getStyleDefinition(), defaultStyles)); } } }//package fl.controls
Section 138
//ButtonLabelPlacement (fl.controls.ButtonLabelPlacement) package fl.controls { public class ButtonLabelPlacement { public static const TOP:String = "top"; public static const LEFT:String = "left"; public static const BOTTOM:String = "bottom"; public static const RIGHT:String = "right"; } }//package fl.controls
Section 139
//LabelButton (fl.controls.LabelButton) package fl.controls { import flash.events.*; import flash.display.*; import fl.core.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.ui.*; public class LabelButton extends BaseButton implements IFocusManagerComponent { protected var _labelPlacement:String;// = "right" protected var _toggle:Boolean;// = false protected var icon:DisplayObject; protected var oldMouseState:String; protected var mode:String;// = "center" public var textField:TextField; protected var _label:String;// = "Label" private static var defaultStyles:Object = {icon:null, upIcon:null, downIcon:null, overIcon:null, disabledIcon:null, selectedDisabledIcon:null, selectedUpIcon:null, selectedDownIcon:null, selectedOverIcon:null, textFormat:null, disabledTextFormat:null, textPadding:5, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function LabelButton(){ _labelPlacement = ButtonLabelPlacement.RIGHT; _toggle = false; _label = "Label"; mode = "center"; super(); } protected function toggleSelected(_arg1:MouseEvent):void{ selected = !(selected); dispatchEvent(new Event(Event.CHANGE, true)); } public function get labelPlacement():String{ return (_labelPlacement); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ if (oldMouseState == null){ oldMouseState = mouseState; }; setMouseState("down"); startPress(); }; } protected function setEmbedFont(){ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ setMouseState(oldMouseState); oldMouseState = null; endPress(); dispatchEvent(new MouseEvent(MouseEvent.CLICK)); }; } override public function get selected():Boolean{ return ((_toggle) ? _selected : false); } public function set labelPlacement(_arg1:String):void{ _labelPlacement = _arg1; invalidate(InvalidationType.SIZE); } public function set toggle(_arg1:Boolean):void{ if (((!(_arg1)) && (super.selected))){ selected = false; }; _toggle = _arg1; if (_toggle){ addEventListener(MouseEvent.CLICK, toggleSelected, false, 0, true); } else { removeEventListener(MouseEvent.CLICK, toggleSelected); }; invalidate(InvalidationType.STATE); } public function get label():String{ return (_label); } override public function set selected(_arg1:Boolean):void{ _selected = _arg1; if (_toggle){ invalidate(InvalidationType.STATE); }; } override protected function draw():void{ if (textField.text != _label){ label = _label; }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); drawIcon(); drawTextFormat(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } public function get toggle():Boolean{ return (_toggle); } override protected function configUI():void{ super.configUI(); textField = new TextField(); textField.type = TextFieldType.DYNAMIC; textField.selectable = false; addChild(textField); } override protected function drawLayout():void{ var _local1:Number; var _local2:String; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local1 = Number(getStyleValue("textPadding")); _local2 = ((((icon == null)) && ((mode == "center")))) ? ButtonLabelPlacement.TOP : _labelPlacement; textField.height = (textField.textHeight + 4); _local3 = (textField.textWidth + 4); _local4 = (textField.textHeight + 4); _local5 = ((icon)==null) ? 0 : (icon.width + _local1); _local6 = ((icon)==null) ? 0 : (icon.height + _local1); textField.visible = (label.length > 0); if (icon != null){ icon.x = Math.round(((width - icon.width) / 2)); icon.y = Math.round(((height - icon.height) / 2)); }; if (textField.visible == false){ textField.width = 0; textField.height = 0; } else { if ((((_local2 == ButtonLabelPlacement.BOTTOM)) || ((_local2 == ButtonLabelPlacement.TOP)))){ _local7 = Math.max(0, Math.min(_local3, (width - (2 * _local1)))); if ((height - 2) > _local4){ _local8 = _local4; } else { _local8 = (height - 2); }; _local3 = _local7; textField.width = _local3; _local4 = _local8; textField.height = _local4; textField.x = Math.round(((width - _local3) / 2)); textField.y = Math.round(((((height - textField.height) - _local6) / 2) + ((_local2)==ButtonLabelPlacement.BOTTOM) ? _local6 : 0)); if (icon != null){ icon.y = Math.round(((_local2)==ButtonLabelPlacement.BOTTOM) ? (textField.y - _local6) : ((textField.y + textField.height) + _local1)); }; } else { _local7 = Math.max(0, Math.min(_local3, ((width - _local5) - (2 * _local1)))); _local3 = _local7; textField.width = _local3; textField.x = Math.round(((((width - _local3) - _local5) / 2) + ((_local2)!=ButtonLabelPlacement.LEFT) ? _local5 : 0)); textField.y = Math.round(((height - textField.height) / 2)); if (icon != null){ icon.x = Math.round(((_local2)!=ButtonLabelPlacement.LEFT) ? (textField.x - _local5) : ((textField.x + _local3) + _local1)); }; }; }; super.drawLayout(); } override protected function initializeAccessibility():void{ if (LabelButton.createAccessibilityImplementation != null){ LabelButton.createAccessibilityImplementation(this); }; } protected function drawIcon():void{ var _local1:DisplayObject; var _local2:String; var _local3:Object; _local1 = icon; _local2 = (enabled) ? mouseState : "disabled"; if (selected){ _local2 = (("selected" + _local2.substr(0, 1).toUpperCase()) + _local2.substr(1)); }; _local2 = (_local2 + "Icon"); _local3 = getStyleValue(_local2); if (_local3 == null){ _local3 = getStyleValue("icon"); }; if (_local3 != null){ icon = getDisplayObjectInstance(_local3); }; if (icon != null){ addChildAt(icon, 1); }; if (((!((_local1 == null))) && (!((_local1 == icon))))){ removeChild(_local1); }; } public function set label(_arg1:String):void{ _label = _arg1; if (textField.text != _label){ textField.text = _label; dispatchEvent(new ComponentEvent(ComponentEvent.LABEL_CHANGE)); }; invalidate(InvalidationType.SIZE); invalidate(InvalidationType.STYLES); } protected function drawTextFormat():void{ var _local1:Object; var _local2:TextFormat; var _local3:TextFormat; _local1 = UIComponent.getStyleDefinition(); _local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); _local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseButton.getStyleDefinition())); } } }//package fl.controls
Section 140
//Slider (fl.controls.Slider) package fl.controls { import flash.events.*; import flash.display.*; import fl.core.*; import fl.managers.*; import fl.events.*; import flash.ui.*; public class Slider extends UIComponent implements IFocusManagerComponent { protected var _direction:String; protected var _liveDragging:Boolean;// = false protected var _value:Number;// = 0 protected var _snapInterval:Number;// = 0 protected var _minimum:Number;// = 0 protected var _maximum:Number;// = 10 protected var track:BaseButton; protected var _tickInterval:Number;// = 0 protected var tickContainer:Sprite; protected var thumb:BaseButton; protected static const TICK_STYLES:Object = {upSkin:"tickSkin"}; protected static const TRACK_STYLES:Object = {upSkin:"sliderTrackSkin", overSkin:"sliderTrackSkin", downSkin:"sliderTrackSkin", disabledSkin:"sliderTrackDisabledSkin"}; protected static const THUMB_STYLES:Object = {upSkin:"thumbUpSkin", overSkin:"thumbOverSkin", downSkin:"thumbDownSkin", disabledSkin:"thumbDisabledSkin"}; protected static var defaultStyles:Object = {thumbUpSkin:"SliderThumb_upSkin", thumbOverSkin:"SliderThumb_overSkin", thumbDownSkin:"SliderThumb_downSkin", thumbDisabledSkin:"SliderThumb_disabledSkin", sliderTrackSkin:"SliderTrack_skin", sliderTrackDisabledSkin:"SliderTrack_disabledSkin", tickSkin:"SliderTick_skin", focusRectSkin:null, focusRectPadding:null}; public function Slider(){ _direction = SliderDirection.HORIZONTAL; _minimum = 0; _maximum = 10; _value = 0; _tickInterval = 0; _snapInterval = 0; _liveDragging = false; super(); setStyles(); } public function get minimum():Number{ return (_minimum); } public function set minimum(_arg1:Number):void{ _minimum = _arg1; this.value = Math.max(_arg1, this.value); invalidate(InvalidationType.DATA); } public function get maximum():Number{ return (_maximum); } protected function positionThumb():void{ thumb.x = ((((_direction)==SliderDirection.VERTICAL) ? ((maximum - minimum) - value) : (value - minimum) / (maximum - minimum)) * _width); } protected function clearTicks():void{ if (((!(tickContainer)) || (!(tickContainer.parent)))){ return; }; removeChild(tickContainer); } protected function onTrackClick(_arg1:MouseEvent):void{ calculateValue(track.mouseX, InteractionInputType.MOUSE, SliderEventClickTarget.TRACK); if (!liveDragging){ dispatchEvent(new SliderEvent(SliderEvent.CHANGE, value, SliderEventClickTarget.TRACK, InteractionInputType.MOUSE)); }; } public function set maximum(_arg1:Number):void{ _maximum = _arg1; this.value = Math.min(_arg1, this.value); invalidate(InvalidationType.DATA); } public function get liveDragging():Boolean{ return (_liveDragging); } protected function doDrag(_arg1:MouseEvent):void{ var _local2:Number; var _local3:Number; _local2 = (_width / snapInterval); _local3 = track.mouseX; calculateValue(_local3, InteractionInputType.MOUSE, SliderEventClickTarget.THUMB); dispatchEvent(new SliderEvent(SliderEvent.THUMB_DRAG, value, SliderEventClickTarget.THUMB, InteractionInputType.MOUSE)); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:uint; var _local3:Number; var _local4:Boolean; if (!enabled){ return; }; _local2 = ((snapInterval)>0) ? snapInterval : 1; _local4 = (direction == SliderDirection.HORIZONTAL); if ((((((_arg1.keyCode == Keyboard.DOWN)) && (!(_local4)))) || ((((_arg1.keyCode == Keyboard.LEFT)) && (_local4))))){ _local3 = (value - _local2); } else { if ((((((_arg1.keyCode == Keyboard.UP)) && (!(_local4)))) || ((((_arg1.keyCode == Keyboard.RIGHT)) && (_local4))))){ _local3 = (value + _local2); } else { if ((((((_arg1.keyCode == Keyboard.PAGE_DOWN)) && (!(_local4)))) || ((((_arg1.keyCode == Keyboard.HOME)) && (_local4))))){ _local3 = minimum; } else { if ((((((_arg1.keyCode == Keyboard.PAGE_UP)) && (!(_local4)))) || ((((_arg1.keyCode == Keyboard.END)) && (_local4))))){ _local3 = maximum; }; }; }; }; if (!isNaN(_local3)){ _arg1.stopPropagation(); doSetValue(_local3, InteractionInputType.KEYBOARD, null, _arg1.keyCode); }; } override public function set enabled(_arg1:Boolean):void{ if (enabled == _arg1){ return; }; super.enabled = _arg1; track.enabled = (thumb.enabled = _arg1); } protected function thumbPressHandler(_arg1:MouseEvent):void{ stage.addEventListener(MouseEvent.MOUSE_MOVE, doDrag, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler, false, 0, true); dispatchEvent(new SliderEvent(SliderEvent.THUMB_PRESS, value, InteractionInputType.MOUSE, SliderEventClickTarget.THUMB)); } public function get snapInterval():Number{ return (_snapInterval); } protected function thumbReleaseHandler(_arg1:MouseEvent):void{ stage.removeEventListener(MouseEvent.MOUSE_MOVE, doDrag); stage.removeEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler); dispatchEvent(new SliderEvent(SliderEvent.THUMB_RELEASE, value, InteractionInputType.MOUSE, SliderEventClickTarget.THUMB)); dispatchEvent(new SliderEvent(SliderEvent.CHANGE, value, SliderEventClickTarget.THUMB, InteractionInputType.MOUSE)); } public function set liveDragging(_arg1:Boolean):void{ _liveDragging = _arg1; } public function set value(_arg1:Number):void{ doSetValue(_arg1); } public function set direction(_arg1:String):void{ var _local2:Boolean; _direction = _arg1; _local2 = (_direction == SliderDirection.VERTICAL); if (isLivePreview){ if (_local2){ setScaleY(-1); y = track.height; } else { setScaleY(1); y = 0; }; positionThumb(); return; }; if (((_local2) && (componentInspectorSetting))){ if ((rotation % 90) == 0){ setScaleY(-1); }; }; if (!componentInspectorSetting){ rotation = (_local2) ? 90 : 0; }; } public function set tickInterval(_arg1:Number):void{ _tickInterval = _arg1; invalidate(InvalidationType.SIZE); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES)){ setStyles(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ track.setSize(_width, track.height); track.drawNow(); thumb.drawNow(); }; if (tickInterval > 0){ drawTicks(); } else { clearTicks(); }; positionThumb(); super.draw(); } override protected function configUI():void{ super.configUI(); thumb = new BaseButton(); thumb.setSize(13, 13); thumb.autoRepeat = false; addChild(thumb); thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumbPressHandler, false, 0, true); track = new BaseButton(); track.move(0, 0); track.setSize(80, 4); track.autoRepeat = false; track.useHandCursor = false; track.addEventListener(MouseEvent.CLICK, onTrackClick, false, 0, true); addChildAt(track, 0); } public function set snapInterval(_arg1:Number):void{ _snapInterval = _arg1; } public function get value():Number{ return (_value); } public function get direction():String{ return (_direction); } public function get tickInterval():Number{ return (_tickInterval); } override public function setSize(_arg1:Number, _arg2:Number):void{ if ((((_direction == SliderDirection.VERTICAL)) && (!(isLivePreview)))){ super.setSize(_arg2, _arg1); } else { super.setSize(_arg1, _arg2); }; invalidate(InvalidationType.SIZE); } protected function drawTicks():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:uint; var _local5:DisplayObject; clearTicks(); tickContainer = new Sprite(); _local1 = ((maximum)<1) ? (tickInterval / 100) : tickInterval; _local2 = ((maximum - minimum) / _local1); _local3 = (_width / _local2); _local4 = 0; while (_local4 <= _local2) { _local5 = getDisplayObjectInstance(getStyleValue("tickSkin")); _local5.x = (_local3 * _local4); _local5.y = ((track.y - _local5.height) - 2); tickContainer.addChild(_local5); _local4++; }; addChild(tickContainer); } protected function calculateValue(_arg1:Number, _arg2:String, _arg3:String, _arg4:int=undefined):void{ var _local5:Number; _local5 = ((_arg1 / _width) * (maximum - minimum)); if (_direction == SliderDirection.VERTICAL){ _local5 = (maximum - _local5); } else { _local5 = (minimum + _local5); }; doSetValue(_local5, _arg2, _arg3, _arg4); } protected function getPrecision(_arg1:Number):Number{ var _local2:String; _local2 = _arg1.toString(); if (_local2.indexOf(".") == -1){ return (0); }; return (_local2.split(".").pop().length); } protected function doSetValue(_arg1:Number, _arg2:String=null, _arg3:String=null, _arg4:int=undefined):void{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; _local5 = _value; if (((!((_snapInterval == 0))) && (!((_snapInterval == 1))))){ _local6 = Math.pow(10, getPrecision(snapInterval)); _local7 = (_snapInterval * _local6); _local8 = Math.round((_arg1 * _local6)); _local9 = (Math.round((_local8 / _local7)) * _local7); _arg1 = (_local9 / _local6); _value = Math.max(minimum, Math.min(maximum, _arg1)); } else { _value = Math.max(minimum, Math.min(maximum, Math.round(_arg1))); }; if (((!((_local5 == _value))) && (((((liveDragging) && (!((_arg3 == null))))) || ((_arg2 == InteractionInputType.KEYBOARD)))))){ dispatchEvent(new SliderEvent(SliderEvent.CHANGE, value, _arg3, _arg2, _arg4)); }; positionThumb(); } protected function setStyles():void{ copyStylesToChild(thumb, THUMB_STYLES); copyStylesToChild(track, TRACK_STYLES); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 141
//SliderDirection (fl.controls.SliderDirection) package fl.controls { public class SliderDirection { public static var HORIZONTAL:String = "horizontal"; public static var VERTICAL:String = "vertical"; } }//package fl.controls
Section 142
//ComponentShim (fl.core.ComponentShim) package fl.core { import flash.display.*; public dynamic class ComponentShim extends MovieClip { } }//package fl.core
Section 143
//InvalidationType (fl.core.InvalidationType) package fl.core { public class InvalidationType { public static const SIZE:String = "size"; public static const ALL:String = "all"; public static const DATA:String = "data"; public static const SCROLL:String = "scroll"; public static const STATE:String = "state"; public static const STYLES:String = "styles"; public static const SELECTED:String = "selected"; public static const RENDERER_STYLES:String = "rendererStyles"; } }//package fl.core
Section 144
//UIComponent (fl.core.UIComponent) package fl.core { import flash.events.*; import flash.display.*; import flash.utils.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.system.*; public class UIComponent extends Sprite { protected var _enabled:Boolean;// = true private var _mouseFocusEnabled:Boolean;// = true protected var startHeight:Number; protected var _height:Number; protected var _oldIMEMode:String;// = null protected var startWidth:Number; public var focusTarget:IFocusManagerComponent; protected var errorCaught:Boolean;// = false protected var uiFocusRect:DisplayObject; protected var _width:Number; public var version:String;// = "3.0.0.15" protected var isFocused:Boolean;// = false protected var callLaterMethods:Dictionary; private var _focusEnabled:Boolean;// = true private var tempText:TextField; protected var invalidateFlag:Boolean;// = false protected var _inspector:Boolean;// = false protected var sharedStyles:Object; protected var invalidHash:Object; protected var isLivePreview:Boolean;// = false protected var _imeMode:String;// = null protected var instanceStyles:Object; protected var _x:Number; protected var _y:Number; public static var inCallLaterPhase:Boolean = false; private static var defaultStyles:Object = {focusRectSkin:"focusRectSkin", focusRectPadding:2, textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), disabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultTextFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultDisabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0)}; public static var createAccessibilityImplementation:Function; private static var focusManagers:Dictionary = new Dictionary(false); public function UIComponent(){ version = "3.0.0.15"; isLivePreview = false; invalidateFlag = false; _enabled = true; isFocused = false; _focusEnabled = true; _mouseFocusEnabled = true; _imeMode = null; _oldIMEMode = null; errorCaught = false; _inspector = false; super(); instanceStyles = {}; sharedStyles = {}; invalidHash = {}; callLaterMethods = new Dictionary(); StyleManager.registerInstance(this); configUI(); invalidate(InvalidationType.ALL); tabEnabled = (this is IFocusManagerComponent); focusRect = false; if (tabEnabled){ addEventListener(FocusEvent.FOCUS_IN, focusInHandler); addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler); addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); }; initializeFocusManager(); addEventListener(Event.ENTER_FRAME, hookAccessibility, false, 0, true); } public function drawFocus(_arg1:Boolean):void{ var _local2:Number; isFocused = _arg1; if (((!((uiFocusRect == null))) && (contains(uiFocusRect)))){ removeChild(uiFocusRect); uiFocusRect = null; }; if (_arg1){ uiFocusRect = (getDisplayObjectInstance(getStyleValue("focusRectSkin")) as Sprite); if (uiFocusRect == null){ return; }; _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.x = -(_local2); uiFocusRect.y = -(_local2); uiFocusRect.width = (width + (_local2 * 2)); uiFocusRect.height = (height + (_local2 * 2)); addChildAt(uiFocusRect, 0); }; } private function callLaterDispatcher(_arg1:Event):void{ var _local2:Dictionary; var _local3:Object; if (_arg1.type == Event.ADDED_TO_STAGE){ removeEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher); stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); return; }; _arg1.target.removeEventListener(Event.RENDER, callLaterDispatcher); if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); return; }; inCallLaterPhase = true; _local2 = callLaterMethods; for (_local3 in _local2) { _local3(); delete _local2[_local3]; }; inCallLaterPhase = false; } private function addedHandler(_arg1:Event):void{ removeEventListener("addedToStage", addedHandler); initializeFocusManager(); } protected function getStyleValue(_arg1:String):Object{ return (((instanceStyles[_arg1])==null) ? sharedStyles[_arg1] : instanceStyles[_arg1]); } protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((_arg1 == this)); } override public function get scaleX():Number{ return ((width / startWidth)); } override public function get scaleY():Number{ return ((height / startHeight)); } override public function set height(_arg1:Number):void{ if (_height == _arg1){ return; }; setSize(width, _arg1); } protected function keyDownHandler(_arg1:KeyboardEvent):void{ } protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (isOurFocus((_arg1.target as DisplayObject))){ _local2 = focusManager; if (((_local2) && (_local2.showFocusIndicator))){ drawFocus(true); isFocused = true; }; }; } public function setStyle(_arg1:String, _arg2:Object):void{ if ((((instanceStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; instanceStyles[_arg1] = _arg2; invalidate(InvalidationType.STYLES); } override public function get visible():Boolean{ return (super.visible); } public function get componentInspectorSetting():Boolean{ return (_inspector); } override public function get x():Number{ return ((isNaN(_x)) ? super.x : _x); } override public function get y():Number{ return ((isNaN(_y)) ? super.y : _y); } protected function setIMEMode(_arg1:Boolean){ var enabled = _arg1; if (_imeMode != null){ if (enabled){ IME.enabled = true; _oldIMEMode = IME.conversionMode; try { if (((!(errorCaught)) && (!((IME.conversionMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _imeMode; }; errorCaught = false; } catch(e:Error) { errorCaught = true; throw (new Error(("IME mode not supported: " + _imeMode))); }; } else { if (((!((IME.conversionMode == IMEConversionMode.UNKNOWN))) && (!((_oldIMEMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _oldIMEMode; }; IME.enabled = false; }; }; } public function set enabled(_arg1:Boolean):void{ if (_arg1 == _enabled){ return; }; _enabled = _arg1; invalidate(InvalidationType.STATE); } public function setSharedStyle(_arg1:String, _arg2:Object):void{ if ((((sharedStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; sharedStyles[_arg1] = _arg2; if (instanceStyles[_arg1] == null){ invalidate(InvalidationType.STYLES); }; } protected function keyUpHandler(_arg1:KeyboardEvent):void{ } public function set focusEnabled(_arg1:Boolean):void{ _focusEnabled = _arg1; } override public function set scaleX(_arg1:Number):void{ setSize((startWidth * _arg1), height); } public function get mouseFocusEnabled():Boolean{ return (_mouseFocusEnabled); } override public function set scaleY(_arg1:Number):void{ setSize(width, (startHeight * _arg1)); } protected function getDisplayObjectInstance(_arg1:Object):DisplayObject{ var classDef:Object; var skin = _arg1; classDef = null; if ((skin is Class)){ return ((new (skin) as DisplayObject)); }; if ((skin is DisplayObject)){ (skin as DisplayObject).x = 0; (skin as DisplayObject).y = 0; return ((skin as DisplayObject)); }; try { classDef = getDefinitionByName(skin.toString()); } catch(e:Error) { try { classDef = (loaderInfo.applicationDomain.getDefinition(skin.toString()) as Object); } catch(e:Error) { }; }; if (classDef == null){ return (null); }; return ((new (classDef) as DisplayObject)); } protected function copyStylesToChild(_arg1:UIComponent, _arg2:Object):void{ var _local3:String; for (_local3 in _arg2) { _arg1.setStyle(_local3, getStyleValue(_arg2[_local3])); }; } protected function beforeComponentParameters():void{ } protected function callLater(_arg1:Function):void{ if (inCallLaterPhase){ return; }; callLaterMethods[_arg1] = true; if (stage != null){ stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); } else { addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); }; } protected function createFocusManager():void{ if (focusManagers[stage] == null){ focusManagers[stage] = new FocusManager(stage); }; } override public function set visible(_arg1:Boolean):void{ var _local2:String; if (super.visible == _arg1){ return; }; super.visible = _arg1; _local2 = (_arg1) ? ComponentEvent.SHOW : ComponentEvent.HIDE; dispatchEvent(new ComponentEvent(_local2, true)); } protected function hookAccessibility(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, hookAccessibility); initializeAccessibility(); } public function set componentInspectorSetting(_arg1:Boolean):void{ _inspector = _arg1; if (_inspector){ beforeComponentParameters(); } else { afterComponentParameters(); }; } override public function set x(_arg1:Number):void{ move(_arg1, _y); } public function drawNow():void{ draw(); } override public function set y(_arg1:Number):void{ move(_x, _arg1); } protected function checkLivePreview():Boolean{ var className:String; if (parent == null){ return (false); }; try { className = getQualifiedClassName(parent); } catch(e:Error) { }; return ((className == "fl.livepreview::LivePreviewParent")); } protected function focusOutHandler(_arg1:FocusEvent):void{ if (isOurFocus((_arg1.target as DisplayObject))){ drawFocus(false); isFocused = false; }; } public function set mouseFocusEnabled(_arg1:Boolean):void{ _mouseFocusEnabled = _arg1; } public function getFocus():InteractiveObject{ if (stage){ return (stage.focus); }; return (null); } protected function validate():void{ invalidHash = {}; } override public function get height():Number{ return (_height); } public function invalidate(_arg1:String="all", _arg2:Boolean=true):void{ invalidHash[_arg1] = true; if (_arg2){ this.callLater(draw); }; } public function get enabled():Boolean{ return (_enabled); } protected function getScaleX():Number{ return (super.scaleX); } protected function getScaleY():Number{ return (super.scaleY); } public function get focusEnabled():Boolean{ return (_focusEnabled); } protected function afterComponentParameters():void{ } protected function draw():void{ if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } protected function configUI():void{ var _local1:Number; var _local2:Number; var _local3:Number; isLivePreview = checkLivePreview(); _local1 = rotation; rotation = 0; _local2 = super.width; _local3 = super.height; var _local4 = 1; super.scaleY = _local4; super.scaleX = _local4; setSize(_local2, _local3); move(super.x, super.y); rotation = _local1; startWidth = _local2; startHeight = _local3; if (numChildren > 0){ removeChildAt(0); }; } protected function setScaleX(_arg1:Number):void{ super.scaleX = _arg1; } protected function setScaleY(_arg1:Number):void{ super.scaleY = _arg1; } private function initializeFocusManager():void{ if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, addedHandler, false, 0, true); } else { createFocusManager(); }; } public function set focusManager(_arg1:IFocusManager):void{ UIComponent.focusManagers[this] = _arg1; } public function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } protected function isInvalid(_arg1:String, ... _args):Boolean{ if (((invalidHash[_arg1]) || (invalidHash[InvalidationType.ALL]))){ return (true); }; while (_args.length > 0) { if (invalidHash[_args.pop()]){ return (true); }; }; return (false); } public function setSize(_arg1:Number, _arg2:Number):void{ _width = _arg1; _height = _arg2; invalidate(InvalidationType.SIZE); dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, false)); } override public function set width(_arg1:Number):void{ if (_width == _arg1){ return; }; setSize(_arg1, height); } public function setFocus():void{ if (stage){ stage.focus = this; }; } protected function initializeAccessibility():void{ if (UIComponent.createAccessibilityImplementation != null){ UIComponent.createAccessibilityImplementation(this); }; } public function get focusManager():IFocusManager{ var _local1:DisplayObject; _local1 = this; while (_local1) { if (UIComponent.focusManagers[_local1] != null){ return (IFocusManager(UIComponent.focusManagers[_local1])); }; _local1 = _local1.parent; }; return (null); } override public function get width():Number{ return (_width); } public function move(_arg1:Number, _arg2:Number):void{ _x = _arg1; _y = _arg2; super.x = Math.round(_arg1); super.y = Math.round(_arg2); dispatchEvent(new ComponentEvent(ComponentEvent.MOVE)); } public function validateNow():void{ invalidate(InvalidationType.ALL, false); draw(); } public function getStyle(_arg1:String):Object{ return (instanceStyles[_arg1]); } public static function getStyleDefinition():Object{ return (defaultStyles); } public static function mergeStyles(... _args):Object{ var _local2:Object; var _local3:uint; var _local4:uint; var _local5:Object; var _local6:String; _local2 = {}; _local3 = _args.length; _local4 = 0; while (_local4 < _local3) { _local5 = _args[_local4]; for (_local6 in _local5) { if (_local2[_local6] != null){ } else { _local2[_local6] = _args[_local4][_local6]; }; }; _local4++; }; return (_local2); } } }//package fl.core
Section 145
//ComponentEvent (fl.events.ComponentEvent) package fl.events { import flash.events.*; public class ComponentEvent extends Event { public static const HIDE:String = "hide"; public static const BUTTON_DOWN:String = "buttonDown"; public static const MOVE:String = "move"; public static const RESIZE:String = "resize"; public static const ENTER:String = "enter"; public static const LABEL_CHANGE:String = "labelChange"; public static const SHOW:String = "show"; public function ComponentEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("ComponentEvent", "type", "bubbles", "cancelable")); } override public function clone():Event{ return (new ComponentEvent(type, bubbles, cancelable)); } } }//package fl.events
Section 146
//InteractionInputType (fl.events.InteractionInputType) package fl.events { public class InteractionInputType { public static const MOUSE:String = "mouse"; public static const KEYBOARD:String = "keyboard"; } }//package fl.events
Section 147
//SliderEvent (fl.events.SliderEvent) package fl.events { import flash.events.*; public class SliderEvent extends Event { protected var _triggerEvent:String; protected var _keyCode:Number; protected var _value:Number; protected var _clickTarget:String; public static const CHANGE:String = "change"; public static const THUMB_PRESS:String = "thumbPress"; public static const THUMB_DRAG:String = "thumbDrag"; public static const THUMB_RELEASE:String = "thumbRelease"; public function SliderEvent(_arg1:String, _arg2:Number, _arg3:String, _arg4:String, _arg5:int=0){ _value = _arg2; _keyCode = _arg5; _triggerEvent = _arg4; _clickTarget = _arg3; super(_arg1); } public function get clickTarget():String{ return (_clickTarget); } override public function clone():Event{ return (new SliderEvent(type, _value, _clickTarget, _triggerEvent, _keyCode)); } override public function toString():String{ return (formatToString("SliderEvent", "type", "value", "bubbles", "cancelable", "keyCode", "triggerEvent", "clickTarget")); } public function get triggerEvent():String{ return (_triggerEvent); } public function get value():Number{ return (_value); } public function get keyCode():Number{ return (_keyCode); } } }//package fl.events
Section 148
//SliderEventClickTarget (fl.events.SliderEventClickTarget) package fl.events { public class SliderEventClickTarget { public static const TRACK:String = "track"; public static const THUMB:String = "thumb"; } }//package fl.events
Section 149
//FocusManager (fl.managers.FocusManager) package fl.managers { import flash.events.*; import fl.controls.*; import flash.display.*; import fl.core.*; import flash.utils.*; import flash.text.*; import flash.ui.*; public class FocusManager implements IFocusManager { private var focusableObjects:Dictionary; private var _showFocusIndicator:Boolean;// = true private var defButton:Button; private var focusableCandidates:Array; private var _form:DisplayObjectContainer; private var _defaultButtonEnabled:Boolean;// = true private var activated:Boolean;// = false private var _defaultButton:Button; private var calculateCandidates:Boolean;// = true private var lastFocus:InteractiveObject; private var lastAction:String; public function FocusManager(_arg1:DisplayObjectContainer){ activated = false; calculateCandidates = true; _showFocusIndicator = true; _defaultButtonEnabled = true; super(); focusableObjects = new Dictionary(true); if (_arg1 != null){ _form = _arg1; addFocusables(DisplayObject(_arg1)); _arg1.addEventListener(Event.ADDED, addedHandler); _arg1.addEventListener(Event.REMOVED, removedHandler); activate(); }; } public function get showFocusIndicator():Boolean{ return (_showFocusIndicator); } private function getIndexOfNextObject(_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{ var _local5:int; var _local6:int; var _local7:DisplayObject; var _local8:IFocusManagerGroup; var _local9:int; var _local10:DisplayObject; var _local11:IFocusManagerGroup; _local5 = focusableCandidates.length; _local6 = _arg1; while (true) { if (_arg2){ _arg1--; } else { _arg1++; }; if (_arg3){ if (((_arg2) && ((_arg1 < 0)))){ break; }; if (((!(_arg2)) && ((_arg1 == _local5)))){ break; }; } else { _arg1 = ((_arg1 + _local5) % _local5); if (_local6 == _arg1){ break; }; }; if (isValidFocusCandidate(focusableCandidates[_arg1], _arg4)){ _local7 = DisplayObject(findFocusManagerComponent(focusableCandidates[_arg1])); if ((_local7 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local7); _local9 = 0; while (_local9 < focusableCandidates.length) { _local10 = focusableCandidates[_local9]; if ((_local10 is IFocusManagerGroup)){ _local11 = IFocusManagerGroup(_local10); if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){ _arg1 = _local9; break; }; }; _local9++; }; }; return (_arg1); }; }; return (_arg1); } public function set form(_arg1:DisplayObjectContainer):void{ _form = _arg1; } private function addFocusables(_arg1:DisplayObject, _arg2:Boolean=false):void{ var focusable:IFocusManagerComponent; var io:InteractiveObject; var doc:DisplayObjectContainer; var i:int; var child:DisplayObject; var o = _arg1; var skipTopLevel = _arg2; if (!skipTopLevel){ if ((o is IFocusManagerComponent)){ focusable = IFocusManagerComponent(o); if (focusable.focusEnabled){ if (((focusable.tabEnabled) && (isTabVisible(o)))){ focusableObjects[o] = true; calculateCandidates = true; }; o.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); o.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; } else { if ((o is InteractiveObject)){ io = (o as InteractiveObject); if (((((io) && (io.tabEnabled))) && ((findFocusManagerComponent(io) == io)))){ focusableObjects[io] = true; calculateCandidates = true; }; io.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); io.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; }; }; if ((o is DisplayObjectContainer)){ doc = DisplayObjectContainer(o); o.addEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){ i = 0; while (i < doc.numChildren) { try { child = doc.getChildAt(i); if (child != null){ addFocusables(doc.getChildAt(i)); }; } catch(error:SecurityError) { }; i = (i + 1); }; }; }; } private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{ return (_arg1.getChildIndex(_arg2)); } private function mouseFocusChangeHandler(_arg1:FocusEvent):void{ if ((_arg1.relatedObject is TextField)){ return; }; _arg1.preventDefault(); } private function focusOutHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject; _local2 = (_arg1.target as InteractiveObject); } private function isValidFocusCandidate(_arg1:DisplayObject, _arg2:String):Boolean{ var _local3:IFocusManagerGroup; if (!isEnabledAndVisible(_arg1)){ return (false); }; if ((_arg1 is IFocusManagerGroup)){ _local3 = IFocusManagerGroup(_arg1); if (_arg2 == _local3.groupName){ return (false); }; }; return (true); } public function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject{ var _local2:InteractiveObject; _local2 = _arg1; while (_arg1) { if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){ return (_arg1); }; _arg1 = _arg1.parent; }; return (_local2); } private function sortFocusableObjectsTabIndex():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){ focusableCandidates.push(_local2); }; }; focusableCandidates.sort(sortByTabIndex); } private function removeFocusables(_arg1:DisplayObject):void{ var _local2:Object; var _local3:DisplayObject; if ((_arg1 is DisplayObjectContainer)){ _arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); _arg1.removeEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); for (_local2 in focusableObjects) { _local3 = DisplayObject(_local2); if (DisplayObjectContainer(_arg1).contains(_local3)){ if (_local3 == lastFocus){ lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local2]; calculateCandidates = true; }; }; }; } private function addedHandler(_arg1:Event):void{ var _local2:DisplayObject; _local2 = DisplayObject(_arg1.target); if (_local2.stage){ addFocusables(DisplayObject(_arg1.target)); }; } private function getTopLevelFocusTarget(_arg1:InteractiveObject):InteractiveObject{ while (_arg1 != InteractiveObject(form)) { if ((((((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))) && (IFocusManagerComponent(_arg1).mouseFocusEnabled))) && (UIComponent(_arg1).enabled))){ return (_arg1); }; _arg1 = _arg1.parent; if (_arg1 == null){ break; }; }; return (null); } private function tabChildrenChangeHandler(_arg1:Event):void{ var _local2:DisplayObjectContainer; if (_arg1.target != _arg1.currentTarget){ return; }; calculateCandidates = true; _local2 = DisplayObjectContainer(_arg1.target); if (_local2.tabChildren){ addFocusables(_local2, true); } else { removeFocusables(_local2); }; } public function sendDefaultButtonEvent():void{ defButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); } public function getFocus():InteractiveObject{ var _local1:InteractiveObject; _local1 = form.stage.focus; return (findFocusManagerComponent(_local1)); } private function isEnabledAndVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer; var _local3:TextField; var _local4:SimpleButton; _local2 = DisplayObject(form).parent; while (_arg1 != _local2) { if ((_arg1 is UIComponent)){ if (!UIComponent(_arg1).enabled){ return (false); }; } else { if ((_arg1 is TextField)){ _local3 = TextField(_arg1); if ((((_local3.type == TextFieldType.DYNAMIC)) || (!(_local3.selectable)))){ return (false); }; } else { if ((_arg1 is SimpleButton)){ _local4 = SimpleButton(_arg1); if (!_local4.enabled){ return (false); }; }; }; }; if (!_arg1.visible){ return (false); }; _arg1 = _arg1.parent; }; return (true); } public function set defaultButton(_arg1:Button):void{ var _local2:Button; _local2 = (_arg1) ? Button(_arg1) : null; if (_local2 != _defaultButton){ if (_defaultButton){ _defaultButton.emphasized = false; }; if (defButton){ defButton.emphasized = false; }; _defaultButton = _local2; defButton = _local2; if (_local2){ _local2.emphasized = true; }; }; } private function deactivateHandler(_arg1:Event):void{ var _local2:InteractiveObject; _local2 = InteractiveObject(_arg1.target); } public function setFocus(_arg1:InteractiveObject):void{ if ((_arg1 is IFocusManagerComponent)){ IFocusManagerComponent(_arg1).setFocus(); } else { form.stage.focus = _arg1; }; } private function setFocusToNextObject(_arg1:FocusEvent):void{ var _local2:InteractiveObject; if (!hasFocusableObjects()){ return; }; _local2 = getNextFocusManagerComponent(_arg1.shiftKey); if (_local2){ setFocus(_local2); }; } private function hasFocusableObjects():Boolean{ var _local1:Object; for (_local1 in focusableObjects) { return (true); }; return (false); } private function tabIndexChangeHandler(_arg1:Event):void{ calculateCandidates = true; } private function sortFocusableObjects():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){ sortFocusableObjectsTabIndex(); return; }; focusableCandidates.push(_local2); }; focusableCandidates.sort(sortByDepth); } private function keyFocusChangeHandler(_arg1:FocusEvent):void{ showFocusIndicator = true; if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){ setFocusToNextObject(_arg1); _arg1.preventDefault(); }; } private function getIndexOfFocusedObject(_arg1:DisplayObject):int{ var _local2:int; var _local3:int; _local2 = focusableCandidates.length; _local3 = 0; _local3 = 0; while (_local3 < _local2) { if (focusableCandidates[_local3] == _arg1){ return (_local3); }; _local3++; }; return (-1); } public function hideFocus():void{ } private function removedHandler(_arg1:Event):void{ var _local2:int; var _local3:DisplayObject; var _local4:InteractiveObject; _local3 = DisplayObject(_arg1.target); if ((((_local3 is IFocusManagerComponent)) && ((focusableObjects[_local3] == true)))){ if (_local3 == lastFocus){ IFocusManagerComponent(lastFocus).drawFocus(false); lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local3]; calculateCandidates = true; } else { if ((((_local3 is InteractiveObject)) && ((focusableObjects[_local3] == true)))){ _local4 = (_local3 as InteractiveObject); if (_local4){ if (_local4 == lastFocus){ lastFocus = null; }; delete focusableObjects[_local4]; calculateCandidates = true; }; _local3.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); }; }; removeFocusables(_local3); } private function sortByDepth(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{ var _local3:String; var _local4:String; var _local5:int; var _local6:String; var _local7:String; var _local8:String; var _local9:DisplayObject; var _local10:DisplayObject; _local3 = ""; _local4 = ""; _local8 = "0000"; _local9 = DisplayObject(_arg1); _local10 = DisplayObject(_arg2); while (((!((_local9 == DisplayObject(form)))) && (_local9.parent))) { _local5 = getChildIndex(_local9.parent, _local9); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local3 = (_local7 + _local3); _local9 = _local9.parent; }; while (((!((_local10 == DisplayObject(form)))) && (_local10.parent))) { _local5 = getChildIndex(_local10.parent, _local10); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local4 = (_local7 + _local4); _local10 = _local10.parent; }; return (((_local3 > _local4)) ? 1 : ((_local3 < _local4)) ? -1 : 0); } public function get defaultButton():Button{ return (_defaultButton); } private function activateHandler(_arg1:Event):void{ var _local2:InteractiveObject; _local2 = InteractiveObject(_arg1.target); if (lastFocus){ if ((lastFocus is IFocusManagerComponent)){ IFocusManagerComponent(lastFocus).setFocus(); } else { form.stage.focus = lastFocus; }; }; lastAction = "ACTIVATE"; } public function showFocus():void{ } public function set defaultButtonEnabled(_arg1:Boolean):void{ _defaultButtonEnabled = _arg1; } public function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject{ var _local2:DisplayObject; var _local3:String; var _local4:int; var _local5:Boolean; var _local6:int; var _local7:int; var _local8:IFocusManagerGroup; if (!hasFocusableObjects()){ return (null); }; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; _local2 = form.stage.focus; _local2 = DisplayObject(findFocusManagerComponent(InteractiveObject(_local2))); _local3 = ""; if ((_local2 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local2); _local3 = _local8.groupName; }; _local4 = getIndexOfFocusedObject(_local2); _local5 = false; _local6 = _local4; if (_local4 == -1){ if (_arg1){ _local4 = focusableCandidates.length; }; _local5 = true; }; _local7 = getIndexOfNextObject(_local4, _arg1, _local5, _local3); return (findFocusManagerComponent(focusableCandidates[_local7])); } private function mouseDownHandler(_arg1:MouseEvent):void{ var _local2:InteractiveObject; if (_arg1.isDefaultPrevented()){ return; }; _local2 = getTopLevelFocusTarget(InteractiveObject(_arg1.target)); if (!_local2){ return; }; showFocusIndicator = false; if (((((!((_local2 == lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((_local2 is TextField))))){ setFocus(_local2); }; lastAction = "MOUSEDOWN"; } private function isTabVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer; _local2 = _arg1.parent; while (((((_local2) && (!((_local2 is Stage))))) && (!(((_local2.parent) && ((_local2.parent is Stage))))))) { if (!_local2.tabChildren){ return (false); }; _local2 = _local2.parent; }; return (true); } public function get nextTabIndex():int{ return (0); } private function keyDownHandler(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.TAB){ lastAction = "KEY"; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; }; if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){ sendDefaultButtonEvent(); }; } private function focusInHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject; var _local3:Button; _local2 = InteractiveObject(_arg1.target); if (form.contains(_local2)){ lastFocus = findFocusManagerComponent(InteractiveObject(_local2)); if ((lastFocus is Button)){ _local3 = Button(lastFocus); if (defButton){ defButton.emphasized = false; defButton = _local3; _local3.emphasized = true; }; } else { if (((defButton) && (!((defButton == _defaultButton))))){ defButton.emphasized = false; defButton = _defaultButton; _defaultButton.emphasized = true; }; }; }; } private function tabEnabledChangeHandler(_arg1:Event):void{ var _local2:InteractiveObject; var _local3:Boolean; calculateCandidates = true; _local2 = InteractiveObject(_arg1.target); _local3 = (focusableObjects[_local2] == true); if (_local2.tabEnabled){ if (((!(_local3)) && (isTabVisible(_local2)))){ if (!(_local2 is IFocusManagerComponent)){ _local2.focusRect = false; }; focusableObjects[_local2] = true; }; } else { if (_local3){ delete focusableObjects[_local2]; }; }; } public function set showFocusIndicator(_arg1:Boolean):void{ _showFocusIndicator = _arg1; } public function get form():DisplayObjectContainer{ return (_form); } private function sortByTabIndex(_arg1:InteractiveObject, _arg2:InteractiveObject):int{ return (((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : ((_arg1.tabIndex < _arg2.tabIndex)) ? -1 : sortByDepth(_arg1, _arg2)); } public function activate():void{ if (activated){ return; }; form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true); form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true); form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true); form.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true); form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = true; if (lastFocus){ setFocus(lastFocus); }; } public function deactivate():void{ form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler); form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler); form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.removeEventListener(Event.ACTIVATE, activateHandler); form.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler); form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = false; } public function get defaultButtonEnabled():Boolean{ return (_defaultButtonEnabled); } } }//package fl.managers
Section 150
//IFocusManager (fl.managers.IFocusManager) package fl.managers { import fl.controls.*; import flash.display.*; public interface IFocusManager { function getFocus():InteractiveObject; function deactivate():void; function set defaultButton(_arg1:Button):void; function set showFocusIndicator(_arg1:Boolean):void; function get defaultButtonEnabled():Boolean; function get nextTabIndex():int; function get defaultButton():Button; function get showFocusIndicator():Boolean; function setFocus(_arg1:InteractiveObject):void; function activate():void; function showFocus():void; function set defaultButtonEnabled(_arg1:Boolean):void; function hideFocus():void; function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject; function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject; } }//package fl.managers
Section 151
//IFocusManagerComponent (fl.managers.IFocusManagerComponent) package fl.managers { public interface IFocusManagerComponent { function set focusEnabled(_arg1:Boolean):void; function drawFocus(_arg1:Boolean):void; function setFocus():void; function get focusEnabled():Boolean; function get tabEnabled():Boolean; function get tabIndex():int; function get mouseFocusEnabled():Boolean; } }//package fl.managers
Section 152
//IFocusManagerGroup (fl.managers.IFocusManagerGroup) package fl.managers { public interface IFocusManagerGroup { function set groupName(_arg1:String):void; function set selected(_arg1:Boolean):void; function get groupName():String; function get selected():Boolean; } }//package fl.managers
Section 153
//StyleManager (fl.managers.StyleManager) package fl.managers { import fl.core.*; import flash.utils.*; import flash.text.*; public class StyleManager { private var globalStyles:Object; private var classToDefaultStylesDict:Dictionary; private var styleToClassesHash:Object; private var classToStylesDict:Dictionary; private var classToInstancesDict:Dictionary; private static var _instance:StyleManager; public function StyleManager(){ styleToClassesHash = {}; classToInstancesDict = new Dictionary(true); classToStylesDict = new Dictionary(true); classToDefaultStylesDict = new Dictionary(true); globalStyles = UIComponent.getStyleDefinition(); } public static function clearComponentStyle(_arg1:Object, _arg2:String):void{ var _local3:Class; var _local4:Object; _local3 = getClassDef(_arg1); _local4 = getInstance().classToStylesDict[_local3]; if (((!((_local4 == null))) && (!((_local4[_arg2] == null))))){ delete _local4[_arg2]; invalidateComponentStyle(_local3, _arg2); }; } private static function getClassDef(_arg1:Object):Class{ var component = _arg1; if ((component is Class)){ return ((component as Class)); }; try { return ((getDefinitionByName(getQualifiedClassName(component)) as Class)); } catch(e:Error) { if ((component is UIComponent)){ try { return ((component.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(component)) as Class)); } catch(e:Error) { }; }; }; return (null); } public static function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Class; var _local5:Object; _local4 = getClassDef(_arg1); _local5 = getInstance().classToStylesDict[_local4]; if (_local5 == null){ _local5 = (getInstance().classToStylesDict[_local4] = {}); }; if (_local5 == _arg3){ return; }; _local5[_arg2] = _arg3; invalidateComponentStyle(_local4, _arg2); } private static function setSharedStyles(_arg1:UIComponent):void{ var _local2:StyleManager; var _local3:Class; var _local4:Object; var _local5:String; _local2 = getInstance(); _local3 = getClassDef(_arg1); _local4 = _local2.classToDefaultStylesDict[_local3]; for (_local5 in _local4) { _arg1.setSharedStyle(_local5, getSharedStyle(_arg1, _local5)); }; } public static function getComponentStyle(_arg1:Object, _arg2:String):Object{ var _local3:Class; var _local4:Object; _local3 = getClassDef(_arg1); _local4 = getInstance().classToStylesDict[_local3]; return (((_local4)==null) ? null : _local4[_arg2]); } private static function getInstance(){ if (_instance == null){ _instance = new (StyleManager); }; return (_instance); } private static function invalidateComponentStyle(_arg1:Class, _arg2:String):void{ var _local3:Dictionary; var _local4:Object; var _local5:UIComponent; _local3 = getInstance().classToInstancesDict[_arg1]; if (_local3 == null){ return; }; for (_local4 in _local3) { _local5 = (_local4 as UIComponent); if (_local5 == null){ } else { _local5.setSharedStyle(_arg2, getSharedStyle(_local5, _arg2)); }; }; } private static function invalidateStyle(_arg1:String):void{ var _local2:Dictionary; var _local3:Object; _local2 = getInstance().styleToClassesHash[_arg1]; if (_local2 == null){ return; }; for (_local3 in _local2) { invalidateComponentStyle(Class(_local3), _arg1); }; } public static function registerInstance(_arg1:UIComponent):void{ var inst:StyleManager; var classDef:Class; var target:Class; var defaultStyles:Object; var styleToClasses:Object; var n:String; var instance = _arg1; inst = getInstance(); classDef = getClassDef(instance); if (classDef == null){ return; }; if (inst.classToInstancesDict[classDef] == null){ inst.classToInstancesDict[classDef] = new Dictionary(true); target = classDef; while (defaultStyles == null) { if (target["getStyleDefinition"] != null){ defaultStyles = target["getStyleDefinition"](); break; }; try { target = (instance.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(target)) as Class); } catch(err:Error) { try { target = (getDefinitionByName(getQualifiedSuperclassName(target)) as Class); } catch(e:Error) { defaultStyles = UIComponent.getStyleDefinition(); break; }; }; }; styleToClasses = inst.styleToClassesHash; for (n in defaultStyles) { if (styleToClasses[n] == null){ styleToClasses[n] = new Dictionary(true); }; styleToClasses[n][classDef] = true; }; inst.classToDefaultStylesDict[classDef] = defaultStyles; inst.classToStylesDict[classDef] = {}; }; inst.classToInstancesDict[classDef][instance] = true; setSharedStyles(instance); } public static function getStyle(_arg1:String):Object{ return (getInstance().globalStyles[_arg1]); } private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{ var _local3:Class; var _local4:StyleManager; var _local5:Object; _local3 = getClassDef(_arg1); _local4 = getInstance(); _local5 = _local4.classToStylesDict[_local3][_arg2]; if (_local5 != null){ return (_local5); }; _local5 = _local4.globalStyles[_arg2]; if (_local5 != null){ return (_local5); }; return (_local4.classToDefaultStylesDict[_local3][_arg2]); } public static function setStyle(_arg1:String, _arg2:Object):void{ var _local3:Object; _local3 = getInstance().globalStyles; if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; _local3[_arg1] = _arg2; invalidateStyle(_arg1); } } }//package fl.managers
Section 154
//Achievements (game.logic.Achievements) package game.logic { import core.sound.*; import flash.utils.*; import game.physics.goals.*; import core.*; import core.game.*; public class Achievements { private var _descs:Dictionary; private var _data:Object; private var _total_time_played:int;// = 0 private var _gems_earned:int;// = 0 private var _final_one_got:Boolean;// = false private var _bird_hit:int;// = 0 private var _dino_hit:int;// = 0 public static const JUMP_UP_3:String = "JUMP_UP_3"; public static const JUMP_UP_4:String = "JUMP_UP_4"; public static const JUMP_UP_5:String = "JUMP_UP_5"; public static const BIRD_FOWLING_COUNT:int = 10; public static const DINO_HUNTER_COUNT:int = 20; public static const WEALTHEST_MAN_COUNT:int = 2000; public static const WEALTHEST_MAN:String = "WEALTHEST_MAN"; public static const WORLDS_BEST_DISTANCE_COUNT:int = 15000; public static const MAN_CANNON_COUNT:Number = 110; public static const TRAVEL_DISTANCE_1_COUNT:int = 500; public static const BIRD_FOWLING:String = "BIRD_FOWLING"; public static const ADDICTION_COUNT:int = 7200; public static const TRAVEL_DISTANCE_5_COUNT:int = 5000; public static const MAN_CANNON:String = "MAN_CANNON"; public static const TRAVEL_DISTANCE_3_COUNT:int = 2000; public static const REACH_SPEED_4_COUNT:int = 250; public static const BETTER_THAN_BIRD_1_COUNT:int = 5; public static const TRAVEL_DISTANCE_1:String = "TRAVEL_DISTANCE_1"; public static const REACH_SPEED_1:String = "REACH_SPEED_1"; public static const TRAVEL_DISTANCE_3:String = "TRAVEL_DISTANCE_3"; public static const TRAVEL_DISTANCE_4:String = "TRAVEL_DISTANCE_4"; public static const TRAVEL_DISTANCE_5:String = "TRAVEL_DISTANCE_5"; public static const REACH_SPEED_5:String = "REACH_SPEED_5"; public static const BETTER_THAN_BIRD_3_COUNT:int = 25; public static const TRAVEL_DISTANCE_2:String = "TRAVEL_DISTANCE_2"; public static const REACH_SPEED_2:String = "REACH_SPEED_2"; public static const REACH_SPEED_3:String = "REACH_SPEED_3"; public static const REACH_SPEED_4:String = "REACH_SPEED_4"; public static const ASTRONAUT:String = "ASTRONAUT"; public static const BETTER_THAN_BIRD_1:String = "BETTER_THAN_BIRD_1"; public static const BETTER_THAN_BIRD_2:String = "BETTER_THAN_BIRD_2"; public static const BETTER_THAN_BIRD_3:String = "BETTER_THAN_BIRD_3"; public static const JUMP_UP_2_COUNT:int = 50; public static const WORLDS_BEST_DISTANCE:String = "WORLDS_BEST_DISTANCE"; public static const JUMP_UP_4_COUNT:int = 400; public static const REACH_SPEED_2_COUNT:int = 100; public static const DINO_HUNTER:String = "DINO_HUNTER"; public static const TRAVEL_DISTANCE_2_COUNT:int = 1000; public static const TRAVEL_DISTANCE_4_COUNT:int = 3000; public static const REACH_SPEED_1_COUNT:int = 75; public static const REACH_SPEED_3_COUNT:int = 200; public static const REACH_SPEED_5_COUNT:int = 300; public static const JUMP_UP_1_COUNT:int = 30; public static const ADDICTION:String = "ADDICTION"; public static const JUMP_UP_3_COUNT:int = 100; public static const JUMP_UP_5_COUNT:int = 1000; public static const ASTRONAUT_COUNT:int = 1; public static const BETTER_THAN_BIRD_2_COUNT:int = 15; public static const JUMP_UP_1:String = "JUMP_UP_1"; public static const JUMP_UP_2:String = "JUMP_UP_2"; public function Achievements(){ _data = new Object(); _total_time_played = 0; _bird_hit = 0; _dino_hit = 0; _gems_earned = 0; _descs = new Dictionary(); _final_one_got = false; super(); _descs[TRAVEL_DISTANCE_1] = (("Travel " + TRAVEL_DISTANCE_1_COUNT.toString()) + " metres Distance"); _descs[TRAVEL_DISTANCE_2] = (("Travel " + TRAVEL_DISTANCE_2_COUNT.toString()) + " metres Distance"); _descs[TRAVEL_DISTANCE_3] = (("Travel " + TRAVEL_DISTANCE_3_COUNT.toString()) + " metres Distance"); _descs[TRAVEL_DISTANCE_4] = (("Travel " + TRAVEL_DISTANCE_4_COUNT.toString()) + " metres Distance"); _descs[TRAVEL_DISTANCE_5] = (("Travel " + TRAVEL_DISTANCE_5_COUNT.toString()) + " metres Distance"); _descs[REACH_SPEED_1] = (("Reach " + REACH_SPEED_1_COUNT.toString()) + " mph Speed"); _descs[REACH_SPEED_2] = (("Reach " + REACH_SPEED_2_COUNT.toString()) + " mph Speed"); _descs[REACH_SPEED_3] = (("Reach " + REACH_SPEED_3_COUNT.toString()) + " mph Speed"); _descs[REACH_SPEED_4] = (("Reach " + REACH_SPEED_4_COUNT.toString()) + " mph Speed"); _descs[REACH_SPEED_5] = (("Reach " + REACH_SPEED_5_COUNT.toString()) + " mph Speed"); _descs[JUMP_UP_1] = (("Jump up to " + JUMP_UP_1_COUNT.toString()) + " metres"); _descs[JUMP_UP_2] = (("Jump up to " + JUMP_UP_2_COUNT.toString()) + " metres"); _descs[JUMP_UP_3] = (("Jump up to " + JUMP_UP_3_COUNT.toString()) + " metres"); _descs[JUMP_UP_4] = (("Jump up to " + JUMP_UP_4_COUNT.toString()) + " metres"); _descs[JUMP_UP_5] = (("Jump up to " + JUMP_UP_5_COUNT.toString()) + " metres"); _descs[ASTRONAUT] = "Reach the space in stone age!"; _descs[DINO_HUNTER] = (("Hit " + DINO_HUNTER_COUNT.toString()) + " dinos"); _descs[WEALTHEST_MAN] = (("Collect " + WEALTHEST_MAN_COUNT.toString()) + " gems in one go!"); _descs[BETTER_THAN_BIRD_1] = (("Fly for " + BETTER_THAN_BIRD_1_COUNT.toString()) + " seconds"); _descs[BETTER_THAN_BIRD_2] = (("Fly for " + BETTER_THAN_BIRD_2_COUNT.toString()) + " seconds"); _descs[BETTER_THAN_BIRD_3] = (("Fly for " + BETTER_THAN_BIRD_3_COUNT.toString()) + " seconds"); _descs[BIRD_FOWLING] = (("Hit " + BIRD_FOWLING_COUNT.toString()) + " birds"); _descs[MAN_CANNON] = (("Reach " + MAN_CANNON_COUNT.toString()) + " mph right after push"); _descs[ADDICTION] = "Play for 2 hours"; _descs[WORLDS_BEST_DISTANCE] = (("Travel " + WORLDS_BEST_DISTANCE_COUNT.toString()) + " metres in stone age!"); if (((GameSettings.isEmpty(Global.top.gameSettings.getCommon())) || (!(Global.top.gameSettings.getCommon().achievements)))){ clearAll(); } else { _data = Global.top.gameSettings.getCommon().achievements; _total_time_played = Global.top.gameSettings.getCommon().total_time_played; }; } public function currentHeight(_arg1:Number):void{ if (_arg1 >= JUMP_UP_1_COUNT){ earn(JUMP_UP_1); }; if (_arg1 >= JUMP_UP_2_COUNT){ earn(JUMP_UP_2); }; if (_arg1 >= JUMP_UP_3_COUNT){ earn(JUMP_UP_3); }; if (_arg1 >= JUMP_UP_4_COUNT){ earn(JUMP_UP_4); }; if (_arg1 >= JUMP_UP_5_COUNT){ earn(JUMP_UP_5); }; } public function get final_one_got():Boolean{ return (_final_one_got); } public function get total_time_played():int{ return (_total_time_played); } public function currentDistance(_arg1:Number):void{ if (_arg1 >= TRAVEL_DISTANCE_1_COUNT){ earn(TRAVEL_DISTANCE_1); }; if (_arg1 >= TRAVEL_DISTANCE_2_COUNT){ earn(TRAVEL_DISTANCE_2); }; if (_arg1 >= TRAVEL_DISTANCE_3_COUNT){ earn(TRAVEL_DISTANCE_3); }; if (_arg1 >= TRAVEL_DISTANCE_4_COUNT){ earn(TRAVEL_DISTANCE_4); }; if (_arg1 >= TRAVEL_DISTANCE_5_COUNT){ earn(TRAVEL_DISTANCE_5); }; if (_arg1 >= WORLDS_BEST_DISTANCE_COUNT){ earn(WORLDS_BEST_DISTANCE); _final_one_got = true; }; } public function initialShotSpeed(_arg1:Number):void{ if (_arg1 >= MAN_CANNON_COUNT){ earn(MAN_CANNON); }; } public function clearAll():void{ _data[TRAVEL_DISTANCE_1] = false; _data[TRAVEL_DISTANCE_2] = false; _data[TRAVEL_DISTANCE_3] = false; _data[TRAVEL_DISTANCE_4] = false; _data[TRAVEL_DISTANCE_5] = false; _data[REACH_SPEED_1] = false; _data[REACH_SPEED_2] = false; _data[REACH_SPEED_3] = false; _data[REACH_SPEED_4] = false; _data[REACH_SPEED_5] = false; _data[JUMP_UP_1] = false; _data[JUMP_UP_2] = false; _data[JUMP_UP_3] = false; _data[JUMP_UP_4] = false; _data[JUMP_UP_5] = false; _data[ASTRONAUT] = false; _data[DINO_HUNTER] = false; _data[WEALTHEST_MAN] = false; _data[BETTER_THAN_BIRD_1] = false; _data[BETTER_THAN_BIRD_2] = false; _data[BETTER_THAN_BIRD_3] = false; _data[BIRD_FOWLING] = false; _data[MAN_CANNON] = false; _data[ADDICTION] = false; _data[WORLDS_BEST_DISTANCE] = false; } public function birdHit():void{ _bird_hit++; if (_bird_hit >= BIRD_FOWLING_COUNT){ earn(BIRD_FOWLING); }; } public function gemsEarned(_arg1:int):void{ _gems_earned = (_gems_earned + _arg1); if (_gems_earned >= WEALTHEST_MAN_COUNT){ earn(WEALTHEST_MAN); }; } public function reset():void{ _bird_hit = 0; _dino_hit = 0; _gems_earned = 0; _final_one_got = false; } public function timeInAir(_arg1:int):void{ if (_arg1 >= BETTER_THAN_BIRD_1_COUNT){ earn(BETTER_THAN_BIRD_1); }; if (_arg1 >= BETTER_THAN_BIRD_2_COUNT){ earn(BETTER_THAN_BIRD_2); }; if (_arg1 >= BETTER_THAN_BIRD_3_COUNT){ earn(BETTER_THAN_BIRD_3); }; } public function timeSpent(_arg1:int):void{ _total_time_played = (_total_time_played + _arg1); (Global.top as Object).saveAll(); if (_total_time_played >= ADDICTION_COUNT){ earn(ADDICTION); }; } public function set total_time_played(_arg1:int):void{ _total_time_played = _arg1; } private function earn(_arg1:String):void{ if (false == _data[_arg1]){ _data[_arg1] = true; Music.playSingleSound(SOUND_achievement_earned); Global.tickManager.addTickListener(new AchievementsShowUpGoal(_arg1)); save(); }; } public function get data():Object{ return (_data); } public function dinoHit():void{ _dino_hit++; if (_dino_hit >= DINO_HUNTER_COUNT){ earn(DINO_HUNTER); }; } public function starsReached():void{ if (!_data[ASTRONAUT]){ earn(ASTRONAUT); }; } public function currentVelocity(_arg1:int):void{ if (_arg1 >= REACH_SPEED_1_COUNT){ earn(REACH_SPEED_1); }; if (_arg1 >= REACH_SPEED_2_COUNT){ earn(REACH_SPEED_2); }; if (_arg1 >= REACH_SPEED_3_COUNT){ earn(REACH_SPEED_3); }; if (_arg1 >= REACH_SPEED_4_COUNT){ earn(REACH_SPEED_4); }; if (_arg1 >= REACH_SPEED_5_COUNT){ earn(REACH_SPEED_5); }; } public function get description():Dictionary{ return (_descs); } private function save():void{ (Global.top as Object).saveAll(); } } }//package game.logic
Section 155
//Engine (game.logic.Engine) package game.logic { import game.ui.*; import AS.utils.*; import core.sound.*; import flash.events.*; import flash.display.*; import flash.utils.*; import game.physics.*; import game.physics.goals.*; import AS.goals.*; import core.*; import core.game.*; public class Engine { private var _achievements:Achievements;// = null private var _score:int;// = 0 private var _play_window_ui:PlayWindowUI;// = null private var _no_animals:Boolean;// = false private var _first_time:Boolean;// = true private var _game_finished:Boolean;// = false private var _level_map;// = null private var _stats:Statistics;// = null private var _start_time:int;// = 0 private var _music:Music;// = null private var _ui_holder:Sprite;// = null private var _last_level:int;// = 0 private var _food:Number;// = 0 private var _money:int;// = 0 private var _statistics:Statistic;// = null private var _game_events:GameEvents;// = null private var _paused:Boolean;// = false private var _vd_timer:Timer;// = null private var _game_board:GameBoard;// = null private var _eating_sound:Music;// = null public function Engine():void{ _game_events = null; _ui_holder = null; _level_map = null; _play_window_ui = null; _game_board = null; _score = 0; _paused = false; _vd_timer = null; _last_level = 0; _game_finished = false; _statistics = null; _achievements = null; _start_time = 0; _stats = null; _money = 0; _food = 0; _no_animals = false; _first_time = true; _eating_sound = null; _music = null; super(); Global.nameManager.add(this, Engine); if (GameSettings.isEmpty(Global.top.gameSettings.getCommon())){ Global.top.gameSettings.saveCommon({money:0, _first_time:true}); }; _money = Global.top.gameSettings.getCommon().money; _first_time = Global.top.gameSettings.getCommon().first_time; _achievements = new Achievements(); _no_animals = (((((Upgrades.upgrades[Upgrades.RODENT] == 0)) && ((Upgrades.upgrades[Upgrades.TURTLE] == 0)))) && ((Upgrades.upgrades[Upgrades.PTERODACTYL] == 0))); } public function set gameScore(_arg1:int):void{ _score = _arg1; } public function get gameFinished():Boolean{ return (_game_finished); } public function victory():void{ if (_game_finished){ return; }; _game_finished = true; firstTime = false; (Global.top as Object).saveAll(); victoryHandler(null); } public function clearAll():void{ if (!_game_events){ return; }; _game_events.unregister(); _game_events = null; _score = 0; FancyWorld.instance.stop(); Global.tickManager.destroyChildren(); destroyUI(); _eating_sound.stop(); _eating_sound = null; music.stop(); _music = null; General.destroyEverything(); FancyWorld.destroyWorld(); KeyboardActive.reset(); TruckGoal.reset(); PadGoal.reset(); WorldUpdateGoal.reset(); _statistics.destroy(); _statistics = null; _paused = false; _game_finished = false; } private function destroyUI():void{ _ui_holder.removeChild(_level_map); _level_map = null; _play_window_ui.destroy(); _ui_holder.removeChild(_play_window_ui); _play_window_ui = null; _ui_holder.removeChild(_game_board); _game_board.destroy(); _game_board = null; if (_stats){ _stats.destroy(); _ui_holder.removeChild(_stats); _stats = null; }; Global.top.uiHolder.removeChild(_ui_holder); _ui_holder = null; } public function get lastLevel():int{ return (_last_level); } public function get stats():Statistics{ return (_stats); } public function get gameBoard():GameBoard{ return (_game_board); } public function get achievements():Achievements{ return (_achievements); } public function get eatingSound():Music{ return (_eating_sound); } public function get statistics():Statistic{ return (_statistics); } private function constructUI(_arg1:int):void{ _ui_holder = new Sprite(); Global.top.uiHolder.addChild(_ui_holder); _level_map = LevelSelector.getLevel(_arg1); _ui_holder.addChild(_level_map); _game_board = new GameBoard(this); _ui_holder.addChild(_game_board); _game_board.create(); _play_window_ui = new PlayWindowUI(); _play_window_ui.initialize(this); _ui_holder.addChild(_play_window_ui); _stats = new Statistics(); _stats.setEngine(this); _ui_holder.addChild(_stats); _stats.final_victory.visible = false; _stats.visible = false; } public function get firstTime():Boolean{ return (_first_time); } public function get gameEvents():GameEvents{ return (_game_events); } public function get music():Music{ return (_music); } public function set money(_arg1:int):void{ _money = _arg1; } public function set food(_arg1:Number):void{ _food = _arg1; playWindowUI.food_txt.text = int(food).toString(); } public function loadLevel(_arg1:int):void{ clearAll(); (Global.top as WelcomeScreen).music.stop(); _no_animals = (((((Upgrades.upgrades[Upgrades.RODENT] == 0)) && ((Upgrades.upgrades[Upgrades.TURTLE] == 0)))) && ((Upgrades.upgrades[Upgrades.PTERODACTYL] == 0))); achievements.reset(); FancyWorld.instance.start(); Global.tickManager.paused = false; _statistics = new Statistic(); General.SetParameterInLevel(_arg1); _game_events = new GameEvents(this); constructUI(_arg1); _last_level = _arg1; playWindowUI.update(); food = Upgrades.checkFoodImprovement(); Global.tickManager.addTickListener(new VelocityUpdater()); Global.tickManager.addTickListener(new LevelStarter()); Global.tickManager.addTickListener(new AchievementChecker()); _start_time = getTimer(); playWindowUI.gold_txt.text = money.toString(); _eating_sound = new Music(); _eating_sound.setTrackType(SOUND_eating); if (_first_time){ playWindowUI.tut_space.visible = false; playWindowUI.tut_space.stop(); } else { if (Global.top.gameSettings.getCommon().show_space_tutorial){ playWindowUI.tut_arrows.visible = false; playWindowUI.tut_arrows.stop(); Global.top.gameSettings.saveCommon({show_space_tutorial:false}); } else { playWindowUI.clearTutorials(); }; }; _music = new Music(); music.setTrackType(SOUND_level_music); music.play(); _game_events.register(); } public function get levelMap(){ return (_level_map); } public function finalVictory():void{ } public function set firstTime(_arg1:Boolean):void{ _first_time = _arg1; } private function calcBonusGold():int{ var _local1:Number; _local1 = 1; if (achievements.data[Achievements.TRAVEL_DISTANCE_4]){ _local1 = 2; } else { if (achievements.data[Achievements.TRAVEL_DISTANCE_3]){ _local1 = 1.5; } else { if (achievements.data[Achievements.TRAVEL_DISTANCE_2]){ _local1 = 1.2; }; }; }; return (((GameBoard.truck.displacement.x / 10) * _local1)); } public function showUI():void{ _ui_holder.visible = (levelMap.visible = (playWindowUI.visible = true)); } public function hideUI():void{ _ui_holder.visible = (levelMap.visible = (playWindowUI.visible = false)); } public function get gamePaused():Boolean{ return (_paused); } public function get food():Number{ return (_food); } public function get playWindowUI():PlayWindowUI{ return (_play_window_ui); } public function get gameScore():int{ return (_score); } private function victoryHandler(_arg1:TimerEvent):void{ var _local2:int; if (_vd_timer){ _vd_timer.stop(); _vd_timer.removeEventListener(TimerEvent.TIMER, victoryHandler); _vd_timer = null; }; _game_finished = true; if (!_paused){ pause(); }; _local2 = ((getTimer() - _start_time) / 1000); achievements.timeSpent(_local2); General.PRIZE.GetingBonusGold(calcBonusGold()); _stats.duration = (getTimer() - _start_time); _stats.distance = GameBoard.truck.displacement.x; _stats.visible = true; _stats.start(); } public function get money():int{ return (_money); } public function addScore(_arg1:int):void{ _score = (_score + _arg1); } public function pause():void{ if (!_paused){ playWindowUI.pause_mc.visible = true; playWindowUI.pause_mc.gotoAndPlay("pause"); Global.tickManager.paused = true; music.stop(); _game_events.unregister(); } else { playWindowUI.pause_mc.stop(); playWindowUI.pause_mc.visible = false; music.play(); Global.tickManager.paused = false; _game_events.register(); }; _paused = !(_paused); } public function get noAnimals():Boolean{ return (_no_animals); } } }//package game.logic
Section 156
//GameBoard (game.logic.GameBoard) package game.logic { import game.ui.*; import AS.utils.*; import flash.display.*; import Box2D.Collision.Shapes.*; import game.physics.goals.*; import game.physics.common.*; import core.common.*; import AS.goals.*; import game.*; import game.physics.creators.*; import core.*; public class GameBoard extends Sprite { private var _monkey_class_map:ClassMap;// = null private var _water_goals:ObjectList; public static var _engine:Engine = null; public static var padLaunch:PadGoal = null; public static var frontWheel:WheelGoal = null; public static var backWheel:WheelGoal = null; public static var truck:TruckGoal = null; public function GameBoard(_arg1:Engine):void{ _monkey_class_map = null; _water_goals = new ObjectList(); super(); _engine = _arg1; _monkey_class_map = new ClassMap([["game.physics.monkeys.PolygonMonkeySprite", new PolygonCreator()], ["game.physics.monkeys.CircleMonkeySprite", new CircleCreator()], ["game.physics.monkeys.RectangleMonkeySprite", new RectangleCreator()]]); Global.nameManager.add(this, GameBoard); } public function create():void{ initializeMonkeyObjects(); initializeTruck(); Global.tickManager.addTickListener(new GroundGoal()); Global.tickManager.addTickListener(new ObjectGoal(_engine.levelMap)); } private function initializeMonkeyObjects():void{ var _local1:Sprite; var _local2:int; var _local3:*; _local1 = (_engine.levelMap as Sprite); _local2 = 0; while (_local2 < _local1.numChildren) { _local3 = _local1.getChildAt(_local2); initializeMonkeyObject(_local3); _local2++; }; } private function initializeMonkeyObject(_arg1):void{ var _local2:AbstractCreator; var _local3:ActorGoal; var _local4:CompoundBody; var _local5:int; _local2 = _monkey_class_map.find(_arg1); _local3 = null; _local4 = null; if (_local2 != null){ if ((((_local2 is PolygonCreator)) || ((_local2 is CircleCreator)))){ if ((_arg1 is hero)){ _local4 = _local2.createCompoundBody(_arg1, 1, 0, 0.95); truck = new TruckGoal(_local4.body, _arg1); Global.tickManager.addTickListener(truck); } else { if ((_arg1 is wheel_stone)){ _local4 = _local2.createCompoundBody(_arg1, 0.1, 0, 1); if (_arg1.name == "rd"){ frontWheel = new WheelGoal(_local4.body, _arg1); Global.tickManager.addTickListener(frontWheel); } else { backWheel = new WheelGoal(_local4.body, _arg1); Global.tickManager.addTickListener(backWheel); }; } else { if ((_arg1 is pad)){ _local4 = _local2.createCompoundBody(_arg1, 0); padLaunch = new PadGoal(_local4.body, _arg1); Global.tickManager.addTickListener(padLaunch); _local5 = Upgrades.upgrades[Upgrades.LAUNCHING_PAD]; (padLaunch.decor as pad).launching_pad.gotoAndStop(int((_local5 + 1))); } else { _local4 = _local2.createCompoundBody(_arg1, 0, 0.2, 0.45); _local3 = new ActorGoal(_local4.body, _arg1); Global.tickManager.addTickListener(_local3); }; }; }; } else { _local3 = _local2.createActorGoal(_arg1); Global.tickManager.addTickListener(_local3); }; }; } public function initializeTruck():void{ truck.attach(frontWheel, frontWheel.body.GetWorldCenter()); truck.attach(backWheel, backWheel.body.GetWorldCenter()); backWheel.attach(padLaunch, backWheel.body.GetWorldCenter()); } public function get waterGoals():ObjectList{ return (_water_goals); } public function destroy():void{ truck = null; frontWheel = null; backWheel = null; padLaunch = null; } } }//package game.logic
Section 157
//GameEvents (game.logic.GameEvents) package game.logic { import AS.utils.*; import core.sound.*; import flash.events.*; import Box2D.Common.Math.*; import AS.goals.*; import game.*; import core.*; import flash.ui.*; public class GameEvents { private var engine:Engine;// = null public function GameEvents(_arg1:Engine):void{ engine = null; super(); engine = _arg1; } private function mouseDownHandler(_arg1:MouseEvent):void{ launchTheVehicle(); (GameBoard.padLaunch.decor as pad).pushing_thing.pushing_thing.play(); Global.mainStage.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); Global.mainStage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); Global.mainStage.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); } private function keyDownHandler(_arg1:KeyboardEvent):void{ if ((((_arg1.keyCode == Keyboard.ESCAPE)) || ((Keyboard.CONTROL == _arg1.keyCode)))){ engine.pause(); }; if (false == PadGoal.isJoined){ if (!KeyboardActive.ActivandoKeyboardActive(_arg1.keyCode)){ return; }; }; } public function register():void{ Global.mainStage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); Global.mainStage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); Global.mainStage.addEventListener(Event.DEACTIVATE, focusOutHandler); if (PadGoal.isJoined){ Global.mainStage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); Global.mainStage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); Global.mainStage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); }; } private function launchTheVehicle():void{ var _local1:b2Vec2; Music.playSingleSound(SOUND_push); GameBoard.backWheel.disattach(GameBoard.padLaunch); _local1 = new b2Vec2((General.INITIAL_IMPULSE * Math.cos(GameBoard.padLaunch.launchAngle)), (General.INITIAL_IMPULSE * Math.sin(GameBoard.padLaunch.launchAngle))); GameBoard.truck.body.ApplyImpulse(_local1, GameBoard.truck.body.GetWorldCenter()); engine.achievements.initialShotSpeed(GameBoard.truck.getVelocity()); PadGoal.isJoined = false; } private function keyUpHandler(_arg1:KeyboardEvent):void{ if (!KeyboardActive.DesactivandoKeyboardActive(_arg1.keyCode)){ return; }; if (_arg1.keyCode == Keyboard.ESCAPE){ engine.pause(); }; } private function mouseUpHandler(_arg1:MouseEvent):void{ } private function focusOutHandler(_arg1:Event):void{ } private function mouseMoveHandler(_arg1:MouseEvent):void{ var _local2:Number; var _local3:Number; var _local4:b2Vec2; var _local5:b2Vec2; _local2 = engine.levelMap.mouseX; _local3 = engine.levelMap.mouseY; _local4 = new b2Vec2((_local2 - engine.levelMap.rt.x), (_local3 - engine.levelMap.rt.y)); _local5 = new b2Vec2((engine.levelMap.rd.x - engine.levelMap.rt.x), (engine.levelMap.rd.y - engine.levelMap.rt.y)); if (((!((GameBoard.truck == null))) && (!((GameBoard.backWheel == null))))){ GameBoard.padLaunch.launchAngle = getAngle(_local5); GameBoard.padLaunch.angle = getAngle(_local4); (GameBoard.padLaunch.decor as pad).pushing_thing.rotation = GameBoard.truck.decor.rotation; }; } public function unregister():void{ Global.mainStage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); Global.mainStage.removeEventListener(KeyboardEvent.KEY_UP, keyUpHandler); Global.mainStage.removeEventListener(Event.DEACTIVATE, focusOutHandler); Global.mainStage.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); Global.mainStage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); Global.mainStage.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); } private function getAngle(_arg1:b2Vec2):Number{ var _local2:Number; if (_arg1.x < 0.0001){ _arg1.x = 0.0001; }; _local2 = Math.atan((-(_arg1.y) / _arg1.x)); if (_local2 < 0){ return (0); }; if (_local2 > (Math.PI / 3)){ return ((-(Math.PI) / 3)); }; return (-(_local2)); } } }//package game.logic
Section 158
//LevelSelector (game.logic.LevelSelector) package game.logic { import flash.display.*; import core.cache.*; import game.*; public class LevelSelector { public function LevelSelector():void{ } public static function levelCount():int{ return (1); } public static function getLevel(_arg1:int):Sprite{ var _local2:*; _local2 = null; switch (_arg1){ case 1: _local2 = new LevelMap1(); break; case 2: _local2 = new LevelMap2(); break; case 3: _local2 = new LevelMap3(); break; case 4: _local2 = new LevelMap4(); break; case 5: _local2 = new LevelMap5(); break; }; _local2.bg.bg11 = ClipCache.cacheInPlace(_local2.bg.bg11); _local2.bg.bg21 = ClipCache.cacheInPlace(_local2.bg.bg21); _local2.bg.bg31 = ClipCache.cacheInPlace(_local2.bg.bg31); _local2.bg.bg12 = ClipCache.cacheInPlace(_local2.bg.bg12); _local2.bg.bg22 = ClipCache.cacheInPlace(_local2.bg.bg22); _local2.bg.bg32 = ClipCache.cacheInPlace(_local2.bg.bg32); _local2.bg.road1 = ClipCache.cacheInPlace(_local2.bg.road1); _local2.bg.road2 = ClipCache.cacheInPlace(_local2.bg.road2); _local2.bg.blue_sky.cacheAsBitmap = true; return (_local2); } } }//package game.logic
Section 159
//Upgrades (game.logic.Upgrades) package game.logic { import Box2D.Common.Math.*; import core.*; import core.game.*; public class Upgrades { public static const ACCELERATION:String = "Acceleration"; public static const TURTLE:String = "Turtle"; public static const RODENT:String = "Rodent"; public static const BOUNCING_RATE:String = "Bouncing Rate"; public static const FOOD:String = "Food"; public static const LAUNCHING_PAD:String = "Launching Pad"; public static const OBSTACLE_RESISTANCE:String = "Obstacle Resistance"; public static const PTERODACTYL:String = "Pterodactyl"; private static var _costs:Object = new Object(); private static var _upgrades:Object = new Object(); public static function checkRodentImprovement():Number{ var _local1:Array; _local1 = [0, 1, 2, 4, 6, 7, 8, 10, 11, 12, 15]; return (_local1[_upgrades[ACCELERATION]]); } public static function checkPterodactylLevel():int{ return (_upgrades[PTERODACTYL]); } public static function checkTurtleLevel():int{ return (_upgrades[TURTLE]); } public static function initialize():void{ _costs[LAUNCHING_PAD] = [10, 50, 100, 300, 400, 500, 600, 700, 800, 1000]; _costs[OBSTACLE_RESISTANCE] = [20, 50, 150, 200, 250, 300, 400, 500, 700, 900]; _costs[BOUNCING_RATE] = [150, 200, 250, 300, 450, 500, 600, 700, 800, 900]; _costs[ACCELERATION] = [400, 450, 550, 650, 750, 800, 850, 1000, 1200, 2000]; _costs[RODENT] = [50, 400, 1500]; _costs[TURTLE] = [80, 300, 900]; _costs[PTERODACTYL] = [400, 1200, 2500]; _costs[FOOD] = [60, 80, 100, 120, 150, 200, 300, 400, 500, 1000]; if (((GameSettings.isEmpty(Global.top.gameSettings.getCommon())) || (!(Global.top.gameSettings.getCommon().upgrades)))){ buildInitialUpgrades(); (Global.top as Object).saveAll(); } else { _upgrades = Global.top.gameSettings.getCommon().upgrades; }; } public static function checkObstacleResistanceRoad():Number{ var _local1:Array; _local1 = [75, 70, 65, 60, 55, 50, 45, 40, 30, 25, 20]; return ((_local1[_upgrades[OBSTACLE_RESISTANCE]] / 2)); } public static function checkTurtleImprovement():Number{ var _local1:Array; _local1 = [0, 1, 2, 4, 6, 7, 8, 10, 11, 12, 15]; return (_local1[_upgrades[ACCELERATION]]); } public static function checkPterodactylImprovement():Number{ var _local1:Array; _local1 = [0, 1, 2, 4, 6, 7, 8, 10, 11, 12, 15]; return (_local1[_upgrades[ACCELERATION]]); } public static function checkObstacleResistanceAir():Number{ var _local1:Array; _local1 = [50, 45, 40, 37, 35, 30, 27, 25, 22, 20, 15]; return (_local1[_upgrades[OBSTACLE_RESISTANCE]]); } public static function checkRodentLevel():int{ return (_upgrades[RODENT]); } public static function get upgrades():Object{ return (_upgrades); } public static function get costs():Object{ return (_costs); } public static function buildInitialUpgrades():void{ _upgrades[LAUNCHING_PAD] = 0; _upgrades[OBSTACLE_RESISTANCE] = 0; _upgrades[BOUNCING_RATE] = 0; _upgrades[ACCELERATION] = 0; _upgrades[RODENT] = 0; _upgrades[PTERODACTYL] = 0; _upgrades[TURTLE] = 0; _upgrades[FOOD] = 0; } public static function checkFoodImprovement():Number{ var _local1:Array; _local1 = [100, 120, 145, 170, 200, 235, 270, 300, 350, 400, 500]; return (_local1[_upgrades[FOOD]]); } public static function checkLaunchingPad(_arg1:Number):Number{ var _local2:Array; _local2 = [300, 350, 400, 450, 500, 550, 600, 650, 750, 850, 1000]; return (_local2[_upgrades[LAUNCHING_PAD]]); } public static function checkBouncingRate():b2Vec2{ var _local1:Array; _local1 = [new b2Vec2(20, -100), new b2Vec2(22, -102), new b2Vec2(25, -104), new b2Vec2(30, -106), new b2Vec2(35, -108), new b2Vec2(40, -110), new b2Vec2(45, -112), new b2Vec2(50, -114), new b2Vec2(55, -116), new b2Vec2(60, -118), new b2Vec2(65, -120)]; return (_local1[_upgrades[BOUNCING_RATE]].Copy()); } } }//package game.logic
Section 160
//CompoundBody (game.physics.common.CompoundBody) package game.physics.common { import Box2D.Dynamics.*; import game.physics.*; import flash.geom.*; import core.common.*; public class CompoundBody { protected var _body:b2Body;// = null public function CompoundBody(_arg1:Point=null, _arg2:Number=0):void{ _body = null; super(); if (_arg1){ createBody(_arg1, _arg2); }; } public function createFromShapes(_arg1:Array, _arg2:Number, _arg3:Number, _arg4:Number):void{ var _local5:ConvexShape; for each (_local5 in _arg1) { _local5.shape.density = _arg2; _local5.shape.friction = _arg3; _local5.shape.restitution = _arg4; _body.CreateShape(_local5.shape); }; _body.SetMassFromShapes(); } public function get body():b2Body{ return (_body); } public function createBody(_arg1:Point, _arg2:Number=0):void{ var _local3:b2BodyDef; _local3 = new b2BodyDef(); _local3.position.Set((_arg1.x / FancyWorld.RATIO), (_arg1.y / FancyWorld.RATIO)); _local3.angle = MathUtils.toRadians(_arg2); _body = FancyWorld.world.CreateBody(_local3); } } }//package game.physics.common
Section 161
//ConvexShape (game.physics.common.ConvexShape) package game.physics.common { import Box2D.Common.Math.*; import game.physics.*; import Box2D.Collision.Shapes.*; import flash.geom.*; public class ConvexShape { private var _shape_def:b2ShapeDef;// = null public function ConvexShape(_arg1:Array=null):void{ _shape_def = null; super(); if (_arg1){ createPolygon(_arg1); }; } public function get shape():b2ShapeDef{ return (_shape_def); } public function createCircle(_arg1:Number):void{ _shape_def = new b2CircleDef(); (_shape_def as b2CircleDef).radius = (_arg1 / FancyWorld.RATIO); } public function createPolygon(_arg1:Array):void{ var _local2:b2PolygonDef; var _local3:int; var _local4:Point; _local2 = new b2PolygonDef(_arg1.length); _local2.vertexCount = _arg1.length; _local3 = 0; while (_local3 < _arg1.length) { _local4 = _arg1[_local3]; b2Vec2(_local2.vertices[_local3]).Set((_local4.x / FancyWorld.RATIO), (_local4.y / FancyWorld.RATIO)); _local3++; }; _shape_def = _local2; } } }//package game.physics.common
Section 162
//AbstractCreator (game.physics.creators.AbstractCreator) package game.physics.creators { import flash.display.*; import flash.geom.*; import game.physics.goals.*; import game.physics.common.*; public class AbstractCreator { public function createCircleShape(_arg1:Number):ConvexShape{ var _local2:ConvexShape; _local2 = new ConvexShape(); _local2.createCircle(_arg1); return (_local2); } public function createCompoundBody(_arg1:DisplayObjectContainer, _arg2:Number=0, _arg3:Number=0.2, _arg4:Number=0.3):CompoundBody{ var _local5:CompoundBody; var _local6:Array; _local5 = new CompoundBody(); _local5.createBody(new Point(_arg1.x, _arg1.y), _arg1.rotation); _local6 = collectShapes(_arg1); _local5.createFromShapes(_local6, _arg2, _arg3, _arg4); return (_local5); } public function createActorGoal(_arg1:Sprite, _arg2:Number=0, _arg3:Number=0.2, _arg4:Number=0.3):ActorGoal{ return (new ActorGoal(createCompoundBody(_arg1, _arg2, _arg3, _arg4).body, _arg1)); } public function collectShapes(_arg1:DisplayObjectContainer):Array{ throw (Error("Calling collectShapes of AbstractCreator class.")); } public function createConvexShape(_arg1:Array):ConvexShape{ return (new ConvexShape(_arg1)); } } }//package game.physics.creators
Section 163
//CircleCreator (game.physics.creators.CircleCreator) package game.physics.creators { import flash.display.*; public class CircleCreator extends AbstractCreator { override public function collectShapes(_arg1:DisplayObjectContainer):Array{ return (new Array(createCircleShape((_arg1.width / 2)))); } } }//package game.physics.creators
Section 164
//PolygonCreator (game.physics.creators.PolygonCreator) package game.physics.creators { import flash.display.*; import flash.geom.*; import core.common.*; import game.physics.monkeys.*; public class PolygonCreator extends AbstractCreator { override public function collectShapes(_arg1:DisplayObjectContainer):Array{ var collected_shapes:Array; var save_rotation:*; var i:*; var j:*; var points:*; var beacon_point:*; var beacons:*; var polygon_beacons:*; var child:*; var object = _arg1; collected_shapes = new Array(); var _local3 = object; with (_local3) { save_rotation = rotation; rotation = 0; i = 0; j = 0; points = []; beacon_point = null; beacons = collectBeacons(object); i = 0; while (i < beacons.size()) { beacon_point = beacons.values[i]; points.push(new Point((beacon_point.x * scaleX), (beacon_point.y * scaleY))); i++; }; beacons.clear(); if (points.length > 0){ collected_shapes.push(createConvexShape(points)); }; polygon_beacons = []; i = 0; while (i < numChildren) { child = getChildAt(i); if ((child is PolygonBeacon)){ polygon_beacons.push(child); beacons = collectBeacons(child, false); points = new Array(); j = 0; while (j < beacons.size()) { beacon_point = beacons.values[j]; points.push(new Point(((child.x + beacon_point.x) * scaleX), ((child.y + beacon_point.y) * scaleY))); j++; }; collected_shapes.push(createConvexShape(points)); }; i++; }; while (polygon_beacons.length > 0) { removeChild(polygon_beacons.shift()); }; rotation = save_rotation; }; return (collected_shapes); } public static function collectBeacons(_arg1:DisplayObjectContainer, _arg2:Boolean=true):Map{ var _local3:Map; var _local4:int; var _local5:int; var _local6:Array; var _local7:*; _local3 = new Map(); _local4 = _arg1.numChildren; _local5 = 0; _local6 = []; _local5 = 0; while (_local5 < _local4) { _local7 = _arg1.getChildAt(_local5); if ((_local7 is VertexBeacon)){ _local3.add(_local7.name, new Point(_local7.x, _local7.y)); if (_arg2){ _local6.push(_local7); }; }; _local5++; }; if (_arg2){ while (_local6.length > 0) { _arg1.removeChild(_local6.shift()); }; }; return (_local3); } } }//package game.physics.creators
Section 165
//RectangleCreator (game.physics.creators.RectangleCreator) package game.physics.creators { import flash.display.*; import flash.geom.*; public class RectangleCreator extends AbstractCreator { override public function collectShapes(_arg1:DisplayObjectContainer):Array{ var _local2:Number; var _local3:Array; _local2 = _arg1.rotation; _arg1.rotation = 0; _local3 = [createConvexShape([new Point((-(_arg1.width) / 2), (-(_arg1.height) / 2)), new Point((_arg1.width / 2), (-(_arg1.height) / 2)), new Point((_arg1.width / 2), (_arg1.height / 2)), new Point((-(_arg1.width) / 2), (_arg1.height / 2))])]; _arg1.rotation = _local2; return (_local3); } } }//package game.physics.creators
Section 166
//AchievementChecker (game.physics.goals.AchievementChecker) package game.physics.goals { import game.logic.*; import core.system.*; import core.*; public class AchievementChecker extends DelayTickListener { private var _engine:Engine;// = null public function AchievementChecker(){ _engine = null; super(2); _engine = Global.nameManager.lookup(Engine); } override protected function delayedOnTick():void{ var _local1:Number; super.delayedOnTick(); _engine.achievements.currentDistance(GameBoard.truck.displacement.x); _local1 = (-(GameBoard.truck.displacement.y) + 1); _engine.achievements.currentHeight(_local1); if (_engine.stats.max_height < _local1){ _engine.stats.max_height = _local1; }; _engine.achievements.currentVelocity(GameBoard.truck.getVelocity()); } } }//package game.physics.goals
Section 167
//AchievementsShowUpGoal (game.physics.goals.AchievementsShowUpGoal) package game.physics.goals { import game.logic.*; import core.system.*; import core.*; public class AchievementsShowUpGoal extends TickListener { private var _engine:Engine; private var _ticks:int;// = 70 private var _icon:AchievementsShowUp;// = null public function AchievementsShowUpGoal(_arg1:String){ _icon = null; _ticks = 70; super(); _engine = Global.nameManager.lookup(Engine); _icon = new AchievementsShowUp(); _icon.a_icon.gotoAndStop(_arg1); _engine.playWindowUI.addChild(_icon); _icon.x = 506; _icon.y = 3; } override public function onTick():void{ super.onTick(); if (_ticks > 0){ _ticks--; return; }; destroy(); } override public function destroy():void{ super.destroy(); if (_icon){ _icon.parent.removeChild(_icon); _icon = null; }; } } }//package game.physics.goals
Section 168
//ActorGoal (game.physics.goals.ActorGoal) package game.physics.goals { import game.logic.*; import flash.display.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import game.physics.*; import core.cache.*; import Box2D.Dynamics.Joints.*; import core.system.*; import core.*; public class ActorGoal extends TickListener { protected var _body:b2Body;// = null protected var joins:Array; private var _inner_cached:Boolean;// = false protected var relativePosition:Array; protected var _inner_animation;// = null protected var attached:Array; protected var _decor:Sprite;// = null protected var relativeAngle:Array; protected var parentAttached:ActorGoal; private var _game_board:GameBoard;// = null protected var angle0:Number; public var type:int;// = 0 public static const NONE = -1; public function ActorGoal(_arg1:b2Body, _arg2:Sprite, _arg3:Boolean=false, _arg4:CachingParams=null):void{ var _local5:*; var _local6:String; var _local7:Object; var _local8:MovieClipRenderer; _body = null; _decor = null; attached = new Array(); joins = new Array(); relativePosition = new Array(); relativeAngle = new Array(); type = 0; _game_board = null; _inner_cached = false; _inner_animation = null; super(); _body = _arg1; _decor = _arg2; if (_arg3){ if (false == _decor.hasOwnProperty("inner")){ _decor = ClipCache.cacheInPlace(_decor, _arg4, true); } else { _inner_cached = true; _local6 = ClipCache.getId(_arg2); _local7 = (_arg2 as Object); if (!ClipCache.isCached(_arg2)){ _local8 = ClipCache.cacheByObject(_local7.inner, null, false); ClipCache.saveCachedData(_local6, _local8.cachedData); }; _local7.inner = (_inner_animation = ClipCache.replaceInPlaceById(_local7.inner, _local6)); Global.tickManager.addTickListener((_local7.inner.getChildAt(0) as CachedInstance)); }; }; _body.SetUserData(this); updateCoords(); attached.push(this); joins.push(null); parentAttached = this; relativePosition.push(new b2Vec2(0, 0)); relativeAngle.push(0); angle0 = _arg1.GetAngle(); _local5 = Global.nameManager; _game_board = Global.nameManager.lookup(GameBoard); } public function set body(_arg1:b2Body):void{ _body = _arg1; } public function attach(_arg1:ActorGoal, _arg2:b2Vec2){ var _local3:b2RevoluteJointDef; var _local4:b2Joint; var _local5:b2Vec2; var _local6:Number; _local3 = new b2RevoluteJointDef(); _local3.Initialize(body, _arg1.body, _arg2); _local4 = FancyWorld.world.CreateJoint(_local3); attached.push(_arg1); joins.push(_local4); _arg1.parentAttached = this; _local5 = _arg1.body.GetPosition().Copy(); _local5.Subtract(body.GetWorldCenter().Copy()); relativePosition.push(_local5); _local6 = (body.GetAngle() - getAngle(_local5)); relativeAngle.push(_local6); } protected function applyGalileoTransformation():void{ var _local1:b2Vec2; _local1 = body.GetPosition(); _local1.Subtract(WorldUpdateGoal.dr); body.SetXForm(_local1, body.GetAngle()); } public function set decor(_arg1:Sprite):void{ _decor = _arg1; } public function disattach(_arg1:ActorGoal){ var _local2:int; _local2 = 0; while (_local2 < joins.length) { if (attached[_local2] == _arg1){ attached[_local2].parentAttached = attached[_local2]; attached = attached.splice(_local2, 1); FancyWorld.world.DestroyJoint((joins[_local2] as b2Joint)); joins = joins.splice(_local2, 1); relativePosition = relativePosition.splice(_local2, 1); relativeAngle = relativeAngle.splice(_local2, 1); }; _local2++; }; } protected function updateCoords():void{ _decor.x = (_body.GetPosition().x * FancyWorld.RATIO); _decor.y = (_body.GetPosition().y * FancyWorld.RATIO); _decor.rotation = ((_body.GetAngle() * 180) / Math.PI); } protected function outOfBounds():Boolean{ if (body.GetPosition().x < -50){ return (true); }; return (false); } override public function onTick():void{ if (!_decor){ return; }; updateCoords(); applyGalileoTransformation(); if (outOfBounds()){ destroy(); }; } public function doAction(_arg1:ActorGoal):Boolean{ if (this.type == ActorGoal.NONE){ return (false); }; return (true); } public function get decor():Sprite{ return (_decor); } public function get body():b2Body{ return (_body); } private function getAngle(_arg1:b2Vec2):Number{ if ((((Math.abs(_arg1.x) < 0.0001)) && ((_arg1.y > 0)))){ return ((Math.PI / 2)); }; if ((((Math.abs(_arg1.x) < 0.0001)) && ((_arg1.y < 0)))){ return ((-(Math.PI) / 2)); }; if (_arg1.x < 0){ return ((Math.atan((_arg1.y / _arg1.x)) + Math.PI)); }; return (Math.atan((_arg1.y / _arg1.x))); } override public function destroy():void{ super.destroy(); decor.parent.removeChild(decor); body.GetWorld().DestroyBody(body); if (_inner_cached){ (decor as Object).inner.getChildAt(0).destroy(); }; } } }//package game.physics.goals
Section 169
//InitialCacher (game.physics.goals.InitialCacher) package game.physics.goals { import game.ui.*; import core.cache.*; import core.system.*; import core.*; public class InitialCacher extends DelayTickListener { private var _queue:Array; private static const CACHING_CLASSES:Array = [Dino1, Dino2, Dino3, Dino4, Dino5, Dino6, Dino7, Dino8, Dino9, Dino10, Dino11, Dino12, Bird1, Bird2, Bird3, Bird4, Bird5]; private static const PAUSE:int = 5; public function InitialCacher(){ super(PAUSE); _queue = CACHING_CLASSES.concat(); } private function cacheNext():void{ var _local1:Class; var _local2:*; var _local3:String; var _local4:Object; var _local5:MovieClipRenderer; if (0 == _queue.length){ (Global.top as WelcomeScreen).removeChild((Global.top as WelcomeScreen).cacher_wait_dialog); (Global.top as WelcomeScreen).cacher_wait_dialog = null; destroy(); return; }; _local1 = _queue.shift(); _local2 = new (_local1); _local3 = ClipCache.getId(_local2); _local4 = (_local2 as Object); if (!ClipCache.isCached(_local2)){ _local5 = ClipCache.cacheByObject(_local4.inner, null, false); ClipCache.saveCachedData(_local3, _local5.cachedData); }; } override protected function delayedOnTick():void{ super.delayedOnTick(); cacheNext(); } } }//package game.physics.goals
Section 170
//LevelStarter (game.physics.goals.LevelStarter) package game.physics.goals { import game.logic.*; import AS.utils.*; import core.system.*; import core.*; public class LevelStarter extends TickListener { private var _engine:Engine; public function LevelStarter(){ _engine = Global.nameManager.lookup(Engine); } override public function onTick():void{ super.onTick(); if ((GameBoard.padLaunch.decor as pad).pushing_thing.pushing_thing){ (GameBoard.padLaunch.decor as pad).pushing_thing.pushing_thing.gotoAndStop(1); }; if (General.PTERODACTYL){ if (((General.PTERODACTYL.S.inner) && (General.PTERODACTYL.S.inner.inner))){ General.PTERODACTYL.S.inner.gotoAndStop(1); General.PTERODACTYL.S.inner.inner.gotoAndStop(1); if (((((General.RODENT.S) && (General.RODENT.S.inner))) && (General.RODENT.S.inner.inner))){ General.RODENT.S.inner.gotoAndStop(1); General.RODENT.S.inner.inner.gotoAndStop(1); if (((General.TURTLE.S.inner) && (General.TURTLE.S.inner))){ General.TURTLE.S.inner.gotoAndStop(1); trace("ok"); destroy(); }; }; }; }; } } }//package game.physics.goals
Section 171
//VelocityUpdater (game.physics.goals.VelocityUpdater) package game.physics.goals { import game.logic.*; import AS.goals.*; import core.system.*; import core.*; public class VelocityUpdater extends DelayTickListener { private var _engine:Engine; public function VelocityUpdater(){ _engine = Global.nameManager.lookup(Engine); super(7); } override protected function delayedOnTick():void{ super.delayedOnTick(); if (PadGoal.isJoined){ _engine.playWindowUI.speed_txt.text = "0 mph"; } else { _engine.playWindowUI.speed_txt.text = (("" + int(GameBoard.truck.getVelocity()).toString()) + " mph"); if (_engine.stats.speed < GameBoard.truck.getVelocity()){ _engine.stats.speed = GameBoard.truck.getVelocity(); }; }; } } }//package game.physics.goals
Section 172
//WorldUpdateGoal (game.physics.goals.WorldUpdateGoal) package game.physics.goals { import game.logic.*; import AS.utils.*; import flash.display.*; import Box2D.Common.Math.*; import game.physics.*; import AS.goals.*; import core.system.*; public class WorldUpdateGoal extends TickListener { public var r0:b2Vec2;// = null private var overlap:Array; private var _engine:Engine; private var posIni:Array;// = null private var widthIni:Array;// = null public static var dr:b2Vec2; public static var road1 = null; private static var count_of_time_initial = 4; private static var count_of_time = 0; public static var bgs:Array = new Array(); public function WorldUpdateGoal(){ r0 = null; posIni = null; widthIni = null; overlap = [100, 140, 210, 140]; super(); FancyWorld.world; setr0(); } private function CalculateDistanceAndHeight(){ if (GameBoard._engine.playWindowUI != null){ GameBoard._engine.playWindowUI.height_txt.text = (("height " + String((Math.round(-(GameBoard.truck.displacement.y)) + 1))) + " m"); GameBoard._engine.playWindowUI.displacement_txt.text = (("distance " + String(Math.round(GameBoard.truck.displacement.x))) + " m"); }; } override public function onTick():void{ var _local1:int; var _local2:Number; var _local3:Number; var _local4:int; var _local5:Sprite; setr0(); FancyWorld.world.Step((1 / 30), FancyWorld.ITERATIONS); if (r0 != null){ CalculateDistanceAndHeight(); dr = GameBoard.truck.body.GetPosition().Copy(); dr.Subtract(r0); if (Math.abs(dr.x) < 1E-5){ dr.x = 0; }; if (Math.abs(dr.y) < 1E-5){ dr.y = 0; }; if ((((dr.Length() < 0.05)) && (!(PadGoal.isJoined)))){ _engine.victory(); }; GameBoard.truck.displacement.Add(dr); if (posIni == null){ iniBG(); return; }; if (PadGoal.isJoined){ return; }; _engine.levelMap.bg.blue_sky.alpha = getAlpha(); _local1 = 0; while (_local1 < bgs.length) { _local2 = 1; _local3 = 1; _local4 = 0; while (_local4 < 2) { _local2 = Math.pow(((_local1 + 1) / bgs.length), 2); _local3 = Math.pow(((_local1 + 1) / bgs.length), 0.5); Sprite(bgs[_local1][_local4]).x = (Sprite(bgs[_local1][_local4]).x - ((_local2 * dr.x) * FancyWorld.RATIO)); Sprite(bgs[_local1][_local4]).y = (posIni[_local1] - ((_local3 * GameBoard.truck.displacement.y) * FancyWorld.RATIO)); _local4++; }; if (Sprite(bgs[_local1][0]).x < (-(widthIni[_local1]) / 2)){ Sprite(bgs[_local1][0]).x = ((Sprite(bgs[_local1][1]).x + widthIni[_local1]) - overlap[_local1]); _local5 = bgs[_local1][0]; bgs[_local1][0] = bgs[_local1][1]; bgs[_local1][1] = _local5; _local5.parent.swapChildren(bgs[_local1][0], bgs[_local1][1]); if (_local1 == (bgs.length - 1)){ GeneratedObject.RemoveAllChildren(_local5); GeneratedObject.GeneratedTree(_local5); GeneratedObject.GeneratedHerb(_local5); GeneratedObject.GeneratedClouds(_local5, _local3); } else { if (_local1 == 1){ if (count_of_time == count_of_time_initial){ count_of_time = 0; }; if (count_of_time == 0){ General.CREATE_SKY_OBJECT = true; }; count_of_time++; }; }; }; _local1++; }; }; } private function setr0(){ if (GameBoard.truck != null){ r0 = GameBoard.truck.body.GetPosition().Copy(); }; } private function getAlpha():Number{ var _local1:Number; var _local2:Number; if (GameBoard.truck.displacement.y < -(General.ATMOSPHERE_HEIGHT)){ _local1 = (1 - ((-(General.ATMOSPHERE_HEIGHT) - GameBoard.truck.displacement.y) / 100)); if (_local1 < 0){ _local2 = (2 - Math.exp((-((-(General.ATMOSPHERE_HEIGHT) - GameBoard.truck.displacement.y)) / 1500))); _engine.levelMap.bg.sky.scaleX = _local2; _engine.levelMap.bg.sky.scaleY = _local2; return (0); }; return (_local1); }; _engine.levelMap.bg.sky.scaleX = 1; _engine.levelMap.bg.sky.scaleY = 1; return (1); } private function iniBG():void{ var _local1:int; var _local2:Sprite; var _local3:Sprite; var _local4:Number; var _local5:Number; posIni = new Array(); widthIni = new Array(); _engine = GameBoard._engine; road1 = _engine.levelMap.bg.road1; bgs.push([_engine.levelMap.bg.bg31, _engine.levelMap.bg.bg32]); bgs.push([_engine.levelMap.bg.bg21, _engine.levelMap.bg.bg22]); bgs.push([_engine.levelMap.bg.bg11, _engine.levelMap.bg.bg12]); bgs.push([_engine.levelMap.bg.road1, _engine.levelMap.bg.road2]); _local1 = 0; while (_local1 < bgs.length) { _local2 = bgs[_local1][0]; _local3 = bgs[_local1][1]; _local3.x = (((_local2.x + (_local2.width / 2)) + (_local3.width / 2)) - overlap[_local1]); _local4 = ((Sprite(bgs[_local1][0]).y + Sprite(bgs[_local1][1]).y) / 2); posIni.push(_local4); _local5 = ((Sprite(bgs[_local1][0]).width + Sprite(bgs[_local1][1]).width) / 2); widthIni.push(_local5); _local1++; }; } public static function reset():void{ dr = null; bgs = new Array(); count_of_time_initial = 4; count_of_time = 0; } } }//package game.physics.goals
Section 173
//CircleMonkeySprite (game.physics.monkeys.CircleMonkeySprite) package game.physics.monkeys { public class CircleMonkeySprite extends MonkeySprite { public function CircleMonkeySprite():void{ } } }//package game.physics.monkeys
Section 174
//MonkeySprite (game.physics.monkeys.MonkeySprite) package game.physics.monkeys { import flash.display.*; public class MonkeySprite extends Sprite { } }//package game.physics.monkeys
Section 175
//PolygonBeacon (game.physics.monkeys.PolygonBeacon) package game.physics.monkeys { import flash.display.*; public class PolygonBeacon extends Sprite { } }//package game.physics.monkeys
Section 176
//PolygonMonkeySprite (game.physics.monkeys.PolygonMonkeySprite) package game.physics.monkeys { public class PolygonMonkeySprite extends MonkeySprite { public function PolygonMonkeySprite():void{ } } }//package game.physics.monkeys
Section 177
//RectangleMonkeySprite (game.physics.monkeys.RectangleMonkeySprite) package game.physics.monkeys { public class RectangleMonkeySprite extends MonkeySprite { public function RectangleMonkeySprite():void{ } } }//package game.physics.monkeys
Section 178
//VertexBeacon (game.physics.monkeys.VertexBeacon) package game.physics.monkeys { import flash.display.*; public class VertexBeacon extends Sprite { } }//package game.physics.monkeys
Section 179
//FancyWorld (game.physics.FancyWorld) package game.physics { import AS.utils.*; import flash.display.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import game.physics.goals.*; import core.*; public class FancyWorld { private var _started:Boolean;// = false public static const LOWER_BOUND:int = -100000; public static const UPPER_BOUND:int = 100000; public static const GRAVITY_Y:Number = 20; public static const RATIO:Number = 30; public static const ITERATIONS:int = 20; public static const GRAVITY_X:Number = 0; private static var _world:b2World = null; private static var _instance:FancyWorld = null; public static var world_update_goal:WorldUpdateGoal = null; public function FancyWorld(){ _started = false; super(); } public function start():void{ if (_started){ return; }; world_update_goal = new WorldUpdateGoal(); Global.tickManager.addTickListener(world_update_goal); _started = true; } public function stop():void{ if (!_started){ return; }; world_update_goal.destroy(); world_update_goal = null; _started = false; } public function enableDebugDraw(_arg1:Sprite):void{ var _local2:Sprite; var _local3:b2DebugDraw; _local2 = new Sprite(); _arg1.addChild(_local2); _local3 = new b2DebugDraw(); _local3.m_sprite = _local2; _local3.m_drawScale = RATIO; _local3.SetFlags(((((((b2DebugDraw.e_shapeBit | b2DebugDraw.e_jointBit) | b2DebugDraw.e_coreShapeBit) | b2DebugDraw.e_aabbBit) | b2DebugDraw.e_obbBit) | b2DebugDraw.e_pairBit) | b2DebugDraw.e_centerOfMassBit)); _local3.m_lineThickness = 1; _local3.m_fillAlpha = 0.7; world.SetDebugDraw(_local3); } private static function setupWorld():void{ var _local1:b2AABB; var _local2:b2Vec2; _local1 = new b2AABB(); _local1.lowerBound.Set((LOWER_BOUND / RATIO), (LOWER_BOUND / RATIO)); _local1.upperBound.Set((UPPER_BOUND / RATIO), (UPPER_BOUND / RATIO)); _local2 = new b2Vec2(GRAVITY_X, GRAVITY_Y); _world = new b2World(_local1, _local2, true); _world.SetContactListener(new MyContactListener()); } public static function get world():b2World{ if (null == _world){ setupWorld(); }; return (_world); } public static function get instance():FancyWorld{ if (null == _instance){ _instance = new (FancyWorld); }; return (_instance); } public static function destroyWorld():void{ _world = null; } } }//package game.physics
Section 180
//AchievementsWindow (game.ui.AchievementsWindow) package game.ui { import game.logic.*; import core.sound.*; import flash.events.*; import flash.display.*; import caurina.transitions.*; import core.common.*; import core.display.*; import core.*; public class AchievementsWindow extends UIWindow { public var level5_button:SimpleButton; public var next_button:SimpleButton; private var _icons:Array; public var level4_button:SimpleButton; public var level3_button:SimpleButton; private var _available:Array; public var level2_button:SimpleButton; private var _engine:Engine;// = null public var level1_button:SimpleButton; private var _infos:Array; public var main_menu_button:SimpleButton; public var flonga_button:SimpleButton; public var achievement_popup:MovieClip; private var _level_buttons:Array; public function AchievementsWindow(){ _engine = null; _icons = []; _infos = []; _available = []; _level_buttons = []; super(); achievement_popup.visible = false; _available = [false, false, false, false, false]; _level_buttons = [level1_button, level2_button, level3_button, level4_button, level5_button]; } private function onIconOver(_arg1:MouseEvent):void{ var _local2:AchievementInfo; var _local3:Number; _local2 = _infos[(_arg1.currentTarget as MovieClip).achievement_index]; achievement_popup.desc_txt.htmlText = (("<center><font size=\"15\">" + _local2.desc) + "</font></center>"); achievement_popup.x = _arg1.currentTarget.x; achievement_popup.y = (_arg1.currentTarget.y - achievement_popup.height); _local3 = 700; if ((achievement_popup.x + achievement_popup.width) > _local3){ achievement_popup.x = (_local3 - achievement_popup.width); }; if (achievement_popup.y < 0){ achievement_popup.y = (_arg1.currentTarget.y + _arg1.currentTarget.height); }; achievement_popup.alpha = 0; achievement_popup.visible = true; Tweener.addTween(achievement_popup, {alpha:1, time:0.75, transition:"easeOutCubic"}); } private function onIconOut(_arg1:MouseEvent):void{ achievement_popup.visible = false; } override public function initialize():void{ super.initialize(); EventManager.addEventListener(main_menu_button, MouseEvent.MOUSE_DOWN, mainMenuButtonHandler); EventManager.addEventListener(next_button, MouseEvent.MOUSE_DOWN, nextButtonHandler); EventManager.addEventListener(flonga_button, MouseEvent.MOUSE_DOWN, GameStage.flongaClick); setParams([Achievements.TRAVEL_DISTANCE_1, Achievements.TRAVEL_DISTANCE_2, Achievements.TRAVEL_DISTANCE_3, Achievements.TRAVEL_DISTANCE_4, Achievements.TRAVEL_DISTANCE_5, Achievements.REACH_SPEED_1, Achievements.REACH_SPEED_2, Achievements.REACH_SPEED_3, Achievements.REACH_SPEED_4, Achievements.REACH_SPEED_5, Achievements.JUMP_UP_1, Achievements.JUMP_UP_2, Achievements.JUMP_UP_3, Achievements.JUMP_UP_4, Achievements.JUMP_UP_5, Achievements.ASTRONAUT, Achievements.DINO_HUNTER, Achievements.WEALTHEST_MAN, Achievements.BETTER_THAN_BIRD_1, Achievements.BETTER_THAN_BIRD_2, Achievements.BETTER_THAN_BIRD_3, Achievements.BIRD_FOWLING, Achievements.MAN_CANNON, Achievements.ADDICTION, Achievements.WORLDS_BEST_DISTANCE]); setButtonAvailability([true, false, false, false, false]); } public function setParams(_arg1:Array):void{ var _local2:int; var _local3:Number; var _local4:int; var _local5:String; var _local6:String; var _local7:Boolean; var _local8:AchievementInfo; var _local9:AchievementIcon; _engine = Global.nameManager.lookup(Engine); _local2 = 5; _local3 = ((700 / 5) - 35); _local4 = 0; _local4 = 0; while (_local4 < _arg1.length) { _local5 = _arg1[_local4]; _local6 = _engine.achievements.description[_local5]; _local7 = _engine.achievements.data[_local5]; _local8 = new AchievementInfo(); _local8.type = _local5; _local8.desc = _local6; _local8.got = _local7; _local9 = new AchievementIcon(); _local9.gotoAndStop(_local5); _local8.icon = _local9; _local9["achievement_index"] = _local4; addChild(_local9); _local9.x = ((int((_infos.length % _local2)) * _local3) + 90); _local9.y = ((int((_infos.length / _local2)) * (_local9.height + 2)) + 155); _infos.push(_local8); EventManager.addEventListener(_local9, MouseEvent.MOUSE_OVER, onIconOver); EventManager.addEventListener(_local9, MouseEvent.MOUSE_OUT, onIconOut); _local4++; }; _local4 = 0; while (_local4 < _level_buttons.length) { EventManager.addEventListener(_level_buttons[_local4], MouseEvent.MOUSE_DOWN, levelButtonHandler); _local4++; }; addChild(achievement_popup); update(); } private function nextButtonHandler(_arg1:Event):void{ var _local2:Array; var _local3:int; Music.playSingleSound(SOUND_click); _local2 = []; _local3 = 0; while (_local3 < _available.length) { if (_available[_local3]){ _local2.push(_local3); }; _local3++; }; ArrayUtils.shuffle(_local2); _engine.loadLevel((_local2[0] + 1)); _arg1.stopPropagation(); } public function achievementEarned(_arg1:String):void{ var _local2:int; var _local3:AchievementInfo; _local2 = 0; while (_local2 < _infos.length) { _local3 = _infos[_local2]; if (_arg1 == _local3.type){ _local3.got = true; break; }; _local2++; }; update(); } public function setButtonAvailability(_arg1:Array):void{ _available = _arg1.concat(); update(); } private function levelButtonHandler(_arg1:MouseEvent):void{ var _local2:int; Music.playSingleSound(SOUND_click); _local2 = 0; _local2 = 0; while (_local2 < _level_buttons.length) { if (_arg1.currentTarget == _level_buttons[_local2]){ break; }; _local2++; }; if (((!(_available[_local2])) || ((_local2 >= _level_buttons.length)))){ return; }; _engine.loadLevel((_local2 + 1)); _arg1.stopPropagation(); } private function update():void{ var _local1:int; var _local2:AchievementInfo; var _local3:Number; var _local4:Array; _available[0] = true; _available[1] = _engine.achievements.data[Achievements.TRAVEL_DISTANCE_2]; _available[2] = _engine.achievements.data[Achievements.TRAVEL_DISTANCE_3]; _available[3] = _engine.achievements.data[Achievements.TRAVEL_DISTANCE_4]; _available[4] = _engine.achievements.data[Achievements.TRAVEL_DISTANCE_5]; _local1 = 0; _local1 = 0; while (_local1 < _infos.length) { _local2 = _infos[_local1]; _local2.got = _engine.achievements.data[_local2.type]; if (true == _local2.got){ _local2.icon.filters = []; _local2.icon.prize_icon.visible = true; } else { _local2.icon.prize_icon.visible = false; _local3 = 0.4; _local4 = new Array(); _local4 = _local4.concat([_local3, _local3, _local3, 0, 0]); _local4 = _local4.concat([_local3, _local3, _local3, 0, 0]); _local4 = _local4.concat([_local3, _local3, _local3, 0, 0]); _local4 = _local4.concat([0, 0, 0, 0.6, 0]); _local2.icon.filters = [Filters.getColorMatrixFilter(_local4)]; }; _local1++; }; _local1 = 0; while (_local1 < _available.length) { if (_available[_local1]){ _level_buttons[_local1].filters = [Filters.getShadowFilter(0, 45, 1, 5, 5, 5)]; } else { _level_buttons[_local1].filters = [Filters.getGreyscaleFilter(), Filters.getShadowFilter(0, 45, 1, 5, 5, 5)]; }; _local1++; }; } private function mainMenuButtonHandler(_arg1:MouseEvent):void{ Music.playSingleSound(SOUND_click); close(); } override public function show():void{ Music.playSingleSound(SOUND_page_show); Global.top.hideAllWindows(); super.show(); update(); y = -(height); Tweener.addTween(this, {y:0, time:0.8, transition:"easeOutBounce"}); if (!(Global.top as WelcomeScreen).music.isPlaying){ (Global.top as WelcomeScreen).music.play(); }; } } }//package game.ui class AchievementInfo { public var got:Boolean;// = false public var desc:String; public var icon:AchievementIcon;// = null public var type:String; private function AchievementInfo(){ got = false; icon = null; super(); } }
Section 181
//Options (game.ui.Options) package game.ui { import core.sound.*; import flash.events.*; import flash.display.*; import caurina.transitions.*; import flash.filters.*; import core.common.*; import fl.managers.*; import core.display.*; import core.*; public class Options extends UIWindow { public var cover_prompt:MovieClip; public var next_button:SimpleButton; public var music_on_button:SimpleButton; private var _color_matrix:Array;// = null public var sound_control:MovieClip; public var music_off_button:SimpleButton; public var medium_quality_button:SimpleButton; public var high_quality_button:SimpleButton; public var low_quality_button:SimpleButton; public var reset_saved_button:SimpleButton; public function Options():void{ _color_matrix = null; super(); _color_matrix = new Array(); _color_matrix = _color_matrix.concat([0, 0, 0, 0, 0]); _color_matrix = _color_matrix.concat([1, 0, 0, 0, 0]); _color_matrix = _color_matrix.concat([0, 0, 0, 0, 0]); _color_matrix = _color_matrix.concat([0, 0, 0, 1, 0]); } public function destroy():void{ } private function updateView():void{ music_on_button.visible = !(Music.musicOff); music_off_button.visible = Music.musicOff; } private function setQuality(_arg1):void{ switch (_arg1){ case low_quality_button: Global.mainStage.quality = "low"; removeFilters(medium_quality_button); removeFilters(high_quality_button); applyFilter(low_quality_button); break; case medium_quality_button: Global.mainStage.quality = "medium"; removeFilters(low_quality_button); removeFilters(high_quality_button); applyFilter(medium_quality_button); break; case high_quality_button: Global.mainStage.quality = "high"; removeFilters(low_quality_button); removeFilters(medium_quality_button); applyFilter(high_quality_button); break; }; } private function resetSaved():void{ reset_saved_button.alpha = 0.35; Global.top.gameSettings.clearAll(); (Global.top as Object).resetSaved(); } private function coverPromptButtonHandler(_arg1:MouseEvent):void{ Music.playSingleSound(SOUND_click); if (_arg1.currentTarget == cover_prompt.yesButton){ resetSaved(); }; cover_prompt.visible = false; } override public function initialize():void{ EventManager.addEventListener(reset_saved_button, MouseEvent.MOUSE_DOWN, resetSavedHandler); EventManager.addEventListener(music_on_button, MouseEvent.MOUSE_DOWN, musicOffHandler); EventManager.addEventListener(music_off_button, MouseEvent.MOUSE_DOWN, musicOnHandler); EventManager.addEventListener(low_quality_button, MouseEvent.MOUSE_DOWN, qualityButtonHandler); EventManager.addEventListener(medium_quality_button, MouseEvent.MOUSE_DOWN, qualityButtonHandler); EventManager.addEventListener(high_quality_button, MouseEvent.MOUSE_DOWN, qualityButtonHandler); EventManager.addEventListener(next_button, MouseEvent.MOUSE_DOWN, nextButtonHandler); EventManager.addEventListener(cover_prompt.yesButton, MouseEvent.MOUSE_DOWN, coverPromptButtonHandler); EventManager.addEventListener(cover_prompt.noButton, MouseEvent.MOUSE_DOWN, coverPromptButtonHandler); setQuality(high_quality_button); sound_control.slider.x = 100; sound_control.slider.setSize(230, 0); cover_prompt.visible = false; updateView(); } public function applyFilter(_arg1:DisplayObject):void{ _arg1.filters = [new ColorMatrixFilter(_color_matrix)]; } private function nextButtonHandler(_arg1:Event):void{ Music.playSingleSound(SOUND_click); close(); } private function resetSavedHandler(_arg1:Event):void{ Music.playSingleSound(SOUND_click); cover_prompt.visible = true; } private function musicOnHandler(_arg1:Event):void{ var _local2:FocusManager; Music.musicOff = false; Music.playSingleSound(SOUND_click); if (!(Global.top as WelcomeScreen).music.isPlaying){ (Global.top as WelcomeScreen).music.play(); }; updateView(); _local2 = new FocusManager(Global.mainStage); _local2.setFocus(Global.mainStage); } public function removeFilters(_arg1:DisplayObject):void{ _arg1.filters = []; } private function musicOffHandler(_arg1:Event):void{ var _local2:FocusManager; Music.musicOff = true; Music.playSingleSound(SOUND_click); updateView(); _local2 = new FocusManager(Global.mainStage); _local2.setFocus(Global.mainStage); } private function qualityButtonHandler(_arg1:MouseEvent):void{ Music.playSingleSound(SOUND_click); setQuality(_arg1.currentTarget); } override public function show():void{ Music.playSingleSound(SOUND_page_show); super.show(); updateView(); reset_saved_button.alpha = 1; alpha = 0; Tweener.addTween(this, {alpha:1, time:0.75, transition:"easeOutCubic"}); if (!(Global.top as WelcomeScreen).music.isPlaying){ (Global.top as WelcomeScreen).music.play(); }; } override public function close():void{ Tweener.addTween(this, {visible:false, alpha:0, time:0.75, transition:"easeOutCubic"}); } } }//package game.ui
Section 182
//PlayWindowUI (game.ui.PlayWindowUI) package game.ui { import game.logic.*; import core.sound.*; import flash.events.*; import flash.display.*; import flash.utils.*; import game.*; import flash.text.*; import core.*; public class PlayWindowUI extends Sprite { private var tuts_timer:Timer;// = null public var menu_button:SimpleButton; public var food_txt:TextField; public var gold_txt:TextField; public var score_txt:TextField; public var mute_button:SimpleButton; public var displacement_txt:TextField; private var engine:Engine;// = null public var height_txt:TextField; public var sound_button:SimpleButton; public var tut_arrows:MovieClip; public var speed_txt:TextField; public var pause_mc:MovieClip; public var money_icon:MovieClip; public var pause_button:SimpleButton; public var food_icon:MovieClip; public var tut_space:MovieClip; public function PlayWindowUI():void{ engine = null; tuts_timer = null; super(); } public function clearTutorials():void{ if (tut_arrows){ tut_arrows.addEventListener(MouseEvent.MOUSE_DOWN, arrowsTutClickHandler); tut_space.addEventListener(MouseEvent.MOUSE_DOWN, spaceTutClickHandler); removeChild(tut_arrows); removeChild(tut_space); tut_arrows = null; tut_space = null; }; } private function tutsTimerHandler(_arg1:TimerEvent):void{ if (tuts_timer){ tuts_timer.stop(); tuts_timer.removeEventListener(TimerEvent.TIMER, tutsTimerHandler); tuts_timer = null; }; clearTutorials(); } private function uimenuClickHandler(_arg1:MouseEvent):void{ Music.playSingleSound(SOUND_click); engine.pause(); engine.hideUI(); Global.top.show(); } private function muteClickHandler(_arg1:MouseEvent):void{ Music.volumeOff = true; Music.playSingleSound(SOUND_click); updateControls(); _arg1.stopPropagation(); } private function soundClickHandler(_arg1:MouseEvent):void{ Music.volumeOff = false; updateControls(); engine.music.play(); Music.playSingleSound(SOUND_click); _arg1.stopPropagation(); } private function arrowsTutClickHandler(_arg1:MouseEvent):void{ Music.playSingleSound(SOUND_click); engine.firstTime = false; (Global.top as Object).saveAll(); clearTutorials(); _arg1.stopPropagation(); } private function spaceTutClickHandler(_arg1:MouseEvent):void{ Music.playSingleSound(SOUND_click); engine.firstTime = false; (Global.top as Object).saveAll(); clearTutorials(); _arg1.stopPropagation(); } public function initialize(_arg1:Engine):void{ engine = _arg1; pause_mc.addEventListener(MouseEvent.MOUSE_DOWN, unpauseHandler); menu_button.addEventListener(MouseEvent.MOUSE_DOWN, uimenuClickHandler); pause_button.addEventListener(MouseEvent.MOUSE_DOWN, uipauseClickHandler); mute_button.addEventListener(MouseEvent.MOUSE_DOWN, muteClickHandler); sound_button.addEventListener(MouseEvent.MOUSE_DOWN, soundClickHandler); tut_arrows.addEventListener(MouseEvent.MOUSE_DOWN, arrowsTutClickHandler); tut_space.addEventListener(MouseEvent.MOUSE_DOWN, spaceTutClickHandler); tuts_timer = new Timer(10000, 1); tuts_timer.addEventListener(TimerEvent.TIMER, tutsTimerHandler); tuts_timer.start(); pause_mc.stop(); pause_mc.visible = false; if (engine.noAnimals){ food_icon.visible = false; food_txt.visible = false; }; updateControls(); } private function uipauseClickHandler(_arg1:MouseEvent):void{ Music.playSingleSound(SOUND_click); engine.pause(); } private function updateControls():void{ mute_button.visible = !(Music.volumeOff); sound_button.visible = Music.volumeOff; } private function unpauseHandler(_arg1:MouseEvent):void{ engine.pause(); Music.playSingleSound(SOUND_click); _arg1.stopPropagation(); } public function update():void{ } public function destroy():void{ pause_mc.removeEventListener(MouseEvent.MOUSE_DOWN, unpauseHandler); menu_button.removeEventListener(MouseEvent.MOUSE_DOWN, uimenuClickHandler); pause_button.removeEventListener(MouseEvent.MOUSE_DOWN, uipauseClickHandler); mute_button.removeEventListener(MouseEvent.MOUSE_DOWN, muteClickHandler); sound_button.removeEventListener(MouseEvent.MOUSE_DOWN, soundClickHandler); tutsTimerHandler(null); clearTutorials(); } } }//package game.ui
Section 183
//Statistics (game.ui.Statistics) package game.ui { import game.logic.*; import core.sound.*; import flash.events.*; import flash.display.*; import caurina.transitions.*; import flash.utils.*; import core.common.*; import game.*; import flash.media.*; import flash.text.*; import core.*; public class Statistics extends Sprite { public var distance:int;// = 0 public var total_txt:TextField; public var max_height_txt:TextField; private var _duration_start:int; public var distance_txt:TextField; public var stat_caption:MovieClip; private var _music:Music;// = null public var total:int;// = 0 public var duration_txt:TextField; private var engine:Engine;// = null public var final_victory:MovieClip; private var level_won:Boolean;// = false public var speed:int;// = 0 public var max_height:int;// = 0 public var speed_txt:TextField; public var main_menu_button:SimpleButton; private var counterTimer:Timer;// = null public var duration:int;// = 0 public var flonga_button:SimpleButton; public var continue_button:SimpleButton; public function Statistics():void{ distance = 0; max_height = 0; duration = 0; speed = 0; total = 0; engine = null; counterTimer = null; level_won = false; _music = null; super(); _music = new Music(); } private function counter(_arg1, _arg2:int):int{ var _local3:int; if (_arg2 > 0){ _local3 = ((_arg2 > 30)) ? (_arg2 / 30) : _arg2; if (_arg1 == duration_txt){ _local3 = ((_arg2 > 5)) ? (_arg2 / 5) : _arg2; _arg1.text = TimeUtils.convertToMinSec((_duration_start - duration)); } else { _arg1.text = (int(_arg1.text) + _local3).toString(); }; return (_local3); }; return (0); } public function victory():void{ level_won = true; stat_caption.innerc.stat_title.text = "Race results"; continue_button.visible = true; } private function finalClickHandler(_arg1:MouseEvent):void{ final_victory.visible = false; } private function replayHandler(_arg1:MouseEvent):void{ visible = false; Music.playSingleSound(SOUND_click); engine.loadLevel(engine.lastLevel); } public function setEngine(_arg1:Engine):void{ engine = _arg1; main_menu_button.addEventListener(MouseEvent.MOUSE_DOWN, mainMenu); continue_button.addEventListener(MouseEvent.MOUSE_DOWN, continueButtonHandler); final_victory.addEventListener(MouseEvent.MOUSE_DOWN, finalClickHandler); flonga_button.addEventListener(MouseEvent.MOUSE_DOWN, GameStage.flongaClick); _music.setTrackType(SOUND_ending, 1); } public function start():void{ music.play(); if (engine.achievements.final_one_got){ final_victory.visible = true; }; _duration_start = duration; distance_txt.text = "0"; max_height_txt.text = "0"; duration_txt.text = TimeUtils.convertToMinSec(duration); speed_txt.text = "0"; total_txt.text = "0"; counterTimer = new Timer(30, 0); counterTimer.addEventListener(TimerEvent.TIMER, counterTick); counterTimer.start(); y = -(height); Tweener.addTween(this, {y:0, time:1, transition:"easeOutBounce"}); } private function submitScore(_arg1:MouseEvent):void{ } public function defeat():void{ level_won = false; } public function get music():Music{ return (_music); } private function mainMenu(_arg1:MouseEvent):void{ music.stop(); visible = false; Music.playSingleSound(SOUND_click); engine.clearAll(); Global.top.show(); } private function counterTick(_arg1:TimerEvent):void{ distance = (distance - counter(distance_txt, distance)); max_height = (max_height - counter(max_height_txt, max_height)); duration = (duration - counter(duration_txt, duration)); speed = (speed - counter(speed_txt, speed)); total = (total - counter(total_txt, total)); if (((((distance + max_height) + duration) + speed) + total) == 0){ counterTimer.stop(); counterTimer.removeEventListener(TimerEvent.TIMER, counterTick); counterTimer = null; }; } private function continueButtonHandler(_arg1:MouseEvent):void{ music.stop(); visible = false; Music.playSingleSound(SOUND_click); engine.clearAll(); Global.top.hideAllWindows(); Global.top.windows.Upgrades.show(); _arg1.stopPropagation(); } public function destroy():void{ if (counterTimer){ counterTimer.stop(); counterTimer.removeEventListener(TimerEvent.TIMER, counterTick); counterTimer = null; }; music.stop(); continue_button.removeEventListener(MouseEvent.MOUSE_DOWN, continueButtonHandler); main_menu_button.removeEventListener(MouseEvent.MOUSE_DOWN, mainMenu); final_victory.removeEventListener(MouseEvent.MOUSE_DOWN, finalClickHandler); flonga_button.removeEventListener(MouseEvent.MOUSE_DOWN, GameStage.flongaClick); } } }//package game.ui
Section 184
//Upgrade10Row (game.ui.Upgrade10Row) package game.ui { import flash.display.*; public class Upgrade10Row extends UpgradeRow { public var lv6:MovieClip; public var lv5:MovieClip; public var lv10:MovieClip; public var lv2:MovieClip; public var lv3:MovieClip; public var lv7:MovieClip; public var lv1:MovieClip; public var lv9:MovieClip; public var lv4:MovieClip; public var lv8:MovieClip; override public function setParams(_arg1:String, _arg2:Array):void{ _levels = [lv1, lv2, lv3, lv4, lv5, lv6, lv7, lv8, lv9, lv10]; super.setParams(_arg1, _arg2); } } }//package game.ui
Section 185
//Upgrade3Row (game.ui.Upgrade3Row) package game.ui { import flash.display.*; public class Upgrade3Row extends UpgradeRow { public var lv2:MovieClip; public var lv3:MovieClip; public var lv1:MovieClip; override public function setParams(_arg1:String, _arg2:Array):void{ _levels = [lv1, lv2, lv3]; super.setParams(_arg1, _arg2); } } }//package game.ui
Section 186
//UpgradeRow (game.ui.UpgradeRow) package game.ui { import game.logic.*; import core.sound.*; import flash.events.*; import flash.display.*; import core.common.*; import flash.text.*; import core.*; public class UpgradeRow extends MovieClip { public var cost_txt:TextField; public var buy_button:SimpleButton; protected var _costs:Array;// = null protected var _name:String; protected var _engine:Engine;// = null protected var _levels:Array;// = null public var name_txt:TextField; public static const UPGRADE_BOUGHT:String = "UPGRADE_BOUGHT"; public function UpgradeRow(){ _engine = null; _costs = null; _levels = null; super(); } private function levelDownHandler(_arg1:MouseEvent):void{ var _local2:MovieClip; _local2 = (_arg1.currentTarget as MovieClip); if ("opened_label" == _local2.currentLabel){ Music.playSingleSound(SOUND_upgrade_click); buyUpgrade(_local2.level_id); }; } public function setParams(_arg1:String, _arg2:Array):void{ var _local3:int; _name = _arg1; _costs = new Array(); _local3 = 0; _local3 = 0; while (_local3 < _levels.length) { _costs.push(0); _local3++; }; name_txt.text = _arg1; _engine = Global.nameManager.lookup(Engine); _local3 = 0; while (_local3 < _arg2.length) { _costs[_local3] = _arg2[_local3]; _local3++; }; register(); update(); } private function buyButtonPressed(_arg1:MouseEvent):void{ var _local2:int; var _local3:MovieClip; Music.playSingleSound(SOUND_click); _local2 = 0; while (_local2 < _levels.length) { _local3 = _levels[_local2]; if ("opened_label" == _local3.currentLabel){ Music.playSingleSound(SOUND_upgrade_click); buyUpgrade(_local3.level_id); return; }; _local2++; }; } private function levelOverHandler(_arg1:MouseEvent):void{ cost_txt.text = _costs[(_arg1.currentTarget as MovieClip).level_id].toString(); } private function register():void{ var _local1:int; var _local2:MovieClip; _local1 = 0; _local1 = 0; while (_local1 < _levels.length) { _local2 = _levels[_local1]; _local2["level_id"] = _local1; _local2.buttonMode = true; _local2.mouseChildren = false; EventManager.addEventListener(_local2, MouseEvent.MOUSE_DOWN, levelDownHandler); EventManager.addEventListener(_local2, MouseEvent.MOUSE_OVER, levelOverHandler); EventManager.addEventListener(_local2, MouseEvent.MOUSE_OUT, levelOutHandler); _local1++; }; EventManager.addEventListener(buy_button, MouseEvent.MOUSE_DOWN, buyButtonPressed); levelOutHandler(null); } private function buyUpgrade(_arg1:int):void{ if (Upgrades.upgrades[_name] < _arg1){ buyUpgrade((_arg1 - 1)); }; if (((_engine.noAnimals) && ((((((Upgrades.RODENT == _name)) || ((Upgrades.TURTLE == _name)))) || ((Upgrades.PTERODACTYL == _name)))))){ Global.top.gameSettings.saveCommon({show_space_tutorial:true}); }; _engine.money = (_engine.money - _costs[_arg1]); Upgrades.upgrades[_name] = (_arg1 + 1); (Global.top as Object).saveAll(); dispatchEvent(new Event(UPGRADE_BOUGHT)); update(); } public function update():void{ var _local1:Boolean; var _local2:int; var _local3:int; _local1 = false; _local2 = 0; _local3 = 0; _local3 = 0; while (_local3 < _costs.length) { if (Upgrades.upgrades[_name] > _local3){ _levels[_local3].gotoAndStop("done_label"); } else { if (_engine.money >= (_local2 + _costs[_local3])){ _local2 = (_local2 + _costs[_local3]); _levels[_local3].gotoAndStop("opened_label"); _local1 = true; } else { _levels[_local3].gotoAndStop("empty_label"); _local2 = (_local2 + _costs[_local3]); }; }; _local3++; }; if (_local1){ buy_button.alpha = 1; } else { buy_button.alpha = 0.4; }; } private function levelOutHandler(_arg1:MouseEvent):void{ cost_txt.text = "-"; } } }//package game.ui
Section 187
//UpgradesWindow (game.ui.UpgradesWindow) package game.ui { import game.logic.*; import core.sound.*; import flash.events.*; import flash.display.*; import caurina.transitions.*; import core.common.*; import core.display.*; import flash.text.*; import core.*; public class UpgradesWindow extends UIWindow { public var next_button:SimpleButton; private var _controls:Array;// = null public var turtle:MovieClip; private var _engine:Engine; public var food:MovieClip; public var acceleration:MovieClip; public var bouncing_rate:MovieClip; public var pterodactyl:MovieClip; public var main_menu_button:SimpleButton; public var gems_txt:TextField; public var launching_pad:MovieClip; public var rodent:MovieClip; public var obstacle_resistance:MovieClip; public function UpgradesWindow(){ _controls = null; super(); _engine = Global.nameManager.lookup(Engine); } private function buildRowParams(_arg1:String, _arg2:int):Array{ var _local3:Array; var _local4:Object; var _local5:int; _local3 = new Array(); _local4 = Upgrades.upgrades; _local5 = 0; while (_local5 < _arg2) { _local3.push(Upgrades.costs[_arg1][_local5]); _local5++; }; return (_local3); } override public function initialize():void{ _controls = [launching_pad, bouncing_rate, obstacle_resistance, acceleration, food, rodent, pterodactyl, turtle]; launching_pad.setParams(Upgrades.LAUNCHING_PAD, buildRowParams(Upgrades.LAUNCHING_PAD, 10)); bouncing_rate.setParams(Upgrades.BOUNCING_RATE, buildRowParams(Upgrades.BOUNCING_RATE, 10)); obstacle_resistance.setParams(Upgrades.OBSTACLE_RESISTANCE, buildRowParams(Upgrades.OBSTACLE_RESISTANCE, 10)); acceleration.setParams(Upgrades.ACCELERATION, buildRowParams(Upgrades.ACCELERATION, 10)); food.setParams(Upgrades.FOOD, buildRowParams(Upgrades.FOOD, 10)); rodent.setParams(Upgrades.RODENT, buildRowParams(Upgrades.RODENT, 3)); pterodactyl.setParams(Upgrades.PTERODACTYL, buildRowParams(Upgrades.PTERODACTYL, 3)); turtle.setParams(Upgrades.TURTLE, buildRowParams(Upgrades.TURTLE, 3)); EventManager.addEventListener(launching_pad, UpgradeRow.UPGRADE_BOUGHT, onUpgradeBought); EventManager.addEventListener(bouncing_rate, UpgradeRow.UPGRADE_BOUGHT, onUpgradeBought); EventManager.addEventListener(obstacle_resistance, UpgradeRow.UPGRADE_BOUGHT, onUpgradeBought); EventManager.addEventListener(acceleration, UpgradeRow.UPGRADE_BOUGHT, onUpgradeBought); EventManager.addEventListener(food, UpgradeRow.UPGRADE_BOUGHT, onUpgradeBought); EventManager.addEventListener(rodent, UpgradeRow.UPGRADE_BOUGHT, onUpgradeBought); EventManager.addEventListener(pterodactyl, UpgradeRow.UPGRADE_BOUGHT, onUpgradeBought); EventManager.addEventListener(turtle, UpgradeRow.UPGRADE_BOUGHT, onUpgradeBought); EventManager.addEventListener(next_button, MouseEvent.MOUSE_DOWN, nextButtonHandler); EventManager.addEventListener(main_menu_button, MouseEvent.MOUSE_DOWN, mainMenuButtonHandler); update(); } private function nextButtonHandler(_arg1:Event):void{ Music.playSingleSound(SOUND_click); close(); Global.top.windows.Achievements.show(); } private function onUpgradeBought(_arg1:Event):void{ var _local2:int; _local2 = 0; _local2 = 0; while (_local2 < _controls.length) { _controls[_local2].update(); _local2++; }; update(); } public function update():void{ var _local1:*; gems_txt.text = _engine.money.toString(); for each (_local1 in _controls) { _local1.update(); }; } private function mainMenuButtonHandler(_arg1:MouseEvent):void{ Music.playSingleSound(SOUND_click); close(); } override public function show():void{ Music.playSingleSound(SOUND_page_show); Global.top.hideAllWindows(); super.show(); update(); x = -(width); Tweener.addTween(this, {x:0, time:0.8, transition:"easeOutBounce"}); if (!(Global.top as WelcomeScreen).music.isPlaying){ (Global.top as WelcomeScreen).music.play(); }; } } }//package game.ui
Section 188
//WelcomeScreen (game.ui.WelcomeScreen) package game.ui { import game.logic.*; import core.sound.*; import flash.events.*; import flash.display.*; import game.physics.goals.*; import core.common.*; import core.display.*; import game.*; import core.*; import core.game.*; public dynamic class WelcomeScreen extends GameTop { public var options_button:SimpleButton; public var story_mc:MovieClip; private var _music:Music;// = null public var engine:Engine;// = null public var upgrades_button:SimpleButton; public var flonga_button:SimpleButton; public var resume_button:SimpleButton; public var start_game_button:SimpleButton; public var cacher_wait_dialog:MovieClip; private var _first_play_press:Boolean;// = true public function WelcomeScreen():void{ engine = null; _music = null; _first_play_press = true; super(GlobalConsts.GAME_TITLE, GlobalConsts.VERSION); } public function get music():Music{ return (_music); } private function startGameHandler(_arg1:MouseEvent):void{ Music.playSingleSound(SOUND_click); if (_first_play_press){ _first_play_press = false; story_mc.visible = true; } else { windows.Achievements.show(); }; } private function resumeHandler(_arg1:MouseEvent):void{ music.stop(); Music.playSingleSound(SOUND_click); hideAllWindows(); engine.showUI(); engine.pause(); _arg1.stopPropagation(); } public function resetSaved():void{ gameSettings.clearAll(); engine.money = 0; Upgrades.buildInitialUpgrades(); engine.achievements.clearAll(); engine.achievements.total_time_played = 0; engine.firstTime = true; saveAll(); } private function upgradesHandler(_arg1:MouseEvent):void{ Music.playSingleSound(SOUND_click); windows.Upgrades.show(); } override public function initialize():void{ Global.nameManager.add(new Engine(), Engine); engine = Global.nameManager.lookup(Engine); Upgrades.initialize(); if (GameSettings.isEmpty(gameSettings.getCommon())){ resetSaved(); }; addWindow(Options, {alias:"Options"}); addWindow(UpgradesWindow, {alias:"Upgrades"}); addWindow(AchievementsWindow, {alias:"Achievements"}); EventManager.addEventListener(resume_button, MouseEvent.MOUSE_DOWN, resumeHandler); EventManager.addEventListener(start_game_button, MouseEvent.MOUSE_DOWN, startGameHandler); EventManager.addEventListener(options_button, MouseEvent.MOUSE_DOWN, optionsHandler); EventManager.addEventListener(upgrades_button, MouseEvent.MOUSE_DOWN, upgradesHandler); EventManager.addEventListener(flonga_button, MouseEvent.MOUSE_DOWN, GameStage.flongaClick); Global.tickManager.addTickListener(new InitialCacher()); _music = new Music(); _music.setTrackType(SOUND_menu_music); EventManager.addEventListener(story_mc, MouseEvent.MOUSE_DOWN, clickAnywhereHandler); story_mc.visible = false; show(); } private function clickAnywhereHandler(_arg1:MouseEvent):void{ removeChild(story_mc); EventManager.removeEventListener(story_mc, MouseEvent.MOUSE_DOWN, clickAnywhereHandler); story_mc = null; Global.top.windows.Achievements.show(); } private function optionsHandler(_arg1:MouseEvent):void{ Music.playSingleSound(SOUND_click); windows.Options.show(); } public function saveAll():void{ gameSettings.saveCommon({money:engine.money, upgrades:Upgrades.upgrades, first_time:engine.firstTime, achievements:engine.achievements.data, total_time_played:engine.achievements.total_time_played}); } override public function destroy():void{ super.destroy(); } override public function show():void{ Music.playSingleSound(SOUND_page_show); visible = true; resume_button.visible = !((engine.gameEvents == null)); if (!music.isPlaying){ music.play(); }; hideAllWindows(); } } }//package game.ui
Section 189
//GlobalConsts (game.GlobalConsts) package game { public class GlobalConsts { public static const LOCKED:Boolean = false; public static const ScreenHeight:int = 525; public static const VERSION:int = 5; public static const ScreenWidth:int = 700; public static const GAME_TITLE:String = "Stonepunk"; } }//package game
Section 190
//AchievementsPopup_439 (stonepunk_fla.AchievementsPopup_439) package stonepunk_fla { import flash.display.*; import flash.text.*; public dynamic class AchievementsPopup_439 extends MovieClip { public var desc_txt:TextField; } }//package stonepunk_fla
Section 191
//adf_323 (stonepunk_fla.adf_323) package stonepunk_fla { import flash.display.*; public dynamic class adf_323 extends MovieClip { public var tut_space:MovieClip; } }//package stonepunk_fla
Section 192
//asdfag_329 (stonepunk_fla.asdfag_329) package stonepunk_fla { import flash.display.*; public dynamic class asdfag_329 extends MovieClip { public var tut_arrows:MovieClip; } }//package stonepunk_fla
Section 193
//background1_25 (stonepunk_fla.background1_25) package stonepunk_fla { import flash.display.*; public dynamic class background1_25 extends MovieClip { public var road2:MovieClip; public var bg11:MovieClip; public var road1:MovieClip; public var bg12:MovieClip; public var sky:MovieClip; public var bg21:MovieClip; public var bg22:MovieClip; public var bg31:MovieClip; public var bg32:MovieClip; public var blue_sky:MovieClip; } }//package stonepunk_fla
Section 194
//background2_33 (stonepunk_fla.background2_33) package stonepunk_fla { import flash.display.*; public dynamic class background2_33 extends MovieClip { public var road2:MovieClip; public var bg11:MovieClip; public var road1:MovieClip; public var bg12:MovieClip; public var sky:MovieClip; public var bg21:MovieClip; public var bg22:MovieClip; public var bg31:MovieClip; public var bg32:MovieClip; public var blue_sky:MovieClip; } }//package stonepunk_fla
Section 195
//background3_49 (stonepunk_fla.background3_49) package stonepunk_fla { import flash.display.*; public dynamic class background3_49 extends MovieClip { public var road2:MovieClip; public var bg11:MovieClip; public var road1:MovieClip; public var bg12:MovieClip; public var sky:MovieClip; public var bg21:MovieClip; public var bg22:MovieClip; public var bg31:MovieClip; public var bg32:MovieClip; public var blue_sky:MovieClip; } }//package stonepunk_fla
Section 196
//background4_62 (stonepunk_fla.background4_62) package stonepunk_fla { import flash.display.*; public dynamic class background4_62 extends MovieClip { public var road2:MovieClip; public var bg11:MovieClip; public var road1:MovieClip; public var bg12:MovieClip; public var sky:MovieClip; public var bg21:MovieClip; public var bg22:MovieClip; public var bg31:MovieClip; public var bg32:MovieClip; public var blue_sky:MovieClip; } }//package stonepunk_fla
Section 197
//background5_68 (stonepunk_fla.background5_68) package stonepunk_fla { import flash.display.*; public dynamic class background5_68 extends MovieClip { public var road2:MovieClip; public var bg11:MovieClip; public var road1:MovieClip; public var bg12:MovieClip; public var sky:MovieClip; public var bg21:MovieClip; public var bg22:MovieClip; public var bg31:MovieClip; public var bg32:MovieClip; public var blue_sky:MovieClip; } }//package stonepunk_fla
Section 198
//dinocopy_261 (stonepunk_fla.dinocopy_261) package stonepunk_fla { import flash.display.*; public dynamic class dinocopy_261 extends MovieClip { public var v1:VertexBeacon; public var v2:VertexBeacon; public var v0:VertexBeacon; } }//package stonepunk_fla
Section 199
//fb_head_mc_10 (stonepunk_fla.fb_head_mc_10) package stonepunk_fla { import flash.display.*; public dynamic class fb_head_mc_10 extends MovieClip { public function fb_head_mc_10(){ addFrameScript(0, frame1, 12, frame13, 22, frame23); } function frame1(){ stop(); } function frame13(){ stop(); } function frame23(){ gotoAndStop("turnhead_stop"); } } }//package stonepunk_fla
Section 200
//fb_head_mc_578 (stonepunk_fla.fb_head_mc_578) package stonepunk_fla { import flash.display.*; public dynamic class fb_head_mc_578 extends MovieClip { public function fb_head_mc_578(){ addFrameScript(0, frame1, 12, frame13, 22, frame23); } function frame1(){ stop(); } function frame13(){ stop(); } function frame23(){ gotoAndStop("turnhead_stop"); } } }//package stonepunk_fla
Section 201
//flongabot_576 (stonepunk_fla.flongabot_576) package stonepunk_fla { import flash.display.*; public dynamic class flongabot_576 extends MovieClip { public var fbHead:MovieClip; public function flongabot_576(){ addFrameScript(0, frame1, 75, frame76, 88, frame89, 99, frame100); } public function doEndFly(){ this.gotoAndPlay("flying_end"); } function frame76(){ gotoAndPlay("normal"); } function frame89(){ gotoAndPlay("flying"); } public function doNormal(){ this.gotoAndPlay("normal"); } function frame1(){ } function frame100(){ gotoAndPlay("normal"); } public function doTurnhead(){ this.fbHead.gotoAndPlay("turnhead"); } public function doNormalHead(){ this.fbHead.gotoAndPlay("normal"); } public function doWink(){ this.fbHead.gotoAndPlay("wink_start"); } public function doFly(){ this.gotoAndPlay("flying_start"); } } }//package stonepunk_fla
Section 202
//flongabot_8 (stonepunk_fla.flongabot_8) package stonepunk_fla { import flash.display.*; public dynamic class flongabot_8 extends MovieClip { public var fbHead:MovieClip; public function flongabot_8(){ addFrameScript(0, frame1, 75, frame76, 88, frame89, 99, frame100); } public function doEndFly(){ this.gotoAndPlay("flying_end"); } function frame76(){ gotoAndPlay("normal"); } function frame89(){ gotoAndPlay("flying"); } public function doNormal(){ this.gotoAndPlay("normal"); } function frame1(){ } function frame100(){ gotoAndPlay("normal"); } public function doTurnhead(){ this.fbHead.gotoAndPlay("turnhead"); } public function doNormalHead(){ this.fbHead.gotoAndPlay("normal"); } public function doWink(){ this.fbHead.gotoAndPlay("wink_start"); } public function doFly(){ this.gotoAndPlay("flying_start"); } } }//package stonepunk_fla
Section 203
//FlongaIntro_574 (stonepunk_fla.FlongaIntro_574) package stonepunk_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.filters.*; import flash.geom.*; import flash.media.*; import flash.text.*; import flash.ui.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.net.*; import flash.printing.*; import flash.xml.*; public dynamic class FlongaIntro_574 extends MovieClip { public var flobot:MovieClip; public function FlongaIntro_574(){ addFrameScript(0, frame1, 29, frame30, 62, frame63, 72, frame73, 92, frame93, 200, frame201, 0xFF, frame256); } function frame73(){ flobot.doTurnhead(); } function frame201(){ flobot.doWink(); } function frame93(){ flobot.doWink(); } function frame1(){ } function frame30(){ flobot.doFly(); } function frame256(){ stop(); GameStage.itself.flongaFinished(); } function frame63(){ flobot.doEndFly(); } } }//package stonepunk_fla
Section 204
//HealthBar_498 (stonepunk_fla.HealthBar_498) package stonepunk_fla { import flash.display.*; public dynamic class HealthBar_498 extends MovieClip { public var bar:MovieClip; } }//package stonepunk_fla
Section 205
//NextButtonOverMotion_459 (stonepunk_fla.NextButtonOverMotion_459) package stonepunk_fla { import flash.display.*; public dynamic class NextButtonOverMotion_459 extends MovieClip { public function NextButtonOverMotion_459(){ addFrameScript(9, frame10); } function frame10(){ stop(); } } }//package stonepunk_fla
Section 206
//pad_174 (stonepunk_fla.pad_174) package stonepunk_fla { import flash.display.*; public dynamic class pad_174 extends MovieClip { public var pushing_thing:MovieClip; public var launching_pad:MovieClip; } }//package stonepunk_fla
Section 207
//PauseMC_315 (stonepunk_fla.PauseMC_315) package stonepunk_fla { import flash.display.*; public dynamic class PauseMC_315 extends MovieClip { public function PauseMC_315(){ addFrameScript(9, frame10); } function frame10(){ stop(); } } }//package stonepunk_fla
Section 208
//PauseMC_500 (stonepunk_fla.PauseMC_500) package stonepunk_fla { import flash.display.*; public dynamic class PauseMC_500 extends MovieClip { public function PauseMC_500(){ addFrameScript(9, frame10); } function frame10(){ stop(); } } }//package stonepunk_fla
Section 209
//PlayButtonBackMotin_468 (stonepunk_fla.PlayButtonBackMotin_468) package stonepunk_fla { import flash.display.*; public dynamic class PlayButtonBackMotin_468 extends MovieClip { public function PlayButtonBackMotin_468(){ addFrameScript(4, frame5); } function frame5(){ stop(); } } }//package stonepunk_fla
Section 210
//PRELOADING_17 (stonepunk_fla.PRELOADING_17) package stonepunk_fla { import flash.display.*; public dynamic class PRELOADING_17 extends MovieClip { public function PRELOADING_17(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package stonepunk_fla
Section 211
//pter2_135 (stonepunk_fla.pter2_135) package stonepunk_fla { import flash.display.*; public dynamic class pter2_135 extends MovieClip { public var inner:MovieClip; } }//package stonepunk_fla
Section 212
//pter2_137 (stonepunk_fla.pter2_137) package stonepunk_fla { import flash.display.*; public dynamic class pter2_137 extends MovieClip { public var inner:MovieClip; } }//package stonepunk_fla
Section 213
//pter2_139 (stonepunk_fla.pter2_139) package stonepunk_fla { import flash.display.*; public dynamic class pter2_139 extends MovieClip { public var inner:MovieClip; } }//package stonepunk_fla
Section 214
//pterodactyl_134 (stonepunk_fla.pterodactyl_134) package stonepunk_fla { import flash.display.*; public dynamic class pterodactyl_134 extends MovieClip { public var inner:MovieClip; public function pterodactyl_134(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package stonepunk_fla
Section 215
//PterodactylSlot1_513 (stonepunk_fla.PterodactylSlot1_513) package stonepunk_fla { import flash.display.*; public dynamic class PterodactylSlot1_513 extends MovieClip { public function PterodactylSlot1_513(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package stonepunk_fla
Section 216
//PterodactylSlot2_514 (stonepunk_fla.PterodactylSlot2_514) package stonepunk_fla { import flash.display.*; public dynamic class PterodactylSlot2_514 extends MovieClip { public function PterodactylSlot2_514(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package stonepunk_fla
Section 217
//PterodactylSlot3_516 (stonepunk_fla.PterodactylSlot3_516) package stonepunk_fla { import flash.display.*; public dynamic class PterodactylSlot3_516 extends MovieClip { public function PterodactylSlot3_516(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package stonepunk_fla
Section 218
//PushingMotion_145 (stonepunk_fla.PushingMotion_145) package stonepunk_fla { import flash.display.*; public dynamic class PushingMotion_145 extends MovieClip { public function PushingMotion_145(){ addFrameScript(0, frame1, 8, frame9); } function frame1(){ stop(); } function frame9(){ stop(); } } }//package stonepunk_fla
Section 219
//PushingMotion_182 (stonepunk_fla.PushingMotion_182) package stonepunk_fla { import flash.display.*; public dynamic class PushingMotion_182 extends MovieClip { public function PushingMotion_182(){ addFrameScript(0, frame1, 8, frame9); } function frame1(){ stop(); } function frame9(){ stop(); } } }//package stonepunk_fla
Section 220
//PushingThingRotater_144 (stonepunk_fla.PushingThingRotater_144) package stonepunk_fla { import flash.display.*; public dynamic class PushingThingRotater_144 extends MovieClip { public var pushing_thing:MovieClip; } }//package stonepunk_fla
Section 221
//PushingThingRotater_175 (stonepunk_fla.PushingThingRotater_175) package stonepunk_fla { import flash.display.*; public dynamic class PushingThingRotater_175 extends MovieClip { public var pushing_thing:MovieClip; } }//package stonepunk_fla
Section 222
//rodent_121 (stonepunk_fla.rodent_121) package stonepunk_fla { import flash.display.*; public dynamic class rodent_121 extends MovieClip { public var inner:MovieClip; public function rodent_121(){ addFrameScript(0, frame1, 1, frame2, 2, frame3); } function frame3(){ inner.stop(); } function frame1(){ stop(); inner.stop(); } function frame2(){ inner.stop(); } } }//package stonepunk_fla
Section 223
//Rodent1_122 (stonepunk_fla.Rodent1_122) package stonepunk_fla { import flash.display.*; public dynamic class Rodent1_122 extends MovieClip { public var inner:MovieClip; } }//package stonepunk_fla
Section 224
//Rodent2_128 (stonepunk_fla.Rodent2_128) package stonepunk_fla { import flash.display.*; public dynamic class Rodent2_128 extends MovieClip { public var inner:MovieClip; } }//package stonepunk_fla
Section 225
//Rodent3_131 (stonepunk_fla.Rodent3_131) package stonepunk_fla { import flash.display.*; public dynamic class Rodent3_131 extends MovieClip { public var inner:MovieClip; } }//package stonepunk_fla
Section 226
//RodentSlot1_526 (stonepunk_fla.RodentSlot1_526) package stonepunk_fla { import flash.display.*; public dynamic class RodentSlot1_526 extends MovieClip { public function RodentSlot1_526(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package stonepunk_fla
Section 227
//RodentSlot2_527 (stonepunk_fla.RodentSlot2_527) package stonepunk_fla { import flash.display.*; public dynamic class RodentSlot2_527 extends MovieClip { public function RodentSlot2_527(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package stonepunk_fla
Section 228
//RodentSlot3_528 (stonepunk_fla.RodentSlot3_528) package stonepunk_fla { import flash.display.*; public dynamic class RodentSlot3_528 extends MovieClip { public function RodentSlot3_528(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package stonepunk_fla
Section 229
//SaveGameButtonBackMotion_476 (stonepunk_fla.SaveGameButtonBackMotion_476) package stonepunk_fla { import flash.display.*; public dynamic class SaveGameButtonBackMotion_476 extends MovieClip { public function SaveGameButtonBackMotion_476(){ addFrameScript(4, frame5); } function frame5(){ stop(); } } }//package stonepunk_fla
Section 230
//SOUNDS_PRELOADER_571 (stonepunk_fla.SOUNDS_PRELOADER_571) package stonepunk_fla { import flash.display.*; public dynamic class SOUNDS_PRELOADER_571 extends MovieClip { public function SOUNDS_PRELOADER_571(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package stonepunk_fla
Section 231
//StatCaption_379 (stonepunk_fla.StatCaption_379) package stonepunk_fla { import flash.display.*; public dynamic class StatCaption_379 extends MovieClip { public var innerc:MovieClip; } }//package stonepunk_fla
Section 232
//StatCaptionInner_380 (stonepunk_fla.StatCaptionInner_380) package stonepunk_fla { import flash.display.*; import flash.text.*; public dynamic class StatCaptionInner_380 extends MovieClip { public var stat_title:TextField; } }//package stonepunk_fla
Section 233
//Stone1_264 (stonepunk_fla.Stone1_264) package stonepunk_fla { import flash.display.*; public dynamic class Stone1_264 extends MovieClip { public var v1:VertexBeacon; public var v2:VertexBeacon; public var v0:VertexBeacon; } }//package stonepunk_fla
Section 234
//Story_549 (stonepunk_fla.Story_549) package stonepunk_fla { import flash.display.*; public dynamic class Story_549 extends MovieClip { public var grain2:MovieClip; public var grain1:MovieClip; public var grain3:MovieClip; public var grain4:MovieClip; } }//package stonepunk_fla
Section 235
//Symbol21_502 (stonepunk_fla.Symbol21_502) package stonepunk_fla { import flash.display.*; public dynamic class Symbol21_502 extends MovieClip { public var noButton:SimpleButton; public var yesButton:SimpleButton; } }//package stonepunk_fla
Section 236
//Symbol9copy_107 (stonepunk_fla.Symbol9copy_107) package stonepunk_fla { import flash.display.*; public dynamic class Symbol9copy_107 extends MovieClip { public function Symbol9copy_107(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package stonepunk_fla
Section 237
//TheLaunchingPad_148 (stonepunk_fla.TheLaunchingPad_148) package stonepunk_fla { import flash.display.*; public dynamic class TheLaunchingPad_148 extends MovieClip { public function TheLaunchingPad_148(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package stonepunk_fla
Section 238
//turtle_108 (stonepunk_fla.turtle_108) package stonepunk_fla { import flash.display.*; public dynamic class turtle_108 extends MovieClip { public var inner:MovieClip; public function turtle_108(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package stonepunk_fla
Section 239
//turtle_113 (stonepunk_fla.turtle_113) package stonepunk_fla { import flash.display.*; public dynamic class turtle_113 extends MovieClip { public var inner:MovieClip; } }//package stonepunk_fla
Section 240
//turtle2_109 (stonepunk_fla.turtle2_109) package stonepunk_fla { import flash.display.*; public dynamic class turtle2_109 extends MovieClip { public var inner:MovieClip; } }//package stonepunk_fla
Section 241
//turtle3_117 (stonepunk_fla.turtle3_117) package stonepunk_fla { import flash.display.*; public dynamic class turtle3_117 extends MovieClip { public var inner:MovieClip; } }//package stonepunk_fla
Section 242
//TurtleSlot1_521 (stonepunk_fla.TurtleSlot1_521) package stonepunk_fla { import flash.display.*; public dynamic class TurtleSlot1_521 extends MovieClip { public function TurtleSlot1_521(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package stonepunk_fla
Section 243
//TurtleSlot2_522 (stonepunk_fla.TurtleSlot2_522) package stonepunk_fla { import flash.display.*; public dynamic class TurtleSlot2_522 extends MovieClip { public function TurtleSlot2_522(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package stonepunk_fla
Section 244
//TurtletSlot3_523 (stonepunk_fla.TurtletSlot3_523) package stonepunk_fla { import flash.display.*; public dynamic class TurtletSlot3_523 extends MovieClip { public function TurtletSlot3_523(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package stonepunk_fla
Section 245
//UpgradeSlot_531 (stonepunk_fla.UpgradeSlot_531) package stonepunk_fla { import flash.display.*; public dynamic class UpgradeSlot_531 extends MovieClip { public function UpgradeSlot_531(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package stonepunk_fla
Section 246
//AchievementIcon (AchievementIcon) package { import flash.display.*; public dynamic class AchievementIcon extends MovieClip { public var prize_icon:MovieClip; } }//package
Section 247
//AchievementsShowUp (AchievementsShowUp) package { import flash.display.*; public dynamic class AchievementsShowUp extends MovieClip { public var a_icon:AchievementIcon; } }//package
Section 248
//AnotherSprite (AnotherSprite) package { import game.physics.monkeys.*; public dynamic class AnotherSprite extends PolygonMonkeySprite { } }//package
Section 249
//bird (bird) package { import game.physics.monkeys.*; public dynamic class bird extends PolygonMonkeySprite { } }//package
Section 250
//Bird1 (Bird1) package { import game.physics.monkeys.*; public dynamic class Bird1 extends PolygonMonkeySprite { } }//package
Section 251
//Bird2 (Bird2) package { import game.physics.monkeys.*; public dynamic class Bird2 extends PolygonMonkeySprite { } }//package
Section 252
//Bird3 (Bird3) package { import game.physics.monkeys.*; public dynamic class Bird3 extends PolygonMonkeySprite { } }//package
Section 253
//Bird4 (Bird4) package { import game.physics.monkeys.*; public dynamic class Bird4 extends PolygonMonkeySprite { } }//package
Section 254
//Bird5 (Bird5) package { import game.physics.monkeys.*; public dynamic class Bird5 extends PolygonMonkeySprite { } }//package
Section 255
//Bush1 (Bush1) package { import game.physics.monkeys.*; public dynamic class Bush1 extends PolygonMonkeySprite { } }//package
Section 256
//Bush2 (Bush2) package { import game.physics.monkeys.*; public dynamic class Bush2 extends PolygonMonkeySprite { } }//package
Section 257
//Bush3 (Bush3) package { import game.physics.monkeys.*; public dynamic class Bush3 extends PolygonMonkeySprite { } }//package
Section 258
//Bush4 (Bush4) package { import game.physics.monkeys.*; public dynamic class Bush4 extends PolygonMonkeySprite { } }//package
Section 259
//Bush5 (Bush5) package { import game.physics.monkeys.*; public dynamic class Bush5 extends PolygonMonkeySprite { } }//package
Section 260
//Bush6 (Bush6) package { import game.physics.monkeys.*; public dynamic class Bush6 extends PolygonMonkeySprite { } }//package
Section 261
//Bush7 (Bush7) package { import game.physics.monkeys.*; public dynamic class Bush7 extends PolygonMonkeySprite { } }//package
Section 262
//Bush8 (Bush8) package { import game.physics.monkeys.*; public dynamic class Bush8 extends PolygonMonkeySprite { } }//package
Section 263
//Bush9 (Bush9) package { import game.physics.monkeys.*; public dynamic class Bush9 extends PolygonMonkeySprite { } }//package
Section 264
//CheckBox_disabledIcon (CheckBox_disabledIcon) package { import flash.display.*; public dynamic class CheckBox_disabledIcon extends MovieClip { } }//package
Section 265
//CheckBox_downIcon (CheckBox_downIcon) package { import flash.display.*; public dynamic class CheckBox_downIcon extends MovieClip { } }//package
Section 266
//CheckBox_overIcon (CheckBox_overIcon) package { import flash.display.*; public dynamic class CheckBox_overIcon extends MovieClip { } }//package
Section 267
//CheckBox_selectedDisabledIcon (CheckBox_selectedDisabledIcon) package { import flash.display.*; public dynamic class CheckBox_selectedDisabledIcon extends MovieClip { } }//package
Section 268
//CheckBox_selectedDownIcon (CheckBox_selectedDownIcon) package { import flash.display.*; public dynamic class CheckBox_selectedDownIcon extends MovieClip { } }//package
Section 269
//CheckBox_selectedOverIcon (CheckBox_selectedOverIcon) package { import flash.display.*; public dynamic class CheckBox_selectedOverIcon extends MovieClip { } }//package
Section 270
//CheckBox_selectedUpIcon (CheckBox_selectedUpIcon) package { import flash.display.*; public dynamic class CheckBox_selectedUpIcon extends MovieClip { } }//package
Section 271
//CheckBox_upIcon (CheckBox_upIcon) package { import flash.display.*; public dynamic class CheckBox_upIcon extends MovieClip { } }//package
Section 272
//Cloud1 (Cloud1) package { import flash.display.*; public dynamic class Cloud1 extends Sprite { } }//package
Section 273
//Cloud2 (Cloud2) package { import flash.display.*; public dynamic class Cloud2 extends Sprite { } }//package
Section 274
//Cloud3 (Cloud3) package { import flash.display.*; public dynamic class Cloud3 extends Sprite { } }//package
Section 275
//Cloud4 (Cloud4) package { import flash.display.*; public dynamic class Cloud4 extends Sprite { } }//package
Section 276
//CommonUpgradeRow (CommonUpgradeRow) package { import game.ui.*; public dynamic class CommonUpgradeRow extends Upgrade10Row { } }//package
Section 277
//dino (dino) package { import flash.display.*; public dynamic class dino extends MovieClip { public var v1:VertexBeacon; public var v2:VertexBeacon; public var v3:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 278
//dino_blue (dino_blue) package { import flash.display.*; public dynamic class dino_blue extends MovieClip { public var test_thing:MovieClip; public var v1:VertexBeacon; public var v2:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 279
//dino_green (dino_green) package { import flash.display.*; public dynamic class dino_green extends MovieClip { public var v1:VertexBeacon; public var v2:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 280
//dino_red (dino_red) package { import flash.display.*; public dynamic class dino_red extends MovieClip { public var v1:VertexBeacon; public var v2:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 281
//Dino1 (Dino1) package { import flash.display.*; public dynamic class Dino1 extends Sprite { public var inner:MovieClip; public var v1:VertexBeacon; public var v2:VertexBeacon; public var v3:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 282
//Dino10 (Dino10) package { import flash.display.*; public dynamic class Dino10 extends MovieClip { public var inner:MovieClip; public var v1:VertexBeacon; public var v2:VertexBeacon; public var v3:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 283
//Dino11 (Dino11) package { import flash.display.*; public dynamic class Dino11 extends MovieClip { public var inner:MovieClip; public var v1:VertexBeacon; public var v2:VertexBeacon; public var v3:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 284
//Dino12 (Dino12) package { import flash.display.*; public dynamic class Dino12 extends MovieClip { public var inner:MovieClip; public var v1:VertexBeacon; public var v2:VertexBeacon; public var v3:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 285
//Dino2 (Dino2) package { import flash.display.*; public dynamic class Dino2 extends Sprite { public var inner:MovieClip; public var v1:VertexBeacon; public var v2:VertexBeacon; public var v3:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 286
//Dino3 (Dino3) package { import flash.display.*; public dynamic class Dino3 extends MovieClip { public var inner:MovieClip; public var v1:VertexBeacon; public var v2:VertexBeacon; public var v3:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 287
//Dino4 (Dino4) package { import flash.display.*; public dynamic class Dino4 extends MovieClip { public var inner:MovieClip; public var v1:VertexBeacon; public var v2:VertexBeacon; public var v3:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 288
//Dino5 (Dino5) package { import flash.display.*; public dynamic class Dino5 extends MovieClip { public var inner:MovieClip; public var v1:VertexBeacon; public var v2:VertexBeacon; public var v3:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 289
//Dino6 (Dino6) package { import flash.display.*; public dynamic class Dino6 extends MovieClip { public var inner:MovieClip; public var v1:VertexBeacon; public var v2:VertexBeacon; public var v3:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 290
//Dino7 (Dino7) package { import flash.display.*; public dynamic class Dino7 extends MovieClip { public var inner:MovieClip; public var v1:VertexBeacon; public var v2:VertexBeacon; public var v3:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 291
//Dino8 (Dino8) package { import flash.display.*; public dynamic class Dino8 extends MovieClip { public var inner:MovieClip; public var v1:VertexBeacon; public var v2:VertexBeacon; public var v3:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 292
//Dino9 (Dino9) package { import flash.display.*; public dynamic class Dino9 extends MovieClip { public var inner:MovieClip; public var v1:VertexBeacon; public var v2:VertexBeacon; public var v3:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 293
//DustyCloud1 (DustyCloud1) package { import flash.display.*; public dynamic class DustyCloud1 extends Sprite { } }//package
Section 294
//DustyCloud2 (DustyCloud2) package { import flash.display.*; public dynamic class DustyCloud2 extends Sprite { } }//package
Section 295
//DustyCloud3 (DustyCloud3) package { import flash.display.*; public dynamic class DustyCloud3 extends Sprite { } }//package
Section 296
//DustyCloud4 (DustyCloud4) package { import flash.display.*; public dynamic class DustyCloud4 extends Sprite { } }//package
Section 297
//DustyCloud5 (DustyCloud5) package { import flash.display.*; public dynamic class DustyCloud5 extends Sprite { } }//package
Section 298
//flower (flower) package { import game.physics.monkeys.*; public dynamic class flower extends PolygonMonkeySprite { } }//package
Section 299
//focusRectSkin (focusRectSkin) package { import flash.display.*; public dynamic class focusRectSkin extends MovieClip { } }//package
Section 300
//food (food) package { import game.physics.monkeys.*; public dynamic class food extends PolygonMonkeySprite { } }//package
Section 301
//GameStage (GameStage) package { import flash.display.*; import flash.events.*; import core.sound.*; import core.*; import core.common.*; import flash.net.*; import flash.system.*; public class GameStage extends MovieClip { public var _game_clip:Sprite; public var loading_bar:MovieClip; public var flonga_button:SimpleButton; public var flonga_clip:MovieClip; public static var itself:GameStage = null; public function GameStage():void{ addFrameScript(0, frame1, 4, frame5); Security.allowDomain("*"); itself = this; } public function progressUpdate(_arg1:Event):void{ var _local2:Number; _local2 = Math.round(((this.loaderInfo.bytesLoaded / this.loaderInfo.bytesTotal) * 100)); if ((loading_bar is MovieClip)){ loading_bar.progress_mc.gotoAndStop(_local2); loading_bar.loaded_txt.text = (("loading... (" + _local2.toString()) + "%)"); }; if (this.loaderInfo.bytesLoaded == this.loaderInfo.bytesTotal){ loading_bar.removeEventListener(Event.ENTER_FRAME, progressUpdate); loading_bar.progress_mc.stop(); loading_bar.progress_mc.visible = false; removeChild(loading_bar); loading_bar = null; gotoAndStop("welcome_screen"); }; } public function flongaFinished():void{ flonga_clip.visible = false; this.removeChild(flonga_clip); } function frame5(){ flonga_clip.addEventListener(MouseEvent.MOUSE_DOWN, flongaClick); this.initialize(); stop(); } function frame1(){ loading_bar.addEventListener(Event.ENTER_FRAME, progressUpdate); flonga_button.addEventListener(MouseEvent.MOUSE_DOWN, flongaClick); stop(); } public function initialize():void{ if (Global.isStarted()){ return; }; Global.startup(this, _game_clip); Global.tickManager.timeAdjustment = true; Global.hideMenu(); KeyboardKeys.initialize(); Global.top.initialize(); } public static function flongaClick(_arg1:MouseEvent):void{ Music.playSingleSound(SOUND_click); gotoLink("http://www.flonga.com"); } public static function gotoLink(_arg1:String):void{ var _local2:URLRequest; _local2 = new URLRequest(_arg1); navigateToURL(_local2, "_blank"); } } }//package
Section 302
//gold (gold) package { import game.physics.monkeys.*; public dynamic class gold extends PolygonMonkeySprite { } }//package
Section 303
//hero (hero) package { import game.physics.monkeys.*; public dynamic class hero extends PolygonMonkeySprite { } }//package
Section 304
//Level1FrontObj1 (Level1FrontObj1) package { import flash.display.*; public dynamic class Level1FrontObj1 extends Sprite { } }//package
Section 305
//Level1FrontObj2 (Level1FrontObj2) package { import flash.display.*; public dynamic class Level1FrontObj2 extends MovieClip { } }//package
Section 306
//Level1FrontObj3 (Level1FrontObj3) package { import flash.display.*; public dynamic class Level1FrontObj3 extends Sprite { } }//package
Section 307
//Level1FrontObj4 (Level1FrontObj4) package { import flash.display.*; public dynamic class Level1FrontObj4 extends MovieClip { } }//package
Section 308
//Level1FrontObj5 (Level1FrontObj5) package { import flash.display.*; public dynamic class Level1FrontObj5 extends Sprite { } }//package
Section 309
//Level1FrontObj6 (Level1FrontObj6) package { import flash.display.*; public dynamic class Level1FrontObj6 extends Sprite { } }//package
Section 310
//Level2FrontObj1 (Level2FrontObj1) package { import flash.display.*; public dynamic class Level2FrontObj1 extends Sprite { } }//package
Section 311
//Level2FrontObj2 (Level2FrontObj2) package { import flash.display.*; public dynamic class Level2FrontObj2 extends Sprite { } }//package
Section 312
//Level2FrontObj4 (Level2FrontObj4) package { import flash.display.*; public dynamic class Level2FrontObj4 extends Sprite { } }//package
Section 313
//Level2FrontObj5 (Level2FrontObj5) package { import flash.display.*; public dynamic class Level2FrontObj5 extends Sprite { } }//package
Section 314
//Level3FrontObj1 (Level3FrontObj1) package { import flash.display.*; public dynamic class Level3FrontObj1 extends Sprite { } }//package
Section 315
//Level3FrontObj2 (Level3FrontObj2) package { import flash.display.*; public dynamic class Level3FrontObj2 extends Sprite { } }//package
Section 316
//Level3FrontObj3 (Level3FrontObj3) package { import flash.display.*; public dynamic class Level3FrontObj3 extends Sprite { } }//package
Section 317
//Level3FrontObj4 (Level3FrontObj4) package { import flash.display.*; public dynamic class Level3FrontObj4 extends Sprite { } }//package
Section 318
//Level3FrontObj5 (Level3FrontObj5) package { import flash.display.*; public dynamic class Level3FrontObj5 extends Sprite { } }//package
Section 319
//Level4FrontObj1 (Level4FrontObj1) package { import flash.display.*; public dynamic class Level4FrontObj1 extends Sprite { } }//package
Section 320
//Level4FrontObj2 (Level4FrontObj2) package { import flash.display.*; public dynamic class Level4FrontObj2 extends Sprite { } }//package
Section 321
//Level4FrontObj3 (Level4FrontObj3) package { import flash.display.*; public dynamic class Level4FrontObj3 extends Sprite { } }//package
Section 322
//Level4FrontObj4 (Level4FrontObj4) package { import flash.display.*; public dynamic class Level4FrontObj4 extends Sprite { } }//package
Section 323
//Level5FrontObj1 (Level5FrontObj1) package { import flash.display.*; public dynamic class Level5FrontObj1 extends Sprite { } }//package
Section 324
//Level5FrontObj2 (Level5FrontObj2) package { import flash.display.*; public dynamic class Level5FrontObj2 extends Sprite { } }//package
Section 325
//Level5FrontObj3 (Level5FrontObj3) package { import flash.display.*; public dynamic class Level5FrontObj3 extends Sprite { } }//package
Section 326
//Level5FrontObj4 (Level5FrontObj4) package { import flash.display.*; public dynamic class Level5FrontObj4 extends Sprite { } }//package
Section 327
//Level5FrontObj5 (Level5FrontObj5) package { import flash.display.*; public dynamic class Level5FrontObj5 extends Sprite { } }//package
Section 328
//LevelMap1 (LevelMap1) package { import flash.display.*; public dynamic class LevelMap1 extends MovieClip { public var rd:wheel_stone; public var bg:MovieClip; public var rt:wheel_stone; public var back_prize_layer:MovieClip; public var back_water_layer:MovieClip; public var back_layer:MovieClip; } }//package
Section 329
//LevelMap2 (LevelMap2) package { import flash.display.*; public dynamic class LevelMap2 extends MovieClip { public var rd:wheel_stone; public var bg:MovieClip; public var rt:wheel_stone; public var back_prize_layer:MovieClip; public var back_water_layer:MovieClip; public var back_layer:MovieClip; } }//package
Section 330
//LevelMap3 (LevelMap3) package { import flash.display.*; public dynamic class LevelMap3 extends MovieClip { public var rd:wheel_stone; public var bg:MovieClip; public var rt:wheel_stone; public var back_prize_layer:MovieClip; public var back_water_layer:MovieClip; public var back_layer:MovieClip; } }//package
Section 331
//LevelMap4 (LevelMap4) package { import flash.display.*; public dynamic class LevelMap4 extends MovieClip { public var rd:wheel_stone; public var bg:MovieClip; public var rt:wheel_stone; public var back_prize_layer:MovieClip; public var back_water_layer:MovieClip; public var back_layer:MovieClip; } }//package
Section 332
//LevelMap5 (LevelMap5) package { import flash.display.*; public dynamic class LevelMap5 extends MovieClip { public var rd:wheel_stone; public var bg:MovieClip; public var rt:wheel_stone; public var back_prize_layer:MovieClip; public var back_water_layer:MovieClip; public var back_layer:MovieClip; } }//package
Section 333
//LoadingMC (LoadingMC) package { import flash.display.*; import flash.text.*; public dynamic class LoadingMC extends MovieClip { public var loaded_txt:TextField; public var error_txt:TextField; public var progress_mc:MovieClip; } }//package
Section 334
//OptionsSoundSlider (OptionsSoundSlider) package { import core.controls.*; public dynamic class OptionsSoundSlider extends SoundSlider { } }//package
Section 335
//pad (pad) package { import game.physics.monkeys.*; public dynamic class pad extends PolygonMonkeySprite { } }//package
Section 336
//planet (planet) package { import flash.display.*; public dynamic class planet extends MovieClip { public var v1:VertexBeacon; public var v2:VertexBeacon; public var v3:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 337
//planet2 (planet2) package { import flash.display.*; public dynamic class planet2 extends MovieClip { public var v1:VertexBeacon; public var v2:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 338
//PterodactylRow (PterodactylRow) package { import game.ui.*; public dynamic class PterodactylRow extends Upgrade3Row { } }//package
Section 339
//RodentRow (RodentRow) package { import game.ui.*; public dynamic class RodentRow extends Upgrade3Row { } }//package
Section 340
//SliderThumb_disabledSkin (SliderThumb_disabledSkin) package { import flash.display.*; public dynamic class SliderThumb_disabledSkin extends MovieClip { } }//package
Section 341
//SliderThumb_downSkin (SliderThumb_downSkin) package { import flash.display.*; public dynamic class SliderThumb_downSkin extends MovieClip { } }//package
Section 342
//SliderThumb_overSkin (SliderThumb_overSkin) package { import flash.display.*; public dynamic class SliderThumb_overSkin extends MovieClip { } }//package
Section 343
//SliderThumb_upSkin (SliderThumb_upSkin) package { import flash.display.*; public dynamic class SliderThumb_upSkin extends MovieClip { } }//package
Section 344
//SliderTick_skin (SliderTick_skin) package { import flash.display.*; public dynamic class SliderTick_skin extends MovieClip { } }//package
Section 345
//SliderTrack_disabledSkin (SliderTrack_disabledSkin) package { import flash.display.*; public dynamic class SliderTrack_disabledSkin extends MovieClip { } }//package
Section 346
//SliderTrack_skin (SliderTrack_skin) package { import flash.display.*; public dynamic class SliderTrack_skin extends MovieClip { } }//package
Section 347
//SomeCircleSprite (SomeCircleSprite) package { import game.physics.monkeys.*; public dynamic class SomeCircleSprite extends CircleMonkeySprite { } }//package
Section 348
//SomeConvexSprite (SomeConvexSprite) package { import game.physics.monkeys.*; public dynamic class SomeConvexSprite extends PolygonMonkeySprite { } }//package
Section 349
//SomeNonConvexSprite (SomeNonConvexSprite) package { import game.physics.monkeys.*; public dynamic class SomeNonConvexSprite extends PolygonMonkeySprite { } }//package
Section 350
//SomeRectangle (SomeRectangle) package { import game.physics.monkeys.*; public dynamic class SomeRectangle extends RectangleMonkeySprite { } }//package
Section 351
//SOUND_achievement_earned (SOUND_achievement_earned) package { import flash.media.*; public dynamic class SOUND_achievement_earned extends Sound { } }//package
Section 352
//SOUND_bird_hit (SOUND_bird_hit) package { import flash.media.*; public dynamic class SOUND_bird_hit extends Sound { } }//package
Section 353
//SOUND_boing (SOUND_boing) package { import flash.media.*; public dynamic class SOUND_boing extends Sound { } }//package
Section 354
//SOUND_click (SOUND_click) package { import flash.media.*; public dynamic class SOUND_click extends Sound { } }//package
Section 355
//SOUND_eating (SOUND_eating) package { import flash.media.*; public dynamic class SOUND_eating extends Sound { } }//package
Section 356
//SOUND_encounter1 (SOUND_encounter1) package { import flash.media.*; public dynamic class SOUND_encounter1 extends Sound { } }//package
Section 357
//SOUND_encounter2 (SOUND_encounter2) package { import flash.media.*; public dynamic class SOUND_encounter2 extends Sound { } }//package
Section 358
//SOUND_ending (SOUND_ending) package { import flash.media.*; public dynamic class SOUND_ending extends Sound { } }//package
Section 359
//SOUND_food_exhausted (SOUND_food_exhausted) package { import flash.media.*; public dynamic class SOUND_food_exhausted extends Sound { } }//package
Section 360
//SOUND_get_prize (SOUND_get_prize) package { import flash.media.*; public dynamic class SOUND_get_prize extends Sound { } }//package
Section 361
//SOUND_hit (SOUND_hit) package { import flash.media.*; public dynamic class SOUND_hit extends Sound { } }//package
Section 362
//SOUND_level_music (SOUND_level_music) package { import flash.media.*; public dynamic class SOUND_level_music extends Sound { } }//package
Section 363
//SOUND_menu_music (SOUND_menu_music) package { import flash.media.*; public dynamic class SOUND_menu_music extends Sound { } }//package
Section 364
//SOUND_page_show (SOUND_page_show) package { import flash.media.*; public dynamic class SOUND_page_show extends Sound { } }//package
Section 365
//SOUND_push (SOUND_push) package { import flash.media.*; public dynamic class SOUND_push extends Sound { } }//package
Section 366
//SOUND_unaccelerator (SOUND_unaccelerator) package { import flash.media.*; public dynamic class SOUND_unaccelerator extends Sound { } }//package
Section 367
//SOUND_upgrade_click (SOUND_upgrade_click) package { import flash.media.*; public dynamic class SOUND_upgrade_click extends Sound { } }//package
Section 368
//star (star) package { import flash.display.*; public dynamic class star extends MovieClip { } }//package
Section 369
//star_group_1 (star_group_1) package { import flash.display.*; public dynamic class star_group_1 extends MovieClip { public var v1:VertexBeacon; public var v2:VertexBeacon; public var v3:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 370
//StarsAnimation (StarsAnimation) package { import flash.display.*; public dynamic class StarsAnimation extends MovieClip { public function StarsAnimation(){ addFrameScript(16, frame17); } function frame17(){ stop(); } } }//package
Section 371
//Stone1 (Stone1) package { import flash.display.*; public dynamic class Stone1 extends Sprite { public var v1:VertexBeacon; public var v2:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 372
//Stone2 (Stone2) package { import flash.display.*; public dynamic class Stone2 extends Sprite { public var v1:VertexBeacon; public var v2:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 373
//Stone3 (Stone3) package { import flash.display.*; public dynamic class Stone3 extends MovieClip { public var v1:VertexBeacon; public var v2:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 374
//Stone4 (Stone4) package { import flash.display.*; public dynamic class Stone4 extends MovieClip { public var v1:VertexBeacon; public var v2:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 375
//Stone5 (Stone5) package { import flash.display.*; public dynamic class Stone5 extends MovieClip { public var v1:VertexBeacon; public var v2:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 376
//TurtleRow (TurtleRow) package { import game.ui.*; public dynamic class TurtleRow extends Upgrade3Row { } }//package
Section 377
//Ufo (Ufo) package { import flash.display.*; public dynamic class Ufo extends MovieClip { public var v1:VertexBeacon; public var v2:VertexBeacon; public var v3:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 378
//water (water) package { import flash.display.*; public dynamic class water extends MovieClip { public var inner:MovieClip; public var v1:VertexBeacon; public var v2:VertexBeacon; public var v3:VertexBeacon; public var v0:VertexBeacon; } }//package
Section 379
//VertexBeacon (VertexBeacon) package { import game.physics.monkeys.*; public dynamic class VertexBeacon extends VertexBeacon { } }//package
Section 380
//wheel_stone (wheel_stone) package { import game.physics.monkeys.*; public dynamic class wheel_stone extends CircleMonkeySprite { } }//package

Library Items

Symbol 1 SoundUsed by:1726 1727
Symbol 2 GraphicUsed by:5
Symbol 3 GraphicUsed by:4
Symbol 4 MovieClip {VertexBeacon}Uses:3Used by:5 379 397 481 485 493 498 521 544 566 594 619 641 664 686 708 730 782 796 903 908 911 913 915 917 919 921 923 925 927 938 959 982 1004 1026 1042 1043 1044 1045 1046 1047 1048 1049 1050 1052 1057 1061 1064 1082 1727
Symbol 5 MovieClip {bird}Uses:2 4Used by:1727
Symbol 6 GraphicUsed by:7
Symbol 7 MovieClip {DustyCloud3}Uses:6Used by:8 1727
Symbol 8 MovieClip {DustyCloud5}Uses:7Used by:1727
Symbol 9 GraphicUsed by:10
Symbol 10 MovieClip {DustyCloud2}Uses:9Used by:11 1727
Symbol 11 MovieClip {DustyCloud4}Uses:10Used by:1727
Symbol 12 GraphicUsed by:13
Symbol 13 MovieClip {DustyCloud1}Uses:12Used by:1727
Symbol 14 GraphicUsed by:15
Symbol 15 MovieClip {Cloud2}Uses:14Used by:1727
Symbol 16 GraphicUsed by:17
Symbol 17 MovieClip {Cloud1}Uses:16Used by:1727
Symbol 18 GraphicUsed by:19 218
Symbol 19 MovieClip {Cloud4}Uses:18Used by:1727
Symbol 20 GraphicUsed by:21 217
Symbol 21 MovieClip {Cloud3}Uses:20Used by:1727
Symbol 22 GraphicUsed by:25
Symbol 23 GraphicUsed by:24
Symbol 24 MovieClipUses:23Used by:25 1727
Symbol 25 MovieClipUses:22 24Used by:26
Symbol 26 MovieClip {stonepunk_fla.PushingMotion_145}Uses:25Used by:27 387
Symbol 27 MovieClip {stonepunk_fla.PushingThingRotater_144}Uses:26Used by:54
Symbol 28 GraphicUsed by:53
Symbol 29 GraphicUsed by:53
Symbol 30 GraphicUsed by:31
Symbol 31 MovieClipUses:30Used by:53
Symbol 32 GraphicUsed by:33
Symbol 33 MovieClipUses:32Used by:53
Symbol 34 GraphicUsed by:35
Symbol 35 MovieClipUses:34Used by:53
Symbol 36 GraphicUsed by:37
Symbol 37 MovieClipUses:36Used by:53
Symbol 38 GraphicUsed by:39
Symbol 39 MovieClipUses:38Used by:53
Symbol 40 GraphicUsed by:53
Symbol 41 GraphicUsed by:48
Symbol 42 GraphicUsed by:43 262 1226 1406
Symbol 43 MovieClipUses:42Used by:46
Symbol 44 GraphicUsed by:45 263 1227
Symbol 45 MovieClipUses:44Used by:46
Symbol 46 MovieClipUses:43 45Used by:48
Symbol 47 GraphicUsed by:48
Symbol 48 MovieClipUses:41 46 47Used by:53
Symbol 49 GraphicUsed by:50
Symbol 50 MovieClipUses:49Used by:53
Symbol 51 GraphicUsed by:52
Symbol 52 MovieClipUses:51Used by:53
Symbol 53 MovieClip {stonepunk_fla.TheLaunchingPad_148}Uses:28 29 31 33 35 37 39 40 48 50 52Used by:54 388
Symbol 54 MovieClip {pad}Uses:27 53Used by:380 381 382 383 384 1727
Symbol 55 GraphicUsed by:56
Symbol 56 MovieClipUses:55Used by:59
Symbol 57 GraphicUsed by:58
Symbol 58 MovieClipUses:57Used by:59
Symbol 59 MovieClip {wheel_stone}Uses:56 58Used by:380 381 382 383 384 1727
Symbol 60 BitmapUsed by:61
Symbol 61 GraphicUses:60Used by:62
Symbol 62 MovieClipUses:61Used by:134 167 189 200 225 1702 1749  Timeline
Symbol 63 FontUsed by:64 1577 1582 1592 1593 1607 1609 1615 1617
Symbol 64 EditableTextUses:63Used by:71
Symbol 65 FontUsed by:66 484 487 1086 1541 1542 1543 1545 1546
Symbol 66 EditableTextUses:65Used by:71
Symbol 67 GraphicUsed by:68
Symbol 68 MovieClipUses:67Used by:70 1530 1727
Symbol 69 GraphicUsed by:70
Symbol 70 MovieClipUses:68 69Used by:71 1727
Symbol 71 MovieClip {LoadingMC}Uses:64 66 70Used by:Timeline
Symbol 72 FontUsed by:74 75 1074 1083 1094 1097 1100 1101 1102 1103 1104 1105 1108 1118 1122 1123 1130 1134 1241 1243 1250 1252 1254 1256 1258 1311 1370 1371 1372 1373 1374 1403 1409 1424 1429 1436 1441 1446 1485 1539 1577 1582 1592 1593 1607 1609 1615 1617 1620 1621 1676 1688 1705 1706
Symbol 73 FontUsed by:74 103 1126 1127 1249 1251 1253 1255 1257 1261 1265 1267 1338 1342 1344 1346 1348 1353 1356 1359 1362 1365 1391 1393 1395 1399 1415 1448 1462 1464 1478 1480 1482 1536 1537 1538 1577 1579 1580 1582 1592 1593 1607 1609 1615 1617 1648 1650 1652 1654 1657 1709
Symbol 74 TextUses:72 73Used by:Timeline
Symbol 75 TextUses:72Used by:Timeline
Symbol 76 GraphicUsed by:77 104 1420 1655
Symbol 77 MovieClipUses:76Used by:104 1420 1655 1727
Symbol 78 GraphicUsed by:79 104 1268 1420 1731
Symbol 79 MovieClipUses:78Used by:98
Symbol 80 GraphicUsed by:98 104 1268 1420
Symbol 81 GraphicUsed by:98 104 1268 1420 1743
Symbol 82 GraphicUsed by:98 104 1268 1420
Symbol 83 GraphicUsed by:87 104 1268 1420
Symbol 84 GraphicUsed by:87 104 1268 1420 1735
Symbol 85 GraphicUsed by:87 104 1268 1420 1735
Symbol 86 GraphicUsed by:87 104 1268 1420 1735
Symbol 87 MovieClip {stonepunk_fla.fb_head_mc_10}Uses:83 84 85 86Used by:98
Symbol 88 ShapeTweeningUsed by:98 104 1268 1420
Symbol 89 ShapeTweeningUsed by:98
Symbol 90 ShapeTweeningUsed by:98
Symbol 91 GraphicUsed by:93 1739
Symbol 92 GraphicUsed by:93 1739
Symbol 93 MovieClipUses:91 92Used by:94
Symbol 94 MovieClipUses:93Used by:98
Symbol 95 ShapeTweeningUsed by:98
Symbol 96 ShapeTweeningUsed by:98
Symbol 97 GraphicUsed by:98 1743
Symbol 98 MovieClip {stonepunk_fla.flongabot_8}Uses:79 80 81 82 87 88 89 90 94 95 96 97Used by:102 1268
Symbol 99 GraphicUsed by:101 104 1268 1420 1730 1748
Symbol 100 GraphicUsed by:101 1748
Symbol 101 MovieClipUses:99 100Used by:102 1268
Symbol 102 MovieClipUses:98 101Used by:104 1420
Symbol 103 TextUses:73Used by:104 1420
Symbol 104 ButtonUses:77 102 103 76 78 80 81 82 83 84 85 86 88 99Used by:1708 1727  Timeline
Symbol 105 GraphicUsed by:106
Symbol 106 MovieClipUses:105Used by:1416  Timeline
Symbol 107 GraphicUsed by:108
Symbol 108 MovieClipUses:107Used by:Timeline
Symbol 109 GraphicUsed by:110 1704
Symbol 110 MovieClipUses:109Used by:Timeline
Symbol 111 GraphicUsed by:1727
Symbol 112 GraphicUsed by:113
Symbol 113 MovieClipUses:112Used by:114 115 116 117 118 1727
Symbol 114 MovieClipUses:113Used by:119
Symbol 115 MovieClipUses:113Used by:119
Symbol 116 MovieClipUses:113Used by:119
Symbol 117 MovieClipUses:113Used by:119
Symbol 118 MovieClipUses:113Used by:119
Symbol 119 MovieClip {StarsAnimation}Uses:114 115 116 117 118Used by:1727
Symbol 120 GraphicUsed by:121 135 1586 1588 1616
Symbol 121 MovieClipUses:120Used by:134 189 200 225
Symbol 122 GraphicUsed by:123
Symbol 123 MovieClipUses:122Used by:134
Symbol 124 GraphicUsed by:125
Symbol 125 MovieClipUses:124Used by:134
Symbol 126 GraphicUsed by:127
Symbol 127 MovieClipUses:126Used by:134
Symbol 128 GraphicUsed by:129
Symbol 129 MovieClipUses:128Used by:134
Symbol 130 GraphicUsed by:131
Symbol 131 MovieClipUses:130Used by:134
Symbol 132 GraphicUsed by:133
Symbol 133 MovieClipUses:132Used by:134
Symbol 134 MovieClip {stonepunk_fla.background1_25}Uses:121 123 125 127 129 131 133 62Used by:380 1727
Symbol 135 MovieClipUses:120Used by:167
Symbol 136 GraphicUsed by:137
Symbol 137 MovieClipUses:136Used by:167
Symbol 138 GraphicUsed by:141
Symbol 139 GraphicUsed by:140
Symbol 140 MovieClipUses:139Used by:141
Symbol 141 MovieClipUses:138 140Used by:167
Symbol 142 GraphicUsed by:149
Symbol 143 GraphicUsed by:144
Symbol 144 MovieClipUses:143Used by:149 153 164
Symbol 145 GraphicUsed by:149
Symbol 146 GraphicUsed by:147
Symbol 147 MovieClipUses:146Used by:149 153
Symbol 148 GraphicUsed by:149
Symbol 149 MovieClipUses:142 144 145 147 148Used by:158 164
Symbol 150 GraphicUsed by:153
Symbol 151 GraphicUsed by:153
Symbol 152 GraphicUsed by:153
Symbol 153 MovieClipUses:150 144 151 147 152Used by:158 164 438
Symbol 154 GraphicUsed by:155
Symbol 155 MovieClip {Level2FrontObj4}Uses:154Used by:158 164 1727
Symbol 156 GraphicUsed by:157
Symbol 157 MovieClip {Level2FrontObj5}Uses:156Used by:158 164 166 1727
Symbol 158 MovieClipUses:149 153 155 157Used by:167
Symbol 159 GraphicUsed by:164
Symbol 160 GraphicUsed by:161
Symbol 161 MovieClipUses:160Used by:164
Symbol 162 GraphicUsed by:163 437
Symbol 163 MovieClipUses:162Used by:164
Symbol 164 MovieClipUses:153 149 144 155 157 159 161 163Used by:167
Symbol 165 GraphicUsed by:166
Symbol 166 MovieClipUses:165 157Used by:167
Symbol 167 MovieClip {stonepunk_fla.background2_33}Uses:135 137 141 158 164 166 62Used by:381 1727
Symbol 168 GraphicUsed by:169
Symbol 169 MovieClipUses:168Used by:189
Symbol 170 GraphicUsed by:171
Symbol 171 MovieClipUses:170Used by:189
Symbol 172 GraphicUsed by:182
Symbol 173 GraphicUsed by:174
Symbol 174 MovieClipUses:173Used by:182 447
Symbol 175 GraphicUsed by:176
Symbol 176 MovieClipUses:175Used by:179 180 181 182 184
Symbol 177 GraphicUsed by:178
Symbol 178 MovieClipUses:177Used by:182 184
Symbol 179 MovieClip {Level3FrontObj1}Uses:176Used by:182 1727
Symbol 180 MovieClip {Level3FrontObj2}Uses:176Used by:182 1727
Symbol 181 MovieClip {Level3FrontObj3}Uses:176Used by:182 1727
Symbol 182 MovieClipUses:172 174 176 178 179 180 181Used by:189
Symbol 183 GraphicUsed by:184
Symbol 184 MovieClipUses:183 176 178Used by:189
Symbol 185 GraphicUsed by:188
Symbol 186 GraphicUsed by:187
Symbol 187 MovieClipUses:186Used by:188
Symbol 188 MovieClipUses:185 187Used by:189
Symbol 189 MovieClip {stonepunk_fla.background3_49}Uses:121 169 171 182 184 188 62Used by:382 1727
Symbol 190 GraphicUsed by:191
Symbol 191 MovieClipUses:190Used by:200
Symbol 192 GraphicUsed by:193
Symbol 193 MovieClipUses:192Used by:200
Symbol 194 GraphicUsed by:195
Symbol 195 MovieClipUses:194Used by:200
Symbol 196 GraphicUsed by:197
Symbol 197 MovieClipUses:196Used by:200
Symbol 198 GraphicUsed by:199
Symbol 199 MovieClipUses:198Used by:200
Symbol 200 MovieClip {stonepunk_fla.background4_62}Uses:121 191 193 195 197 199 62Used by:383 1727
Symbol 201 GraphicUsed by:202
Symbol 202 MovieClipUses:201Used by:225
Symbol 203 GraphicUsed by:210
Symbol 204 GraphicUsed by:205
Symbol 205 MovieClipUses:204Used by:210 211 214
Symbol 206 GraphicUsed by:207
Symbol 207 MovieClipUses:206Used by:210 211 214
Symbol 208 GraphicUsed by:209
Symbol 209 MovieClipUses:208Used by:210 211 214
Symbol 210 MovieClipUses:203 205 207 209Used by:225
Symbol 211 MovieClipUses:205 207 209Used by:225
Symbol 212 GraphicUsed by:213
Symbol 213 MovieClipUses:212Used by:214 216 462
Symbol 214 MovieClipUses:213 205 207 209Used by:225
Symbol 215 GraphicUsed by:216
Symbol 216 MovieClipUses:215 213Used by:225
Symbol 217 MovieClipUses:20Used by:225
Symbol 218 MovieClipUses:18Used by:225
Symbol 219 GraphicUsed by:220
Symbol 220 MovieClipUses:219Used by:225
Symbol 221 GraphicUsed by:222
Symbol 222 MovieClipUses:221Used by:225
Symbol 223 GraphicUsed by:224
Symbol 224 MovieClipUses:223Used by:225
Symbol 225 MovieClip {stonepunk_fla.background5_68}Uses:121 202 210 211 214 216 217 218 220 222 224 62Used by:384 1727
Symbol 226 MovieClipUsed by:380 381 382 383 384 1727
Symbol 227 GraphicUsed by:228 520 543 565 593 618 641 664 686 708 730 782 796
Symbol 228 MovieClipUses:227Used by:379 1727
Symbol 229 GraphicUsed by:266
Symbol 230 GraphicUsed by:231 1204
Symbol 231 MovieClipUses:230Used by:266
Symbol 232 GraphicUsed by:233
Symbol 233 MovieClipUses:232Used by:266
Symbol 234 GraphicUsed by:235 1207
Symbol 235 MovieClipUses:234Used by:238 1727
Symbol 236 GraphicUsed by:237 1208
Symbol 237 MovieClipUses:236Used by:238 1727
Symbol 238 MovieClipUses:235 237Used by:266 1727
Symbol 239 GraphicUsed by:240
Symbol 240 MovieClipUses:239Used by:243 1727
Symbol 241 GraphicUsed by:242
Symbol 242 MovieClipUses:241Used by:243 1727
Symbol 243 MovieClipUses:240 242Used by:266 1727
Symbol 244 GraphicUsed by:266
Symbol 245 GraphicUsed by:246
Symbol 246 MovieClipUses:245Used by:266 1727
Symbol 247 GraphicUsed by:266
Symbol 248 GraphicUsed by:249
Symbol 249 MovieClipUses:248Used by:261
Symbol 250 GraphicUsed by:251
Symbol 251 MovieClipUses:250Used by:261 1727
Symbol 252 GraphicUsed by:261
Symbol 253 GraphicUsed by:254
Symbol 254 MovieClipUses:253Used by:261
Symbol 255 ShapeTweeningUsed by:261
Symbol 256 ShapeTweeningUsed by:261
Symbol 257 GraphicUsed by:261
Symbol 258 ShapeTweeningUsed by:261
Symbol 259 ShapeTweeningUsed by:261
Symbol 260 GraphicUsed by:261
Symbol 261 MovieClipUses:249 251 252 254 255 256 257 258 259 260Used by:266 1727
Symbol 262 MovieClipUses:42Used by:264 1727
Symbol 263 MovieClipUses:44Used by:264 1727
Symbol 264 MovieClipUses:262 263Used by:266 1727
Symbol 265 GraphicUsed by:266
Symbol 266 MovieClipUses:229 231 233 238 243 244 246 247 261 264 265Used by:379 1727
Symbol 267 GraphicUsed by:272
Symbol 268 GraphicUsed by:272 1203
Symbol 269 GraphicUsed by:272
Symbol 270 GraphicUsed by:272
Symbol 271 GraphicUsed by:272
Symbol 272 MovieClip {stonepunk_fla.Symbol9copy_107}Uses:267 268 269 270 271Used by:379
Symbol 273 GraphicUsed by:282
Symbol 274 GraphicUsed by:275
Symbol 275 MovieClipUses:274Used by:282 1727
Symbol 276 GraphicUsed by:282 290 1324 1557
Symbol 277 GraphicUsed by:278 1278 1554
Symbol 278 MovieClipUses:277Used by:282 1727
Symbol 279 GraphicUsed by:280
Symbol 280 MovieClipUses:279Used by:282 1727
Symbol 281 GraphicUsed by:282 290 299 1238 1324 1557
Symbol 282 MovieClip {stonepunk_fla.turtle2_109}Uses:273 275 276 278 280 281Used by:300 1727
Symbol 283 GraphicUsed by:290
Symbol 284 GraphicUsed by:285
Symbol 285 MovieClipUses:284Used by:290 1727
Symbol 286 GraphicUsed by:287
Symbol 287 MovieClipUses:286Used by:290 1727
Symbol 288 GraphicUsed by:289
Symbol 289 MovieClipUses:288Used by:290 1727
Symbol 290 MovieClip {stonepunk_fla.turtle_113}Uses:283 285 276 287 289 281Used by:300 1727
Symbol 291 GraphicUsed by:299
Symbol 292 GraphicUsed by:293
Symbol 293 MovieClipUses:292Used by:299 1727
Symbol 294 GraphicUsed by:299 1238
Symbol 295 GraphicUsed by:296 1235
Symbol 296 MovieClipUses:295Used by:299 1727
Symbol 297 GraphicUsed by:298
Symbol 298 MovieClipUses:297Used by:299 1727
Symbol 299 MovieClip {stonepunk_fla.turtle3_117}Uses:291 293 294 296 298 281Used by:300 1727
Symbol 300 MovieClip {stonepunk_fla.turtle_108}Uses:282 290 299Used by:379
Symbol 301 GraphicUsed by:302 1215
Symbol 302 MovieClipUses:301Used by:311 316 321 398
Symbol 303 GraphicUsed by:304 1216
Symbol 304 MovieClipUses:303Used by:311 316 321 398
Symbol 305 GraphicUsed by:306 1217 1385
Symbol 306 MovieClipUses:305Used by:310 315 320 403 405
Symbol 307 GraphicUsed by:308
Symbol 308 MovieClipUses:307Used by:310 403
Symbol 309 GraphicUsed by:310
Symbol 310 MovieClipUses:306 308 309Used by:311 398
Symbol 311 MovieClip {stonepunk_fla.Rodent1_122}Uses:302 304 310Used by:322 1727
Symbol 312 GraphicUsed by:313
Symbol 313 MovieClipUses:312Used by:315
Symbol 314 GraphicUsed by:315
Symbol 315 MovieClipUses:306 313 314Used by:316 398
Symbol 316 MovieClip {stonepunk_fla.Rodent2_128}Uses:302 304 315Used by:322 1727
Symbol 317 GraphicUsed by:318
Symbol 318 MovieClipUses:317Used by:320 405
Symbol 319 GraphicUsed by:320
Symbol 320 MovieClipUses:306 318 319Used by:321 398
Symbol 321 MovieClip {stonepunk_fla.Rodent3_131}Uses:302 304 320Used by:322 1727
Symbol 322 MovieClip {stonepunk_fla.rodent_121}Uses:311 316 321Used by:379
Symbol 323 GraphicUsed by:345
Symbol 324 GraphicUsed by:345
Symbol 325 GraphicUsed by:345
Symbol 326 GraphicUsed by:345
Symbol 327 GraphicUsed by:345
Symbol 328 GraphicUsed by:345
Symbol 329 GraphicUsed by:345
Symbol 330 GraphicUsed by:345
Symbol 331 GraphicUsed by:345
Symbol 332 GraphicUsed by:345
Symbol 333 GraphicUsed by:345
Symbol 334 GraphicUsed by:345
Symbol 335 GraphicUsed by:345
Symbol 336 GraphicUsed by:345
Symbol 337 GraphicUsed by:345
Symbol 338 GraphicUsed by:345
Symbol 339 GraphicUsed by:345
Symbol 340 GraphicUsed by:345
Symbol 341 GraphicUsed by:345
Symbol 342 GraphicUsed by:345
Symbol 343 GraphicUsed by:345
Symbol 344 GraphicUsed by:345
Symbol 345 MovieClipUses:323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344Used by:346 1727
Symbol 346 MovieClip {stonepunk_fla.pter2_135}Uses:345Used by:372 1727
Symbol 347 GraphicUsed by:369
Symbol 348 GraphicUsed by:369
Symbol 349 GraphicUsed by:369
Symbol 350 GraphicUsed by:369
Symbol 351 GraphicUsed by:369
Symbol 352 GraphicUsed by:369
Symbol 353 GraphicUsed by:369
Symbol 354 GraphicUsed by:369
Symbol 355 GraphicUsed by:369
Symbol 356 GraphicUsed by:369
Symbol 357 GraphicUsed by:369
Symbol 358 GraphicUsed by:369
Symbol 359 GraphicUsed by:369
Symbol 360 GraphicUsed by:369
Symbol 361 GraphicUsed by:369
Symbol 362 GraphicUsed by:369
Symbol 363 GraphicUsed by:369
Symbol 364 GraphicUsed by:369
Symbol 365 GraphicUsed by:369
Symbol 366 GraphicUsed by:369
Symbol 367 GraphicUsed by:369
Symbol 368 GraphicUsed by:369
Symbol 369 MovieClipUses:347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368Used by:370 371 1727
Symbol 370 MovieClip {stonepunk_fla.pter2_137}Uses:369Used by:372 1727
Symbol 371 MovieClip {stonepunk_fla.pter2_139}Uses:369Used by:372 1727
Symbol 372 MovieClip {stonepunk_fla.pterodactyl_134}Uses:346 370 371Used by:379
Symbol 373 GraphicUsed by:374
Symbol 374 MovieClipUses:373Used by:379 1727
Symbol 375 ShapeTweeningUsed by:378
Symbol 376 ShapeTweeningUsed by:378
Symbol 377 GraphicUsed by:378
Symbol 378 MovieClipUses:375 376 377Used by:379
Symbol 379 MovieClip {hero}Uses:228 266 272 300 322 372 374 4 378Used by:380 381 382 383 384 1727
Symbol 380 MovieClip {LevelMap1}Uses:134 226 59 379 54Used by:1727
Symbol 381 MovieClip {LevelMap2}Uses:167 226 59 379 54Used by:1727
Symbol 382 MovieClip {LevelMap3}Uses:189 226 59 379 54Used by:1727
Symbol 383 MovieClip {LevelMap4}Uses:200 226 59 379 54Used by:1727
Symbol 384 MovieClip {LevelMap5}Uses:225 226 59 379 54Used by:1727
Symbol 385 GraphicUsed by:386
Symbol 386 MovieClipUses:385Used by:1727
Symbol 387 MovieClip {stonepunk_fla.PushingThingRotater_175}Uses:26Used by:388
Symbol 388 MovieClip {stonepunk_fla.pad_174}Uses:53 387Used by:1727
Symbol 389 GraphicUsed by:393
Symbol 390 GraphicUsed by:391 392
Symbol 391 MovieClip {Level1FrontObj1}Uses:390Used by:392
Symbol 392 MovieClip {Level1FrontObj3}Uses:390 391Used by:393
Symbol 393 MovieClipUses:389 392Used by:1727
Symbol 394 BitmapUsed by:395 1069
Symbol 395 GraphicUses:394Used by:396
Symbol 396 MovieClip {star}Uses:395Used by:397 1727
Symbol 397 MovieClip {star_group_1}Uses:396 4Used by:1727
Symbol 398 MovieClipUses:302 304 310 315 320Used by:1727
Symbol 399 GraphicUsed by:400
Symbol 400 MovieClipUses:399Used by:401
Symbol 401 MovieClip {stonepunk_fla.PushingMotion_182}Uses:400Used by:1727
Symbol 402 GraphicUsed by:403
Symbol 403 MovieClipUses:306 308 402Used by:1727
Symbol 404 GraphicUsed by:405
Symbol 405 MovieClipUses:306 318 404Used by:1727
Symbol 406 GraphicUsed by:407
Symbol 407 MovieClipUses:406Used by:1727
Symbol 408 GraphicUsed by:409
Symbol 409 MovieClipUses:408Used by:423 1727
Symbol 410 GraphicUsed by:423
Symbol 411 FontUsed by:412 413 414 415 416 417 418 419 420 421 422 480 1468 1471
Symbol 412 TextUses:411Used by:423
Symbol 413 TextUses:411Used by:423
Symbol 414 TextUses:411Used by:423
Symbol 415 TextUses:411Used by:423
Symbol 416 TextUses:411Used by:423
Symbol 417 TextUses:411Used by:423
Symbol 418 TextUses:411Used by:423
Symbol 419 TextUses:411Used by:423
Symbol 420 TextUses:411Used by:423
Symbol 421 TextUses:411Used by:423
Symbol 422 TextUses:411Used by:423
Symbol 423 MovieClipUses:410 409 412 413 414 415 416 417 418 419 420 421 422Used by:1727
Symbol 424 GraphicUsed by:425
Symbol 425 MovieClipUses:424Used by:1727
Symbol 426 GraphicUsed by:427
Symbol 427 MovieClipUses:426Used by:1727
Symbol 428 GraphicUsed by:429
Symbol 429 MovieClip {Level1FrontObj2}Uses:428Used by:1727
Symbol 430 GraphicUsed by:431
Symbol 431 MovieClip {Level1FrontObj4}Uses:430Used by:1727
Symbol 432 GraphicUsed by:433
Symbol 433 MovieClip {Level1FrontObj5}Uses:432Used by:1727
Symbol 434 GraphicUsed by:435
Symbol 435 MovieClip {Level1FrontObj6}Uses:434Used by:1727
Symbol 436 GraphicUsed by:438
Symbol 437 MovieClipUses:162Used by:438
Symbol 438 MovieClip {Level2FrontObj1}Uses:153 436 437Used by:1727
Symbol 439 GraphicUsed by:446
Symbol 440 GraphicUsed by:445
Symbol 441 ShapeTweeningUsed by:445
Symbol 442 GraphicUsed by:445
Symbol 443 ShapeTweeningUsed by:445
Symbol 444 GraphicUsed by:445
Symbol 445 MovieClipUses:440 441 442 443 444Used by:446
Symbol 446 MovieClip {Level2FrontObj2}Uses:439 445Used by:1727
Symbol 447 MovieClip {Level3FrontObj4}Uses:174Used by:1727
Symbol 448 GraphicUsed by:449
Symbol 449 MovieClip {Level3FrontObj5}Uses:448Used by:1727
Symbol 450 GraphicUsed by:451
Symbol 451 MovieClipUses:450Used by:1727
Symbol 452 GraphicUsed by:453 1037
Symbol 453 MovieClipUses:452Used by:1727
Symbol 454 GraphicUsed by:455
Symbol 455 MovieClip {Level4FrontObj1}Uses:454Used by:1727
Symbol 456 GraphicUsed by:457
Symbol 457 MovieClip {Level4FrontObj2}Uses:456Used by:1727
Symbol 458 GraphicUsed by:459
Symbol 459 MovieClip {Level4FrontObj3}Uses:458Used by:1727
Symbol 460 GraphicUsed by:461
Symbol 461 MovieClip {Level4FrontObj4}Uses:460Used by:1727
Symbol 462 MovieClip {Level5FrontObj1}Uses:213Used by:465 1727
Symbol 463 GraphicUsed by:464
Symbol 464 MovieClipUses:463Used by:465
Symbol 465 MovieClip {Level5FrontObj2}Uses:462 464Used by:1727
Symbol 466 GraphicUsed by:467
Symbol 467 MovieClipUses:466Used by:468
Symbol 468 MovieClip {Level5FrontObj3}Uses:467Used by:1727
Symbol 469 GraphicUsed by:470
Symbol 470 MovieClipUses:469Used by:475
Symbol 471 GraphicUsed by:472
Symbol 472 MovieClipUses:471Used by:475
Symbol 473 GraphicUsed by:474
Symbol 474 MovieClipUses:473Used by:475
Symbol 475 MovieClip {Level5FrontObj4}Uses:470 472 474Used by:478 1727
Symbol 476 GraphicUsed by:477
Symbol 477 MovieClipUses:476Used by:478
Symbol 478 MovieClip {Level5FrontObj5}Uses:475 477Used by:1727
Symbol 479 GraphicUsed by:481 485
Symbol 480 TextUses:411Used by:481
Symbol 481 MovieClip {AnotherSprite}Uses:479 480 4Used by:1727
Symbol 482 GraphicUsed by:483
Symbol 483 MovieClip {SomeCircleSprite}Uses:482Used by:1727
Symbol 484 TextUses:65Used by:485
Symbol 485 MovieClip {SomeConvexSprite}Uses:479 484 4Used by:1727
Symbol 486 GraphicUsed by:488
Symbol 487 TextUses:65Used by:488
Symbol 488 MovieClip {SomeNonConvexSprite}Uses:486 487Used by:1727
Symbol 489 GraphicUsed by:490
Symbol 490 MovieClip {SomeRectangle}Uses:489Used by:1727
Symbol 491 GraphicUsed by:492
Symbol 492 MovieClipUses:491Used by:493 1084
Symbol 493 MovieClip {food}Uses:492 4Used by:1727
Symbol 494 GraphicUsed by:497
Symbol 495 GraphicUsed by:496
Symbol 496 MovieClipUses:495Used by:497 1410
Symbol 497 MovieClipUses:494 496Used by:498 1133 1622
Symbol 498 MovieClip {gold}Uses:497 4Used by:1727
Symbol 499 GraphicUsed by:520
Symbol 500 GraphicUsed by:520
Symbol 501 GraphicUsed by:520
Symbol 502 GraphicUsed by:520
Symbol 503 GraphicUsed by:520
Symbol 504 GraphicUsed by:520
Symbol 505 GraphicUsed by:520
Symbol 506 GraphicUsed by:520
Symbol 507 GraphicUsed by:520
Symbol 508 GraphicUsed by:520
Symbol 509 GraphicUsed by:520
Symbol 510 GraphicUsed by:520
Symbol 511 GraphicUsed by:520
Symbol 512 GraphicUsed by:520
Symbol 513 GraphicUsed by:520
Symbol 514 GraphicUsed by:520
Symbol 515 GraphicUsed by:520
Symbol 516 GraphicUsed by:520
Symbol 517 GraphicUsed by:520
Symbol 518 GraphicUsed by:520
Symbol 519 GraphicUsed by:520
Symbol 520 MovieClipUses:227 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519Used by:521
Symbol 521 MovieClip {Dino1}Uses:520 4Used by:1727
Symbol 522 GraphicUsed by:543
Symbol 523 GraphicUsed by:543
Symbol 524 GraphicUsed by:543
Symbol 525 GraphicUsed by:543
Symbol 526 GraphicUsed by:543
Symbol 527 GraphicUsed by:543
Symbol 528 GraphicUsed by:543
Symbol 529 GraphicUsed by:543
Symbol 530 GraphicUsed by:543
Symbol 531 GraphicUsed by:543
Symbol 532 GraphicUsed by:543
Symbol 533 GraphicUsed by:543
Symbol 534 GraphicUsed by:543
Symbol 535 GraphicUsed by:543
Symbol 536 GraphicUsed by:543
Symbol 537 GraphicUsed by:543
Symbol 538 GraphicUsed by:543
Symbol 539 GraphicUsed by:543
Symbol 540 GraphicUsed by:543
Symbol 541 GraphicUsed by:543
Symbol 542 GraphicUsed by:543
Symbol 543 MovieClipUses:227 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542Used by:544
Symbol 544 MovieClip {Dino2}Uses:543 4Used by:1727
Symbol 545 GraphicUsed by:565
Symbol 546 GraphicUsed by:565
Symbol 547 GraphicUsed by:565
Symbol 548 GraphicUsed by:565
Symbol 549 GraphicUsed by:565
Symbol 550 GraphicUsed by:565
Symbol 551 GraphicUsed by:565
Symbol 552 GraphicUsed by:565
Symbol 553 GraphicUsed by:565
Symbol 554 GraphicUsed by:565
Symbol 555 GraphicUsed by:565
Symbol 556 GraphicUsed by:565
Symbol 557 GraphicUsed by:565
Symbol 558 GraphicUsed by:565
Symbol 559 GraphicUsed by:565
Symbol 560 GraphicUsed by:565
Symbol 561 GraphicUsed by:565
Symbol 562 GraphicUsed by:565
Symbol 563 GraphicUsed by:565
Symbol 564 GraphicUsed by:565
Symbol 565 MovieClipUses:227 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564Used by:566
Symbol 566 MovieClip {Dino3}Uses:565 4Used by:1727
Symbol 567 GraphicUsed by:593
Symbol 568 GraphicUsed by:593
Symbol 569 GraphicUsed by:570
Symbol 570 MovieClipUses:569Used by:593
Symbol 571 GraphicUsed by:572
Symbol 572 MovieClipUses:571Used by:593
Symbol 573 GraphicUsed by:593
Symbol 574 GraphicUsed by:593
Symbol 575 GraphicUsed by:593
Symbol 576 GraphicUsed by:593
Symbol 577 GraphicUsed by:593
Symbol 578 GraphicUsed by:593
Symbol 579 GraphicUsed by:593
Symbol 580 GraphicUsed by:593
Symbol 581 GraphicUsed by:593
Symbol 582 GraphicUsed by:593
Symbol 583 GraphicUsed by:593
Symbol 584 GraphicUsed by:593
Symbol 585 GraphicUsed by:593
Symbol 586 GraphicUsed by:593
Symbol 587 GraphicUsed by:593
Symbol 588 GraphicUsed by:593
Symbol 589 GraphicUsed by:593
Symbol 590 GraphicUsed by:593
Symbol 591 GraphicUsed by:593
Symbol 592 GraphicUsed by:593
Symbol 593 MovieClipUses:227 567 568 570 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592Used by:594
Symbol 594 MovieClip {Dino4}Uses:593 4Used by:1727
Symbol 595 GraphicUsed by:618
Symbol 596 GraphicUsed by:597
Symbol 597 MovieClipUses:596Used by:618
Symbol 598 GraphicUsed by:618
Symbol 599 GraphicUsed by:618
Symbol 600 GraphicUsed by:618
Symbol 601 GraphicUsed by:618
Symbol 602 GraphicUsed by:618
Symbol 603 GraphicUsed by:618
Symbol 604 GraphicUsed by:618
Symbol 605 GraphicUsed by:618
Symbol 606 GraphicUsed by:618
Symbol 607 GraphicUsed by:618
Symbol 608 GraphicUsed by:618
Symbol 609 GraphicUsed by:618
Symbol 610 GraphicUsed by:618
Symbol 611 GraphicUsed by:618
Symbol 612 GraphicUsed by:618
Symbol 613 GraphicUsed by:618
Symbol 614 GraphicUsed by:618
Symbol 615 GraphicUsed by:618
Symbol 616 GraphicUsed by:618
Symbol 617 GraphicUsed by:618
Symbol 618 MovieClipUses:227 595 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617Used by:619
Symbol 619 MovieClip {Dino5}Uses:618 4Used by:1727
Symbol 620 GraphicUsed by:640
Symbol 621 GraphicUsed by:640
Symbol 622 GraphicUsed by:640
Symbol 623 GraphicUsed by:640
Symbol 624 GraphicUsed by:640
Symbol 625 GraphicUsed by:640
Symbol 626 GraphicUsed by:640
Symbol 627 GraphicUsed by:640
Symbol 628 GraphicUsed by:640
Symbol 629 GraphicUsed by:640
Symbol 630 GraphicUsed by:640
Symbol 631 GraphicUsed by:640
Symbol 632 GraphicUsed by:640
Symbol 633 GraphicUsed by:640
Symbol 634 GraphicUsed by:640
Symbol 635 GraphicUsed by:640
Symbol 636 GraphicUsed by:640
Symbol 637 GraphicUsed by:640
Symbol 638 GraphicUsed by:640
Symbol 639 GraphicUsed by:640
Symbol 640 MovieClipUses:620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639Used by:641
Symbol 641 MovieClip {Dino6}Uses:227 640 4Used by:1727
Symbol 642 GraphicUsed by:663
Symbol 643 GraphicUsed by:663
Symbol 644 GraphicUsed by:663
Symbol 645 GraphicUsed by:663
Symbol 646 GraphicUsed by:663
Symbol 647 GraphicUsed by:663
Symbol 648 GraphicUsed by:663
Symbol 649 GraphicUsed by:663
Symbol 650 GraphicUsed by:663
Symbol 651 GraphicUsed by:663
Symbol 652 GraphicUsed by:663
Symbol 653 GraphicUsed by:663
Symbol 654 GraphicUsed by:663
Symbol 655 GraphicUsed by:663
Symbol 656 GraphicUsed by:663
Symbol 657 GraphicUsed by:663
Symbol 658 GraphicUsed by:663
Symbol 659 GraphicUsed by:663
Symbol 660 GraphicUsed by:663
Symbol 661 GraphicUsed by:663
Symbol 662 GraphicUsed by:663
Symbol 663 MovieClipUses:642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662Used by:664
Symbol 664 MovieClip {Dino7}Uses:227 663 4Used by:1727
Symbol 665 GraphicUsed by:685
Symbol 666 GraphicUsed by:685
Symbol 667 GraphicUsed by:685
Symbol 668 GraphicUsed by:685
Symbol 669 GraphicUsed by:685
Symbol 670 GraphicUsed by:685
Symbol 671 GraphicUsed by:685
Symbol 672 GraphicUsed by:685
Symbol 673 GraphicUsed by:685
Symbol 674 GraphicUsed by:685
Symbol 675 GraphicUsed by:685
Symbol 676 GraphicUsed by:685
Symbol 677 GraphicUsed by:685
Symbol 678 GraphicUsed by:685
Symbol 679 GraphicUsed by:685
Symbol 680 GraphicUsed by:685
Symbol 681 GraphicUsed by:685
Symbol 682 GraphicUsed by:685
Symbol 683 GraphicUsed by:685
Symbol 684 GraphicUsed by:685
Symbol 685 MovieClipUses:665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684Used by:686
Symbol 686 MovieClip {Dino8}Uses:227 685 4Used by:1727
Symbol 687 GraphicUsed by:707
Symbol 688 GraphicUsed by:707
Symbol 689 GraphicUsed by:707
Symbol 690 GraphicUsed by:707
Symbol 691 GraphicUsed by:707
Symbol 692 GraphicUsed by:707
Symbol 693 GraphicUsed by:707
Symbol 694 GraphicUsed by:707
Symbol 695 GraphicUsed by:707
Symbol 696 GraphicUsed by:707
Symbol 697 GraphicUsed by:707
Symbol 698 GraphicUsed by:707
Symbol 699 GraphicUsed by:707
Symbol 700 GraphicUsed by:707
Symbol 701 GraphicUsed by:707
Symbol 702 GraphicUsed by:707
Symbol 703 GraphicUsed by:707
Symbol 704 GraphicUsed by:707
Symbol 705 GraphicUsed by:707
Symbol 706 GraphicUsed by:707
Symbol 707 MovieClipUses:687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706Used by:708
Symbol 708 MovieClip {Dino9}Uses:227 707 4Used by:1727
Symbol 709 GraphicUsed by:729
Symbol 710 GraphicUsed by:729
Symbol 711 GraphicUsed by:729
Symbol 712 GraphicUsed by:729
Symbol 713 GraphicUsed by:729
Symbol 714 GraphicUsed by:729
Symbol 715 GraphicUsed by:729
Symbol 716 GraphicUsed by:729
Symbol 717 GraphicUsed by:729
Symbol 718 GraphicUsed by:729
Symbol 719 GraphicUsed by:729
Symbol 720 GraphicUsed by:729
Symbol 721 GraphicUsed by:729
Symbol 722 GraphicUsed by:729
Symbol 723 GraphicUsed by:729
Symbol 724 GraphicUsed by:729
Symbol 725 GraphicUsed by:729
Symbol 726 GraphicUsed by:729
Symbol 727 GraphicUsed by:729
Symbol 728 GraphicUsed by:729
Symbol 729 MovieClipUses:709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728Used by:730
Symbol 730 MovieClip {Dino10}Uses:227 729 4Used by:1727
Symbol 731 GraphicUsed by:781
Symbol 732 GraphicUsed by:781
Symbol 733 GraphicUsed by:781
Symbol 734 GraphicUsed by:781
Symbol 735 GraphicUsed by:781
Symbol 736 GraphicUsed by:781
Symbol 737 GraphicUsed by:781
Symbol 738 GraphicUsed by:781
Symbol 739 GraphicUsed by:781
Symbol 740 GraphicUsed by:781
Symbol 741 GraphicUsed by:781
Symbol 742 GraphicUsed by:781
Symbol 743 GraphicUsed by:781
Symbol 744 GraphicUsed by:781
Symbol 745 GraphicUsed by:781
Symbol 746 GraphicUsed by:781
Symbol 747 GraphicUsed by:781
Symbol 748 GraphicUsed by:781
Symbol 749 GraphicUsed by:781
Symbol 750 GraphicUsed by:781
Symbol 751 GraphicUsed by:781
Symbol 752 GraphicUsed by:781
Symbol 753 GraphicUsed by:781
Symbol 754 GraphicUsed by:781
Symbol 755 GraphicUsed by:781
Symbol 756 GraphicUsed by:781
Symbol 757 GraphicUsed by:781
Symbol 758 GraphicUsed by:781
Symbol 759 GraphicUsed by:781
Symbol 760 GraphicUsed by:781
Symbol 761 GraphicUsed by:781
Symbol 762 GraphicUsed by:781
Symbol 763 GraphicUsed by:781
Symbol 764 GraphicUsed by:781
Symbol 765 GraphicUsed by:781
Symbol 766 GraphicUsed by:781
Symbol 767 GraphicUsed by:781
Symbol 768 GraphicUsed by:781
Symbol 769 GraphicUsed by:781
Symbol 770 GraphicUsed by:781
Symbol 771 GraphicUsed by:781
Symbol 772 GraphicUsed by:781
Symbol 773 GraphicUsed by:781
Symbol 774 GraphicUsed by:781
Symbol 775 GraphicUsed by:781
Symbol 776 GraphicUsed by:781
Symbol 777 GraphicUsed by:781
Symbol 778 GraphicUsed by:781
Symbol 779 GraphicUsed by:781
Symbol 780 GraphicUsed by:781
Symbol 781 MovieClipUses:731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780Used by:782
Symbol 782 MovieClip {Dino11}Uses:227 781 4Used by:1727
Symbol 783 GraphicUsed by:795
Symbol 784 GraphicUsed by:795
Symbol 785 GraphicUsed by:795
Symbol 786 GraphicUsed by:795
Symbol 787 GraphicUsed by:795
Symbol 788 GraphicUsed by:795
Symbol 789 GraphicUsed by:795
Symbol 790 GraphicUsed by:795
Symbol 791 GraphicUsed by:795
Symbol 792 GraphicUsed by:795
Symbol 793 GraphicUsed by:795
Symbol 794 GraphicUsed by:795
Symbol 795 MovieClipUses:783 784 785 786 787 788 789 790 791 792 793 794Used by:796
Symbol 796 MovieClip {Dino12}Uses:227 795 4Used by:1727
Symbol 797 GraphicUsed by:859
Symbol 798 GraphicUsed by:859
Symbol 799 GraphicUsed by:859
Symbol 800 GraphicUsed by:859
Symbol 801 GraphicUsed by:859
Symbol 802 GraphicUsed by:859
Symbol 803 GraphicUsed by:859
Symbol 804 GraphicUsed by:859
Symbol 805 GraphicUsed by:859
Symbol 806 GraphicUsed by:859
Symbol 807 GraphicUsed by:859
Symbol 808 GraphicUsed by:859
Symbol 809 GraphicUsed by:859
Symbol 810 GraphicUsed by:859
Symbol 811 GraphicUsed by:859
Symbol 812 GraphicUsed by:859
Symbol 813 GraphicUsed by:859
Symbol 814 GraphicUsed by:859
Symbol 815 GraphicUsed by:859
Symbol 816 GraphicUsed by:859
Symbol 817 GraphicUsed by:859
Symbol 818 GraphicUsed by:859
Symbol 819 GraphicUsed by:859
Symbol 820 GraphicUsed by:859
Symbol 821 GraphicUsed by:859
Symbol 822 GraphicUsed by:859
Symbol 823 GraphicUsed by:859
Symbol 824 GraphicUsed by:859
Symbol 825 GraphicUsed by:859
Symbol 826 GraphicUsed by:859
Symbol 827 GraphicUsed by:859
Symbol 828 GraphicUsed by:859
Symbol 829 GraphicUsed by:859
Symbol 830 GraphicUsed by:859
Symbol 831 GraphicUsed by:859
Symbol 832 GraphicUsed by:859
Symbol 833 GraphicUsed by:859
Symbol 834 GraphicUsed by:859
Symbol 835 GraphicUsed by:859
Symbol 836 GraphicUsed by:859
Symbol 837 GraphicUsed by:859
Symbol 838 GraphicUsed by:859
Symbol 839 GraphicUsed by:859
Symbol 840 GraphicUsed by:859
Symbol 841 GraphicUsed by:859
Symbol 842 GraphicUsed by:859
Symbol 843 GraphicUsed by:859
Symbol 844 GraphicUsed by:859
Symbol 845 GraphicUsed by:859
Symbol 846 GraphicUsed by:859
Symbol 847 GraphicUsed by:859
Symbol 848 GraphicUsed by:859
Symbol 849 GraphicUsed by:859
Symbol 850 GraphicUsed by:859
Symbol 851 GraphicUsed by:859
Symbol 852 GraphicUsed by:859
Symbol 853 GraphicUsed by:859
Symbol 854 GraphicUsed by:859
Symbol 855 GraphicUsed by:859
Symbol 856 GraphicUsed by:859
Symbol 857 GraphicUsed by:859
Symbol 858 GraphicUsed by:859
Symbol 859 MovieClipUses:797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858Used by:1727
Symbol 860 GraphicUsed by:880
Symbol 861 GraphicUsed by:880
Symbol 862 GraphicUsed by:880
Symbol 863 GraphicUsed by:880
Symbol 864 GraphicUsed by:880
Symbol 865 GraphicUsed by:880
Symbol 866 GraphicUsed by:880
Symbol 867 GraphicUsed by:880
Symbol 868 GraphicUsed by:880
Symbol 869 GraphicUsed by:880
Symbol 870 GraphicUsed by:880
Symbol 871 GraphicUsed by:880
Symbol 872 GraphicUsed by:880
Symbol 873 GraphicUsed by:880
Symbol 874 GraphicUsed by:880
Symbol 875 GraphicUsed by:880
Symbol 876 GraphicUsed by:880
Symbol 877 GraphicUsed by:880
Symbol 878 GraphicUsed by:880
Symbol 879 GraphicUsed by:880
Symbol 880 MovieClipUses:860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879Used by:1727
Symbol 881 GraphicUsed by:902
Symbol 882 GraphicUsed by:902
Symbol 883 GraphicUsed by:902
Symbol 884 GraphicUsed by:902
Symbol 885 GraphicUsed by:902
Symbol 886 GraphicUsed by:902
Symbol 887 GraphicUsed by:902
Symbol 888 GraphicUsed by:902
Symbol 889 GraphicUsed by:902
Symbol 890 GraphicUsed by:902
Symbol 891 GraphicUsed by:902
Symbol 892 GraphicUsed by:902
Symbol 893 GraphicUsed by:902
Symbol 894 GraphicUsed by:902
Symbol 895 GraphicUsed by:902
Symbol 896 GraphicUsed by:902
Symbol 897 GraphicUsed by:902
Symbol 898 GraphicUsed by:902
Symbol 899 GraphicUsed by:902
Symbol 900 GraphicUsed by:902
Symbol 901 GraphicUsed by:902
Symbol 902 MovieClipUses:881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901Used by:1727
Symbol 903 MovieClip {dino}Uses:4Used by:1727
Symbol 904 GraphicUsed by:908
Symbol 905 GraphicUsed by:906
Symbol 906 MovieClipUses:905Used by:908 1727
Symbol 907 GraphicUsed by:908
Symbol 908 MovieClip {dino_blue}Uses:904 906 907 4Used by:1727
Symbol 909 GraphicUsed by:911
Symbol 910 GraphicUsed by:911
Symbol 911 MovieClip {stonepunk_fla.dinocopy_261}Uses:909 4 910Used by:1727
Symbol 912 GraphicUsed by:913
Symbol 913 MovieClip {dino_green}Uses:912 4Used by:1727
Symbol 914 GraphicUsed by:915
Symbol 915 MovieClip {dino_red}Uses:914 4Used by:1727
Symbol 916 GraphicUsed by:917
Symbol 917 MovieClip {stonepunk_fla.Stone1_264}Uses:916 4Used by:1727
Symbol 918 GraphicUsed by:919
Symbol 919 MovieClip {Stone1}Uses:918 4Used by:1727
Symbol 920 GraphicUsed by:921
Symbol 921 MovieClip {Stone2}Uses:920 4Used by:1727
Symbol 922 GraphicUsed by:923
Symbol 923 MovieClip {Stone3}Uses:922 4Used by:1727
Symbol 924 GraphicUsed by:925
Symbol 925 MovieClip {Stone4}Uses:924 4Used by:1727
Symbol 926 GraphicUsed by:927
Symbol 927 MovieClip {Stone5}Uses:926 4Used by:1727
Symbol 928 GraphicUsed by:937
Symbol 929 GraphicUsed by:937
Symbol 930 GraphicUsed by:937
Symbol 931 GraphicUsed by:937
Symbol 932 GraphicUsed by:937
Symbol 933 GraphicUsed by:937
Symbol 934 GraphicUsed by:937
Symbol 935 GraphicUsed by:937
Symbol 936 GraphicUsed by:937
Symbol 937 MovieClipUses:928 929 930 931 932 933 934 935 936Used by:938
Symbol 938 MovieClip {Bird1}Uses:937 4Used by:1727
Symbol 939 GraphicUsed by:958
Symbol 940 GraphicUsed by:958
Symbol 941 GraphicUsed by:958
Symbol 942 GraphicUsed by:958
Symbol 943 GraphicUsed by:958
Symbol 944 GraphicUsed by:958
Symbol 945 GraphicUsed by:958
Symbol 946 GraphicUsed by:958
Symbol 947 GraphicUsed by:958
Symbol 948 GraphicUsed by:958
Symbol 949 GraphicUsed by:958
Symbol 950 GraphicUsed by:958
Symbol 951 GraphicUsed by:958
Symbol 952 GraphicUsed by:958
Symbol 953 GraphicUsed by:958
Symbol 954 GraphicUsed by:958
Symbol 955 GraphicUsed by:958
Symbol 956 GraphicUsed by:958
Symbol 957 GraphicUsed by:958
Symbol 958 MovieClipUses:939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957Used by:959
Symbol 959 MovieClip {Bird2}Uses:958 4Used by:1727
Symbol 960 GraphicUsed by:981
Symbol 961 GraphicUsed by:981
Symbol 962 GraphicUsed by:981
Symbol 963 GraphicUsed by:981
Symbol 964 GraphicUsed by:981
Symbol 965 GraphicUsed by:981
Symbol 966 GraphicUsed by:981
Symbol 967 GraphicUsed by:981
Symbol 968 GraphicUsed by:981
Symbol 969 GraphicUsed by:981
Symbol 970 GraphicUsed by:981
Symbol 971 GraphicUsed by:981
Symbol 972 GraphicUsed by:981
Symbol 973 GraphicUsed by:981
Symbol 974 GraphicUsed by:981
Symbol 975 GraphicUsed by:981
Symbol 976 GraphicUsed by:981
Symbol 977 GraphicUsed by:981
Symbol 978 GraphicUsed by:981
Symbol 979 GraphicUsed by:981
Symbol 980 GraphicUsed by:981
Symbol 981 MovieClipUses:960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980Used by:982
Symbol 982 MovieClip {Bird3}Uses:981 4Used by:1727
Symbol 983 GraphicUsed by:1003
Symbol 984 GraphicUsed by:1003
Symbol 985 GraphicUsed by:1003
Symbol 986 GraphicUsed by:1003
Symbol 987 GraphicUsed by:1003
Symbol 988 GraphicUsed by:1003
Symbol 989 GraphicUsed by:1003
Symbol 990 GraphicUsed by:1003
Symbol 991 GraphicUsed by:1003
Symbol 992 GraphicUsed by:1003
Symbol 993 GraphicUsed by:1003
Symbol 994 GraphicUsed by:1003
Symbol 995 GraphicUsed by:1003
Symbol 996 GraphicUsed by:1003
Symbol 997 GraphicUsed by:1003
Symbol 998 GraphicUsed by:1003
Symbol 999 GraphicUsed by:1003
Symbol 1000 GraphicUsed by:1003
Symbol 1001 GraphicUsed by:1003
Symbol 1002 GraphicUsed by:1003
Symbol 1003 MovieClipUses:983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002Used by:1004
Symbol 1004 MovieClip {Bird4}Uses:1003 4Used by:1727
Symbol 1005 GraphicUsed by:1025
Symbol 1006 GraphicUsed by:1025
Symbol 1007 GraphicUsed by:1025
Symbol 1008 GraphicUsed by:1025
Symbol 1009 GraphicUsed by:1025
Symbol 1010 GraphicUsed by:1025
Symbol 1011 GraphicUsed by:1025
Symbol 1012 GraphicUsed by:1025
Symbol 1013 GraphicUsed by:1025
Symbol 1014 GraphicUsed by:1025
Symbol 1015 GraphicUsed by:1025
Symbol 1016 GraphicUsed by:1025
Symbol 1017 GraphicUsed by:1025
Symbol 1018 GraphicUsed by:1025
Symbol 1019 GraphicUsed by:1025
Symbol 1020 GraphicUsed by:1025
Symbol 1021 GraphicUsed by:1025
Symbol 1022 GraphicUsed by:1025
Symbol 1023 GraphicUsed by:1025
Symbol 1024 GraphicUsed by:1025
Symbol 1025 MovieClipUses:1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024Used by:1026
Symbol 1026 MovieClip {Bird5}Uses:1025 4Used by:1727
Symbol 1027 GraphicUsed by:1028 1673
Symbol 1028 MovieClipUses:1027Used by:1049 1727
Symbol 1029 GraphicUsed by:1030
Symbol 1030 MovieClipUses:1029Used by:1048 1727
Symbol 1031 GraphicUsed by:1032
Symbol 1032 MovieClipUses:1031Used by:1042 1043 1727
Symbol 1033 GraphicUsed by:1034
Symbol 1034 MovieClipUses:1033Used by:1044 1047 1727
Symbol 1035 GraphicUsed by:1036
Symbol 1036 MovieClipUses:1035Used by:1045 1727
Symbol 1037 MovieClipUses:452Used by:1045 1727
Symbol 1038 GraphicUsed by:1039
Symbol 1039 MovieClipUses:1038Used by:1046 1727
Symbol 1040 GraphicUsed by:1041
Symbol 1041 MovieClipUses:1040Used by:1050 1727
Symbol 1042 MovieClip {Bush1}Uses:1032 4Used by:1727
Symbol 1043 MovieClip {Bush2}Uses:1032 4Used by:1727
Symbol 1044 MovieClip {Bush3}Uses:1034 4Used by:1727
Symbol 1045 MovieClip {Bush4}Uses:1036 1037 4Used by:1727
Symbol 1046 MovieClip {Bush5}Uses:1039 4Used by:1727
Symbol 1047 MovieClip {Bush6}Uses:1034 4Used by:1727
Symbol 1048 MovieClip {Bush7}Uses:1030 4Used by:1727
Symbol 1049 MovieClip {Bush8}Uses:1028 4Used by:1727
Symbol 1050 MovieClip {Bush9}Uses:1041 4Used by:1727
Symbol 1051 GraphicUsed by:1052
Symbol 1052 MovieClip {flower}Uses:1051 4Used by:1727
Symbol 1053 GraphicUsed by:1054
Symbol 1054 MovieClipUses:1053Used by:1727
Symbol 1055 GraphicUsed by:1056
Symbol 1056 MovieClipUses:1055Used by:1057
Symbol 1057 MovieClip {water}Uses:1056 4Used by:1727
Symbol 1058 GraphicUsed by:1727
Symbol 1059 BitmapUsed by:1060
Symbol 1060 GraphicUses:1059Used by:1061
Symbol 1061 MovieClip {planet}Uses:1060 4Used by:1727
Symbol 1062 BitmapUsed by:1063
Symbol 1063 GraphicUses:1062Used by:1064
Symbol 1064 MovieClip {planet2}Uses:1063 4Used by:1727
Symbol 1065 GraphicUsed by:1066
Symbol 1066 MovieClipUses:1065Used by:1269 1727
Symbol 1067 GraphicUsed by:1068
Symbol 1068 MovieClipUses:1067Used by:1133 1269 1727
Symbol 1069 GraphicUses:394Used by:1727
Symbol 1070 GraphicUsed by:1071 1096 1099 1107 1132
Symbol 1071 MovieClipUses:1070Used by:1095 1098 1106 1131 1727
Symbol 1072 GraphicUsed by:1073 1384 1576
Symbol 1073 MovieClipUses:1072Used by:1075 1280 1549 1610 1618
Symbol 1074 TextUses:72Used by:1075
Symbol 1075 MovieClipUses:1073 1074Used by:1622 1727
Symbol 1076 GraphicUsed by:1077
Symbol 1077 MovieClipUses:1076Used by:1269 1727
Symbol 1078 GraphicUsed by:1079
Symbol 1079 MovieClipUses:1078Used by:1269 1727
Symbol 1080 BitmapUsed by:1081
Symbol 1081 GraphicUses:1080Used by:1082
Symbol 1082 MovieClip {Ufo}Uses:1081 4Used by:1727
Symbol 1083 TextUses:72Used by:1084
Symbol 1084 MovieClipUses:492 1083Used by:1133 1727
Symbol 1085 GraphicUsed by:1087
Symbol 1086 TextUses:65Used by:1087
Symbol 1087 MovieClipUses:1085 1086Used by:1727
Symbol 1088 GraphicUsed by:1091 1531
Symbol 1089 FontUsed by:1090 1143 1145 1147 1149 1646
Symbol 1090 TextUses:1089Used by:1091 1531
Symbol 1091 MovieClipUses:1088 1090Used by:1092 1727
Symbol 1092 MovieClip {stonepunk_fla.PauseMC_315}Uses:1091Used by:1133 1727
Symbol 1093 GraphicUsed by:1133
Symbol 1094 TextUses:72Used by:1095 1096
Symbol 1095 MovieClipUses:1071 1094Used by:1096
Symbol 1096 ButtonUses:1095 1070 1094Used by:1133
Symbol 1097 TextUses:72Used by:1098 1099
Symbol 1098 MovieClipUses:1071 1097Used by:1099
Symbol 1099 ButtonUses:1098 1070 1097Used by:1133
Symbol 1100 EditableTextUses:72Used by:1133
Symbol 1101 EditableTextUses:72Used by:1133
Symbol 1102 EditableTextUses:72Used by:1133
Symbol 1103 EditableTextUses:72Used by:1133
Symbol 1104 EditableTextUses:72Used by:1133
Symbol 1105 TextUses:72Used by:1106 1107
Symbol 1106 MovieClipUses:1071 1105Used by:1107
Symbol 1107 ButtonUses:1106 1070 1105Used by:1133
Symbol 1108 TextUses:72Used by:1133
Symbol 1109 GraphicUsed by:1110
Symbol 1110 MovieClipUses:1109Used by:1119 1128 1135
Symbol 1111 GraphicUsed by:1119
Symbol 1112 GraphicUsed by:1113
Symbol 1113 MovieClipUses:1112Used by:1119 1128
Symbol 1114 GraphicUsed by:1115
Symbol 1115 MovieClipUses:1114Used by:1119 1128
Symbol 1116 GraphicUsed by:1117
Symbol 1117 MovieClipUses:1116Used by:1119
Symbol 1118 TextUses:72Used by:1119
Symbol 1119 MovieClipUses:1110 1111 1113 1115 1117 1118Used by:1120
Symbol 1120 MovieClip {stonepunk_fla.adf_323}Uses:1119Used by:1133
Symbol 1121 GraphicUsed by:1128
Symbol 1122 TextUses:72Used by:1128
Symbol 1123 TextUses:72Used by:1128
Symbol 1124 GraphicUsed by:1125
Symbol 1125 MovieClipUses:1124Used by:1128
Symbol 1126 TextUses:73Used by:1128
Symbol 1127 TextUses:73Used by:1128
Symbol 1128 MovieClipUses:1110 1121 1122 1123 1125 1115 1126 1113 1127Used by:1129
Symbol 1129 MovieClip {stonepunk_fla.asdfag_329}Uses:1128Used by:1133
Symbol 1130 TextUses:72Used by:1131 1132
Symbol 1131 MovieClipUses:1071 1130Used by:1132
Symbol 1132 ButtonUses:1131 1070 1130Used by:1133
Symbol 1133 MovieClip {game.ui.PlayWindowUI}Uses:1093 1096 1099 1100 1101 1102 1103 497 1104 1107 1068 1108 1120 1129 1084 1132 1092Used by:1727
Symbol 1134 TextUses:72Used by:1135
Symbol 1135 MovieClipUses:1110 1134Used by:1136
Symbol 1136 MovieClipUses:1135Used by:1416 1727
Symbol 1137 GraphicUsed by:1138 1139 1142 1144 1146 1148 1150
Symbol 1138 MovieClipUses:1137Used by:1146 1727
Symbol 1139 MovieClipUses:1137Used by:1144 1148 1727
Symbol 1140 GraphicUsed by:1141
Symbol 1141 MovieClipUses:1140Used by:1727
Symbol 1142 MovieClipUses:1137Used by:1150 1727
Symbol 1143 TextUses:1089Used by:1144
Symbol 1144 ButtonUses:1139 1143 1137Used by:1727
Symbol 1145 TextUses:1089Used by:1146
Symbol 1146 ButtonUses:1138 1145 1137Used by:1727
Symbol 1147 TextUses:1089Used by:1148
Symbol 1148 ButtonUses:1139 1147 1137Used by:1727
Symbol 1149 TextUses:1089Used by:1150
Symbol 1150 ButtonUses:1142 1149 1137Used by:1727
Symbol 1151 GraphicUsed by:1183 1701
Symbol 1152 GraphicUsed by:1183 1701
Symbol 1153 GraphicUsed by:1183 1701
Symbol 1154 GraphicUsed by:1183 1701
Symbol 1155 GraphicUsed by:1183 1701
Symbol 1156 GraphicUsed by:1183 1701
Symbol 1157 GraphicUsed by:1183 1701
Symbol 1158 GraphicUsed by:1183 1701
Symbol 1159 GraphicUsed by:1183 1701
Symbol 1160 GraphicUsed by:1183 1701
Symbol 1161 GraphicUsed by:1183 1701
Symbol 1162 GraphicUsed by:1183 1701
Symbol 1163 GraphicUsed by:1183 1701
Symbol 1164 GraphicUsed by:1183 1701
Symbol 1165 GraphicUsed by:1183 1701
Symbol 1166 GraphicUsed by:1183 1701
Symbol 1167 GraphicUsed by:1183 1701
Symbol 1168 GraphicUsed by:1183 1701
Symbol 1169 GraphicUsed by:1183 1701
Symbol 1170 GraphicUsed by:1183 1701
Symbol 1171 GraphicUsed by:1183 1701
Symbol 1172 GraphicUsed by:1183 1701
Symbol 1173 GraphicUsed by:1183 1701
Symbol 1174 GraphicUsed by:1183 1701
Symbol 1175 GraphicUsed by:1183 1701
Symbol 1176 GraphicUsed by:1183 1701
Symbol 1177 GraphicUsed by:1183 1701
Symbol 1178 GraphicUsed by:1183 1701
Symbol 1179 GraphicUsed by:1183 1701
Symbol 1180 GraphicUsed by:1183 1701
Symbol 1181 GraphicUsed by:1183 1701
Symbol 1182 GraphicUsed by:1183 1701
Symbol 1183 MovieClipUses:1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182Used by:1240 1727
Symbol 1184 GraphicUsed by:1242
Symbol 1185 GraphicUsed by:1186
Symbol 1186 MovieClipUses:1185Used by:1239 1242
Symbol 1187 GraphicUsed by:1188
Symbol 1188 MovieClipUses:1187Used by:1242
Symbol 1189 GraphicUsed by:1190
Symbol 1190 MovieClipUses:1189Used by:1242
Symbol 1191 GraphicUsed by:1242
Symbol 1192 GraphicUsed by:1193
Symbol 1193 MovieClipUses:1192Used by:1242
Symbol 1194 GraphicUsed by:1242
Symbol 1195 GraphicUsed by:1196 1242
Symbol 1196 MovieClipUses:1195Used by:1242
Symbol 1197 GraphicUsed by:1242
Symbol 1198 GraphicUsed by:1239
Symbol 1199 GraphicUsed by:1203
Symbol 1200 GraphicUsed by:1203
Symbol 1201 GraphicUsed by:1203
Symbol 1202 GraphicUsed by:1203
Symbol 1203 MovieClipUses:1199 268 1200 1201 1202Used by:1239
Symbol 1204 MovieClipUses:230Used by:1239
Symbol 1205 GraphicUsed by:1206
Symbol 1206 MovieClipUses:1205Used by:1239
Symbol 1207 MovieClipUses:234Used by:1209
Symbol 1208 MovieClipUses:236Used by:1209
Symbol 1209 MovieClipUses:1207 1208Used by:1239
Symbol 1210 GraphicUsed by:1211
Symbol 1211 MovieClipUses:1210Used by:1214
Symbol 1212 GraphicUsed by:1213
Symbol 1213 MovieClipUses:1212Used by:1214
Symbol 1214 MovieClipUses:1211 1213Used by:1239
Symbol 1215 MovieClipUses:301Used by:1223
Symbol 1216 MovieClipUses:303Used by:1223
Symbol 1217 MovieClipUses:305Used by:1221 1280
Symbol 1218 GraphicUsed by:1219
Symbol 1219 MovieClipUses:1218Used by:1221
Symbol 1220 GraphicUsed by:1221
Symbol 1221 MovieClipUses:1217 1219 1220Used by:1222
Symbol 1222 MovieClipUses:1221Used by:1223
Symbol 1223 MovieClipUses:1215 1216 1222Used by:1239
Symbol 1224 GraphicUsed by:1225
Symbol 1225 MovieClipUses:1224Used by:1239
Symbol 1226 MovieClipUses:42Used by:1228 1297
Symbol 1227 MovieClipUses:44Used by:1228
Symbol 1228 MovieClipUses:1226 1227Used by:1239
Symbol 1229 GraphicUsed by:1230
Symbol 1230 MovieClipUses:1229Used by:1231
Symbol 1231 MovieClipUses:1230Used by:1239
Symbol 1232 GraphicUsed by:1238
Symbol 1233 GraphicUsed by:1234
Symbol 1234 MovieClipUses:1233Used by:1238
Symbol 1235 MovieClipUses:295Used by:1238
Symbol 1236 GraphicUsed by:1237
Symbol 1237 MovieClipUses:1236Used by:1238
Symbol 1238 MovieClipUses:1232 1234 294 1235 1237 281Used by:1239
Symbol 1239 MovieClipUses:1198 1203 1204 1206 1209 1214 1223 1225 1186 1228 1231 1238Used by:1242 1727
Symbol 1240 MovieClipUses:1183Used by:1242
Symbol 1241 TextUses:72Used by:1242
Symbol 1242 MovieClipUses:1184 1186 1188 1190 1191 1193 1194 1195 1196 1197 1239 1240 1241Used by:1269 1727
Symbol 1243 EditableTextUses:72Used by:1244
Symbol 1244 MovieClip {stonepunk_fla.StatCaptionInner_380}Uses:1243Used by:1245
Symbol 1245 MovieClip {stonepunk_fla.StatCaption_379}Uses:1244Used by:1269 1727
Symbol 1246 GraphicUsed by:1269
Symbol 1247 GraphicUsed by:1248
Symbol 1248 MovieClipUses:1247Used by:1269
Symbol 1249 TextUses:73Used by:1269
Symbol 1250 EditableTextUses:72Used by:1269
Symbol 1251 TextUses:73Used by:1269
Symbol 1252 EditableTextUses:72Used by:1269
Symbol 1253 TextUses:73Used by:1269
Symbol 1254 EditableTextUses:72Used by:1269
Symbol 1255 TextUses:73Used by:1269
Symbol 1256 EditableTextUses:72Used by:1269
Symbol 1257 TextUses:73Used by:1269
Symbol 1258 EditableTextUses:72Used by:1269
Symbol 1259 GraphicUsed by:1260 1262 1266 1449 1651
Symbol 1260 MovieClipUses:1259Used by:1262 1266 1449 1651
Symbol 1261 TextUses:73Used by:1262
Symbol 1262 ButtonUses:1260 1261 1259Used by:1269 1549 1622
Symbol 1263 GraphicUsed by:1264
Symbol 1264 MovieClipUses:1263Used by:1269
Symbol 1265 TextUses:73Used by:1266
Symbol 1266 ButtonUses:1260 1265 1259Used by:1269 1457 1622
Symbol 1267 TextUses:73Used by:1268
Symbol 1268 ButtonUses:98 101 1267 78 80 81 82 83 84 85 86 88 99Used by:1269
Symbol 1269 MovieClip {game.ui.Statistics}Uses:1246 1248 1249 1250 1251 1252 1245 1253 1254 1255 1256 1257 1258 1262 1264 1077 1066 1079 1068 1266 1268 1242Used by:1727
Symbol 1270 BitmapUsed by:1271 1306
Symbol 1271 GraphicUses:1270Used by:1727
Symbol 1272 GraphicUsed by:1273
Symbol 1273 MovieClipUses:1272Used by:1324 1727
Symbol 1274 GraphicUsed by:1275
Symbol 1275 MovieClipUses:1274Used by:1727
Symbol 1276 GraphicUsed by:1277
Symbol 1277 MovieClipUses:1276Used by:1324 1727
Symbol 1278 MovieClipUses:277Used by:1324 1727
Symbol 1279 GraphicUsed by:1280
Symbol 1280 MovieClipUses:1279 1073 1217Used by:1727
Symbol 1281 GraphicUsed by:1282 1486 1653
Symbol 1282 MovieClipUses:1281Used by:1486 1653 1727
Symbol 1283 GraphicUsed by:1284 1649
Symbol 1284 MovieClipUses:1283Used by:1649 1727
Symbol 1285 GraphicUsed by:1286
Symbol 1286 MovieClipUses:1285Used by:1727
Symbol 1287 GraphicUsed by:1288
Symbol 1288 MovieClipUses:1287Used by:1727
Symbol 1289 GraphicUsed by:1290
Symbol 1290 MovieClipUses:1289Used by:1727
Symbol 1291 GraphicUsed by:1292
Symbol 1292 MovieClipUses:1291Used by:1727
Symbol 1293 GraphicUsed by:1294
Symbol 1294 MovieClipUses:1293Used by:1727
Symbol 1295 GraphicUsed by:1297
Symbol 1296 GraphicUsed by:1297
Symbol 1297 MovieClipUses:1295 1226 1296Used by:1727
Symbol 1298 GraphicUsed by:1299
Symbol 1299 MovieClipUses:1298Used by:1616 1727
Symbol 1300 GraphicUsed by:1301
Symbol 1301 MovieClipUses:1300Used by:1727
Symbol 1302 GraphicUsed by:1303
Symbol 1303 MovieClipUses:1302Used by:1622 1727
Symbol 1304 GraphicUsed by:1305
Symbol 1305 MovieClipUses:1304Used by:1549 1727
Symbol 1306 GraphicUses:1270Used by:1307
Symbol 1307 MovieClipUses:1306Used by:1727
Symbol 1308 GraphicUsed by:1309
Symbol 1309 MovieClipUses:1308Used by:1457 1727
Symbol 1310 GraphicUsed by:1312
Symbol 1311 TextUses:72Used by:1312
Symbol 1312 MovieClipUses:1310 1311Used by:1457 1727
Symbol 1313 GraphicUsed by:1314
Symbol 1314 MovieClipUses:1313Used by:1727
Symbol 1315 GraphicUsed by:1316
Symbol 1316 MovieClipUses:1315Used by:1727
Symbol 1317 GraphicUsed by:1318
Symbol 1318 MovieClipUses:1317Used by:1727
Symbol 1319 GraphicUsed by:1320
Symbol 1320 MovieClipUses:1319Used by:1727
Symbol 1321 GraphicUsed by:1322 1555
Symbol 1322 MovieClipUses:1321Used by:1727
Symbol 1323 GraphicUsed by:1324
Symbol 1324 MovieClipUses:1323 1273 276 1278 1277 281Used by:1727
Symbol 1325 GraphicUsed by:1326
Symbol 1326 MovieClipUses:1325Used by:1727
Symbol 1327 GraphicUsed by:1328
Symbol 1328 MovieClipUses:1327Used by:1600 1727
Symbol 1329 GraphicUsed by:1330
Symbol 1330 MovieClipUses:1329Used by:1603 1727
Symbol 1331 GraphicUsed by:1332
Symbol 1332 MovieClipUses:1331Used by:1606 1727
Symbol 1333 GraphicUsed by:1334
Symbol 1334 MovieClipUses:1333Used by:1410
Symbol 1335 GraphicUsed by:1410
Symbol 1336 GraphicUsed by:1337
Symbol 1337 MovieClipUses:1336Used by:1410
Symbol 1338 TextUses:73Used by:1410
Symbol 1339 GraphicUsed by:1340
Symbol 1340 MovieClipUses:1339Used by:1410
Symbol 1341 GraphicUsed by:1410
Symbol 1342 TextUses:73Used by:1410
Symbol 1343 GraphicUsed by:1410
Symbol 1344 TextUses:73Used by:1410
Symbol 1345 GraphicUsed by:1410
Symbol 1346 TextUses:73Used by:1410
Symbol 1347 GraphicUsed by:1410
Symbol 1348 TextUses:73Used by:1410
Symbol 1349 GraphicUsed by:1350
Symbol 1350 MovieClipUses:1349Used by:1410
Symbol 1351 BitmapUsed by:1352
Symbol 1352 GraphicUses:1351Used by:1410
Symbol 1353 TextUses:73Used by:1410
Symbol 1354 GraphicUsed by:1355
Symbol 1355 MovieClipUses:1354Used by:1410
Symbol 1356 TextUses:73Used by:1410
Symbol 1357 GraphicUsed by:1358
Symbol 1358 MovieClipUses:1357Used by:1410
Symbol 1359 TextUses:73Used by:1410
Symbol 1360 GraphicUsed by:1361
Symbol 1361 MovieClipUses:1360Used by:1410
Symbol 1362 TextUses:73Used by:1410
Symbol 1363 GraphicUsed by:1364
Symbol 1364 MovieClipUses:1363Used by:1410
Symbol 1365 TextUses:73Used by:1410
Symbol 1366 GraphicUsed by:1410
Symbol 1367 GraphicUsed by:1368
Symbol 1368 MovieClipUses:1367Used by:1410
Symbol 1369 GraphicUsed by:1410
Symbol 1370 TextUses:72Used by:1410
Symbol 1371 TextUses:72Used by:1410
Symbol 1372 TextUses:72Used by:1410
Symbol 1373 TextUses:72Used by:1410
Symbol 1374 TextUses:72Used by:1410
Symbol 1375 GraphicUsed by:1410
Symbol 1376 GraphicUsed by:1377
Symbol 1377 MovieClipUses:1376Used by:1410
Symbol 1378 GraphicUsed by:1379
Symbol 1379 MovieClipUses:1378Used by:1410
Symbol 1380 GraphicUsed by:1381
Symbol 1381 MovieClipUses:1380Used by:1410
Symbol 1382 GraphicUsed by:1410
Symbol 1383 GraphicUsed by:1386
Symbol 1384 MovieClipUses:1072Used by:1386 1410
Symbol 1385 MovieClipUses:305Used by:1386
Symbol 1386 MovieClipUses:1383 1384 1385Used by:1410
Symbol 1387 GraphicUsed by:1410
Symbol 1388 GraphicUsed by:1410
Symbol 1389 GraphicUsed by:1390
Symbol 1390 MovieClipUses:1389Used by:1410
Symbol 1391 TextUses:73Used by:1410
Symbol 1392 GraphicUsed by:1410
Symbol 1393 TextUses:73Used by:1410
Symbol 1394 GraphicUsed by:1410
Symbol 1395 TextUses:73Used by:1410
Symbol 1396 GraphicUsed by:1410
Symbol 1397 GraphicUsed by:1398
Symbol 1398 MovieClipUses:1397Used by:1410
Symbol 1399 TextUses:73Used by:1410
Symbol 1400 GraphicUsed by:1410
Symbol 1401 GraphicUsed by:1402
Symbol 1402 MovieClipUses:1401Used by:1410
Symbol 1403 TextUses:72Used by:1410
Symbol 1404 GraphicUsed by:1410
Symbol 1405 GraphicUsed by:1408
Symbol 1406 MovieClipUses:42Used by:1408
Symbol 1407 GraphicUsed by:1408
Symbol 1408 MovieClipUses:1405 1406 1407Used by:1410
Symbol 1409 TextUses:72Used by:1410
Symbol 1410 MovieClip {AchievementIcon}Uses:1334 1335 1337 1338 1340 1341 1342 1343 1344 1345 1346 1347 1348 1350 1352 1353 1355 1356 1358 1359 1361 1362 1364 1365 1366 1368 1369 1370 1371 1372 1373 1374 1375 1377 1379 1381 1382 1386 1387 1384 496 1388 1390 1391 1392 1393 1394 1395 1396 1398 1399 1400 1402 1403 1404 1408 1409Used by:1416 1727
Symbol 1411 GraphicUsed by:1414 1416 1707
Symbol 1412 FontUsed by:1413
Symbol 1413 EditableTextUses:1412Used by:1414
Symbol 1414 MovieClip {stonepunk_fla.AchievementsPopup_439}Uses:1411 1413Used by:1457 1727
Symbol 1415 TextUses:73Used by:1416
Symbol 1416 MovieClip {AchievementsShowUp}Uses:1136 1410 106 1411 1415Used by:1727
Symbol 1417 GraphicUsed by:1457 1622
Symbol 1418 GraphicUsed by:1419
Symbol 1419 MovieClipUses:1418Used by:1457
Symbol 1420 ButtonUses:77 102 103 76 78 80 81 82 83 84 85 86 88 99Used by:1457
Symbol 1421 BitmapUsed by:1422
Symbol 1422 GraphicUses:1421Used by:1423 1425
Symbol 1423 MovieClipUses:1422Used by:1425
Symbol 1424 TextUses:72Used by:1425
Symbol 1425 ButtonUses:1423 1424 1422Used by:1457
Symbol 1426 BitmapUsed by:1427
Symbol 1427 GraphicUses:1426Used by:1428 1430
Symbol 1428 MovieClipUses:1427Used by:1430
Symbol 1429 TextUses:72Used by:1430
Symbol 1430 ButtonUses:1428 1429 1427Used by:1457
Symbol 1431 GraphicUsed by:1432 1437 1442 1447 1458
Symbol 1432 MovieClipUses:1431Used by:1437 1442 1447
Symbol 1433 BitmapUsed by:1434
Symbol 1434 GraphicUses:1433Used by:1435 1437
Symbol 1435 MovieClipUses:1434Used by:1437
Symbol 1436 TextUses:72Used by:1437
Symbol 1437 ButtonUses:1432 1435 1436 1431 1434Used by:1457
Symbol 1438 BitmapUsed by:1439
Symbol 1439 GraphicUses:1438Used by:1440 1442
Symbol 1440 MovieClipUses:1439Used by:1442
Symbol 1441 TextUses:72Used by:1442
Symbol 1442 ButtonUses:1432 1440 1441 1431 1439Used by:1457
Symbol 1443 BitmapUsed by:1444
Symbol 1444 GraphicUses:1443Used by:1445 1447
Symbol 1445 MovieClipUses:1444Used by:1447
Symbol 1446 TextUses:72Used by:1447
Symbol 1447 ButtonUses:1432 1445 1446 1431 1444Used by:1457
Symbol 1448 TextUses:73Used by:1449
Symbol 1449 ButtonUses:1260 1448 1259Used by:1457
Symbol 1450 FontUsed by:1451 1453 1454
Symbol 1451 TextUses:1450Used by:1453
Symbol 1452 TextUsed by:1453
Symbol 1453 MovieClipUses:1450 1451 1452Used by:1457
Symbol 1454 TextUses:1450Used by:1456
Symbol 1455 TextUsed by:1456
Symbol 1456 MovieClipUses:1454 1455Used by:1457
Symbol 1457 MovieClip {game.ui.AchievementsWindow}Uses:1417 1419 1309 1312 1414 1420 1425 1430 1437 1442 1447 1266 1449 1453 1456Used by:1727
Symbol 1458 MovieClipUses:1431Used by:1727
Symbol 1459 ButtonUsed by:1727
Symbol 1460 MovieClipUsed by:1461 1727
Symbol 1461 MovieClip {stonepunk_fla.NextButtonOverMotion_459}Uses:1460Used by:1727
Symbol 1462 TextUses:73Used by:1463
Symbol 1463 ButtonUses:1462Used by:1549 1727
Symbol 1464 TextUses:73Used by:1465
Symbol 1465 ButtonUses:1464Used by:1549 1727
Symbol 1466 MovieClipUsed by:1727
Symbol 1467 GraphicUsed by:1469 1474
Symbol 1468 TextUses:411Used by:1469 1474
Symbol 1469 MovieClipUses:1467 1468Used by:1474 1727
Symbol 1470 GraphicUsed by:1472 1473
Symbol 1471 TextUses:411Used by:1472 1473
Symbol 1472 MovieClipUses:1470 1471Used by:1473
Symbol 1473 ButtonUses:1472 1470 1471Used by:1727
Symbol 1474 ButtonUses:1469 1467 1468Used by:1727
Symbol 1475 MovieClipUsed by:1476 1727
Symbol 1476 MovieClip {stonepunk_fla.PlayButtonBackMotin_468}Uses:1475Used by:1727
Symbol 1477 MovieClipUsed by:1479 1481 1483
Symbol 1478 TextUses:73Used by:1479
Symbol 1479 ButtonUses:1477 1478Used by:1549 1727
Symbol 1480 TextUses:73Used by:1481
Symbol 1481 ButtonUses:1477 1480Used by:1549 1727
Symbol 1482 TextUses:73Used by:1483
Symbol 1483 ButtonUses:1477 1482Used by:1549 1727
Symbol 1484 MovieClipUsed by:1727
Symbol 1485 TextUses:72Used by:1486
Symbol 1486 ButtonUses:1282 1485 1281Used by:1549 1727
Symbol 1487 MovieClipUsed by:1488 1727
Symbol 1488 MovieClip {stonepunk_fla.SaveGameButtonBackMotion_476}Uses:1487Used by:1727
Symbol 1489 GraphicUsed by:1490
Symbol 1490 MovieClipUses:1489Used by:1727
Symbol 1491 GraphicUsed by:1492
Symbol 1492 MovieClipUses:1491Used by:1525 1727
Symbol 1493 MovieClip {fl.core.ComponentShim}Used by:1525 1727
Symbol 1494 GraphicUsed by:1495
Symbol 1495 MovieClip {CheckBox_disabledIcon}Uses:1494Used by:1727
Symbol 1496 GraphicUsed by:1497 1504
Symbol 1497 MovieClip {CheckBox_downIcon}Uses:1496Used by:1727
Symbol 1498 GraphicUsed by:1499 1505
Symbol 1499 MovieClip {CheckBox_overIcon}Uses:1498Used by:1727
Symbol 1500 GraphicUsed by:1503
Symbol 1501 GraphicUsed by:1502
Symbol 1502 MovieClipUses:1501Used by:1503 1504 1505 1507
Symbol 1503 MovieClip {CheckBox_selectedDisabledIcon}Uses:1500 1502Used by:1727
Symbol 1504 MovieClip {CheckBox_selectedDownIcon}Uses:1496 1502Used by:1727
Symbol 1505 MovieClip {CheckBox_selectedOverIcon}Uses:1498 1502Used by:1727
Symbol 1506 GraphicUsed by:1507 1508
Symbol 1507 MovieClip {CheckBox_selectedUpIcon}Uses:1506 1502Used by:1727
Symbol 1508 MovieClip {CheckBox_upIcon}Uses:1506Used by:1727
Symbol 1509 GraphicUsed by:1510
Symbol 1510 MovieClip {focusRectSkin}Uses:1509Used by:1525 1727
Symbol 1511 GraphicUsed by:1512
Symbol 1512 MovieClip {SliderThumb_disabledSkin}Uses:1511Used by:1525 1727
Symbol 1513 GraphicUsed by:1514
Symbol 1514 MovieClip {SliderThumb_downSkin}Uses:1513Used by:1525 1727
Symbol 1515 GraphicUsed by:1516
Symbol 1516 MovieClip {SliderThumb_overSkin}Uses:1515Used by:1525 1727
Symbol 1517 GraphicUsed by:1518
Symbol 1518 MovieClip {SliderThumb_upSkin}Uses:1517Used by:1525 1727
Symbol 1519 GraphicUsed by:1520
Symbol 1520 MovieClip {SliderTick_skin}Uses:1519Used by:1525 1727
Symbol 1521 GraphicUsed by:1522
Symbol 1522 MovieClip {SliderTrack_disabledSkin}Uses:1521Used by:1525 1727
Symbol 1523 GraphicUsed by:1524
Symbol 1524 MovieClip {SliderTrack_skin}Uses:1523Used by:1525 1727
Symbol 1525 MovieClip {fl.controls.Slider}Uses:1492 1493 1518 1516 1514 1512 1524 1520 1522 1510Used by:1727
Symbol 1526 GraphicUsed by:1527
Symbol 1527 MovieClip {OptionsSoundSlider}Uses:1526Used by:1549 1727
Symbol 1528 GraphicUsed by:1530
Symbol 1529 GraphicUsed by:1530
Symbol 1530 MovieClip {stonepunk_fla.HealthBar_498}Uses:1528 68 1529Used by:1727
Symbol 1531 MovieClipUses:1088 1090Used by:1532 1727
Symbol 1532 MovieClip {stonepunk_fla.PauseMC_500}Uses:1531Used by:1727
Symbol 1533 GraphicUsed by:1549
Symbol 1534 FontUsed by:1535
Symbol 1535 TextUses:1534Used by:1549
Symbol 1536 TextUses:73Used by:1549
Symbol 1537 TextUses:73Used by:1549
Symbol 1538 TextUses:73Used by:1549
Symbol 1539 TextUses:72Used by:1549
Symbol 1540 GraphicUsed by:1548
Symbol 1541 TextUses:65Used by:1548
Symbol 1542 TextUses:65Used by:1544
Symbol 1543 TextUses:65Used by:1544
Symbol 1544 ButtonUses:1542 1543Used by:1548
Symbol 1545 TextUses:65Used by:1547
Symbol 1546 TextUses:65Used by:1547
Symbol 1547 ButtonUses:1545 1546Used by:1548
Symbol 1548 MovieClip {stonepunk_fla.Symbol21_502}Uses:1540 1541 1544 1547Used by:1549
Symbol 1549 MovieClip {game.ui.Options}Uses:1533 1535 1305 1463 1465 1486 1481 1483 1479 1536 1527 1537 1538 1262 1073 1539 1548Used by:1727
Symbol 1550 GraphicUsed by:1551
Symbol 1551 MovieClipUses:1550Used by:1557 1727
Symbol 1552 GraphicUsed by:1553
Symbol 1553 MovieClipUses:1552Used by:1557 1727
Symbol 1554 MovieClipUses:277Used by:1557 1727
Symbol 1555 MovieClipUses:1321Used by:1588 1727
Symbol 1556 GraphicUsed by:1557
Symbol 1557 MovieClipUses:1556 1551 276 1554 1553 281Used by:1586 1727
Symbol 1558 GraphicUsed by:1559
Symbol 1559 MovieClipUses:1558Used by:1591 1727
Symbol 1560 GraphicUsed by:1561
Symbol 1561 MovieClipUses:1560Used by:1565 1727
Symbol 1562 GraphicUsed by:1565
Symbol 1563 GraphicUsed by:1565 1570 1575 1586 1588 1591 1600 1603 1606
Symbol 1564 GraphicUsed by:1565
Symbol 1565 MovieClip {stonepunk_fla.PterodactylSlot1_513}Uses:1562 1561 1563 1564Used by:1583
Symbol 1566 GraphicUsed by:1570
Symbol 1567 GraphicUsed by:1568
Symbol 1568 MovieClipUses:1567Used by:1570
Symbol 1569 GraphicUsed by:1570
Symbol 1570 MovieClip {stonepunk_fla.PterodactylSlot2_514}Uses:1566 1568 1563 1569Used by:1583
Symbol 1571 GraphicUsed by:1575
Symbol 1572 GraphicUsed by:1573
Symbol 1573 MovieClipUses:1572Used by:1575
Symbol 1574 GraphicUsed by:1575
Symbol 1575 MovieClip {stonepunk_fla.PterodactylSlot3_516}Uses:1571 1573 1563 1574Used by:1583
Symbol 1576 MovieClipUses:1072Used by:1583 1594
Symbol 1577 EditableTextUses:63 72 73Used by:1583
Symbol 1578 GraphicUsed by:1581 1608
Symbol 1579 TextUses:73Used by:1581 1608
Symbol 1580 TextUses:73Used by:1581 1608
Symbol 1581 ButtonUses:1578 1579 1580Used by:1583 1594
Symbol 1582 EditableTextUses:63 72 73Used by:1583
Symbol 1583 MovieClip {PterodactylRow}Uses:1565 1570 1575 1576 1577 1581 1582Used by:1622 1727
Symbol 1584 GraphicUsed by:1586 1588
Symbol 1585 GraphicUsed by:1586
Symbol 1586 MovieClip {stonepunk_fla.TurtleSlot1_521}Uses:120 1584 1557 1563 1585Used by:1594
Symbol 1587 GraphicUsed by:1588
Symbol 1588 MovieClip {stonepunk_fla.TurtleSlot2_522}Uses:120 1584 1555 1563 1587Used by:1594
Symbol 1589 GraphicUsed by:1591
Symbol 1590 GraphicUsed by:1591
Symbol 1591 MovieClip {stonepunk_fla.TurtletSlot3_523}Uses:1589 1559 1563 1590Used by:1594
Symbol 1592 EditableTextUses:63 72 73Used by:1594
Symbol 1593 EditableTextUses:63 72 73Used by:1594
Symbol 1594 MovieClip {TurtleRow}Uses:1586 1588 1591 1576 1592 1581 1593Used by:1622 1727
Symbol 1595 GraphicUsed by:1616 1727
Symbol 1596 GraphicUsed by:1597
Symbol 1597 MovieClipUses:1596Used by:1616 1727
Symbol 1598 GraphicUsed by:1600
Symbol 1599 GraphicUsed by:1600
Symbol 1600 MovieClip {stonepunk_fla.RodentSlot1_526}Uses:1598 1328 1563 1599Used by:1610
Symbol 1601 GraphicUsed by:1603
Symbol 1602 GraphicUsed by:1603
Symbol 1603 MovieClip {stonepunk_fla.RodentSlot2_527}Uses:1601 1330 1563 1602Used by:1610
Symbol 1604 GraphicUsed by:1606
Symbol 1605 GraphicUsed by:1606
Symbol 1606 MovieClip {stonepunk_fla.RodentSlot3_528}Uses:1604 1332 1563 1605Used by:1610
Symbol 1607 EditableTextUses:63 72 73Used by:1610
Symbol 1608 ButtonUses:1578 1579 1580Used by:1610 1618
Symbol 1609 EditableTextUses:63 72 73Used by:1610
Symbol 1610 MovieClip {RodentRow}Uses:1600 1603 1606 1073 1607 1608 1609Used by:1622 1727
Symbol 1611 GraphicUsed by:1616 1727
Symbol 1612 GraphicUsed by:1727
Symbol 1613 GraphicUsed by:1616 1727
Symbol 1614 GraphicUsed by:1727
Symbol 1615 EditableTextUses:63 72 73Used by:1618
Symbol 1616 MovieClip {stonepunk_fla.UpgradeSlot_531}Uses:120 1611 1595 1597 1613 1299Used by:1618
Symbol 1617 EditableTextUses:63 72 73Used by:1618
Symbol 1618 MovieClip {CommonUpgradeRow}Uses:1615 1616 1073 1617 1608Used by:1622 1727
Symbol 1619 GraphicUsed by:1622
Symbol 1620 TextUses:72Used by:1622
Symbol 1621 EditableTextUses:72Used by:1622
Symbol 1622 MovieClip {game.ui.UpgradesWindow}Uses:1417 1303 1619 1618 1620 1621 1610 1594 1583 1075 497 1262 1266Used by:1727
Symbol 1623 GraphicUsed by:1632 1727
Symbol 1624 GraphicUsed by:1625
Symbol 1625 MovieClipUses:1624Used by:1632 1727
Symbol 1626 BitmapUsed by:1627
Symbol 1627 GraphicUses:1626Used by:1628
Symbol 1628 MovieClipUses:1627Used by:1629
Symbol 1629 MovieClipUses:1628Used by:1634 1727
Symbol 1630 GraphicUsed by:1631
Symbol 1631 MovieClipUses:1630Used by:1643 1727
Symbol 1632 MovieClipUses:1623 1625Used by:1634
Symbol 1633 GraphicUsed by:1634
Symbol 1634 MovieClipUses:1632 1633 1629Used by:1643 1727
Symbol 1635 GraphicUsed by:1636
Symbol 1636 MovieClipUses:1635Used by:1643 1727
Symbol 1637 BitmapUsed by:1638 1656
Symbol 1638 GraphicUses:1637Used by:1727
Symbol 1639 GraphicUsed by:1643
Symbol 1640 GraphicUsed by:1641
Symbol 1641 MovieClipUses:1640Used by:1643
Symbol 1642 GraphicUsed by:1643
Symbol 1643 MovieClipUses:1639 1631 1634 1641 1642 1636Used by:1727
Symbol 1644 GraphicUsed by:1645
Symbol 1645 MovieClipUses:1644Used by:1647 1727
Symbol 1646 TextUses:1089Used by:1647
Symbol 1647 MovieClipUses:1645 1646Used by:1727
Symbol 1648 TextUses:73Used by:1649
Symbol 1649 ButtonUses:1284 1648 1283Used by:1708 1727
Symbol 1650 TextUses:73Used by:1651
Symbol 1651 ButtonUses:1260 1650 1259Used by:1708 1727
Symbol 1652 TextUses:73Used by:1653
Symbol 1653 ButtonUses:1282 1652 1281Used by:1708 1727
Symbol 1654 TextUses:73Used by:1655
Symbol 1655 ButtonUses:77 1654 76Used by:1708 1727
Symbol 1656 GraphicUses:1637Used by:1708
Symbol 1657 TextUses:73Used by:1708
Symbol 1658 FontUsed by:1659
Symbol 1659 TextUses:1658Used by:1708
Symbol 1660 GraphicUsed by:1702
Symbol 1661 GraphicUsed by:1677 1699
Symbol 1662 GraphicUsed by:1663
Symbol 1663 MovieClipUses:1662Used by:1671
Symbol 1664 GraphicUsed by:1665
Symbol 1665 MovieClipUses:1664Used by:1671
Symbol 1666 GraphicUsed by:1667
Symbol 1667 MovieClipUses:1666Used by:1671
Symbol 1668 GraphicUsed by:1669
Symbol 1669 MovieClipUses:1668Used by:1671
Symbol 1670 GraphicUsed by:1671
Symbol 1671 MovieClipUses:1663 1665 1667 1669 1670Used by:1677 1699
Symbol 1672 GraphicUsed by:1677
Symbol 1673 MovieClipUses:1027Used by:1677 1699
Symbol 1674 GraphicUsed by:1675
Symbol 1675 MovieClipUses:1674Used by:1677
Symbol 1676 TextUses:72Used by:1677
Symbol 1677 MovieClipUses:1661 1671 1672 1673 1675 1676Used by:1702
Symbol 1678 GraphicUsed by:1683
Symbol 1679 GraphicUsed by:1680
Symbol 1680 MovieClipUses:1679Used by:1683
Symbol 1681 GraphicUsed by:1682
Symbol 1682 MovieClipUses:1681Used by:1683
Symbol 1683 MovieClipUses:1678 1680 1682Used by:1702
Symbol 1684 GraphicUsed by:1687
Symbol 1685 GraphicUsed by:1686
Symbol 1686 MovieClipUses:1685Used by:1687
Symbol 1687 MovieClipUses:1684 1686Used by:1702
Symbol 1688 TextUses:72Used by:1702
Symbol 1689 GraphicUsed by:1699
Symbol 1690 GraphicUsed by:1695
Symbol 1691 GraphicUsed by:1692
Symbol 1692 MovieClipUses:1691Used by:1695
Symbol 1693 GraphicUsed by:1694
Symbol 1694 MovieClipUses:1693Used by:1695
Symbol 1695 MovieClipUses:1690 1692 1694Used by:1699
Symbol 1696 GraphicUsed by:1697
Symbol 1697 MovieClipUses:1696Used by:1699
Symbol 1698 GraphicUsed by:1699
Symbol 1699 MovieClipUses:1661 1671 1689 1673 1695 1697 1698Used by:1702
Symbol 1700 GraphicUsed by:1702
Symbol 1701 MovieClipUses:1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182Used by:1702
Symbol 1702 MovieClip {stonepunk_fla.Story_549}Uses:1660 1677 1683 1687 1688 1699 1700 1701 62Used by:1708 1727
Symbol 1703 GraphicUsed by:1707
Symbol 1704 MovieClipUses:109Used by:1707
Symbol 1705 TextUses:72Used by:1707
Symbol 1706 TextUses:72Used by:1707
Symbol 1707 MovieClipUses:1703 1411 1704 1705 1706Used by:1708 1727
Symbol 1708 MovieClip {game.ui.WelcomeScreen}Uses:1656 1657 1659 1649 1651 1653 1655 104 1702 1707Used by:1727  Timeline
Symbol 1709 TextUses:73Used by:1726
Symbol 1710 Sound {SOUND_upgrade_click}Used by:1726
Symbol 1711 Sound {SOUND_unaccelerator}Used by:1726
Symbol 1712 Sound {SOUND_push}Used by:1726
Symbol 1713 Sound {SOUND_menu_music}Used by:1726
Symbol 1714 Sound {SOUND_level_music}Used by:1726
Symbol 1715 Sound {SOUND_hit}Used by:1726
Symbol 1716 Sound {SOUND_get_prize}Used by:1726
Symbol 1717 Sound {SOUND_food_exhausted}Used by:1726
Symbol 1718 Sound {SOUND_ending}Used by:1726
Symbol 1719 Sound {SOUND_encounter2}Used by:1726
Symbol 1720 Sound {SOUND_encounter1}Used by:1726
Symbol 1721 Sound {SOUND_eating}Used by:1726
Symbol 1722 Sound {SOUND_boing}Used by:1726
Symbol 1723 Sound {SOUND_bird_hit}Used by:1726
Symbol 1724 Sound {SOUND_page_show}Used by:1726
Symbol 1725 Sound {SOUND_achievement_earned}Used by:1726
Symbol 1726 MovieClip {stonepunk_fla.SOUNDS_PRELOADER_571}Uses:1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1 1722 1723 1724 1725Used by:1727
Symbol 1727 MovieClip {stonepunk_fla.PRELOADING_17}Uses:111 1 113 119 134 167 189 200 225 380 381 382 383 384 4 386 21 19 17 15 13 10 7 11 8 24 54 388 393 396 397 369 371 370 311 316 321 398 285 275 293 228 289 280 298 287 278 296 345 346 401 403 405 407 409 246 251 261 237 235 238 242 240 243 263 262 264 423 290 282 299 266 374 379 425 427 59 429 431 433 435 438 446 155 157 179 180 181 447 449 451 453 455 457 459 461 462 465 468 475 478 481 483 485 488 490 493 498 521 544 566 594 619 641 664 686 708 730 782 796 859 880 902 903 908 911 913 915 917 919 921 923 925 927 938 959 982 1004 1026 5 1028 1030 1032 1034 1036 1037 1039 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1052 1054 1057 1058 226 1061 1064 1066 906 1068 1069 1071 1075 1077 1079 1082 1084 1087 1091 1092 1133 1136 1138 1139 1141 1142 1144 1146 1148 1150 1183 1242 1245 1269 1271 1273 1275 1277 1278 1280 1282 1284 77 1286 1288 1290 1292 1294 1297 1299 1301 1303 1305 1307 1309 1312 1314 1316 1318 1320 1322 1324 1326 1328 1330 1332 1410 1414 1416 1457 1458 1459 1460 1461 1463 1465 1466 1469 1473 1474 1475 1476 1479 1481 1483 1484 1486 1487 1488 1490 1492 1493 1495 1497 1499 1503 1504 1505 1507 1508 1510 1512 1514 1516 1518 1520 1522 1524 1525 1527 68 1530 1531 1532 70 1549 1551 1553 1554 1555 1557 1559 1561 1583 1594 1595 1597 1610 1611 1612 1239 1613 1614 1618 1622 1623 1625 1629 1631 1634 1636 1638 1643 1645 1647 104 1649 1651 1653 1655 1708 1707 1726 1702Used by:Timeline
Symbol 1728 GraphicUsed by:1729 1749
Symbol 1729 ButtonUses:1728Used by:1749
Symbol 1730 MovieClipUses:99Used by:1748
Symbol 1731 MovieClipUses:78Used by:1743
Symbol 1732 GraphicUsed by:1743
Symbol 1733 GraphicUsed by:1743
Symbol 1734 GraphicUsed by:1735
Symbol 1735 MovieClip {stonepunk_fla.fb_head_mc_578}Uses:1734 84 85 86Used by:1743
Symbol 1736 ShapeTweeningUsed by:1743
Symbol 1737 ShapeTweeningUsed by:1743
Symbol 1738 ShapeTweeningUsed by:1743
Symbol 1739 MovieClipUses:91 92Used by:1740
Symbol 1740 MovieClipUses:1739Used by:1743
Symbol 1741 ShapeTweeningUsed by:1743
Symbol 1742 ShapeTweeningUsed by:1743
Symbol 1743 MovieClip {stonepunk_fla.flongabot_576}Uses:1731 1732 81 1733 1735 1736 1737 1738 1740 1741 1742 97Used by:1748
Symbol 1744 FontUsed by:1745
Symbol 1745 TextUses:1744Used by:1746
Symbol 1746 MovieClipUses:1745Used by:1748
Symbol 1747 GraphicUsed by:1748
Symbol 1748 MovieClip {stonepunk_fla.FlongaIntro_574}Uses:99 1730 1743 1746 1747 100Used by:1749
Symbol 1749 MovieClipUses:1728 1729 1748 62Used by:Timeline

Instance Names

"loading_bar"Frame 1Symbol 71 MovieClip {LoadingMC}
"flonga_button"Frame 1Symbol 104 Button
"_game_clip"Frame 5Symbol 1708 MovieClip {game.ui.WelcomeScreen}
"flonga_clip"Frame 5Symbol 1749 MovieClip
"v0"Symbol 5 MovieClip {bird} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 5 MovieClip {bird} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 5 MovieClip {bird} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 5 MovieClip {bird} Frame 1Symbol 4 MovieClip {VertexBeacon}
"pushing_thing"Symbol 27 MovieClip {stonepunk_fla.PushingThingRotater_144} Frame 1Symbol 26 MovieClip {stonepunk_fla.PushingMotion_145}
"pushing_thing"Symbol 54 MovieClip {pad} Frame 1Symbol 27 MovieClip {stonepunk_fla.PushingThingRotater_144}
"launching_pad"Symbol 54 MovieClip {pad} Frame 1Symbol 53 MovieClip {stonepunk_fla.TheLaunchingPad_148}
"back_part"Symbol 59 MovieClip {wheel_stone} Frame 1Symbol 56 MovieClip
"front_part"Symbol 59 MovieClip {wheel_stone} Frame 1Symbol 58 MovieClip
"loaded_txt"Symbol 71 MovieClip {LoadingMC} Frame 1Symbol 64 EditableText
"error_txt"Symbol 71 MovieClip {LoadingMC} Frame 1Symbol 66 EditableText
"progress_mc"Symbol 71 MovieClip {LoadingMC} Frame 1Symbol 70 MovieClip
"fbHead"Symbol 98 MovieClip {stonepunk_fla.flongabot_8} Frame 1Symbol 87 MovieClip {stonepunk_fla.fb_head_mc_10}
"sky"Symbol 134 MovieClip {stonepunk_fla.background1_25} Frame 1Symbol 121 MovieClip
"blue_sky"Symbol 134 MovieClip {stonepunk_fla.background1_25} Frame 1Symbol 123 MovieClip
"bg32"Symbol 134 MovieClip {stonepunk_fla.background1_25} Frame 1Symbol 125 MovieClip
"bg31"Symbol 134 MovieClip {stonepunk_fla.background1_25} Frame 1Symbol 127 MovieClip
"bg21"Symbol 134 MovieClip {stonepunk_fla.background1_25} Frame 1Symbol 129 MovieClip
"bg22"Symbol 134 MovieClip {stonepunk_fla.background1_25} Frame 1Symbol 129 MovieClip
"bg11"Symbol 134 MovieClip {stonepunk_fla.background1_25} Frame 1Symbol 131 MovieClip
"bg12"Symbol 134 MovieClip {stonepunk_fla.background1_25} Frame 1Symbol 131 MovieClip
"road2"Symbol 134 MovieClip {stonepunk_fla.background1_25} Frame 1Symbol 133 MovieClip
"road1"Symbol 134 MovieClip {stonepunk_fla.background1_25} Frame 1Symbol 133 MovieClip
"sky"Symbol 167 MovieClip {stonepunk_fla.background2_33} Frame 1Symbol 135 MovieClip
"blue_sky"Symbol 167 MovieClip {stonepunk_fla.background2_33} Frame 1Symbol 137 MovieClip
"bg32"Symbol 167 MovieClip {stonepunk_fla.background2_33} Frame 1Symbol 141 MovieClip
"bg31"Symbol 167 MovieClip {stonepunk_fla.background2_33} Frame 1Symbol 141 MovieClip
"bg22"Symbol 167 MovieClip {stonepunk_fla.background2_33} Frame 1Symbol 158 MovieClip
"bg21"Symbol 167 MovieClip {stonepunk_fla.background2_33} Frame 1Symbol 158 MovieClip
"bg12"Symbol 167 MovieClip {stonepunk_fla.background2_33} Frame 1Symbol 164 MovieClip
"bg11"Symbol 167 MovieClip {stonepunk_fla.background2_33} Frame 1Symbol 164 MovieClip
"road2"Symbol 167 MovieClip {stonepunk_fla.background2_33} Frame 1Symbol 166 MovieClip
"road1"Symbol 167 MovieClip {stonepunk_fla.background2_33} Frame 1Symbol 166 MovieClip
"sky"Symbol 189 MovieClip {stonepunk_fla.background3_49} Frame 1Symbol 121 MovieClip
"blue_sky"Symbol 189 MovieClip {stonepunk_fla.background3_49} Frame 1Symbol 169 MovieClip
"bg32"Symbol 189 MovieClip {stonepunk_fla.background3_49} Frame 1Symbol 171 MovieClip
"bg31"Symbol 189 MovieClip {stonepunk_fla.background3_49} Frame 1Symbol 171 MovieClip
"bg22"Symbol 189 MovieClip {stonepunk_fla.background3_49} Frame 1Symbol 182 MovieClip
"bg21"Symbol 189 MovieClip {stonepunk_fla.background3_49} Frame 1Symbol 182 MovieClip
"bg12"Symbol 189 MovieClip {stonepunk_fla.background3_49} Frame 1Symbol 184 MovieClip
"bg11"Symbol 189 MovieClip {stonepunk_fla.background3_49} Frame 1Symbol 184 MovieClip
"road2"Symbol 189 MovieClip {stonepunk_fla.background3_49} Frame 1Symbol 188 MovieClip
"road1"Symbol 189 MovieClip {stonepunk_fla.background3_49} Frame 1Symbol 188 MovieClip
"sky"Symbol 200 MovieClip {stonepunk_fla.background4_62} Frame 1Symbol 121 MovieClip
"blue_sky"Symbol 200 MovieClip {stonepunk_fla.background4_62} Frame 1Symbol 191 MovieClip
"bg32"Symbol 200 MovieClip {stonepunk_fla.background4_62} Frame 1Symbol 193 MovieClip
"bg31"Symbol 200 MovieClip {stonepunk_fla.background4_62} Frame 1Symbol 193 MovieClip
"bg22"Symbol 200 MovieClip {stonepunk_fla.background4_62} Frame 1Symbol 195 MovieClip
"bg21"Symbol 200 MovieClip {stonepunk_fla.background4_62} Frame 1Symbol 195 MovieClip
"bg12"Symbol 200 MovieClip {stonepunk_fla.background4_62} Frame 1Symbol 197 MovieClip
"bg11"Symbol 200 MovieClip {stonepunk_fla.background4_62} Frame 1Symbol 197 MovieClip
"road1"Symbol 200 MovieClip {stonepunk_fla.background4_62} Frame 1Symbol 199 MovieClip
"road2"Symbol 200 MovieClip {stonepunk_fla.background4_62} Frame 1Symbol 199 MovieClip
"sky"Symbol 225 MovieClip {stonepunk_fla.background5_68} Frame 1Symbol 121 MovieClip
"blue_sky"Symbol 225 MovieClip {stonepunk_fla.background5_68} Frame 1Symbol 202 MovieClip
"bg32"Symbol 225 MovieClip {stonepunk_fla.background5_68} Frame 1Symbol 210 MovieClip
"bg31"Symbol 225 MovieClip {stonepunk_fla.background5_68} Frame 1Symbol 210 MovieClip
"bg22"Symbol 225 MovieClip {stonepunk_fla.background5_68} Frame 1Symbol 211 MovieClip
"bg21"Symbol 225 MovieClip {stonepunk_fla.background5_68} Frame 1Symbol 211 MovieClip
"bg12"Symbol 225 MovieClip {stonepunk_fla.background5_68} Frame 1Symbol 214 MovieClip
"bg11"Symbol 225 MovieClip {stonepunk_fla.background5_68} Frame 1Symbol 214 MovieClip
"road2"Symbol 225 MovieClip {stonepunk_fla.background5_68} Frame 1Symbol 216 MovieClip
"road1"Symbol 225 MovieClip {stonepunk_fla.background5_68} Frame 1Symbol 216 MovieClip
"inner"Symbol 282 MovieClip {stonepunk_fla.turtle2_109} Frame 1Symbol 275 MovieClip
"inner"Symbol 290 MovieClip {stonepunk_fla.turtle_113} Frame 1Symbol 285 MovieClip
"inner"Symbol 299 MovieClip {stonepunk_fla.turtle3_117} Frame 1Symbol 293 MovieClip
"inner"Symbol 300 MovieClip {stonepunk_fla.turtle_108} Frame 1Symbol 282 MovieClip {stonepunk_fla.turtle2_109}
"inner"Symbol 300 MovieClip {stonepunk_fla.turtle_108} Frame 2Symbol 290 MovieClip {stonepunk_fla.turtle_113}
"inner"Symbol 300 MovieClip {stonepunk_fla.turtle_108} Frame 3Symbol 299 MovieClip {stonepunk_fla.turtle3_117}
"inner"Symbol 311 MovieClip {stonepunk_fla.Rodent1_122} Frame 1Symbol 310 MovieClip
"inner"Symbol 316 MovieClip {stonepunk_fla.Rodent2_128} Frame 1Symbol 315 MovieClip
"inner"Symbol 321 MovieClip {stonepunk_fla.Rodent3_131} Frame 1Symbol 320 MovieClip
"inner"Symbol 322 MovieClip {stonepunk_fla.rodent_121} Frame 1Symbol 311 MovieClip {stonepunk_fla.Rodent1_122}
"inner"Symbol 322 MovieClip {stonepunk_fla.rodent_121} Frame 2Symbol 316 MovieClip {stonepunk_fla.Rodent2_128}
"inner"Symbol 322 MovieClip {stonepunk_fla.rodent_121} Frame 3Symbol 321 MovieClip {stonepunk_fla.Rodent3_131}
"inner"Symbol 346 MovieClip {stonepunk_fla.pter2_135} Frame 1Symbol 345 MovieClip
"inner"Symbol 370 MovieClip {stonepunk_fla.pter2_137} Frame 1Symbol 369 MovieClip
"inner"Symbol 371 MovieClip {stonepunk_fla.pter2_139} Frame 1Symbol 369 MovieClip
"inner"Symbol 372 MovieClip {stonepunk_fla.pterodactyl_134} Frame 1Symbol 346 MovieClip {stonepunk_fla.pter2_135}
"inner"Symbol 372 MovieClip {stonepunk_fla.pterodactyl_134} Frame 2Symbol 370 MovieClip {stonepunk_fla.pter2_137}
"inner"Symbol 372 MovieClip {stonepunk_fla.pterodactyl_134} Frame 3Symbol 371 MovieClip {stonepunk_fla.pter2_139}
"shadow"Symbol 379 MovieClip {hero} Frame 1Symbol 228 MovieClip
"stonepunk"Symbol 379 MovieClip {hero} Frame 1Symbol 272 MovieClip {stonepunk_fla.Symbol9copy_107}
"turtle"Symbol 379 MovieClip {hero} Frame 1Symbol 300 MovieClip {stonepunk_fla.turtle_108}
"rodent"Symbol 379 MovieClip {hero} Frame 1Symbol 322 MovieClip {stonepunk_fla.rodent_121}
"pterodactyl"Symbol 379 MovieClip {hero} Frame 1Symbol 372 MovieClip {stonepunk_fla.pterodactyl_134}
"water_contact_checker"Symbol 379 MovieClip {hero} Frame 1Symbol 374 MovieClip
"v1"Symbol 379 MovieClip {hero} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 379 MovieClip {hero} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 379 MovieClip {hero} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 379 MovieClip {hero} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v4"Symbol 379 MovieClip {hero} Frame 1Symbol 4 MovieClip {VertexBeacon}
"water_animation"Symbol 379 MovieClip {hero} Frame 1Symbol 378 MovieClip
"bg"Symbol 380 MovieClip {LevelMap1} Frame 1Symbol 134 MovieClip {stonepunk_fla.background1_25}
"back_water_layer"Symbol 380 MovieClip {LevelMap1} Frame 1Symbol 226 MovieClip
"back_prize_layer"Symbol 380 MovieClip {LevelMap1} Frame 1Symbol 226 MovieClip
"back_layer"Symbol 380 MovieClip {LevelMap1} Frame 1Symbol 226 MovieClip
"rt"Symbol 380 MovieClip {LevelMap1} Frame 1Symbol 59 MovieClip {wheel_stone}
"rd"Symbol 380 MovieClip {LevelMap1} Frame 1Symbol 59 MovieClip {wheel_stone}
"bg"Symbol 381 MovieClip {LevelMap2} Frame 1Symbol 167 MovieClip {stonepunk_fla.background2_33}
"back_water_layer"Symbol 381 MovieClip {LevelMap2} Frame 1Symbol 226 MovieClip
"back_prize_layer"Symbol 381 MovieClip {LevelMap2} Frame 1Symbol 226 MovieClip
"back_layer"Symbol 381 MovieClip {LevelMap2} Frame 1Symbol 226 MovieClip
"rt"Symbol 381 MovieClip {LevelMap2} Frame 1Symbol 59 MovieClip {wheel_stone}
"rd"Symbol 381 MovieClip {LevelMap2} Frame 1Symbol 59 MovieClip {wheel_stone}
"bg"Symbol 382 MovieClip {LevelMap3} Frame 1Symbol 189 MovieClip {stonepunk_fla.background3_49}
"back_water_layer"Symbol 382 MovieClip {LevelMap3} Frame 1Symbol 226 MovieClip
"back_prize_layer"Symbol 382 MovieClip {LevelMap3} Frame 1Symbol 226 MovieClip
"back_layer"Symbol 382 MovieClip {LevelMap3} Frame 1Symbol 226 MovieClip
"rt"Symbol 382 MovieClip {LevelMap3} Frame 1Symbol 59 MovieClip {wheel_stone}
"rd"Symbol 382 MovieClip {LevelMap3} Frame 1Symbol 59 MovieClip {wheel_stone}
"bg"Symbol 383 MovieClip {LevelMap4} Frame 1Symbol 200 MovieClip {stonepunk_fla.background4_62}
"back_water_layer"Symbol 383 MovieClip {LevelMap4} Frame 1Symbol 226 MovieClip
"back_prize_layer"Symbol 383 MovieClip {LevelMap4} Frame 1Symbol 226 MovieClip
"back_layer"Symbol 383 MovieClip {LevelMap4} Frame 1Symbol 226 MovieClip
"rt"Symbol 383 MovieClip {LevelMap4} Frame 1Symbol 59 MovieClip {wheel_stone}
"rd"Symbol 383 MovieClip {LevelMap4} Frame 1Symbol 59 MovieClip {wheel_stone}
"bg"Symbol 384 MovieClip {LevelMap5} Frame 1Symbol 225 MovieClip {stonepunk_fla.background5_68}
"back_water_layer"Symbol 384 MovieClip {LevelMap5} Frame 1Symbol 226 MovieClip
"back_prize_layer"Symbol 384 MovieClip {LevelMap5} Frame 1Symbol 226 MovieClip
"back_layer"Symbol 384 MovieClip {LevelMap5} Frame 1Symbol 226 MovieClip
"rt"Symbol 384 MovieClip {LevelMap5} Frame 1Symbol 59 MovieClip {wheel_stone}
"rd"Symbol 384 MovieClip {LevelMap5} Frame 1Symbol 59 MovieClip {wheel_stone}
"pushing_thing"Symbol 387 MovieClip {stonepunk_fla.PushingThingRotater_175} Frame 1Symbol 26 MovieClip {stonepunk_fla.PushingMotion_145}
"launching_pad"Symbol 388 MovieClip {stonepunk_fla.pad_174} Frame 1Symbol 53 MovieClip {stonepunk_fla.TheLaunchingPad_148}
"pushing_thing"Symbol 388 MovieClip {stonepunk_fla.pad_174} Frame 1Symbol 387 MovieClip {stonepunk_fla.PushingThingRotater_175}
"v3"Symbol 397 MovieClip {star_group_1} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 397 MovieClip {star_group_1} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 397 MovieClip {star_group_1} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 397 MovieClip {star_group_1} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 481 MovieClip {AnotherSprite} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 481 MovieClip {AnotherSprite} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 481 MovieClip {AnotherSprite} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 481 MovieClip {AnotherSprite} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v4"Symbol 481 MovieClip {AnotherSprite} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v5"Symbol 481 MovieClip {AnotherSprite} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v6"Symbol 481 MovieClip {AnotherSprite} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v7"Symbol 481 MovieClip {AnotherSprite} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 485 MovieClip {SomeConvexSprite} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 485 MovieClip {SomeConvexSprite} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 485 MovieClip {SomeConvexSprite} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 485 MovieClip {SomeConvexSprite} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v4"Symbol 485 MovieClip {SomeConvexSprite} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v5"Symbol 485 MovieClip {SomeConvexSprite} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v6"Symbol 485 MovieClip {SomeConvexSprite} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v7"Symbol 485 MovieClip {SomeConvexSprite} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 493 MovieClip {food} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 493 MovieClip {food} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 493 MovieClip {food} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 493 MovieClip {food} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 498 MovieClip {gold} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 498 MovieClip {gold} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 498 MovieClip {gold} Frame 1Symbol 4 MovieClip {VertexBeacon}
"inner"Symbol 521 MovieClip {Dino1} Frame 1Symbol 520 MovieClip
"v0"Symbol 521 MovieClip {Dino1} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 521 MovieClip {Dino1} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 521 MovieClip {Dino1} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 521 MovieClip {Dino1} Frame 1Symbol 4 MovieClip {VertexBeacon}
"inner"Symbol 544 MovieClip {Dino2} Frame 1Symbol 543 MovieClip
"v0"Symbol 544 MovieClip {Dino2} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 544 MovieClip {Dino2} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 544 MovieClip {Dino2} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 544 MovieClip {Dino2} Frame 1Symbol 4 MovieClip {VertexBeacon}
"inner"Symbol 566 MovieClip {Dino3} Frame 1Symbol 565 MovieClip
"v0"Symbol 566 MovieClip {Dino3} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 566 MovieClip {Dino3} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 566 MovieClip {Dino3} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 566 MovieClip {Dino3} Frame 1Symbol 4 MovieClip {VertexBeacon}
"inner"Symbol 594 MovieClip {Dino4} Frame 1Symbol 593 MovieClip
"v0"Symbol 594 MovieClip {Dino4} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 594 MovieClip {Dino4} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 594 MovieClip {Dino4} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 594 MovieClip {Dino4} Frame 1Symbol 4 MovieClip {VertexBeacon}
"inner"Symbol 619 MovieClip {Dino5} Frame 1Symbol 618 MovieClip
"v0"Symbol 619 MovieClip {Dino5} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 619 MovieClip {Dino5} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 619 MovieClip {Dino5} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 619 MovieClip {Dino5} Frame 1Symbol 4 MovieClip {VertexBeacon}
"inner"Symbol 641 MovieClip {Dino6} Frame 1Symbol 640 MovieClip
"v0"Symbol 641 MovieClip {Dino6} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 641 MovieClip {Dino6} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 641 MovieClip {Dino6} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 641 MovieClip {Dino6} Frame 1Symbol 4 MovieClip {VertexBeacon}
"inner"Symbol 664 MovieClip {Dino7} Frame 1Symbol 663 MovieClip
"v0"Symbol 664 MovieClip {Dino7} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 664 MovieClip {Dino7} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 664 MovieClip {Dino7} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 664 MovieClip {Dino7} Frame 1Symbol 4 MovieClip {VertexBeacon}
"inner"Symbol 686 MovieClip {Dino8} Frame 1Symbol 685 MovieClip
"v0"Symbol 686 MovieClip {Dino8} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 686 MovieClip {Dino8} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 686 MovieClip {Dino8} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 686 MovieClip {Dino8} Frame 1Symbol 4 MovieClip {VertexBeacon}
"inner"Symbol 708 MovieClip {Dino9} Frame 1Symbol 707 MovieClip
"v0"Symbol 708 MovieClip {Dino9} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 708 MovieClip {Dino9} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 708 MovieClip {Dino9} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 708 MovieClip {Dino9} Frame 1Symbol 4 MovieClip {VertexBeacon}
"inner"Symbol 730 MovieClip {Dino10} Frame 1Symbol 729 MovieClip
"v0"Symbol 730 MovieClip {Dino10} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 730 MovieClip {Dino10} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 730 MovieClip {Dino10} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 730 MovieClip {Dino10} Frame 1Symbol 4 MovieClip {VertexBeacon}
"inner"Symbol 782 MovieClip {Dino11} Frame 1Symbol 781 MovieClip
"v0"Symbol 782 MovieClip {Dino11} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 782 MovieClip {Dino11} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 782 MovieClip {Dino11} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 782 MovieClip {Dino11} Frame 1Symbol 4 MovieClip {VertexBeacon}
"inner"Symbol 796 MovieClip {Dino12} Frame 1Symbol 795 MovieClip
"v0"Symbol 796 MovieClip {Dino12} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 796 MovieClip {Dino12} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 796 MovieClip {Dino12} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 796 MovieClip {Dino12} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 903 MovieClip {dino} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 903 MovieClip {dino} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 903 MovieClip {dino} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 903 MovieClip {dino} Frame 1Symbol 4 MovieClip {VertexBeacon}
"test_thing"Symbol 908 MovieClip {dino_blue} Frame 1Symbol 906 MovieClip
"v0"Symbol 908 MovieClip {dino_blue} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 908 MovieClip {dino_blue} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 908 MovieClip {dino_blue} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 911 MovieClip {stonepunk_fla.dinocopy_261} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 911 MovieClip {stonepunk_fla.dinocopy_261} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 911 MovieClip {stonepunk_fla.dinocopy_261} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 913 MovieClip {dino_green} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 913 MovieClip {dino_green} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 913 MovieClip {dino_green} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 915 MovieClip {dino_red} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 915 MovieClip {dino_red} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 915 MovieClip {dino_red} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 917 MovieClip {stonepunk_fla.Stone1_264} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 917 MovieClip {stonepunk_fla.Stone1_264} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 917 MovieClip {stonepunk_fla.Stone1_264} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 919 MovieClip {Stone1} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 919 MovieClip {Stone1} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 919 MovieClip {Stone1} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 921 MovieClip {Stone2} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 921 MovieClip {Stone2} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 921 MovieClip {Stone2} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 923 MovieClip {Stone3} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 923 MovieClip {Stone3} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 923 MovieClip {Stone3} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 925 MovieClip {Stone4} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 925 MovieClip {Stone4} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 925 MovieClip {Stone4} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 927 MovieClip {Stone5} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 927 MovieClip {Stone5} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 927 MovieClip {Stone5} Frame 1Symbol 4 MovieClip {VertexBeacon}
"inner"Symbol 938 MovieClip {Bird1} Frame 1Symbol 937 MovieClip
"v0"Symbol 938 MovieClip {Bird1} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 938 MovieClip {Bird1} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 938 MovieClip {Bird1} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 938 MovieClip {Bird1} Frame 1Symbol 4 MovieClip {VertexBeacon}
"inner"Symbol 959 MovieClip {Bird2} Frame 1Symbol 958 MovieClip
"v0"Symbol 959 MovieClip {Bird2} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 959 MovieClip {Bird2} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 959 MovieClip {Bird2} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 959 MovieClip {Bird2} Frame 1Symbol 4 MovieClip {VertexBeacon}
"inner"Symbol 982 MovieClip {Bird3} Frame 1Symbol 981 MovieClip
"v0"Symbol 982 MovieClip {Bird3} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 982 MovieClip {Bird3} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 982 MovieClip {Bird3} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 982 MovieClip {Bird3} Frame 1Symbol 4 MovieClip {VertexBeacon}
"inner"Symbol 1004 MovieClip {Bird4} Frame 1Symbol 1003 MovieClip
"v0"Symbol 1004 MovieClip {Bird4} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 1004 MovieClip {Bird4} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 1004 MovieClip {Bird4} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 1004 MovieClip {Bird4} Frame 1Symbol 4 MovieClip {VertexBeacon}
"inner"Symbol 1026 MovieClip {Bird5} Frame 1Symbol 1025 MovieClip
"v0"Symbol 1026 MovieClip {Bird5} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 1026 MovieClip {Bird5} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 1026 MovieClip {Bird5} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 1026 MovieClip {Bird5} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 1042 MovieClip {Bush1} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 1042 MovieClip {Bush1} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 1042 MovieClip {Bush1} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 1042 MovieClip {Bush1} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 1043 MovieClip {Bush2} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 1043 MovieClip {Bush2} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 1043 MovieClip {Bush2} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 1043 MovieClip {Bush2} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 1044 MovieClip {Bush3} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 1044 MovieClip {Bush3} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 1044 MovieClip {Bush3} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 1044 MovieClip {Bush3} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 1045 MovieClip {Bush4} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 1045 MovieClip {Bush4} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 1045 MovieClip {Bush4} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 1045 MovieClip {Bush4} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 1046 MovieClip {Bush5} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 1046 MovieClip {Bush5} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 1046 MovieClip {Bush5} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 1046 MovieClip {Bush5} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 1047 MovieClip {Bush6} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 1047 MovieClip {Bush6} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 1047 MovieClip {Bush6} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 1047 MovieClip {Bush6} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 1048 MovieClip {Bush7} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 1048 MovieClip {Bush7} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 1048 MovieClip {Bush7} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 1048 MovieClip {Bush7} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 1049 MovieClip {Bush8} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 1049 MovieClip {Bush8} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 1049 MovieClip {Bush8} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 1049 MovieClip {Bush8} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 1050 MovieClip {Bush9} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 1050 MovieClip {Bush9} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 1050 MovieClip {Bush9} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 1050 MovieClip {Bush9} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 1052 MovieClip {flower} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 1052 MovieClip {flower} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 1052 MovieClip {flower} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 1052 MovieClip {flower} Frame 1Symbol 4 MovieClip {VertexBeacon}
"inner"Symbol 1057 MovieClip {water} Frame 1Symbol 1056 MovieClip
"v0"Symbol 1057 MovieClip {water} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 1057 MovieClip {water} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 1057 MovieClip {water} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 1057 MovieClip {water} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 1061 MovieClip {planet} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 1061 MovieClip {planet} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 1061 MovieClip {planet} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 1061 MovieClip {planet} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 1064 MovieClip {planet2} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 1064 MovieClip {planet2} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 1064 MovieClip {planet2} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v0"Symbol 1082 MovieClip {Ufo} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v1"Symbol 1082 MovieClip {Ufo} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v2"Symbol 1082 MovieClip {Ufo} Frame 1Symbol 4 MovieClip {VertexBeacon}
"v3"Symbol 1082 MovieClip {Ufo} Frame 1Symbol 4 MovieClip {VertexBeacon}
"tut_space"Symbol 1120 MovieClip {stonepunk_fla.adf_323} Frame 1Symbol 1119 MovieClip
"tut_arrows"Symbol 1129 MovieClip {stonepunk_fla.asdfag_329} Frame 1Symbol 1128 MovieClip
"menu_button"Symbol 1133 MovieClip {game.ui.PlayWindowUI} Frame 1Symbol 1096 Button
"pause_button"Symbol 1133 MovieClip {game.ui.PlayWindowUI} Frame 1Symbol 1099 Button
"height_txt"Symbol 1133 MovieClip {game.ui.PlayWindowUI} Frame 1Symbol 1100 EditableText
"displacement_txt"Symbol 1133 MovieClip {game.ui.PlayWindowUI} Frame 1Symbol 1101 EditableText
"gold_txt"Symbol 1133 MovieClip {game.ui.PlayWindowUI} Frame 1Symbol 1102 EditableText
"food_txt"Symbol 1133 MovieClip {game.ui.PlayWindowUI} Frame 1Symbol 1103 EditableText
"money_icon"Symbol 1133 MovieClip {game.ui.PlayWindowUI} Frame 1Symbol 497 MovieClip
"speed_txt"Symbol 1133 MovieClip {game.ui.PlayWindowUI} Frame 1Symbol 1104 EditableText
"mute_button"Symbol 1133 MovieClip {game.ui.PlayWindowUI} Frame 1Symbol 1107 Button
"tut_space"Symbol 1133 MovieClip {game.ui.PlayWindowUI} Frame 1Symbol 1120 MovieClip {stonepunk_fla.adf_323}
"tut_arrows"Symbol 1133 MovieClip {game.ui.PlayWindowUI} Frame 1Symbol 1129 MovieClip {stonepunk_fla.asdfag_329}
"food_icon"Symbol 1133 MovieClip {game.ui.PlayWindowUI} Frame 1Symbol 1084 MovieClip
"sound_button"Symbol 1133 MovieClip {game.ui.PlayWindowUI} Frame 1Symbol 1132 Button
"pause_mc"Symbol 1133 MovieClip {game.ui.PlayWindowUI} Frame 1Symbol 1092 MovieClip {stonepunk_fla.PauseMC_315}
"stat_title"Symbol 1244 MovieClip {stonepunk_fla.StatCaptionInner_380} Frame 1Symbol 1243 EditableText
"innerc"Symbol 1245 MovieClip {stonepunk_fla.StatCaption_379} Frame 1Symbol 1244 MovieClip {stonepunk_fla.StatCaptionInner_380}
"distance_txt"Symbol 1269 MovieClip {game.ui.Statistics} Frame 1Symbol 1250 EditableText
"duration_txt"Symbol 1269 MovieClip {game.ui.Statistics} Frame 1Symbol 1252 EditableText
"stat_caption"Symbol 1269 MovieClip {game.ui.Statistics} Frame 1Symbol 1245 MovieClip {stonepunk_fla.StatCaption_379}
"max_height_txt"Symbol 1269 MovieClip {game.ui.Statistics} Frame 1Symbol 1254 EditableText
"speed_txt"Symbol 1269 MovieClip {game.ui.Statistics} Frame 1Symbol 1256 EditableText
"total_txt"Symbol 1269 MovieClip {game.ui.Statistics} Frame 1Symbol 1258 EditableText
"continue_button"Symbol 1269 MovieClip {game.ui.Statistics} Frame 1Symbol 1262 Button
"main_menu_button"Symbol 1269 MovieClip {game.ui.Statistics} Frame 1Symbol 1266 Button
"flonga_button"Symbol 1269 MovieClip {game.ui.Statistics} Frame 1Symbol 1268 Button
"final_victory"Symbol 1269 MovieClip {game.ui.Statistics} Frame 1Symbol 1242 MovieClip
"prize_icon"Symbol 1410 MovieClip {AchievementIcon} Frame 1Symbol 1340 MovieClip
"desc_txt"Symbol 1414 MovieClip {stonepunk_fla.AchievementsPopup_439} Frame 1Symbol 1413 EditableText
"a_icon"Symbol 1416 MovieClip {AchievementsShowUp} Frame 1Symbol 1410 MovieClip {AchievementIcon}
"achievement_popup"Symbol 1457 MovieClip {game.ui.AchievementsWindow} Frame 1Symbol 1414 MovieClip {stonepunk_fla.AchievementsPopup_439}
"flonga_button"Symbol 1457 MovieClip {game.ui.AchievementsWindow} Frame 1Symbol 1420 Button
"level1_button"Symbol 1457 MovieClip {game.ui.AchievementsWindow} Frame 1Symbol 1425 Button
"level2_button"Symbol 1457 MovieClip {game.ui.AchievementsWindow} Frame 1Symbol 1430 Button
"level3_button"Symbol 1457 MovieClip {game.ui.AchievementsWindow} Frame 1Symbol 1437 Button
"level4_button"Symbol 1457 MovieClip {game.ui.AchievementsWindow} Frame 1Symbol 1442 Button
"level5_button"Symbol 1457 MovieClip {game.ui.AchievementsWindow} Frame 1Symbol 1447 Button
"main_menu_button"Symbol 1457 MovieClip {game.ui.AchievementsWindow} Frame 1Symbol 1266 Button
"next_button"Symbol 1457 MovieClip {game.ui.AchievementsWindow} Frame 1Symbol 1449 Button
"bar"Symbol 1530 MovieClip {stonepunk_fla.HealthBar_498} Frame 1Symbol 68 MovieClip
"yesButton"Symbol 1548 MovieClip {stonepunk_fla.Symbol21_502} Frame 1Symbol 1544 Button
"noButton"Symbol 1548 MovieClip {stonepunk_fla.Symbol21_502} Frame 1Symbol 1547 Button
"music_off_button"Symbol 1549 MovieClip {game.ui.Options} Frame 1Symbol 1463 Button
"music_on_button"Symbol 1549 MovieClip {game.ui.Options} Frame 1Symbol 1465 Button
"reset_saved_button"Symbol 1549 MovieClip {game.ui.Options} Frame 1Symbol 1486 Button
"low_quality_button"Symbol 1549 MovieClip {game.ui.Options} Frame 1Symbol 1481 Button
"medium_quality_button"Symbol 1549 MovieClip {game.ui.Options} Frame 1Symbol 1483 Button
"high_quality_button"Symbol 1549 MovieClip {game.ui.Options} Frame 1Symbol 1479 Button
"sound_control"Symbol 1549 MovieClip {game.ui.Options} Frame 1Symbol 1527 MovieClip {OptionsSoundSlider}
"next_button"Symbol 1549 MovieClip {game.ui.Options} Frame 1Symbol 1262 Button
"cover_prompt"Symbol 1549 MovieClip {game.ui.Options} Frame 1Symbol 1548 MovieClip {stonepunk_fla.Symbol21_502}
"lv1"Symbol 1583 MovieClip {PterodactylRow} Frame 1Symbol 1565 MovieClip {stonepunk_fla.PterodactylSlot1_513}
"lv2"Symbol 1583 MovieClip {PterodactylRow} Frame 1Symbol 1570 MovieClip {stonepunk_fla.PterodactylSlot2_514}
"lv3"Symbol 1583 MovieClip {PterodactylRow} Frame 1Symbol 1575 MovieClip {stonepunk_fla.PterodactylSlot3_516}
"cost_txt"Symbol 1583 MovieClip {PterodactylRow} Frame 1Symbol 1577 EditableText
"buy_button"Symbol 1583 MovieClip {PterodactylRow} Frame 1Symbol 1581 Button
"name_txt"Symbol 1583 MovieClip {PterodactylRow} Frame 1Symbol 1582 EditableText
"lv1"Symbol 1594 MovieClip {TurtleRow} Frame 1Symbol 1586 MovieClip {stonepunk_fla.TurtleSlot1_521}
"lv2"Symbol 1594 MovieClip {TurtleRow} Frame 1Symbol 1588 MovieClip {stonepunk_fla.TurtleSlot2_522}
"lv3"Symbol 1594 MovieClip {TurtleRow} Frame 1Symbol 1591 MovieClip {stonepunk_fla.TurtletSlot3_523}
"cost_txt"Symbol 1594 MovieClip {TurtleRow} Frame 1Symbol 1592 EditableText
"buy_button"Symbol 1594 MovieClip {TurtleRow} Frame 1Symbol 1581 Button
"name_txt"Symbol 1594 MovieClip {TurtleRow} Frame 1Symbol 1593 EditableText
"lv1"Symbol 1610 MovieClip {RodentRow} Frame 1Symbol 1600 MovieClip {stonepunk_fla.RodentSlot1_526}
"lv2"Symbol 1610 MovieClip {RodentRow} Frame 1Symbol 1603 MovieClip {stonepunk_fla.RodentSlot2_527}
"lv3"Symbol 1610 MovieClip {RodentRow} Frame 1Symbol 1606 MovieClip {stonepunk_fla.RodentSlot3_528}
"cost_txt"Symbol 1610 MovieClip {RodentRow} Frame 1Symbol 1607 EditableText
"buy_button"Symbol 1610 MovieClip {RodentRow} Frame 1Symbol 1608 Button
"name_txt"Symbol 1610 MovieClip {RodentRow} Frame 1Symbol 1609 EditableText
"name_txt"Symbol 1618 MovieClip {CommonUpgradeRow} Frame 1Symbol 1615 EditableText
"lv1"Symbol 1618 MovieClip {CommonUpgradeRow} Frame 1Symbol 1616 MovieClip {stonepunk_fla.UpgradeSlot_531}
"lv2"Symbol 1618 MovieClip {CommonUpgradeRow} Frame 1Symbol 1616 MovieClip {stonepunk_fla.UpgradeSlot_531}
"lv3"Symbol 1618 MovieClip {CommonUpgradeRow} Frame 1Symbol 1616 MovieClip {stonepunk_fla.UpgradeSlot_531}
"lv4"Symbol 1618 MovieClip {CommonUpgradeRow} Frame 1Symbol 1616 MovieClip {stonepunk_fla.UpgradeSlot_531}
"lv5"Symbol 1618 MovieClip {CommonUpgradeRow} Frame 1Symbol 1616 MovieClip {stonepunk_fla.UpgradeSlot_531}
"lv6"Symbol 1618 MovieClip {CommonUpgradeRow} Frame 1Symbol 1616 MovieClip {stonepunk_fla.UpgradeSlot_531}
"lv7"Symbol 1618 MovieClip {CommonUpgradeRow} Frame 1Symbol 1616 MovieClip {stonepunk_fla.UpgradeSlot_531}
"lv8"Symbol 1618 MovieClip {CommonUpgradeRow} Frame 1Symbol 1616 MovieClip {stonepunk_fla.UpgradeSlot_531}
"lv9"Symbol 1618 MovieClip {CommonUpgradeRow} Frame 1Symbol 1616 MovieClip {stonepunk_fla.UpgradeSlot_531}
"lv10"Symbol 1618 MovieClip {CommonUpgradeRow} Frame 1Symbol 1616 MovieClip {stonepunk_fla.UpgradeSlot_531}
"cost_txt"Symbol 1618 MovieClip {CommonUpgradeRow} Frame 1Symbol 1617 EditableText
"buy_button"Symbol 1618 MovieClip {CommonUpgradeRow} Frame 1Symbol 1608 Button
"launching_pad"Symbol 1622 MovieClip {game.ui.UpgradesWindow} Frame 1Symbol 1618 MovieClip {CommonUpgradeRow}
"gems_txt"Symbol 1622 MovieClip {game.ui.UpgradesWindow} Frame 1Symbol 1621 EditableText
"obstacle_resistance"Symbol 1622 MovieClip {game.ui.UpgradesWindow} Frame 1Symbol 1618 MovieClip {CommonUpgradeRow}
"bouncing_rate"Symbol 1622 MovieClip {game.ui.UpgradesWindow} Frame 1Symbol 1618 MovieClip {CommonUpgradeRow}
"acceleration"Symbol 1622 MovieClip {game.ui.UpgradesWindow} Frame 1Symbol 1618 MovieClip {CommonUpgradeRow}
"rodent"Symbol 1622 MovieClip {game.ui.UpgradesWindow} Frame 1Symbol 1610 MovieClip {RodentRow}
"food"Symbol 1622 MovieClip {game.ui.UpgradesWindow} Frame 1Symbol 1618 MovieClip {CommonUpgradeRow}
"turtle"Symbol 1622 MovieClip {game.ui.UpgradesWindow} Frame 1Symbol 1594 MovieClip {TurtleRow}
"pterodactyl"Symbol 1622 MovieClip {game.ui.UpgradesWindow} Frame 1Symbol 1583 MovieClip {PterodactylRow}
"next_button"Symbol 1622 MovieClip {game.ui.UpgradesWindow} Frame 1Symbol 1262 Button
"main_menu_button"Symbol 1622 MovieClip {game.ui.UpgradesWindow} Frame 1Symbol 1266 Button
"grain2"Symbol 1702 MovieClip {stonepunk_fla.Story_549} Frame 1Symbol 1701 MovieClip
"grain1"Symbol 1702 MovieClip {stonepunk_fla.Story_549} Frame 1Symbol 1701 MovieClip
"grain3"Symbol 1702 MovieClip {stonepunk_fla.Story_549} Frame 1Symbol 1701 MovieClip
"grain4"Symbol 1702 MovieClip {stonepunk_fla.Story_549} Frame 1Symbol 1701 MovieClip
"start_game_button"Symbol 1708 MovieClip {game.ui.WelcomeScreen} Frame 1Symbol 1649 Button
"options_button"Symbol 1708 MovieClip {game.ui.WelcomeScreen} Frame 1Symbol 1651 Button
"resume_button"Symbol 1708 MovieClip {game.ui.WelcomeScreen} Frame 1Symbol 1653 Button
"upgrades_button"Symbol 1708 MovieClip {game.ui.WelcomeScreen} Frame 1Symbol 1655 Button
"flonga_button"Symbol 1708 MovieClip {game.ui.WelcomeScreen} Frame 1Symbol 104 Button
"story_mc"Symbol 1708 MovieClip {game.ui.WelcomeScreen} Frame 1Symbol 1702 MovieClip {stonepunk_fla.Story_549}
"cacher_wait_dialog"Symbol 1708 MovieClip {game.ui.WelcomeScreen} Frame 1Symbol 1707 MovieClip
"fbHead"Symbol 1743 MovieClip {stonepunk_fla.flongabot_576} Frame 1Symbol 1735 MovieClip {stonepunk_fla.fb_head_mc_578}
"flobot"Symbol 1748 MovieClip {stonepunk_fla.FlongaIntro_574} Frame 27Symbol 1743 MovieClip {stonepunk_fla.flongabot_576}

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.
Protect (24)Timeline Frame 131 bytes "..$1$kc$XS0Mq7OEwXJ48uYm7Gbxi.."

Labels

"protected_frame"Frame 2
"welcome_screen"Frame 5
"normal"Symbol 87 MovieClip {stonepunk_fla.fb_head_mc_10} Frame 1
"turnhead"Symbol 87 MovieClip {stonepunk_fla.fb_head_mc_10} Frame 5
"turnhead_stop"Symbol 87 MovieClip {stonepunk_fla.fb_head_mc_10} Frame 13
"wink_start"Symbol 87 MovieClip {stonepunk_fla.fb_head_mc_10} Frame 14
"wink_end"Symbol 87 MovieClip {stonepunk_fla.fb_head_mc_10} Frame 23
#"normal"Symbol 98 MovieClip {stonepunk_fla.flongabot_8} Frame 1
"normal_end"Symbol 98 MovieClip {stonepunk_fla.flongabot_8} Frame 76
"flying_start"Symbol 98 MovieClip {stonepunk_fla.flongabot_8} Frame 77
"flying"Symbol 98 MovieClip {stonepunk_fla.flongabot_8} Frame 82
"flying_loop"Symbol 98 MovieClip {stonepunk_fla.flongabot_8} Frame 89
"flying_end"Symbol 98 MovieClip {stonepunk_fla.flongabot_8} Frame 90
"flying_end_end"Symbol 98 MovieClip {stonepunk_fla.flongabot_8} Frame 100
"normal_label"Symbol 272 MovieClip {stonepunk_fla.Symbol9copy_107} Frame 1
"surprised_label"Symbol 272 MovieClip {stonepunk_fla.Symbol9copy_107} Frame 2
"level1"Symbol 300 MovieClip {stonepunk_fla.turtle_108} Frame 1
"level2"Symbol 300 MovieClip {stonepunk_fla.turtle_108} Frame 2
"level3"Symbol 300 MovieClip {stonepunk_fla.turtle_108} Frame 3
"level1"Symbol 322 MovieClip {stonepunk_fla.rodent_121} Frame 1
"level2"Symbol 322 MovieClip {stonepunk_fla.rodent_121} Frame 2
"level3"Symbol 322 MovieClip {stonepunk_fla.rodent_121} Frame 3
"level1"Symbol 372 MovieClip {stonepunk_fla.pterodactyl_134} Frame 1
"level2"Symbol 372 MovieClip {stonepunk_fla.pterodactyl_134} Frame 2
"level3"Symbol 372 MovieClip {stonepunk_fla.pterodactyl_134} Frame 3
"pause"Symbol 1092 MovieClip {stonepunk_fla.PauseMC_315} Frame 1
"TRAVEL_DISTANCE_1"Symbol 1410 MovieClip {AchievementIcon} Frame 1
"TRAVEL_DISTANCE_2"Symbol 1410 MovieClip {AchievementIcon} Frame 2
"TRAVEL_DISTANCE_3"Symbol 1410 MovieClip {AchievementIcon} Frame 3
"TRAVEL_DISTANCE_4"Symbol 1410 MovieClip {AchievementIcon} Frame 4
"TRAVEL_DISTANCE_5"Symbol 1410 MovieClip {AchievementIcon} Frame 5
"REACH_SPEED_1"Symbol 1410 MovieClip {AchievementIcon} Frame 6
"REACH_SPEED_2"Symbol 1410 MovieClip {AchievementIcon} Frame 7
"REACH_SPEED_3"Symbol 1410 MovieClip {AchievementIcon} Frame 8
"REACH_SPEED_4"Symbol 1410 MovieClip {AchievementIcon} Frame 9
"REACH_SPEED_5"Symbol 1410 MovieClip {AchievementIcon} Frame 10
"JUMP_UP_1"Symbol 1410 MovieClip {AchievementIcon} Frame 11
"JUMP_UP_2"Symbol 1410 MovieClip {AchievementIcon} Frame 12
"JUMP_UP_3"Symbol 1410 MovieClip {AchievementIcon} Frame 13
"JUMP_UP_4"Symbol 1410 MovieClip {AchievementIcon} Frame 14
"JUMP_UP_5"Symbol 1410 MovieClip {AchievementIcon} Frame 15
"ASTRONAUT"Symbol 1410 MovieClip {AchievementIcon} Frame 16
"DINO_HUNTER"Symbol 1410 MovieClip {AchievementIcon} Frame 17
"WEALTHEST_MAN"Symbol 1410 MovieClip {AchievementIcon} Frame 18
"BETTER_THAN_BIRD_1"Symbol 1410 MovieClip {AchievementIcon} Frame 19
"BETTER_THAN_BIRD_2"Symbol 1410 MovieClip {AchievementIcon} Frame 20
"BETTER_THAN_BIRD_3"Symbol 1410 MovieClip {AchievementIcon} Frame 21
"WORLDS_BEST_DISTANCE"Symbol 1410 MovieClip {AchievementIcon} Frame 22
"BIRD_FOWLING"Symbol 1410 MovieClip {AchievementIcon} Frame 23
"MAN_CANNON"Symbol 1410 MovieClip {AchievementIcon} Frame 24
"ADDICTION"Symbol 1410 MovieClip {AchievementIcon} Frame 25
"pause"Symbol 1532 MovieClip {stonepunk_fla.PauseMC_500} Frame 1
"done_label"Symbol 1565 MovieClip {stonepunk_fla.PterodactylSlot1_513} Frame 1
"empty_label"Symbol 1565 MovieClip {stonepunk_fla.PterodactylSlot1_513} Frame 2
"opened_label"Symbol 1565 MovieClip {stonepunk_fla.PterodactylSlot1_513} Frame 3
"done_label"Symbol 1570 MovieClip {stonepunk_fla.PterodactylSlot2_514} Frame 1
"empty_label"Symbol 1570 MovieClip {stonepunk_fla.PterodactylSlot2_514} Frame 2
"opened_label"Symbol 1570 MovieClip {stonepunk_fla.PterodactylSlot2_514} Frame 3
"done_label"Symbol 1575 MovieClip {stonepunk_fla.PterodactylSlot3_516} Frame 1
"empty_label"Symbol 1575 MovieClip {stonepunk_fla.PterodactylSlot3_516} Frame 2
"opened_label"Symbol 1575 MovieClip {stonepunk_fla.PterodactylSlot3_516} Frame 3
"done_label"Symbol 1586 MovieClip {stonepunk_fla.TurtleSlot1_521} Frame 1
"empty_label"Symbol 1586 MovieClip {stonepunk_fla.TurtleSlot1_521} Frame 2
"opened_label"Symbol 1586 MovieClip {stonepunk_fla.TurtleSlot1_521} Frame 3
"done_label"Symbol 1588 MovieClip {stonepunk_fla.TurtleSlot2_522} Frame 1
"empty_label"Symbol 1588 MovieClip {stonepunk_fla.TurtleSlot2_522} Frame 2
"opened_label"Symbol 1588 MovieClip {stonepunk_fla.TurtleSlot2_522} Frame 3
"done_label"Symbol 1591 MovieClip {stonepunk_fla.TurtletSlot3_523} Frame 1
"empty_label"Symbol 1591 MovieClip {stonepunk_fla.TurtletSlot3_523} Frame 2
"opened_label"Symbol 1591 MovieClip {stonepunk_fla.TurtletSlot3_523} Frame 3
"empty_label"Symbol 1600 MovieClip {stonepunk_fla.RodentSlot1_526} Frame 1
"done_label"Symbol 1600 MovieClip {stonepunk_fla.RodentSlot1_526} Frame 2
"opened_label"Symbol 1600 MovieClip {stonepunk_fla.RodentSlot1_526} Frame 3
"done_label"Symbol 1603 MovieClip {stonepunk_fla.RodentSlot2_527} Frame 1
"empty_label"Symbol 1603 MovieClip {stonepunk_fla.RodentSlot2_527} Frame 2
"opened_label"Symbol 1603 MovieClip {stonepunk_fla.RodentSlot2_527} Frame 3
"done_label"Symbol 1606 MovieClip {stonepunk_fla.RodentSlot3_528} Frame 1
"empty_label"Symbol 1606 MovieClip {stonepunk_fla.RodentSlot3_528} Frame 2
"opened_label"Symbol 1606 MovieClip {stonepunk_fla.RodentSlot3_528} Frame 3
"empty_label"Symbol 1616 MovieClip {stonepunk_fla.UpgradeSlot_531} Frame 1
"done_label"Symbol 1616 MovieClip {stonepunk_fla.UpgradeSlot_531} Frame 2
"opened_label"Symbol 1616 MovieClip {stonepunk_fla.UpgradeSlot_531} Frame 3
"normal"Symbol 1735 MovieClip {stonepunk_fla.fb_head_mc_578} Frame 1
"turnhead"Symbol 1735 MovieClip {stonepunk_fla.fb_head_mc_578} Frame 5
"turnhead_stop"Symbol 1735 MovieClip {stonepunk_fla.fb_head_mc_578} Frame 13
"wink_start"Symbol 1735 MovieClip {stonepunk_fla.fb_head_mc_578} Frame 14
"wink_end"Symbol 1735 MovieClip {stonepunk_fla.fb_head_mc_578} Frame 23
#"normal"Symbol 1743 MovieClip {stonepunk_fla.flongabot_576} Frame 1
"normal_end"Symbol 1743 MovieClip {stonepunk_fla.flongabot_576} Frame 76
"flying_start"Symbol 1743 MovieClip {stonepunk_fla.flongabot_576} Frame 77
"flying"Symbol 1743 MovieClip {stonepunk_fla.flongabot_576} Frame 82
"flying_loop"Symbol 1743 MovieClip {stonepunk_fla.flongabot_576} Frame 89
"flying_end"Symbol 1743 MovieClip {stonepunk_fla.flongabot_576} Frame 90
"flying_end_end"Symbol 1743 MovieClip {stonepunk_fla.flongabot_576} Frame 100




http://swfchan.com/19/90285/info.shtml
Created: 28/3 -2019 12:38:11 Last modified: 28/3 -2019 12:38:11 Server time: 15/05 -2024 05:39:39