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

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

Car & Bike & Horse - Lil Racerz.swf

This is the info page for
Flash #236042

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


Text
FOG.COM

100

FREEONLINEGAMES.COM

A BLASTONE GAME

Creating Track

FOG

Play

Play

Play

More Games

More Games

NO DRIVER OR MANUFACTURER ENDORSES OR IS ANYWAY INVOLVED
WITH THIS GAME. SIMILARITIES ARE PURELY COINCIDENTAL.

LEFT / RIGHT OR W D TURN
UP OR W ACCELERATE
DOWN OR S BRAKE
TAP SPACE NITRO

MUSIC ON OFF

Select

Select

Exit

Exit

ENTRY

SELECT CAR

GET FAMILIAR WITH YOUR CARN AND ITS HANDLIGN AND GET READY FOR SOME NITRO BOOST ACTION. GET FAMILI

TRACK 08

1ST

Cancel

Cancel

TRACK

POS

TIME

Submit Times

YOU

99

99

99

TOTAL

Continue

Continue

OVERALL POSITION

1st

Leaderboard

0

99

ENTRY

SELECT TRACK

99

POSITION

1st

TIMES

00"00'000

TIME

<p align="left"></p>

/

<p align="right"></p>

POSITION

LAP

Push UP to
Start

NO DRIVER OR MANUFACTURER ENDORSES OR IS ANYWAY INVOLVED WITH THIS GAME. SIMILARITIES ARE PURELY COINCIDENTAL.

YOU

02'10"098

<p align="center"><font face="HelveticaNeue ExtBlackCond" size="12" color="#ffffff" letterSpacing="1.000000" kerning="0">SOUNDS OFF</font></p>

<p align="center"><font face="HelveticaNeue ExtBlackCond" size="12" color="#ffffff" letterSpacing="1.000000" kerning="0">PAUSE</font></p>

<p align="center"><font face="HelveticaNeue ExtBlackCond" size="12" color="#ffffff" letterSpacing="1.000000" kerning="0">MUSIC OFF </font></p>

<p align="center"><font face="HelveticaNeue ExtBlackCond" size="12" color="#ffffff" letterSpacing="1.000000" kerning="0">EXIT</font></p>

GRIP REAR
STEERING RANGE
STEERING INC
MULTIPLIER

ACCELERATION
LINEAR DAMPING
ANGULAR DAMPING
GRIP FRONT

CAR X:

CAR Y:

CAR ANGLE:

-9999

With Selected
Z rotate -
X rotate +
CTRL + Click ADD
SHIFT + Click DELETE

NAME
EMAIL
COUNTRY

ONLY ENTER YOUR EMAIL IF YOU
WISH TO JOIN OUR MAILING LIST

SUBMITTING SCORE

<p align="left"></p>

TIMES SUBMITTED

Submit

Submit

01

02:33:181

ActionScript [AS3]

Section 1
//BitmapDataTilesMinimap (assets.BitmapDataTilesMinimap) package assets { import flash.display.*; public dynamic class BitmapDataTilesMinimap extends BitmapData { public function BitmapDataTilesMinimap(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package assets
Section 2
//BitmapDataTilesPreview (assets.BitmapDataTilesPreview) package assets { import flash.display.*; public dynamic class BitmapDataTilesPreview extends BitmapData { public function BitmapDataTilesPreview(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package assets
Section 3
//BitmapFlag (assets.BitmapFlag) package assets { import flash.display.*; public dynamic class BitmapFlag extends BitmapData { public function BitmapFlag(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package assets
Section 4
//BitmapTilesBackground (assets.BitmapTilesBackground) package assets { import flash.display.*; public dynamic class BitmapTilesBackground extends BitmapData { public function BitmapTilesBackground(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package assets
Section 5
//BitmapTilesDesertAlpha (assets.BitmapTilesDesertAlpha) package assets { import flash.display.*; public dynamic class BitmapTilesDesertAlpha extends BitmapData { public function BitmapTilesDesertAlpha(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package assets
Section 6
//BitmapTilesDesertTexture (assets.BitmapTilesDesertTexture) package assets { import flash.display.*; public dynamic class BitmapTilesDesertTexture extends BitmapData { public function BitmapTilesDesertTexture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package assets
Section 7
//BitmapTilesSnowAlpha (assets.BitmapTilesSnowAlpha) package assets { import flash.display.*; public dynamic class BitmapTilesSnowAlpha extends BitmapData { public function BitmapTilesSnowAlpha(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package assets
Section 8
//BitmapTilesSnowTexture (assets.BitmapTilesSnowTexture) package assets { import flash.display.*; public dynamic class BitmapTilesSnowTexture extends BitmapData { public function BitmapTilesSnowTexture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package assets
Section 9
//BitmapTilesTarmacAlpha (assets.BitmapTilesTarmacAlpha) package assets { import flash.display.*; public dynamic class BitmapTilesTarmacAlpha extends BitmapData { public function BitmapTilesTarmacAlpha(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package assets
Section 10
//BitmapTilesTarmacTexture (assets.BitmapTilesTarmacTexture) package assets { import flash.display.*; public dynamic class BitmapTilesTarmacTexture extends BitmapData { public function BitmapTilesTarmacTexture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package assets
Section 11
//buttonBlastone (assets.buttonBlastone) package assets { import flash.display.*; public dynamic class buttonBlastone extends SimpleButton { } }//package assets
Section 12
//ButtonMoreGames (assets.ButtonMoreGames) package assets { import flash.display.*; public dynamic class ButtonMoreGames extends SimpleButton { } }//package assets
Section 13
//ButtonPlay (assets.ButtonPlay) package assets { import flash.display.*; public dynamic class ButtonPlay extends SimpleButton { } }//package assets
Section 14
//fog_1 (assets.fog_1) package assets { import flash.display.*; public dynamic class fog_1 extends MovieClip { public function fog_1(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets
Section 15
//fogaudio (assets.fogaudio) package assets { import flash.media.*; public dynamic class fogaudio extends Sound { } }//package assets
Section 16
//MovieClipCarAlfa (assets.MovieClipCarAlfa) package assets { import flash.display.*; public dynamic class MovieClipCarAlfa extends MovieClip { public var tail:MovieClip; public var body:MovieClip; } }//package assets
Section 17
//MovieClipCarCelica (assets.MovieClipCarCelica) package assets { import flash.display.*; public dynamic class MovieClipCarCelica extends MovieClip { public var tail:MovieClip; public var body:MovieClip; } }//package assets
Section 18
//MovieClipCarFocus (assets.MovieClipCarFocus) package assets { import flash.display.*; public dynamic class MovieClipCarFocus extends MovieClip { public var tail:MovieClip; public var body:MovieClip; } }//package assets
Section 19
//MovieClipCarImpreza (assets.MovieClipCarImpreza) package assets { import flash.display.*; public dynamic class MovieClipCarImpreza extends MovieClip { public var tail:MovieClip; public var body:MovieClip; } }//package assets
Section 20
//MovieClipCarLancer (assets.MovieClipCarLancer) package assets { import flash.display.*; public dynamic class MovieClipCarLancer extends MovieClip { public var tail:MovieClip; public var body:MovieClip; } }//package assets
Section 21
//MovieClipCars (assets.MovieClipCars) package assets { import flash.display.*; import flash.text.*; public dynamic class MovieClipCars extends MovieClip { public var lock:MovieClip; public var btnRight:SimpleButton; public var descriptionText:TextField; public var nameText:TextField; public var btnBack:SimpleButton; public var btnSelect:SimpleButton; public var btnLeft:SimpleButton; } }//package assets
Section 22
//MovieClipCarSkoda (assets.MovieClipCarSkoda) package assets { import flash.display.*; public dynamic class MovieClipCarSkoda extends MovieClip { public var tail:MovieClip; public var body:MovieClip; } }//package assets
Section 23
//MovieClipCircleSpin (assets.MovieClipCircleSpin) package assets { import flash.display.*; public dynamic class MovieClipCircleSpin extends MovieClip { } }//package assets
Section 24
//MovieClipControls (assets.MovieClipControls) package assets { import flash.display.*; import flash.text.*; public dynamic class MovieClipControls extends MovieClip { public var btnPause:SimpleButton; public var textExit:TextField; public var btnSound:SimpleButton; public var btnMusic:SimpleButton; public var btnExit:SimpleButton; public var btnFOG:MovieClip; public var textPause:TextField; public var textSound:TextField; public var textMusic:TextField; } }//package assets
Section 25
//MovieClipCount01 (assets.MovieClipCount01) package assets { import flash.display.*; public dynamic class MovieClipCount01 extends MovieClip { } }//package assets
Section 26
//MovieClipCount02 (assets.MovieClipCount02) package assets { import flash.display.*; public dynamic class MovieClipCount02 extends MovieClip { } }//package assets
Section 27
//MovieClipCount03 (assets.MovieClipCount03) package assets { import flash.display.*; public dynamic class MovieClipCount03 extends MovieClip { } }//package assets
Section 28
//MovieClipCountGo (assets.MovieClipCountGo) package assets { import flash.display.*; public dynamic class MovieClipCountGo extends MovieClip { } }//package assets
Section 29
//MovieClipDebug (assets.MovieClipDebug) package assets { import flash.display.*; import fl.controls.*; import flash.text.*; public dynamic class MovieClipDebug extends MovieClip { public var btnShowLines:Button; public var stepGripRear:NumericStepper; public var stepSteeringInc:NumericStepper; public var stepDampingLinear:NumericStepper; public var btnObstaclesTrace:Button; public var btnWaypointsTrace:Button; public var stepAcceleration:NumericStepper; public var btnShowBox2d:Button; public var stepDampingAngular:NumericStepper; public var stepGripFront:NumericStepper; public var textCarAngle:TextField; public var btnObstaclesAdd:Button; public var btnWaypointsShow:Button; public var stepMultiplier:NumericStepper; public var textCarY:TextField; public var comboObstacles:ComboBox; public var textCarX:TextField; public var btnObstaclesShow:Button; public var stepSteeringRange:NumericStepper; public function MovieClipDebug(){ __setProp_stepMultiplier_debugPanel_Layer1_1(); __setProp_stepGripRear_debugPanel_Layer1_1(); __setProp_stepDampingLinear_debugPanel_Layer1_1(); __setProp_stepSteeringInc_debugPanel_Layer1_1(); __setProp_btnObstaclesAdd_debugPanel_Layer1_1(); __setProp_btnShowLines_debugPanel_Layer1_1(); __setProp_btnObstaclesShow_debugPanel_Layer1_1(); __setProp_stepGripFront_debugPanel_Layer1_1(); __setProp_btnShowBox2d_debugPanel_Layer1_1(); __setProp_btnWaypointsTrace_debugPanel_Layer1_1(); __setProp_btnWaypointsShow_debugPanel_Layer1_1(); __setProp_btnObstaclesTrace_debugPanel_Layer1_1(); __setProp_stepAcceleration_debugPanel_Layer1_1(); __setProp_stepDampingAngular_debugPanel_Layer1_1(); __setProp_stepSteeringRange_debugPanel_Layer1_1(); } function __setProp_stepDampingAngular_debugPanel_Layer1_1(){ try { stepDampingAngular["componentInspectorSetting"] = true; } catch(e:Error) { }; stepDampingAngular.enabled = true; stepDampingAngular.maximum = 10; stepDampingAngular.minimum = 0; stepDampingAngular.stepSize = 0.01; stepDampingAngular.value = 1; stepDampingAngular.visible = true; try { stepDampingAngular["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_stepGripRear_debugPanel_Layer1_1(){ try { stepGripRear["componentInspectorSetting"] = true; } catch(e:Error) { }; stepGripRear.enabled = true; stepGripRear.maximum = 10; stepGripRear.minimum = 0; stepGripRear.stepSize = 0.01; stepGripRear.value = 1; stepGripRear.visible = true; try { stepGripRear["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btnShowLines_debugPanel_Layer1_1(){ try { btnShowLines["componentInspectorSetting"] = true; } catch(e:Error) { }; btnShowLines.emphasized = false; btnShowLines.enabled = true; btnShowLines.label = "Show Lines"; btnShowLines.labelPlacement = "right"; btnShowLines.selected = false; btnShowLines.toggle = false; btnShowLines.visible = true; try { btnShowLines["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btnWaypointsTrace_debugPanel_Layer1_1(){ try { btnWaypointsTrace["componentInspectorSetting"] = true; } catch(e:Error) { }; btnWaypointsTrace.emphasized = false; btnWaypointsTrace.enabled = true; btnWaypointsTrace.label = "Trace Waypoints"; btnWaypointsTrace.labelPlacement = "right"; btnWaypointsTrace.selected = false; btnWaypointsTrace.toggle = false; btnWaypointsTrace.visible = true; try { btnWaypointsTrace["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btnObstaclesAdd_debugPanel_Layer1_1(){ try { btnObstaclesAdd["componentInspectorSetting"] = true; } catch(e:Error) { }; btnObstaclesAdd.emphasized = false; btnObstaclesAdd.enabled = true; btnObstaclesAdd.label = "Add Obstacles"; btnObstaclesAdd.labelPlacement = "right"; btnObstaclesAdd.selected = false; btnObstaclesAdd.toggle = false; btnObstaclesAdd.visible = true; try { btnObstaclesAdd["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btnObstaclesTrace_debugPanel_Layer1_1(){ try { btnObstaclesTrace["componentInspectorSetting"] = true; } catch(e:Error) { }; btnObstaclesTrace.emphasized = false; btnObstaclesTrace.enabled = true; btnObstaclesTrace.label = "Trace Obstacles"; btnObstaclesTrace.labelPlacement = "right"; btnObstaclesTrace.selected = false; btnObstaclesTrace.toggle = false; btnObstaclesTrace.visible = true; try { btnObstaclesTrace["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btnWaypointsShow_debugPanel_Layer1_1(){ try { btnWaypointsShow["componentInspectorSetting"] = true; } catch(e:Error) { }; btnWaypointsShow.emphasized = false; btnWaypointsShow.enabled = true; btnWaypointsShow.label = "Show Waypoints"; btnWaypointsShow.labelPlacement = "right"; btnWaypointsShow.selected = false; btnWaypointsShow.toggle = false; btnWaypointsShow.visible = true; try { btnWaypointsShow["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btnObstaclesShow_debugPanel_Layer1_1(){ try { btnObstaclesShow["componentInspectorSetting"] = true; } catch(e:Error) { }; btnObstaclesShow.emphasized = false; btnObstaclesShow.enabled = true; btnObstaclesShow.label = "Show Obstacles"; btnObstaclesShow.labelPlacement = "right"; btnObstaclesShow.selected = false; btnObstaclesShow.toggle = false; btnObstaclesShow.visible = true; try { btnObstaclesShow["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_stepGripFront_debugPanel_Layer1_1(){ try { stepGripFront["componentInspectorSetting"] = true; } catch(e:Error) { }; stepGripFront.enabled = true; stepGripFront.maximum = 10; stepGripFront.minimum = 0; stepGripFront.stepSize = 0.01; stepGripFront.value = 1; stepGripFront.visible = true; try { stepGripFront["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btnShowBox2d_debugPanel_Layer1_1(){ try { btnShowBox2d["componentInspectorSetting"] = true; } catch(e:Error) { }; btnShowBox2d.emphasized = false; btnShowBox2d.enabled = true; btnShowBox2d.label = "Show Box2D"; btnShowBox2d.labelPlacement = "right"; btnShowBox2d.selected = false; btnShowBox2d.toggle = false; btnShowBox2d.visible = true; try { btnShowBox2d["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_stepSteeringInc_debugPanel_Layer1_1(){ try { stepSteeringInc["componentInspectorSetting"] = true; } catch(e:Error) { }; stepSteeringInc.enabled = true; stepSteeringInc.maximum = 10; stepSteeringInc.minimum = 0; stepSteeringInc.stepSize = 0.01; stepSteeringInc.value = 1; stepSteeringInc.visible = true; try { stepSteeringInc["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_stepDampingLinear_debugPanel_Layer1_1(){ try { stepDampingLinear["componentInspectorSetting"] = true; } catch(e:Error) { }; stepDampingLinear.enabled = true; stepDampingLinear.maximum = 10; stepDampingLinear.minimum = 0; stepDampingLinear.stepSize = 0.01; stepDampingLinear.value = 1; stepDampingLinear.visible = true; try { stepDampingLinear["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_stepAcceleration_debugPanel_Layer1_1(){ try { stepAcceleration["componentInspectorSetting"] = true; } catch(e:Error) { }; stepAcceleration.enabled = true; stepAcceleration.maximum = 50; stepAcceleration.minimum = 0; stepAcceleration.stepSize = 0.01; stepAcceleration.value = 1; stepAcceleration.visible = true; try { stepAcceleration["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_stepMultiplier_debugPanel_Layer1_1(){ try { stepMultiplier["componentInspectorSetting"] = true; } catch(e:Error) { }; stepMultiplier.enabled = true; stepMultiplier.maximum = 10; stepMultiplier.minimum = 0; stepMultiplier.stepSize = 0.01; stepMultiplier.value = 1; stepMultiplier.visible = true; try { stepMultiplier["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_stepSteeringRange_debugPanel_Layer1_1(){ try { stepSteeringRange["componentInspectorSetting"] = true; } catch(e:Error) { }; stepSteeringRange.enabled = true; stepSteeringRange.maximum = 10; stepSteeringRange.minimum = 0; stepSteeringRange.stepSize = 0.01; stepSteeringRange.value = 1; stepSteeringRange.visible = true; try { stepSteeringRange["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package assets
Section 30
//MovieClipDebugObstacle (assets.MovieClipDebugObstacle) package assets { import flash.display.*; public dynamic class MovieClipDebugObstacle extends MovieClip { public var btnDelete:MovieClip; public var btnRotateCW:MovieClip; public var btnDrag:MovieClip; public var btnRotateCCW:MovieClip; } }//package assets
Section 31
//MovieClipEffectBlack (assets.MovieClipEffectBlack) package assets { import flash.display.*; public dynamic class MovieClipEffectBlack extends MovieClip { } }//package assets
Section 32
//MovieClipEffectClouds (assets.MovieClipEffectClouds) package assets { import flash.display.*; public dynamic class MovieClipEffectClouds extends MovieClip { } }//package assets
Section 33
//MovieClipEffectDustDesert (assets.MovieClipEffectDustDesert) package assets { import flash.display.*; public dynamic class MovieClipEffectDustDesert extends MovieClip { } }//package assets
Section 34
//MovieClipEffectDustSnow (assets.MovieClipEffectDustSnow) package assets { import flash.display.*; public dynamic class MovieClipEffectDustSnow extends MovieClip { } }//package assets
Section 35
//MovieClipEffectLight (assets.MovieClipEffectLight) package assets { import flash.display.*; public dynamic class MovieClipEffectLight extends MovieClip { } }//package assets
Section 36
//MovieClipFinish (assets.MovieClipFinish) package assets { import flash.display.*; public dynamic class MovieClipFinish extends MovieClip { } }//package assets
Section 37
//MovieClipGetReady (assets.MovieClipGetReady) package assets { import flash.display.*; public dynamic class MovieClipGetReady extends MovieClip { } }//package assets
Section 38
//MovieClipHelp (assets.MovieClipHelp) package assets { import flash.display.*; public dynamic class MovieClipHelp extends MovieClip { public var btnMusic:MovieClip; public var btnSounds:MovieClip; } }//package assets
Section 39
//MovieClipHud (assets.MovieClipHud) package assets { import flash.display.*; import flash.text.*; public dynamic class MovieClipHud extends MovieClip { public var speedo:MovieClip; public var timerText:TextField; public var position:MovieClip; public var laps:MovieClip; } }//package assets
Section 40
//MovieClipLapDisplay (assets.MovieClipLapDisplay) package assets { import flash.display.*; import flash.text.*; public dynamic class MovieClipLapDisplay extends MovieClip { public var lapText:TextField; public var timeText:TextField; } }//package assets
Section 41
//MovieClipMarker (assets.MovieClipMarker) package assets { import flash.display.*; import flash.text.*; public dynamic class MovieClipMarker extends MovieClip { public var textID:TextField; public var marker:MovieClip; } }//package assets
Section 42
//MovieClipMinimapMarker (assets.MovieClipMinimapMarker) package assets { import flash.display.*; public dynamic class MovieClipMinimapMarker extends MovieClip { } }//package assets
Section 43
//MovieClipNitro (assets.MovieClipNitro) package assets { import flash.display.*; public dynamic class MovieClipNitro extends MovieClip { } }//package assets
Section 44
//MovieClipObstacleBush_1 (assets.MovieClipObstacleBush_1) package assets { import flash.display.*; public dynamic class MovieClipObstacleBush_1 extends MovieClip { } }//package assets
Section 45
//MovieClipObstacleBush_2 (assets.MovieClipObstacleBush_2) package assets { import flash.display.*; public dynamic class MovieClipObstacleBush_2 extends MovieClip { } }//package assets
Section 46
//MovieClipObstacleCheckpoint (assets.MovieClipObstacleCheckpoint) package assets { import flash.display.*; public dynamic class MovieClipObstacleCheckpoint extends MovieClip { } }//package assets
Section 47
//MovieClipObstacleCone (assets.MovieClipObstacleCone) package assets { import flash.display.*; public dynamic class MovieClipObstacleCone extends MovieClip { } }//package assets
Section 48
//MovieClipObstacleFinish (assets.MovieClipObstacleFinish) package assets { import flash.display.*; public dynamic class MovieClipObstacleFinish extends MovieClip { } }//package assets
Section 49
//MovieClipObstaclePond (assets.MovieClipObstaclePond) package assets { import flash.display.*; public dynamic class MovieClipObstaclePond extends MovieClip { } }//package assets
Section 50
//MovieClipObstacleRock_1 (assets.MovieClipObstacleRock_1) package assets { import flash.display.*; public dynamic class MovieClipObstacleRock_1 extends MovieClip { } }//package assets
Section 51
//MovieClipObstacleRock_2 (assets.MovieClipObstacleRock_2) package assets { import flash.display.*; public dynamic class MovieClipObstacleRock_2 extends MovieClip { } }//package assets
Section 52
//MovieClipObstacleRock_3 (assets.MovieClipObstacleRock_3) package assets { import flash.display.*; public dynamic class MovieClipObstacleRock_3 extends MovieClip { } }//package assets
Section 53
//MovieClipObstacleRock_4 (assets.MovieClipObstacleRock_4) package assets { import flash.display.*; public dynamic class MovieClipObstacleRock_4 extends MovieClip { } }//package assets
Section 54
//MovieClipObstacleRock_5 (assets.MovieClipObstacleRock_5) package assets { import flash.display.*; public dynamic class MovieClipObstacleRock_5 extends MovieClip { } }//package assets
Section 55
//MovieClipObstacleRock_6 (assets.MovieClipObstacleRock_6) package assets { import flash.display.*; public dynamic class MovieClipObstacleRock_6 extends MovieClip { } }//package assets
Section 56
//MovieClipObstacleRock_7 (assets.MovieClipObstacleRock_7) package assets { import flash.display.*; public dynamic class MovieClipObstacleRock_7 extends MovieClip { } }//package assets
Section 57
//MovieClipObstacleRock_8 (assets.MovieClipObstacleRock_8) package assets { import flash.display.*; public dynamic class MovieClipObstacleRock_8 extends MovieClip { } }//package assets
Section 58
//MovieClipObstacleRock_9 (assets.MovieClipObstacleRock_9) package assets { import flash.display.*; public dynamic class MovieClipObstacleRock_9 extends MovieClip { } }//package assets
Section 59
//MovieClipObstacleTree_1 (assets.MovieClipObstacleTree_1) package assets { import flash.display.*; public dynamic class MovieClipObstacleTree_1 extends MovieClip { } }//package assets
Section 60
//MovieClipObstacleTree_2 (assets.MovieClipObstacleTree_2) package assets { import flash.display.*; public dynamic class MovieClipObstacleTree_2 extends MovieClip { } }//package assets
Section 61
//MovieClipObstacleTree_3 (assets.MovieClipObstacleTree_3) package assets { import flash.display.*; public dynamic class MovieClipObstacleTree_3 extends MovieClip { } }//package assets
Section 62
//MovieClipObstacleTree_4 (assets.MovieClipObstacleTree_4) package assets { import flash.display.*; public dynamic class MovieClipObstacleTree_4 extends MovieClip { } }//package assets
Section 63
//MovieClipObstacleTree_5 (assets.MovieClipObstacleTree_5) package assets { import flash.display.*; public dynamic class MovieClipObstacleTree_5 extends MovieClip { } }//package assets
Section 64
//MovieClipObstacleTree_6 (assets.MovieClipObstacleTree_6) package assets { import flash.display.*; public dynamic class MovieClipObstacleTree_6 extends MovieClip { } }//package assets
Section 65
//MovieClipObstacleTreeSnow1 (assets.MovieClipObstacleTreeSnow1) package assets { import flash.display.*; public dynamic class MovieClipObstacleTreeSnow1 extends MovieClip { } }//package assets
Section 66
//MovieClipObstacleTyres (assets.MovieClipObstacleTyres) package assets { import flash.display.*; public dynamic class MovieClipObstacleTyres extends MovieClip { } }//package assets
Section 67
//MovieClipPanelFinish (assets.MovieClipPanelFinish) package assets { import flash.display.*; import flash.text.*; public dynamic class MovieClipPanelFinish extends MovieClip { public var btnContinue:SimpleButton; public var positionText:TextField; } }//package assets
Section 68
//MovieClipPanelFinishTime (assets.MovieClipPanelFinishTime) package assets { import flash.display.*; import flash.text.*; public dynamic class MovieClipPanelFinishTime extends MovieClip { public var timeText:TextField; public var idText:TextField; } }//package assets
Section 69
//MovieClipPanelStart (assets.MovieClipPanelStart) package assets { import flash.display.*; import flash.text.*; public dynamic class MovieClipPanelStart extends MovieClip { public var descriptionText:TextField; } }//package assets
Section 70
//MovieClipScoreboard (assets.MovieClipScoreboard) package assets { import flash.display.*; import fl.controls.*; public dynamic class MovieClipScoreboard extends MovieClip { public var inputCountries:ComboBox; public var btnContinue:SimpleButton; public var inputName:MovieClip; public var btnSubmit:SimpleButton; public var preloaderBar:MovieClip; public var inputEmail:MovieClip; } }//package assets
Section 71
//MovieClipStandings (assets.MovieClipStandings) package assets { import flash.display.*; import flash.text.*; public dynamic class MovieClipStandings extends MovieClip { public var btnContinue:SimpleButton; public var leaderboard:MovieClip; public var positionText:TextField; } }//package assets
Section 72
//MovieClipStandingsItem (assets.MovieClipStandingsItem) package assets { import flash.display.*; import flash.text.*; public dynamic class MovieClipStandingsItem extends MovieClip { public var lock:MovieClip; public var trackText:TextField; public var timeText:TextField; public var positionText:TextField; } }//package assets
Section 73
//MovieClipStandingsPlayer (assets.MovieClipStandingsPlayer) package assets { import flash.display.*; import flash.text.*; public dynamic class MovieClipStandingsPlayer extends MovieClip { public var playerText:TextField; } }//package assets
Section 74
//MovieClipStandingsPointsDefault (assets.MovieClipStandingsPointsDefault) package assets { import flash.display.*; import flash.text.*; public dynamic class MovieClipStandingsPointsDefault extends MovieClip { public var pointsText:TextField; } }//package assets
Section 75
//MovieClipStandingsPointsFirst (assets.MovieClipStandingsPointsFirst) package assets { import flash.display.*; import flash.text.*; public dynamic class MovieClipStandingsPointsFirst extends MovieClip { public var pointsText:TextField; } }//package assets
Section 76
//MovieClipStandingsPointsSecond (assets.MovieClipStandingsPointsSecond) package assets { import flash.display.*; import flash.text.*; public dynamic class MovieClipStandingsPointsSecond extends MovieClip { public var pointsText:TextField; } }//package assets
Section 77
//MovieClipStandingsPointsThird (assets.MovieClipStandingsPointsThird) package assets { import flash.display.*; import flash.text.*; public dynamic class MovieClipStandingsPointsThird extends MovieClip { public var pointsText:TextField; } }//package assets
Section 78
//MovieClipStandingsTotal (assets.MovieClipStandingsTotal) package assets { import flash.display.*; public dynamic class MovieClipStandingsTotal extends MovieClip { } }//package assets
Section 79
//MovieClipStandingsTotals (assets.MovieClipStandingsTotals) package assets { import flash.display.*; import flash.text.*; public dynamic class MovieClipStandingsTotals extends MovieClip { public var dataText:TextField; } }//package assets
Section 80
//MovieClipStandingsTrackText (assets.MovieClipStandingsTrackText) package assets { import flash.display.*; public dynamic class MovieClipStandingsTrackText extends MovieClip { } }//package assets
Section 81
//MovieClipSubmit (assets.MovieClipSubmit) package assets { import flash.display.*; public dynamic class MovieClipSubmit extends MovieClip { public var btnCancel:SimpleButton; } }//package assets
Section 82
//MovieClipTitle (assets.MovieClipTitle) package assets { import flash.display.*; public dynamic class MovieClipTitle extends MovieClip { public var btnFOG:MovieClip; } }//package assets
Section 83
//MovieClipTracks (assets.MovieClipTracks) package assets { import flash.display.*; import flash.text.*; public dynamic class MovieClipTracks extends MovieClip { public var lock:MovieClip; public var btnRight:SimpleButton; public var descriptionText:TextField; public var nameText:TextField; public var btnBack:SimpleButton; public var btnSelect:SimpleButton; public var btnLeft:SimpleButton; } }//package assets
Section 84
//Preloader (assets.Preloader) package assets { import flash.display.*; public dynamic class Preloader extends MovieClip { public var btnFoggy:SimpleButton; public var mcLogo:MovieClip; public var pre1:MovieClip; } }//package assets
Section 85
//SoundBoost (assets.SoundBoost) package assets { import flash.media.*; public dynamic class SoundBoost extends Sound { } }//package assets
Section 86
//SoundCarCrashCar (assets.SoundCarCrashCar) package assets { import flash.media.*; public dynamic class SoundCarCrashCar extends Sound { } }//package assets
Section 87
//SoundCarCrashSolid (assets.SoundCarCrashSolid) package assets { import flash.media.*; public dynamic class SoundCarCrashSolid extends Sound { } }//package assets
Section 88
//SoundCarEngine00 (assets.SoundCarEngine00) package assets { import flash.media.*; public dynamic class SoundCarEngine00 extends Sound { } }//package assets
Section 89
//SoundCarEngine01 (assets.SoundCarEngine01) package assets { import flash.media.*; public dynamic class SoundCarEngine01 extends Sound { } }//package assets
Section 90
//SoundCarEngine02 (assets.SoundCarEngine02) package assets { import flash.media.*; public dynamic class SoundCarEngine02 extends Sound { } }//package assets
Section 91
//SoundCarEngine03 (assets.SoundCarEngine03) package assets { import flash.media.*; public dynamic class SoundCarEngine03 extends Sound { } }//package assets
Section 92
//SoundCarEngine04 (assets.SoundCarEngine04) package assets { import flash.media.*; public dynamic class SoundCarEngine04 extends Sound { } }//package assets
Section 93
//SoundCarEngine05 (assets.SoundCarEngine05) package assets { import flash.media.*; public dynamic class SoundCarEngine05 extends Sound { } }//package assets
Section 94
//SoundCarLoopHigh (assets.SoundCarLoopHigh) package assets { import flash.media.*; public dynamic class SoundCarLoopHigh extends Sound { } }//package assets
Section 95
//SoundCarLoopIdle (assets.SoundCarLoopIdle) package assets { import flash.media.*; public dynamic class SoundCarLoopIdle extends Sound { } }//package assets
Section 96
//SoundCarLoopLow (assets.SoundCarLoopLow) package assets { import flash.media.*; public dynamic class SoundCarLoopLow extends Sound { } }//package assets
Section 97
//SoundCarLoopMedium (assets.SoundCarLoopMedium) package assets { import flash.media.*; public dynamic class SoundCarLoopMedium extends Sound { } }//package assets
Section 98
//SoundCarSkid (assets.SoundCarSkid) package assets { import flash.media.*; public dynamic class SoundCarSkid extends Sound { } }//package assets
Section 99
//SoundCash (assets.SoundCash) package assets { import flash.media.*; public dynamic class SoundCash extends Sound { } }//package assets
Section 100
//SoundClick (assets.SoundClick) package assets { import flash.media.*; public dynamic class SoundClick extends Sound { } }//package assets
Section 101
//TrackBurn (assets.TrackBurn) package assets { import flash.media.*; public dynamic class TrackBurn extends Sound { } }//package assets
Section 102
//TrackExtreme (assets.TrackExtreme) package assets { import flash.media.*; public dynamic class TrackExtreme extends Sound { } }//package assets
Section 103
//car_10 (assets_fla.car_10) package assets_fla { import flash.display.*; public dynamic class car_10 extends MovieClip { public function car_10(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets_fla
Section 104
//car_12 (assets_fla.car_12) package assets_fla { import flash.display.*; public dynamic class car_12 extends MovieClip { public function car_12(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets_fla
Section 105
//car_14 (assets_fla.car_14) package assets_fla { import flash.display.*; public dynamic class car_14 extends MovieClip { public function car_14(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets_fla
Section 106
//car_2 (assets_fla.car_2) package assets_fla { import flash.display.*; public dynamic class car_2 extends MovieClip { public var tail:MovieClip; } }//package assets_fla
Section 107
//car_4 (assets_fla.car_4) package assets_fla { import flash.display.*; public dynamic class car_4 extends MovieClip { public function car_4(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets_fla
Section 108
//credits_186 (assets_fla.credits_186) package assets_fla { import flash.display.*; import flash.text.*; public dynamic class credits_186 extends MovieClip { public var label:TextField; public var btn:SimpleButton; } }//package assets_fla
Section 109
//fog_logo_temp_151 (assets_fla.fog_logo_temp_151) package assets_fla { import flash.display.*; public dynamic class fog_logo_temp_151 extends MovieClip { public function fog_logo_temp_151(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package assets_fla
Section 110
//hud_144 (assets_fla.hud_144) package assets_fla { import flash.display.*; public dynamic class hud_144 extends MovieClip { public var dial:MovieClip; } }//package assets_fla
Section 111
//hud_146 (assets_fla.hud_146) package assets_fla { import flash.display.*; import flash.text.*; public dynamic class hud_146 extends MovieClip { public var fieldText:TextField; public var placeText:TextField; } }//package assets_fla
Section 112
//hud_147 (assets_fla.hud_147) package assets_fla { import flash.display.*; import flash.text.*; public dynamic class hud_147 extends MovieClip { public var lapText:TextField; public var lapsText:TextField; } }//package assets_fla
Section 113
//mc_bomb_17 (assets_fla.mc_bomb_17) package assets_fla { import flash.display.*; public dynamic class mc_bomb_17 extends MovieClip { public var guide:MovieClip; public function mc_bomb_17(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets_fla
Section 114
//prelMCxcopy_ovidiu2_150 (assets_fla.prelMCxcopy_ovidiu2_150) package assets_fla { import flash.display.*; import flash.text.*; public dynamic class prelMCxcopy_ovidiu2_150 extends MovieClip { public var procent:TextField; public function prelMCxcopy_ovidiu2_150(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets_fla
Section 115
//scoreboard_193 (assets_fla.scoreboard_193) package assets_fla { import flash.display.*; import flash.text.*; public dynamic class scoreboard_193 extends MovieClip { public var hover:MovieClip; public var textInput:TextField; } }//package assets_fla
Section 116
//scoreboard_195 (assets_fla.scoreboard_195) package assets_fla { import flash.display.*; public dynamic class scoreboard_195 extends MovieClip { public var bar:MovieClip; } }//package assets_fla
Section 117
//b2CircleDef (Box2D.Collision.Shapes.b2CircleDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2CircleDef extends b2ShapeDef { public var radius:Number; public var localPosition:b2Vec2; public function b2CircleDef(){ localPosition = new b2Vec2(0, 0); super(); type = b2Shape.e_circleShape; radius = 1; } } }//package Box2D.Collision.Shapes
Section 118
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_localPosition:b2Vec2; public var m_radius:Number; public function b2CircleShape(_arg1:b2ShapeDef){ m_localPosition = new b2Vec2(); super(_arg1); var _local2:b2CircleDef = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local10:Number; var _local6:b2Mat22 = _arg1.R; var _local7:Number = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); var _local8:Number = (_arg1.position.x + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); var _local9:Number = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); var _local11:Number = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ return (false); }; var _local12:Number = (_arg4.p2.x - _arg4.p1.x); var _local13:Number = (_arg4.p2.y - _arg4.p1.y); var _local14:Number = ((_local9 * _local12) + (_local10 * _local13)); var _local15:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local16:Number = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; var _local17:Number = -((_local14 + Math.sqrt(_local16))); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){ _local17 = (_local17 / _local15); _arg2[0] = _local17; _arg3.x = (_local9 + (_local17 * _local12)); _arg3.y = (_local10 + (_local17 * _local13)); _arg3.Normalize(); return (true); }; return (false); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } public function GetRadius():Number{ return (m_radius); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; _local4 = _arg2.R; var _local5:Number = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local6:Number = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; var _local7:Number = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local8:Number = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius)); _arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius)); } override public function ComputeMass(_arg1:b2MassData):void{ _arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_localPosition); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y)))); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number = (m_localPosition.x - _arg1.x); var _local3:Number = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22 = _arg2.R; var _local4:Number = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22 = _arg1.R; var _local4:Number = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } } }//package Box2D.Collision.Shapes
Section 119
//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 Copy():b2FilterData{ var _local1:b2FilterData = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Collision.Shapes
Section 120
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ center = new b2Vec2(0, 0); super(); } } }//package Box2D.Collision.Shapes
Section 121
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertices:Array; public var vertexCount:int; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; var _local1:int; while (_local1 < b2Settings.b2_maxPolygonVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } public function 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 122
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { public var m_coreVertices:Array; public var m_vertices:Array; private var s_supportVec:b2Vec2; public var m_centroid:b2Vec2; public var m_normals:Array; public var m_obb:b2OBB; public var m_vertexCount:int; private static var s_computeMat:b2Mat22 = new b2Mat22(); private static var s_sweptAABB1:b2AABB = new b2AABB(); private static var s_sweptAABB2:b2AABB = new b2AABB(); public function b2PolygonShape(_arg1:b2ShapeDef){ var _local3:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; s_supportVec = new b2Vec2(); m_obb = new b2OBB(); m_vertices = new Array(b2Settings.b2_maxPolygonVertices); m_normals = new Array(b2Settings.b2_maxPolygonVertices); m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices); super(_arg1); m_type = e_polygonShape; var _local2:b2PolygonDef = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; var _local4:int = _local3; var _local5:int = _local3; _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3] = _local2.vertices[_local3].Copy(); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = (m_vertices[_local5].x - m_vertices[_local4].x); _local7 = (m_vertices[_local5].y - m_vertices[_local4].y); _local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8)); _local3++; }; m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount); ComputeOBB(m_obb, m_vertices, m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { _local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1); _local5 = _local3; _local9 = m_normals[_local4].x; _local10 = m_normals[_local4].y; _local11 = m_normals[_local5].x; _local12 = m_normals[_local5].y; _local13 = (m_vertices[_local3].x - m_centroid.x); _local14 = (m_vertices[_local3].y - m_centroid.y); _local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop); _local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop); _local17 = (1 / ((_local9 * _local12) - (_local10 * _local11))); m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y)); _local3++; }; } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB = s_sweptAABB1; var _local5:b2AABB = s_sweptAABB2; ComputeAABB(_local4, _arg2); ComputeAABB(_local5, _arg3); _arg1.lowerBound.Set(((_local4.lowerBound.x < _local5.lowerBound.x)) ? _local4.lowerBound.x : _local5.lowerBound.x, ((_local4.lowerBound.y < _local5.lowerBound.y)) ? _local4.lowerBound.y : _local5.lowerBound.y); _arg1.upperBound.Set(((_local4.upperBound.x > _local5.upperBound.x)) ? _local4.upperBound.x : _local5.upperBound.x, ((_local4.upperBound.y > _local5.upperBound.y)) ? _local4.upperBound.y : _local5.upperBound.y); } public function GetVertices():Array{ return (m_vertices); } public function GetCoreVertices():Array{ return (m_coreVertices); } public function GetCentroid():b2Vec2{ return (m_centroid); } 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 TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local20:Number; var _local21:Number; var _local6:Number = 0; var _local7:Number = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; var _local12:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local13:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local8 = (_arg4.p2.x - _arg1.position.x); _local9 = (_arg4.p2.y - _arg1.position.y); _local10 = _arg1.R; var _local14:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local15:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); var _local18 = -1; var _local19:int; while (_local19 < m_vertexCount) { _local11 = m_vertices[_local19]; _local8 = (_local11.x - _local12); _local9 = (_local11.y - _local13); _local11 = m_normals[_local19]; _local20 = ((_local11.x * _local8) + (_local11.y * _local9)); _local21 = ((_local11.x * _local16) + (_local11.y * _local17)); if ((((_local21 < 0)) && ((_local20 < (_local6 * _local21))))){ _local6 = (_local20 / _local21); _local18 = _local19; } else { if ((((_local21 > 0)) && ((_local20 < (_local7 * _local21))))){ _local7 = (_local20 / _local21); }; }; if (_local7 < _local6){ return (false); }; _local19++; }; if (_local18 >= 0){ _arg2[0] = _local6; _local10 = _arg1.R; _local11 = m_normals[_local18]; _arg3.x = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _arg3.y = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); return (true); }; return (false); } override public function ComputeMass(_arg1:b2MassData):void{ var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local2:Number = 0; var _local3:Number = 0; var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; var _local7:Number = 0; var _local8:Number = (1 / 3); var _local9:int; while (_local9 < m_vertexCount) { _local10 = m_vertices[_local9]; _local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[int((_local9 + 1))] : m_vertices[0]; _local12 = (_local10.x - _local6); _local13 = (_local10.y - _local7); _local14 = (_local11.x - _local6); _local15 = (_local11.y - _local7); _local16 = ((_local12 * _local15) - (_local13 * _local14)); _local17 = (0.5 * _local16); _local4 = (_local4 + _local17); _local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x))); _local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y))); _local18 = _local6; _local19 = _local7; _local20 = _local12; _local21 = _local13; _local22 = _local14; _local23 = _local15; _local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18)); _local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local5 = (_local5 + (_local16 * (_local24 + _local25))); _local9++; }; _arg1.mass = (m_density * _local4); _local2 = (_local2 * (1 / _local4)); _local3 = (_local3 * (1 / _local4)); _arg1.center.Set(_local2, _local3); _arg1.I = (m_density * _local5); } public function GetNormals():Array{ return (m_normals); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Vec2; var _local5:b2Mat22; var _local11:Number; _local5 = _arg1.R; var _local6:Number = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y)); var _local7:Number = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y)); var _local8:int; _local4 = m_coreVertices[0]; var _local9:Number = ((_local4.x * _local6) + (_local4.y * _local7)); var _local10 = 1; while (_local10 < m_vertexCount) { _local4 = m_coreVertices[_local10]; _local11 = ((_local4.x * _local6) + (_local4.y * _local7)); if (_local11 > _local9){ _local8 = _local10; _local9 = _local11; }; _local10++; }; _local5 = _arg1.R; _local4 = m_coreVertices[_local8]; s_supportVec.x = (_arg1.position.x + ((_local5.col1.x * _local4.x) + (_local5.col2.x * _local4.y))); s_supportVec.y = (_arg1.position.y + ((_local5.col1.y * _local4.x) + (_local5.col2.y * _local4.y))); return (s_supportVec); } public function GetVertexCount():int{ return (m_vertexCount); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22 = s_computeMat; _local3 = _arg2.R; _local4 = m_obb.R.col1; _local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local4 = m_obb.R.col2; _local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local5.Abs(); var _local6:b2Mat22 = _local5; _local4 = m_obb.extents; var _local7:Number = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); var _local8:Number = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; var _local9:Number = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); var _local10:Number = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8)); _arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8)); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:b2Vec2; var _local4:Number; var _local5:Number; m_sweepRadius = 0; var _local3:int; while (_local3 < m_vertexCount) { _local2 = m_coreVertices[_local3]; _local4 = (_local2.x - _arg1.x); _local5 = (_local2.y - _arg1.y); _local4 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); if (_local4 > m_sweepRadius){ m_sweepRadius = _local4; }; _local3++; }; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Vec2; var _local10:Number; var _local4:b2Mat22 = _arg1.R; var _local5:Number = (_arg2.x - _arg1.position.x); var _local6:Number = (_arg2.y - _arg1.position.y); var _local7:Number = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); var _local8:Number = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); var _local9:int; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local7:Number; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local3 = new b2Vec2(); var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; _local7 = (1 / 3); var _local8:int; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0]; _local11 = (_local9.x - _local5); _local12 = (_local9.y - _local6); _local13 = (_local10.x - _local5); _local14 = (_local10.y - _local6); _local15 = ((_local11 * _local14) - (_local12 * _local13)); _local16 = (0.5 * _local15); _local4 = (_local4 + _local16); _local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x))); _local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y))); _local8++; }; _local3.x = (_local3.x * (1 / _local4)); _local3.y = (_local3.y * (1 / _local4)); return (_local3); } public static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{ var _local4:int; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:b2Mat22; var _local5:Array = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; var _local6:Number = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[int((_local4 - 1))]; _local8 = (_local5[_local4].x - _local7.x); _local9 = (_local5[_local4].y - _local7.y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = -(_local9); _local12 = _local8; _local13 = Number.MAX_VALUE; _local14 = Number.MAX_VALUE; _local15 = -(Number.MAX_VALUE); _local16 = -(Number.MAX_VALUE); _local17 = 0; while (_local17 < _arg3) { _local19 = (_local5[_local17].x - _local7.x); _local20 = (_local5[_local17].y - _local7.y); _local21 = ((_local8 * _local19) + (_local9 * _local20)); _local22 = ((_local11 * _local19) + (_local12 * _local20)); if (_local21 < _local13){ _local13 = _local21; }; if (_local22 < _local14){ _local14 = _local22; }; if (_local21 > _local15){ _local15 = _local21; }; if (_local22 > _local16){ _local16 = _local22; }; _local17++; }; _local18 = ((_local15 - _local13) * (_local16 - _local14)); if (_local18 < (0.95 * _local6)){ _local6 = _local18; _arg1.R.col1.x = _local8; _arg1.R.col1.y = _local9; _arg1.R.col2.x = _local11; _arg1.R.col2.y = _local12; _local23 = (0.5 * (_local13 + _local15)); _local24 = (0.5 * (_local14 + _local16)); _local25 = _arg1.R; _arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24))); _arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24))); _arg1.extents.x = (0.5 * (_local15 - _local13)); _arg1.extents.y = (0.5 * (_local16 - _local14)); }; _local4++; }; } } }//package Box2D.Collision.Shapes
Section 123
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; public class b2Shape { public var m_next: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_isSensor:Boolean; public var m_restitution:Number; public var m_userData; 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 SetUserData(_arg1):void{ m_userData = _arg1; } 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{ if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _arg1.DestroyProxy(m_proxyId); var _local3:b2AABB = s_resetAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } public function GetUserData(){ return (m_userData); } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; var _local4:b2AABB = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxyId, _local4); return (true); }; return (false); } public function 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 = s_proxyAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } 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 124
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { public class b2ShapeDef { public var friction:Number;// = 0.2 public var isSensor:Boolean;// = false public var density:Number;// = 0 public var restitution:Number;// = 0 public var userData;// = null public var filter:b2FilterData; public var type:int;// = -1 public function b2ShapeDef(){ filter = new b2FilterData(); super(); } } }//package Box2D.Collision.Shapes
Section 125
//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 = (upperBound.x - lowerBound.x); var _local2:Number = (upperBound.y - lowerBound.y); var _local3:Boolean = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } }//package Box2D.Collision
Section 126
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var value:uint; public var proxyId:uint; public var stabbingCount:uint; public function Swap(_arg1:b2Bound):void{ var _local2:uint = value; var _local3:uint = proxyId; var _local4:uint = stabbingCount; value = _arg1.value; proxyId = _arg1.proxyId; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxyId = _local3; _arg1.stabbingCount = _local4; } public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } } }//package Box2D.Collision
Section 127
//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 128
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_bounds:Array; public var m_quantizationFactor:b2Vec2; public var m_worldAABB:b2AABB; public var m_freeProxy:uint; public var m_proxyCount:int; public var m_proxyPool:Array; public var m_queryResultCount:int; public var m_pairManager:b2PairManager; public var m_timeStamp:uint; public var m_queryResults:Array; public static const b2_nullEdge:uint = 0xFFFF; public static const b2_invalid:uint = 0xFFFF; public static var s_validate:Boolean = false; public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){ var _local3:int; var _local5:Number; var _local6:b2Proxy; var _local7:int; m_pairManager = new b2PairManager(); m_proxyPool = new Array(b2Settings.b2_maxPairs); m_bounds = new Array((2 * b2Settings.b2_maxProxies)); m_queryResults = new Array(b2Settings.b2_maxProxies); m_quantizationFactor = new b2Vec2(); super(); m_pairManager.Initialize(this, _arg2); m_worldAABB = _arg1; m_proxyCount = 0; _local3 = 0; while (_local3 < b2Settings.b2_maxProxies) { m_queryResults[_local3] = 0; _local3++; }; m_bounds = new Array(2); _local3 = 0; while (_local3 < 2) { m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies)); _local7 = 0; while (_local7 < (2 * b2Settings.b2_maxProxies)) { m_bounds[_local3][_local7] = new b2Bound(); _local7++; }; _local3++; }; var _local4:Number = (_arg1.upperBound.x - _arg1.lowerBound.x); _local5 = (_arg1.upperBound.y - _arg1.lowerBound.y); m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4); m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5); _local3 = 0; while (_local3 < (b2Settings.b2_maxProxies - 1)) { _local6 = new b2Proxy(); m_proxyPool[_local3] = _local6; _local6.SetNext((_local3 + 1)); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; _local3++; }; _local6 = new b2Proxy(); m_proxyPool[int((b2Settings.b2_maxProxies - 1))] = _local6; _local6.SetNext(b2Pair.b2_nullProxy); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; m_freeProxy = 0; m_timeStamp = 1; m_queryResultCount = 0; } public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{ var _local6:uint; var _local7:uint; var _local12:b2Proxy; var _local4:Array = new Array(); var _local5:Array = new Array(); ComputeBounds(_local4, _local5, _arg1); var _local8:Array = [_local6]; var _local9:Array = [_local7]; Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0); Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1); var _local10:int; var _local11:int; while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) { _local12 = m_proxyPool[m_queryResults[_local11]]; _arg2[_local11] = _local12.userData; _local11++; _local10++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local10); } public function Commit():void{ m_pairManager.Commit(); } public function GetProxy(_arg1:int):b2Proxy{ var _local2:b2Proxy = 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 _local10:b2Bound; var _local12:int; var _local13:int; var _local14:b2Proxy; var _local8:uint = BinarySearch(_arg5, _arg6, _arg3); var _local9:uint = BinarySearch(_arg5, _arg6, _arg4); var _local11:uint = _local8; while (_local11 < _local9) { _local10 = _arg5[_local11]; if (_local10.IsLower()){ IncrementOverlapCount(_local10.proxyId); }; _local11++; }; if (_local8 > 0){ _local12 = (_local8 - 1); _local10 = _arg5[_local12]; _local13 = _local10.stabbingCount; while (_local13) { _local10 = _arg5[_local12]; if (_local10.IsLower()){ _local14 = m_proxyPool[_local10.proxyId]; if (_local8 <= _local14.upperBounds[_arg7]){ IncrementOverlapCount(_local10.proxyId); _local13--; }; }; _local12--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local6:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg1.lowerBounds[_local3]]; _local6 = _local4[_arg2.upperBounds[_local3]]; if (_local5.value > _local6.value){ return (false); }; _local5 = _local4[_arg1.upperBounds[_local3]]; _local6 = _local4[_arg2.lowerBounds[_local3]]; if (_local5.value < _local6.value){ return (false); }; _local3++; }; return (true); } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number = _arg3.lowerBound.x; var _local5:Number = _arg3.lowerBound.y; _local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x); _local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y); _local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x); _local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y); var _local6:Number = _arg3.upperBound.x; var _local7:Number = _arg3.upperBound.y; _local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x); _local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y); _local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x); _local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y); _arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1)); _arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1); _arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1)); _arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1); } public function CreateProxy(_arg1:b2AABB, _arg2):uint{ var _local3:uint; var _local4:b2Proxy; var _local11:Array; var _local12:uint; var _local13:uint; var _local14:Array; var _local15:Array; var _local16:Array; var _local17:int; var _local18:int; var _local19:b2Bound; var _local20:b2Bound; var _local21:b2Bound; var _local22:int; var _local23:b2Proxy; var _local5:uint = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; var _local6:uint = (2 * m_proxyCount); var _local7:Array = new Array(); var _local8:Array = new Array(); ComputeBounds(_local7, _local8, _arg1); var _local9:int; while (_local9 < 2) { _local11 = m_bounds[_local9]; _local14 = [_local12]; _local15 = [_local13]; Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9); _local12 = _local14[0]; _local13 = _local15[0]; _local16 = new Array(); _local18 = (_local6 - _local13); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local13 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local13 + 2); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local16 = new Array(); _local18 = (_local13 - _local12); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local12 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local12 + 1); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local13++; _local19 = _local11[_local12]; _local20 = _local11[_local13]; _local19.value = _local7[_local9]; _local19.proxyId = _local5; _local20.value = _local8[_local9]; _local20.proxyId = _local5; _local21 = _local11[int((_local12 - 1))]; _local19.stabbingCount = ((_local12 == 0)) ? 0 : _local21.stabbingCount; _local21 = _local11[int((_local13 - 1))]; _local20.stabbingCount = _local21.stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local21 = _local11[_local3]; _local21.stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local6 + 2)) { _local19 = _local11[_local3]; _local23 = m_proxyPool[_local19.proxyId]; if (_local19.IsLower()){ _local23.lowerBounds[_local9] = _local3; } else { _local23.upperBounds[_local9] = _local3; }; _local3++; }; _local9++; }; m_proxyCount++; var _local10:int; while (_local10 < m_queryResultCount) { m_pairManager.AddBufferedPair(_local5, m_queryResults[_local10]); _local10++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); return (_local5); } public function DestroyProxy(_arg1:uint):void{ var _local2:b2Bound; var _local3:b2Bound; var _local8:Array; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:Array; var _local14:int; var _local15:int; var _local16:int; var _local17:uint; var _local18:int; var _local19:b2Proxy; var _local4:b2Proxy = m_proxyPool[_arg1]; var _local5:int = (2 * m_proxyCount); var _local6:int; while (_local6 < 2) { _local8 = m_bounds[_local6]; _local9 = _local4.lowerBounds[_local6]; _local10 = _local4.upperBounds[_local6]; _local2 = _local8[_local9]; _local11 = _local2.value; _local3 = _local8[_local10]; _local12 = _local3.value; _local13 = new Array(); _local15 = ((_local10 - _local9) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local9 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = _local9; _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local13 = new Array(); _local15 = ((_local5 - _local10) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local10 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = (_local10 - 1); _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = (_local5 - 2); _local17 = _local9; while (_local17 < _local15) { _local2 = _local8[_local17]; _local19 = m_proxyPool[_local2.proxyId]; if (_local2.IsLower()){ _local19.lowerBounds[_local6] = _local17; } else { _local19.upperBounds[_local6] = _local17; }; _local17++; }; _local15 = (_local10 - 1); _local18 = _local9; while (_local18 < _local15) { _local2 = _local8[_local18]; _local2.stabbingCount--; _local18++; }; Query([0], [0], _local11, _local12, _local8, (_local5 - 2), _local6); _local6++; }; var _local7:int; while (_local7 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local7]); _local7++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _local4.userData = null; _local4.overlapCount = b2_invalid; _local4.lowerBounds[0] = b2_invalid; _local4.lowerBounds[1] = b2_invalid; _local4.upperBounds[0] = b2_invalid; _local4.upperBounds[1] = b2_invalid; _local4.SetNext(m_freeProxy); m_freeProxy = _arg1; m_proxyCount--; } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg2.upperBounds[_local3]]; if (_arg1.lowerValues[_local3] > _local5.value){ return (false); }; _local5 = _local4[_arg2.lowerBounds[_local3]]; if (_arg1.upperValues[_local3] < _local5.value){ return (false); }; _local3++; }; return (true); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; var _local5:int; while (_local5 < 2) { _local6 = m_bounds[_local5]; _local7 = (2 * m_proxyCount); _local8 = 0; _local9 = 0; while (_local9 < _local7) { _local10 = _local6[_local9]; if (_local10.IsLower() == true){ _local8++; } else { _local8--; }; _local9++; }; _local5++; }; } private function IncrementOverlapCount(_arg1:uint):void{ var _local2:b2Proxy = m_proxyPool[_arg1]; if (_local2.timeStamp < m_timeStamp){ _local2.timeStamp = m_timeStamp; _local2.overlapCount = 1; } else { _local2.overlapCount = 2; m_queryResults[m_queryResultCount] = _arg1; m_queryResultCount++; }; } 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 _local16:Array; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:uint; var _local21:int; var _local22:int; var _local23:uint; var _local24:b2Proxy; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){ return; }; if (_arg2.IsValid() == false){ return; }; var _local12:uint = (2 * m_proxyCount); var _local13:b2Proxy = m_proxyPool[_arg1]; var _local14:b2BoundValues = new b2BoundValues(); ComputeBounds(_local14.lowerValues, _local14.upperValues, _arg2); var _local15:b2BoundValues = new b2BoundValues(); _local5 = 0; while (_local5 < 2) { _local7 = m_bounds[_local5][_local13.lowerBounds[_local5]]; _local15.lowerValues[_local5] = _local7.value; _local7 = m_bounds[_local5][_local13.upperBounds[_local5]]; _local15.upperValues[_local5] = _local7.value; _local5++; }; _local5 = 0; while (_local5 < 2) { _local16 = m_bounds[_local5]; _local17 = _local13.lowerBounds[_local5]; _local18 = _local13.upperBounds[_local5]; _local19 = _local14.lowerValues[_local5]; _local20 = _local14.upperValues[_local5]; _local7 = _local16[_local17]; _local21 = (_local19 - _local7.value); _local7.value = _local19; _local7 = _local16[_local18]; _local22 = (_local20 - _local7.value); _local7.value = _local20; if (_local21 < 0){ _local6 = _local17; while ((((_local6 > 0)) && ((_local19 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local8.proxyId]; _local8.stabbingCount++; if (_local8.IsUpper() == true){ if (TestOverlap(_local14, _local24)){ m_pairManager.AddBufferedPair(_arg1, _local23); }; _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; if (_local22 > 0){ _local6 = _local18; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local20)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount++; if (_local9.IsLower() == true){ if (TestOverlap(_local14, _local11)){ m_pairManager.AddBufferedPair(_arg1, _local10); }; _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local21 > 0){ _local6 = _local17; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local19)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount--; if (_local9.IsUpper()){ if (TestOverlap(_local15, _local11)){ m_pairManager.RemoveBufferedPair(_arg1, _local10); }; _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local22 < 0){ _local6 = _local18; while ((((_local6 > 0)) && ((_local20 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local23]; _local8.stabbingCount--; if (_local8.IsLower() == true){ if (TestOverlap(_local15, _local24)){ m_pairManager.RemoveBufferedPair(_arg1, _local23); }; _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; _local5++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local6:int; var _local7:b2Bound; var _local4:int; var _local5:int = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); _local7 = _arg1[_local6]; if (_local7.value > _arg3){ _local5 = (_local6 - 1); } else { if (_local7.value < _arg3){ _local4 = (_local6 + 1); } else { return (uint(_local6)); }; }; }; return (uint(_local4)); } } }//package Box2D.Collision
Section 129
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 130
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local11:b2Mat22; var _local12:b2Vec2; var _local25:Number; var _local6:int = _arg1.m_vertexCount; var _local7:Array = _arg1.m_vertices; var _local8:Array = _arg1.m_normals; var _local9:int = _arg4.m_vertexCount; var _local10:Array = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; var _local13:Number = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); var _local14:Number = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; var _local15:Number = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); var _local16:Number = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; var _local20:Number = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local21:Number = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; var _local22:Number = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local23:Number = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); var _local24:Number = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2 = _arg2.lowerBound; var _local4:b2Vec2 = _arg1.upperBound; var _local5:Number = (_local3.x - _local4.x); var _local6:Number = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; var _local7:Number = (_local3.x - _local4.x); var _local8:Number = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local12:b2Mat22; var _local13:b2Vec2; var _local20:ClipVertex; var _local23:Number; var _local7:int = _arg2.m_vertexCount; var _local8:Array = _arg2.m_normals; var _local9:int = _arg5.m_vertexCount; var _local10:Array = _arg5.m_vertices; var _local11:Array = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; var _local14:Number = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); var _local15:Number = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; var _local16:Number = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; var _local21:int = _local17; var _local22:int = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local21; _local20.id.features.incidentVertex = 0; _local20 = _arg1[1]; _local13 = _local10[_local22]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local22; _local20.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:ClipVertex; var _local13:b2PolygonShape; var _local14:b2PolygonShape; var _local17:int; var _local18:uint; var _local34:int; var _local37:b2Vec2; var _local38:Number; var _local39:b2ManifoldPoint; _arg1.pointCount = 0; var _local7:int; var _local8:Array = [_local7]; var _local9:Number = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5); _local7 = _local8[0]; if (_local9 > 0){ return; }; var _local10:int; var _local11:Array = [_local10]; var _local12:Number = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3); _local10 = _local11[0]; if (_local12 > 0){ return; }; var _local15:b2XForm = new b2XForm(); var _local16:b2XForm = new b2XForm(); var _local19:Number = 0.98; var _local20:Number = 0.001; if (_local12 > ((_local19 * _local9) + _local20)){ _local13 = _arg4; _local14 = _arg2; _local15.Set(_arg5); _local16.Set(_arg3); _local17 = _local10; _local18 = 1; } else { _local13 = _arg2; _local14 = _arg4; _local15.Set(_arg3); _local16.Set(_arg5); _local17 = _local7; _local18 = 0; }; var _local21:Array = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16); var _local22:int = _local13.m_vertexCount; var _local23:Array = _local13.m_vertices; var _local24:b2Vec2 = _local23[_local17]; var _local25:b2Vec2 = _local24.Copy(); if ((_local17 + 1) < _local22){ _local24 = _local23[int((_local17 + 1))]; _local37 = _local24.Copy(); } else { _local24 = _local23[0]; _local37 = _local24.Copy(); }; var _local26:b2Vec2 = b2Math.SubtractVV(_local37, _local25); var _local27:b2Vec2 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25)); _local27.Normalize(); var _local28:b2Vec2 = b2Math.b2CrossVF(_local27, 1); _local25 = b2Math.b2MulX(_local15, _local25); _local37 = b2Math.b2MulX(_local15, _local37); var _local29:Number = b2Math.b2Dot(_local28, _local25); var _local30:Number = -(b2Math.b2Dot(_local27, _local25)); var _local31:Number = b2Math.b2Dot(_local27, _local37); var _local32:Array = [new ClipVertex(), new ClipVertex()]; var _local33:Array = [new ClipVertex(), new ClipVertex()]; _local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30); if (_local34 < 2){ return; }; _local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31); if (_local34 < 2){ return; }; _arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy(); var _local35:int; var _local36:int; while (_local36 < b2Settings.b2_maxManifoldPoints) { _local6 = _local33[_local36]; _local38 = (b2Math.b2Dot(_local28, _local6.v) - _local29); if (_local38 <= 0){ _local39 = _arg1.points[_local35]; _local39.separation = _local38; _local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v); _local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v); _local39.id.key = _local6.id._key; _local39.id.features.flip = _local18; _local35++; }; _local36++; }; _arg1.pointCount = _local35; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local8:b2Vec2; var _local9:b2Mat22; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; var _local6:int = _arg2.m_vertexCount; var _local7:Array = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; var _local10:Number = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); var _local11:Number = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local9 = _arg3.R; _local8 = _arg2.m_centroid; _local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)))); _local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)))); var _local12:Number = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); var _local13:Number = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); var _local14:int; var _local15:Number = -(Number.MAX_VALUE); var _local16:int; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; var _local17:Number = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; var _local18:int = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); var _local19:Number = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); if (_local19 > 0){ return (_local19); }; var _local20:int = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; var _local21:Number = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); if (_local21 > 0){ return (_local21); }; if ((((_local19 > _local17)) && ((_local19 > _local21)))){ _local24 = -1; _local22 = _local18; _local23 = _local19; } else { if (_local21 > _local17){ _local24 = 1; _local22 = _local20; _local23 = _local21; } else { _arg1[0] = _local14; return (_local17); }; }; while (true) { if (_local24 == -1){ _local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1); } else { _local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; if (_local17 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; _local8 = _local5.v; _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); var _local10:Number = (b2Math.b2Dot(_arg3, _local8) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); var _local14 = _temp1; _arg1[_local14] = _arg2[0]; }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _local14 = _temp2; _arg1[_local14] = _arg2[1]; }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local18:Number; var _local24:Number; var _local25:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; var _local8:Number = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local9:Number = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; var _local10:Number = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local11:Number = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); var _local12:Number = (_local10 - _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local15:Number = _arg2.m_radius; var _local16:Number = _arg4.m_radius; var _local17:Number = (_local15 + _local16); if (_local14 > (_local17 * _local17)){ return; }; if (_local14 < Number.MIN_VALUE){ _local18 = -(_local17); _arg1.normal.Set(0, 1); } else { _local24 = Math.sqrt(_local14); _local18 = (_local24 - _local17); _local25 = (1 / _local24); _arg1.normal.x = (_local25 * _local12); _arg1.normal.y = (_local25 * _local13); }; _arg1.pointCount = 1; var _local19:b2ManifoldPoint = _arg1.points[0]; _local19.id.key = 0; _local19.separation = _local18; _local8 = (_local8 + (_local15 * _arg1.normal.x)); _local9 = (_local9 + (_local15 * _arg1.normal.y)); _local10 = (_local10 - (_local16 * _arg1.normal.x)); _local11 = (_local11 - (_local16 * _arg1.normal.y)); var _local20:Number = (0.5 * (_local8 + _local10)); var _local21:Number = (0.5 * (_local9 + _local11)); var _local22:Number = (_local20 - _arg3.position.x); var _local23:Number = (_local21 - _arg3.position.y); _local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y)); _local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y)); _local22 = (_local20 - _arg5.position.x); _local23 = (_local21 - _arg5.position.y); _local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y)); _local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y)); } public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local17:Number; var _local32:Number; var _local33:Number; var _local34:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; var _local13:Number = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); var _local14:Number = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; var _local15:Number = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); var _local16:Number = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); var _local18:int; var _local19:Number = -(Number.MAX_VALUE); var _local20:Number = _arg4.m_radius; var _local21:int = _arg2.m_vertexCount; var _local22:Array = _arg2.m_vertices; var _local23:Array = _arg2.m_normals; var _local24:int; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _local34 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local34 > _local20){ return; }; if (_local34 > _local19){ _local19 = _local34; _local18 = _local24; }; _local24++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _local23[_local18]; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)); _arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local19 - _local20); return; }; var _local25:int = _local18; var _local26:int = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; _local11 = _local22[_local25]; var _local27:b2Vec2 = _local22[_local26]; var _local28:Number = (_local27.x - _local11.x); var _local29:Number = (_local27.y - _local11.y); var _local30:Number = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); var _local31:Number = ((_local7 * _local28) + (_local8 * _local29)); _local6 = _arg1.points[0]; if (_local31 <= 0){ _local32 = _local11.x; _local33 = _local11.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local25; } else { if (_local31 >= _local30){ _local32 = _local27.x; _local33 = _local27.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local26; } else { _local32 = ((_local28 * _local31) + _local11.x); _local33 = ((_local29 * _local31) + _local11.y); _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = 0; }; }; _local7 = (_local15 - _local32); _local8 = (_local16 - _local33); _local17 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local7 = (_local7 / _local17); _local8 = (_local8 / _local17); if (_local17 > _local20){ return; }; _arg1.pointCount = 1; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local7) + (_local12.col2.x * _local8)); _arg1.normal.y = ((_local12.col1.y * _local7) + (_local12.col2.y * _local8)); _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local17 - _local20); _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; } } }//package Box2D.Collision
Section 131
//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 = new b2ContactID(); _local1.key = key; return (_local1); } 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); } public function get key():uint{ return (_key); } } }//package Box2D.Collision
Section 132
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2ContactPoint { public var friction:Number; 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 velocity:b2Vec2; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 133
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Distance { private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); public static var g_GJK_Iterations:int = 0; public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local6:b2Vec2; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local4:Number = (100 * Number.MIN_VALUE); var _local5:int; while (_local5 < _arg3) { _local6 = _arg2[_local5]; _local7 = Math.abs((_arg1.x - _local6.x)); _local8 = Math.abs((_arg1.y - _local6.y)); _local9 = Math.max(Math.abs(_arg1.x), Math.abs(_local6.x)); _local10 = Math.max(Math.abs(_arg1.y), Math.abs(_local6.y)); if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:b2Vec2; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:int; var _local8:Array = s_p1s; var _local9:Array = s_p2s; var _local10:Array = s_points; var _local11:int; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); var _local12:Number = 0; var _local13 = 20; var _local14:int; while (_local14 < _local13) { _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local17 = _arg3.Support(_arg4, _local15, _local16); _local18 = _arg5.Support(_arg6, -(_local15), -(_local16)); _local12 = ((_local15 * _local15) + (_local16 * _local16)); _local19 = (_local18.x - _local17.x); _local20 = (_local18.y - _local17.y); _local21 = ((_local15 * _local19) + (_local16 * _local20)); if ((_local12 - ((_local15 * _local19) + (_local16 * _local20))) <= (0.01 * _local12)){ if (_local11 == 0){ _arg1.SetV(_local17); _arg2.SetV(_local18); }; g_GJK_Iterations = _local14; return (Math.sqrt(_local12)); }; switch (_local11){ case 0: _local7 = _local8[0]; _local7.SetV(_local17); _local7 = _local9[0]; _local7.SetV(_local18); _local7 = _local10[0]; _local7.x = _local19; _local7.y = _local20; _arg1.SetV(_local8[0]); _arg2.SetV(_local9[0]); _local11++; break; case 1: _local7 = _local8[1]; _local7.SetV(_local17); _local7 = _local9[1]; _local7.SetV(_local18); _local7 = _local10[1]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10); break; case 2: _local7 = _local8[2]; _local7.SetV(_local17); _local7 = _local9[2]; _local7.SetV(_local18); _local7 = _local10[2]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10); break; }; if (_local11 == 3){ g_GJK_Iterations = _local14; return (0); }; _local22 = -(Number.MAX_VALUE); _local23 = 0; while (_local23 < _local11) { _local7 = _local10[_local23]; _local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y))); _local23++; }; if ((((_local11 == 3)) || ((_local12 <= ((100 * Number.MIN_VALUE) * _local22))))){ g_GJK_Iterations = _local14; _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local12 = ((_local15 * _local15) + (_local16 * _local16)); return (Math.sqrt(_local12)); }; _local14++; }; g_GJK_Iterations = _local13; return (Math.sqrt(_local12)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; var _local9:Number = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local10:Number = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; var _local11:Number = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local12:Number = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:Number = ((_local13 * _local13) + (_local14 * _local14)); var _local16:Number = (_arg3.m_radius - b2Settings.b2_toiSlop); var _local17:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); var _local18:Number = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _local20 = (_local19 - _local18); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = (_local11 - (_local17 * _local13)); _arg2.y = (_local12 - (_local17 * _local14)); return (_local20); }; if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; _arg1.x = _local9; _arg1.y = _local10; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:b2Vec2; var _local35:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg5[2]; _local9 = _arg3[0]; _local10 = _arg3[1]; _local11 = _arg3[2]; _local12 = _arg4[0]; _local13 = _arg4[1]; var _local14:b2Vec2 = _arg4[2]; var _local15:Number = _local6.x; var _local16:Number = _local6.y; var _local17:Number = _local7.x; var _local18:Number = _local7.y; var _local19:Number = _local8.x; var _local20:Number = _local8.y; var _local21:Number = (_local17 - _local15); var _local22:Number = (_local18 - _local16); var _local23:Number = (_local19 - _local15); var _local24:Number = (_local20 - _local16); var _local25:Number = (_local19 - _local17); var _local26:Number = (_local20 - _local18); var _local27:Number = -(((_local15 * _local21) + (_local16 * _local22))); var _local28:Number = ((_local17 * _local21) + (_local18 * _local22)); var _local29:Number = -(((_local15 * _local23) + (_local16 * _local24))); var _local30:Number = ((_local19 * _local23) + (_local20 * _local24)); var _local31:Number = -(((_local17 * _local25) + (_local18 * _local26))); var _local32:Number = ((_local19 * _local25) + (_local20 * _local26)); if ((((_local30 <= 0)) && ((_local32 <= 0)))){ _arg1.SetV(_local11); _arg2.SetV(_local14); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (1); }; var _local33:Number = ((_local21 * _local24) - (_local22 * _local23)); var _local34:Number = (_local33 * ((_local15 * _local18) - (_local16 * _local17))); var _local36:Number = (_local33 * ((_local17 * _local20) - (_local18 * _local19))); if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){ _local35 = (_local31 / (_local31 + _local32)); _arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x))); _arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y))); _arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x))); _arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y))); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (2); }; var _local37:Number = (_local33 * ((_local19 * _local16) - (_local20 * _local15))); if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){ _local35 = (_local29 / (_local29 + _local30)); _arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x))); _arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y))); _arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x))); _arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y))); _local10.SetV(_local11); _local13.SetV(_local14); _local7.SetV(_local8); return (2); }; var _local38:Number = ((_local36 + _local37) + _local34); _local38 = (1 / _local38); var _local39:Number = (_local36 * _local38); var _local40:Number = (_local37 * _local38); var _local41:Number = ((1 - _local39) - _local40); _arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x)); _arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y)); _arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x)); _arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y)); return (3); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local9:b2Point = gPoint; _local8 = _arg5.m_localPosition; _local7 = _arg6.R; _local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local10:Number = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); var _local11:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); if (_local10 > _local11){ _local10 = (_local10 - _local11); _local12 = (_arg2.x - _arg1.x); _local13 = (_arg2.y - _arg1.y); _local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13))); _local12 = (_local12 / _local14); _local13 = (_local13 / _local14); _arg2.x = (_arg2.x - (_local11 * _local12)); _arg2.y = (_arg2.y - (_local11 * _local13)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ var _local7:int = _arg3.m_type; var _local8:int = _arg5.m_type; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6)); }; return (0); } public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local17:Number; var _local6:b2Vec2 = _arg5[0]; var _local7:b2Vec2 = _arg5[1]; var _local8:b2Vec2 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; var _local12:Number = -(_local7.x); var _local13:Number = -(_local7.y); var _local14:Number = (_local6.x - _local7.x); var _local15:Number = (_local6.y - _local7.y); var _local16:Number = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); _local14 = (_local14 / _local16); _local15 = (_local15 / _local16); _local17 = ((_local12 * _local14) + (_local13 * _local15)); if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){ _arg1.SetV(_local9); _arg2.SetV(_local11); _local8.SetV(_local9); _local10.SetV(_local11); _local6.SetV(_local7); return (1); }; _local17 = (_local17 / _local16); _arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x))); _arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y))); _arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x))); _arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y))); return (2); } } }//package Box2D.Collision
Section 134
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var pointCount:int;// = 0 public var normal:b2Vec2; public var points:Array; public function b2Manifold(){ points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Set(_arg1:b2Manifold):void{ pointCount = _arg1.pointCount; var _local2:int; while (_local2 < b2Settings.b2_maxManifoldPoints) { (points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]); _local2++; }; normal.SetV(_arg1.normal); } public function Reset():void{ var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } } }//package Box2D.Collision
Section 135
//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 136
//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 137
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var proxyId1:uint; public var userData;// = null 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 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 138
//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 139
//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_hashTable:Array; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_pairBufferCount:int; 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 = 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 _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function ValidateBuffer():void{ } public function Commit():void{ var _local1:b2BufferedPair; var _local2:int; var _local5:b2Pair; var _local6:b2Proxy; var _local7:b2Proxy; var _local3:int; var _local4:Array = m_broadPhase.m_proxyPool; _local2 = 0; while (_local2 < m_pairBufferCount) { _local1 = m_pairBuffer[_local2]; _local5 = Find(_local1.proxyId1, _local1.proxyId2); _local5.ClearBuffered(); _local6 = _local4[_local5.proxyId1]; _local7 = _local4[_local5.proxyId2]; if (_local5.IsRemoved()){ if (_local5.IsFinal() == true){ m_callback.PairRemoved(_local6.userData, _local7.userData, _local5.userData); }; _local1 = m_pairBuffer[_local3]; _local1.proxyId1 = _local5.proxyId1; _local1.proxyId2 = _local5.proxyId2; _local3++; } else { if (_local5.IsFinal() == false){ _local5.userData = m_callback.PairAdded(_local6.userData, _local7.userData); _local5.SetFinal(); }; }; _local2++; }; _local2 = 0; while (_local2 < _local3) { _local1 = m_pairBuffer[_local2]; RemovePair(_local1.proxyId1, _local1.proxyId2); _local2++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = Find(_arg1, _arg2); if (_local4 == null){ return; }; if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:b2Pair; var _local7:uint; var _local8:uint; var _local9:*; if (_arg1 > _arg2){ _local7 = _arg1; _arg1 = _arg2; _arg2 = _local7; }; var _local4:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local5:uint = m_hashTable[_local4]; var _local6:b2Pair; while (_local5 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local5], _arg1, _arg2)){ _local8 = _local5; _local3 = m_pairs[_local5]; if (_local6){ _local6.next = _local3.next; } else { m_hashTable[_local4] = _local3.next; }; _local3 = m_pairs[_local8]; _local9 = _local3.userData; _local3.next = m_freePair; _local3.proxyId1 = b2Pair.b2_nullProxy; _local3.proxyId2 = b2Pair.b2_nullProxy; _local3.userData = null; _local3.status = 0; m_freePair = _local8; m_pairCount--; return (_local9); } else { _local6 = m_pairs[_local5]; _local5 = _local6.next; }; }; return (null); } public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{ m_broadPhase = _arg1; m_callback = _arg2; } public function AddBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = AddPair(_arg1, _arg2); if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; var _local5:uint = m_freePair; _local4 = m_pairs[_local5]; m_freePair = _local4.next; _local4.proxyId1 = _arg1; _local4.proxyId2 = _arg2; _local4.status = 0; _local4.userData = null; _local4.next = m_hashTable[_local3]; m_hashTable[_local3] = _local5; m_pairCount++; return (_local4); } private function 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 = (((_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 140
//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 141
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var overlapCount:uint; public var userData;// = null public var lowerBounds:Array; public var upperBounds:Array; public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; 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 142
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local5:b2Vec2 = _arg3.p1; var _local6:Number = (_arg3.p2.x - _local5.x); var _local7:Number = (_arg3.p2.y - _local5.y); var _local8:Number = (p2.x - p1.x); var _local9:Number = (p2.y - p1.y); var _local10:Number = _local9; var _local11:Number = -(_local8); var _local12:Number = (100 * Number.MIN_VALUE); var _local13:Number = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local7) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } } }//package Box2D.Collision
Section 143
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _local25:Number; var _local26:b2XForm; var _local27:b2XForm; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local7:Number = _arg1.m_sweepRadius; var _local8:Number = _arg3.m_sweepRadius; var _local9:Number = _arg2.t0; var _local10:Number = (_arg2.c.x - _arg2.c0.x); var _local11:Number = (_arg2.c.y - _arg2.c0.y); var _local12:Number = (_arg4.c.x - _arg4.c0.x); var _local13:Number = (_arg4.c.y - _arg4.c0.y); var _local14:Number = (_arg2.a - _arg2.a0); var _local15:Number = (_arg4.a - _arg4.a0); var _local16:Number = 0; var _local17:b2Vec2 = s_p1; var _local18:b2Vec2 = s_p2; var _local19 = 20; var _local20:int; var _local21:Number = 0; var _local22:Number = 0; var _local23:Number = 0; var _local24:Number = 0; while (true) { _local25 = (((1 - _local16) * _local9) + _local16); _local26 = s_xf1; _local27 = s_xf2; _arg2.GetXForm(_local26, _local25); _arg4.GetXForm(_local27, _local25); _local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27); if (_local20 == 0){ if (_local23 > (2 * b2Settings.b2_toiSlop)){ _local24 = (1.5 * b2Settings.b2_toiSlop); } else { _local5 = (0.05 * b2Settings.b2_toiSlop); _local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop)); _local24 = ((_local5 > _local6)) ? _local5 : _local6; }; }; if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){ break; }; _local21 = (_local18.x - _local17.x); _local22 = (_local18.y - _local17.y); _local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22))); _local21 = (_local21 / _local28); _local22 = (_local22 / _local28); _local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8)); if (_local29 == 0){ _local16 = 1; break; }; _local30 = ((_local23 - _local24) / _local29); _local31 = (_local16 + _local30); if ((((_local31 < 0)) || ((1 < _local31)))){ _local16 = 1; break; }; if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){ break; }; _local16 = _local31; _local20++; }; return (_local16); } } }//package Box2D.Collision
Section 144
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var id:b2ContactID; public var v:b2Vec2; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 145
//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 get incidentVertex():int{ return (_incidentVertex); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } }//package Box2D.Collision
Section 146
//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 SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function Set(_arg1:Number):void{ var _local2:Number; _local2 = Math.cos(_arg1); var _local3:Number = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function 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 _local4:Number; var _local6:Number; _local2 = col1.x; var _local3:Number = col2.x; _local4 = col1.y; var _local5:Number = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function toString():String{ return ((((((((("[ col1.x = " + col1.x) + ", col1.y = ") + col1.y) + "][ col2.x = ") + col2.x) + ", col2.y = ") + col2.y) + "]")); } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number = col1.x; var _local5:Number = col2.x; var _local6:Number = col1.y; var _local7:Number = col2.y; var _local8:Number = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } }//package Box2D.Common.Math
Section 147
//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 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function 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 = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:* = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function 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 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function 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 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); var _local4:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); var _local5:b2Mat22 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean = (((_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 = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); return (_local3); } public static function 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 = 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 = 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 148
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var a:Number; public var c:b2Vec2; public var a0:Number; public var c0:b2Vec2; 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 _local4:Number; var _local5:Number; if ((1 - t0) > Number.MIN_VALUE){ _local4 = ((_arg2 - t0) / (1 - t0)); _arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x)); _arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y)); _local5 = (((1 - _local4) * a0) + (_local4 * a)); _arg1.R.Set(_local5); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; var _local3:b2Mat22 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } } }//package Box2D.Common.Math
Section 149
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { public class b2Vec2 { public var y:Number; public var x:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } 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 MulM(_arg1:b2Mat22):void{ var _local2:Number = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function SetZero():void{ x = 0; y = 0; } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function toString():String{ return ((((("[ x = " + x) + ", y = ") + y) + "]")); } public function Normalize():Number{ var _local1:Number = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; var _local2:Number = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function CrossVF(_arg1:Number):void{ var _local2:Number = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } 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 CrossFV(_arg1:Number):void{ var _local2:Number = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 150
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { public class b2XForm { public var position:b2Vec2; public var R:b2Mat22; public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function 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 151
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _r:uint;// = 0 private var _g:uint;// = 0 private var _b:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 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 g(_arg1:Number):void{ _g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } } }//package Box2D.Common
Section 152
//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 = 0x0400; 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 = 8192; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_timeToSleep:Number = 0.5; public static const b2_maxManifoldPoints:int = 2; public static const b2_maxAngularVelocity:Number = 250; public static const b2_maxAngularCorrection:Number = 0.139626340159546; public static const USHRT_MAX:int = 0xFFFF; public static const b2_maxLinearVelocity:Number = 200; public static const b2_maxLinearCorrection:Number = 0.2; public static const b2_toiSlop:Number = 0.04; public static const b2_maxLinearVelocitySquared:Number = 40000; public static function b2Assert(_arg1:Boolean):void{ var _local2:b2Vec2; if (!_arg1){ _local2.x++; }; } } }//package Box2D.Common
Section 153
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local8:b2ManifoldPoint; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf); var _local7:b2ContactPoint = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ m_manifoldCount = 1; _local8 = m_manifold.points[0]; if (m0.pointCount == 0){ _local8.normalImpulse = 0; _local8.tangentImpulse = 0; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Add(_local7); }; } else { _local4 = m0.points[0]; _local8.normalImpulse = _local4.normalImpulse; _local8.tangentImpulse = _local4.tangentImpulse; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Persist(_local7); }; }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = m0.points[0]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function 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 154
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; 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 IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetShape1():b2Shape{ return (m_shape1); } public function GetShape2():b2Shape{ return (m_shape2); } public function GetNext():b2Contact{ return (m_next); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function GetManifolds():Array{ return (null); } public function Update(_arg1:b2ContactListener):void{ var _local2:int = m_manifoldCount; Evaluate(_arg1); var _local3:int = m_manifoldCount; var _local4:b2Body = m_shape1.m_body; var _local5:b2Body = m_shape2.m_body; if ((((_local3 == 0)) && ((_local2 > 0)))){ _local4.WakeUp(); _local5.WakeUp(); }; if (((((((_local4.IsStatic()) || (_local4.IsBullet()))) || (_local5.IsStatic()))) || (_local5.IsBullet()))){ m_flags = (m_flags & ~(e_slowFlag)); } else { m_flags = (m_flags | e_slowFlag); }; } public function Evaluate(_arg1:b2ContactListener):void{ } public static function InitializeRegisters():void{ var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); var _local1:int; while (_local1 < b2Shape.e_shapeTypeCount) { s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { s_registers[_local1][_local2] = new b2ContactRegister(); _local2++; }; _local1++; }; AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape); AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape); AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape); } public static function Destroy(_arg1:b2Contact, _arg2):void{ if (_arg1.m_manifoldCount > 0){ _arg1.m_shape1.m_body.WakeUp(); _arg1.m_shape2.m_body.WakeUp(); }; var _local3:int = _arg1.m_shape1.m_type; var _local4:int = _arg1.m_shape2.m_type; var _local5:b2ContactRegister = s_registers[_local3][_local4]; var _local6:Function = _local5.destroyFcn; _local6(_arg1, _arg2); } 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 _local8:b2Contact; var _local9:int; var _local10:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; var _local4:int = _arg1.m_type; var _local5:int = _arg2.m_type; var _local6:b2ContactRegister = s_registers[_local4][_local5]; var _local7:Function = _local6.createFcn; if (_local7 != null){ if (_local6.primary){ return (_local7(_arg1, _arg2, _arg3)); }; _local8 = _local7(_arg2, _arg1, _arg3); _local9 = 0; while (_local9 < _local8.m_manifoldCount) { _local10 = _local8.GetManifolds()[_local9]; _local8.GetManifolds()[_local9].normal = _local10.normal.Negative(); _local9++; }; return (_local8); //unresolved jump }; return (null); } } }//package Box2D.Dynamics.Contacts
Section 155
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var normal:b2Vec2; public var restitution:Number; public var body1:b2Body; public var manifold:b2Manifold; public var body2:b2Body; public var friction:Number; public var pointCount:int; public function b2ContactConstraint(){ normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 156
//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 tangentMass:Number; public var equalizedMass: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 157
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var other:b2Body; public var prev:b2ContactEdge; public var contact:b2Contact; public var next:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 158
//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 159
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2ContactResult { public var position:b2Vec2; public var shape1:b2Shape; public var shape2:b2Shape; public var normalImpulse:Number; public var normal:b2Vec2; 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 160
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; 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 _local10:b2Body; var _local11:b2Body; var _local12:int; var _local13:Array; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:int; var _local23:b2Manifold; var _local24:Number; var _local25:Number; var _local26:b2ContactConstraint; var _local27:uint; var _local28:b2ManifoldPoint; var _local29:b2ContactConstraintPoint; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; m_step = new b2TimeStep(); m_constraints = new Array(); super(); m_step.dt = _arg1.dt; m_step.inv_dt = _arg1.inv_dt; m_step.maxIterations = _arg1.maxIterations; m_allocator = _arg4; m_constraintCount = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; m_constraintCount = (m_constraintCount + _local5.m_manifoldCount); _local6++; }; _local6 = 0; while (_local6 < m_constraintCount) { m_constraints[_local6] = new b2ContactConstraint(); _local6++; }; var _local9:int; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local10 = _local5.m_shape1.m_body; _local11 = _local5.m_shape2.m_body; _local12 = _local5.m_manifoldCount; _local13 = _local5.GetManifolds(); _local14 = _local5.m_friction; _local15 = _local5.m_restitution; _local16 = _local10.m_linearVelocity.x; _local17 = _local10.m_linearVelocity.y; _local18 = _local11.m_linearVelocity.x; _local19 = _local11.m_linearVelocity.y; _local20 = _local10.m_angularVelocity; _local21 = _local11.m_angularVelocity; _local22 = 0; while (_local22 < _local12) { _local23 = _local13[_local22]; _local24 = _local23.normal.x; _local25 = _local23.normal.y; _local26 = m_constraints[_local9]; _local26.body1 = _local10; _local26.body2 = _local11; _local26.manifold = _local23; _local26.normal.x = _local24; _local26.normal.y = _local25; _local26.pointCount = _local23.pointCount; _local26.friction = _local14; _local26.restitution = _local15; _local27 = 0; while (_local27 < _local26.pointCount) { _local28 = _local23.points[_local27]; _local29 = _local26.points[_local27]; _local29.normalImpulse = _local28.normalImpulse; _local29.tangentImpulse = _local28.tangentImpulse; _local29.separation = _local28.separation; _local29.positionImpulse = 0; _local29.localAnchor1.SetV(_local28.localPoint1); _local29.localAnchor2.SetV(_local28.localPoint2); _local8 = _local10.m_xf.R; _local32 = (_local28.localPoint1.x - _local10.m_sweep.localCenter.x); _local33 = (_local28.localPoint1.y - _local10.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local32) + (_local8.col2.x * _local33)); _local33 = ((_local8.col1.y * _local32) + (_local8.col2.y * _local33)); _local32 = _local30; _local29.r1.Set(_local32, _local33); _local8 = _local11.m_xf.R; _local34 = (_local28.localPoint2.x - _local11.m_sweep.localCenter.x); _local35 = (_local28.localPoint2.y - _local11.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local34) + (_local8.col2.x * _local35)); _local35 = ((_local8.col1.y * _local34) + (_local8.col2.y * _local35)); _local34 = _local30; _local29.r2.Set(_local34, _local35); _local36 = ((_local32 * _local32) + (_local33 * _local33)); _local37 = ((_local34 * _local34) + (_local35 * _local35)); _local38 = ((_local32 * _local24) + (_local33 * _local25)); _local39 = ((_local34 * _local24) + (_local35 * _local25)); _local40 = (_local10.m_invMass + _local11.m_invMass); _local40 = (_local40 + ((_local10.m_invI * (_local36 - (_local38 * _local38))) + (_local11.m_invI * (_local37 - (_local39 * _local39))))); _local29.normalMass = (1 / _local40); _local41 = ((_local10.m_mass * _local10.m_invMass) + (_local11.m_mass * _local11.m_invMass)); _local41 = (_local41 + (((_local10.m_mass * _local10.m_invI) * (_local36 - (_local38 * _local38))) + ((_local11.m_mass * _local11.m_invI) * (_local37 - (_local39 * _local39))))); _local29.equalizedMass = (1 / _local41); _local42 = _local25; _local43 = -(_local24); _local44 = ((_local32 * _local42) + (_local33 * _local43)); _local45 = ((_local34 * _local42) + (_local35 * _local43)); _local46 = (_local10.m_invMass + _local11.m_invMass); _local46 = (_local46 + ((_local10.m_invI * (_local36 - (_local44 * _local44))) + (_local11.m_invI * (_local37 - (_local45 * _local45))))); _local29.tangentMass = (1 / _local46); _local29.velocityBias = 0; if (_local29.separation > 0){ _local29.velocityBias = (-60 * _local29.separation); }; _local30 = (((_local18 + (-(_local21) * _local35)) - _local16) - (-(_local20) * _local33)); _local31 = (((_local19 + (_local21 * _local34)) - _local17) - (_local20 * _local32)); _local47 = ((_local26.normal.x * _local30) + (_local26.normal.y * _local31)); if (_local47 < -(b2Settings.b2_velocityThreshold)){ _local29.velocityBias = (_local29.velocityBias + (-(_local26.restitution) * _local47)); }; _local27++; }; _local9++; _local22++; }; _local6++; }; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2Mat22; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:b2ContactConstraintPoint; var _local21:Number; var _local22:Number; var _local23:b2ContactConstraintPoint; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_invMass; _local10 = _local7.m_invI; _local11 = _local8.m_invMass; _local12 = _local8.m_invI; _local13 = _local6.normal.x; _local14 = _local6.normal.y; _local15 = _local14; _local16 = -(_local13); if (_arg1.warmStarting){ _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local20 = _local6.points[_local18]; _local6.points[_local18].normalImpulse = (_local20.normalImpulse * _arg1.dtRatio); _local20.tangentImpulse = (_local20.tangentImpulse * _arg1.dtRatio); _local21 = ((_local20.normalImpulse * _local13) + (_local20.tangentImpulse * _local15)); _local22 = ((_local20.normalImpulse * _local14) + (_local20.tangentImpulse * _local16)); _local7.m_angularVelocity = (_local7.m_angularVelocity - (_local10 * ((_local20.r1.x * _local22) - (_local20.r1.y * _local21)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x - (_local9 * _local21)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y - (_local9 * _local22)); _local8.m_angularVelocity = (_local8.m_angularVelocity + (_local12 * ((_local20.r2.x * _local22) - (_local20.r2.y * _local21)))); _local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21)); _local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22)); _local18++; }; } else { _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local23 = _local6.points[_local18]; _local23.normalImpulse = 0; _local23.tangentImpulse = 0; _local18++; }; }; _local5++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local3:b2Mat22; var _local4:b2Vec2; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:b2Vec2; var _local10:Number; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:int; var _local21:b2ContactConstraintPoint; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local2:Number = 0; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_sweep.c; _local10 = _local7.m_sweep.a; _local11 = _local8.m_sweep.c; _local12 = _local8.m_sweep.a; _local13 = (_local7.m_mass * _local7.m_invMass); _local14 = (_local7.m_mass * _local7.m_invI); _local15 = (_local8.m_mass * _local8.m_invMass); _local16 = (_local8.m_mass * _local8.m_invI); _local17 = _local6.normal.x; _local18 = _local6.normal.y; _local19 = _local6.pointCount; _local20 = 0; while (_local20 < _local19) { _local21 = _local6.points[_local20]; _local3 = _local7.m_xf.R; _local4 = _local7.m_sweep.localCenter; _local22 = (_local21.localAnchor1.x - _local4.x); _local23 = (_local21.localAnchor1.y - _local4.y); _local26 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local26; _local3 = _local8.m_xf.R; _local4 = _local8.m_sweep.localCenter; _local24 = (_local21.localAnchor2.x - _local4.x); _local25 = (_local21.localAnchor2.y - _local4.y); _local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local26; _local27 = (_local9.x + _local22); _local28 = (_local9.y + _local23); _local29 = (_local11.x + _local24); _local30 = (_local11.y + _local25); _local31 = (_local29 - _local27); _local32 = (_local30 - _local28); _local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation); _local2 = b2Math.b2Min(_local2, _local33); _local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0)); _local35 = (-(_local21.equalizedMass) * _local34); _local36 = _local21.positionImpulse; _local21.positionImpulse = b2Math.b2Max((_local36 + _local35), 0); _local35 = (_local21.positionImpulse - _local36); _local37 = (_local35 * _local17); _local38 = (_local35 * _local18); _local9.x = (_local9.x - (_local13 * _local37)); _local9.y = (_local9.y - (_local13 * _local38)); _local10 = (_local10 - (_local14 * ((_local22 * _local38) - (_local23 * _local37)))); _local7.m_sweep.a = _local10; _local7.SynchronizeTransform(); _local11.x = (_local11.x + (_local15 * _local37)); _local11.y = (_local11.y + (_local15 * _local38)); _local12 = (_local12 + (_local16 * ((_local24 * _local38) - (_local25 * _local37)))); _local8.m_sweep.a = _local12; _local8.SynchronizeTransform(); _local20++; }; _local5++; }; return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop))); } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Mat22; var _local18:b2Vec2; var _local20:b2ContactConstraint; var _local21:b2Body; var _local22:b2Body; var _local23:Number; var _local24:Number; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:int; var _local38:Number; var _local19:int; while (_local19 < m_constraintCount) { _local20 = m_constraints[_local19]; _local21 = _local20.body1; _local22 = _local20.body2; _local23 = _local21.m_angularVelocity; _local24 = _local22.m_angularVelocity; _local25 = _local21.m_linearVelocity; _local26 = _local22.m_linearVelocity; _local27 = _local21.m_invMass; _local28 = _local21.m_invI; _local29 = _local22.m_invMass; _local30 = _local22.m_invI; _local31 = _local20.normal.x; _local32 = _local20.normal.y; _local33 = _local32; _local34 = -(_local31); _local35 = _local20.friction; _local37 = _local20.pointCount; _local1 = 0; while (_local1 < _local37) { _local2 = _local20.points[_local1]; _local7 = (((_local26.x + (-(_local24) * _local2.r2.y)) - _local25.x) - (-(_local23) * _local2.r1.y)); _local8 = (((_local26.y + (_local24 * _local2.r2.x)) - _local25.y) - (_local23 * _local2.r1.x)); _local9 = ((_local7 * _local31) + (_local8 * _local32)); _local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias)); _local10 = ((_local7 * _local33) + (_local8 * _local34)); _local12 = (_local2.tangentMass * -(_local10)); _local13 = b2Math.b2Max((_local2.normalImpulse + _local11), 0); _local11 = (_local13 - _local2.normalImpulse); _local38 = (_local35 * _local2.normalImpulse); _local14 = b2Math.b2Clamp((_local2.tangentImpulse + _local12), -(_local38), _local38); _local12 = (_local14 - _local2.tangentImpulse); _local15 = ((_local11 * _local31) + (_local12 * _local33)); _local16 = ((_local11 * _local32) + (_local12 * _local34)); _local25.x = (_local25.x - (_local27 * _local15)); _local25.y = (_local25.y - (_local27 * _local16)); _local23 = (_local23 - (_local28 * ((_local2.r1.x * _local16) - (_local2.r1.y * _local15)))); _local26.x = (_local26.x + (_local29 * _local15)); _local26.y = (_local26.y + (_local29 * _local16)); _local24 = (_local24 + (_local30 * ((_local2.r2.x * _local16) - (_local2.r2.y * _local15)))); _local2.normalImpulse = _local13; _local2.tangentImpulse = _local14; _local1++; }; _local21.m_angularVelocity = _local23; _local22.m_angularVelocity = _local24; _local19++; }; } public function FinalizeVelocityConstraints():void{ var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ManifoldPoint; var _local6:b2ContactConstraintPoint; var _local1:int; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.points[_local4]; _local6 = _local2.points[_local4]; _local5.normalImpulse = _local6.normalImpulse; _local5.tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 161
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function Evaluate(_arg1:b2ContactListener):void{ } override public function GetManifolds():Array{ return (null); } } }//package Box2D.Dynamics.Contacts
Section 162
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape)); m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local6:b2Body = m_shape1.m_body; var _local7:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf); var _local8:Array = [false, false]; var _local9:b2ContactPoint = s_evalCP; _local9.shape1 = m_shape1; _local9.shape2 = m_shape2; _local9.friction = m_friction; _local9.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local2 = 0; while (_local2 < m_manifold.pointCount) { _local10 = m_manifold.points[_local2]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local8[_local13] == true){ } else { _local5 = m0.points[_local13]; if (_local5.id._key == _local12){ _local8[_local13] = true; _local10.normalImpulse = _local5.normalImpulse; _local10.tangentImpulse = _local5.tangentImpulse; _local11 = true; if (_arg1 != null){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Persist(_local9); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Add(_local9); }; _local2++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local2 = 0; while (_local2 < m0.pointCount) { if (_local8[_local2]){ } else { _local5 = m0.points[_local2]; _local9.position = _local6.GetWorldPoint(_local5.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m0.normal); _local9.separation = _local5.separation; _local9.id.key = _local5.id._key; _arg1.Remove(_local9); }; _local2++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function 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 163
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; 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 Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local7:b2ContactPoint; var _local8:int; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf); var _local9:Array = [false, false]; _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local8 = 0; while (_local8 < m_manifold.pointCount) { _local10 = m_manifold.points[_local8]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local9[_local13] == true){ } else { _local4 = m0.points[_local13]; if (_local4.id._key == _local12){ _local9[_local13] = true; _local10.normalImpulse = _local4.normalImpulse; _local10.tangentImpulse = _local4.tangentImpulse; _local11 = true; if (_arg1 != null){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Persist(_local7); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Add(_local7); }; _local8++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local8 = 0; while (_local8 < m0.pointCount) { if (_local9[_local8]){ } else { _local4 = m0.points[_local8]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; _local8++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function 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 164
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_bias:Number; public var m_gamma:Number; public var m_u:b2Vec2; public var m_mass:Number; public var m_impulse:Number; public var m_dampingRatio:Number; public var m_frequencyHz: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 InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local8:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; m_inv_dt = _arg1.inv_dt; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7)); _local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7)); _local6 = _local3; _local2 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local3; m_u.x = ((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x); m_u.y = ((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y); var _local10:Number = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local10 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local10)); } else { m_u.SetZero(); }; var _local11:Number = ((_local6 * m_u.y) - (_local7 * m_u.x)); var _local12:Number = ((_local8 * m_u.y) - (_local9 * m_u.x)); var _local13:Number = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / _local13); if (m_frequencyHz > 0){ _local14 = (_local10 - m_length); _local15 = ((2 * Math.PI) * m_frequencyHz); _local16 = (((2 * m_mass) * m_dampingRatio) * _local15); _local17 = ((m_mass * _local15) * _local15); m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17)))); m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (1 / (_local13 + m_gamma)); }; if (_arg1.warmStarting){ m_impulse = (m_impulse * _arg1.dtRatio); _local18 = (m_impulse * m_u.x); _local19 = (m_impulse * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local18)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local19)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local19) - (_local7 * _local18)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local18)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local19)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local19) - (_local9 * _local18)))); } else { m_impulse = 0; }; } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply((m_inv_dt * m_impulse)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; if (m_frequencyHz > 0){ return (true); }; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local1 = _local2.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8)); _local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8)); _local7 = _local6; var _local9:Number = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); var _local10:Number = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); var _local11:Number = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); var _local12:Number = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local13:Number = (-(m_mass) * _local12); m_u.Set(_local9, _local10); var _local14:Number = (_local13 * m_u.x); var _local15:Number = (_local13 * m_u.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop)); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; _local2 = _local3.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local7:Number = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); var _local11:Number = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); var _local12:Number = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); var _local13:Number = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); var _local14:Number = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); var _local15:Number = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); var _local16:Number = (_local15 * m_u.x); var _local17:Number = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } } }//package Box2D.Dynamics.Joints
Section 165
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2DistanceJointDef extends b2JointDef { public var localAnchor1:b2Vec2; public var length:Number; public var dampingRatio:Number; public var localAnchor2:b2Vec2; public var frequencyHz:Number; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; frequencyHz = 0; dampingRatio = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); var _local5:Number = (_arg4.x - _arg3.x); var _local6:Number = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); frequencyHz = 0; dampingRatio = 0; } } }//package Box2D.Dynamics.Joints
Section 166
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { public var m_ground2:b2Body; 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_revolute2:b2RevoluteJoint; public var m_force:Number; public var m_mass:Number; public var m_prismatic2:b2PrismaticJoint; public var m_ground1:b2Body; public var m_revolute1:b2RevoluteJoint; public var m_prismatic1:b2PrismaticJoint; public var m_constant:Number; public var m_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); var _local2:int = _arg1.joint1.m_type; var _local3:int = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.m_body1; m_body1 = _arg1.joint1.m_body2; if (_local2 == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local4 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local4 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_local3 == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local5 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local5 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local4 + (m_ratio * _local5)); m_force = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local15:Number; var _local2:b2Body = m_ground1; var _local3:b2Body = m_ground2; var _local4:b2Body = m_body1; var _local5:b2Body = m_body2; var _local14:Number = 0; m_J.SetZero(); if (m_revolute1){ m_J.angular1 = -1; _local14 = (_local14 + _local4.m_invI); } else { _local10 = _local2.m_xf.R; _local11 = m_prismatic1.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local4.m_xf.R; _local8 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear1.Set(-(_local6), -(_local7)); m_J.angular1 = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angular2 = -(m_ratio); _local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI)); } else { _local10 = _local3.m_xf.R; _local11 = m_prismatic2.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angular2 = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = (1 / _local14); if (_arg1.warmStarting){ _local15 = (_arg1.dt * m_force); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2)); } else { m_force = 0; }; } override public function GetReactionTorque():Number{ var _local1:b2Mat22 = m_body2.m_xf.R; var _local2:Number = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x); var _local3:Number = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y); var _local4:Number = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3)); _local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3)); _local2 = _local4; _local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x)))); return (_local4); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local4:Number; var _local5:Number; var _local1:Number = 0; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; if (m_revolute1){ _local4 = m_revolute1.GetJointAngle(); } else { _local4 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local5 = m_revolute2.GetJointAngle(); } else { _local5 = m_prismatic2.GetJointTranslation(); }; var _local6:Number = (m_constant - (_local4 + (m_ratio * _local5))); var _local7:Number = (-(m_mass) * _local6); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * m_J.linear1.x)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y)); _local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1)); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2)); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((_local1 < b2Settings.b2_linearSlop)); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local5:Number = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); var _local6:Number = (_arg1.dt * _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * m_J.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2)); } } }//package Box2D.Dynamics.Joints
Section 167
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { public class b2GearJointDef extends b2JointDef { public var joint1:b2Joint; public var joint2:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 168
//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 angular1:Number; public var angular2: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 169
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; 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 GetBody2():b2Body{ return (m_body2); } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function GetNext():b2Joint{ return (m_next); } public function GetType():int{ return (m_type); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } 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; 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 170
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var body2:b2Body; public var type:int; public var userData; public var collideConnected:Boolean; public var body1:b2Body; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 171
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var other:b2Body; public var next:b2JointEdge; public var prev:b2JointEdge; public var joint:b2Joint; } }//package Box2D.Dynamics.Joints
Section 172
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { private var K1:b2Mat22; private var K:b2Mat22; public var m_beta:Number; public var m_mass:b2Mat22; private var K2:b2Mat22; public var m_target:b2Vec2; public var m_gamma:Number; public var m_impulse:b2Vec2; public var m_C:b2Vec2; public var m_localAnchor:b2Vec2; public var m_maxForce:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local3:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_impulse = new b2Vec2(); m_mass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); var _local2:Number = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); var _local4:b2Mat22 = m_body2.m_xf.R; m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y)); m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y)); m_maxForce = _arg1.maxForce; m_impulse.SetZero(); var _local5:Number = m_body2.m_mass; var _local6:Number = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); var _local7:Number = (((2 * _local5) * _arg1.dampingRatio) * _local6); var _local8:Number = ((_arg1.timeStep * _local5) * (_local6 * _local6)); m_gamma = (1 / (_local7 + _local8)); m_beta = (_local8 / (_local7 + _local8)); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local7:Number; var _local8:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local4 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local7 = _local2.m_invMass; _local8 = _local2.m_invI; K1.col1.x = _local7; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local7; K2.col1.x = ((_local8 * _local5) * _local5); K2.col2.x = ((-(_local8) * _local4) * _local5); K2.col1.y = ((-(_local8) * _local4) * _local5); K2.col2.y = ((_local8 * _local4) * _local4); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.Invert(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); var _local9:Number = (_arg1.dt * m_impulse.x); var _local10:Number = (_arg1.dt * m_impulse.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local7 * _local9)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local7 * _local10)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local8 * ((_local4 * _local10) - (_local5 * _local9)))); } override public function GetAnchor1():b2Vec2{ return (m_target); } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ return (m_impulse); } override public function SolvePositionConstraints():Boolean{ return (true); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local2:b2Body = m_body2; _local3 = _local2.m_xf.R; var _local6:Number = (m_localAnchor.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; var _local8:Number = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); var _local9:Number = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_impulse.x)); _local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_impulse.y)); var _local10:Number = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); var _local11:Number = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); var _local12:Number = m_impulse.x; var _local13:Number = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); var _local14:Number = m_impulse.Length(); if (_local14 > m_maxForce){ m_impulse.Multiply((m_maxForce / _local14)); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); var _local15:Number = (_arg1.dt * _local10); var _local16:Number = (_arg1.dt * _local11); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); } } }//package Box2D.Dynamics.Joints
Section 173
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var timeStep:Number; public var target:b2Vec2; public var maxForce:Number; public var dampingRatio:Number; public var frequencyHz: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 174
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PrismaticJoint extends b2Joint { public var m_limitForce:Number; public var m_lowerTranslation:Number; public var m_localXAxis1:b2Vec2; public var m_refAngle:Number; public var m_torque:Number; public var m_motorForce:Number; public var m_enableLimit:Boolean; public var m_angularMass:Number; public var m_maxMotorForce:Number; public var m_localYAxis1:b2Vec2; public var m_force:Number; public var m_motorMass:Number; public var m_upperTranslation:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_limitState:int; public var m_linearMass:Number; public var m_motorJacobian:b2Jacobian; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_enableMotor:Boolean; public var m_linearJacobian:b2Jacobian; public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_localXAxis1 = new b2Vec2(); m_localYAxis1 = new b2Vec2(); m_linearJacobian = new b2Jacobian(); m_motorJacobian = new b2Jacobian(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_localXAxis1.SetV(_arg1.localAxis1); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_refAngle = _arg1.referenceAngle; m_linearJacobian.SetZero(); m_linearMass = 0; m_force = 0; m_angularMass = 0; m_torque = 0; m_motorJacobian.SetZero(); m_motorMass = 0; m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerTranslation = _arg1.lowerTranslation; m_upperTranslation = _arg1.upperTranslation; m_maxMotorForce = _arg1.maxMotorForce; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local6:Number; var _local8:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = _local2.m_invMass; var _local5:Number = _local3.m_invMass; _local6 = _local2.m_invI; var _local7:Number = _local3.m_invI; var _local9:Number = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local10:Number = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); var _local11:Number = (_arg1.dt * _local10); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2)); var _local12:Number = (_local3.m_angularVelocity - _local2.m_angularVelocity); var _local13:Number = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); var _local14:Number = (_arg1.dt * _local13); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15); _local17 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce); _local16 = (m_motorForce - _local17); _local11 = (_arg1.dt * _local16); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local19); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); }; }; }; _local11 = (_arg1.dt * _local19); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetJointTranslation():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:b2Vec2 = _local1.GetWorldPoint(m_localAnchor1); var _local5:b2Vec2 = _local2.GetWorldPoint(m_localAnchor2); var _local6:Number = (_local5.x - _local4.x); var _local7:Number = (_local5.y - _local4.y); var _local8:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local9:Number = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22 = m_body1.m_xf.R; var _local2:Number = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); var _local3:Number = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); var _local4:Number = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); var _local5:Number = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y))); return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5)))); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local9:b2Mat22; var _local10:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = _local3.m_invMass; var _local6:Number = _local4.m_invMass; var _local7:Number = _local3.m_invI; var _local8:Number = _local4.m_invI; _local9 = _local3.m_xf.R; var _local11:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local12:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; var _local13:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local14:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; var _local15:Number = (_local3.m_sweep.c.x + _local11); var _local16:Number = (_local3.m_sweep.c.y + _local12); var _local17:Number = (_local4.m_sweep.c.x + _local13); var _local18:Number = (_local4.m_sweep.c.y + _local14); var _local19:Number = (_local17 - _local15); var _local20:Number = (_local18 - _local16); _local9 = _local3.m_xf.R; var _local21:Number = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); var _local22:Number = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); var _local23:Number = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local24:Number = (-(m_linearMass) * _local23); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2)); var _local25:Number = b2Math.b2Abs(_local23); var _local26:Number = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); var _local27:Number = (-(m_angularMass) * _local26); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local28:Number = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y)); _local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y)); _local31 = ((_local29 * _local19) + (_local30 * _local20)); _local32 = 0; if (m_limitState == e_equalLimits){ _local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26)); } else { if (m_limitState == e_atLowerLimit){ _local1 = (_local31 - m_lowerTranslation); _local25 = b2Math.b2Max(_local25, -(_local1)); _local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); } else { if (m_limitState == e_atUpperLimit){ _local1 = (_local31 - m_upperTranslation); _local25 = b2Math.b2Max(_local25, _local1); _local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); }; }; }; _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; _local3 = _local1.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; var _local9:Number = (_local1.m_sweep.c.x + _local4); var _local10:Number = (_local1.m_sweep.c.y + _local5); var _local11:Number = (_local2.m_sweep.c.x + _local7); var _local12:Number = (_local2.m_sweep.c.y + _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local16:b2Vec2 = _local1.m_linearVelocity; var _local17:b2Vec2 = _local2.m_linearVelocity; var _local18:Number = _local1.m_angularVelocity; var _local19:Number = _local2.m_angularVelocity; var _local20:Number = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; _local4 = _local2.m_xf.R; var _local14:Number = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); var _local15:Number = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); var _local16:Number = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); var _local17:Number = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y); m_linearJacobian.linear1.x = -(_local14); m_linearJacobian.linear1.y = -(_local15); m_linearJacobian.linear2.x = _local14; m_linearJacobian.linear2.y = _local15; m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14))); m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14)); m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2)); m_linearMass = (1 / m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > Number.MIN_VALUE){ m_angularMass = (1 / m_angularMass); }; if (((m_enableLimit) || (m_enableMotor))){ _local4 = _local2.m_xf.R; _local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y)); _local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y)); m_motorJacobian.linear1.x = -(_local18); m_motorJacobian.linear1.y = -(_local19); m_motorJacobian.linear2.x = _local18; m_motorJacobian.linear2.y = _local19; m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18))); m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18)); m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2)); m_motorMass = (1 / m_motorMass); if (m_enableLimit){ _local20 = (_local16 - _local6); _local21 = (_local17 - _local7); _local22 = ((_local18 * _local20) + (_local19 * _local21)); if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local22 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local22 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; }; }; if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit == false){ m_limitForce = 0; }; if (_arg1.warmStarting){ _local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x))); _local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y))); _local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x))); _local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y))); _local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1))); _local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28)); } else { m_force = 0; m_torque = 0; m_limitForce = 0; m_motorForce = 0; }; m_limitPositionImpulse = 0; } public function GetMotorForce():Number{ return (m_motorForce); } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } override public function GetReactionTorque():Number{ return (m_torque); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } } }//package Box2D.Dynamics.Joints
Section 175
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2PrismaticJointDef extends b2JointDef { public var motorSpeed:Number; public var localAxis1:b2Vec2; public var referenceAngle:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public var maxMotorForce:Number; 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 176
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { public var m_limitState1:int; public var m_limitState2:int; public var m_ground:b2Body; public var m_maxLength2:Number; public var m_maxLength1:Number; public var m_limitPositionImpulse1:Number; public var m_limitPositionImpulse2:Number; public var m_force:Number; public var m_constant:Number; public var m_positionImpulse: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_limitMass1:Number; public var m_limitMass2:Number; public var m_pulleyMass:Number; public var m_u1:b2Vec2; public var m_limitForce1:Number; public var m_limitForce2:Number; public var m_u2:b2Vec2; 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 = 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 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local3:b2Mat22; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local5:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local6:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local7:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local23:Number = 0; if (m_state == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u1.Set((_local12 - _local4), (_local13 - _local5)); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local16 = m_u1.Length(); _local17 = m_u2.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local16)); } else { m_u1.SetZero(); }; if (_local17 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local17)); } else { m_u2.SetZero(); }; _local18 = ((m_constant - _local16) - (m_ratio * _local17)); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_pulleyMass) * _local18); _local20 = m_positionImpulse; m_positionImpulse = b2Math.b2Max(0, (m_positionImpulse + _local19)); _local19 = (m_positionImpulse - _local20); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local14 = ((-(m_ratio) * _local19) * m_u2.x); _local15 = ((-(m_ratio) * _local19) * m_u2.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local1.SynchronizeTransform(); _local2.SynchronizeTransform(); }; if (m_limitState1 == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); m_u1.Set((_local12 - _local4), (_local13 - _local5)); _local16 = m_u1.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.x = (m_u1.x * (1 / _local16)); m_u1.y = (m_u1.y * (1 / _local16)); } else { m_u1.SetZero(); }; _local18 = (m_maxLength1 - _local16); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass1) * _local18); _local21 = m_limitPositionImpulse1; m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19)); _local19 = (m_limitPositionImpulse1 - _local21); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local1.SynchronizeTransform(); }; if (m_limitState2 == e_atUpperLimit){ _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local17 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local17)); m_u2.y = (m_u2.y * (1 / _local17)); } else { m_u2.SetZero(); }; _local18 = (m_maxLength2 - _local17); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass2) * _local18); _local21 = m_limitPositionImpulse2; m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19)); _local19 = (m_limitPositionImpulse2 - _local21); _local14 = (-(_local19) * m_u2.x); _local15 = (-(_local19) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local2.SynchronizeTransform(); }; return ((_local23 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local2.m_sweep.c.x + _local5); var _local11:Number = (_local2.m_sweep.c.y + _local6); var _local12:Number = (_local3.m_sweep.c.x + _local8); var _local13:Number = (_local3.m_sweep.c.y + _local9); var _local14:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local15:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local16:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local17:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); var _local18:Number = m_u1.Length(); var _local19:Number = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; var _local20:Number = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_force = 0; } else { m_state = e_atUpperLimit; m_positionImpulse = 0; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitForce1 = 0; } else { m_limitState1 = e_atUpperLimit; m_limitPositionImpulse1 = 0; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitForce2 = 0; } else { m_limitState2 = e_atUpperLimit; m_limitPositionImpulse2 = 0; }; var _local21:Number = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); var _local22:Number = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ _local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x); _local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y); _local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x); _local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25)))); } else { m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; }; } override public function GetReactionTorque():Number{ return (0); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local8: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 _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18); _local20 = m_force; m_force = b2Math.b2Max(0, (m_force + _local19)); _local19 = (m_force - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x); _local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; if (m_limitState1 == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11))); _local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18); _local20 = m_limitForce1; m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19)); _local19 = (m_limitForce1 - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); }; if (m_limitState2 == e_atUpperLimit){ _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13))); _local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18); _local20 = m_limitForce2; m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19)); _local19 = (m_limitForce2 - _local20); _local16 = ((-(_arg1.dt) * _local19) * m_u2.x); _local17 = ((-(_arg1.dt) * _local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } public function GetLength1():Number{ var _local1:b2Vec2 = m_body1.GetWorldPoint(m_localAnchor1); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetLength2():Number{ var _local1:b2Vec2 = m_body2.GetWorldPoint(m_localAnchor2); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } } }//package Box2D.Dynamics.Joints
Section 177
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2PulleyJointDef extends b2JointDef { public var maxLength1:Number; public var maxLength2:Number; public var length1:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var ratio:Number; public var length2:Number; public function b2PulleyJointDef(){ groundAnchor1 = new b2Vec2(); groundAnchor2 = new b2Vec2(); localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchor1.Set(-1, 1); groundAnchor2.Set(1, 1); localAnchor1.Set(-1, 0); localAnchor2.Set(1, 0); length1 = 0; maxLength1 = 0; length2 = 0; maxLength2 = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); var _local8:Number = (_arg5.x - _arg3.x); var _local9:Number = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); var _local10:Number = (_arg6.x - _arg4.x); var _local11:Number = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; var _local12:Number = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 178
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { public var m_limitForce:Number; public var m_pivotMass:b2Mat22; public var m_motorForce:Number; public var m_enableLimit:Boolean; public var m_limitState:int; public var m_motorMass:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; private var K:b2Mat22; public var m_pivotForce:b2Vec2; public var m_enableMotor:Boolean; public var m_referenceAngle:Number; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_upperAngle:Number; public var m_lowerAngle:Number; public var m_maxMotorTorque: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 SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local10:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local11:Number = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); var _local12:Number = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); var _local13:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); var _local14:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12))); m_pivotForce.x = (m_pivotForce.x + _local13); m_pivotForce.y = (m_pivotForce.y + _local14); var _local15:Number = (_arg1.dt * _local13); _local16 = (_arg1.dt * _local14); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed); _local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17); _local19 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque); _local18 = (m_motorForce - _local19); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local21); } else { if (m_limitState == e_atLowerLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); } else { if (m_limitState == e_atUpperLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); }; }; }; _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } 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 _local6:b2Mat22; var _local25:Number; var _local26:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = 0; _local6 = _local3.m_xf.R; var _local7:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local9:Number = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; var _local10:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local11:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11)); _local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11)); _local10 = _local9; var _local12:Number = (_local3.m_sweep.c.x + _local7); var _local13:Number = (_local3.m_sweep.c.y + _local8); var _local14:Number = (_local4.m_sweep.c.x + _local10); var _local15:Number = (_local4.m_sweep.c.y + _local11); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); var _local18:Number = _local3.m_invMass; var _local19:Number = _local4.m_invMass; var _local20:Number = _local3.m_invI; var _local21:Number = _local4.m_invI; K1.col1.x = (_local18 + _local19); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local18 + _local19); K2.col1.x = ((_local20 * _local8) * _local8); K2.col2.x = ((-(_local20) * _local7) * _local8); K2.col1.y = ((-(_local20) * _local7) * _local8); K2.col2.y = ((_local20 * _local7) * _local7); K3.col1.x = ((_local21 * _local11) * _local11); K3.col2.x = ((-(_local21) * _local10) * _local11); K3.col1.y = ((-(_local21) * _local10) * _local11); K3.col2.y = ((_local21 * _local10) * _local10); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); var _local22:Number = tImpulse.x; var _local23:Number = tImpulse.y; _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local24:Number = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local24 = b2Math.b2Abs(_local2); } else { if (m_limitState == e_atLowerLimit){ _local2 = (_local25 - m_lowerAngle); _local24 = b2Math.b2Max(0, -(_local2)); _local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); } else { if (m_limitState == e_atUpperLimit){ _local2 = (_local25 - m_upperAngle); _local24 = b2Math.b2Max(0, _local2); _local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); }; }; }; _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } 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)); } public function GetMotorTorque():Number{ return (m_motorForce); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local7:Number; var _local14:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; K1.col1.x = (_local10 + _local11); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local10 + _local11); K2.col1.x = ((_local12 * _local7) * _local7); K2.col2.x = ((-(_local12) * _local6) * _local7); K2.col1.y = ((-(_local12) * _local6) * _local7); K2.col2.y = ((_local12 * _local6) * _local6); K3.col1.x = ((_local13 * _local9) * _local9); K3.col2.x = ((-(_local13) * _local8) * _local9); K3.col1.y = ((-(_local13) * _local8) * _local9); K3.col2.y = ((_local13 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Invert(m_pivotMass); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; } else { m_limitForce = 0; }; if (_arg1.warmStarting){ _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); } else { m_pivotForce.SetZero(); m_motorForce = 0; m_limitForce = 0; }; m_limitPositionImpulse = 0; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } override public function GetReactionTorque():Number{ return (m_limitForce); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } } }//package Box2D.Dynamics.Joints
Section 179
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2RevoluteJointDef extends b2JointDef { public var upperAngle:Number; public var enableMotor:Boolean; public var referenceAngle:Number; public var motorSpeed:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var lowerAngle:Number; public var maxMotorTorque:Number; public function b2RevoluteJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchor1.Set(0, 0); localAnchor2.Set(0, 0); referenceAngle = 0; lowerAngle = 0; upperAngle = 0; maxMotorTorque = 0; motorSpeed = 0; enableLimit = false; enableMotor = false; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 180
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Dynamics.Contacts.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; public class b2Body { public var m_next:b2Body; public var m_xf:b2XForm; 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_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_shapeCount:int; public var m_angularDamping:Number; public var m_invI:Number; public var m_linearVelocity:b2Vec2; public var m_sleepTime:Number; 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){ m_xf = new b2XForm(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.isBullet){ m_flags = (m_flags | e_bulletFlag); }; if (_arg1.fixedRotation){ m_flags = (m_flags | e_fixedRotationFlag); }; if (_arg1.allowSleep){ m_flags = (m_flags | e_allowSleepFlag); }; if (_arg1.isSleeping){ m_flags = (m_flags | e_sleepFlag); }; m_world = _arg2; m_xf.position.SetV(_arg1.position); m_xf.R.Set(_arg1.angle); m_sweep.localCenter.SetV(_arg1.massData.center); m_sweep.t0 = 1; m_sweep.a0 = (m_sweep.a = _arg1.angle); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_contactList = null; m_prev = null; m_next = null; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_sleepTime = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.massData.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } public function 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{ m_xf.R.Set(m_sweep.a); var _local1:b2Mat22 = m_xf.R; var _local2:b2Vec2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function GetInertia():Number{ return (m_I); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function SetMassFromShapes():void{ var _local1:b2Shape; if (m_world.m_lock == true){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; var _local2:Number = 0; var _local3:Number = 0; var _local4:b2MassData = s_massData; _local1 = m_shapeList; while (_local1) { _local1.ComputeMass(_local4); m_mass = (m_mass + _local4.mass); _local2 = (_local2 + (_local4.mass * _local4.center.x)); _local3 = (_local3 + (_local4.mass * _local4.center.y)); m_I = (m_I + _local4.I); _local1 = _local1.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local2 = (_local2 * m_invMass); _local3 = (_local3 * m_invMass); }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3)))); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_sweep.localCenter.Set(_local2, _local3); var _local5:b2Mat22 = m_xf.R; var _local6:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local1 = m_shapeList; while (_local1) { _local1.UpdateSweepRadius(m_sweep.localCenter); _local1 = _local1.m_next; }; var _local7:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local7 != m_type){ _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; }; } public function 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 _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); var _local4:b2Mat22 = m_xf.R; var _local5:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); var _local6:Boolean; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function 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 _local4:b2Shape; var _local1:b2XForm = s_xf1; _local1.R.Set(m_sweep.a0); var _local2:b2Mat22 = _local1.R; var _local3:b2Vec2 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); var _local5:Boolean; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; return (true); } public function GetAngle():Number{ return (m_sweep.a); } public function GetXForm():b2XForm{ return (m_xf); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function GetNext():b2Body{ return (m_next); } public function GetMass():Number{ return (m_mass); } 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 GetAngularVelocity():Number{ return (m_angularVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Shape; var _local4:b2Vec2; if (m_world.m_lock == true){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_sweep.localCenter.SetV(_arg1.center); var _local3:b2Mat22 = m_xf.R; _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; }; var _local5:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local5 != m_type){ _local2 = m_shapeList; while (_local2) { _local2.RefilterProxy(m_world.m_broadPhase, m_xf); _local2 = _local2.m_next; }; }; } public function 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 = 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{ if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); var _local2:b2Shape = m_shapeList; var _local3:Boolean; while (_local2 != null) { if (_local2 == _arg1){ _local2 = _arg1.m_next; _local3 = true; break; }; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function GetUserData(){ return (m_userData); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function 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 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorld():b2World{ return (m_world); } public function GetPosition():b2Vec2{ return (m_xf.position); } } }//package Box2D.Dynamics
Section 181
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2BodyDef { public var angularDamping:Number; public var angle:Number; public var isSleeping:Boolean; public var position:b2Vec2; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var fixedRotation:Boolean; 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 182
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 183
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; public class b2ContactFilter { public static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:b2FilterData = _arg1.GetFilterData(); var _local4:b2FilterData = _arg2.GetFilterData(); if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; var _local5:Boolean = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local5); } } }//package Box2D.Dynamics
Section 184
//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 185
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; 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 PairRemoved(_arg1, _arg2, _arg3):void{ if (_arg3 == null){ return; }; var _local4:b2Contact = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local7:b2Body; var _local8:b2Body; var _local9:Array; var _local10:b2ContactPoint; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2Vec2; var _local16:b2Vec2; var _local2:b2Shape = _arg1.m_shape1; var _local3:b2Shape = _arg1.m_shape2; var _local4:int = _arg1.m_manifoldCount; if ((((_local4 > 0)) && (m_world.m_contactListener))){ _local7 = _local2.m_body; _local8 = _local3.m_body; _local9 = _arg1.GetManifolds(); _local10 = s_evalCP; _local10.shape1 = _arg1.m_shape1; _local10.shape2 = _arg1.m_shape2; _local10.friction = _arg1.m_friction; _local10.restitution = _arg1.m_restitution; _local11 = 0; while (_local11 < _local4) { _local12 = _local9[_local11]; _local10.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local10.position = _local7.GetWorldPoint(_local14.localPoint1); _local15 = _local7.GetLinearVelocityFromLocalPoint(_local14.localPoint1); _local16 = _local8.GetLinearVelocityFromLocalPoint(_local14.localPoint2); _local10.velocity.Set((_local16.x - _local15.x), (_local16.y - _local15.y)); _local10.separation = _local14.separation; _local10.id.key = _local14.id._key; m_world.m_contactListener.Remove(_local10); _local13++; }; _local11++; }; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; var _local5:b2Body = _local2.m_body; var _local6:b2Body = _local3.m_body; if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local6.m_contactList){ _local6.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape = (_arg1 as b2Shape); var _local4:b2Shape = (_arg2 as b2Shape); var _local5:b2Body = _local3.m_body; var _local6:b2Body = _local4.m_body; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; var _local7:b2Contact = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.m_shape1; _local4 = _local7.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } public function Collide():void{ var _local2:b2Body; var _local3:b2Body; var _local1:b2Contact = m_world.m_contactList; while (_local1) { _local2 = _local1.m_shape1.m_body; _local3 = _local1.m_shape2.m_body; if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); }; _local1 = _local1.m_next; }; } } }//package Box2D.Dynamics
Section 186
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import flash.display.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2DebugDraw { public var m_xformScale:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_alpha:Number;// = 1 public var m_drawFlags:uint; public var m_lineThickness:Number;// = 1 public var m_drawScale:Number;// = 1 public var m_sprite:Sprite; 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_drawFlags = 0; } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } 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 DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } public function 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 GetFlags():uint{ return (m_drawFlags); } public function DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } } }//package Box2D.Dynamics
Section 187
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; public class b2DestructionListener { public function SayGoodbyeShape(_arg1:b2Shape):void{ } public function SayGoodbyeJoint(_arg1:b2Joint):void{ } } }//package Box2D.Dynamics
Section 188
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; public class b2Island { public var m_listener:b2ContactListener; public var m_positionIterationCount:int; public var m_bodyCapacity:int; public var m_bodies:Array; public var m_joints: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 _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactResult; var _local8:b2Body; var _local9:int; var _local10:Array; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2ContactConstraintPoint; if (m_listener == null){ return; }; var _local4:int; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCR; _local7.shape1 = _local5.m_shape1; _local7.shape2 = _local5.m_shape2; _local8 = _local7.shape1.m_body; _local9 = _local5.m_manifoldCount; _local10 = _local5.GetManifolds(); _local11 = 0; while (_local11 < _local9) { _local12 = _local10[_local11]; _local7.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local15 = _local6.points[_local13]; _local7.position = _local8.GetWorldPoint(_local14.localPoint1); _local7.normalImpulse = _local15.normalImpulse; _local7.tangentImpulse = _local15.tangentImpulse; _local7.id.key = _local14.id.key; m_listener.Result(_local7); _local13++; }; _local11++; }; _local4++; }; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local9:int; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; var _local13:Number; var _local14:Number; var _local15:Number; _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_arg2.x + (_local6.m_invMass * _local6.m_force.x)))); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_arg2.y + (_local6.m_invMass * _local6.m_force.y)))); _local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque)); _local6.m_force.SetZero(); _local6.m_torque = 0; _local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); if (_local6.m_linearVelocity.LengthSquared() > b2Settings.b2_maxLinearVelocitySquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * b2Settings.b2_maxLinearVelocity); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * b2Settings.b2_maxLinearVelocity); }; if ((_local6.m_angularVelocity * _local6.m_angularVelocity) > b2Settings.b2_maxAngularVelocitySquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = -(b2Settings.b2_maxAngularVelocity); } else { _local6.m_angularVelocity = b2Settings.b2_maxAngularVelocity; }; }; }; _local5++; }; var _local8:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local8.InitVelocityConstraints(_arg1); _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitVelocityConstraints(_arg1); _local5++; }; _local5 = 0; while (_local5 < _arg1.maxIterations) { _local8.SolveVelocityConstraints(); _local9 = 0; while (_local9 < m_jointCount) { _local7 = m_joints[_local9]; _local7.SolveVelocityConstraints(_arg1); _local9++; }; _local5++; }; _local8.FinalizeVelocityConstraints(); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_sweep.c0.SetV(_local6.m_sweep.c); _local6.m_sweep.a0 = _local6.m_sweep.a; _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_arg1.dt * _local6.m_linearVelocity.x)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_arg1.dt * _local6.m_linearVelocity.y)); _local6.m_sweep.a = (_local6.m_sweep.a + (_arg1.dt * _local6.m_angularVelocity)); _local6.SynchronizeTransform(); }; _local5++; }; if (_arg3){ _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitPositionConstraints(); _local5++; }; m_positionIterationCount = 0; while (m_positionIterationCount < _arg1.maxIterations) { _local10 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local11 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local12 = _local7.SolvePositionConstraints(); _local11 = ((_local11) && (_local12)); _local5++; }; if (((_local10) && (_local11))){ break; }; m_positionIterationCount++; }; }; Report(_local8.m_constraints); if (_arg4){ _local13 = Number.MAX_VALUE; _local14 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local15 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.m_invMass == 0){ } else { if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){ _local6.m_sleepTime = 0; _local13 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local15)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local14)))){ _local6.m_sleepTime = 0; _local13 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local13 = b2Math.b2Min(_local13, _local6.m_sleepTime); }; }; _local5++; }; if (_local13 >= b2Settings.b2_timeToSleep){ _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; m_bodies[_local5].m_flags = (_local6.m_flags | b2Body.e_sleepFlag); _local6.m_linearVelocity.SetZero(); _local6.m_angularVelocity = 0; _local5++; }; }; }; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local5:b2Body; var _local6:Boolean; var _local3:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local2 = 0; while (_local2 < _arg1.maxIterations) { _local3.SolveVelocityConstraints(); _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local5 = m_bodies[_local2]; if (_local5.IsStatic()){ } else { _local5.m_sweep.c0.SetV(_local5.m_sweep.c); _local5.m_sweep.a0 = _local5.m_sweep.a; _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity)); _local5.SynchronizeTransform(); }; _local2++; }; var _local4:Number = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } } }//package Box2D.Dynamics
Section 189
//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 190
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; 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){ m_contactManager = new b2ContactManager(); super(); m_destructionListener = null; m_boundaryListener = null; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_positionCorrection = true; m_warmStarting = true; m_continuousPhysics = true; m_allowSleep = _arg3; m_gravity = _arg2; m_lock = false; m_inv_dt0 = 0; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); var _local4:b2BodyDef = new b2BodyDef(); m_groundBody = CreateBody(_local4); } public function DrawJoint(_arg1:b2Joint):void{ var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; var _local2:b2Body = _arg1.m_body1; var _local3:b2Body = _arg1.m_body2; var _local4:b2XForm = _local2.m_xf; var _local5:b2XForm = _local3.m_xf; var _local6:b2Vec2 = _local4.position; var _local7:b2Vec2 = _local5.position; var _local8:b2Vec2 = _arg1.GetAnchor1(); var _local9:b2Vec2 = _arg1.GetAnchor2(); var _local10:b2Color = s_jointColor; switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; case b2Joint.e_pulleyJoint: _local11 = (_arg1 as b2PulleyJoint); _local12 = _local11.GetGroundAnchor1(); _local13 = _local11.GetGroundAnchor2(); m_debugDraw.DrawSegment(_local12, _local8, _local10); m_debugDraw.DrawSegment(_local13, _local9, _local10); m_debugDraw.DrawSegment(_local12, _local13, _local10); break; case b2Joint.e_mouseJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; default: if (_local2 != m_groundBody){ m_debugDraw.DrawSegment(_local6, _local8, _local10); }; m_debugDraw.DrawSegment(_local8, _local9, _local10); if (_local3 != m_groundBody){ m_debugDraw.DrawSegment(_local7, _local9, _local10); }; }; } public function 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 _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local11:b2XForm; var _local15:Boolean; var _local16:uint; var _local17:b2Pair; var _local18:b2Proxy; var _local19:b2Proxy; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Proxy; var _local23:b2PolygonShape; var _local24:b2OBB; var _local25:b2Vec2; var _local26:b2Mat22; var _local27:b2Vec2; var _local28:Number; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); var _local1:uint = m_debugDraw.GetFlags(); var _local7:b2Vec2 = new b2Vec2(); var _local8:b2Vec2 = new b2Vec2(); var _local9:b2Vec2 = new b2Vec2(); var _local10:b2Color = new b2Color(0, 0, 0); var _local12:b2AABB = new b2AABB(); var _local13:b2AABB = new b2AABB(); var _local14:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; if ((_local1 & b2DebugDraw.e_shapeBit)){ _local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local3.IsStatic()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15); } else { if (_local3.IsSleeping()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15); } else { DrawShape(_local4, _local11, new b2Color(0.9, 0.9, 0.9), _local15); }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local6 = m_broadPhase; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.9, 0.3); _local2 = 0; while (_local2 < b2Pair.b2_tableCapacity) { _local16 = _local6.m_pairManager.m_hashTable[_local2]; while (_local16 != b2Pair.b2_nullPair) { _local17 = _local6.m_pairManager.m_pairs[_local16]; _local18 = _local6.m_proxyPool[_local17.proxyId1]; _local19 = _local6.m_proxyPool[_local17.proxyId2]; _local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value)); _local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value)); _local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value)); _local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value)); _local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value)); _local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value)); _local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value)); _local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value)); _local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x)); _local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y)); _local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x)); _local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y)); m_debugDraw.DrawSegment(_local8, _local9, _local10); _local16 = _local17.next; }; _local2++; }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local6 = m_broadPhase; _local20 = _local6.m_worldAABB.lowerBound; _local21 = _local6.m_worldAABB.upperBound; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.3, 0.9); _local2 = 0; while (_local2 < b2Settings.b2_maxProxies) { _local22 = _local6.m_proxyPool[_local2]; if (_local22.IsValid() == false){ } else { _local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value)); _local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value)); _local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value)); _local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value)); _local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y); _local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y); _local14[2].Set(_local12.upperBound.x, _local12.upperBound.y); _local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local2++; }; _local14[0].Set(_local20.x, _local20.y); _local14[1].Set(_local21.x, _local20.y); _local14[2].Set(_local21.x, _local21.y); _local14[3].Set(_local20.x, _local21.y); m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9)); }; if ((_local1 & b2DebugDraw.e_obbBit)){ _local10.Set(0.5, 0.3, 0.5); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.m_type != b2Shape.e_polygonShape){ } else { _local23 = (_local4 as b2PolygonShape); _local24 = _local23.GetOBB(); _local25 = _local24.extents; _local14[0].Set(-(_local25.x), -(_local25.y)); _local14[1].Set(_local25.x, -(_local25.y)); _local14[2].Set(_local25.x, _local25.y); _local14[3].Set(-(_local25.x), _local25.y); _local2 = 0; while (_local2 < 4) { _local26 = _local24.R; _local27 = _local14[_local2]; _local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local26 = _local11.R; _local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local2++; }; m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.m_xf.R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.m_next; }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; var _local2:b2JointEdge = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; var _local3:b2Shape = _arg1.m_shapeList; while (_local3) { _local5 = _local3; _local3 = _local3.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeShape(_local5); }; _local5.DestroyProxy(m_broadPhase); b2Shape.Destroy(_local5, m_blockAllocator); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function 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 _local6:b2CircleShape; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:int; var _local11:b2PolygonShape; var _local12:int; var _local13:Array; var _local14:Array; var _local15:Array; var _local5:b2Color = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition); _local8 = _local6.m_radius; _local9 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3); if (_arg4){ m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5); }; break; case b2Shape.e_polygonShape: _local11 = (_arg1 as b2PolygonShape); _local12 = _local11.GetVertexCount(); _local13 = _local11.GetVertices(); _local14 = new Array(b2Settings.b2_maxPolygonVertices); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]); _local10++; }; m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3); if (_arg4){ _local15 = _local11.GetCoreVertices(); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]); _local10++; }; m_debugDraw.DrawPolygon(_local14, _local12, _local5); }; break; }; } public function GetContactCount():int{ return (m_contactCount); } public function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; var _local3:b2Island = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; var _local4:b2Contact = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; var _local5:b2Joint = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; var _local6:int = m_bodyCount; var _local7:Array = new Array(_local6); var _local8:b2Body = m_bodyList; while (_local8) { if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){ } else { if (_local8.IsStatic()){ } else { _local3.Clear(); _local9 = 0; var _temp1 = _local9; _local9 = (_local9 + 1); var _local15 = _temp1; _local7[_local15] = _local8; _local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag); while (_local9 > 0) { --_local9; _local2 = _local7[_local9]; _local3.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local12 = _local2.m_contactList; while (_local12) { if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){ } else { if (_local12.contact.m_manifoldCount == 0){ } else { _local3.AddContact(_local12.contact); _local12.contact.m_flags = (_local12.contact.m_flags | b2Contact.e_islandFlag); _local11 = _local12.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local9; _local9 = (_local9 + 1); var _local16 = _temp2; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; }; _local12 = _local12.next; }; _local13 = _local2.m_jointList; while (_local13) { if (_local13.joint.m_islandFlag == true){ } else { _local3.AddJoint(_local13.joint); _local13.joint.m_islandFlag = true; _local11 = _local13.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local9; _local9 = (_local9 + 1); _local16 = _temp3; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; _local13 = _local13.next; }; }; }; _local3.Solve(_arg1, m_gravity, m_positionCorrection, m_allowSleep); if (_local3.m_positionIterationCount > m_positionIterationCount){ m_positionIterationCount = _local3.m_positionIterationCount; }; _local10 = 0; while (_local10 < _local3.m_bodyCount) { _local2 = _local3.m_bodies[_local10]; if (_local2.IsStatic()){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local10++; }; }; }; _local8 = _local8.m_next; }; _local2 = m_bodyList; while (_local2) { if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local14 = _local2.SynchronizeShapes(); if ((((_local14 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; }; }; _local2 = _local2.m_next; }; m_broadPhase.Commit(); } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array = new Array(_arg3); var _local5:int = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); var _local6:int; while (_local6 < _local5) { _arg2[_local6] = _local4[_local6]; _local6++; }; return (_local5); } public function 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 _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:b2TimeStep; var _local17:int; var _local18:Number; var _local19:Number; var _local20:b2Body; var _local21:Boolean; var _local8:b2Island = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); var _local9:int = m_bodyCount; var _local10:Array = new Array(_local9); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2.m_sweep.t0 = 0; _local2 = _local2.m_next; }; _local11 = m_contactList; while (_local11) { _local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local11 = _local11.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){ } else { _local18 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local18 = _local11.m_toi; } else { _local3 = _local11.m_shape1; _local4 = _local11.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((_local5.IsStatic()) || (_local5.IsSleeping()))) && (((_local6.IsStatic()) || (_local6.IsSleeping()))))){ continue; }; _local19 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local19 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local19); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local19 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local19); }; }; _local18 = b2TimeOfImpact.TimeOfImpact(_local11.m_shape1, _local5.m_sweep, _local11.m_shape2, _local6.m_sweep); if ((((_local18 > 0)) && ((_local18 < 1)))){ _local18 = (((1 - _local18) * _local19) + _local18); if (_local18 > 1){ _local18 = 1; }; }; _local11.m_toi = _local18; _local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local18)) && ((_local18 < _local13)))){ _local12 = _local11; _local13 = _local18; }; }; }; if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){ break; }; _local3 = _local12.m_shape1; _local4 = _local12.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if (_local12.m_manifoldCount == 0){ } else { _local14 = _local5; if (_local14.IsStatic()){ _local14 = _local6; }; _local8.Clear(); _local15 = 0; var _temp1 = _local15; _local15 = (_local15 + 1); var _local22 = _temp1; _local10[_local22] = _local14; _local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag); while (_local15 > 0) { --_local15; _local2 = _local10[_local15]; _local8.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local8.m_contactCount == _local8.m_contactCapacity){ } else { if ((_local7.contact.m_flags & ((b2Contact.e_islandFlag | b2Contact.e_slowFlag) | b2Contact.e_nonSolidFlag))){ } else { if (_local7.contact.m_manifoldCount == 0){ } else { _local8.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local20 = _local7.other; if ((_local20.m_flags & b2Body.e_islandFlag)){ } else { if (_local20.IsStatic() == false){ _local20.Advance(_local13); _local20.WakeUp(); }; var _temp2 = _local15; _local15 = (_local15 + 1); var _local23 = _temp2; _local10[_local23] = _local20; _local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag); }; }; }; }; _local7 = _local7.next; }; }; }; _local16 = new b2TimeStep(); _local16.dt = ((1 - _local13) * _arg1.dt); _local16.inv_dt = (1 / _local16.dt); _local16.maxIterations = _arg1.maxIterations; _local8.SolveTOI(_local16); _local17 = 0; while (_local17 < _local8.m_bodyCount) { _local2 = _local8.m_bodies[_local17]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local21 = _local2.SynchronizeShapes(); if ((((_local21 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local17++; }; _local17 = 0; while (_local17 < _local8.m_contactCount) { _local11 = _local8.m_contacts[_local17]; _local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local17++; }; m_broadPhase.Commit(); }; }; } public function GetJointList():b2Joint{ return (m_jointList); } public function GetBodyList():b2Body{ return (m_bodyList); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function Validate():void{ m_broadPhase.Validate(); } 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 _local3:b2Body; var _local4:b2Shape; var _local2:b2Joint = b2Joint.Create(_arg1, m_blockAllocator); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_node1.joint = _local2; _local2.m_node1.other = _local2.m_body2; _local2.m_node1.prev = null; _local2.m_node1.next = _local2.m_body1.m_jointList; if (_local2.m_body1.m_jointList){ _local2.m_body1.m_jointList.prev = _local2.m_node1; }; _local2.m_body1.m_jointList = _local2.m_node1; _local2.m_node2.joint = _local2; _local2.m_node2.other = _local2.m_body1; _local2.m_node2.prev = null; _local2.m_node2.next = _local2.m_body2.m_jointList; if (_local2.m_body2.m_jointList){ _local2.m_body2.m_jointList.prev = _local2.m_node2; }; _local2.m_body2.m_jointList = _local2.m_node2; if (_arg1.collideConnected == false){ _local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2; _local4 = _local3.m_shapeList; while (_local4) { _local4.RefilterProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local5:b2Body; var _local6:b2Shape; var _local2:Boolean = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; var _local3:b2Body = _arg1.m_body1; var _local4:b2Body = _arg1.m_body2; _local3.WakeUp(); _local4.WakeUp(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local3.m_jointList){ _local3.m_jointList = _arg1.m_node1.next; }; _arg1.m_node1.prev = null; _arg1.m_node1.next = null; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local4.m_jointList){ _local4.m_jointList = _arg1.m_node2.next; }; _arg1.m_node2.prev = null; _arg1.m_node2.next = null; b2Joint.Destroy(_arg1, m_blockAllocator); m_jointCount--; if (_local2 == false){ _local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4; _local6 = _local5.m_shapeList; while (_local6) { _local6.RefilterProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function CreateBody(_arg1:b2BodyDef):b2Body{ if (m_lock == true){ return (null); }; var _local2:b2Body = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function Step(_arg1:Number, _arg2:int):void{ m_lock = true; var _local3:b2TimeStep = new b2TimeStep(); _local3.dt = _arg1; _local3.maxIterations = _arg2; if (_arg1 > 0){ _local3.inv_dt = (1 / _arg1); } else { _local3.inv_dt = 0; }; _local3.dtRatio = (m_inv_dt0 * _arg1); _local3.positionCorrection = m_positionCorrection; _local3.warmStarting = m_warmStarting; m_contactManager.Collide(); if (_local3.dt > 0){ Solve(_local3); }; if (((m_continuousPhysics) && ((_local3.dt > 0)))){ SolveTOI(_local3); }; DrawDebugData(); m_inv_dt0 = _local3.inv_dt; m_lock = false; } public function GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } } }//package Box2D.Dynamics
Section 191
//AuxFunctions (caurina.transitions.AuxFunctions) package caurina.transitions { public class AuxFunctions { public static function getObjectLength(_arg1:Object):uint{ var _local3:String; var _local2:uint; 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 _local3:Object; var _local5:String; var _local2:Object = {}; var _local4:int; 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 192
//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 _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 == 2){ return ((_arg2 + _arg3)); }; var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * (0.3 * 1.5)) : _arg5.period; var _local8:Number = (((!(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 = (((!(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 = (((!(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 = (((!(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 _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period; var _local8:Number = (((!(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 _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period; var _local8:Number = (((!(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 193
//PropertyInfoObj (caurina.transitions.PropertyInfoObj) package caurina.transitions { public class PropertyInfoObj { public var modifierParameters:Array; public var isSpecialProperty:Boolean; public var valueComplete:Number; public var modifierFunction:Function; public var extra:Object; public var valueStart:Number; public var hasModifier:Boolean; public var arrayIndex:Number; public var originalValueComplete:Object; 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 = "\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 = new PropertyInfoObj(valueStart, valueComplete, originalValueComplete, arrayIndex, extra, isSpecialProperty, modifierFunction, modifierParameters); return (_local1); } } }//package caurina.transitions
Section 194
//SpecialProperty (caurina.transitions.SpecialProperty) package caurina.transitions { public class SpecialProperty { public var parameters:Array; public var getValue:Function; public var preProcess:Function; public var setValue: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 = ""; _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 195
//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 = ""; _local1 = (_local1 + "[SpecialPropertyModifier "); _local1 = (_local1 + ("modifyValues:" + String(modifyValues))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("getValue:" + String(getValue))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 196
//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 = ""; _local1 = (_local1 + "[SpecialPropertySplitter "); _local1 = (_local1 + ("splitValues:" + String(splitValues))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("parameters:" + String(parameters))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 197
//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; private static var _engineExists:Boolean = false; private static var _specialPropertyModifierList:Object; private static var _currentTime:Number; private static var _tweenList:Array; private static var _specialPropertyList:Object; private static var _transitionList:Object; private static var _inited:Boolean = false; private static var __tweener_controller__:MovieClip; public function Tweener(){ trace("Tweener is a static class and should not be instantiated."); } public static function registerSpecialPropertyModifier(_arg1:String, _arg2:Function, _arg3:Function):void{ if (!_inited){ init(); }; var _local4:SpecialPropertyModifier = new SpecialPropertyModifier(_arg2, _arg3); _specialPropertyModifierList[_arg1] = _local4; } public static function registerSpecialProperty(_arg1:String, _arg2:Function, _arg3:Function, _arg4:Array=null, _arg5:Function=null):void{ if (!_inited){ init(); }; var _local6:SpecialProperty = 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 _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]; }; var _local5:Object = _arg2; if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; var _local6:Number = (isNaN(_local5.time)) ? 0 : _local5.time; var _local7:Number = (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 _local2:uint; if (!Boolean(_tweenList)){ return (false); }; var _local1:Boolean; _local2 = 0; while (_local2 < _tweenList.length) { pauseTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } public static function removeTweens(_arg1:Object, ... _args):Boolean{ var _local4:uint; var _local5:SpecialPropertySplitter; var _local6:Array; var _local7:uint; var _local3:Array = 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 splitTweens(_arg1:Number, _arg2:Array):uint{ var _local5:uint; var _local6:String; var _local7:Boolean; var _local3:TweenListObj = _tweenList[_arg1]; var _local4:TweenListObj = _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 updateFrame():void{ _currentTimeFrame++; } public static function resumeTweenByIndex(_arg1:Number):Boolean{ var _local2:TweenListObj = _tweenList[_arg1]; if ((((_local2 == null)) || (!(_local2.isPaused)))){ return (false); }; var _local3:Number = 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.31.74"); } public static function onEnterFrame(_arg1:Event):void{ updateTime(); updateFrame(); var _local2:Boolean; _local2 = updateTweens(); if (!_local2){ stopEngine(); }; } public static function updateTime():void{ _currentTime = getTimer(); } private static function updateTweenByIndex(_arg1:Number):Boolean{ var tTweening:TweenListObj; 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 tProperty:Object; var pv:Number; var i = _arg1; tTweening = _tweenList[i]; if ((((tTweening == null)) || (!(Boolean(tTweening.scope))))){ return (false); }; var isOver:Boolean; var cTime:Number = 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 _local2:uint; if (!Boolean(_tweenList)){ return (false); }; var _local1:Boolean; _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 _local2:uint; if (!Boolean(_tweenList)){ return (false); }; var _local1:Boolean; _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 _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]; }; var _local7:Object = TweenListObj.makePropertiesChain(_arg2); if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; var _local8:Number = (isNaN(_local7.time)) ? 0 : _local7.time; var _local9:Number = (isNaN(_local7.delay)) ? 0 : _local7.delay; var _local10:Array = new Array(); var _local11:Object = {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}; var _local12:Object = 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; 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 _local5:uint; var _local6:Array; var _local7:uint; var _local8:uint; var _local9:uint; var _local4:Boolean; 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; if (!Boolean(_tweenList)){ return ([]); }; var _local4:Array = 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 = _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; if (!Boolean(_tweenList)){ return (0); }; var _local3:Number = 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 removedLocally:Boolean; var i:uint; var pName:String; var eventScope:Object; var p_scope = _arg1; var p_properties = _arg2; var p_timeStart = _arg3; var p_timeComplete = _arg4; var removed:Boolean; var tl:uint = _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{ if (!_inited){ init(); }; var _local4:SpecialPropertySplitter = 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 _local4:uint; var _local3:Array = 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 _local4:uint; var _local3:Array = 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 198
//TweenListObj (caurina.transitions.TweenListObj) package caurina.transitions { public class TweenListObj { public var hasStarted:Boolean; public var onUpdate:Function; public var useFrames:Boolean; public var count:Number; public var onOverwriteParams:Array; public var timeStart: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 isCaller:Boolean; public var timePaused:Number; public var transition:Function; public var onCompleteParams:Array; public var onError:Function; public var timesCalled:Number; 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 _local3:String; var _local2:TweenListObj = 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 _local3:String; var _local1 = "\n[TweenListObj "; _local1 = (_local1 + ("scope:" + String(scope))); _local1 = (_local1 + ", properties:"); var _local2:Boolean; 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 _local3:Object; var _local4:Object; var _local5:Object; var _local6:Number; var _local7:Number; var _local8:Number; var _local2:Object = _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 199
//MemoryCrypto (com.electrotank.util.MemoryCrypto) package com.electrotank.util { import com.meychi.ascrypt3.*; public class MemoryCrypto { private static var crypto:TEA = null; private static var INCREMENT:int = 0; private static var initialized:Boolean = false; private static var key:String = null; private static var MULTIPLY:int = 2; private static var DECREMENT:int = 1; private static var dataHolder:Object = null; private static var DIVIDE:int = 3; public static function incrementValue(_arg1:String, _arg2:Number):Number{ return (processValue(_arg1, _arg2, INCREMENT)); } public static function getValue(_arg1:String):Number{ initIfNeeded(); var _local2:Number = 0; if (!isValueSet(_arg1)){ setValue(_arg1, _local2); } else { _local2 = new Number(crypto.decrypt(dataHolder[_arg1], key)); }; return (_local2); } private static function processValue(_arg1:String, _arg2:Number, _arg3:int):Number{ initIfNeeded(); var _local4:Number = getValue(_arg1); switch (_arg3){ case INCREMENT: _local4 = (_local4 + _arg2); break; case DECREMENT: _local4 = (_local4 - _arg2); break; case MULTIPLY: _local4 = (_local4 * _arg2); break; case DIVIDE: _local4 = (_local4 / _arg2); break; }; setValue(_arg1, _local4); return (_local4); } public static function reset():void{ initialized = false; initIfNeeded(); } public static function decrementValue(_arg1:String, _arg2:Number):Number{ return (processValue(_arg1, _arg2, DECREMENT)); } private static function initIfNeeded():void{ var _local1:Number; var _local2:String; var _local3:Number; var _local4:String; if (!initialized){ _local1 = Math.random(); _local2 = new String(_local1); _local2 = _local2.substr(2, (_local2.length - 2)); _local3 = Math.random(); _local4 = new String(_local3); _local4 = _local4.substr(2, (_local4.length - 2)); key = (_local2 + _local4); crypto = new TEA(); dataHolder = new Object(); initialized = true; }; } public static function multiplyValue(_arg1:String, _arg2:Number):Number{ return (processValue(_arg1, _arg2, MULTIPLY)); } public static function setValue(_arg1:String, _arg2:Number):Number{ initIfNeeded(); dataHolder[_arg1] = crypto.encrypt(_arg2.toString(), key); return (_arg2); } public static function divideValue(_arg1:String, _arg2:Number):Number{ if (_arg2 == 0){ throw (new Error("Amount can't be zero when dividing!")); }; return (processValue(_arg1, _arg2, DIVIDE)); } public static function isValueSet(_arg1:String):Boolean{ initIfNeeded(); var _local2:Boolean; if (dataHolder[_arg1] != null){ _local2 = true; }; return (_local2); } } }//package com.electrotank.util
Section 200
//Raster (com.foxaweb.utils.Raster) package com.foxaweb.utils { import flash.display.*; import flash.geom.*; public class Raster { public static function aaCircle(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:int, _arg5:Number):void{ var _local6:int; var _local7:int; var _local8:int; var _local10:Number; _local6 = _arg4; _local7 = 0; var _local9:Number = 0; var _local11:Function = Math.sqrt; var _local12:Function = Math.ceil; _arg1.setPixel((_arg2 + _local6), (_arg3 + _local7), _arg5); _arg1.setPixel((_arg2 - _local6), (_arg3 + _local7), _arg5); _arg1.setPixel((_arg2 + _local7), (_arg3 + _local6), _arg5); _arg1.setPixel((_arg2 + _local7), (_arg3 - _local6), _arg5); while (_local6 > (_local7 + 1)) { _local7++; _local10 = (_local12(_local11(((_arg4 * _arg4) - (_local7 * _local7)))) - _local11(((_arg4 * _arg4) - (_local7 * _local7)))); if (_local10 < _local9){ _local6--; }; drawAlphaPixel(_arg1, (_arg2 + _local6), (_arg3 + _local7), (1 - _local10), _arg5); drawAlphaPixel(_arg1, ((_arg2 + _local6) - 1), (_arg3 + _local7), _local10, _arg5); drawAlphaPixel(_arg1, (_arg2 - _local6), (_arg3 + _local7), (1 - _local10), _arg5); drawAlphaPixel(_arg1, ((_arg2 - _local6) + 1), (_arg3 + _local7), _local10, _arg5); drawAlphaPixel(_arg1, (_arg2 + _local6), (_arg3 - _local7), (1 - _local10), _arg5); drawAlphaPixel(_arg1, ((_arg2 + _local6) - 1), (_arg3 - _local7), _local10, _arg5); drawAlphaPixel(_arg1, (_arg2 - _local6), (_arg3 - _local7), (1 - _local10), _arg5); drawAlphaPixel(_arg1, ((_arg2 - _local6) + 1), (_arg3 - _local7), _local10, _arg5); drawAlphaPixel(_arg1, (_arg2 + _local7), (_arg3 + _local6), (1 - _local10), _arg5); drawAlphaPixel(_arg1, (_arg2 + _local7), ((_arg3 + _local6) - 1), _local10, _arg5); drawAlphaPixel(_arg1, (_arg2 - _local7), (_arg3 + _local6), (1 - _local10), _arg5); drawAlphaPixel(_arg1, (_arg2 - _local7), ((_arg3 + _local6) - 1), _local10, _arg5); drawAlphaPixel(_arg1, (_arg2 + _local7), (_arg3 - _local6), (1 - _local10), _arg5); drawAlphaPixel(_arg1, (_arg2 + _local7), ((_arg3 - _local6) + 1), _local10, _arg5); drawAlphaPixel(_arg1, (_arg2 - _local7), (_arg3 - _local6), (1 - _local10), _arg5); drawAlphaPixel(_arg1, (_arg2 - _local7), ((_arg3 - _local6) + 1), _local10, _arg5); _local9 = _local10; }; } public static function cubicBezier(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int, _arg9:int, _arg10:Number, _arg11:int=5):void{ var _local14:int; var _local15:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local12:Number = _arg2; var _local13:Number = _arg3; var _local16:Number = 0; var _local17:Number = (1 / _arg11); var _local24:int; while (++_local24 <= _arg11) { _local18 = (_local17 * _local24); _local19 = ((_local17 * _local24) * _local18); _local20 = (_local19 * _local18); _local21 = (1 - _local18); _local22 = ((1 - _local18) * _local21); _local23 = (_local22 * _local21); _local14 = ((((_local23 * _arg2) + (((3 * _local18) * _local22) * _arg4)) + (((3 * _arg6) * _local19) * _local21)) + (_arg8 * _local20)); _local15 = ((((_local23 * _arg3) + (((3 * _local18) * _local22) * _arg5)) + (((3 * _arg7) * _local19) * _local21)) + (_arg9 * _local20)); _local16 = (_local16 + Math.sqrt((((_local14 - _local12) * (_local14 - _local12)) + ((_local15 - _local13) * (_local15 - _local13))))); _local12 = _local14; _local13 = _local15; }; var _local25:int = Math.floor(_local16); _local17 = (1 / _local25); var _local26:int = _arg2; var _local27:int = _arg3; _local24 = -1; while (++_local24 <= _local25) { _local18 = (_local17 * _local24); _local19 = ((_local17 * _local24) * _local18); _local20 = (_local19 * _local18); _local21 = (1 - _local18); _local22 = ((1 - _local18) * _local21); _local23 = (_local22 * _local21); _local14 = ((((_local23 * _arg2) + (((3 * _local18) * _local22) * _arg4)) + (((3 * _arg6) * _local19) * _local21)) + (_arg8 * _local20)); _local15 = ((((_local23 * _arg3) + (((3 * _local18) * _local22) * _arg5)) + (((3 * _arg7) * _local19) * _local21)) + (_arg9 * _local20)); line(_arg1, _local26, _local27, _local14, _local15, _arg10); _local26 = _local14; _local27 = _local15; }; } private static function checkLine(_arg1:Object, _arg2:int, _arg3:int, _arg4:BitmapData, _arg5:int, _arg6:Rectangle):void{ if (_arg1[_arg3]){ if (_arg1[_arg3] > _arg2){ _arg6.width = (_arg1[_arg3] - _arg2); _arg6.x = _arg2; _arg6.y = _arg3; _arg4.fillRect(_arg6, _arg5); } else { _arg6.width = (_arg2 - _arg1[_arg3]); _arg6.x = _arg1[_arg3]; _arg6.y = _arg3; _arg4.fillRect(_arg6, _arg5); }; } else { _arg1[_arg3] = _arg2; }; } public static function line(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:Number):void{ var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:int; _local13 = _arg2; _local14 = _arg3; _local7 = (_arg4 - _arg2); _local8 = (_arg5 - _arg3); _local10 = ((_local7)>0) ? 1 : -1; _local11 = ((_local8)>0) ? 1 : -1; _local7 = Math.abs(_local7); _local8 = Math.abs(_local8); _arg1.setPixel32(_local13, _local14, _arg6); if (_local7 > _local8){ _local12 = (_local7 / 2); _local9 = 1; while (_local9 <= _local7) { _local13 = (_local13 + _local10); _local12 = (_local12 + _local8); if (_local12 >= _local7){ _local12 = (_local12 - _local7); _local14 = (_local14 + _local11); }; _arg1.setPixel32(_local13, _local14, _arg6); _local9++; }; } else { _local12 = (_local8 / 2); _local9 = 1; while (_local9 <= _local8) { _local14 = (_local14 + _local11); _local12 = (_local12 + _local7); if (_local12 >= _local8){ _local12 = (_local12 - _local8); _local13 = (_local13 + _local10); }; _arg1.setPixel32(_local13, _local14, _arg6); _local9++; }; }; } public static function quadBezier(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:Number, _arg9:int=3):void{ var _local12:int; var _local13:int; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local10:Number = _arg2; var _local11:Number = _arg3; var _local14:Number = 0; var _local15:Number = (1 / _arg9); var _local20:int; while (++_local20 <= _arg9) { _local16 = (_local15 * _local20); _local17 = ((_local15 * _local20) * _local16); _local18 = (1 - _local16); _local19 = ((1 - _local16) * _local18); _local12 = (((_local19 * _arg2) + (((2 * _local16) * _local18) * _arg4)) + (_local17 * _arg6)); _local13 = (((_local19 * _arg3) + (((2 * _local16) * _local18) * _arg5)) + (_local17 * _arg7)); _local14 = (_local14 + Math.sqrt((((_local12 - _local10) * (_local12 - _local10)) + ((_local13 - _local11) * (_local13 - _local11))))); _local10 = _local12; _local11 = _local13; }; var _local21:int = Math.floor(_local14); _local15 = (1 / _local21); var _local22:int = _arg2; var _local23:int = _arg3; _local20 = -1; while (++_local20 <= _local21) { _local16 = (_local15 * _local20); _local17 = ((_local15 * _local20) * _local16); _local18 = (1 - _local16); _local19 = ((1 - _local16) * _local18); _local12 = (((_local19 * _arg2) + (((2 * _local16) * _local18) * _arg4)) + (_local17 * _arg6)); _local13 = (((_local19 * _arg3) + (((2 * _local16) * _local18) * _arg5)) + (_local17 * _arg7)); line(_arg1, _local22, _local23, _local12, _local13, _arg8); _local22 = _local12; _local23 = _local13; }; } public static function circle(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:Number):void{ var _local6:int; var _local7:int; var _local8:int; _local6 = 0; _local7 = _arg4; _local8 = (1 - _arg4); _arg1.setPixel32((_arg2 + _local6), (_arg3 + _local7), _arg5); _arg1.setPixel32((_arg2 + _local6), (_arg3 - _local7), _arg5); _arg1.setPixel32((_arg2 - _local7), (_arg3 + _local6), _arg5); _arg1.setPixel32((_arg2 + _local7), (_arg3 + _local6), _arg5); while (_local7 > _local6) { if (_local8 < 0){ _local8 = (_local8 + ((2 * _local6) + 3)); } else { _local8 = (_local8 + ((2 * (_local6 - _local7)) + 5)); _local7--; }; _local6++; _arg1.setPixel32((_arg2 + _local6), (_arg3 + _local7), _arg5); _arg1.setPixel32((_arg2 - _local6), (_arg3 + _local7), _arg5); _arg1.setPixel32((_arg2 + _local6), (_arg3 - _local7), _arg5); _arg1.setPixel32((_arg2 - _local6), (_arg3 - _local7), _arg5); _arg1.setPixel32((_arg2 - _local7), (_arg3 + _local6), _arg5); _arg1.setPixel32((_arg2 - _local7), (_arg3 - _local6), _arg5); _arg1.setPixel32((_arg2 + _local7), (_arg3 - _local6), _arg5); _arg1.setPixel32((_arg2 + _local7), (_arg3 + _local6), _arg5); }; } public static function triangle(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:Number):void{ line(_arg1, _arg2, _arg3, _arg4, _arg5, _arg8); line(_arg1, _arg4, _arg5, _arg6, _arg7, _arg8); line(_arg1, _arg6, _arg7, _arg2, _arg3, _arg8); } public static function filledTri(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:Number):void{ var _local9:Object = {}; lineTri(_local9, _arg1, _arg2, _arg3, _arg4, _arg5, _arg8); lineTri(_local9, _arg1, _arg4, _arg5, _arg6, _arg7, _arg8); lineTri(_local9, _arg1, _arg6, _arg7, _arg2, _arg3, _arg8); } public static function aaLine(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:Number):void{ var _local8:int; var _local17:Number; var _local7 = (Math.abs((_arg5 - _arg3)) > Math.abs((_arg4 - _arg2))); if (_local7){ _local8 = _arg2; _arg2 = _arg3; _arg3 = _local8; _local8 = _arg4; _arg4 = _arg5; _arg5 = _local8; }; if (_arg2 > _arg4){ _local8 = _arg2; _arg2 = _arg4; _arg4 = _local8; _local8 = _arg3; _arg3 = _arg5; _arg5 = _local8; }; var _local9:int = (_arg4 - _arg2); var _local10:int = (_arg5 - _arg3); var _local11:Number = (_local10 / _local9); var _local12:int = _arg2; var _local13:Number = (_arg3 + (_local11 * (_local12 - _arg2))); var _local14:Number = (1 - ((_arg2 + 0.5) % 1)); var _local15:int = _local12; var _local16:int = Math.floor(_local13); _local17 = ((1 - (_local13 % 1)) * _local14); if (_local7){ }; _local17 = ((_local13 % 1) * _local14); if (_local7){ }; var _local18:Number = (_local13 + _local11); _local12 = _arg4; _local13 = (_arg5 + (_local11 * (_local12 - _arg4))); _local14 = ((_arg4 + 0.5) % 1); var _local19:int = _local12; var _local20:int = Math.floor(_local13); _local17 = ((1 - (_local13 % 1)) * _local14); if (_local7){ drawAlphaPixel(_arg1, _local20, _local19, _local17, _arg6); } else { drawAlphaPixel(_arg1, _local19, _local20, _local17, _arg6); }; _local17 = ((_local13 % 1) * _local14); if (_local7){ drawAlphaPixel(_arg1, (_local20 + 1), _local19, _local17, _arg6); } else { drawAlphaPixel(_arg1, _local19, (_local20 + 1), _local17, _arg6); }; var _local21:int = _local15; while (_local21++ < _local19) { _local17 = (1 - (_local18 % 1)); if (_local7){ drawAlphaPixel(_arg1, _local18, _local21, _local17, _arg6); } else { drawAlphaPixel(_arg1, _local21, _local18, _local17, _arg6); }; _local17 = (_local18 % 1); if (_local7){ drawAlphaPixel(_arg1, (_local18 + 1), _local21, _local17, _arg6); } else { drawAlphaPixel(_arg1, _local21, (_local18 + 1), _local17, _arg6); }; _local18 = (_local18 + _local11); }; } private static function drawAlphaPixel(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:Number, _arg5:Number):void{ var _local6:uint = _arg1.getPixel32(_arg2, _arg3); var _local7:uint = ((_local6 & 0xFF0000) >> 16); var _local8:uint = ((_local6 & 0xFF00) >> 8); var _local9:uint = (_local6 & 0xFF); var _local10:uint = ((_arg5 & 0xFF0000) >> 16); var _local11:uint = ((_arg5 & 0xFF00) >> 8); var _local12:uint = (_arg5 & 0xFF); var _local13:Number = 0xFF; var _local14:Number = ((_local10 * _arg4) + (_local7 * (1 - _arg4))); var _local15:Number = ((_local11 * _arg4) + (_local8 * (1 - _arg4))); var _local16:Number = ((_local12 * _arg4) + (_local9 * (1 - _arg4))); var _local17:uint = ((((_local13 << 24) + (_local14 << 16)) + (_local15 << 8)) + _local16); _arg1.setPixel32(_arg2, _arg3, _local17); } private static function lineTri(_arg1:Object, _arg2:BitmapData, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:Number):void{ var _local9:int; var _local8 = (((_arg6 - _arg4) * (_arg6 - _arg4)) > ((_arg5 - _arg3) * (_arg5 - _arg3))); if (_local8){ _local9 = _arg3; _arg3 = _arg4; _arg4 = _local9; _local9 = _arg5; _arg5 = _arg6; _arg6 = _local9; }; if (_arg3 > _arg5){ _arg3 = (_arg3 ^ _arg5); _arg5 = (_arg5 ^ _arg3); _arg3 = (_arg3 ^ _arg5); _arg4 = (_arg4 ^ _arg6); _arg6 = (_arg6 ^ _arg4); _arg4 = (_arg4 ^ _arg6); }; var _local10:int = (_arg5 - _arg3); var _local11:int = Math.abs((_arg6 - _arg4)); var _local12:int; var _local13:int = _arg4; var _local14:int = ((_arg4 < _arg6)) ? 1 : -1; var _local15:int = _arg3; var _local16:int = (_arg5 - (_local10 >> 1)); var _local17:int = _arg5; var _local18:int = _arg6; var _local19:Rectangle = new Rectangle(); var _local20:int; _local19.x = 0; _local19.y = 0; _local19.width = 0; _local19.height = 1; while (_local15++ <= _local16) { if (_local8){ checkLine(_arg1, _local13, _local15, _arg2, _arg7, _local19); if (((!((_local17 == _arg5))) && (!((_local17 == _local16))))){ checkLine(_arg1, _local18, (_local17 + 1), _arg2, _arg7, _local19); }; }; _local12 = (_local12 + _local11); if ((_local12 << 1) >= _local10){ if (!_local8){ checkLine(_arg1, ((_local15 - _local20) + 1), _local13, _arg2, _arg7, _local19); if (_local17 != _local16){ checkLine(_arg1, (_local17 + 1), _local18, _arg2, _arg7, _local19); }; }; _local20 = 0; _local13 = (_local13 + _local14); _local18 = (_local18 - _local14); _local12 = (_local12 - _local10); }; _local20++; _local17--; }; if (!_local8){ checkLine(_arg1, ((_local15 - _local20) + 1), _local13, _arg2, _arg7, _local19); }; } } }//package com.foxaweb.utils
Section 201
//Key (com.Keyboard.Key) package com.Keyboard { import flash.events.*; import flash.display.*; public class Key { private static var initialized:Boolean = false; private static var keysDown:Object = new Object(); public static function initialize(_arg1:Stage):void{ if (!initialized){ _arg1.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed); _arg1.addEventListener(KeyboardEvent.KEY_UP, keyReleased); _arg1.addEventListener(Event.DEACTIVATE, clearKeys); initialized = true; }; } private static function clearKeys(_arg1:Event):void{ keysDown = new Object(); } public static function isDown(_arg1:uint):Boolean{ if (!initialized){ throw (new Error("Key class has yet been initialized.")); }; return (Boolean((_arg1 in keysDown))); } private static function keyPressed(_arg1:KeyboardEvent):void{ keysDown[_arg1.keyCode] = true; } private static function keyReleased(_arg1:KeyboardEvent):void{ if ((_arg1.keyCode in keysDown)){ delete keysDown[_arg1.keyCode]; }; } } }//package com.Keyboard
Section 202
//Line (com.markfennell.geom.Line) package com.markfennell.geom { import flash.display.*; import flash.geom.*; import com.foxaweb.utils.*; public class Line { public var p0:Point; public var p1:Point; public function Line(_arg1:Point, _arg2:Point):void{ p0 = _arg1; p1 = _arg2; } public function get length():Number{ var _local1:Number = (p1.x - p0.x); var _local2:Number = (p1.y - p0.y); return (Math.sqrt(((_local1 * _local1) + (_local2 * _local2)))); } public function get angle():Number{ return (Math.atan2((p1.y - p0.y), (p1.x - p0.x))); } public function toString():void{ } public static function createLine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Line{ var _local5:Number = (_arg3 / 2); var _local6:Number = Math.sin(_arg4); var _local7:Number = Math.cos(_arg4); var _local8:Point = new Point((_arg1 + (_local5 * _local7)), (_arg2 + (_local5 * _local6))); var _local9:Point = new Point((_arg1 - (_local5 * _local7)), (_arg2 - (_local5 * _local6))); return (new Line(_local8, _local9)); } public static function drawCircle(_arg1:Point, _arg2:Number, _arg3, _arg4:uint=4294967295):void{ if ((((_arg3 is MovieClip)) || ((_arg3 is Sprite)))){ _arg3.graphics.lineStyle(2, _arg4); _arg3.graphics.drawCircle(_arg1.x, _arg1.y, _arg2); } else { if ((_arg3 is BitmapData)){ Raster.circle(_arg3, _arg1.x, _arg1.y, _arg2, _arg4); }; }; } public static function intersects(_arg1:Line, _arg2:Line):Boolean{ 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; _local3 = (_arg1.p1.x - _arg1.p0.x); _local4 = (_arg1.p1.y - _arg1.p0.y); _local5 = (_arg2.p1.x - _arg2.p0.x); _local6 = (_arg2.p1.y - _arg2.p0.y); _local7 = ((-(_local5) * _local4) + (_local3 * _local6)); _local10 = (_arg1.p0.x - _arg2.p0.x); _local11 = (_arg1.p0.y - _arg2.p0.y); _local8 = (((-(_local4) * _local10) + (_local3 * _local11)) / _local7); _local9 = (((_local5 * _local11) - (_local6 * _local10)) / _local7); if ((((((((_local8 >= 0)) && ((_local8 <= 1)))) && ((_local9 >= 0)))) && ((_local9 <= 1)))){ return (true); }; return (false); } public static function localToLocal(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:Point=null):Point{ var _local4:Point = (_arg3) ? _arg3 : new Point(); _local4 = _arg1.localToGlobal(_local4); _local4 = _arg2.globalToLocal(_local4); return (_local4); } public static function createLineFromPoint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Line{ var _local5:Number = Math.sin(_arg4); var _local6:Number = Math.cos(_arg4); var _local7:Point = new Point(_arg1, _arg2); var _local8:Point = new Point((_arg1 - (_arg3 * _local6)), (_arg2 - (_arg3 * _local5))); return (new Line(_local7, _local8)); } public static function drawRect(_arg1:Rectangle, _arg2, _arg3:uint=0xFF0000):void{ if ((((_arg2 is MovieClip)) || ((_arg2 is Sprite)))){ _arg2.graphics.lineStyle(2, _arg3); _arg2.graphics.moveTo(_arg1.x, _arg1.y); _arg2.graphics.lineTo((_arg1.x + _arg1.width), _arg1.y); _arg2.graphics.lineTo((_arg1.x + _arg1.width), (_arg1.y + _arg1.height)); _arg2.graphics.lineTo(_arg1.x, (_arg1.y + _arg1.height)); _arg2.graphics.lineTo(_arg1.x, _arg1.y); } else { if ((_arg2 is BitmapData)){ Raster.line(_arg2, _arg1.x, _arg1.y, (_arg1.x + _arg1.width), _arg1.y, _arg3); Raster.line(_arg2, (_arg1.x + _arg1.width), _arg1.y, (_arg1.x + _arg1.width), (_arg1.y + _arg1.height), _arg3); Raster.line(_arg2, (_arg1.x + _arg1.width), (_arg1.y + _arg1.height), _arg1.x, (_arg1.y + _arg1.height), _arg3); Raster.line(_arg2, _arg1.x, (_arg1.y + _arg1.height), _arg1.x, _arg1.y, _arg3); }; }; } public static function getPoint(_arg1:Line, _arg2:Number):Point{ var _local3:Number = (_arg1.p0.x + (_arg2 * (_arg1.p1.x - _arg1.p0.x))); var _local4:Number = (_arg1.p0.y + (_arg2 * (_arg1.p1.y - _arg1.p0.y))); return (new Point(_local3, _local4)); } public static function draw(_arg1:Line, _arg2, _arg3:Number=4294967295):void{ if ((((_arg2 is MovieClip)) || ((_arg2 is Sprite)))){ _arg2.graphics.lineStyle(2, _arg3); _arg2.graphics.moveTo(_arg1.p0.x, _arg1.p0.y); _arg2.graphics.lineTo(_arg1.p1.x, _arg1.p1.y); } else { if ((_arg2 is BitmapData)){ Raster.line(_arg2, _arg1.p0.x, _arg1.p0.y, _arg1.p1.x, _arg1.p1.y, _arg3); }; }; } public static function drawPoint(_arg1:Point, _arg2, _arg3:uint=4294901760):void{ if ((((_arg2 is MovieClip)) || ((_arg2 is Sprite)))){ _arg2.graphics.lineStyle(2, _arg3); _arg2.graphics.drawCircle(_arg1.x, _arg1.y, 4); } else { if ((_arg2 is BitmapData)){ Raster.circle(_arg2, _arg1.x, _arg1.y, 4, _arg3); }; }; } } }//package com.markfennell.geom
Section 203
//Polygon (com.markfennell.geom.Polygon) package com.markfennell.geom { import flash.geom.*; public class Polygon { public var edges:Array; public function Polygon(... _args):void{ edges = []; super(); var _local2:int; while (_local2 < _args.length) { if ((_args[_local2] is Line)){ edges.push(_args[_local2]); }; _local2++; }; } public function draw(_arg1, _arg2:int=0xFF0000):void{ var _local3:int; while (_local3 < length) { Line.draw(getEdge(_local3), _arg1, _arg2); _local3++; }; } public function getEdge(_arg1:int):Line{ return (edges[_arg1]); } public function get length():Number{ return (edges.length); } public static function pointInRect(_arg1:Point, _arg2:Rectangle):Boolean{ if ((((((((_arg1.x >= _arg2.x)) && ((_arg1.x <= (_arg2.x + _arg2.width))))) && ((_arg1.y >= _arg2.y)))) && ((_arg1.y <= (_arg2.y + _arg2.height))))){ return (true); }; return (false); } public static function rectToPoly(_arg1:Rectangle):Polygon{ var _local2:Line = new Line(new Point(_arg1.x, _arg1.y), new Point(_arg1.x, (_arg1.y + _arg1.height))); var _local3:Line = new Line(new Point((_arg1.x + _arg1.width), _arg1.y), new Point((_arg1.x + _arg1.width), (_arg1.y + _arg1.height))); var _local4:Line = new Line(new Point(_arg1.x, _arg1.y), new Point((_arg1.x + _arg1.width), _arg1.y)); var _local5:Line = new Line(new Point(_arg1.x, (_arg1.y + _arg1.height)), new Point((_arg1.x + _arg1.width), (_arg1.y + _arg1.height))); var _local6:Polygon = new Polygon(_local2, _local4, _local3, _local5); return (_local6); } public static function isWithin(_arg1:Point, _arg2:Polygon):Boolean{ var _local3:Line = new Line(_arg1, new Point(_arg1.x, 10000000)); var _local4:int; var _local5:int; while (_local5 < _arg2.length) { if (Line.intersects(_arg2.getEdge(_local5), _local3)){ _local4++; }; _local5++; }; return (!(((_local4 % 2) == 0))); } public static function rectInPoly(_arg1:Rectangle, _arg2:Polygon):Boolean{ var _local5:int; if (isWithin(new Point(_arg1.x, _arg1.y), _arg2)){ return (true); }; if (isWithin(new Point((_arg1.x + _arg1.width), _arg1.y), _arg2)){ return (true); }; if (isWithin(new Point((_arg1.x + _arg1.width), (_arg1.y + _arg1.height)), _arg2)){ return (true); }; if (isWithin(new Point(_arg1.x, (_arg1.y + _arg1.height)), _arg2)){ return (true); }; var _local3:Polygon = rectToPoly(_arg1); var _local4:int; while (_local4 < _arg2.length) { _local5 = 0; while (_local5 < _local3.length) { if (Line.intersects(_local3.getEdge(_local5), _arg2.getEdge(_local4))){ return (true); }; _local5++; }; _local4++; }; return (false); } } }//package com.markfennell.geom
Section 204
//SoundPlayer (com.markfennell.sound.SoundPlayer) package com.markfennell.sound { import flash.events.*; import flash.utils.*; import flash.media.*; public class SoundPlayer extends EventDispatcher { protected var m_soundChannel:SoundChannel; public var stoppable:Boolean;// = true protected var m_timeout:int; public var m_soundState:String; protected var m_loops:int; protected var m_volume:Number; protected var m_destroy:Boolean; protected var m_position:Number;// = 0 protected var m_sound:Sound; protected static var soundsDictionary:Dictionary = new Dictionary(); public static var STOPPED:String = "stopped"; public static var PAUSED:String = "paused"; public static var FINISHED:String = "finished"; public static var INITIALIZED:String = "init"; public static var PLAYING:String = "playing"; public static var COMPLETE:String = "complete"; public function SoundPlayer(_arg1:Sound, _arg2:Boolean=true):void{ m_soundChannel = new SoundChannel(); super(); m_sound = _arg1; m_soundState = INITIALIZED; soundsDictionary[this] = this; m_destroy = _arg2; } public function get soundState():String{ return (m_soundState); } public function play(_arg1:Number=1, _arg2:int=1, _arg3:Number=0):void{ var a_volume = _arg1; var a_loops = _arg2; var a_delay = _arg3; try { clearTimeout(m_timeout); if (a_delay != 0){ m_timeout = setTimeout(play, (a_delay * 1000), a_volume, a_loops, 0); return; }; if ((((m_soundState == PLAYING)) || ((m_soundChannel == null)))){ return; }; m_volume = a_volume; m_loops = a_loops; m_soundChannel.stop(); m_soundChannel = m_sound.play(m_position); m_soundChannel.addEventListener(Event.SOUND_COMPLETE, soundComplete); m_soundState = PLAYING; volume = m_volume; } catch(e:Error) { }; } public function set soundState(_arg1:String):void{ m_soundState = _arg1; } public function pause():void{ if (m_soundState == INITIALIZED){ return; }; m_position = m_soundChannel.position; m_soundChannel.stop(); m_soundChannel.removeEventListener(Event.SOUND_COMPLETE, soundComplete); m_soundState = PAUSED; } public function stop():void{ m_position = 0; m_soundState = STOPPED; if (m_soundChannel){ m_soundChannel.stop(); m_soundChannel.removeEventListener(Event.SOUND_COMPLETE, soundComplete); }; } public function get leftPeak():Number{ return (m_soundChannel.leftPeak); } public function set position(_arg1:Number):void{ var _local2 = (m_soundState == PLAYING); pause(); m_position = _arg1; if (_local2){ play(); }; } public function get volume():Number{ return (m_soundChannel.soundTransform.volume); } public function get rightPeak():Number{ return (m_soundChannel.rightPeak); } public function destroy():void{ stop(); clearTimeout(m_timeout); m_sound = null; m_soundChannel = null; soundsDictionary[this] = null; } public function get duration():Number{ return (m_sound.length); } public function get position():Number{ return (m_soundChannel.position); } public function resume():void{ play(m_volume, m_loops); } public function get playing():Boolean{ return ((m_soundState == PLAYING)); } public function set volume(_arg1:Number):void{ if (m_soundChannel == null){ return; }; var _local2:SoundTransform = m_soundChannel.soundTransform; _local2.volume = _arg1; m_soundChannel.soundTransform = _local2; } private function soundComplete(_arg1:Event):void{ m_loops--; m_soundState = FINISHED; if (m_loops == 0){ dispatchEvent(new Event(COMPLETE)); if (m_destroy){ destroy(); }; } else { play(volume, m_loops); }; } public static function stopSounds():void{ var item:SoundPlayer; for each (item in soundsDictionary) { try { if (item.stoppable){ item.destroy(); soundsDictionary[item] = null; }; } catch(e:Error) { }; }; } public static function pauseSounds():void{ var item:SoundPlayer; for each (item in soundsDictionary) { try { if (soundsDictionary[item].stoppable){ soundsDictionary[item].pause(); }; } catch(e:Error) { }; }; } public static function resumeSounds():void{ var item:SoundPlayer; for each (item in soundsDictionary) { try { soundsDictionary[item].resume(); } catch(e:Error) { }; }; } } }//package com.markfennell.sound
Section 205
//Broadcaster (com.markfennell.utils.Broadcaster) package com.markfennell.utils { import flash.events.*; public class Broadcaster { private static var eventDispatcher:EventDispatcher; public static function dispatchEvent(_arg1:Event):void{ if (eventDispatcher){ eventDispatcher.dispatchEvent(_arg1); }; } public static function broadcast(_arg1:Event):void{ trace(("Event Broadcast " + _arg1.type)); dispatchEvent(_arg1); } public static function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ if (eventDispatcher){ eventDispatcher.removeEventListener(_arg1, _arg2, _arg3); }; } public static function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=true):void{ if (!eventDispatcher){ eventDispatcher = new EventDispatcher(); }; eventDispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } } }//package com.markfennell.utils
Section 206
//Command (com.markfennell.utils.Command) package com.markfennell.utils { public class Command { private var method:Function; private var params:Array; private var funcName:String; public function Command(_arg1:Function, _arg2:Array=null, _arg3:String=""){ this.method = _arg1; this.params = ((_arg2)==null) ? [] : _arg2; this.funcName = _arg3; } public function execute(){ return (method.apply(null, params)); } public function get name():String{ return (funcName); } } }//package com.markfennell.utils
Section 207
//ThreadQueue (com.markfennell.utils.ThreadQueue) package com.markfennell.utils { import flash.events.*; import flash.display.*; import flash.utils.*; public class ThreadQueue extends EventDispatcher { private var m_addedAt:Boolean;// = false private var m_threadTime:int;// = 2 private var m_counter:int;// = 0 private var m_lastTime:int; private var m_addedAtArray:Array; private var m_appReference:Sprite; private var m_threadArray:Array; private static var m_instance:ThreadQueue; public function ThreadQueue(){ m_threadArray = []; m_addedAtArray = []; super(); m_appReference = new Sprite(); m_instance = this; } public function start():void{ m_lastTime = getTimer(); trace("ThreadQueue Started, with ", m_threadArray.length, " functions"); m_appReference.addEventListener(Event.ENTER_FRAME, render); } private function render(_arg1:Event):void{ var _local2:Command; m_counter++; if ((m_counter % m_threadTime) == 0){ if (m_threadArray.length > 0){ _local2 = m_threadArray.shift(); if (_local2 != null){ _local2.execute(); }; if (m_threadArray.length == 0){ m_appReference.removeEventListener(Event.ENTER_FRAME, render); dispatchEvent(new Event(Event.COMPLETE)); } else { trace("Function called ", _local2.name, (getTimer() - m_lastTime)); m_lastTime = getTimer(); }; }; } else { return; }; } public function add(_arg1:Command):void{ m_threadArray.push(_arg1); } public function resume():void{ var _local1:int; if (m_addedAtArray.length > 0){ m_addedAtArray.reverse(); _local1 = 0; while (_local1 < m_addedAtArray.length) { m_threadArray.splice(0, 0, m_addedAtArray[_local1]); _local1++; }; m_addedAtArray = []; }; start(); } public function pause():void{ m_appReference.removeEventListener(Event.ENTER_FRAME, render); } public function addAt(_arg1:Command):void{ m_addedAtArray.push(_arg1); } public static function getInstance():ThreadQueue{ return (m_instance); } } }//package com.markfennell.utils
Section 208
//RC4 (com.meychi.ascrypt3.RC4) package com.meychi.ascrypt3 { public class RC4 { private static var mykey:Array = new Array(0xFF); private static var sbox:Array = new Array(0xFF); public function decrypt(_arg1:String, _arg2:String):String{ var _local3:Array = hexToChars(_arg1); var _local4:Array = strToChars(_arg2); var _local5:Array = calculate(_local3, _local4); return (charsToStr(_local5)); } public function encrypt(_arg1:String, _arg2:String):String{ var _local3:Array = strToChars(_arg1); var _local4:Array = strToChars(_arg2); var _local5:Array = calculate(_local3, _local4); return (charsToHex(_local5)); } private static function initialize(_arg1:Array):void{ var _local3:Number; var _local2:Number = 0; var _local4:Number = _arg1.length; var _local5:Number = 0; _local5 = 0; while (_local5 <= 0xFF) { mykey[_local5] = _arg1[(_local5 % _local4)]; sbox[_local5] = _local5; _local5++; }; _local5 = 0; while (_local5 <= 0xFF) { _local2 = (((_local2 + sbox[_local5]) + mykey[_local5]) % 0x0100); _local3 = sbox[_local5]; sbox[_local5] = sbox[_local2]; sbox[_local2] = _local3; _local5++; }; } private static function strToChars(_arg1:String):Array{ var _local2:Array = new Array(); var _local3:Number = 0; while (_local3 < _arg1.length) { _local2.push(_arg1.charCodeAt(_local3)); _local3++; }; return (_local2); } private static function charsToStr(_arg1:Array):String{ var _local2:String = new String(""); var _local3:Number = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode(_arg1[_local3])); _local3++; }; return (_local2); } private static function charsToHex(_arg1:Array):String{ var _local2:String = new String(""); var _local3:Array = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"); var _local4:Number = 0; while (_local4 < _arg1.length) { _local2 = (_local2 + (_local3[(_arg1[_local4] >> 4)] + _local3[(_arg1[_local4] & 15)])); _local4++; }; return (_local2); } private static function calculate(_arg1:Array, _arg2:Array):Array{ var _local6:Number; var _local7:Number; var _local8:Number; var _local10:Number; initialize(_arg2); var _local3:Number = 0; var _local4:Number = 0; var _local5:Array = new Array(); var _local9:Number = 0; while (_local9 < _arg1.length) { _local3 = ((_local3 + 1) % 0x0100); _local4 = ((_local4 + sbox[_local3]) % 0x0100); _local7 = sbox[_local3]; sbox[_local3] = sbox[_local4]; sbox[_local4] = _local7; _local10 = ((sbox[_local3] + sbox[_local4]) % 0x0100); _local6 = sbox[_local10]; _local8 = (_arg1[_local9] ^ _local6); _local5.push(_local8); _local9++; }; return (_local5); } private static function hexToChars(_arg1:String):Array{ var _local2:Array = new Array(); var _local3:Number = ((_arg1.substr(0, 2))=="0x") ? 2 : 0; while (_local3 < _arg1.length) { _local2.push(parseInt(_arg1.substr(_local3, 2), 16)); _local3 = (_local3 + 2); }; return (_local2); } } }//package com.meychi.ascrypt3
Section 209
//TEA (com.meychi.ascrypt3.TEA) package com.meychi.ascrypt3 { public class TEA { public function decrypt(_arg1:String, _arg2:String):String{ var _local9:Number; var _local10:Number; var _local13:Number; var _local3:Array = charsToLongs(hexToChars(_arg1)); var _local4:Array = charsToLongs(strToChars(_arg2)); var _local5:Number = _local3.length; if (_local5 == 0){ return (""); }; var _local6:Number = _local3[(_local5 - 1)]; var _local7:Number = _local3[0]; var _local8:Number = 2654435769; var _local11:Number = Math.floor((6 + (52 / _local5))); var _local12:Number = (_local11 * _local8); while (_local12 != 0) { _local10 = ((_local12 >>> 2) & 3); _local13 = (_local5 - 1); while (_local13 > 0) { _local6 = _local3[(_local13 - 1)]; _local9 = ((((_local6 >>> 5) ^ (_local7 << 2)) + ((_local7 >>> 3) ^ (_local6 << 4))) ^ ((_local12 ^ _local7) + (_local4[((_local13 & 3) ^ _local10)] ^ _local6))); _local7 = (_local3[_local13] = (_local3[_local13] - _local9)); _local13--; }; _local6 = _local3[(_local5 - 1)]; _local9 = ((((_local6 >>> 5) ^ (_local7 << 2)) + ((_local7 >>> 3) ^ (_local6 << 4))) ^ ((_local12 ^ _local7) + (_local4[((_local13 & 3) ^ _local10)] ^ _local6))); _local7 = (_local3[0] = (_local3[0] - _local9)); _local12 = (_local12 - _local8); }; return (charsToStr(longsToChars(_local3))); } public function encrypt(_arg1:String, _arg2:String):String{ var _local9:Number; var _local10:Number; var _local13:Number; var _local3:Array = charsToLongs(strToChars(_arg1)); var _local4:Array = charsToLongs(strToChars(_arg2)); var _local5:Number = _local3.length; if (_local5 == 0){ return (""); }; if (_local5 == 1){ var _temp1 = _local5; _local5 = (_local5 + 1); var _local14 = _temp1; _local3[_local14] = 0; }; var _local6:Number = _local3[(_local5 - 1)]; var _local7:Number = _local3[0]; var _local8:Number = 2654435769; var _local11:Number = Math.floor((6 + (52 / _local5))); var _local12:Number = 0; while (_local11-- > 0) { _local12 = (_local12 + _local8); _local10 = ((_local12 >>> 2) & 3); _local13 = 0; while (_local13 < (_local5 - 1)) { _local7 = _local3[(_local13 + 1)]; _local9 = ((((_local6 >>> 5) ^ (_local7 << 2)) + ((_local7 >>> 3) ^ (_local6 << 4))) ^ ((_local12 ^ _local7) + (_local4[((_local13 & 3) ^ _local10)] ^ _local6))); _local6 = (_local3[_local13] = (_local3[_local13] + _local9)); _local13++; }; _local7 = _local3[0]; _local9 = ((((_local6 >>> 5) ^ (_local7 << 2)) + ((_local7 >>> 3) ^ (_local6 << 4))) ^ ((_local12 ^ _local7) + (_local4[((_local13 & 3) ^ _local10)] ^ _local6))); _local6 = (_local3[(_local5 - 1)] = (_local3[(_local5 - 1)] + _local9)); }; return (charsToHex(longsToChars(_local3))); } private static function strToChars(_arg1:String):Array{ var _local2:Array = new Array(); var _local3:Number = 0; while (_local3 < _arg1.length) { _local2.push(_arg1.charCodeAt(_local3)); _local3++; }; return (_local2); } private static function charsToHex(_arg1:Array):String{ var _local2:String = new String(""); var _local3:Array = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"); var _local4:Number = 0; while (_local4 < _arg1.length) { _local2 = (_local2 + (_local3[(_arg1[_local4] >> 4)] + _local3[(_arg1[_local4] & 15)])); _local4++; }; return (_local2); } private static function hexToChars(_arg1:String):Array{ var _local2:Array = new Array(); var _local3:Number = ((_arg1.substr(0, 2))=="0x") ? 2 : 0; while (_local3 < _arg1.length) { _local2.push(parseInt(_arg1.substr(_local3, 2), 16)); _local3 = (_local3 + 2); }; return (_local2); } private static function charsToStr(_arg1:Array):String{ var _local2:String = new String(""); var _local3:Number = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode(_arg1[_local3])); _local3++; }; return (_local2); } private static function longsToChars(_arg1:Array):Array{ var _local2:Array = new Array(); var _local3:Number = 0; while (_local3 < _arg1.length) { _local2.push((_arg1[_local3] & 0xFF), ((_arg1[_local3] >>> 8) & 0xFF), ((_arg1[_local3] >>> 16) & 0xFF), ((_arg1[_local3] >>> 24) & 0xFF)); _local3++; }; return (_local2); } private static function charsToLongs(_arg1:Array):Array{ var _local2:Array = new Array(Math.ceil((_arg1.length / 4))); var _local3:Number = 0; while (_local3 < _local2.length) { _local2[_local3] = (((_arg1[(_local3 * 4)] + (_arg1[((_local3 * 4) + 1)] << 8)) + (_arg1[((_local3 * 4) + 2)] << 16)) + (_arg1[((_local3 * 4) + 3)] << 24)); _local3++; }; return (_local2); } } }//package com.meychi.ascrypt3
Section 210
//Controls (controls.Controls) package controls { import flash.events.*; import flash.display.*; import sound.*; import org.casalib.display.*; import assets.*; import flash.net.*; public class Controls extends CasaMovieClip { private var m_musicToggle:Boolean; private var m_btnPause:SimpleButton; private var m_pauseToggle:Boolean;// = false private var m_btnBlastone:MovieClip; private var m_btnSound:SimpleButton; private var m_ui:MovieClip; private var m_soundToggle:Boolean; private var m_btnQuit:SimpleButton; private var m_btnMusic:SimpleButton; public function Controls(){ m_ui = new MovieClipControls(); m_ui.x = 5; m_ui.y = 490; m_ui.focusRect = false; addChild(m_ui); m_btnMusic = m_ui.btnMusic; m_btnQuit = m_ui.btnExit; m_btnSound = m_ui.btnSound; m_btnPause = m_ui.btnPause; m_btnBlastone = m_ui.btnFOG; m_musicToggle = SoundManager.getInstance().musicEnabled; m_soundToggle = SoundManager.getInstance().soundsEnabled; soundDisplay(); musicDisplay(); m_btnMusic.addEventListener(MouseEvent.CLICK, toggleMusic); m_btnQuit.addEventListener(MouseEvent.CLICK, quit); m_btnSound.addEventListener(MouseEvent.CLICK, toggleSound); m_btnPause.addEventListener(MouseEvent.CLICK, togglePause); m_btnBlastone.addEventListener(MouseEvent.CLICK, url); m_btnBlastone.buttonMode = true; m_btnBlastone.useHandCursor; } override public function destroy():void{ m_btnMusic.removeEventListener(MouseEvent.CLICK, toggleMusic); m_btnQuit.removeEventListener(MouseEvent.CLICK, quit); m_btnSound.removeEventListener(MouseEvent.CLICK, toggleSound); m_btnPause.removeEventListener(MouseEvent.CLICK, togglePause); removeChild(m_ui); m_ui = null; super.destroy(); } private function togglePause(_arg1:Event=null):void{ if (!m_pauseToggle){ m_pauseToggle = true; m_ui.textPause.text = "RESUME"; Racers.getInstance().doPause(); } else { m_pauseToggle = false; m_ui.textPause.text = "PAUSE"; Racers.getInstance().doResume(); }; } private function quit(_arg1:Event):void{ trace("Qui Clicked"); Credits.STATE = Credits.STATE_DEFAULT; GameManager.getInstance().setState("Credits"); } private function toggleSound(_arg1:Event=null):void{ trace("CLICK"); m_soundToggle = !(m_soundToggle); if (!m_soundToggle){ SoundManager.getInstance().soundsEnabled = false; SoundManager.getInstance().stopSounds(); Racers.getInstance().stopEngineSounds(); } else { SoundManager.getInstance().soundsEnabled = true; }; soundDisplay(); } private function musicDisplay():void{ if (!SoundManager.getInstance().musicEnabled){ m_ui.textMusic.text = "MUSIC OFF"; } else { m_ui.textMusic.text = "MUSIC ON"; }; } private function url(_arg1:Event):void{ var _local2:URLRequest = new URLRequest(Constants.URL_MORE_GAMES); navigateToURL(_local2, "_blank"); } private function toggleMusic(_arg1:Event=null):void{ if (SoundManager.getInstance().musicEnabled){ SoundManager.getInstance().musicEnabled = false; m_ui.textMusic.text = "MUSIC OFF"; SoundManager.getInstance().stop_music(); } else { SoundManager.getInstance().musicEnabled = true; m_ui.textMusic.text = "MUSIC ON"; SoundManager.getInstance().resume_music(); }; } private function soundDisplay():void{ if (!m_soundToggle){ m_ui.textSound.text = "SOUND OFF"; } else { m_ui.textSound.text = "SOUND ON"; }; } } }//package controls
Section 211
//MusicControls (controls.MusicControls) package controls { import flash.events.*; import flash.display.*; import sound.*; public class MusicControls { private var m_button_mc:MovieClip; public function MusicControls(_arg1:MovieClip){ m_button_mc = _arg1; if (SoundManager.getInstance().musicEnabled){ m_button_mc.label.text = "MUSIC ON"; } else { m_button_mc.label.text = "MUSIC OFF"; }; m_button_mc.btn.addEventListener(MouseEvent.CLICK, toggleMusic); } private function toggleMusic(_arg1:Event=null):void{ if (SoundManager.getInstance().musicEnabled){ SoundManager.getInstance().musicEnabled = false; m_button_mc.label.text = "MUSIC OFF"; SoundManager.getInstance().stop_music(); } else { SoundManager.getInstance().musicEnabled = true; m_button_mc.label.text = "MUSIC ON"; SoundManager.getInstance().resume_music(); }; } public function destroy():void{ m_button_mc.btn.removeEventListener(MouseEvent.CLICK, toggleMusic); } } }//package controls
Section 212
//SoundControls (controls.SoundControls) package controls { import flash.events.*; import flash.display.*; import sound.*; public class SoundControls { private var m_button_mc:MovieClip; public function SoundControls(_arg1:MovieClip){ m_button_mc = _arg1; if (SoundManager.getInstance().soundsEnabled){ m_button_mc.label.text = "SOUND FX ON"; } else { m_button_mc.label.text = "SOUND FX OFF"; }; m_button_mc.btn.addEventListener(MouseEvent.CLICK, toggleSound); } public function destroy():void{ m_button_mc.btn.removeEventListener(MouseEvent.CLICK, toggleSound); } private function toggleSound(_arg1:Event=null):void{ if (SoundManager.getInstance().soundsEnabled){ SoundManager.getInstance().soundsEnabled = false; m_button_mc.label.text = "SOUND FX OFF"; SoundManager.getInstance().stopSounds(); } else { SoundManager.getInstance().soundsEnabled = true; m_button_mc.label.text = "SOUND FX ON"; }; } } }//package controls
Section 213
//Bitmap3D (five3D.display.Bitmap3D) package five3D.display { import flash.display.*; import flash.geom.*; import five3D.geom.*; import five3D.utils.*; public class Bitmap3D extends Shape { private var __height:int; private var __renderbitmap:Boolean;// = true private var __flatshading:Boolean;// = false private var __bitmapdata:BitmapData; private var __matrices:Array; private var __drawing:Boolean;// = false private var __renderprojection:Boolean;// = true private var __scalex:Number;// = 1 private var __scaley:Number;// = 1 private var __scalez:Number;// = 1 private var __culling:Boolean;// = false private var __flatshaded:Boolean;// = false private var __rendershading:Boolean;// = false private var __render:Boolean;// = true private var __rendertessellation:Boolean;// = true private var __triangles:Array; private var __visible:Boolean;// = true private var __smoothing:Boolean; private var __x:Number;// = 0 private var __y:Number;// = 0 private var __z:Number;// = 0 private var __matrix:Matrix3D; private var __subdivisionshorizontal:int; var __concatenatedmatrix:Matrix3D; private var __subdivisionsvertical:int; private var __points:Array; private var __singlesided:Boolean;// = false private var __normal:Point3D; private var __rotationx:Number;// = 0 private var __rotationy:Number;// = 0 private var __rotationz:Number;// = 0 private var __width:int; private var __renderculling:Boolean;// = false public function Bitmap3D(_arg1:BitmapData=null, _arg2:Boolean=true, _arg3:int=3, _arg4:int=3){ __matrix = new Matrix3D(); __bitmapdata = _arg1; __smoothing = _arg2; __subdivisionshorizontal = _arg3; __subdivisionsvertical = _arg4; } private function getCulling(_arg1:Number):void{ var _local2:Point3D = __concatenatedmatrix.transformPoint(new Point3D(0, 0, 0)); var _local3:Point3D = __concatenatedmatrix.transformPoint(new Point3D(0, 0, 1)); __normal = _local3.subtract(_local2); var _local4:Point3D = new Point3D(_local2.x, _local2.y, (_local2.z + _arg1)); __culling = (__normal.dot(_local4) < 0); } public function set singleSided(_arg1:Boolean):void{ __singlesided = _arg1; if (__singlesided){ __renderculling = true; } else { __renderculling = false; __culling = false; }; } function askRendering():void{ __render = true; if (__singlesided){ __renderculling = true; }; __renderprojection = true; __renderbitmap = true; if (__flatshaded){ __rendershading = true; }; } override public function get scale9Grid():Rectangle{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } function askRenderingShading():void{ if (__flatshaded){ __rendershading = true; }; } override public function get height():Number{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } override public function set scale9Grid(_arg1:Rectangle):void{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } private function setFlatShading(_arg1:Scene3D):void{ var _local5:Point3D; var _local6:Point3D; if (__normal == null){ _local5 = __concatenatedmatrix.transformPoint(new Point3D(0, 0, 0)); _local6 = __concatenatedmatrix.transformPoint(new Point3D(0, 0, 1)); __normal = _local6.subtract(_local5); }; __normal.normalize(1); var _local2:Number = __normal.dot(_arg1.ambientLightVectorNormalized); var _local3:Number = (_local2 * _arg1.ambientLightIntensity); var _local4:ColorTransform = new ColorTransform(); ColorUtilities.setBrightness(_local4, _local3); _local4.alphaMultiplier = alpha; transform.colorTransform = _local4; __flatshading = true; } public function set rotationY(_arg1:Number):void{ __rotationy = formatRotation(_arg1); askRendering(); } public function set rotationZ(_arg1:Number):void{ __rotationz = formatRotation(_arg1); askRendering(); } public function set rotationX(_arg1:Number):void{ __rotationx = formatRotation(_arg1); askRendering(); } private function getTessellationPoints():void{ var _local3:Number; var _local4:Number; var _local6:int; __points = []; var _local1:Number = (__width / __subdivisionshorizontal); var _local2:Number = (__height / __subdivisionsvertical); var _local5:int; while (_local5 < (__subdivisionsvertical + 1)) { _local6 = 0; while (_local6 < (__subdivisionshorizontal + 1)) { _local3 = (_local6 * _local1); _local4 = (_local5 * _local2); __points.push({x:_local3, y:_local4, xp:_local3, yp:_local4}); _local6++; }; _local5++; }; } private function getProjection(_arg1:Number):void{ projectPoints(_arg1); getProjectionMatrices(); } override public function get scrollRect():Rectangle{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } override public function get mouseX():Number{ var _local1:Scene3D = getScene(); if (_local1 == null){ throw (new Error("Cannot access this property without having the class connected to the Scene3D class through the display list hierarchy.")); }; if (__concatenatedmatrix == null){ throw (new Error("Cannot access this property before the class has been rendered once.")); }; return (__concatenatedmatrix.getInverseCoordinates(_local1.mouseX, _local1.mouseY, _local1.viewDistance).x); } override public function get scaleX():Number{ return (__scalex); } override public function get scaleY():Number{ return (__scaley); } override public function get mouseY():Number{ var _local1:Scene3D = getScene(); if (_local1 == null){ throw (new Error("Cannot access this property without having the class connected to the Scene3D class through the display list hierarchy.")); }; if (__concatenatedmatrix == null){ throw (new Error("Cannot access this property before the class has been rendered once.")); }; return (__concatenatedmatrix.getInverseCoordinates(_local1.mouseX, _local1.mouseY, _local1.viewDistance).y); } private function projectPoints(_arg1:Number):void{ var _local3:Object; var _local4:Point3D; var _local2:int = __points.length; while (--_local2 > -1) { _local3 = __points[_local2]; _local4 = __concatenatedmatrix.transformPoint(new Point3D(_local3.x, _local3.y)); __concatenatedmatrix.transformPoint(new Point3D(_local3.x, _local3.y)).project(_local4.getPerspective(_arg1)); _local3.xp = _local4.x; _local3.yp = _local4.y; }; } override public function set height(_arg1:Number):void{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } public function get scaleZ():Number{ return (__scalez); } public function get mouseXY():Point{ var _local1:Scene3D = getScene(); if (_local1 == null){ throw (new Error("Cannot access this property without having the class connected to the Scene3D class through the display list hierarchy.")); }; if (__concatenatedmatrix == null){ throw (new Error("Cannot access this property before the class has been rendered once.")); }; return (__concatenatedmatrix.getInverseCoordinates(_local1.mouseX, _local1.mouseY, _local1.viewDistance)); } public function set flatShaded(_arg1:Boolean):void{ __flatshaded = _arg1; if (__flatshaded){ __rendershading = true; } else { __rendershading = false; if (__flatshading){ removeFlatShading(); }; }; } public function set subdivisionsVertical(_arg1:int):void{ __subdivisionsvertical = _arg1; __rendertessellation = true; __renderprojection = true; __renderbitmap = true; } override public function get y():Number{ return (__y); } public function get z():Number{ return (__z); } public function get smoothing():Boolean{ return (__smoothing); } private function getTessellation():void{ __width = __bitmapdata.width; __height = __bitmapdata.height; getTessellationPoints(); getTessellationTriangles(); } override public function get x():Number{ return (__x); } public function get bitmapData():BitmapData{ return (__bitmapdata); } override public function get visible():Boolean{ return (__visible); } public function get singleSided():Boolean{ return (__singlesided); } override public function localToGlobal(_arg1:Point):Point{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } override public function set width(_arg1:Number):void{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } override public function get rotation():Number{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } private function drawBitmap():void{ var _local2:Array; var _local3:Object; var _local4:Object; var _local5:Object; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local1:int = __triangles.length; super.graphics.clear(); while (--_local1 > -1) { _local2 = __triangles[_local1]; _local3 = _local2[0]; _local4 = _local2[1]; _local5 = _local2[2]; _local6 = _local3.xp; _local7 = _local3.yp; _local8 = _local4.xp; _local9 = _local4.yp; _local10 = _local5.xp; _local11 = _local5.yp; super.graphics.beginBitmapFill(__bitmapdata, __matrices[_local1], false, __smoothing); super.graphics.moveTo(_local6, _local7); super.graphics.lineTo(_local8, _local9); super.graphics.lineTo(_local10, _local11); super.graphics.lineTo(_local6, _local7); super.graphics.endFill(); }; __drawing = true; } function render(_arg1:Scene3D):void{ if (((!(__visible)) && (super.visible))){ super.visible = false; } else { if (__visible){ if (__render){ getMatrices(); __render = false; }; if (__renderculling){ getCulling(_arg1.viewDistance); __renderculling = false; }; if (__culling){ if (super.visible){ super.visible = false; }; } else { if (!super.visible){ super.visible = true; }; if (__bitmapdata != null){ if (__rendertessellation){ getTessellation(); __rendertessellation = false; }; if (__renderprojection){ getProjection(_arg1.viewDistance); __renderprojection = false; }; if (__renderbitmap){ drawBitmap(); __renderbitmap = false; }; if (__rendershading){ setFlatShading(_arg1); __rendershading = false; }; }; }; }; }; } public function get rotationY():Number{ return (__rotationy); } override public function set scrollRect(_arg1:Rectangle):void{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } override public function set scaleX(_arg1:Number):void{ __scalex = _arg1; askRendering(); } override public function set scaleY(_arg1:Number):void{ __scaley = _arg1; askRendering(); } public function get rotationX():Number{ return (__rotationx); } public function get rotationZ():Number{ return (__rotationz); } override public function get graphics():Graphics{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } public function set scaleZ(_arg1:Number):void{ __scalez = _arg1; askRendering(); } public function get flatShaded():Boolean{ return (__flatshaded); } override public function globalToLocal(_arg1:Point):Point{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } private function getTessellationTriangles():void{ var _local2:int; __triangles = []; var _local1:int; while (_local1 < __subdivisionsvertical) { _local2 = 0; while (_local2 < __subdivisionshorizontal) { __triangles.push([__points[(_local2 + (_local1 * (__subdivisionshorizontal + 1)))], __points[((_local2 + (_local1 * (__subdivisionshorizontal + 1))) + 1)], __points[(_local2 + ((_local1 + 1) * (__subdivisionshorizontal + 1)))]]); __triangles.push([__points[((_local2 + ((_local1 + 1) * (__subdivisionshorizontal + 1))) + 1)], __points[(_local2 + ((_local1 + 1) * (__subdivisionshorizontal + 1)))], __points[((_local2 + (_local1 * (__subdivisionshorizontal + 1))) + 1)]]); _local2++; }; _local1++; }; } public function get subdivisionsVertical():int{ return (__subdivisionsvertical); } private function getProjectionMatrices():void{ var _local2:Array; var _local3:Object; var _local4:Object; var _local5:Object; 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; __matrices = []; var _local1:int = __triangles.length; var _local18:* = new Matrix(); var _local19:* = new Matrix(); while (--_local1 > -1) { _local2 = __triangles[_local1]; _local3 = _local2[0]; _local4 = _local2[1]; _local5 = _local2[2]; _local6 = _local3.x; _local7 = _local3.y; _local8 = _local4.x; _local9 = _local4.y; _local10 = _local5.x; _local11 = _local5.y; _local12 = _local3.xp; _local13 = _local3.yp; _local14 = _local4.xp; _local15 = _local4.yp; _local16 = _local5.xp; _local17 = _local5.yp; _local18.a = (_local8 - _local6); _local18.b = (_local9 - _local7); _local18.c = (_local10 - _local6); _local18.d = (_local11 - _local7); _local18.tx = _local6; _local18.ty = _local7; _local19.a = (_local14 - _local12); _local19.b = (_local15 - _local13); _local19.c = (_local16 - _local12); _local19.d = (_local17 - _local13); _local19.tx = _local12; _local19.ty = _local13; _local18.invert(); _local18.concat(_local19); __matrices.unshift(_local18.clone()); }; } override public function get width():Number{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } private function removeFlatShading():void{ transform.colorTransform = new ColorTransform(); __flatshading = false; } private function getMatrices():void{ __matrix.createBox(__scalex, __scaley, __scalez, degreesToRadians(__rotationx), degreesToRadians(__rotationy), degreesToRadians(__rotationz), __x, __y, __z); if ((parent is Scene3D)){ __concatenatedmatrix = __matrix.clone(); } else { __concatenatedmatrix = Sprite3D(parent).__concatenatedmatrix.clone(); __concatenatedmatrix.concat(__matrix); }; __normal = null; } private function removeBitmap():void{ super.graphics.clear(); __drawing = false; } public function set subdivisionsHorizontal(_arg1:int):void{ __subdivisionshorizontal = _arg1; __rendertessellation = true; __renderprojection = true; __renderbitmap = true; } private function getScene():Scene3D{ var _local1:DisplayObjectContainer = DisplayObjectContainer(this); while (_local1) { if ((_local1 is Scene3D)){ return (Scene3D(_local1)); }; _local1 = _local1.parent; }; return (null); } override public function set visible(_arg1:Boolean):void{ __visible = _arg1; } public function get subdivisionsHorizontal():int{ return (__subdivisionshorizontal); } public function set smoothing(_arg1:Boolean):void{ __smoothing = _arg1; __renderbitmap = true; } override public function set x(_arg1:Number):void{ __x = _arg1; askRendering(); } override public function set y(_arg1:Number):void{ __y = _arg1; askRendering(); } public function set z(_arg1:Number):void{ __z = _arg1; askRendering(); } public function set bitmapData(_arg1:BitmapData):void{ __bitmapdata = _arg1; if (__bitmapdata == null){ if (__drawing){ removeBitmap(); }; } else { if (((!((__bitmapdata.width == __width))) || (!((__bitmapdata.height == __height))))){ __rendertessellation = true; __renderprojection = true; }; }; __renderbitmap = true; } override public function set rotation(_arg1:Number):void{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } private static function degreesToRadians(_arg1:Number):Number{ return (((_arg1 * Math.PI) / 180)); } private static function formatRotation(_arg1:Number):Number{ var _local2:Number = (_arg1 % 360); if (_local2 < -180){ return ((_local2 + 360)); }; if (_local2 > 180){ return ((_local2 - 360)); }; return (_local2); } } }//package five3D.display
Section 214
//Graphics3D (five3D.display.Graphics3D) package five3D.display { import flash.display.*; import five3D.geom.*; public final class Graphics3D { private var __motif:Array; private var __render:Boolean;// = false public function Graphics3D(){ __motif = []; } public function moveToSpace(_arg1:Number, _arg2:Number, _arg3:Number):void{ __motif.push(["M", [_arg1, _arg2, _arg3]]); askRendering(); } function askRendering():void{ __render = true; } public function moveTo(_arg1:Number, _arg2:Number):void{ __motif.push(["M", [_arg1, _arg2]]); askRendering(); } public function endFill():void{ __motif.push(["E"]); askRendering(); } public function lineTo(_arg1:Number, _arg2:Number):void{ __motif.push(["L", [_arg1, _arg2]]); askRendering(); } public function drawRect(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{ __motif.push(["M", [_arg1, _arg2]], ["L", [(_arg1 + _arg3), _arg2]], ["L", [(_arg1 + _arg3), (_arg2 + _arg4)]], ["L", [_arg1, (_arg2 + _arg4)]], ["L", [_arg1, _arg2]]); askRendering(); } public function curveTo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{ __motif.push(["C", [_arg1, _arg2, _arg3, _arg4]]); askRendering(); } private function draw(_arg1:Graphics, _arg2:Matrix3D, _arg3:Number):void{ var _local4:int; var _local5:Point3D; var _local6:Point3D; var _local7:Point3D; var _local8:Point3D; _arg1.clear(); _local4 = 0; while (_local4 < __motif.length) { switch (__motif[_local4][0]){ case "B": _arg1.beginFill(__motif[_local4][1][0], __motif[_local4][1][1]); break; case "S": _arg1.lineStyle(__motif[_local4][1][0], __motif[_local4][1][1], __motif[_local4][1][2], __motif[_local4][1][3], __motif[_local4][1][4], __motif[_local4][1][5], __motif[_local4][1][6], __motif[_local4][1][7]); break; case "M": _local5 = ((__motif[_local4][1].length)==2) ? new Point3D(__motif[_local4][1][0], __motif[_local4][1][1]) : new Point3D(__motif[_local4][1][0], __motif[_local4][1][1], __motif[_local4][1][2]); var _temp1 = _arg2.transformPoint(_local5); _local5 = _arg2.transformPoint(_local5); _temp1.project(_local5.getPerspective(_arg3)); _arg1.moveTo(_local5.x, _local5.y); break; case "L": _local6 = ((__motif[_local4][1].length)==2) ? new Point3D(__motif[_local4][1][0], __motif[_local4][1][1]) : new Point3D(__motif[_local4][1][0], __motif[_local4][1][1], __motif[_local4][1][2]); var _temp2 = _arg2.transformPoint(_local6); _local6 = _arg2.transformPoint(_local6); _temp2.project(_local6.getPerspective(_arg3)); _arg1.lineTo(_local6.x, _local6.y); break; case "C": if (__motif[_local4][1].length == 4){ _local7 = new Point3D(__motif[_local4][1][0], __motif[_local4][1][1]); _local8 = new Point3D(__motif[_local4][1][2], __motif[_local4][1][3]); } else { _local7 = new Point3D(__motif[_local4][1][0], __motif[_local4][1][1], __motif[_local4][1][2]); _local8 = new Point3D(__motif[_local4][1][3], __motif[_local4][1][4], __motif[_local4][1][5]); }; _local7 = _arg2.transformPoint(_local7); _local8 = _arg2.transformPoint(_local8); _local7.project(_local7.getPerspective(_arg3)); _local8.project(_local8.getPerspective(_arg3)); _arg1.curveTo(_local7.x, _local7.y, _local8.x, _local8.y); break; case "E": _arg1.endFill(); break; }; _local4++; }; } public function clear():void{ __motif = []; askRendering(); } public function drawRoundRect(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):void{ var _local7:Number = (_arg1 + _arg3); var _local8:Number = (_arg2 + _arg4); var _local9:Number = Math.min((_arg5 / 2), (_arg3 / 2)); var _local10:Number = Math.min((_arg6 / 2), (_arg4 / 2)); var _local11:Number = (_local9 * (Math.SQRT2 - 1)); var _local12:Number = (_local9 / Math.SQRT2); var _local13:Number = (_local10 * (Math.SQRT2 - 1)); var _local14:Number = (_local10 / Math.SQRT2); __motif.push(["M", [(_arg1 + _local9), _arg2]], ["L", [(_local7 - _local9), _arg2]], ["C", [((_local7 - _local9) + _local11), _arg2, ((_local7 - _local9) + _local12), ((_arg2 + _local10) - _local14)]], ["C", [_local7, ((_arg2 + _local10) - _local13), _local7, (_arg2 + _local10)]], ["L", [_local7, (_local8 - _local10)]], ["C", [_local7, ((_local8 - _local10) + _local13), ((_local7 - _local9) + _local12), ((_local8 - _local10) + _local14)]], ["C", [((_local7 - _local9) + _local11), _local8, (_local7 - _local9), _local8]], ["L", [(_arg1 + _local9), _local8]], ["C", [((_arg1 + _local9) - _local11), _local8, ((_arg1 + _local9) - _local12), ((_local8 - _local10) + _local14)]], ["C", [_arg1, ((_local8 - _local10) + _local13), _arg1, (_local8 - _local10)]], ["L", [_arg1, (_arg2 + _local10)]], ["C", [_arg1, ((_arg2 + _local10) - _local13), ((_arg1 + _local9) - _local12), ((_arg2 + _local10) - _local14)]], ["C", [((_arg1 + _local9) - _local11), _arg2, (_arg1 + _local9), _arg2]]); askRendering(); } public function drawCircle(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:Number = (_arg3 * (Math.SQRT2 - 1)); var _local5:Number = (_arg3 / Math.SQRT2); __motif.push(["M", [_arg1, (_arg2 - _arg3)]], ["C", [(_arg1 + _local4), (_arg2 - _arg3), (_arg1 + _local5), (_arg2 - _local5)]], ["C", [(_arg1 + _arg3), (_arg2 - _local4), (_arg1 + _arg3), _arg2]], ["C", [(_arg1 + _arg3), (_arg2 + _local4), (_arg1 + _local5), (_arg2 + _local5)]], ["C", [(_arg1 + _local4), (_arg2 + _arg3), _arg1, (_arg2 + _arg3)]], ["C", [(_arg1 - _local4), (_arg2 + _arg3), (_arg1 - _local5), (_arg2 + _local5)]], ["C", [(_arg1 - _arg3), (_arg2 + _local4), (_arg1 - _arg3), _arg2]], ["C", [(_arg1 - _arg3), (_arg2 - _local4), (_arg1 - _local5), (_arg2 - _local5)]], ["C", [(_arg1 - _local4), (_arg2 - _arg3), _arg1, (_arg2 - _arg3)]]); askRendering(); } public function addMotif(_arg1:Array):void{ __motif = __motif.concat(_arg1); askRendering(); } public function lineToSpace(_arg1:Number, _arg2:Number, _arg3:Number):void{ __motif.push(["L", [_arg1, _arg2, _arg3]]); askRendering(); } function render(_arg1:Graphics, _arg2:Matrix3D, _arg3:Number):void{ if (__render){ draw(_arg1, _arg2, _arg3); __render = false; }; } public function drawEllipse(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{ var _local5:Number = (_arg1 + (_arg3 / 2)); var _local6:Number = (_arg2 + (_arg4 / 2)); var _local7:Number = (_arg3 / 2); var _local8:Number = (_arg4 / 2); var _local9:Number = (_local7 * (Math.SQRT2 - 1)); var _local10:Number = (_local7 / Math.SQRT2); var _local11:Number = (_local8 * (Math.SQRT2 - 1)); var _local12:Number = (_local8 / Math.SQRT2); __motif.push(["M", [_local5, (_local6 - _local8)]], ["C", [(_local5 + _local9), (_local6 - _local8), (_local5 + _local10), (_local6 - _local12)]], ["C", [(_local5 + _local7), (_local6 - _local11), (_local5 + _local7), _local6]], ["C", [(_local5 + _local7), (_local6 + _local11), (_local5 + _local10), (_local6 + _local12)]], ["C", [(_local5 + _local9), (_local6 + _local8), _local5, (_local6 + _local8)]], ["C", [(_local5 - _local9), (_local6 + _local8), (_local5 - _local10), (_local6 + _local12)]], ["C", [(_local5 - _local7), (_local6 + _local11), (_local5 - _local7), _local6]], ["C", [(_local5 - _local7), (_local6 - _local11), (_local5 - _local10), (_local6 - _local12)]], ["C", [(_local5 - _local9), (_local6 - _local8), _local5, (_local6 - _local8)]]); askRendering(); } public function beginFill(_arg1:uint, _arg2:Number=1):void{ __motif.push(["B", [_arg1, _arg2]]); askRendering(); } public function curveToSpace(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):void{ __motif.push(["C", [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6]]); askRendering(); } public function lineStyle(_arg1:Number, _arg2:uint=0, _arg3:Number=1, _arg4:Boolean=false, _arg5:String="normal", _arg6:String=null, _arg7:String=null, _arg8:Number=3):void{ __motif.push(["S", [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8]]); askRendering(); } public static function clone(_arg1:Array):Array{ var _local2:Array = []; var _local3:int; while (_local3 < _arg1.length) { switch (_arg1[_local3][0]){ case "B": _local2.push(["B", [_arg1[_local3][1][0], _arg1[_local3][1][1]]]); break; case "S": _local2.push(["S", [_arg1[_local3][1][0], _arg1[_local3][1][1], _arg1[_local3][1][2], _arg1[_local3][1][3], _arg1[_local3][1][4], _arg1[_local3][1][5], _arg1[_local3][1][6], _arg1[_local3][1][7]]]); break; case "M": _local2.push(["M", ((_arg1[_local3][1].length)==2) ? [_arg1[_local3][1][0], _arg1[_local3][1][1]] : [_arg1[_local3][1][0], _arg1[_local3][1][1], _arg1[_local3][1][2]]]); break; case "L": _local2.push(["L", ((_arg1[_local3][1].length)==2) ? [_arg1[_local3][1][0], _arg1[_local3][1][1]] : [_arg1[_local3][1][0], _arg1[_local3][1][1], _arg1[_local3][1][2]]]); break; case "C": _local2.push(["C", ((_arg1[_local3][1].length)==4) ? [_arg1[_local3][1][0], _arg1[_local3][1][1], _arg1[_local3][1][2], _arg1[_local3][1][3]] : [_arg1[_local3][1][0], _arg1[_local3][1][1], _arg1[_local3][1][2], _arg1[_local3][1][3], _arg1[_local3][1][4], _arg1[_local3][1][5]]]); break; case "E": _local2.push(["E"]); break; }; _local3++; }; return (_local2); } } }//package five3D.display
Section 215
//Scene3D (five3D.display.Scene3D) package five3D.display { import flash.events.*; import flash.display.*; import five3D.geom.*; public class Scene3D extends Sprite { private var __ambientlightvector:Point3D; private var __ambientlightintensity:Number;// = 0.5 private var __ambientlightvectornormalized:Point3D; private var __viewdistance:Number;// = 1000 public function Scene3D(){ __ambientlightvector = new Point3D(1, 1, 1); __ambientlightvectornormalized = new Point3D(0.577350269189626, 0.577350269189626, 0.577350269189626); initializeRendering(); } private function enterFrameHandler(_arg1:Event):void{ render(); } public function dispose():void{ desinitializeRendering(); } public function get ambientLightVector():Point3D{ return (__ambientlightvector); } public function get viewDistance():Number{ return (__viewdistance); } private function askRendering():void{ var _local1:int; while (_local1 < numChildren) { getChildAtCasted(_local1).askRendering(); _local1++; }; } private function desinitializeRendering():void{ removeEventListener(Event.ENTER_FRAME, enterFrameHandler); } public function get ambientLightIntensity():Number{ return (__ambientlightintensity); } public function set ambientLightVector(_arg1:Point3D):void{ __ambientlightvector = _arg1; __ambientlightvectornormalized = __ambientlightvector.clone(); __ambientlightvectornormalized.normalize(1); askRenderingShading(); } public function render():void{ var _local1:int; while (_local1 < numChildren) { getChildAtCasted(_local1).render(this); _local1++; }; } private function askRenderingShading():void{ var _local1:int; while (_local1 < numChildren) { getChildAtCasted(_local1).askRenderingShading(); _local1++; }; } public function set ambientLightIntensity(_arg1:Number):void{ __ambientlightintensity = _arg1; askRenderingShading(); } public function set viewDistance(_arg1:Number):void{ __viewdistance = _arg1; askRendering(); } private function initializeRendering():void{ addEventListener(Event.ENTER_FRAME, enterFrameHandler); } private function getChildAtCasted(_arg1:int){ if ((getChildAt(_arg1) is Sprite3D)){ return (Sprite3D(getChildAt(_arg1))); }; if ((getChildAt(_arg1) is Shape3D)){ return (Shape3D(getChildAt(_arg1))); }; if ((getChildAt(_arg1) is Bitmap3D)){ return (Bitmap3D(getChildAt(_arg1))); }; if ((getChildAt(_arg1) is Sprite2D)){ return (Sprite2D(getChildAt(_arg1))); }; } public function get ambientLightVectorNormalized():Point3D{ return (__ambientlightvectornormalized); } } }//package five3D.display
Section 216
//Shape3D (five3D.display.Shape3D) package five3D.display { import flash.display.*; import flash.geom.*; import five3D.geom.*; import five3D.utils.*; public class Shape3D extends Shape { private var __visible:Boolean;// = true private var __x:Number;// = 0 private var __y:Number;// = 0 private var __z:Number;// = 0 private var __matrix:Matrix3D; private var __flatshading:Boolean;// = false var __concatenatedmatrix:Matrix3D; private var __singlesided:Boolean;// = false private var __normal:Point3D; private var __scalex:Number;// = 1 private var __scaley:Number;// = 1 private var __scalez:Number;// = 1 private var __culling:Boolean;// = false private var __rotationx:Number;// = 0 private var __rotationy:Number;// = 0 private var __rotationz:Number;// = 0 private var __graphics:Graphics3D; private var __render:Boolean;// = true private var __flatshaded:Boolean;// = false private var __renderculling:Boolean;// = false private var __rendershading:Boolean;// = false public function Shape3D(){ __matrix = new Matrix3D(); __graphics = new Graphics3D(); } override public function set y(_arg1:Number):void{ __y = _arg1; askRendering(); } public function set z(_arg1:Number):void{ __z = _arg1; askRendering(); } public function get singleSided():Boolean{ return (__singlesided); } override public function set height(_arg1:Number):void{ throw (new Error("The Shape3D class does not implement this property or method.")); } public function get z():Number{ return (__z); } override public function get graphics():Graphics{ throw (new Error("The Shape3D class does not implement this property or method (use \"graphics3D\" instead).")); } override public function set width(_arg1:Number):void{ throw (new Error("The Shape3D class does not implement this property or method.")); } override public function globalToLocal(_arg1:Point):Point{ throw (new Error("The Shape3D class does not implement this property or method.")); } override public function localToGlobal(_arg1:Point):Point{ throw (new Error("The Shape3D class does not implement this property or method.")); } public function set singleSided(_arg1:Boolean):void{ __singlesided = _arg1; if (__singlesided){ __renderculling = true; } else { __renderculling = false; __culling = false; }; } function askRendering():void{ __render = true; __graphics.askRendering(); if (__singlesided){ __renderculling = true; }; if (__flatshaded){ __rendershading = true; }; } override public function get scale9Grid():Rectangle{ throw (new Error("The Shape3D class does not implement this property or method.")); } function render(_arg1:Scene3D):void{ if (((!(__visible)) && (super.visible))){ super.visible = false; } else { if (__visible){ if (__render){ getMatrices(); __render = false; }; if (__renderculling){ getCulling(_arg1.viewDistance); __renderculling = false; }; if (__culling){ if (super.visible){ super.visible = false; }; } else { if (!super.visible){ super.visible = true; }; __graphics.render(super.graphics, __concatenatedmatrix, _arg1.viewDistance); if (__rendershading){ setFlatShading(_arg1); __rendershading = false; }; }; }; }; } function askRenderingShading():void{ if (__flatshaded){ __rendershading = true; }; } public function get rotationY():Number{ return (__rotationy); } override public function set scrollRect(_arg1:Rectangle):void{ throw (new Error("The Shape3D class does not implement this property or method.")); } override public function set scaleX(_arg1:Number):void{ __scalex = _arg1; askRendering(); } override public function set scaleY(_arg1:Number):void{ __scaley = _arg1; askRendering(); } public function get rotationX():Number{ return (__rotationx); } override public function set scale9Grid(_arg1:Rectangle):void{ throw (new Error("The Shape3D class does not implement this property or method.")); } public function get rotationZ():Number{ return (__rotationz); } override public function get height():Number{ throw (new Error("The Shape3D class does not implement this property or method.")); } public function set scaleZ(_arg1:Number):void{ __scalez = _arg1; askRendering(); } public function get graphics3D():Graphics3D{ return (__graphics); } public function set rotationY(_arg1:Number):void{ __rotationy = formatRotation(_arg1); askRendering(); } private function setFlatShading(_arg1:Scene3D):void{ var _local5:Point3D; var _local6:Point3D; if (__normal == null){ _local5 = __concatenatedmatrix.transformPoint(new Point3D(0, 0, 0)); _local6 = __concatenatedmatrix.transformPoint(new Point3D(0, 0, 1)); __normal = _local6.subtract(_local5); }; __normal.normalize(1); var _local2:Number = __normal.dot(_arg1.ambientLightVectorNormalized); var _local3:Number = (_local2 * _arg1.ambientLightIntensity); var _local4:ColorTransform = new ColorTransform(); ColorUtilities.setBrightness(_local4, _local3); _local4.alphaMultiplier = alpha; transform.colorTransform = _local4; __flatshading = true; } public function set rotationZ(_arg1:Number):void{ __rotationz = formatRotation(_arg1); askRendering(); } private function getCulling(_arg1:Number):void{ var _local2:Point3D = __concatenatedmatrix.transformPoint(new Point3D(0, 0, 0)); var _local3:Point3D = __concatenatedmatrix.transformPoint(new Point3D(0, 0, 1)); __normal = _local3.subtract(_local2); var _local4:Point3D = new Point3D(_local2.x, _local2.y, (_local2.z + _arg1)); __culling = (__normal.dot(_local4) < 0); } public function set rotationX(_arg1:Number):void{ __rotationx = formatRotation(_arg1); askRendering(); } override public function get width():Number{ throw (new Error("The Shape3D class does not implement this property or method.")); } public function get flatShaded():Boolean{ return (__flatshaded); } private function removeFlatShading():void{ transform.colorTransform = new ColorTransform(); __flatshading = false; } override public function get scrollRect():Rectangle{ throw (new Error("The Shape3D class does not implement this property or method.")); } override public function get mouseX():Number{ var _local1:Scene3D = getScene(); if (_local1 == null){ throw (new Error("Cannot access this property without having the class connected to the Scene3D class through the display list hierarchy.")); }; if (__concatenatedmatrix == null){ throw (new Error("Cannot access this property before the class has been rendered once.")); }; return (__concatenatedmatrix.getInverseCoordinates(_local1.mouseX, _local1.mouseY, _local1.viewDistance).x); } override public function get mouseY():Number{ var _local1:Scene3D = getScene(); if (_local1 == null){ throw (new Error("Cannot access this property without having the class connected to the Scene3D class through the display list hierarchy.")); }; if (__concatenatedmatrix == null){ throw (new Error("Cannot access this property before the class has been rendered once.")); }; return (__concatenatedmatrix.getInverseCoordinates(_local1.mouseX, _local1.mouseY, _local1.viewDistance).y); } override public function get scaleX():Number{ return (__scalex); } private function getScene():Scene3D{ var _local1:DisplayObjectContainer = DisplayObjectContainer(this); while (_local1) { if ((_local1 is Scene3D)){ return (Scene3D(_local1)); }; _local1 = _local1.parent; }; return (null); } override public function get scaleY():Number{ return (__scaley); } public function get scaleZ():Number{ return (__scalez); } override public function set visible(_arg1:Boolean):void{ __visible = _arg1; } public function get mouseXY():Point{ var _local1:Scene3D = getScene(); if (_local1 == null){ throw (new Error("Cannot access this property without having the class connected to the Scene3D class through the display list hierarchy.")); }; if (__concatenatedmatrix == null){ throw (new Error("Cannot access this property before the class has been rendered once.")); }; return (__concatenatedmatrix.getInverseCoordinates(_local1.mouseX, _local1.mouseY, _local1.viewDistance)); } public function set flatShaded(_arg1:Boolean):void{ __flatshaded = _arg1; if (__flatshaded){ __rendershading = true; } else { __rendershading = false; if (__flatshading){ removeFlatShading(); }; }; } override public function set x(_arg1:Number):void{ __x = _arg1; askRendering(); } override public function get visible():Boolean{ return (__visible); } override public function get x():Number{ return (__x); } override public function get y():Number{ return (__y); } override public function set rotation(_arg1:Number):void{ throw (new Error("The Shape3D class does not implement this property or method.")); } private function getMatrices():void{ __matrix.createBox(__scalex, __scaley, __scalez, degreesToRadians(__rotationx), degreesToRadians(__rotationy), degreesToRadians(__rotationz), __x, __y, __z); if ((parent is Scene3D)){ __concatenatedmatrix = __matrix.clone(); } else { __concatenatedmatrix = Sprite3D(parent).__concatenatedmatrix.clone(); __concatenatedmatrix.concat(__matrix); }; __normal = null; } override public function get rotation():Number{ throw (new Error("The Shape3D class does not implement this property or method.")); } private static function degreesToRadians(_arg1:Number):Number{ return (((_arg1 * Math.PI) / 180)); } private static function formatRotation(_arg1:Number):Number{ var _local2:Number = (_arg1 % 360); if (_local2 < -180){ return ((_local2 + 360)); }; if (_local2 > 180){ return ((_local2 - 360)); }; return (_local2); } } }//package five3D.display
Section 217
//Sprite2D (five3D.display.Sprite2D) package five3D.display { import flash.display.*; import flash.geom.*; import five3D.geom.*; public class Sprite2D extends Sprite { private var __scalex:Number;// = 1 private var __scaley:Number;// = 1 private var __renderscaling:Boolean;// = true private var __visible:Boolean;// = true private var __x:Number;// = 0 private var __y:Number;// = 0 private var __z:Number;// = 0 private var __perspective:Number; private var __matrix:Matrix3D; private var __scaling:Boolean;// = false private var __render:Boolean;// = true var __concatenatedmatrix:Matrix3D; private var __scaled:Boolean;// = true public function Sprite2D(){ __matrix = new Matrix3D(); } override public function get y():Number{ return (__y); } override public function set y(_arg1:Number):void{ __y = _arg1; askRendering(); } public function set z(_arg1:Number):void{ __z = _arg1; askRendering(); } private function setScaling():void{ super.scaleX = (__scalex * __perspective); super.scaleY = (__scaley * __perspective); __scaling = true; } private function removeScaling():void{ super.scaleX = __scalex; super.scaleY = __scaley; __scaling = false; } override public function set x(_arg1:Number):void{ __x = _arg1; askRendering(); } public function get z():Number{ return (__z); } public function set scaled(_arg1:Boolean):void{ __scaled = _arg1; if (__scaled){ __renderscaling = true; } else { __renderscaling = false; if (__scaling){ removeScaling(); }; }; } private function getMatrices():void{ __matrix.createBox(1, 1, 1, 0, 0, 0, __x, __y, __z); if ((parent is Scene3D)){ __concatenatedmatrix = __matrix.clone(); } else { __concatenatedmatrix = Sprite3D(parent).__concatenatedmatrix.clone(); __concatenatedmatrix.concat(__matrix); }; } function askRendering():void{ __render = true; if (__scaled){ __renderscaling = true; }; } override public function get scaleY():Number{ return (__scaley); } override public function get scaleX():Number{ return (__scalex); } override public function set scaleY(_arg1:Number):void{ __scaley = _arg1; if (__scaled){ __renderscaling = true; } else { super.scaleY = __scaley; }; } override public function stopDrag():void{ throw (new Error("The Sprite2D class does not implement this property or method.")); } public function get scaled():Boolean{ return (__scaled); } private function setPlacement(_arg1:Number):void{ var _local2:Point3D = __concatenatedmatrix.transformPoint(new Point3D()); __perspective = _local2.getPerspective(_arg1); _local2.project(__perspective); super.x = _local2.x; super.y = _local2.y; } override public function set visible(_arg1:Boolean):void{ __visible = _arg1; } function render(_arg1:Scene3D):void{ if (((!(__visible)) && (super.visible))){ super.visible = false; } else { if (__visible){ if (!super.visible){ super.visible = true; }; if (__render){ getMatrices(); setPlacement(_arg1.viewDistance); __render = false; }; if (__renderscaling){ setScaling(); __renderscaling = false; }; }; }; } override public function get dropTarget():DisplayObject{ throw (new Error("The Sprite2D class does not implement this property or method.")); } override public function get visible():Boolean{ return (__visible); } override public function startDrag(_arg1:Boolean=false, _arg2:Rectangle=null):void{ throw (new Error("The Sprite2D class does not implement this property or method.")); } override public function set scaleX(_arg1:Number):void{ __scalex = _arg1; if (__scaled){ __renderscaling = true; } else { super.scaleX = __scalex; }; } override public function get x():Number{ return (__x); } } }//package five3D.display
Section 218
//Sprite3D (five3D.display.Sprite3D) package five3D.display { import flash.display.*; import flash.geom.*; import five3D.geom.*; import five3D.utils.*; public class Sprite3D extends Sprite { private var __visible:Boolean;// = true private var __x:Number;// = 0 private var __y:Number;// = 0 private var __z:Number;// = 0 private var __matrix:Matrix3D; private var __flatshading:Boolean;// = false var __concatenatedmatrix:Matrix3D; private var __singlesided:Boolean;// = false private var __normal:Point3D; private var __scalex:Number;// = 1 private var __scaley:Number;// = 1 private var __scalez:Number;// = 1 private var __culling:Boolean;// = false private var __rotationx:Number;// = 0 private var __rotationy:Number;// = 0 private var __rotationz:Number;// = 0 private var __childrensorted:Boolean;// = false private var __graphics:Graphics3D; private var __flatshaded:Boolean;// = false private var __render:Boolean;// = true private var __renderculling:Boolean;// = false private var __rendershading:Boolean;// = false public function Sprite3D(){ __matrix = new Matrix3D(); __graphics = new Graphics3D(); } override public function set y(_arg1:Number):void{ __y = _arg1; askRendering(); } override public function get dropTarget():DisplayObject{ throw (new Error("The Sprite3D class does not implement this property or method.")); } public function set z(_arg1:Number):void{ __z = _arg1; askRendering(); } public function get singleSided():Boolean{ return (__singlesided); } override public function set height(_arg1:Number):void{ throw (new Error("The Sprite3D class does not implement this property or method.")); } public function get z():Number{ return (__z); } override public function get graphics():Graphics{ throw (new Error("The Sprite3D class does not implement this property or method (use \"graphics3D\" instead).")); } override public function set width(_arg1:Number):void{ throw (new Error("The Sprite3D class does not implement this property or method.")); } override public function globalToLocal(_arg1:Point):Point{ throw (new Error("The Sprite3D class does not implement this property or method.")); } override public function localToGlobal(_arg1:Point):Point{ throw (new Error("The Sprite3D class does not implement this property or method.")); } public function set singleSided(_arg1:Boolean):void{ __singlesided = _arg1; if (__singlesided){ __renderculling = true; } else { __renderculling = false; __culling = false; }; } function askRendering():void{ __render = true; __graphics.askRendering(); if (__singlesided){ __renderculling = true; }; if (__flatshaded){ __rendershading = true; }; var _local1:int; while (_local1 < numChildren) { getChildAtCasted(_local1).askRendering(); _local1++; }; } override public function get scale9Grid():Rectangle{ throw (new Error("The Sprite3D class does not implement this property or method.")); } function render(_arg1:Scene3D):void{ var _local2:int; if (((!(__visible)) && (super.visible))){ super.visible = false; } else { if (__visible){ if (__render){ getMatrices(); __render = false; }; if (__renderculling){ getCulling(_arg1.viewDistance); __renderculling = false; }; if (__culling){ if (super.visible){ super.visible = false; }; } else { if (!super.visible){ super.visible = true; }; __graphics.render(super.graphics, __concatenatedmatrix, _arg1.viewDistance); if (__rendershading){ setFlatShading(_arg1); __rendershading = false; }; _local2 = 0; while (_local2 < numChildren) { getChildAtCasted(_local2).render(_arg1); _local2++; }; if (__childrensorted){ sortChildren(); }; }; }; }; } function askRenderingShading():void{ if (__flatshaded){ __rendershading = true; }; var _local1:int; while (_local1 < numChildren) { getChildAtCasted(_local1).askRenderingShading(); _local1++; }; } public function get rotationY():Number{ return (__rotationy); } override public function set scrollRect(_arg1:Rectangle):void{ throw (new Error("The Sprite3D class does not implement this property or method.")); } override public function set scaleX(_arg1:Number):void{ __scalex = _arg1; askRendering(); } override public function set scaleY(_arg1:Number):void{ __scaley = _arg1; askRendering(); } public function get rotationX():Number{ return (__rotationx); } override public function set scale9Grid(_arg1:Rectangle):void{ throw (new Error("The Sprite3D class does not implement this property or method.")); } public function get rotationZ():Number{ return (__rotationz); } override public function get height():Number{ throw (new Error("The Sprite3D class does not implement this property or method.")); } public function set scaleZ(_arg1:Number):void{ __scalez = _arg1; askRendering(); } override public function startDrag(_arg1:Boolean=false, _arg2:Rectangle=null):void{ throw (new Error("The Sprite3D class does not implement this property or method.")); } public function get graphics3D():Graphics3D{ return (__graphics); } public function set rotationY(_arg1:Number):void{ __rotationy = formatRotation(_arg1); askRendering(); } public function get childrenSorted():Boolean{ return (__childrensorted); } private function getCulling(_arg1:Number):void{ var _local2:Point3D = __concatenatedmatrix.transformPoint(new Point3D(0, 0, 0)); var _local3:Point3D = __concatenatedmatrix.transformPoint(new Point3D(0, 0, 1)); __normal = _local3.subtract(_local2); var _local4:Point3D = new Point3D(_local2.x, _local2.y, (_local2.z + _arg1)); __culling = (__normal.dot(_local4) < 0); } public function set rotationX(_arg1:Number):void{ __rotationx = formatRotation(_arg1); askRendering(); } private function sortChildren():void{ var _local2:*; var _local1:Array = []; var _local3:int; while (_local3 < numChildren) { _local2 = getChildAtCasted(_local3); if (_local2.visible){ _local1.push({child:_local2, z:_local2.__concatenatedmatrix.tz}); }; _local3++; }; _local1.sortOn("z", (Array.DESCENDING | Array.NUMERIC)); _local3 = 0; while (_local3 < _local1.length) { setChildIndex(_local1[_local3].child, _local3); _local3++; }; } private function getChildAtCasted(_arg1:int){ if ((getChildAt(_arg1) is Sprite3D)){ return (Sprite3D(getChildAt(_arg1))); }; if ((getChildAt(_arg1) is Shape3D)){ return (Shape3D(getChildAt(_arg1))); }; if ((getChildAt(_arg1) is Bitmap3D)){ return (Bitmap3D(getChildAt(_arg1))); }; if ((getChildAt(_arg1) is Sprite2D)){ return (Sprite2D(getChildAt(_arg1))); }; } public function get flatShaded():Boolean{ return (__flatshaded); } private function removeFlatShading():void{ transform.colorTransform = new ColorTransform(); __flatshading = false; } private function setFlatShading(_arg1:Scene3D):void{ var _local5:Point3D; var _local6:Point3D; if (__normal == null){ _local5 = __concatenatedmatrix.transformPoint(new Point3D(0, 0, 0)); _local6 = __concatenatedmatrix.transformPoint(new Point3D(0, 0, 1)); __normal = _local6.subtract(_local5); }; __normal.normalize(1); var _local2:Number = __normal.dot(_arg1.ambientLightVectorNormalized); var _local3:Number = (_local2 * _arg1.ambientLightIntensity); var _local4:ColorTransform = new ColorTransform(); ColorUtilities.setBrightness(_local4, _local3); _local4.alphaMultiplier = alpha; transform.colorTransform = _local4; __flatshading = true; } override public function get mouseX():Number{ var _local1:Scene3D = getScene(); if (_local1 == null){ throw (new Error("Cannot access this property without having the class connected to the Scene3D class through the display list hierarchy.")); }; if (__concatenatedmatrix == null){ throw (new Error("Cannot access this property before the class has been rendered once.")); }; return (__concatenatedmatrix.getInverseCoordinates(_local1.mouseX, _local1.mouseY, _local1.viewDistance).x); } override public function get mouseY():Number{ var _local1:Scene3D = getScene(); if (_local1 == null){ throw (new Error("Cannot access this property without having the class connected to the Scene3D class through the display list hierarchy.")); }; if (__concatenatedmatrix == null){ throw (new Error("Cannot access this property before the class has been rendered once.")); }; return (__concatenatedmatrix.getInverseCoordinates(_local1.mouseX, _local1.mouseY, _local1.viewDistance).y); } override public function get scaleX():Number{ return (__scalex); } override public function get scrollRect():Rectangle{ throw (new Error("The Sprite3D class does not implement this property or method.")); } private function getScene():Scene3D{ var _local1:DisplayObjectContainer = DisplayObjectContainer(this); while (_local1) { if ((_local1 is Scene3D)){ return (Scene3D(_local1)); }; _local1 = _local1.parent; }; return (null); } override public function get scaleY():Number{ return (__scaley); } public function get scaleZ():Number{ return (__scalez); } override public function set visible(_arg1:Boolean):void{ __visible = _arg1; } public function set rotationZ(_arg1:Number):void{ __rotationz = formatRotation(_arg1); askRendering(); } public function get mouseXY():Point{ var _local1:Scene3D = getScene(); if (_local1 == null){ throw (new Error("Cannot access this property without having the class connected to the Scene3D class through the display list hierarchy.")); }; if (__concatenatedmatrix == null){ throw (new Error("Cannot access this property before the class has been rendered once.")); }; return (__concatenatedmatrix.getInverseCoordinates(_local1.mouseX, _local1.mouseY, _local1.viewDistance)); } override public function stopDrag():void{ throw (new Error("The Sprite3D class does not implement this property or method.")); } public function set flatShaded(_arg1:Boolean):void{ __flatshaded = _arg1; if (__flatshaded){ __rendershading = true; } else { __rendershading = false; if (__flatshading){ removeFlatShading(); }; }; } public function set childrenSorted(_arg1:Boolean):void{ __childrensorted = _arg1; } override public function get visible():Boolean{ return (__visible); } override public function get width():Number{ throw (new Error("The Sprite3D class does not implement this property or method.")); } override public function set x(_arg1:Number):void{ __x = _arg1; askRendering(); } override public function get x():Number{ return (__x); } override public function get y():Number{ return (__y); } override public function set rotation(_arg1:Number):void{ throw (new Error("The Sprite3D class does not implement this property or method.")); } private function getMatrices():void{ __matrix.createBox(__scalex, __scaley, __scalez, degreesToRadians(__rotationx), degreesToRadians(__rotationy), degreesToRadians(__rotationz), __x, __y, __z); if ((parent is Scene3D)){ __concatenatedmatrix = __matrix.clone(); } else { __concatenatedmatrix = Sprite3D(parent).__concatenatedmatrix.clone(); __concatenatedmatrix.concat(__matrix); }; __normal = null; } override public function get rotation():Number{ throw (new Error("The Sprite3D class does not implement this property or method.")); } private static function degreesToRadians(_arg1:Number):Number{ return (((_arg1 * Math.PI) / 180)); } private static function formatRotation(_arg1:Number):Number{ var _local2:Number = (_arg1 % 360); if (_local2 < -180){ return ((_local2 + 360)); }; if (_local2 > 180){ return ((_local2 - 360)); }; return (_local2); } } }//package five3D.display
Section 219
//Matrix3D (five3D.geom.Matrix3D) package five3D.geom { import flash.geom.*; public class Matrix3D { public var ty:Number; public var tx:Number; public var tz:Number; public var a:Number; public var b:Number; public var c:Number; public var d:Number; public var e:Number; public var f:Number; public var g:Number; public var h:Number; public var i:Number; public function Matrix3D(_arg1:Number=1, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=1, _arg6:Number=0, _arg7:Number=0, _arg8:Number=0, _arg9:Number=1, _arg10:Number=0, _arg11:Number=0, _arg12:Number=0){ this.a = _arg1; this.b = _arg2; this.c = _arg3; this.d = _arg4; this.e = _arg5; this.f = _arg6; this.g = _arg7; this.h = _arg8; this.i = _arg9; this.tx = _arg10; this.ty = _arg11; this.tz = _arg12; } public function concat(_arg1:Matrix3D):void{ var _local2:Object = {}; _local2.a = (((a * _arg1.a) + (b * _arg1.d)) + (c * _arg1.g)); _local2.b = (((a * _arg1.b) + (b * _arg1.e)) + (c * _arg1.h)); _local2.c = (((a * _arg1.c) + (b * _arg1.f)) + (c * _arg1.i)); _local2.d = (((d * _arg1.a) + (e * _arg1.d)) + (f * _arg1.g)); _local2.e = (((d * _arg1.b) + (e * _arg1.e)) + (f * _arg1.h)); _local2.f = (((d * _arg1.c) + (e * _arg1.f)) + (f * _arg1.i)); _local2.g = (((g * _arg1.a) + (h * _arg1.d)) + (i * _arg1.g)); _local2.h = (((g * _arg1.b) + (h * _arg1.e)) + (i * _arg1.h)); _local2.i = (((g * _arg1.c) + (h * _arg1.f)) + (i * _arg1.i)); _local2.tx = ((((a * _arg1.tx) + (b * _arg1.ty)) + (c * _arg1.tz)) + tx); _local2.ty = ((((d * _arg1.tx) + (e * _arg1.ty)) + (f * _arg1.tz)) + ty); _local2.tz = ((((g * _arg1.tx) + (h * _arg1.ty)) + (i * _arg1.tz)) + tz); initialize(_local2); } public function translate(_arg1:Number, _arg2:Number, _arg3:Number):void{ tx = (tx + _arg1); ty = (ty + _arg2); tz = (tz + _arg3); } private function initialize(_arg1:Object):void{ var _local2:String; for (_local2 in _arg1) { this[_local2] = _arg1[_local2]; }; } private function extractMatrix3(_arg1:Array, _arg2:Number, _arg3:Number):Array{ var _local6:int; var _local4:Array = []; var _local5:int; while (_local5 < 4) { if (_local5 != _arg3){ _local6 = 0; while (_local6 < 4) { if (_local6 != _arg2){ _local4.push(_arg1[(_local6 + (_local5 * 4))]); }; _local6++; }; }; _local5++; }; return (_local4); } public function scale(_arg1:Number, _arg2:Number, _arg3:Number):void{ concat(new Matrix3D(_arg1, 0, 0, 0, _arg2, 0, 0, 0, _arg3, 0, 0, 0)); } public function transformPoint(_arg1:Point3D):Point3D{ return (new Point3D(((((a * _arg1.x) + (b * _arg1.y)) + (c * _arg1.z)) + tx), ((((d * _arg1.x) + (e * _arg1.y)) + (f * _arg1.z)) + ty), ((((g * _arg1.x) + (h * _arg1.y)) + (i * _arg1.z)) + tz))); } public function clone():Matrix3D{ return (new Matrix3D(a, b, c, d, e, f, g, h, i, tx, ty, tz)); } public function rotateY(_arg1:Number):void{ concat(new Matrix3D(Math.cos(_arg1), 0, Math.sin(_arg1), 0, 1, 0, -(Math.sin(_arg1)), 0, Math.cos(_arg1), 0, 0, 0)); } public function rotateZ(_arg1:Number):void{ concat(new Matrix3D(Math.cos(_arg1), -(Math.sin(_arg1)), 0, Math.sin(_arg1), Math.cos(_arg1), 0, 0, 0, 1, 0, 0, 0)); } public function rotateX(_arg1:Number):void{ concat(new Matrix3D(1, 0, 0, 0, Math.cos(_arg1), -(Math.sin(_arg1)), 0, Math.sin(_arg1), Math.cos(_arg1), 0, 0, 0)); } public function createBox(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0, _arg5:Number=0, _arg6:Number=0, _arg7:Number=0, _arg8:Number=0, _arg9:Number=0):void{ identity(); if (_arg4 != 0){ rotateX(_arg4); }; if (_arg5 != 0){ rotateY(_arg5); }; if (_arg6 != 0){ rotateZ(_arg6); }; if (((((!((_arg1 == 1))) || (!((_arg2 == 1))))) || (!((_arg3 == 1))))){ scale(_arg1, _arg2, _arg3); }; if (((((!((_arg7 == 0))) || (!((_arg8 == 0))))) || (!((_arg9 == 0))))){ translate(_arg7, _arg8, _arg9); }; } public function getInverseCoordinates(_arg1:Number, _arg2:Number, _arg3:Number):Point{ var _local4:Array = [a, b, c, tx, d, e, f, ty, 0, 0, 1, 0, (g / _arg3), (h / _arg3), (i / _arg3), ((tz / _arg3) + 1)]; var _local5:Array = invertTraditional(_local4); var _local6:Number = (((_local5[12] * _arg1) + (_local5[13] * _arg2)) + _local5[15]); return (new Point(((((_local5[0] * _arg1) + (_local5[1] * _arg2)) + _local5[3]) / _local6), ((((_local5[4] * _arg1) + (_local5[5] * _arg2)) + _local5[7]) / _local6))); } private function invertTraditional(_arg1:Array):Array{ var _local5:int; var _local2:Array = []; var _local3:Number = getDeterminant4(_arg1); var _local4:int; while (_local4 < 4) { _local5 = 0; while (_local5 < 4) { _local2[((_local5 * 4) + _local4)] = ((getDeterminant3(extractMatrix3(_arg1, _local5, _local4)) * (1 - (((_local5 + _local4) % 2) * 2))) / _local3); _local5++; }; _local4++; }; return (_local2); } private function getDeterminant3(_arg1:Array):Number{ return ((((_arg1[0] * ((_arg1[4] * _arg1[8]) - (_arg1[7] * _arg1[5]))) - (_arg1[1] * ((_arg1[3] * _arg1[8]) - (_arg1[6] * _arg1[5])))) + (_arg1[2] * ((_arg1[3] * _arg1[7]) - (_arg1[6] * _arg1[4]))))); } private function getDeterminant4(_arg1:Array):Number{ return (((((_arg1[0] * getDeterminant3(extractMatrix3(_arg1, 0, 0))) - (_arg1[1] * getDeterminant3(extractMatrix3(_arg1, 1, 0)))) + (_arg1[2] * getDeterminant3(extractMatrix3(_arg1, 2, 0)))) - (_arg1[3] * getDeterminant3(extractMatrix3(_arg1, 3, 0))))); } public function toString():String{ return ((((((((((((((((((((((((("(a=" + a) + ", b=") + b) + ", c=") + c) + ", d=") + d) + ", e=") + e) + ", f=") + f) + ", g=") + g) + ", h=") + h) + ", i=") + i) + ", tx=") + tx) + ", ty=") + ty) + ", tz=") + tz) + ")")); } public function identity():void{ initialize({a:1, b:0, c:0, d:0, e:1, f:0, g:0, h:0, i:1, tx:0, ty:0, tz:0}); } } }//package five3D.geom
Section 220
//Point3D (five3D.geom.Point3D) package five3D.geom { public class Point3D { public var x:Number; public var y:Number; public var z:Number; public function Point3D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; } public function project(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); z = 0; } public function get length():Number{ return (Math.sqrt((((x * x) + (y * y)) + (z * z)))); } public function dot(_arg1:Point3D):Number{ return ((((x * _arg1.x) + (y * _arg1.y)) + (z * _arg1.z))); } private function scale(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); z = (z * _arg1); } public function toString():String{ return ((((((("(x=" + x) + ", y=") + y) + ", z=") + z) + ")")); } public function normalize(_arg1:Number):void{ var _local2:Number = length; if (_local2){ scale((_arg1 / _local2)); } else { z = _arg1; }; } public function getPerspective(_arg1:Number):Number{ return ((_arg1 / (z + _arg1))); } public function subtract(_arg1:Point3D):Point3D{ return (new Point3D((x - _arg1.x), (y - _arg1.y), (z - _arg1.z))); } public function clone():Point3D{ return (new Point3D(x, y, z)); } } }//package five3D.geom
Section 221
//ColorUtilities (five3D.utils.ColorUtilities) package five3D.utils { import flash.geom.*; public class ColorUtilities { public static function setBrightness(_arg1:ColorTransform, _arg2:Number):void{ if (_arg2 > 1){ _arg2 = 1; } else { if (_arg2 < -1){ _arg2 = -1; }; }; var _local3:Number = (1 - Math.abs(_arg2)); var _local4:Number = 0; if (_arg2 > 0){ _local4 = (_arg2 * 0xFF); }; _arg1.redMultiplier = (_arg1.greenMultiplier = (_arg1.blueMultiplier = _local3)); _arg1.redOffset = (_arg1.greenOffset = (_arg1.blueOffset = _local4)); } } }//package five3D.utils
Section 222
//BaseScrollPane (fl.containers.BaseScrollPane) package fl.containers { import flash.events.*; import flash.display.*; import flash.geom.*; import fl.core.*; import fl.controls.*; import fl.events.*; public class BaseScrollPane extends UIComponent { protected var defaultLineScrollSize:Number;// = 4 protected var _maxHorizontalScrollPosition:Number;// = 0 protected var vScrollBar:Boolean; protected var disabledOverlay:Shape; protected var hScrollBar:Boolean; protected var availableWidth:Number; protected var _verticalPageScrollSize:Number;// = 0 protected var vOffset:Number;// = 0 protected var _verticalScrollBar:ScrollBar; protected var useFixedHorizontalScrolling:Boolean;// = false protected var contentWidth:Number;// = 0 protected var contentHeight:Number;// = 0 protected var _horizontalPageScrollSize:Number;// = 0 protected var background:DisplayObject; protected var _useBitmpScrolling:Boolean;// = false protected var contentPadding:Number;// = 0 protected var availableHeight:Number; protected var _horizontalScrollBar:ScrollBar; protected var contentScrollRect:Rectangle; protected var _horizontalScrollPolicy:String; protected var _verticalScrollPolicy:String; protected static const SCROLL_BAR_STYLES:Object = {upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {repeatDelay:500, repeatInterval:35, skin:"ScrollPane_upSkin", contentPadding:0, disabledAlpha:0.5}; public function BaseScrollPane(){ contentWidth = 0; contentHeight = 0; contentPadding = 0; vOffset = 0; _maxHorizontalScrollPosition = 0; _horizontalPageScrollSize = 0; _verticalPageScrollSize = 0; defaultLineScrollSize = 4; useFixedHorizontalScrolling = false; _useBitmpScrolling = false; super(); } protected function handleWheel(_arg1:MouseEvent):void{ if (((((!(enabled)) || (!(_verticalScrollBar.visible)))) || ((contentHeight <= availableHeight)))){ return; }; _verticalScrollBar.scrollPosition = (_verticalScrollBar.scrollPosition - (_arg1.delta * verticalLineScrollSize)); setVerticalScrollPosition(_verticalScrollBar.scrollPosition); dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _arg1.delta, horizontalScrollPosition)); } public function get verticalScrollPosition():Number{ return (_verticalScrollBar.scrollPosition); } protected function drawDisabledOverlay():void{ if (enabled){ if (contains(disabledOverlay)){ removeChild(disabledOverlay); }; } else { disabledOverlay.x = (disabledOverlay.y = contentPadding); disabledOverlay.width = availableWidth; disabledOverlay.height = availableHeight; disabledOverlay.alpha = (getStyleValue("disabledAlpha") as Number); addChild(disabledOverlay); }; } public function set verticalScrollPosition(_arg1:Number):void{ drawNow(); _verticalScrollBar.scrollPosition = _arg1; setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); } protected function setContentSize(_arg1:Number, _arg2:Number):void{ if ((((((contentWidth == _arg1)) || (useFixedHorizontalScrolling))) && ((contentHeight == _arg2)))){ return; }; contentWidth = _arg1; contentHeight = _arg2; invalidate(InvalidationType.SIZE); } public function get horizontalScrollPosition():Number{ return (_horizontalScrollBar.scrollPosition); } public function get horizontalScrollBar():ScrollBar{ return (_horizontalScrollBar); } override public function set enabled(_arg1:Boolean):void{ if (enabled == _arg1){ return; }; _verticalScrollBar.enabled = _arg1; _horizontalScrollBar.enabled = _arg1; super.enabled = _arg1; } public function get verticalLineScrollSize():Number{ return (_verticalScrollBar.lineScrollSize); } public function get horizontalScrollPolicy():String{ return (_horizontalScrollPolicy); } protected function calculateAvailableSize():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = ScrollBar.WIDTH; _local2 = (contentPadding = Number(getStyleValue("contentPadding"))); _local3 = ((height - (2 * _local2)) - vOffset); vScrollBar = (((_verticalScrollPolicy == ScrollPolicy.ON)) || ((((_verticalScrollPolicy == ScrollPolicy.AUTO)) && ((contentHeight > _local3))))); _local4 = ((width - (vScrollBar) ? _local1 : 0) - (2 * _local2)); _local5 = (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - _local4); hScrollBar = (((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_local5 > 0))))); if (hScrollBar){ _local3 = (_local3 - _local1); }; if (((((((hScrollBar) && (!(vScrollBar)))) && ((_verticalScrollPolicy == ScrollPolicy.AUTO)))) && ((contentHeight > _local3)))){ vScrollBar = true; _local4 = (_local4 - _local1); }; availableHeight = (_local3 + vOffset); availableWidth = _local4; } public function get maxVerticalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentHeight - availableHeight))); } public function set horizontalScrollPosition(_arg1:Number):void{ drawNow(); _horizontalScrollBar.scrollPosition = _arg1; setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); } public function get horizontalLineScrollSize():Number{ return (_horizontalScrollBar.lineScrollSize); } public function set verticalPageScrollSize(_arg1:Number):void{ _verticalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } public function get verticalScrollPolicy():String{ return (_verticalScrollPolicy); } protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function get useBitmapScrolling():Boolean{ return (_useBitmpScrolling); } protected function handleScroll(_arg1:ScrollEvent):void{ if (_arg1.target == _verticalScrollBar){ setVerticalScrollPosition(_arg1.position); } else { setHorizontalScrollPosition(_arg1.position); }; } public function set verticalLineScrollSize(_arg1:Number):void{ _verticalScrollBar.lineScrollSize = _arg1; } public function get verticalScrollBar():ScrollBar{ return (_verticalScrollBar); } protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function set horizontalPageScrollSize(_arg1:Number):void{ _horizontalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STATE)){ drawLayout(); }; updateChildren(); super.draw(); } public function set horizontalScrollPolicy(_arg1:String):void{ _horizontalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } override protected function configUI():void{ var _local1:Graphics; super.configUI(); contentScrollRect = new Rectangle(0, 0, 85, 85); _verticalScrollBar = new ScrollBar(); _verticalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _verticalScrollBar.visible = false; _verticalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_verticalScrollBar); copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); _horizontalScrollBar = new ScrollBar(); _horizontalScrollBar.direction = ScrollBarDirection.HORIZONTAL; _horizontalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _horizontalScrollBar.visible = false; _horizontalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_horizontalScrollBar); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); disabledOverlay = new Shape(); _local1 = disabledOverlay.graphics; _local1.beginFill(0xFFFFFF); _local1.drawRect(0, 0, width, height); _local1.endFill(); addEventListener(MouseEvent.MOUSE_WHEEL, handleWheel, false, 0, true); } protected function calculateContentWidth():void{ } public function get verticalPageScrollSize():Number{ if (isNaN(availableHeight)){ drawNow(); }; return (((((_verticalPageScrollSize == 0)) && (!(isNaN(availableHeight))))) ? availableHeight : _verticalPageScrollSize); } protected function drawLayout():void{ calculateAvailableSize(); calculateContentWidth(); background.width = width; background.height = height; if (vScrollBar){ _verticalScrollBar.visible = true; _verticalScrollBar.x = ((width - ScrollBar.WIDTH) - contentPadding); _verticalScrollBar.y = contentPadding; _verticalScrollBar.height = availableHeight; } else { _verticalScrollBar.visible = false; }; _verticalScrollBar.setScrollProperties(availableHeight, 0, (contentHeight - availableHeight), verticalPageScrollSize); setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); if (hScrollBar){ _horizontalScrollBar.visible = true; _horizontalScrollBar.x = contentPadding; _horizontalScrollBar.y = ((height - ScrollBar.WIDTH) - contentPadding); _horizontalScrollBar.width = availableWidth; } else { _horizontalScrollBar.visible = false; }; _horizontalScrollBar.setScrollProperties(availableWidth, 0, (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - availableWidth), horizontalPageScrollSize); setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); drawDisabledOverlay(); } protected function drawBackground():void{ var _local1:DisplayObject; _local1 = background; background = getDisplayObjectInstance(getStyleValue("skin")); background.width = width; background.height = height; addChildAt(background, 0); if (((!((_local1 == null))) && (!((_local1 == background))))){ removeChild(_local1); }; } public function set horizontalLineScrollSize(_arg1:Number):void{ _horizontalScrollBar.lineScrollSize = _arg1; } public function get horizontalPageScrollSize():Number{ if (isNaN(availableWidth)){ drawNow(); }; return (((((_horizontalPageScrollSize == 0)) && (!(isNaN(availableWidth))))) ? availableWidth : _horizontalPageScrollSize); } public function get maxHorizontalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentWidth - availableWidth))); } protected function setStyles():void{ copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); } protected function updateChildren():void{ _verticalScrollBar.enabled = (_horizontalScrollBar.enabled = enabled); _verticalScrollBar.drawNow(); _horizontalScrollBar.drawNow(); } public function set verticalScrollPolicy(_arg1:String):void{ _verticalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } public function set useBitmapScrolling(_arg1:Boolean):void{ _useBitmpScrolling = _arg1; invalidate(InvalidationType.STATE); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, ScrollBar.getStyleDefinition())); } } }//package fl.containers
Section 223
//CellRenderer (fl.controls.listClasses.CellRenderer) package fl.controls.listClasses { import flash.events.*; import fl.controls.*; public class CellRenderer extends LabelButton implements ICellRenderer { protected var _data:Object; protected var _listData:ListData; private static var defaultStyles:Object = {upSkin:"CellRenderer_upSkin", downSkin:"CellRenderer_downSkin", overSkin:"CellRenderer_overSkin", disabledSkin:"CellRenderer_disabledSkin", selectedDisabledSkin:"CellRenderer_selectedDisabledSkin", selectedUpSkin:"CellRenderer_selectedUpSkin", selectedDownSkin:"CellRenderer_selectedDownSkin", selectedOverSkin:"CellRenderer_selectedOverSkin", textFormat:null, disabledTextFormat:null, embedFonts:null, textPadding:5}; public function CellRenderer():void{ toggle = true; focusEnabled = false; } override protected function toggleSelected(_arg1:MouseEvent):void{ } override public function get selected():Boolean{ return (super.selected); } public function set listData(_arg1:ListData):void{ _listData = _arg1; label = _listData.label; setStyle("icon", _listData.icon); } override public function set selected(_arg1:Boolean):void{ super.selected = _arg1; } public function set data(_arg1:Object):void{ _data = _arg1; } public function get listData():ListData{ return (_listData); } override public function setSize(_arg1:Number, _arg2:Number):void{ super.setSize(_arg1, _arg2); } override protected function drawLayout():void{ var _local1:Number; var _local2:Number; var _local3:Number; _local1 = Number(getStyleValue("textPadding")); _local2 = 0; if (icon != null){ icon.x = _local1; icon.y = Math.round(((height - icon.height) >> 1)); _local2 = (icon.width + _local1); }; if (label.length > 0){ textField.visible = true; _local3 = Math.max(0, ((width - _local2) - (_local1 * 2))); textField.width = _local3; textField.height = (textField.textHeight + 4); textField.x = (_local2 + _local1); textField.y = Math.round(((height - textField.height) >> 1)); } else { textField.visible = false; }; background.width = width; background.height = height; } public function get data():Object{ return (_data); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls.listClasses
Section 224
//ICellRenderer (fl.controls.listClasses.ICellRenderer) package fl.controls.listClasses { public interface ICellRenderer { function setSize(_arg1:Number, _arg2:Number):void; function get listData():ListData; function get data():Object; function setMouseState(_arg1:String):void; function set x(_arg1:Number):void; function set y(_arg1:Number):void; function set data(_arg1:Object):void; function set selected(_arg1:Boolean):void; function set listData(_arg1:ListData):void; function get selected():Boolean; } }//package fl.controls.listClasses
Section 225
//ListData (fl.controls.listClasses.ListData) package fl.controls.listClasses { import fl.core.*; public class ListData { protected var _index:uint; protected var _owner:UIComponent; protected var _label:String; protected var _icon:Object;// = null protected var _row:uint; protected var _column:uint; public function ListData(_arg1:String, _arg2:Object, _arg3:UIComponent, _arg4:uint, _arg5:uint, _arg6:uint=0){ _icon = null; super(); _label = _arg1; _icon = _arg2; _owner = _arg3; _index = _arg4; _row = _arg5; _column = _arg6; } public function get owner():UIComponent{ return (_owner); } public function get label():String{ return (_label); } public function get row():uint{ return (_row); } public function get index():uint{ return (_index); } public function get icon():Object{ return (_icon); } public function get column():uint{ return (_column); } } }//package fl.controls.listClasses
Section 226
//BaseButton (fl.controls.BaseButton) package fl.controls { import flash.events.*; import flash.display.*; import flash.utils.*; import fl.core.*; 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 227
//Button (fl.controls.Button) package fl.controls { import flash.display.*; import fl.managers.*; import fl.core.*; 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 228
//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 229
//ComboBox (fl.controls.ComboBox) package fl.controls { import flash.events.*; import flash.display.*; import flash.geom.*; import fl.managers.*; import fl.core.*; import fl.events.*; import fl.data.*; import flash.text.*; import fl.controls.listClasses.*; import flash.ui.*; public class ComboBox extends UIComponent implements IFocusManagerComponent { protected var _dropdownWidth:Number; protected var highlightedCell:int;// = -1 protected var _prompt:String; protected var isOpen:Boolean;// = false protected var list:List; protected var _rowCount:uint;// = 5 protected var currentIndex:int; protected var isKeyDown:Boolean;// = false protected var _labels:Array; protected var background:BaseButton; protected var inputField:TextInput; protected var listOverIndex:uint; protected var editableValue:String; protected var _editable:Boolean;// = false private var collectionItemImport:SimpleCollectionItem; protected static const BACKGROUND_STYLES:Object = {overSkin:"overSkin", downSkin:"downSkin", upSkin:"upSkin", disabledSkin:"disabledSkin", repeatInterval:"repeatInterval"}; protected static const LIST_STYLES:Object = {upSkin:"comboListUpSkin", overSkin:"comboListOverSkin", downSkin:"comobListDownSkin", disabledSkin:"comboListDisabledSkin", downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval", textFormat:"textFormat", disabledAlpha:"disabledAlpha", skin:"listSkin"}; private static var defaultStyles:Object = {upSkin:"ComboBox_upSkin", downSkin:"ComboBox_downSkin", overSkin:"ComboBox_overSkin", disabledSkin:"ComboBox_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:3, buttonWidth:24, disabledAlpha:null, listSkin:null}; public static var createAccessibilityImplementation:Function; public function ComboBox(){ _rowCount = 5; _editable = false; isOpen = false; highlightedCell = -1; isKeyDown = false; super(); } protected function drawList():void{ list.rowCount = Math.max(0, Math.min(_rowCount, list.dataProvider.length)); } public function set imeMode(_arg1:String):void{ inputField.imeMode = _arg1; } public function get dropdown():List{ return (list); } public function get dropdownWidth():Number{ return (list.width); } public function sortItemsOn(_arg1:String, _arg2:Object=null){ return (list.sortItemsOn(_arg1, _arg2)); } protected function onEnter(_arg1:ComponentEvent):void{ _arg1.stopPropagation(); } public function removeItemAt(_arg1:uint):void{ list.removeItemAt(_arg1); invalidate(InvalidationType.DATA); } public function open():void{ currentIndex = selectedIndex; if (((isOpen) || ((length == 0)))){ return; }; dispatchEvent(new Event(Event.OPEN)); isOpen = true; addEventListener(Event.ENTER_FRAME, addCloseListener, false, 0, true); positionList(); list.scrollToSelected(); stage.addChild(list); } public function get selectedItem():Object{ return (list.selectedItem); } public function set text(_arg1:String):void{ if (!editable){ return; }; inputField.text = _arg1; } public function get labelField():String{ return (list.labelField); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:int; var _local3:uint; var _local4:Number; var _local5:int; isKeyDown = true; if (_arg1.ctrlKey){ switch (_arg1.keyCode){ case Keyboard.UP: if (highlightedCell > -1){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); break; case Keyboard.DOWN: open(); break; }; return; }; _arg1.stopPropagation(); _local2 = Math.max(((calculateAvailableHeight() / list.rowHeight) << 0), 1); _local3 = selectedIndex; _local4 = ((highlightedCell)==-1) ? selectedIndex : highlightedCell; _local5 = -1; switch (_arg1.keyCode){ case Keyboard.SPACE: if (isOpen){ close(); } else { open(); }; return; case Keyboard.ESCAPE: if (isOpen){ if (highlightedCell > -1){ selectedIndex = selectedIndex; }; close(); }; return; case Keyboard.UP: _local5 = Math.max(0, (_local4 - 1)); break; case Keyboard.DOWN: _local5 = Math.min((length - 1), (_local4 + 1)); break; case Keyboard.PAGE_UP: _local5 = Math.max((_local4 - _local2), 0); break; case Keyboard.PAGE_DOWN: _local5 = Math.min((_local4 + _local2), (length - 1)); break; case Keyboard.HOME: _local5 = 0; break; case Keyboard.END: _local5 = (length - 1); break; case Keyboard.ENTER: if (((_editable) && ((highlightedCell == -1)))){ editableValue = inputField.text; selectedIndex = -1; } else { if (((isOpen) && ((highlightedCell > -1)))){ editableValue = null; selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; }; dispatchEvent(new ComponentEvent(ComponentEvent.ENTER)); close(); return; default: if (editable){ break; }; _local5 = list.getNextIndexAtLetter(String.fromCharCode(_arg1.keyCode), _local4); break; }; if (_local5 > -1){ if (isOpen){ highlightCell(_local5); inputField.text = list.itemToLabel(getItemAt(_local5)); } else { highlightCell(); selectedIndex = _local5; dispatchEvent(new Event(Event.CHANGE)); }; }; } public function set dropdownWidth(_arg1:Number):void{ _dropdownWidth = _arg1; invalidate(InvalidationType.SIZE); } public function get editable():Boolean{ return (_editable); } override protected function focusInHandler(_arg1:FocusEvent):void{ super.focusInHandler(_arg1); if (editable){ stage.focus = inputField.textField; }; } protected function onStageClick(_arg1:MouseEvent):void{ if (!isOpen){ return; }; if (((!(contains((_arg1.target as DisplayObject)))) && (!(list.contains((_arg1.target as DisplayObject)))))){ if (highlightedCell != -1){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); }; } protected function handleDataChange(_arg1:DataChangeEvent):void{ invalidate(InvalidationType.DATA); } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ isKeyDown = false; } protected function onListItemUp(_arg1:MouseEvent):void{ var _local2:*; stage.removeEventListener(MouseEvent.MOUSE_UP, onListItemUp); if (((!((_arg1.target is ICellRenderer))) || (!(list.contains((_arg1.target as DisplayObject)))))){ return; }; editableValue = null; _local2 = selectedIndex; selectedIndex = _arg1.target.listData.index; if (_local2 != selectedIndex){ dispatchEvent(new Event(Event.CHANGE)); }; close(); } public function removeAll():void{ list.removeAll(); inputField.text = ""; invalidate(InvalidationType.DATA); } public function set selectedItem(_arg1:Object):void{ list.selectedItem = _arg1; invalidate(InvalidationType.SELECTED); } protected function highlightCell(_arg1:int=-1):void{ var _local2:ICellRenderer; if (highlightedCell > -1){ _local2 = list.itemToCellRenderer(getItemAt(highlightedCell)); if (_local2 != null){ _local2.setMouseState("up"); }; }; if (_arg1 == -1){ return; }; list.scrollToIndex(_arg1); list.drawNow(); _local2 = list.itemToCellRenderer(getItemAt(_arg1)); if (_local2 != null){ _local2.setMouseState("over"); highlightedCell = _arg1; }; } public function itemToLabel(_arg1:Object):String{ if (_arg1 == null){ return (""); }; return (list.itemToLabel(_arg1)); } public function addItemAt(_arg1:Object, _arg2:uint):void{ list.addItemAt(_arg1, _arg2); invalidate(InvalidationType.DATA); } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ return (list.replaceItemAt(_arg1, _arg2)); } protected function showPrompt():void{ inputField.text = _prompt; } public function set rowCount(_arg1:uint):void{ _rowCount = _arg1; invalidate(InvalidationType.SIZE); } public function get restrict():String{ return (inputField.restrict); } protected function setEmbedFonts():void{ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ inputField.textField.embedFonts = _local1; }; } public function sortItems(... _args){ return (list.sortItems.apply(list, _args)); } public function set labelField(_arg1:String):void{ list.labelField = _arg1; invalidate(InvalidationType.DATA); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; drawTextField(); } public function set prompt(_arg1:String):void{ if (_arg1 == ""){ _prompt = null; } else { _prompt = _arg1; }; invalidate(InvalidationType.STATE); } public function get length():int{ return (list.length); } protected function drawTextField():void{ inputField.setStyle("upSkin", ""); inputField.setStyle("disabledSkin", ""); inputField.enabled = enabled; inputField.editable = _editable; inputField.textField.selectable = ((enabled) && (_editable)); inputField.mouseEnabled = (inputField.mouseChildren = ((enabled) && (_editable))); inputField.focusEnabled = false; if (_editable){ inputField.addEventListener(FocusEvent.FOCUS_IN, onInputFieldFocus, false, 0, true); inputField.addEventListener(FocusEvent.FOCUS_OUT, onInputFieldFocusOut, false, 0, true); } else { inputField.removeEventListener(FocusEvent.FOCUS_IN, onInputFieldFocus); inputField.removeEventListener(FocusEvent.FOCUS_OUT, onInputFieldFocusOut); }; } protected function onInputFieldFocusOut(_arg1:FocusEvent):void{ inputField.removeEventListener(ComponentEvent.ENTER, onEnter); selectedIndex = selectedIndex; } protected function passEvent(_arg1:Event):void{ dispatchEvent(_arg1); } public function get imeMode():String{ return (inputField.imeMode); } public function get labelFunction():Function{ return (list.labelFunction); } protected function calculateAvailableHeight():Number{ var _local1:Number; _local1 = Number(getStyleValue("contentPadding")); return ((list.height - (_local1 * 2))); } public function get selectedIndex():int{ return (list.selectedIndex); } override protected function focusOutHandler(_arg1:FocusEvent):void{ isKeyDown = false; if (isOpen){ if (((!(_arg1.relatedObject)) || (!(list.contains(_arg1.relatedObject))))){ if (((!((highlightedCell == -1))) && (!((highlightedCell == selectedIndex))))){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); }; }; super.focusOutHandler(_arg1); } public function get selectedLabel():String{ if (editableValue != null){ return (editableValue); }; if (selectedIndex == -1){ return (null); }; return (itemToLabel(selectedItem)); } public function get text():String{ return (inputField.text); } protected function onListChange(_arg1:Event):void{ editableValue = null; dispatchEvent(_arg1); invalidate(InvalidationType.SELECTED); if (isKeyDown){ return; }; close(); } protected function onToggleListVisibility(_arg1:MouseEvent):void{ _arg1.stopPropagation(); dispatchEvent(_arg1); if (isOpen){ close(); } else { open(); stage.addEventListener(MouseEvent.MOUSE_UP, onListItemUp, false, 0, true); }; } override protected function draw():void{ var _local1:*; _local1 = selectedIndex; if ((((_local1 == -1)) && (((((!((prompt == null))) || (editable))) || ((length == 0)))))){ _local1 = Math.max(-1, Math.min(_local1, (length - 1))); } else { editableValue = null; _local1 = Math.max(0, Math.min(_local1, (length - 1))); }; if (list.selectedIndex != _local1){ list.selectedIndex = _local1; invalidate(InvalidationType.SELECTED, false); }; if (isInvalid(InvalidationType.STYLES)){ setStyles(); setEmbedFonts(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.DATA, InvalidationType.STATE)){ drawTextFormat(); drawLayout(); invalidate(InvalidationType.DATA); }; if (isInvalid(InvalidationType.DATA)){ drawList(); invalidate(InvalidationType.SELECTED, true); }; if (isInvalid(InvalidationType.SELECTED)){ if ((((_local1 == -1)) && (!((editableValue == null))))){ inputField.text = editableValue; } else { if (_local1 > -1){ if (length > 0){ inputField.horizontalScrollPosition = 0; inputField.text = itemToLabel(list.selectedItem); }; } else { if ((((_local1 == -1)) && (!((_prompt == null))))){ showPrompt(); } else { inputField.text = ""; }; }; }; if (((((editable) && ((selectedIndex > -1)))) && ((stage.focus == inputField.textField)))){ inputField.setSelection(0, inputField.length); }; }; drawTextField(); super.draw(); } public function addItem(_arg1:Object):void{ list.addItem(_arg1); invalidate(InvalidationType.DATA); } public function get rowCount():uint{ return (_rowCount); } override protected function configUI():void{ super.configUI(); background = new BaseButton(); background.focusEnabled = false; copyStylesToChild(background, BACKGROUND_STYLES); background.addEventListener(MouseEvent.MOUSE_DOWN, onToggleListVisibility, false, 0, true); addChild(background); inputField = new TextInput(); inputField.focusTarget = (this as IFocusManagerComponent); inputField.focusEnabled = false; inputField.addEventListener(Event.CHANGE, onTextInput, false, 0, true); addChild(inputField); list = new List(); list.focusEnabled = false; copyStylesToChild(list, LIST_STYLES); list.addEventListener(Event.CHANGE, onListChange, false, 0, true); list.addEventListener(ListEvent.ITEM_CLICK, onListChange, false, 0, true); list.addEventListener(ListEvent.ITEM_ROLL_OUT, passEvent, false, 0, true); list.addEventListener(ListEvent.ITEM_ROLL_OVER, passEvent, false, 0, true); list.verticalScrollBar.addEventListener(Event.SCROLL, passEvent, false, 0, true); } protected function positionList():void{ var _local1:Point; _local1 = localToGlobal(new Point(0, 0)); list.x = _local1.x; if (((_local1.y + height) + list.height) > stage.stageHeight){ list.y = (_local1.y - list.height); } else { list.y = (_local1.y + height); }; } public function get value():String{ var _local1:Object; if (editableValue != null){ return (editableValue); }; _local1 = selectedItem; if (((!(_editable)) && (!((_local1.data == null))))){ return (_local1.data); }; return (itemToLabel(_local1)); } public function get prompt():String{ return (_prompt); } public function set dataProvider(_arg1:DataProvider):void{ _arg1.addEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange, false, 0, true); list.dataProvider = _arg1; invalidate(InvalidationType.DATA); } public function set restrict(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ _arg1 = null; }; if (!_editable){ return; }; inputField.restrict = _arg1; } protected function onTextInput(_arg1:Event):void{ _arg1.stopPropagation(); if (!_editable){ return; }; editableValue = inputField.text; selectedIndex = -1; dispatchEvent(new Event(Event.CHANGE)); } protected function onInputFieldFocus(_arg1:FocusEvent):void{ inputField.addEventListener(ComponentEvent.ENTER, onEnter, false, 0, true); close(); } public function getItemAt(_arg1:uint):Object{ return (list.getItemAt(_arg1)); } override protected function initializeAccessibility():void{ if (ComboBox.createAccessibilityImplementation != null){ ComboBox.createAccessibilityImplementation(this); }; } protected function drawLayout():void{ var _local1:Number; var _local2:Number; _local1 = (getStyleValue("buttonWidth") as Number); _local2 = (getStyleValue("textPadding") as Number); background.setSize(width, height); inputField.x = (inputField.y = _local2); inputField.setSize(((width - _local1) - _local2), (height - _local2)); list.width = (isNaN(_dropdownWidth)) ? width : _dropdownWidth; background.enabled = enabled; background.drawNow(); } public function removeItem(_arg1:Object):Object{ return (list.removeItem(_arg1)); } private function addCloseListener(_arg1:Event){ removeEventListener(Event.ENTER_FRAME, addCloseListener); if (!isOpen){ return; }; stage.addEventListener(MouseEvent.MOUSE_DOWN, onStageClick, false, 0, true); } public function get dataProvider():DataProvider{ return (list.dataProvider); } public function get textField():TextInput{ return (inputField); } protected function setStyles():void{ copyStylesToChild(background, BACKGROUND_STYLES); copyStylesToChild(list, LIST_STYLES); } public function set labelFunction(_arg1:Function):void{ list.labelFunction = _arg1; invalidate(InvalidationType.DATA); } protected function drawTextFormat():void{ var _local1:TextFormat; _local1 = (getStyleValue((_enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local1 == null){ _local1 = new TextFormat(); }; inputField.textField.defaultTextFormat = _local1; inputField.textField.setTextFormat(_local1); setEmbedFonts(); } public function set selectedIndex(_arg1:int):void{ list.selectedIndex = _arg1; highlightCell(); invalidate(InvalidationType.SELECTED); } public function close():void{ highlightCell(); highlightedCell = -1; if (!isOpen){ return; }; dispatchEvent(new Event(Event.CLOSE)); stage.removeEventListener(MouseEvent.MOUSE_DOWN, onStageClick); isOpen = false; stage.removeChild(list); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, List.getStyleDefinition())); } } }//package fl.controls
Section 230
//LabelButton (fl.controls.LabelButton) package fl.controls { import flash.events.*; import flash.display.*; import fl.managers.*; import fl.core.*; 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 231
//List (fl.controls.List) package fl.controls { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.geom.*; import fl.managers.*; import fl.core.*; import fl.controls.listClasses.*; import flash.ui.*; public class List extends SelectableList implements IFocusManagerComponent { protected var _labelField:String;// = "label" protected var _rowHeight:Number;// = 20 protected var _cellRenderer:Object; protected var _iconField:String;// = "icon" protected var _labelFunction:Function; protected var _iconFunction:Function; private static var defaultStyles:Object = {focusRectSkin:null, focusRectPadding:null}; public static var createAccessibilityImplementation:Function; public function List(){ _rowHeight = 20; _labelField = "label"; _iconField = "icon"; super(); } public function get iconField():String{ return (_iconField); } protected function doKeySelection(_arg1:int, _arg2:Boolean, _arg3:Boolean):void{ var _local4:Boolean; var _local5:int; var _local6:Array; var _local7:int; var _local8:int; _local4 = false; if (_arg2){ _local6 = []; _local7 = lastCaretIndex; _local8 = _arg1; if (_local7 == -1){ _local7 = ((caretIndex)!=-1) ? caretIndex : _arg1; }; if (_local7 > _local8){ _local8 = _local7; _local7 = _arg1; }; _local5 = _local7; while (_local5 <= _local8) { _local6.push(_local5); _local5++; }; selectedIndices = _local6; caretIndex = _arg1; _local4 = true; } else { selectedIndex = _arg1; caretIndex = (lastCaretIndex = _arg1); _local4 = true; }; if (_local4){ dispatchEvent(new Event(Event.CHANGE)); }; invalidate(InvalidationType.DATA); } override protected function drawList():void{ var _local1:Rectangle; var _local2:uint; var _local3:uint; var _local4:uint; var _local5:Object; var _local6:ICellRenderer; var _local7:Dictionary; var _local8:Dictionary; var _local9:Boolean; var _local10:String; var _local11:Object; var _local12:Sprite; var _local13:String; listHolder.x = (listHolder.y = contentPadding); _local1 = listHolder.scrollRect; _local1.x = _horizontalScrollPosition; _local1.y = (Math.floor(_verticalScrollPosition) % rowHeight); listHolder.scrollRect = _local1; listHolder.cacheAsBitmap = useBitmapScrolling; _local2 = Math.floor((_verticalScrollPosition / rowHeight)); _local3 = Math.min(length, ((_local2 + rowCount) + 1)); _local7 = (renderedItems = new Dictionary(true)); _local4 = _local2; while (_local4 < _local3) { _local7[_dataProvider.getItemAt(_local4)] = true; _local4++; }; _local8 = new Dictionary(true); while (activeCellRenderers.length > 0) { _local6 = (activeCellRenderers.pop() as ICellRenderer); _local5 = _local6.data; if ((((_local7[_local5] == null)) || ((invalidItems[_local5] == true)))){ availableCellRenderers.push(_local6); } else { _local8[_local5] = _local6; invalidItems[_local5] = true; }; list.removeChild((_local6 as DisplayObject)); }; invalidItems = new Dictionary(true); _local4 = _local2; while (_local4 < _local3) { _local9 = false; _local5 = _dataProvider.getItemAt(_local4); if (_local8[_local5] != null){ _local9 = true; _local6 = _local8[_local5]; delete _local8[_local5]; } else { if (availableCellRenderers.length > 0){ _local6 = (availableCellRenderers.pop() as ICellRenderer); } else { _local6 = (getDisplayObjectInstance(getStyleValue("cellRenderer")) as ICellRenderer); _local12 = (_local6 as Sprite); if (_local12 != null){ _local12.addEventListener(MouseEvent.CLICK, handleCellRendererClick, false, 0, true); _local12.addEventListener(MouseEvent.ROLL_OVER, handleCellRendererMouseEvent, false, 0, true); _local12.addEventListener(MouseEvent.ROLL_OUT, handleCellRendererMouseEvent, false, 0, true); _local12.addEventListener(Event.CHANGE, handleCellRendererChange, false, 0, true); _local12.doubleClickEnabled = true; _local12.addEventListener(MouseEvent.DOUBLE_CLICK, handleCellRendererDoubleClick, false, 0, true); if (_local12["setStyle"] != null){ for (_local13 in rendererStyles) { var _local16 = _local12; _local16["setStyle"](_local13, rendererStyles[_local13]); }; }; }; }; }; list.addChild((_local6 as Sprite)); activeCellRenderers.push(_local6); _local6.y = (rowHeight * (_local4 - _local2)); _local6.setSize((availableWidth + _maxHorizontalScrollPosition), rowHeight); _local10 = itemToLabel(_local5); _local11 = null; if (_iconFunction != null){ _local11 = _iconFunction(_local5); } else { if (_iconField != null){ _local11 = _local5[_iconField]; }; }; if (!_local9){ _local6.data = _local5; }; _local6.listData = new ListData(_local10, _local11, this, _local4, _local4, 0); _local6.selected = !((_selectedIndices.indexOf(_local4) == -1)); if ((_local6 is UIComponent)){ (_local6 as UIComponent).drawNow(); }; _local4++; }; } public function get iconFunction():Function{ return (_iconFunction); } public function set iconField(_arg1:String):void{ if (_arg1 == _iconField){ return; }; _iconField = _arg1; invalidate(InvalidationType.DATA); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:int; if (!selectable){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: case Keyboard.DOWN: case Keyboard.END: case Keyboard.HOME: case Keyboard.PAGE_UP: case Keyboard.PAGE_DOWN: moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; case Keyboard.SPACE: if (caretIndex == -1){ caretIndex = 0; }; doKeySelection(caretIndex, _arg1.shiftKey, _arg1.ctrlKey); scrollToSelected(); break; default: _local2 = getNextIndexAtLetter(String.fromCharCode(_arg1.keyCode), selectedIndex); if (_local2 > -1){ selectedIndex = _local2; scrollToSelected(); }; break; }; _arg1.stopPropagation(); } override public function itemToLabel(_arg1:Object):String{ if (_labelFunction != null){ return (String(_labelFunction(_arg1))); }; return (((_arg1[_labelField])!=null) ? String(_arg1[_labelField]) : ""); } public function get labelField():String{ return (_labelField); } override protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ var _local4:int; var _local5:int; var _local6:int; _local4 = Math.max(Math.floor((calculateAvailableHeight() / rowHeight)), 1); _local5 = -1; _local6 = 0; switch (_arg1){ case Keyboard.UP: if (caretIndex > 0){ _local5 = (caretIndex - 1); }; break; case Keyboard.DOWN: if (caretIndex < (length - 1)){ _local5 = (caretIndex + 1); }; break; case Keyboard.PAGE_UP: if (caretIndex > 0){ _local5 = Math.max((caretIndex - _local4), 0); }; break; case Keyboard.PAGE_DOWN: if (caretIndex < (length - 1)){ _local5 = Math.min((caretIndex + _local4), (length - 1)); }; break; case Keyboard.HOME: if (caretIndex > 0){ _local5 = 0; }; break; case Keyboard.END: if (caretIndex < (length - 1)){ _local5 = (length - 1); }; break; }; if (_local5 >= 0){ doKeySelection(_local5, _arg2, _arg3); scrollToSelected(); }; } public function set labelField(_arg1:String):void{ if (_arg1 == _labelField){ return; }; _labelField = _arg1; invalidate(InvalidationType.DATA); } public function set rowCount(_arg1:uint):void{ var _local2:Number; var _local3:Number; _local2 = Number(getStyleValue("contentPadding")); _local3 = ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0; height = (((rowHeight * _arg1) + (2 * _local2)) + _local3); } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ list.x = -(_arg1); super.setHorizontalScrollPosition(_arg1, true); } public function set iconFunction(_arg1:Function):void{ if (_iconFunction == _arg1){ return; }; _iconFunction = _arg1; invalidate(InvalidationType.DATA); } public function get labelFunction():Function{ return (_labelFunction); } override protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ invalidate(InvalidationType.SCROLL); super.setVerticalScrollPosition(_arg1, true); } protected function calculateAvailableHeight():Number{ var _local1:Number; _local1 = Number(getStyleValue("contentPadding")); return (((height - (_local1 * 2)) - ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0)); } override protected function draw():void{ var _local1:Boolean; _local1 = !((contentHeight == (rowHeight * length))); contentHeight = (rowHeight * length); if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; if (_cellRenderer != getStyleValue("cellRenderer")){ _invalidateList(); _cellRenderer = getStyleValue("cellRenderer"); }; }; if (((isInvalid(InvalidationType.SIZE, InvalidationType.STATE)) || (_local1))){ drawLayout(); }; if (isInvalid(InvalidationType.RENDERER_STYLES)){ updateRendererStyles(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.SIZE, InvalidationType.DATA, InvalidationType.SCROLL, InvalidationType.SELECTED)){ drawList(); }; updateChildren(); validate(); } override protected function configUI():void{ useFixedHorizontalScrolling = true; _horizontalScrollPolicy = ScrollPolicy.AUTO; _verticalScrollPolicy = ScrollPolicy.AUTO; super.configUI(); } override public function get rowCount():uint{ return (Math.ceil((calculateAvailableHeight() / rowHeight))); } override protected function initializeAccessibility():void{ if (List.createAccessibilityImplementation != null){ List.createAccessibilityImplementation(this); }; } override public function scrollToIndex(_arg1:int):void{ var _local2:uint; var _local3:uint; drawNow(); _local2 = (Math.floor(((_verticalScrollPosition + availableHeight) / rowHeight)) - 1); _local3 = Math.ceil((_verticalScrollPosition / rowHeight)); if (_arg1 < _local3){ verticalScrollPosition = (_arg1 * rowHeight); } else { if (_arg1 > _local2){ verticalScrollPosition = (((_arg1 + 1) * rowHeight) - availableHeight); }; }; } public function get rowHeight():Number{ return (_rowHeight); } public function set labelFunction(_arg1:Function):void{ if (_labelFunction == _arg1){ return; }; _labelFunction = _arg1; invalidate(InvalidationType.DATA); } public function set rowHeight(_arg1:Number):void{ _rowHeight = _arg1; invalidate(InvalidationType.SIZE); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, SelectableList.getStyleDefinition())); } } }//package fl.controls
Section 232
//NumericStepper (fl.controls.NumericStepper) package fl.controls { import flash.events.*; import flash.display.*; import fl.managers.*; import fl.core.*; import fl.events.*; import flash.ui.*; public class NumericStepper extends UIComponent implements IFocusManagerComponent { protected var upArrow:BaseButton; protected var _stepSize:Number;// = 1 protected var downArrow:BaseButton; protected var _value:Number;// = 1 protected var _minimum:Number;// = 0 protected var _maximum:Number;// = 10 protected var _precision:Number; protected var inputField:TextInput; protected static const DOWN_ARROW_STYLES:Object = {disabledSkin:"downArrowDisabledSkin", downSkin:"downArrowDownSkin", overSkin:"downArrowOverSkin", upSkin:"downArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const TEXT_INPUT_STYLES:Object = {upSkin:"upSkin", disabledSkin:"disabledSkin", textPadding:"textPadding", textFormat:"textFormat", disabledTextFormat:"disabledTextFormat", embedFonts:"embedFonts"}; protected static const UP_ARROW_STYLES:Object = {disabledSkin:"upArrowDisabledSkin", downSkin:"upArrowDownSkin", overSkin:"upArrowOverSkin", upSkin:"upArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {downArrowDisabledSkin:"NumericStepperDownArrow_disabledSkin", downArrowDownSkin:"NumericStepperDownArrow_downSkin", downArrowOverSkin:"NumericStepperDownArrow_overSkin", downArrowUpSkin:"NumericStepperDownArrow_upSkin", upArrowDisabledSkin:"NumericStepperUpArrow_disabledSkin", upArrowDownSkin:"NumericStepperUpArrow_downSkin", upArrowOverSkin:"NumericStepperUpArrow_overSkin", upArrowUpSkin:"NumericStepperUpArrow_upSkin", upSkin:"TextInput_upSkin", disabledSkin:"TextInput_disabledSkin", focusRect:null, focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35, embedFonts:false}; public function NumericStepper(){ _maximum = 10; _minimum = 0; _value = 1; _stepSize = 1; super(); setStyles(); stepSize = _stepSize; } override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.width = (width + (_local2 * 2)); uiFocusRect.height = (height + (_local2 * 2)); }; } public function get minimum():Number{ return (_minimum); } public function set imeMode(_arg1:String):void{ inputField.imeMode = _arg1; } public function set minimum(_arg1:Number):void{ _minimum = _arg1; if (_value < _minimum){ setValue(_minimum, false); }; } public function get maximum():Number{ return (_maximum); } override protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((((_arg1 == inputField)) || (super.isOurFocus(_arg1)))); } public function get nextValue():Number{ var _local1:Number; _local1 = (_value + _stepSize); return ((inRange(_local1)) ? _local1 : _value); } public function set maximum(_arg1:Number):void{ _maximum = _arg1; if (_value > _maximum){ setValue(_maximum, false); }; } protected function setValue(_arg1:Number, _arg2:Boolean=true):void{ var _local3:Number; if (_arg1 == _value){ return; }; _local3 = _value; _value = getValidValue(_arg1); inputField.text = _value.toString(); if (_arg2){ dispatchEvent(new Event(Event.CHANGE, true)); }; } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:Number; if (!enabled){ return; }; _arg1.stopImmediatePropagation(); _local2 = Number(inputField.text); switch (_arg1.keyCode){ case Keyboard.END: setValue(maximum); break; case Keyboard.HOME: setValue(minimum); break; case Keyboard.UP: setValue(nextValue); break; case Keyboard.DOWN: setValue(previousValue); break; case Keyboard.ENTER: setValue(_local2); break; }; } override public function set enabled(_arg1:Boolean):void{ if (_arg1 == enabled){ return; }; super.enabled = _arg1; upArrow.enabled = (downArrow.enabled = (inputField.enabled = _arg1)); } protected function onTextChange(_arg1:Event):void{ _arg1.stopImmediatePropagation(); } public function get previousValue():Number{ var _local1:Number; _local1 = (_value - _stepSize); return ((inRange(_local1)) ? _local1 : _value); } protected function getValidValue(_arg1:Number):Number{ var _local2:Number; if (isNaN(_arg1)){ return (_value); }; _local2 = Number((_stepSize * Math.round((_arg1 / _stepSize))).toFixed(_precision)); if (_local2 > maximum){ return (maximum); }; if (_local2 < minimum){ return (minimum); }; return (_local2); } public function set value(_arg1:Number):void{ setValue(_arg1, false); } public function get stepSize():Number{ return (_stepSize); } protected function passEvent(_arg1:Event):void{ dispatchEvent(_arg1); } public function get imeMode():String{ return (inputField.imeMode); } protected function stepperPressHandler(_arg1:ComponentEvent):void{ setValue(Number(inputField.text), false); switch (_arg1.currentTarget){ case upArrow: setValue(nextValue); break; case downArrow: setValue(previousValue); }; inputField.setFocus(); inputField.textField.setSelection(0, 0); } override protected function focusOutHandler(_arg1:FocusEvent):void{ if (_arg1.eventPhase == 3){ setValue(Number(inputField.text)); }; super.focusOutHandler(_arg1); } protected function inRange(_arg1:Number):Boolean{ return ((((_arg1 >= _minimum)) && ((_arg1 <= _maximum)))); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ setStyles(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; validate(); } override protected function configUI():void{ super.configUI(); upArrow = new BaseButton(); copyStylesToChild(upArrow, UP_ARROW_STYLES); upArrow.autoRepeat = true; upArrow.setSize(21, 12); upArrow.focusEnabled = false; addChild(upArrow); downArrow = new BaseButton(); copyStylesToChild(downArrow, DOWN_ARROW_STYLES); downArrow.autoRepeat = true; downArrow.setSize(21, 12); downArrow.focusEnabled = false; addChild(downArrow); inputField = new TextInput(); copyStylesToChild(inputField, TEXT_INPUT_STYLES); inputField.restrict = "0-9\\-\\.\\,"; inputField.text = _value.toString(); inputField.setSize(21, 24); inputField.focusTarget = (this as IFocusManagerComponent); inputField.focusEnabled = false; inputField.addEventListener(FocusEvent.FOCUS_IN, passEvent); inputField.addEventListener(FocusEvent.FOCUS_OUT, passEvent); addChild(inputField); inputField.addEventListener(Event.CHANGE, onTextChange, false, 0, true); upArrow.addEventListener(ComponentEvent.BUTTON_DOWN, stepperPressHandler, false, 0, true); downArrow.addEventListener(ComponentEvent.BUTTON_DOWN, stepperPressHandler, false, 0, true); } public function get value():Number{ return (_value); } protected function inStep(_arg1:Number):Boolean{ return ((((_arg1 - _minimum) % _stepSize) == 0)); } protected function drawLayout():void{ var _local1:Number; var _local2:Number; _local1 = (width - upArrow.width); _local2 = (height / 2); inputField.setSize(_local1, height); upArrow.height = _local2; downArrow.height = Math.floor(_local2); downArrow.move(_local1, _local2); upArrow.move(_local1, 0); downArrow.drawNow(); upArrow.drawNow(); inputField.drawNow(); } override public function setFocus():void{ if (stage){ stage.focus = inputField.textField; }; } protected function getPrecision():Number{ var _local1:String; _local1 = _stepSize.toString(); if (_local1.indexOf(".") == -1){ return (0); }; return (_local1.split(".").pop().length); } public function get textField():TextInput{ return (inputField); } public function set stepSize(_arg1:Number):void{ _stepSize = _arg1; _precision = getPrecision(); setValue(_value); } protected function setStyles():void{ copyStylesToChild(downArrow, DOWN_ARROW_STYLES); copyStylesToChild(upArrow, UP_ARROW_STYLES); copyStylesToChild(inputField, TEXT_INPUT_STYLES); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 233
//ScrollBar (fl.controls.ScrollBar) package fl.controls { import flash.events.*; import fl.core.*; import fl.events.*; public class ScrollBar extends UIComponent { private var _direction:String;// = "vertical" protected var inDrag:Boolean;// = false protected var upArrow:BaseButton; private var _pageScrollSize:Number;// = 0 protected var downArrow:BaseButton; private var _pageSize:Number;// = 10 private var thumbScrollOffset:Number; private var _maxScrollPosition:Number;// = 0 private var _scrollPosition:Number;// = 0 protected var track:BaseButton; private var _minScrollPosition:Number;// = 0 private var _lineScrollSize:Number;// = 1 protected var thumb:LabelButton; protected static const THUMB_STYLES:Object = {disabledSkin:"thumbDisabledSkin", downSkin:"thumbDownSkin", overSkin:"thumbOverSkin", upSkin:"thumbUpSkin", icon:"thumbIcon", textPadding:0}; public static const WIDTH:Number = 15; protected static const DOWN_ARROW_STYLES:Object = {disabledSkin:"downArrowDisabledSkin", downSkin:"downArrowDownSkin", overSkin:"downArrowOverSkin", upSkin:"downArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const UP_ARROW_STYLES:Object = {disabledSkin:"upArrowDisabledSkin", downSkin:"upArrowDownSkin", overSkin:"upArrowOverSkin", upSkin:"upArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const TRACK_STYLES:Object = {disabledSkin:"trackDisabledSkin", downSkin:"trackDownSkin", overSkin:"trackOverSkin", upSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {downArrowDisabledSkin:"ScrollArrowDown_disabledSkin", downArrowDownSkin:"ScrollArrowDown_downSkin", downArrowOverSkin:"ScrollArrowDown_overSkin", downArrowUpSkin:"ScrollArrowDown_upSkin", thumbDisabledSkin:"ScrollThumb_upSkin", thumbDownSkin:"ScrollThumb_downSkin", thumbOverSkin:"ScrollThumb_overSkin", thumbUpSkin:"ScrollThumb_upSkin", trackDisabledSkin:"ScrollTrack_skin", trackDownSkin:"ScrollTrack_skin", trackOverSkin:"ScrollTrack_skin", trackUpSkin:"ScrollTrack_skin", upArrowDisabledSkin:"ScrollArrowUp_disabledSkin", upArrowDownSkin:"ScrollArrowUp_downSkin", upArrowOverSkin:"ScrollArrowUp_overSkin", upArrowUpSkin:"ScrollArrowUp_upSkin", thumbIcon:"ScrollBar_thumbIcon", repeatDelay:500, repeatInterval:35}; public function ScrollBar(){ _pageSize = 10; _pageScrollSize = 0; _lineScrollSize = 1; _minScrollPosition = 0; _maxScrollPosition = 0; _scrollPosition = 0; _direction = ScrollBarDirection.VERTICAL; inDrag = false; super(); setStyles(); focusEnabled = false; } public function get minScrollPosition():Number{ return (_minScrollPosition); } public function set minScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _arg1, _maxScrollPosition); } public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{ var _local3:Number; _local3 = scrollPosition; _scrollPosition = Math.max(_minScrollPosition, Math.min(_maxScrollPosition, _arg1)); if (_local3 == _scrollPosition){ return; }; if (_arg2){ dispatchEvent(new ScrollEvent(_direction, (scrollPosition - _local3), scrollPosition)); }; updateThumb(); } public function set scrollPosition(_arg1:Number):void{ setScrollPosition(_arg1, true); } public function get pageScrollSize():Number{ return (((_pageScrollSize)==0) ? _pageSize : _pageScrollSize); } public function set pageSize(_arg1:Number):void{ if (_arg1 > 0){ _pageSize = _arg1; }; } public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{ this.pageSize = _arg1; _minScrollPosition = _arg2; _maxScrollPosition = _arg3; if (_arg4 >= 0){ _pageScrollSize = _arg4; }; enabled = (_maxScrollPosition > _minScrollPosition); setScrollPosition(_scrollPosition, false); updateThumb(); } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; downArrow.enabled = (track.enabled = (thumb.enabled = (upArrow.enabled = ((enabled) && ((_maxScrollPosition > _minScrollPosition)))))); updateThumb(); } protected function updateThumb():void{ var _local1:Number; _local1 = ((_maxScrollPosition - _minScrollPosition) + _pageSize); if ((((((track.height <= 12)) || ((_maxScrollPosition <= _minScrollPosition)))) || ((((_local1 == 0)) || (isNaN(_local1)))))){ thumb.height = 12; thumb.visible = false; } else { thumb.height = Math.max(13, ((_pageSize / _local1) * track.height)); thumb.y = (track.y + ((track.height - thumb.height) * ((_scrollPosition - _minScrollPosition) / (_maxScrollPosition - _minScrollPosition)))); thumb.visible = enabled; }; } protected function thumbPressHandler(_arg1:MouseEvent):void{ inDrag = true; thumbScrollOffset = (mouseY - thumb.y); thumb.mouseStateLocked = true; mouseChildren = false; stage.addEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler, false, 0, true); } protected function thumbReleaseHandler(_arg1:MouseEvent):void{ inDrag = false; mouseChildren = true; thumb.mouseStateLocked = false; stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag); stage.removeEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler); } public function set pageScrollSize(_arg1:Number):void{ if (_arg1 >= 0){ _pageScrollSize = _arg1; }; } protected function handleThumbDrag(_arg1:MouseEvent):void{ var _local2:Number; _local2 = Math.max(0, Math.min((track.height - thumb.height), ((mouseY - track.y) - thumbScrollOffset))); setScrollPosition((((_local2 / (track.height - thumb.height)) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition)); } public function set direction(_arg1:String):void{ var _local2:Boolean; if (_direction == _arg1){ return; }; _direction = _arg1; if (isLivePreview){ return; }; setScaleY(1); _local2 = (_direction == ScrollBarDirection.HORIZONTAL); if (((_local2) && (componentInspectorSetting))){ if (rotation == 90){ return; }; setScaleX(-1); rotation = -90; }; if (!componentInspectorSetting){ if (((_local2) && ((rotation == 0)))){ rotation = -90; setScaleX(-1); } else { if (((!(_local2)) && ((rotation == -90)))){ rotation = 0; setScaleX(1); }; }; }; invalidate(InvalidationType.SIZE); } public function set lineScrollSize(_arg1:Number):void{ if (_arg1 > 0){ _lineScrollSize = _arg1; }; } override public function get height():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.width : super.height); } protected function scrollPressHandler(_arg1:ComponentEvent):void{ var _local2:Number; var _local3:Number; _arg1.stopImmediatePropagation(); if (_arg1.currentTarget == upArrow){ setScrollPosition((_scrollPosition - _lineScrollSize)); } else { if (_arg1.currentTarget == downArrow){ setScrollPosition((_scrollPosition + _lineScrollSize)); } else { _local2 = (((track.mouseY / track.height) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition); _local3 = ((pageScrollSize)==0) ? pageSize : pageScrollSize; if (_scrollPosition < _local2){ setScrollPosition(Math.min(_local2, (_scrollPosition + _local3))); } else { if (_scrollPosition > _local2){ setScrollPosition(Math.max(_local2, (_scrollPosition - _local3))); }; }; }; }; } public function get pageSize():Number{ return (_pageSize); } public function set maxScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _minScrollPosition, _arg1); } public function get scrollPosition():Number{ return (_scrollPosition); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ var _local1:Number; if (isInvalid(InvalidationType.SIZE)){ _local1 = super.height; downArrow.move(0, Math.max(upArrow.height, (_local1 - downArrow.height))); track.setSize(WIDTH, Math.max(0, (_local1 - (downArrow.height + upArrow.height)))); updateThumb(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ setStyles(); }; downArrow.drawNow(); upArrow.drawNow(); track.drawNow(); thumb.drawNow(); validate(); } override protected function configUI():void{ super.configUI(); track = new BaseButton(); track.move(0, 14); track.useHandCursor = false; track.autoRepeat = true; track.focusEnabled = false; addChild(track); thumb = new LabelButton(); thumb.label = ""; thumb.setSize(WIDTH, 15); thumb.move(0, 15); thumb.focusEnabled = false; addChild(thumb); downArrow = new BaseButton(); downArrow.setSize(WIDTH, 14); downArrow.autoRepeat = true; downArrow.focusEnabled = false; addChild(downArrow); upArrow = new BaseButton(); upArrow.setSize(WIDTH, 14); upArrow.move(0, 0); upArrow.autoRepeat = true; upArrow.focusEnabled = false; addChild(upArrow); upArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); downArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); track.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumbPressHandler, false, 0, true); enabled = false; } public function get direction():String{ return (_direction); } public function get lineScrollSize():Number{ return (_lineScrollSize); } override public function setSize(_arg1:Number, _arg2:Number):void{ if (_direction == ScrollBarDirection.HORIZONTAL){ super.setSize(_arg2, _arg1); } else { super.setSize(_arg1, _arg2); }; } public function get maxScrollPosition():Number{ return (_maxScrollPosition); } override public function get width():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.height : super.width); } protected function setStyles():void{ copyStylesToChild(downArrow, DOWN_ARROW_STYLES); copyStylesToChild(thumb, THUMB_STYLES); copyStylesToChild(track, TRACK_STYLES); copyStylesToChild(upArrow, UP_ARROW_STYLES); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 234
//ScrollBarDirection (fl.controls.ScrollBarDirection) package fl.controls { public class ScrollBarDirection { public static const HORIZONTAL:String = "horizontal"; public static const VERTICAL:String = "vertical"; } }//package fl.controls
Section 235
//ScrollPolicy (fl.controls.ScrollPolicy) package fl.controls { public class ScrollPolicy { public static const OFF:String = "off"; public static const ON:String = "on"; public static const AUTO:String = "auto"; } }//package fl.controls
Section 236
//SelectableList (fl.controls.SelectableList) package fl.controls { import flash.events.*; import flash.display.*; import flash.utils.*; import fl.managers.*; import fl.core.*; import fl.events.*; import fl.data.*; import fl.controls.listClasses.*; import flash.ui.*; import fl.containers.*; public class SelectableList extends BaseScrollPane implements IFocusManagerComponent { protected var invalidItems:Dictionary; protected var renderedItems:Dictionary; protected var listHolder:Sprite; protected var _allowMultipleSelection:Boolean;// = false protected var lastCaretIndex:int;// = -1 protected var _selectedIndices:Array; protected var availableCellRenderers:Array; protected var list:Sprite; protected var caretIndex:int;// = -1 protected var updatedRendererStyles:Object; protected var preChangeItems:Array; protected var activeCellRenderers:Array; protected var rendererStyles:Object; protected var _verticalScrollPosition:Number; protected var _dataProvider:DataProvider; protected var _horizontalScrollPosition:Number; private var collectionItemImport:SimpleCollectionItem; protected var _selectable:Boolean;// = true private static var defaultStyles:Object = {skin:"List_skin", cellRenderer:CellRenderer, contentPadding:null, disabledAlpha:null}; public static var createAccessibilityImplementation:Function; public function SelectableList(){ _allowMultipleSelection = false; _selectable = true; caretIndex = -1; lastCaretIndex = -1; super(); activeCellRenderers = []; availableCellRenderers = []; invalidItems = new Dictionary(true); renderedItems = new Dictionary(true); _selectedIndices = []; if (dataProvider == null){ dataProvider = new DataProvider(); }; verticalScrollPolicy = ScrollPolicy.AUTO; rendererStyles = {}; updatedRendererStyles = {}; } protected function drawList():void{ } public function set allowMultipleSelection(_arg1:Boolean):void{ if (_arg1 == _allowMultipleSelection){ return; }; _allowMultipleSelection = _arg1; if (((!(_arg1)) && ((_selectedIndices.length > 1)))){ _selectedIndices = [_selectedIndices.pop()]; invalidate(InvalidationType.DATA); }; } public function sortItemsOn(_arg1:String, _arg2:Object=null){ return (_dataProvider.sortOn(_arg1, _arg2)); } public function removeItemAt(_arg1:uint):Object{ return (_dataProvider.removeItemAt(_arg1)); } public function get selectedItem():Object{ return (((_selectedIndices.length)==0) ? null : _dataProvider.getItemAt(selectedIndex)); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!selectable){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: case Keyboard.DOWN: case Keyboard.END: case Keyboard.HOME: case Keyboard.PAGE_UP: case Keyboard.PAGE_DOWN: moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); _arg1.stopPropagation(); break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); _arg1.stopPropagation(); break; }; } public function get selectable():Boolean{ return (_selectable); } public function itemToCellRenderer(_arg1:Object):ICellRenderer{ var _local2:*; var _local3:ICellRenderer; if (_arg1 != null){ for (_local2 in activeCellRenderers) { _local3 = (activeCellRenderers[_local2] as ICellRenderer); if (_local3.data == _arg1){ return (_local3); }; }; }; return (null); } public function getNextIndexAtLetter(_arg1:String, _arg2:int=-1):int{ var _local3:int; var _local4:Number; var _local5:Number; var _local6:Object; var _local7:String; if (length == 0){ return (-1); }; _arg1 = _arg1.toUpperCase(); _local3 = (length - 1); _local4 = 0; while (_local4 < _local3) { _local5 = ((_arg2 + 1) + _local4); if (_local5 > (length - 1)){ _local5 = (_local5 - length); }; _local6 = getItemAt(_local5); if (_local6 == null){ break; }; _local7 = itemToLabel(_local6); if (_local7 == null){ } else { if (_local7.charAt(0).toUpperCase() == _arg1){ return (_local5); }; }; _local4++; }; return (-1); } public function invalidateList():void{ _invalidateList(); invalidate(InvalidationType.DATA); } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; list.mouseChildren = _enabled; } public function get selectedIndices():Array{ return (_selectedIndices.concat()); } public function set selectable(_arg1:Boolean):void{ if (_arg1 == _selectable){ return; }; if (!_arg1){ selectedIndices = []; }; _selectable = _arg1; } public function itemToLabel(_arg1:Object):String{ return (_arg1["label"]); } public function addItemAt(_arg1:Object, _arg2:uint):void{ _dataProvider.addItemAt(_arg1, _arg2); invalidateList(); } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ return (_dataProvider.replaceItemAt(_arg1, _arg2)); } protected function handleDataChange(_arg1:DataChangeEvent):void{ var _local2:int; var _local3:int; var _local4:String; var _local5:uint; _local2 = _arg1.startIndex; _local3 = _arg1.endIndex; _local4 = _arg1.changeType; if (_local4 == DataChangeType.INVALIDATE_ALL){ clearSelection(); invalidateList(); } else { if (_local4 == DataChangeType.INVALIDATE){ _local5 = 0; while (_local5 < _arg1.items.length) { invalidateItem(_arg1.items[_local5]); _local5++; }; } else { if (_local4 == DataChangeType.ADD){ _local5 = 0; while (_local5 < _selectedIndices.length) { if (_selectedIndices[_local5] >= _local2){ _selectedIndices[_local5] = (_selectedIndices[_local5] + (_local2 - _local3)); }; _local5++; }; } else { if (_local4 == DataChangeType.REMOVE){ _local5 = 0; while (_local5 < _selectedIndices.length) { if (_selectedIndices[_local5] >= _local2){ if (_selectedIndices[_local5] <= _local3){ delete _selectedIndices[_local5]; } else { _selectedIndices[_local5] = (_selectedIndices[_local5] - ((_local2 - _local3) + 1)); }; }; _local5++; }; } else { if (_local4 == DataChangeType.REMOVE_ALL){ clearSelection(); } else { if (_local4 == DataChangeType.REPLACE){ } else { selectedItems = preChangeItems; preChangeItems = null; }; }; }; }; }; }; invalidate(InvalidationType.DATA); } protected function _invalidateList():void{ availableCellRenderers = []; while (activeCellRenderers.length > 0) { list.removeChild((activeCellRenderers.pop() as DisplayObject)); }; } protected function updateRendererStyles():void{ var _local1:Array; var _local2:uint; var _local3:uint; var _local4:String; _local1 = availableCellRenderers.concat(activeCellRenderers); _local2 = _local1.length; _local3 = 0; while (_local3 < _local2) { if (_local1[_local3].setStyle == null){ } else { for (_local4 in updatedRendererStyles) { _local1[_local3].setStyle(_local4, updatedRendererStyles[_local4]); }; _local1[_local3].drawNow(); }; _local3++; }; updatedRendererStyles = {}; } public function set selectedItem(_arg1:Object):void{ var _local2:int; _local2 = _dataProvider.getItemIndex(_arg1); selectedIndex = _local2; } public function sortItems(... _args){ return (_dataProvider.sort.apply(_dataProvider, _args)); } public function removeAll():void{ _dataProvider.removeAll(); } protected function handleCellRendererChange(_arg1:Event):void{ var _local2:ICellRenderer; var _local3:uint; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; _dataProvider.invalidateItemAt(_local3); } protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; if (_arg1 == _horizontalScrollPosition){ return; }; _local3 = (_arg1 - _horizontalScrollPosition); _horizontalScrollPosition = _arg1; if (_arg2){ dispatchEvent(new ScrollEvent(ScrollBarDirection.HORIZONTAL, _local3, _arg1)); }; } public function scrollToSelected():void{ scrollToIndex(selectedIndex); } public function invalidateItem(_arg1:Object):void{ if (renderedItems[_arg1] == null){ return; }; invalidItems[_arg1] = true; invalidate(InvalidationType.DATA); } protected function handleCellRendererClick(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:uint; var _local4:int; var _local5:int; var _local6:uint; if (!_enabled){ return; }; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; if (((!(dispatchEvent(new ListEvent(ListEvent.ITEM_CLICK, false, true, _local2.listData.column, _local2.listData.row, _local3, _local2.data)))) || (!(_selectable)))){ return; }; _local4 = selectedIndices.indexOf(_local3); if (!_allowMultipleSelection){ if (_local4 != -1){ return; }; _local2.selected = true; _selectedIndices = [_local3]; lastCaretIndex = (caretIndex = _local3); } else { if (_arg1.shiftKey){ _local6 = ((_selectedIndices.length)>0) ? _selectedIndices[0] : _local3; _selectedIndices = []; if (_local6 > _local3){ _local5 = _local6; while (_local5 >= _local3) { _selectedIndices.push(_local5); _local5--; }; } else { _local5 = _local6; while (_local5 <= _local3) { _selectedIndices.push(_local5); _local5++; }; }; caretIndex = _local3; } else { if (_arg1.ctrlKey){ if (_local4 != -1){ _local2.selected = false; _selectedIndices.splice(_local4, 1); } else { _local2.selected = true; _selectedIndices.push(_local3); }; caretIndex = _local3; } else { _selectedIndices = [_local3]; lastCaretIndex = (caretIndex = _local3); }; }; }; dispatchEvent(new Event(Event.CHANGE)); invalidate(InvalidationType.DATA); } public function get length():uint{ return (_dataProvider.length); } public function get allowMultipleSelection():Boolean{ return (_allowMultipleSelection); } protected function onPreChange(_arg1:DataChangeEvent):void{ switch (_arg1.changeType){ case DataChangeType.REMOVE: case DataChangeType.ADD: case DataChangeType.INVALIDATE: case DataChangeType.REMOVE_ALL: case DataChangeType.REPLACE: case DataChangeType.INVALIDATE_ALL: break; default: preChangeItems = selectedItems; break; }; } public function getRendererStyle(_arg1:String, _arg2:int=-1):Object{ return (rendererStyles[_arg1]); } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; if (_arg1 == _verticalScrollPosition){ return; }; _local3 = (_arg1 - _verticalScrollPosition); _verticalScrollPosition = _arg1; if (_arg2){ dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _local3, _arg1)); }; } protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } public function set selectedIndices(_arg1:Array):void{ if (!_selectable){ return; }; _selectedIndices = ((_arg1)==null) ? [] : _arg1.concat(); invalidate(InvalidationType.SELECTED); } public function get selectedIndex():int{ return (((_selectedIndices.length)==0) ? -1 : _selectedIndices[(_selectedIndices.length - 1)]); } override protected function draw():void{ super.draw(); } override protected function configUI():void{ super.configUI(); listHolder = new Sprite(); addChild(listHolder); listHolder.scrollRect = contentScrollRect; list = new Sprite(); listHolder.addChild(list); } public function addItem(_arg1:Object):void{ _dataProvider.addItem(_arg1); invalidateList(); } protected function handleCellRendererMouseEvent(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:String; _local2 = (_arg1.target as ICellRenderer); _local3 = ((_arg1.type)==MouseEvent.ROLL_OVER) ? ListEvent.ITEM_ROLL_OVER : ListEvent.ITEM_ROLL_OUT; dispatchEvent(new ListEvent(_local3, false, false, _local2.listData.column, _local2.listData.row, _local2.listData.index, _local2.data)); } public function clearRendererStyle(_arg1:String, _arg2:int=-1):void{ delete rendererStyles[_arg1]; updatedRendererStyles[_arg1] = null; invalidate(InvalidationType.RENDERER_STYLES); } protected function handleCellRendererDoubleClick(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:uint; if (!_enabled){ return; }; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; dispatchEvent(new ListEvent(ListEvent.ITEM_DOUBLE_CLICK, false, true, _local2.listData.column, _local2.listData.row, _local3, _local2.data)); } public function get rowCount():uint{ return (0); } public function isItemSelected(_arg1:Object):Boolean{ return ((selectedItems.indexOf(_arg1) > -1)); } public function set dataProvider(_arg1:DataProvider):void{ if (_dataProvider != null){ _dataProvider.removeEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange); _dataProvider.removeEventListener(DataChangeEvent.PRE_DATA_CHANGE, onPreChange); }; _dataProvider = _arg1; _dataProvider.addEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange, false, 0, true); _dataProvider.addEventListener(DataChangeEvent.PRE_DATA_CHANGE, onPreChange, false, 0, true); clearSelection(); invalidateList(); } override protected function drawLayout():void{ super.drawLayout(); contentScrollRect = listHolder.scrollRect; contentScrollRect.width = availableWidth; contentScrollRect.height = availableHeight; listHolder.scrollRect = contentScrollRect; } public function getItemAt(_arg1:uint):Object{ return (_dataProvider.getItemAt(_arg1)); } override protected function initializeAccessibility():void{ if (SelectableList.createAccessibilityImplementation != null){ SelectableList.createAccessibilityImplementation(this); }; } public function scrollToIndex(_arg1:int):void{ } public function removeItem(_arg1:Object):Object{ return (_dataProvider.removeItem(_arg1)); } public function get dataProvider():DataProvider{ return (_dataProvider); } public function set maxHorizontalScrollPosition(_arg1:Number):void{ _maxHorizontalScrollPosition = _arg1; invalidate(InvalidationType.SIZE); } public function setRendererStyle(_arg1:String, _arg2:Object, _arg3:uint=0):void{ if (rendererStyles[_arg1] == _arg2){ return; }; updatedRendererStyles[_arg1] = _arg2; rendererStyles[_arg1] = _arg2; invalidate(InvalidationType.RENDERER_STYLES); } public function invalidateItemAt(_arg1:uint):void{ var _local2:Object; _local2 = _dataProvider.getItemAt(_arg1); if (_local2 != null){ invalidateItem(_local2); }; } public function set selectedItems(_arg1:Array):void{ var _local2:Array; var _local3:uint; var _local4:int; if (_arg1 == null){ selectedIndices = null; return; }; _local2 = []; _local3 = 0; while (_local3 < _arg1.length) { _local4 = _dataProvider.getItemIndex(_arg1[_local3]); if (_local4 != -1){ _local2.push(_local4); }; _local3++; }; selectedIndices = _local2; } public function clearSelection():void{ selectedIndex = -1; } override public function get maxHorizontalScrollPosition():Number{ return (_maxHorizontalScrollPosition); } public function get selectedItems():Array{ var _local1:Array; var _local2:uint; _local1 = []; _local2 = 0; while (_local2 < _selectedIndices.length) { _local1.push(_dataProvider.getItemAt(_selectedIndices[_local2])); _local2++; }; return (_local1); } public function set selectedIndex(_arg1:int):void{ selectedIndices = ((_arg1)==-1) ? null : [_arg1]; } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseScrollPane.getStyleDefinition())); } } }//package fl.controls
Section 237
//TextInput (fl.controls.TextInput) package fl.controls { import flash.events.*; import flash.display.*; import fl.managers.*; import fl.core.*; import fl.events.*; import flash.text.*; import flash.ui.*; public class TextInput extends UIComponent implements IFocusManagerComponent { protected var _html:Boolean;// = false protected var _savedHTML:String; protected var background:DisplayObject; protected var _editable:Boolean;// = true public var textField:TextField; private static var defaultStyles:Object = {upSkin:"TextInput_upSkin", disabledSkin:"TextInput_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:0, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function TextInput(){ _editable = true; _html = false; super(); } override public function drawFocus(_arg1:Boolean):void{ if (focusTarget != null){ focusTarget.drawFocus(_arg1); return; }; super.drawFocus(_arg1); } public function set imeMode(_arg1:String):void{ _imeMode = _arg1; } override protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((((_arg1 == textField)) || (super.isOurFocus(_arg1)))); } protected function handleKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.ENTER){ dispatchEvent(new ComponentEvent(ComponentEvent.ENTER, true)); }; } public function set text(_arg1:String):void{ textField.text = _arg1; _html = false; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); } protected function updateTextFieldType():void{ textField.type = (((enabled) && (editable))) ? TextFieldType.INPUT : TextFieldType.DYNAMIC; textField.selectable = enabled; } public function get selectionEndIndex():int{ return (textField.selectionEndIndex); } public function get editable():Boolean{ return (_editable); } override protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (_arg1.target == this){ stage.focus = textField; }; _local2 = focusManager; if (((editable) && (_local2))){ _local2.showFocusIndicator = true; if (((textField.selectable) && ((textField.selectionBeginIndex == textField.selectionBeginIndex)))){ setSelection(0, textField.length); }; }; super.focusInHandler(_arg1); if (editable){ setIMEMode(true); }; } public function get selectionBeginIndex():int{ return (textField.selectionBeginIndex); } public function set alwaysShowSelection(_arg1:Boolean):void{ textField.alwaysShowSelection = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; updateTextFieldType(); } protected function setEmbedFont(){ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } public function get horizontalScrollPosition():int{ return (textField.scrollH); } public function set condenseWhite(_arg1:Boolean):void{ textField.condenseWhite = _arg1; } public function set displayAsPassword(_arg1:Boolean):void{ textField.displayAsPassword = _arg1; } public function set horizontalScrollPosition(_arg1:int):void{ textField.scrollH = _arg1; } public function get restrict():String{ return (textField.restrict); } public function get textWidth():Number{ return (textField.textWidth); } public function get textHeight():Number{ return (textField.textHeight); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; updateTextFieldType(); } public function get maxChars():int{ return (textField.maxChars); } public function get length():int{ return (textField.length); } public function getLineMetrics(_arg1:int):TextLineMetrics{ return (textField.getLineMetrics(_arg1)); } public function get imeMode():String{ return (_imeMode); } override protected function focusOutHandler(_arg1:FocusEvent):void{ super.focusOutHandler(_arg1); if (editable){ setIMEMode(false); }; } public function set htmlText(_arg1:String):void{ if (_arg1 == ""){ text = ""; return; }; _html = true; _savedHTML = _arg1; textField.htmlText = _arg1; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); } public function get text():String{ return (textField.text); } override public function get enabled():Boolean{ return (super.enabled); } public function get condenseWhite():Boolean{ return (textField.condenseWhite); } public function get alwaysShowSelection():Boolean{ return (textField.alwaysShowSelection); } override protected function draw():void{ var _local1:Object; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawTextFormat(); drawBackground(); _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function handleTextInput(_arg1:TextEvent):void{ _arg1.stopPropagation(); dispatchEvent(new TextEvent(TextEvent.TEXT_INPUT, true, false, _arg1.text)); } override protected function configUI():void{ super.configUI(); tabChildren = true; textField = new TextField(); addChild(textField); updateTextFieldType(); textField.addEventListener(TextEvent.TEXT_INPUT, handleTextInput, false, 0, true); textField.addEventListener(Event.CHANGE, handleChange, false, 0, true); textField.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown, false, 0, true); } public function setSelection(_arg1:int, _arg2:int):void{ textField.setSelection(_arg1, _arg2); } public function get displayAsPassword():Boolean{ return (textField.displayAsPassword); } public function appendText(_arg1:String):void{ textField.appendText(_arg1); } public function set restrict(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ _arg1 = null; }; textField.restrict = _arg1; } public function get htmlText():String{ return (textField.htmlText); } protected function drawBackground():void{ var _local1:DisplayObject; var _local2:String; _local1 = background; _local2 = (enabled) ? "upSkin" : "disabledSkin"; background = getDisplayObjectInstance(getStyleValue(_local2)); if (background == null){ return; }; addChildAt(background, 0); if (((((!((_local1 == null))) && (!((_local1 == background))))) && (contains(_local1)))){ removeChild(_local1); }; } override public function setFocus():void{ stage.focus = textField; } protected function drawLayout():void{ var _local1:Number; _local1 = Number(getStyleValue("textPadding")); if (background != null){ background.width = width; background.height = height; }; textField.width = (width - (2 * _local1)); textField.height = (height - (2 * _local1)); textField.x = (textField.y = _local1); } public function set maxChars(_arg1:int):void{ textField.maxChars = _arg1; } public function get maxHorizontalScrollPosition():int{ return (textField.maxScrollH); } 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(); if (_html){ textField.htmlText = _savedHTML; }; } protected function handleChange(_arg1:Event):void{ _arg1.stopPropagation(); dispatchEvent(new Event(Event.CHANGE, true)); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 238
//ComponentShim (fl.core.ComponentShim) package fl.core { import flash.display.*; public dynamic class ComponentShim extends MovieClip { } }//package fl.core
Section 239
//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 240
//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 241
//DataProvider (fl.data.DataProvider) package fl.data { import flash.events.*; import fl.events.*; public class DataProvider extends EventDispatcher { protected var data:Array; public function DataProvider(_arg1:Object=null){ if (_arg1 == null){ data = []; } else { data = getDataFromObject(_arg1); }; } protected function dispatchPreChangeEvent(_arg1:String, _arg2:Array, _arg3:int, _arg4:int):void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.PRE_DATA_CHANGE, _arg1, _arg2, _arg3, _arg4)); } public function invalidateItemAt(_arg1:int):void{ checkIndex(_arg1, (data.length - 1)); dispatchChangeEvent(DataChangeType.INVALIDATE, [data[_arg1]], _arg1, _arg1); } public function getItemIndex(_arg1:Object):int{ return (data.indexOf(_arg1)); } protected function getDataFromObject(_arg1:Object):Array{ var _local2:Array; var _local3:Array; var _local4:uint; var _local5:Object; var _local6:XML; var _local7:XMLList; var _local8:XML; var _local9:XMLList; var _local10:XML; var _local11:XMLList; var _local12:XML; if ((_arg1 is Array)){ _local3 = (_arg1 as Array); if (_local3.length > 0){ if ((((_local3[0] is String)) || ((_local3[0] is Number)))){ _local2 = []; _local4 = 0; while (_local4 < _local3.length) { _local5 = {label:String(_local3[_local4]), data:_local3[_local4]}; _local2.push(_local5); _local4++; }; return (_local2); }; }; return (_arg1.concat()); //unresolved jump }; if ((_arg1 is DataProvider)){ return (_arg1.toArray()); }; if ((_arg1 is XML)){ _local6 = (_arg1 as XML); _local2 = []; _local7 = _local6.*; for each (_local8 in _local7) { _arg1 = {}; _local9 = _local8.attributes(); for each (_local10 in _local9) { _arg1[_local10.localName()] = _local10.toString(); }; _local11 = _local8.*; for each (_local12 in _local11) { if (_local12.hasSimpleContent()){ _arg1[_local12.localName()] = _local12.toString(); }; }; _local2.push(_arg1); }; return (_local2); //unresolved jump }; throw (new TypeError((("Error: Type Coercion failed: cannot convert " + _arg1) + " to Array or DataProvider."))); } public function removeItemAt(_arg1:uint):Object{ var _local2:Array; checkIndex(_arg1, (data.length - 1)); dispatchPreChangeEvent(DataChangeType.REMOVE, data.slice(_arg1, (_arg1 + 1)), _arg1, _arg1); _local2 = data.splice(_arg1, 1); dispatchChangeEvent(DataChangeType.REMOVE, _local2, _arg1, _arg1); return (_local2[0]); } public function addItem(_arg1:Object):void{ dispatchPreChangeEvent(DataChangeType.ADD, [_arg1], (data.length - 1), (data.length - 1)); data.push(_arg1); dispatchChangeEvent(DataChangeType.ADD, [_arg1], (data.length - 1), (data.length - 1)); } public function sortOn(_arg1:Object, _arg2:Object=null){ var _local3:Array; dispatchPreChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); _local3 = data.sortOn(_arg1, _arg2); dispatchChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); return (_local3); } public function sort(... _args){ var _local2:Array; dispatchPreChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); _local2 = data.sort.apply(data, _args); dispatchChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); return (_local2); } public function addItems(_arg1:Object):void{ addItemsAt(_arg1, data.length); } public function concat(_arg1:Object):void{ addItems(_arg1); } public function clone():DataProvider{ return (new DataProvider(data)); } public function toArray():Array{ return (data.concat()); } public function get length():uint{ return (data.length); } public function addItemAt(_arg1:Object, _arg2:uint):void{ checkIndex(_arg2, data.length); dispatchPreChangeEvent(DataChangeType.ADD, [_arg1], _arg2, _arg2); data.splice(_arg2, 0, _arg1); dispatchChangeEvent(DataChangeType.ADD, [_arg1], _arg2, _arg2); } public function getItemAt(_arg1:uint):Object{ checkIndex(_arg1, (data.length - 1)); return (data[_arg1]); } override public function toString():String{ return ((("DataProvider [" + data.join(" , ")) + "]")); } public function invalidateItem(_arg1:Object):void{ var _local2:uint; _local2 = getItemIndex(_arg1); if (_local2 == -1){ return; }; invalidateItemAt(_local2); } protected function dispatchChangeEvent(_arg1:String, _arg2:Array, _arg3:int, _arg4:int):void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.DATA_CHANGE, _arg1, _arg2, _arg3, _arg4)); } protected function checkIndex(_arg1:int, _arg2:int):void{ if ((((_arg1 > _arg2)) || ((_arg1 < 0)))){ throw (new RangeError((((("DataProvider index (" + _arg1) + ") is not in acceptable range (0 - ") + _arg2) + ")"))); }; } public function addItemsAt(_arg1:Object, _arg2:uint):void{ var _local3:Array; checkIndex(_arg2, data.length); _local3 = getDataFromObject(_arg1); dispatchPreChangeEvent(DataChangeType.ADD, _local3, _arg2, ((_arg2 + _local3.length) - 1)); data.splice.apply(data, [_arg2, 0].concat(_local3)); dispatchChangeEvent(DataChangeType.ADD, _local3, _arg2, ((_arg2 + _local3.length) - 1)); } public function replaceItem(_arg1:Object, _arg2:Object):Object{ var _local3:int; _local3 = getItemIndex(_arg2); if (_local3 != -1){ return (replaceItemAt(_arg1, _local3)); }; return (null); } public function removeItem(_arg1:Object):Object{ var _local2:int; _local2 = getItemIndex(_arg1); if (_local2 != -1){ return (removeItemAt(_local2)); }; return (null); } public function merge(_arg1:Object):void{ var _local2:Array; var _local3:uint; var _local4:uint; var _local5:uint; var _local6:Object; _local2 = getDataFromObject(_arg1); _local3 = _local2.length; _local4 = data.length; dispatchPreChangeEvent(DataChangeType.ADD, data.slice(_local4, data.length), _local4, (this.data.length - 1)); _local5 = 0; while (_local5 < _local3) { _local6 = _local2[_local5]; if (getItemIndex(_local6) == -1){ data.push(_local6); }; _local5++; }; if (data.length > _local4){ dispatchChangeEvent(DataChangeType.ADD, data.slice(_local4, data.length), _local4, (this.data.length - 1)); } else { dispatchChangeEvent(DataChangeType.ADD, [], -1, -1); }; } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ var _local3:Array; checkIndex(_arg2, (data.length - 1)); _local3 = [data[_arg2]]; dispatchPreChangeEvent(DataChangeType.REPLACE, _local3, _arg2, _arg2); data[_arg2] = _arg1; dispatchChangeEvent(DataChangeType.REPLACE, _local3, _arg2, _arg2); return (_local3[0]); } public function invalidate():void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.DATA_CHANGE, DataChangeType.INVALIDATE_ALL, data.concat(), 0, data.length)); } public function removeAll():void{ var _local1:Array; _local1 = data.concat(); dispatchPreChangeEvent(DataChangeType.REMOVE_ALL, _local1, 0, _local1.length); data = []; dispatchChangeEvent(DataChangeType.REMOVE_ALL, _local1, 0, _local1.length); } } }//package fl.data
Section 242
//SimpleCollectionItem (fl.data.SimpleCollectionItem) package fl.data { public dynamic class SimpleCollectionItem { public var data:String; public var label:String; public function toString():String{ return ((((("[SimpleCollectionItem: " + label) + ",") + data) + "]")); } } }//package fl.data
Section 243
//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 244
//DataChangeEvent (fl.events.DataChangeEvent) package fl.events { import flash.events.*; public class DataChangeEvent extends Event { protected var _items:Array; protected var _endIndex:uint; protected var _changeType:String; protected var _startIndex:uint; public static const PRE_DATA_CHANGE:String = "preDataChange"; public static const DATA_CHANGE:String = "dataChange"; public function DataChangeEvent(_arg1:String, _arg2:String, _arg3:Array, _arg4:int=-1, _arg5:int=-1):void{ super(_arg1); _changeType = _arg2; _startIndex = _arg4; _items = _arg3; _endIndex = ((_arg5)==-1) ? _startIndex : _arg5; } public function get changeType():String{ return (_changeType); } public function get startIndex():uint{ return (_startIndex); } public function get items():Array{ return (_items); } override public function clone():Event{ return (new DataChangeEvent(type, _changeType, _items, _startIndex, _endIndex)); } override public function toString():String{ return (formatToString("DataChangeEvent", "type", "changeType", "startIndex", "endIndex", "bubbles", "cancelable")); } public function get endIndex():uint{ return (_endIndex); } } }//package fl.events
Section 245
//DataChangeType (fl.events.DataChangeType) package fl.events { public class DataChangeType { public static const ADD:String = "add"; public static const REMOVE:String = "remove"; public static const REMOVE_ALL:String = "removeAll"; public static const CHANGE:String = "change"; public static const REPLACE:String = "replace"; public static const INVALIDATE:String = "invalidate"; public static const INVALIDATE_ALL:String = "invalidateAll"; public static const SORT:String = "sort"; } }//package fl.events
Section 246
//ListEvent (fl.events.ListEvent) package fl.events { import flash.events.*; public class ListEvent extends Event { protected var _index:int; protected var _item:Object; protected var _columnIndex:int; protected var _rowIndex:int; public static const ITEM_DOUBLE_CLICK:String = "itemDoubleClick"; public static const ITEM_ROLL_OUT:String = "itemRollOut"; public static const ITEM_ROLL_OVER:String = "itemRollOver"; public static const ITEM_CLICK:String = "itemClick"; public function ListEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:int=-1, _arg5:int=-1, _arg6:int=-1, _arg7:Object=null){ super(_arg1, _arg2, _arg3); _rowIndex = _arg5; _columnIndex = _arg4; _index = _arg6; _item = _arg7; } public function get rowIndex():Object{ return (_rowIndex); } public function get index():int{ return (_index); } public function get item():Object{ return (_item); } public function get columnIndex():int{ return (_columnIndex); } override public function clone():Event{ return (new ListEvent(type, bubbles, cancelable, _columnIndex, _rowIndex)); } override public function toString():String{ return (formatToString("ListEvent", "type", "bubbles", "cancelable", "columnIndex", "rowIndex", "index", "item")); } } }//package fl.events
Section 247
//ScrollEvent (fl.events.ScrollEvent) package fl.events { import flash.events.*; public class ScrollEvent extends Event { private var _position:Number; private var _direction:String; private var _delta:Number; public static const SCROLL:String = "scroll"; public function ScrollEvent(_arg1:String, _arg2:Number, _arg3:Number){ super(ScrollEvent.SCROLL, false, false); _direction = _arg1; _delta = _arg2; _position = _arg3; } override public function clone():Event{ return (new ScrollEvent(_direction, _delta, _position)); } public function get position():Number{ return (_position); } override public function toString():String{ return (formatToString("ScrollEvent", "type", "bubbles", "cancelable", "direction", "delta", "position")); } public function get delta():Number{ return (_delta); } public function get direction():String{ return (_direction); } } }//package fl.events
Section 248
//FocusManager (fl.managers.FocusManager) package fl.managers { import flash.events.*; import flash.display.*; import flash.utils.*; import fl.core.*; import fl.controls.*; 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 249
//IFocusManager (fl.managers.IFocusManager) package fl.managers { import flash.display.*; import fl.controls.*; 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 250
//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 251
//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 252
//StyleManager (fl.managers.StyleManager) package fl.managers { import flash.utils.*; import fl.core.*; 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 253
//Back (fl.motion.easing.Back) package fl.motion.easing { public class Back { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0):Number{ if (!_arg5){ _arg5 = 1.70158; }; _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 1)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0):Number{ if (!_arg5){ _arg5 = 1.70158; }; _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * (((_arg5 + 1) * _arg1) - _arg5)) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0):Number{ if (!_arg5){ _arg5 = 1.70158; }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ _arg5 = (_arg5 * 1.525); return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) - _arg5))) + _arg2)); }; _arg1 = (_arg1 - 2); _arg5 = (_arg5 * 1.525); return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 2)) + _arg2)); } } }//package fl.motion.easing
Section 254
//Flag (game.display.Flag) package game.display { import flash.display.*; import flash.geom.*; import flash.filters.*; public class Flag { private var output:BitmapData; private var width:Number; private var light:BitmapData; private var displacement:DisplacementMapFilter; private var perlinNoiseOffset:Array; private var source:BitmapData; private var flagOffset:Point; private var gray:ColorMatrixFilter; private var height:Number; private var flag:BitmapData; private var perlinNoiseFallOff:BitmapData; private var perlinNoiseSeed:Number; private var lightContrast:ColorTransform; private var bounds:Rectangle; private var perlinNoiseBitmapData:BitmapData; private static var IDENTITY:Matrix = new Matrix(); private static var ORIGIN:Point = new Point(); public function Flag(_arg1:BitmapData, _arg2:BitmapData){ this.source = _arg1; this.output = _arg2; create(); } private function create():void{ width = output.width; height = output.height; bounds = output.rect; flag = new BitmapData(width, height, true, 0); flagOffset = new Point(((width - source.width) / 2), ((height - source.height) / 2)); createGrayFilter(); createPerlinNoiseFallOffGradient(); flag.copyPixels(source, source.rect, flagOffset); perlinNoiseBitmapData = new BitmapData(width, height, false, 0); perlinNoiseOffset = [new Point(), new Point()]; perlinNoiseSeed = Math.floor((Math.random() * 0x0100)); displacement = new DisplacementMapFilter(perlinNoiseBitmapData, ORIGIN, 2, 4, (0.125 * source.width), (0.2 * source.height), "ignore"); light = new BitmapData(width, height, true, 0); lightContrast = new ColorTransform(3, 3, 3, 0.5, 0, 0, 0, 0); } public function update():void{ flag.copyPixels(source, source.rect, flagOffset); } public function appearMoreFabric():void{ var _local1:BitmapData = new BitmapData(source.width, source.height, false, 0); } public function destroy():void{ flag.dispose(); perlinNoiseFallOff.dispose(); perlinNoiseBitmapData.dispose(); } private function createPerlinNoiseFallOffGradient():void{ perlinNoiseFallOff = new BitmapData(width, height, true, 0); } public function render():void{ output.fillRect(bounds, 0); perlinNoiseOffset[0].x = (perlinNoiseOffset[0].x + (0.03 * source.width)); perlinNoiseOffset[1].x = (perlinNoiseOffset[1].x + (0.03 * source.height)); perlinNoiseBitmapData.perlinNoise((1 * source.width), (1 * source.height), 2, perlinNoiseSeed, false, true, 6, false, perlinNoiseOffset); perlinNoiseBitmapData.copyPixels(perlinNoiseFallOff, bounds, ORIGIN, perlinNoiseFallOff, ORIGIN, true); output.applyFilter(flag, bounds, ORIGIN, displacement); light.copyPixels(perlinNoiseBitmapData, bounds, ORIGIN, output, ORIGIN); light.applyFilter(light, bounds, ORIGIN, gray); output.draw(light, IDENTITY, lightContrast, "overlay"); } private function createGrayFilter():void{ gray = new ColorMatrixFilter([0, 0, 0.35, 0, 0, 0, 0, 0.35, 0, 0, 0, 0, 0.35, 0, 0, 0, 0, 0.35, 0.4, 0]); } public function getFlagBitmapData():BitmapData{ return (flag); } } }//package game.display
Section 255
//Dust (game.effects.Dust) package game.effects { public class Dust { private var frames:int; private var frameRandomiser:int;// = 5 public var frame:int;// = 0 public var x:Number;// = 0 public var y:Number;// = 0 private var ys:Number; private var xs:Number; public var killMe:Boolean;// = false public function Dust(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){ frame = Math.floor(((Math.random() * frameRandomiser) + 1)); frames = (_arg1 * _arg4); xs = _arg2; ys = _arg3; } public function render():void{ x = (x + xs); y = (y + ys); frame++; if (frame > frames){ frame = frames; killMe = true; }; } } }//package game.effects
Section 256
//DustManager (game.effects.DustManager) package game.effects { import flash.display.*; import game.vehicle.*; import game.track.*; import flash.geom.*; import assets.*; import game.utils.*; public class DustManager { private var srcTileHeight:Number;// = 80 private var dustSpriteSheet:SpriteSheet; private var m_bitmapData:BitmapData; private var vehicleArray:Array; private var m_roadType:String; private var dustTileWidth:Number; private var m_render:Boolean; private var drift:Object; private var vehicle:Vehicle; private var DustsCount:int;// = 0 private var srcTileWidth:Number;// = 80 private var tileWidth:Number;// = 150 private var m_dustMovieClip:MovieClip; private var DustDisplayMinSpeed:Number;// = 1 private var dustTileFrames:int;// = 18 private var dustTileHeight:Number; private var DustSpeedRetardation:Number;// = 0.03 private var i:int;// = 0 private var maxDrifts:int;// = 200 private var DustDisplayMaxSpeed:Number;// = 25 private var tileHeight:Number;// = 150 private var m_track:Track; private var speedPercent:Number; private var DustsArray:Array; public function DustManager(_arg1:BitmapData, _arg2:Array, _arg3:Track){ DustsArray = new Array(); super(); m_bitmapData = _arg1; m_track = _arg3; vehicleArray = _arg2; switch (m_track.backgroundType){ default: m_dustMovieClip = new MovieClipEffectDustDesert(); break; case TrackTypes.BACKGROUND_SNOW: m_dustMovieClip = new MovieClipEffectDustSnow(); break; }; dustSpriteSheet = new SpriteSheet(m_dustMovieClip, 120, 120, 0, 1.5, 0, 1.5, 0, 0, dustTileFrames); dustTileWidth = dustSpriteSheet.getWidth(); dustTileHeight = dustSpriteSheet.getHeight(); m_dustMovieClip = null; m_roadType = m_track.roadType; } public function render(_arg1:Number, _arg2:Number):void{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:int; while (_local6 < vehicleArray.length) { if ((((m_roadType == TrackTypes.ROAD_DESERT)) || ((m_roadType == TrackTypes.ROAD_SNOW)))){ m_render = true; } else { m_render = false; }; vehicle = vehicleArray[_local6]; if (!m_render){ if (vehicle.isVisible){ if (vehicle.canMakeDust()){ m_render = true; }; }; }; _local3 = -(vehicle.vx); _local4 = -(vehicle.vy); _local5 = vehicle.speed; _local3 = (_local3 * DustSpeedRetardation); _local4 = (_local4 * DustSpeedRetardation); if (m_render){ if ((((DustsArray.length < maxDrifts)) && ((vehicle.acceleration >= 0)))){ if (_local5 > DustDisplayMinSpeed){ _local5 = Math.min(DustDisplayMaxSpeed, _local5); speedPercent = (_local5 / DustDisplayMaxSpeed); createDust(vehicle.dustTarget, _local3, _local4); }; }; }; _local6++; }; DustsCount = DustsArray.length; while (DustsCount--) { drift = DustsArray[DustsCount]; drift.render(); if (drift.killMe){ DustsArray.splice(DustsCount, 1); } else { dustSpriteSheet.draw(m_bitmapData, int(drift.x), int(drift.y), drift.frame); }; }; } public function createDust(_arg1:Point, _arg2:Number, _arg3:Number):void{ var _local4:Dust = new Dust(dustTileFrames, _arg2, _arg3, speedPercent); _local4.x = _arg1.x; _local4.y = _arg1.y; DustsArray.push(_local4); } public function destroy():void{ dustSpriteSheet.destroy(); DustsArray = null; drift = null; m_bitmapData = null; vehicleArray = null; vehicle = null; m_track = null; } } }//package game.effects
Section 257
//EffectsManager (game.effects.EffectsManager) package game.effects { import flash.display.*; import game.track.*; import game.*; public class EffectsManager extends Sprite { private var m_effect; private var i:int; private var m_bitmapData:BitmapData; private var m_effectsArray:Array; private var m_camera:Camera; private var m_vehicleArray:Array; public function EffectsManager(_arg1:BitmapData, _arg2:Array, _arg3:Camera, _arg4:Track, _arg5:Bitmap){ m_effectsArray = []; super(); m_bitmapData = _arg1; m_camera = _arg3; m_vehicleArray = _arg2; mouseEnabled = false; mouseChildren = false; name = "Effects Manager"; var _local6:int; while (_local6 < _arg4.effects.length) { switch (String(_arg4.effects[_local6])){ case "dust": m_effect = new DustManager(m_bitmapData, m_vehicleArray, _arg4); m_effectsArray.push(m_effect); _arg5.blendMode = BlendMode.NORMAL; break; case "rain": m_effect = new RainManager(m_bitmapData, m_vehicleArray, m_camera); m_effectsArray.push(m_effect); _arg5.blendMode = BlendMode.NORMAL; break; case "night": m_effect = new LightManager(m_bitmapData, m_vehicleArray); m_effectsArray.push(m_effect); _arg5.blendMode = BlendMode.MULTIPLY; break; }; _local6++; }; } public function destroy():void{ i = 0; while (i < m_effectsArray.length) { try { m_effectsArray[i].destroy(); m_effectsArray[i] = null; } catch(e:Error) { }; i++; }; m_effectsArray = []; } public function render(_arg1:Number, _arg2:Number):void{ i = 0; while (i < m_effectsArray.length) { if (!Constants.TRANSPARENCY){ m_effectsArray[i].render(_arg1, _arg2); }; i++; }; } } }//package game.effects
Section 258
//LightManager (game.effects.LightManager) package game.effects { import flash.display.*; import flash.utils.*; import flash.geom.*; import flash.text.*; import assets.*; public class LightManager { private var m_stageRectangle:Rectangle; private var m_light:Sprite; private var m_vehicleLength:int; private var m_bitmapData:BitmapData; private var m_black:Sprite; private var m_lightLength:int;// = 525 private var m_lightArray:Array; private var m_lightmap:Sprite; private var m_vehicleArray:Array; public function LightManager(_arg1:BitmapData, _arg2:Array){ m_lightArray = []; super(); m_bitmapData = _arg1; m_vehicleArray = _arg2; m_stageRectangle = new Rectangle(0, 0, Constants.STAGE_WIDTH, Constants.STAGE_HEIGHT); m_lightmap = new Sprite(); m_black = new MovieClipEffectBlack(); m_black.alpha = 0.3; m_black.cacheAsBitmap = true; m_lightmap.addChild(m_black); m_vehicleLength = m_vehicleArray.length; var _local3:int; while (_local3 < m_vehicleLength) { m_light = new MovieClipEffectLight(); m_lightmap.addChild(m_light); m_lightArray.push(m_light); _local3++; }; } public function destroy():void{ var _local1:int; while (_local1 < m_vehicleLength) { m_lightArray[_local1].removeChild(m_light); m_lightArray[_local1] = null; _local1++; }; } public function render(_arg1:Number, _arg2:Number):void{ var _local3:Number; var _local4:Number; var _local5:Boolean; var _local6:int; while (_local6 < m_vehicleLength) { _local5 = false; _local3 = (m_vehicleArray[_local6].x + _arg1); _local4 = (m_vehicleArray[_local6].y + _arg2); if ((((_local3 > -(m_lightLength))) && ((_local3 < (Constants.STAGE_WIDTH + m_lightLength))))){ if ((((_local4 > -(m_lightLength))) && ((_local4 < (Constants.STAGE_HEIGHT + m_lightLength))))){ _local5 = true; }; }; if (_local5){ m_lightArray[_local6].rotation = (m_vehicleArray[_local6].angle * Constants.RAD2DEG); m_lightArray[_local6].x = _local3; m_lightArray[_local6].y = _local4; m_lightArray[_local6].visible = true; } else { m_lightArray[_local6].x = 0; m_lightArray[_local6].y = 0; m_lightArray[_local6].visible = false; }; _local6++; }; m_bitmapData.draw(m_lightmap, new Matrix()); } } }//package game.effects
Section 259
//RainDrop (game.effects.RainDrop) package game.effects { import flash.display.*; import game.vehicle.*; import com.foxaweb.utils.*; public class RainDrop { public var y:Number;// = 0 public var remove:Boolean;// = false private var _sy:Number; private var m_length:Number; public var z:Number;// = 0 private var _sx:Number; public var gravity:Number;// = 40 private var _oldx:Number;// = NAN private var _oldy:Number;// = NAN public var dz:Number;// = 0 private var m_colour:Number;// = 4294967295 public var x:Number;// = 0 private var _x:Number;// = 0 private var _y:Number;// = 0 private var m_scale:Number; public function RainDrop(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number){ _x = _arg3; _y = _arg4; z = _arg5; dz = _arg6; _sx = _arg1; _sy = _arg2; m_length = _arg7; } public function draw(_arg1:BitmapData, _arg2:Vehicle, _arg3:Number=NaN, _arg4:Number=NaN):void{ if (z > 500){ remove = true; } else { z = (z + gravity); m_scale = (dz / (dz + (z - m_length))); _oldx = (_x * m_scale); _oldy = (_y * m_scale); m_scale = (dz / (dz + z)); x = (_x * m_scale); y = (_y * m_scale); if (((_arg3) && (_arg4))){ Raster.line(_arg1, (_arg3 + _oldx), (_arg4 + _oldy), (_arg3 + x), (_arg4 + y), m_colour); } else { Raster.line(_arg1, (_sx + _oldx), (_sy + _oldy), (_sx + x), (_sy + y), m_colour); }; }; } } }//package game.effects
Section 260
//RainManager (game.effects.RainManager) package game.effects { import flash.display.*; import flash.geom.*; import game.*; import flash.text.*; import assets.*; import flash.filters.*; import com.foxaweb.utils.*; public class RainManager extends Sprite { private var m_point:Point; private var m_filter:ColorMatrixFilter; private var m_bitmapData:BitmapData; private var m_camera:Camera; private var m_centerX:Number; private var m_centerY:Number; private var m_dropsHeight:int;// = -300 private var m_rainDrops:Array; private var m_vehicleArray:Array; private var m_focalLength:Number;// = 1000 private var m_stageRectangle:Rectangle; private var m_rainDropsLength:int; private var m_rainDropsMax:int;// = 500 private var m_dz:Number; private var m_effectBitmapData:BitmapData; private var m_container:Sprite; private var m_clouds:Sprite; private var m_rainDrop:RainDrop; private var m_length:Number; private var m_isHeavy:Boolean; private var m_dropsFrame:int;// = 10 public function RainManager(_arg1:BitmapData, _arg2:Array, _arg3:Camera, _arg4:Boolean=true){ m_rainDrops = []; m_dz = (m_focalLength / 2); m_filter = new ColorMatrixFilter([1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0.88, 0]); super(); m_bitmapData = _arg1; m_camera = _arg3; m_vehicleArray = _arg2; m_isHeavy = _arg4; m_stageRectangle = new Rectangle(0, 0, Constants.STAGE_WIDTH, Constants.STAGE_HEIGHT); m_effectBitmapData = new BitmapData(Constants.STAGE_WIDTH, Constants.STAGE_WIDTH, true); m_clouds = new MovieClipEffectClouds(); m_clouds.x = 0; m_clouds.y = 0; m_clouds.width = 620; m_clouds.height = 620; if (m_isHeavy){ m_clouds.alpha = 0.5; } else { m_clouds.alpha = 0.4; }; m_container = new Sprite(); m_container.addChild(m_clouds); } public function render(_arg1:Number, _arg2:Number):void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local3:int; while (_local3 < m_dropsFrame) { if (m_rainDrops.length < m_rainDropsMax){ _local4 = (((Math.random() * Constants.STAGE_WIDTH) * 1.5) - (Constants.STAGE_WIDTH * 0.75)); _local5 = (((Math.random() * Constants.STAGE_HEIGHT) * 1.5) - (Constants.STAGE_HEIGHT * 0.75)); _local6 = m_dropsHeight; if (m_isHeavy){ m_length = ((Math.random() * 5) + 20); } else { m_length = ((Math.random() * 5) + 5); }; m_rainDrop = new RainDrop((Constants.STAGE_WIDTH / 2), (Constants.STAGE_HEIGHT / 2), _local4, _local5, _local6, m_dz, m_length); m_rainDrops.push(m_rainDrop); }; _local3++; }; m_rainDropsLength = m_rainDrops.length; while (m_rainDropsLength--) { m_rainDrop = m_rainDrops[m_rainDropsLength]; if (m_rainDrop.remove){ m_rainDrops.splice(m_rainDropsLength, 1); } else { m_rainDrop.draw(m_effectBitmapData, m_vehicleArray[0], ((Constants.STAGE_WIDTH * 0.5) - (m_camera.targetx * 2)), ((Constants.STAGE_HEIGHT * 0.5) - (m_camera.targety * 2))); }; }; m_effectBitmapData.applyFilter(m_effectBitmapData, m_stageRectangle, new Point(0, 0), m_filter); m_bitmapData.draw(m_effectBitmapData); m_bitmapData.draw(m_container); } } }//package game.effects
Section 261
//CarDisplay (game.hud.CarDisplay) package game.hud { import flash.events.*; import flash.display.*; import game.vehicle.*; import flash.utils.*; import sound.*; import com.markfennell.utils.*; import game.*; import org.casalib.display.*; import assets.*; import fl.motion.easing.*; public class CarDisplay extends CasaSprite { private var m_selectedValue:int;// = 0 private var m_carMovieClip:MovieClip; private var m_offscreenRight:int;// = 800 private var m_carData:XML; private var m_buttonSelect:SimpleButton; private var m_fx:Fx; private var m_buttonReft:SimpleButton; private var m_ui:MovieClip; private var m_current:int;// = 0 private var m_buttonLeft:SimpleButton; private var m_selected:int;// = -1 private var m_carCost:int;// = 0 private var m_offscreenLeft:int;// = -800 private var m_offsetx:Number;// = 0 private var m_offsety:Number;// = 0 private var m_direction:String;// = "fromRighttoLeft" public function CarDisplay(){ m_fx = new Fx(); super(); m_ui = new MovieClipCars(); m_ui.x = m_offscreenRight; addChild(m_ui); if (!isNaN(User.getInstance().carID)){ m_selected = User.getInstance().carID; m_current = m_selected; }; displayCars(); } private function displayCars():void{ m_carData = VehicleManager.getVehicleData(m_current); m_ui.nameText.text = m_carData.name.toUpperCase(); m_ui.descriptionText.text = String(m_carData.description).toUpperCase(); var _local1:* = getDefinitionByName(m_carData.sprite); m_carMovieClip = new (_local1); m_carMovieClip.x = 310; m_carMovieClip.y = 250; m_carMovieClip.scaleX = 1; m_carMovieClip.scaleY = 1; _local1 = null; m_ui.addChild(m_carMovieClip); m_ui.btnSelect.visible = false; m_ui.btnLeft.visible = false; m_ui.btnRight.visible = false; m_ui.lock.visible = true; if (m_direction == "fromRighttoLeft"){ showFromRightCar(); } else { showFromLeftCar(); }; if (User.getInstance().isCarUnlocked(m_current)){ m_ui.btnSelect.visible = true; m_ui.lock.visible = false; }; if (m_current > 0){ m_ui.btnLeft.visible = true; m_ui.btnLeft.addEventListener(MouseEvent.CLICK, displayNextFromLeft); }; if (m_current < (VehicleManager.vehiclesLength - 1)){ m_ui.btnRight.visible = true; m_ui.btnRight.addEventListener(MouseEvent.CLICK, displayNextFromRight); }; m_ui.btnSelect.addEventListener(MouseEvent.CLICK, selectedCar); m_ui.btnBack.addEventListener(MouseEvent.CLICK, handleBackClick); } private function displayNextFromLeft(_arg1:MouseEvent):void{ SoundManager.getInstance().playSound("Click"); m_ui.removeChild(m_carMovieClip); m_current--; m_direction = "fromLeftToRight"; m_fx.zoomIn(m_ui, 0, 0.25, m_ui.x, m_ui.y, m_offscreenRight, m_ui.y, 20, "easeOutQuad", displayCars); } override public function destroy():void{ endRender(); try { m_ui.removeChild(m_carMovieClip); } catch(e:Error) { }; removeChild(m_ui); m_ui = null; super.destroy(); } private function showFromLeftCar():void{ m_fx.zoomIn(m_ui, 0, 0.25, m_offscreenLeft, m_ui.y, 0, m_ui.y, 20, "easeOutQuad", startRender); } private function endRender():void{ removeEventListener(Event.ENTER_FRAME, render); } private function handleBackClick(_arg1:MouseEvent):void{ SoundManager.getInstance().playSound("Click"); Broadcaster.dispatchEvent(new Event(Credits.CAR_BACK)); } private function render(_arg1:Event):void{ m_carMovieClip.body.play(); } private function startRender():void{ addEventListener(Event.ENTER_FRAME, render); } private function selectedCar(_arg1:MouseEvent=null):void{ SoundManager.getInstance().playSound("Ching"); User.getInstance().carID = m_current; User.getInstance().addMoney(-(m_carCost)); Broadcaster.dispatchEvent(new Event(Credits.CAR_SELECTED)); } private function displayNextFromRight(_arg1:MouseEvent):void{ SoundManager.getInstance().playSound("Click"); m_ui.removeChild(m_carMovieClip); m_current++; m_direction = "fromRighttoLeft"; m_fx.zoomIn(m_ui, 0, 0.25, m_ui.x, m_ui.y, m_offscreenLeft, m_ui.y, 20, "easeOutQuad", displayCars); } private function showFromRightCar():void{ m_fx.zoomIn(m_ui, 0, 0.25, m_offscreenRight, m_ui.y, 0, m_ui.y, 20, "easeOutQuad", startRender); } } }//package game.hud
Section 262
//Countdown (game.hud.Countdown) package game.hud { import flash.events.*; import flash.display.*; import flash.utils.*; import game.*; import flash.text.*; import assets.*; import fl.motion.easing.*; public class Countdown extends MovieClip { private var m_displayArray:Array; private var m_displayInterval:int; private var m_displayTime:int;// = 150 private var m_countdown:Sprite; private var m_movieClipCount01:MovieClipCount01; private var m_movieClipCount02:MovieClipCount02; private var m_movieClipCount03:MovieClipCount03; private var m_movieClipCountGo:MovieClipCountGo; private var m_fx:Fx; private var m_displayCounter:int; public function Countdown(){ m_fx = new Fx(); super(); m_displayArray = ["assets.MovieClipCount03", "assets.MovieClipCount02", "assets.MovieClipCount01", "assets.MovieClipCountGo"]; m_displayCounter = -1; } private function destroy():void{ removeChild(m_countdown); } public function hide():void{ m_fx.fade(m_countdown, 0.4, 0, m_countdown.alpha, 0, displayDigit); startRacing(); } private function displayDigit():void{ var _local1:*; m_displayCounter++; if (m_displayCounter < m_displayArray.length){ if (m_countdown){ removeChild(m_countdown); }; _local1 = getDefinitionByName(m_displayArray[m_displayCounter]); m_countdown = new (_local1); m_countdown.x = -300; m_countdown.y = 250; m_fx.zoomIn(m_countdown, 0, 0.4, 1000, m_countdown.y, -300, m_countdown.y, 20, "easeOutQuad", zoomOut); addChild(m_countdown); }; } public function reveal():void{ if (Constants.TRANSPARENCY){ setTimeout(startRacing, m_displayTime); } else { setTimeout(displayDigit, m_displayTime); }; } private function startRacing():void{ dispatchEvent(new Event(Racers.RACE_START, true, false)); } public function zoomOut():void{ if (m_displayCounter < (m_displayArray.length - 1)){ m_fx.zoomIn(m_countdown, 0, 0.4, m_countdown.x, m_countdown.y, -1000, m_countdown.y, 20, "easeOutQuad", displayDigit); } else { hide(); }; } } }//package game.hud
Section 263
//Hud (game.hud.Hud) package game.hud { import flash.events.*; import flash.display.*; import game.vehicle.*; import game.track.*; import game.tiles.*; import game.*; import flash.text.*; import assets.*; import flash.ui.*; public class Hud extends MovieClip { private var m_track:Track; private var m_speedo:MovieClip; private var m_lapDisplayArray:Array; private var m_hud:MovieClip; private var m_stage:Stage; private var m_lapDisplayOffsetY:int;// = 41 private var m_finishTimesDisplays:Array; private var m_lapDisplayOffsetX:int;// = 15 private var m_position:MovieClip; private var m_dialMinAngle:Number;// = 180 private var m_lapDisplaySpacing:int;// = 16 private var m_panelStart:MovieClipPanelStart; private var m_minimap:Minimap; private var m_dialRange:Number; private var m_nitroDisplay:Array; private var m_countdown:Countdown; private var m_fx:Fx; private var m_panelFinish:MovieClipPanelFinish; private var m_dialMaxAngle:Number;// = 350 private var m_timer:TimeKeeper; private var m_keyboard:Keyboard; public function Hud(_arg1:Track){ m_dialRange = (m_dialMaxAngle - m_dialMinAngle); m_lapDisplayArray = []; m_finishTimesDisplays = []; m_nitroDisplay = []; m_fx = new Fx(); super(); m_track = _arg1; m_hud = new MovieClipHud(); addChild(m_hud); m_position = m_hud.position; m_speedo = m_hud.speedo; m_hud.name = "HUD"; m_hud.mouseEnabled = false; m_hud.mouseChildren = false; m_hud.x = 600; m_hud.y = 0; m_speedo.dial.rotation = m_dialMinAngle; updateLaps(0); m_hud.laps.lapsText.text = m_track.laps; } public function startTimer():void{ m_timer = new TimeKeeper(0); m_timer.start(); } public function displayLap(_arg1:int, _arg2:int):void{ var _local3:LapDisplay = new LapDisplay(_arg1, _arg2); _local3.x = m_lapDisplayOffsetX; _local3.y = (m_lapDisplayOffsetY + (_arg1 * m_lapDisplaySpacing)); addChild(_local3); m_lapDisplayArray.push(_local3); updateLaps((_arg1 + 1)); } public function destroy():void{ var i:int; var j:int; while (j < m_nitroDisplay.length) { m_hud.removeChild(m_nitroDisplay[j]); j = (j + 1); }; try { m_hud.removeChild(m_minimap); m_minimap = null; removeChild(m_panelStart); m_panelStart = null; if (m_panelFinish){ i = 0; while (i < m_finishTimesDisplays.length) { m_panelFinish.removeChild(m_finishTimesDisplays[i]); m_finishTimesDisplays[i] = null; i = (i + 1); }; }; removeChild(m_panelFinish); m_panelFinish = null; removeChild(m_hud); m_hud = null; } catch(e:Error) { }; m_timer = null; } public function removeNitro():void{ var _local1:MovieClip = m_nitroDisplay.pop(); m_hud.removeChild(_local1); } public function init(_arg1:Stage):void{ m_stage = _arg1; m_panelStart = new MovieClipPanelStart(); m_panelStart.x = (Constants.STAGE_WIDTH / 2); m_panelStart.y = 1000; m_panelStart.descriptionText.text = m_track.advice.toUpperCase(); addChild(m_panelStart); m_fx.zoomIn(m_panelStart, 0.4, 0.4, m_panelStart.x, 1000, m_panelStart.x, ((Constants.STAGE_HEIGHT * 0.5) - 50), 20, "easeOutQuad", null); m_stage.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown); } public function render(_arg1:Vehicle, _arg2:Number, _arg3:Number):void{ m_minimap.render(); m_speedo.dial.rotation = ((((_arg1.speed / Constants.VEHICLE_MAX_SPEED) * m_dialRange) + m_dialMinAngle) + (Math.random() * 2)); if (m_timer != null){ m_hud.timerText.text = m_timer.displayTime(); }; } public function resumeTimer():void{ m_timer.start(); } private function panel_REMOVE():void{ removeChild(m_panelStart); } public function updateLaps(_arg1:int):void{ m_hud.laps.lapText.text = Math.min((_arg1 + 1), m_track.laps); } public function setPosition(_arg1:int, _arg2:int):void{ m_position.placeText.text = _arg1; m_position.fieldText.text = _arg2; } private function btnContinueHandler(_arg1:MouseEvent):void{ dispatchEvent(new Event(Racers.CONTINUE, true, false)); } public function finishDisplay(_arg1:int, _arg2:int):void{ m_panelFinish = new MovieClipPanelFinish(); m_panelFinish.x = (Constants.STAGE_WIDTH / 2); m_panelFinish.y = 1000; var _local3:String = String(_arg1); switch (_arg1){ case 1: _local3 = (_local3 + "st"); User.getInstance().playerWon(); break; case 2: _local3 = (_local3 + "nd"); break; case 3: _local3 = (_local3 + "rd"); break; default: _local3 = (_local3 + "th"); break; }; m_panelFinish.positionText.text = _local3; addChild(m_panelFinish); if (Constants.TRANSPARENCY){ m_panelFinish.alpha = 0.1; }; m_fx.zoomIn(m_panelFinish, 0, 0.25, m_panelFinish.x, 1000, m_panelFinish.x, (Constants.STAGE_HEIGHT * 0.5), 20, "easeOutQuad", null); m_panelFinish.btnContinue.addEventListener(MouseEvent.CLICK, btnContinueHandler); m_panelFinish.btnContinue.visible = false; } private function countdown():void{ m_countdown = new Countdown(); m_countdown.reveal(); m_hud.addChild(m_countdown); } public function showContinue():void{ try { m_panelFinish.btnContinue.visible = true; } catch(e:Error) { }; } public function getTime():int{ return (m_timer.getMili()); } public function showFinishTime(_arg1:LapEvent):void{ var _local2:MovieClip = new MovieClipPanelFinishTime(); if (_arg1.id == 0){ _local2.idText.text = "YOU"; } else { _local2.idText.text = ("AI " + String(_arg1.id)); }; _local2.timeText.text = TimeKeeper.display(_arg1.time); _local2.x = 35; _local2.y = (-30 + (20 * m_finishTimesDisplays.length)); m_panelFinish.addChild(_local2); m_finishTimesDisplays.push(_local2); } private function handleKeyDown(_arg1:KeyboardEvent):void{ if ((((((_arg1.keyCode == Keyboard.UP)) || ((_arg1.keyCode == 87)))) || ((_arg1.keyCode == 119)))){ m_stage.removeEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown); countdown(); m_fx.zoomIn(m_panelStart, 0, 0.25, m_panelStart.x, m_panelStart.y, m_panelStart.x, -1000, 20, "easeInQuad", panel_REMOVE); }; } public function stopTimer():void{ try { m_timer.stop(); } catch(e:Error) { }; } public function createMiniMap(_arg1:Array, _arg2:TileEngine, _arg3:Array):void{ m_minimap = new Minimap(Constants.STAGE_WIDTH, Constants.STAGE_HEIGHT, _arg1, _arg2.mapWidth, _arg2.mapHeight, _arg3); m_hud.addChild(m_minimap); m_minimap.x = -580; m_minimap.y = 10; } public function gameOver():void{ stopTimer(); } public function startRace():void{ startTimer(); } public function createNitro(_arg1:Array):void{ var _local3:MovieClipNitro; var _local2:int; while (_local2 < _arg1[0].nitro) { _local3 = new MovieClipNitro(); _local3.width = (_local3.height = 35); _local3.y = 464; _local3.x = (-570 + (m_nitroDisplay.length * 40)); m_nitroDisplay.push(_local3); m_hud.addChild(_local3); _local2++; }; } } }//package game.hud
Section 264
//LapDisplay (game.hud.LapDisplay) package game.hud { import flash.display.*; import gs.*; import assets.*; import game.utils.*; import fl.motion.easing.*; public class LapDisplay extends MovieClip { private var m_ui:MovieClipLapDisplay; public function LapDisplay(_arg1:int, _arg2:int){ m_ui = new MovieClipLapDisplay(); m_ui.x = 650; addChild(m_ui); m_ui.lapText.text = Utilities.padScore((_arg1 + 1), 2); m_ui.timeText.text = TimeKeeper.display(_arg2); TweenLite.to(m_ui, 0.5, {x:542, ease:Back.easeOut}); } public function destroy():void{ removeChild(m_ui); } } }//package game.hud
Section 265
//Minimap (game.hud.Minimap) package game.hud { import flash.display.*; import flash.geom.*; import assets.*; public class Minimap extends Sprite { private var displayHeight:Number;// = 70 private var stageRectangle:Rectangle; private var mapPoint:Point; private var mapHeight:Number; private var displayWidth:Number;// = 100 private var minimapBitmap:Bitmap; private var marker:MinimapMarker; private var tileWidth:int;// = 10 private var stageHeight:Number; private var mapWidth:Number; private var offsetx:Number;// = 0 private var displayRect:Rectangle; private var gameMapHeight:Number; private var offsety:Number;// = 0 private var tileSheet:BitmapData; private var vehiclesArray:Array; private var gameMapWidth:Number; private var mapArray:Array; private var mapRect:Rectangle; private var player:MinimapMarker; private var mapArrayHeight:int; private var markersArray:Array; private var mapArrayWidth:int; private var stageWidth:Number; private var tileSheetWidth:int; private var tileHeight:int;// = 10 private var minimapBitmapData:BitmapData; public function Minimap(_arg1:int, _arg2:int, _arg3:Array, _arg4:Number, _arg5:Number, _arg6:Array){ displayRect = new Rectangle(0, 0, displayWidth, displayHeight); mapArray = []; markersArray = []; super(); tileSheet = new BitmapDataTilesMinimap(0, 0); tileSheetWidth = (tileSheet.width / tileWidth); gameMapHeight = _arg5; gameMapWidth = _arg4; minimapBitmapData = new BitmapData(_arg1, _arg2, true, 0); minimapBitmap = new Bitmap(minimapBitmapData); stageRectangle = new Rectangle(0, 0, _arg1, _arg2); stageWidth = _arg1; stageHeight = _arg2; mapArray = _arg3; vehiclesArray = _arg6; mapArrayWidth = mapArray[0].length; mapArrayHeight = mapArray.length; mapWidth = (mapArrayWidth * tileWidth); mapHeight = (_arg3.length * tileHeight); addChild(minimapBitmap); createMap(); var _local7:int; while (_local7 < vehiclesArray.length) { marker = new MinimapMarker(vehiclesArray[_local7]); markersArray.push(marker); addChild(marker); _local7++; }; scrollRect = displayRect; } public function render():void{ var _local1:int; while (_local1 < markersArray.length) { marker = markersArray[_local1]; if (marker.isPlayer){ player = marker; }; marker.x = (((marker.getX() / gameMapWidth) * mapWidth) + offsetx); marker.y = (((marker.getY() / gameMapHeight) * mapHeight) + offsety); _local1++; }; var _local2:Number = (player.x - (displayWidth / 2)); var _local3:Number = (player.y - (displayHeight / 2)); displayRect = new Rectangle(_local2, _local3, displayWidth, displayHeight); scrollRect = displayRect; } private function getTile(_arg1:int):Rectangle{ _arg1--; var _local2:int = int((_arg1 / tileSheetWidth)); var _local3:int = (_arg1 % tileSheetWidth); return (new Rectangle((_local3 * tileWidth), (_local2 * tileHeight), tileWidth, tileHeight)); } private function createMap():void{ var _local2:int; var _local1:int; while (_local1 < mapArrayWidth) { _local2 = 0; while (_local2 < mapArrayHeight) { mapRect = getTile(mapArray[_local2][_local1]); mapPoint = new Point(int((offsetx + (_local1 * tileWidth))), int((offsety + (_local2 * tileHeight)))); minimapBitmapData.copyPixels(tileSheet, mapRect, mapPoint, null, null, false); _local2++; }; _local1++; }; } } }//package game.hud
Section 266
//MinimapMarker (game.hud.MinimapMarker) package game.hud { import flash.display.*; import game.vehicle.*; import assets.*; public class MinimapMarker extends Sprite { private var vehicle:Vehicle; private var dot:MovieClip; private var id:int; public function MinimapMarker(_arg1:Vehicle){ vehicle = _arg1; id = vehicle.id; dot = new MovieClipMinimapMarker(); addChild(dot); if (vehicle.isPlayer){ dot.gotoAndStop(1); } else { dot.gotoAndStop(2); }; } public function getX():Number{ return (vehicle.x); } public function get vy():Number{ return (vehicle.vy); } public function get vx():Number{ return (vehicle.vx); } public function getY():Number{ return (vehicle.y); } public function get isPlayer():Boolean{ return (vehicle.isPlayer); } } }//package game.hud
Section 267
//StandingsDisplay (game.hud.StandingsDisplay) package game.hud { import flash.events.*; import flash.display.*; import flash.utils.*; import game.track.*; import game.*; import assets.*; import fl.motion.easing.*; public class StandingsDisplay extends Sprite { private var m_offsetGapY:int;// = 30 private var m_offsetRowX:int;// = 25 private var m_offsetRowY:int;// = 140 private var m_offsetGapX:int;// = 60 private var m_clipsArray:Array; private var m_offscreenRight:int;// = 800 private var m_standings:Standings; private var m_offsetTotalsX:int;// = 50 private var m_offsetTotalsY:int;// = 20 private var m_fx:Fx; private var m_ui:MovieClip; private var m_offscreenLeft:int;// = -800 private var m_offsetx:Number;// = 0 private var m_offsety:Number;// = 0 public function StandingsDisplay(){ m_clipsArray = []; m_fx = new Fx(); super(); m_ui = new MovieClipStandings(); m_ui.x = m_offscreenRight; addChild(m_ui); displayResults(); } private function displayStandings():void{ var _local1:MovieClip; var _local2:MovieClip; var _local3:MovieClip; var _local4:MovieClip; var _local5:int; var _local9:Array; var _local10:int; var _local6:int; while (_local6 < Track.tracks) { _local2 = new MovieClipStandingsTrackText(); _local2.trackText.text = ("TRACK " + String((_local6 + 1))); _local2.x = m_offsetRowX; _local2.y = (m_offsetRowY + (_local6 * m_offsetGapY)); m_clipsArray.push(_local2); _local9 = Standings.getInstance().getPoints(_local6); _local10 = 0; while (_local10 < _local9.length) { _local5 = _local9[_local10].points; switch (_local5){ case Constants.POINTS_FIRST: _local1 = new MovieClipStandingsPointsFirst(); break; case Constants.POINTS_SECOND: _local1 = new MovieClipStandingsPointsSecond(); break; case Constants.POINTS_THIRD: _local1 = new MovieClipStandingsPointsThird(); break; default: _local1 = new MovieClipStandingsPointsDefault(); break; }; _local1.pointsText.text = String(_local5); _local1.x = (m_offsetRowX + (m_offsetGapX * (_local10 + 1))); _local1.y = (m_offsetRowY + (_local6 * m_offsetGapY)); m_clipsArray.push(_local1); _local10++; }; _local6++; }; _local2 = new MovieClipStandingsTotal(); _local2.x = m_offsetRowX; _local2.y = m_offsetTotalsY; m_clipsArray.push(_local2); var _local7:Array = Standings.getInstance().getTotals(); _local10 = 0; while (_local10 < _local7.length) { _local1 = new MovieClipStandingsTotals(); _local5 = _local7[_local10]; _local1.dataText.text = String(_local5); _local1.x = (((m_offsetTotalsX + m_offsetRowX) + (m_offsetGapX * _local10)) + 6); _local1.y = m_offsetTotalsY; m_clipsArray.push(_local1); _local3 = new MovieClipStandingsPlayer(); if (_local10 == 0){ _local3.playerText.text = "YOU"; } else { _local3.playerText.text = ("AI " + String(_local10)); }; _local3.x = (m_offsetRowX + (m_offsetGapX * (_local10 + 1))); _local3.y = (m_offsetRowY - m_offsetGapY); m_clipsArray.push(_local3); _local10++; }; _local6 = 0; while (_local6 < m_clipsArray.length) { m_ui.addChild(m_clipsArray[_local6]); _local6++; }; var _local8:int = Standings.getInstance().getPosition(); switch (_local8){ case 1: m_ui.positionText.text = (_local8 + "st"); break; case 2: m_ui.positionText.text = (_local8 + "nd"); break; case 3: m_ui.positionText.text = (_local8 + "rd"); break; default: m_ui.positionText.text = (_local8 + "th"); break; }; m_fx.zoomIn(m_ui, 0, 0.25, m_offscreenRight, m_ui.y, 0, m_ui.y, 20, "easeOutQuad", null); m_ui.btnContinue.addEventListener(MouseEvent.CLICK, handleContinueClick); } public function destroy():void{ var _local1:int; while (_local1 < m_clipsArray.length) { m_ui.removeChild(m_clipsArray[_local1]); m_clipsArray[_local1] = null; _local1++; }; m_clipsArray = []; removeChild(m_ui); m_ui = null; } private function displayResults():void{ var _local1:MovieClipStandingsItem; var _local2:int; var _local3:int; var _local4 = 1; while (_local4 < Track.tracks) { _local1 = new MovieClipStandingsItem(); _local1.x = m_offsetRowX; _local1.y = (m_offsetRowY + (_local4 * m_offsetGapY)); _local1.trackText.text = Track.getTrackData(_local4).name.toUpperCase(); if (User.getInstance().getRaced(_local4)){ _local2 = (_local2 + User.getInstance().getPositionInt(_local4)); _local3++; _local1.positionText.text = User.getInstance().getPositionString(_local4); _local1.timeText.text = TimeKeeper.display(User.getInstance().getRaceTime(_local4)); } else { _local1.positionText.text = ""; _local1.timeText.text = ""; }; if (User.getInstance().isTrackUnlocked(_local4)){ _local1.lock.visible = false; }; m_clipsArray.push(_local1); _local4++; }; _local4 = 0; while (_local4 < m_clipsArray.length) { m_ui.addChild(m_clipsArray[_local4]); _local4++; }; var _local5:int = (_local2 / _local3); switch (_local5){ case 1: m_ui.positionText.text = (_local5 + "ST"); break; case 2: m_ui.positionText.text = (_local5 + "ND"); break; case 3: m_ui.positionText.text = (_local5 + "RD"); break; default: m_ui.positionText.text = (_local5 + "TH"); break; }; m_fx.zoomIn(m_ui, 0, 0.25, m_offscreenRight, m_ui.y, 0, m_ui.y, 20, "easeOutQuad", null); m_ui.btnContinue.addEventListener(MouseEvent.CLICK, handleContinueClick); } private function handleContinueClick(_arg1:MouseEvent=null):void{ dispatchEvent(new Event(Credits.CONTINUE)); } private function handleSubmitClick(_arg1:MouseEvent):void{ trace("SUBMIT CALLED"); dispatchEvent(new Event(Credits.SUBMIT)); } } }//package game.hud
Section 268
//SubmitDisplay (game.hud.SubmitDisplay) package game.hud { import flash.events.*; import flash.display.*; import flash.utils.*; import game.track.*; import game.*; import flash.text.*; import org.casalib.display.*; import assets.*; import flash.net.*; import com.meychi.ascrypt3.*; import fl.motion.easing.*; public class SubmitDisplay extends CasaSprite { private var m_offsetGapY:int;// = 30 private var m_offsetRowX:int;// = 25 private var m_offsetRowY:int;// = 140 private var m_offsetGapX:int;// = 60 private var m_clipsArray:Array; private var m_offscreenRight:int;// = 800 private var m_standings:Standings; private var m_scoreboard:Scoreboard; private var m_offsetTotalsX:int;// = 50 private var m_offsetTotalsY:int;// = 20 private var m_fx:Fx; private var m_ui:MovieClip; private var m_offscreenLeft:int;// = -800 private var m_offsetx:Number;// = 0 private var m_offsety:Number;// = 0 public function SubmitDisplay(){ m_clipsArray = []; m_fx = new Fx(); super(); m_ui = new MovieClipSubmit(); m_ui.x = m_offscreenRight; addChild(m_ui); displayResults(); } override public function destroy():void{ m_ui.removeChild(m_scoreboard); m_scoreboard = null; var _local1:int; while (_local1 < m_clipsArray.length) { m_ui.removeChild(m_clipsArray[_local1]); m_clipsArray[_local1] = null; _local1++; }; m_clipsArray = []; removeChild(m_ui); m_ui = null; super.destroy(); } private function displayResults():void{ var _local1:MovieClipStandingsItem; var _local2 = 1; while (_local2 < Track.tracks) { _local1 = new MovieClipStandingsItem(); _local1.x = m_offsetRowX; _local1.y = (m_offsetRowY + (_local2 * m_offsetGapY)); _local1.trackText.text = Track.getTrackData(_local2).name.toUpperCase(); _local1.positionText.text = User.getInstance().getPositionString(_local2); _local1.timeText.text = TimeKeeper.display(User.getInstance().getRaceTime(_local2)); if (User.getInstance().isTrackUnlocked(_local2)){ _local1.lock.visible = false; }; m_clipsArray.push(_local1); _local2++; }; _local2 = 0; while (_local2 < m_clipsArray.length) { m_ui.addChild(m_clipsArray[_local2]); _local2++; }; m_scoreboard = new Scoreboard(); m_scoreboard.x = 200; m_scoreboard.y = 430; m_ui.addChild(m_scoreboard); m_fx.zoomIn(m_ui, 0, 0.25, m_offscreenRight, m_ui.y, 0, m_ui.y, 20, "easeOutQuad", null); m_ui.btnCancel.addEventListener(MouseEvent.CLICK, handleCancelClick); m_scoreboard.btnContinue.addEventListener(MouseEvent.CLICK, handleCancelClick); } private function handleCancelClick(_arg1:MouseEvent):void{ trace("Cancel Clicked"); dispatchEvent(new Event(Credits.CONTINUE, true, false)); } } }//package game.hud
Section 269
//TimeKeeper (game.hud.TimeKeeper) package game.hud { import flash.utils.*; public class TimeKeeper { private var isCountdown:Boolean;// = false private var totalTime:Number;// = 0 private var oldTime:Number;// = 0 private var pause:Boolean;// = false private var countdownTime:Number;// = 0 public function TimeKeeper(_arg1:Number){ if (_arg1 != 0){ isCountdown = true; countdownTime = _arg1; }; this.reset(); } public function addMili(_arg1:int):void{ this.totalTime = Math.max(0, (this.totalTime + _arg1)); } public function reset():void{ this.oldTime = 0; this.pause = true; this.totalTime = 0; } public function displayHour():int{ var _local1:int = this.getMili(); var _local2:int = Math.floor((_local1 / 1000)); var _local3:int = Math.floor((_local2 / 60)); var _local4:int = Math.floor((_local3 / 60)); return (_local4); } public function stop():void{ if (!this.pause){ this.pause = true; this.totalTime = (this.totalTime + (getTimer() - this.oldTime)); }; } public function getTime(_arg1:int):int{ if (isCountdown){ return ((countdownTime - _arg1)); }; return (_arg1); } public function displaySec():int{ var _local1:int = this.getMili(); var _local2:int = Math.floor((_local1 / 1000)); _local2 = (_local2 % 60); return (_local2); } public function displayMin():int{ var _local1:int = this.getMili(); var _local2:int = Math.floor((_local1 / 1000)); var _local3:int = Math.floor((_local2 / 60)); _local3 = (_local3 % 60); return (_local3); } public function getMili():int{ var _local1:int = this.totalTime; if (!this.pause){ _local1 = (_local1 + (getTimer() - this.oldTime)); }; return (getTime(_local1)); } public function displayTime():String{ var _local1:String = three(displayMili()); _local1 = _local1.substring(0, 3); var _local2:String = ((((displayMin() + "'") + two(displaySec())) + "\"") + _local1); return (_local2); } public function getMins():int{ var _local1:int = (this.totalTime / 1000); if (!this.pause){ _local1 = (_local1 + (((getTimer() - this.oldTime) / 1000) / 60)); }; return (Math.round(getTime(_local1))); } public function getSecs():int{ var _local1:int = (this.totalTime / 1000); if (!this.pause){ _local1 = (_local1 + ((getTimer() - this.oldTime) / 1000)); }; return (Math.round(getTime(_local1))); } public function subMili(_arg1:int):void{ this.totalTime = (this.totalTime - _arg1); } public function start():void{ if (this.pause){ this.pause = false; this.oldTime = getTimer(); }; } public function displayMili():int{ var _local1:int = this.getMili(); _local1 = (_local1 % 1000); return (_local1); } public static function display(_arg1:Number):String{ var _local2:int = Math.floor((_arg1 / 1000)); var _local3:int = Math.floor((_local2 / 60)); return ((((((_local3 % 60) + "'") + two((_local2 % 60))) + "\"") + three((_arg1 % 1000)))); } private static function two(_arg1:int):String{ return ((((_arg1)>9) ? "" : "0" + _arg1)); } private static function three(_arg1:int):String{ return (((((_arg1)>99) ? "" : "0" + ((_arg1)>9) ? "" : "0") + _arg1)); } } }//package game.hud
Section 270
//TrackDisplay (game.hud.TrackDisplay) package game.hud { import flash.events.*; import flash.display.*; import sound.*; import game.track.*; import flash.geom.*; import com.markfennell.utils.*; import game.*; import five3D.display.*; import org.casalib.display.*; import assets.*; import fl.motion.easing.*; public class TrackDisplay extends CasaSprite { private var m_track:Track; private var m_tileHeight:int;// = 25 private var m_bitmap3d:Bitmap3D; private var m_mapRect:Rectangle; private var m_mapArrayWidth:int; private var m_tileSheetWidth:int; private var m_buttonReft:SimpleButton; private var m_current:int; private var m_minimapBitmapData:BitmapData; private var m_ui:MovieClip; private var m_direction:String;// = "fromRighttoLeft" private var m_mapPoint:Point; private var m_scene3d:Scene3D; private var m_mapHeight:Number; private var m_track3d:Sprite3D; private var m_offscreenRight:int;// = 800 private var m_mapWidth:Number; private var m_minimapBitmap:Bitmap; private var m_fx:Fx; private var m_buttonSelect:SimpleButton; private var m_buttonLeft:SimpleButton; private var m_tileWidth:int;// = 25 private var m_mapArray:Array; private var m_offscreenLeft:int;// = -800 private var m_offsetx:Number;// = 0 private var m_offsety:Number;// = 0 private var m_mapArrayHeight:int; private var m_trackEntry:int;// = 0 private var m_tileSheet:BitmapData; public function TrackDisplay(){ m_mapArray = []; m_fx = new Fx(); super(); m_ui = new MovieClipTracks(); m_ui.x = m_offscreenRight; addChild(m_ui); m_tileSheet = new BitmapDataTilesPreview(0, 0); m_tileSheetWidth = (m_tileSheet.width / m_tileWidth); m_scene3d = new Scene3D(); m_scene3d.x = int((Constants.STAGE_WIDTH / 2)); m_scene3d.y = int((Constants.STAGE_HEIGHT / 2)); m_ui.addChild(m_scene3d); m_track3d = new Sprite3D(); m_current = User.getInstance().trackID; m_bitmap3d = new Bitmap3D(new BitmapData(10, 10, true)); m_bitmap3d.x = (m_bitmap3d.bitmapData.width / -2); m_bitmap3d.y = (m_bitmap3d.bitmapData.height / -2); m_track3d.addChild(m_bitmap3d); m_track3d.rotationX = 116; m_scene3d.addChild(m_track3d); m_scene3d.mouseChildren = false; m_scene3d.mouseEnabled = false; displayTrack(); } private function startRender():void{ addEventListener(Event.ENTER_FRAME, render); } private function handleBackClick(_arg1:MouseEvent):void{ SoundManager.getInstance().playSound("Click"); Broadcaster.dispatchEvent(new Event(Credits.TRACK_BACK)); } private function displayTrack():void{ var _local2:int; m_track = Track.getTrackData(m_current); m_trackEntry = m_track.entry; m_mapArray = m_track.tileArray; m_mapArrayWidth = m_mapArray[0].length; m_mapArrayHeight = m_mapArray.length; m_minimapBitmapData = new BitmapData((m_mapArrayWidth * m_tileWidth), (m_mapArrayHeight * m_tileHeight), true, 0); m_mapWidth = (m_mapArrayWidth * m_tileWidth); m_mapHeight = (m_mapArray.length * m_tileHeight); var _local1:int; while (_local1 < m_mapArrayWidth) { _local2 = 0; while (_local2 < m_mapArrayHeight) { m_mapRect = getTile(m_mapArray[_local2][_local1]); m_mapPoint = new Point(int((m_offsetx + (_local1 * m_tileWidth))), int((m_offsety + (_local2 * m_tileHeight)))); m_minimapBitmapData.copyPixels(m_tileSheet, m_mapRect, m_mapPoint, null, null, false); _local2++; }; _local1++; }; m_bitmap3d.bitmapData = m_minimapBitmapData; m_bitmap3d.x = (m_bitmap3d.bitmapData.width / -2); m_bitmap3d.y = (m_bitmap3d.bitmapData.height / -2); m_ui.nameText.text = m_track.name.toUpperCase(); m_ui.descriptionText.text = m_track.description.toUpperCase(); m_ui.btnSelect.visible = false; m_ui.btnLeft.visible = false; m_ui.btnRight.visible = false; m_ui.lock.visible = true; if (m_direction == "fromRighttoLeft"){ showFromRightTrack(); } else { showFromLeftTrack(); }; if (User.getInstance().isTrackUnlocked(m_current)){ m_ui.btnSelect.visible = true; m_ui.lock.visible = false; m_ui.btnSelect.addEventListener(MouseEvent.CLICK, selectedTrack); }; if (m_current > 0){ m_ui.btnLeft.visible = true; m_ui.btnLeft.addEventListener(MouseEvent.CLICK, displayNextFromLeft); }; if (m_current < (Track.tracks - 1)){ m_ui.btnRight.visible = true; m_ui.btnRight.addEventListener(MouseEvent.CLICK, displayNextFromRight); }; m_ui.btnBack.addEventListener(MouseEvent.CLICK, handleBackClick); } private function getTile(_arg1:int):Rectangle{ _arg1--; var _local2:int = int((_arg1 / m_tileSheetWidth)); var _local3:int = (_arg1 % m_tileSheetWidth); return (new Rectangle((_local3 * m_tileWidth), (_local2 * m_tileHeight), m_tileWidth, m_tileHeight)); } private function showFromRightTrack():void{ trace("From right"); m_fx.zoomIn(m_ui, 0, 0.25, m_offscreenRight, m_ui.y, 0, m_ui.y, 20, "easeOutQuad", startRender); } private function displayNextFromRight(_arg1:MouseEvent):void{ SoundManager.getInstance().playSound("Click"); endRender(); m_current++; m_direction = "fromRighttoLeft"; m_fx.zoomIn(m_ui, 0, 0.25, m_ui.x, m_ui.y, m_offscreenLeft, m_ui.y, 20, "easeOutQuad", displayTrack); } private function render(_arg1:Event):void{ m_track3d.rotationZ = (m_track3d.rotationZ + 3); } private function displayNextFromLeft(_arg1:MouseEvent):void{ SoundManager.getInstance().playSound("Click"); endRender(); m_current--; m_direction = "fromLeftToRight"; m_fx.zoomIn(m_ui, 0, 0.25, m_ui.x, m_ui.y, m_offscreenRight, m_ui.y, 20, "easeOutQuad", displayTrack); } private function endRender():void{ removeEventListener(Event.ENTER_FRAME, render); } private function selectedTrack(_arg1:MouseEvent=null):void{ SoundManager.getInstance().playSound("Ching"); User.getInstance().trackID = m_current; User.getInstance().addMoney(-(m_trackEntry)); User.getInstance().trackID = m_current; Broadcaster.dispatchEvent(new TrackEvent(Credits.TRACK_SELECTED, m_current)); } override public function destroy():void{ endRender(); m_ui.btnSelect.removeEventListener(MouseEvent.CLICK, selectedTrack); m_ui.btnBack.removeEventListener(MouseEvent.CLICK, handleBackClick); m_tileSheet.dispose(); m_bitmap3d.bitmapData.dispose(); m_minimapBitmapData.dispose(); m_scene3d.removeChild(m_track3d); m_track3d = null; m_scene3d.dispose(); m_scene3d = null; removeChild(m_ui); m_ui = null; super.destroy(); } private function showFromLeftTrack():void{ trace("From left"); m_fx.zoomIn(m_ui, 0, 0.25, m_offscreenLeft, m_ui.y, 0, m_ui.y, 20, "easeOutQuad", startRender); } } }//package game.hud
Section 271
//CheckpointEvent (game.obstacles.CheckpointEvent) package game.obstacles { import flash.events.*; public class CheckpointEvent extends Event { public var checkpoint:int; public var id:int; public static var CROSSED:String = "checkpointPointCrossed"; public function CheckpointEvent(_arg1:String, _arg2:int, _arg3:int){ super(_arg1); checkpoint = _arg2; id = _arg3; } } }//package game.obstacles
Section 272
//Obstacle (game.obstacles.Obstacle) package game.obstacles { import flash.events.*; import flash.display.*; import flash.utils.*; import Box2D.Dynamics.*; import game.tiles.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; import game.*; import flash.text.*; import game.utils.*; public class Obstacle extends EventDispatcher { public var waypoint:int; public var bodyDef:b2BodyDef; public var staticFriction:Number;// = 0 private var m_bitmapData:BitmapData; public var bodyDefBase:b2BodyDef; private var _tileX:int; public var obstacle:b2Body; private var dx:Number; public var shapeDefBase:b2PolygonDef; public var staticDensity:Number;// = 0 public var staticRestitution:Number;// = 0.6 private var m_tileEngine:TileEngine; public var shapeDef:b2PolygonDef; private var m_checkpointLength:int;// = 135 public var dynamicRestitution:Number;// = 2 private var m_checkpointBaseSize:int;// = 5 private var dy:Number; private var m_mc:MovieClip; public var isDynamic:Boolean;// = false public var type:String; private var m_dynamicDensity:Number;// = 0.1 private var m_displayMargin:int;// = 200 private var m_physScale:Number; private var m_world:b2World; public var sprite:String; private var m_spriteSheet:SpriteSheet; public var isActive:Boolean;// = false public var bodyDefTop:b2BodyDef; public var angle:Number; public var dynamicFriction:Number;// = 1 private var m_focalLength:int;// = 200 public var dynamicdamping:Number;// = 2 private var m_displayFrame:int;// = 0 public var tileX:int; public var tileY:int; private var _tileY:int; public var h:Number; public var w:Number; public var x:Number;// = 0 public var y:Number;// = 0 public var z:Number;// = 0 private var m_cam:Object; public var dynamicAngulardamping:Number;// = 10 private static var waypoints:int = 0; public function Obstacle(_arg1:MovieClip, _arg2:BitmapData, _arg3:b2World, _arg4:TileEngine, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:String, _arg10:Number, _arg11:Number, _arg12:String=null){ m_physScale = Constants.PHYS_SCALE; super(); angle = _arg11; type = _arg9; sprite = _arg12; m_mc = _arg1; m_tileEngine = _arg4; m_bitmapData = _arg2; m_world = _arg3; m_dynamicDensity = _arg10; isDynamic = !((m_dynamicDensity == 0)); w = _arg7; h = _arg8; tileX = (_tileX = int((_arg5 / m_tileEngine.tileWidth))); tileY = (_tileY = int((_arg6 / m_tileEngine.tileHeight))); x = (_arg5 / m_physScale); y = (_arg6 / m_physScale); z = 0; bodyDef = new b2BodyDef(); bodyDef.position.Set(x, y); bodyDef.linearDamping = dynamicdamping; bodyDef.angularDamping = dynamicAngulardamping; m_cam = {x:(Constants.STAGE_WIDTH * 0.5), y:(Constants.STAGE_HEIGHT * 0.5)}; if (_arg1.totalFrames > 1){ while (angle < 0) { angle = (angle + 360); }; angle = (angle % 360); m_displayFrame = (int(((angle / 360) * _arg1.totalFrames)) + 1); m_spriteSheet = new SpriteSheet(_arg1, _arg1.width, _arg1.height, 1, 1, 1, 1, 0, 0, 1, m_displayFrame); bodyDef.angle = ((((m_displayFrame - 1) / (_arg1.totalFrames - 1)) * 2) * Math.PI); } else { bodyDef.angle = (angle * Constants.DEG2RAD); m_spriteSheet = new SpriteSheet(_arg1, _arg1.width, _arg1.height, 1, 1, 1, 1, (angle * Constants.DEG2RAD), 0, 1); }; obstacle = m_world.CreateBody(bodyDef); shapeDef = new b2PolygonDef(); shapeDef.SetAsBox((w / m_physScale), (h / m_physScale)); switch (type){ case ObstacleType.TREE: shapeDef.friction = staticFriction; shapeDef.density = staticDensity; shapeDef.restitution = staticRestitution; z = ((Math.random() * 15) + 10); break; case ObstacleType.RECTANGLE: if (isDynamic){ shapeDef.friction = dynamicFriction; shapeDef.density = m_dynamicDensity; shapeDef.restitution = dynamicRestitution; } else { shapeDef.friction = staticFriction; shapeDef.density = staticDensity; shapeDef.restitution = staticRestitution; }; break; case ObstacleType.SHADOW: z = -1; shapeDef.isSensor = true; break; case ObstacleType.CHECKPOINT: shapeDef.isSensor = true; waypoint = waypoints; waypoints++; break; }; obstacle.CreateShape(shapeDef); obstacle.SetMassFromShapes(); obstacle.m_userData = this; } public function remove():void{ isActive = false; } public function destroy():void{ shapeDef = null; bodyDef = null; bodyDefBase = null; bodyDefTop = null; m_bitmapData = null; m_mc = null; m_spriteSheet.destroy(); m_tileEngine = null; m_world.DestroyBody(obstacle); m_spriteSheet = null; shapeDef = null; bodyDef = null; obstacle = null; } public function get worldx():int{ return (int(((obstacle.GetPosition().x * m_physScale) - dx))); } public function get realy():int{ return (int((obstacle.GetPosition().y * m_physScale))); } public function render(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Sprite):void{ var _local6:int; var _local7:int; var _local8:Number; var _local9:Number; dx = _arg1; dy = _arg2; if (z > 0){ _local8 = (m_cam.x - worldx); _local9 = (m_cam.y - worldy); _local6 = int((worldx - ((_local8 * z) / m_focalLength))); _local7 = int((worldy - ((_local9 * z) / m_focalLength))); } else { _local6 = int(worldx); _local7 = int(worldy); }; if ((((realx > (dx - m_displayMargin))) && ((realx < ((Constants.STAGE_WIDTH + m_displayMargin) + dx))))){ if ((((realy > (dy - m_displayMargin))) && ((realy < ((Constants.STAGE_HEIGHT + m_displayMargin) + dy))))){ if (!Constants.TRANSPARENCY){ m_spriteSheet.draw(m_bitmapData, _local6, _local7, 1); }; }; }; } public function get mass():Number{ return (m_dynamicDensity); } public function get realx():int{ return (int((obstacle.GetPosition().x * m_physScale))); } public function get worldy():int{ return (int(((obstacle.GetPosition().y * m_physScale) - dy))); } public function add():void{ isActive = true; } public function set realy(_arg1:int):void{ y = (_arg1 / m_physScale); } public function set realx(_arg1:int):void{ x = (_arg1 / m_physScale); } public function update():void{ obstacle.SetXForm(new b2Vec2(x, y), (angle * Constants.DEG2RAD)); if (m_displayFrame == 0){ m_spriteSheet = new SpriteSheet(m_mc, m_mc.width, m_mc.height, 1, 1, 1, 1, (angle * Constants.DEG2RAD), 0, 1); } else { while (angle < 0) { angle = (angle + 360); }; angle = (angle % 360); m_displayFrame = (int(((angle / 360) * m_mc.totalFrames)) + 1); m_spriteSheet = new SpriteSheet(m_mc, m_mc.width, m_mc.height, 1, 1, 1, 1, 0, 0, 1, m_displayFrame); }; } public function get hasShadow():Boolean{ return ((z > 0)); } public static function reset():void{ waypoints = 0; } } }//package game.obstacles
Section 273
//ObstacleDebug (game.obstacles.ObstacleDebug) package game.obstacles { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.text.*; import assets.*; public class ObstacleDebug extends MovieClip { private var m_dragging:Boolean;// = false private var m_ui:MovieClip; private var m_debugOverlay:Sprite; private var m_obstacleManager:ObstacleManager; public var obstacle:Obstacle; public function ObstacleDebug(_arg1:Obstacle, _arg2:ObstacleManager, _arg3:Sprite){ obstacle = _arg1; m_obstacleManager = _arg2; m_debugOverlay = _arg3; m_ui = new MovieClipDebugObstacle(); m_ui.obstacle = obstacle; m_debugOverlay.addChild(m_ui); m_ui.x = obstacle.realx; m_ui.y = obstacle.realy; m_ui.btnDelete.addEventListener(MouseEvent.CLICK, deleteObstacle); m_ui.btnRotateCW.addEventListener(MouseEvent.MOUSE_DOWN, rotateCW); m_ui.btnRotateCCW.addEventListener(MouseEvent.MOUSE_DOWN, rotateCCW); } public function destroy():void{ try { m_debugOverlay.removeChild(m_ui); m_ui = null; } catch(e:Error) { }; } private function rotateCW(_arg1:MouseEvent):void{ if (_arg1.shiftKey){ obstacle.angle = (obstacle.angle + 10); } else { obstacle.angle = (obstacle.angle + 1); }; obstacle.update(); } private function deleteObstacle(_arg1:MouseEvent):void{ m_obstacleManager.removeObstacle(obstacle); destroy(); } private function rotateCCW(_arg1:MouseEvent):void{ if (_arg1.shiftKey){ obstacle.angle = (obstacle.angle - 10); } else { obstacle.angle = (obstacle.angle - 1); }; obstacle.update(); } } }//package game.obstacles
Section 274
//ObstacleEvent (game.obstacles.ObstacleEvent) package game.obstacles { import flash.events.*; public class ObstacleEvent extends Event { public var tileOldY:int; public var obstacle:Obstacle; public var tileX:int; public var tileY:int; public var tileOldX:int; public static var ONCHANGE:String = "tileChanged"; public function ObstacleEvent(_arg1:String, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:Obstacle){ super(_arg1); tileX = _arg2; tileY = _arg3; tileOldX = _arg4; tileOldY = _arg5; obstacle = _arg6; } } }//package game.obstacles
Section 275
//ObstacleManager (game.obstacles.ObstacleManager) package game.obstacles { import flash.events.*; import flash.display.*; import flash.utils.*; import game.track.*; import flash.geom.*; import Box2D.Dynamics.*; import game.tiles.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; import game.*; import flash.text.*; import assets.*; public class ObstacleManager extends Sprite { private var m_movieClipObstacleBush_1:MovieClipObstacleBush_1; private var m_physScale:Number; private var m_track:Track; private var m_movieClipObstaclePond:MovieClipObstaclePond; private var m_movieClipObstacleTreeSnow1:MovieClipObstacleTreeSnow1; private var m_obstacle:Obstacle; private var m_tileEngine:TileEngine; private var m_movieClipObstacleTree_1:MovieClipObstacleTree_1; private var m_movieClipObstacleTree_2:MovieClipObstacleTree_2; private var m_movieClipObstacleTree_3:MovieClipObstacleTree_3; private var m_movieClipObstacleTree_4:MovieClipObstacleTree_4; private var m_movieClipObstacleTree_5:MovieClipObstacleTree_5; private var m_movieClipObstacleTree_6:MovieClipObstacleTree_6; private var m_movieClipObstacleRock_1:MovieClipObstacleRock_1; private var m_movieClipObstacleRock_2:MovieClipObstacleRock_2; private var m_movieClipObstacleRock_3:MovieClipObstacleRock_3; private var m_movieClipObstacleRock_4:MovieClipObstacleRock_4; private var m_movieClipObstacleRock_5:MovieClipObstacleRock_5; private var m_movieClipObstacleRock_6:MovieClipObstacleRock_6; private var m_movieClipObstacleRock_7:MovieClipObstacleRock_7; private var m_movieClipObstacleRock_8:MovieClipObstacleRock_8; private var m_movieClipObstacleRock_9:MovieClipObstacleRock_9; private var m_container:Sprite; private var m_movieClipObstacleCone:MovieClipObstacleCone; private var m_world:b2World; private var obstaclesDisplayArrayLength:int; private var m_movieClipObstacleCheckpoint:MovieClipObstacleCheckpoint; private var i:int; private var k:int; private var j:int; private var m_obstablesBitmapData:BitmapData; public var obstaclesArray:Array; private var m_movieClipObstacleFinish:MovieClipObstacleFinish; private var m_tileObjectArray:Array; private var m_movieClipObstacleTyres:MovieClipObstacleTyres; private var m_movieClipObstacleBush_2:MovieClipObstacleBush_2; public function ObstacleManager(_arg1:BitmapData, _arg2:b2World, _arg3:Track, _arg4:TileEngine, _arg5:Sprite){ obstaclesArray = []; m_physScale = Constants.PHYS_SCALE; m_tileObjectArray = []; super(); Obstacle.reset(); m_obstablesBitmapData = _arg1; m_world = _arg2; m_track = _arg3; m_tileEngine = _arg4; m_container = _arg5; addObstacles(m_track.obstacleXML); addObstacles(m_track.checkpointXML); buildPositions(); mouseEnabled = false; mouseChildren = false; } public function destroy():void{ m_tileEngine = null; m_world = null; } private function updateBuildPosition(_arg1:Obstacle):void{ var a_obstacle = _arg1; try { m_tileObjectArray[a_obstacle.tileX][a_obstacle.tileY].push(a_obstacle); } catch(e:Error) { }; } public function render(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{ i = 0; while (i < obstaclesArray.length) { m_obstacle = obstaclesArray[i]; m_obstacle.render(_arg1, _arg2, _arg3, _arg4, m_container); i++; }; } private function buildPositions():void{ var _local1:Array; var _local2:Array; m_tileObjectArray = []; i = 0; while (i < m_tileEngine.mapArrayWidth) { _local1 = []; j = 0; while (j < m_tileEngine.mapArrayHeight) { _local2 = []; k = 0; while (k < obstaclesArray.length) { m_obstacle = obstaclesArray[k]; if ((((m_obstacle.tileX == i)) && ((m_obstacle.tileY == j)))){ _local2.push(m_obstacle); }; k++; }; _local1.push(_local2); j++; }; m_tileObjectArray.push(_local1); i++; }; } private function addObstacles(_arg1:XMLList):void{ i = 0; while (i < _arg1.children().length()) { addObstacle(_arg1.children()[i]); i++; }; obstaclesArray.sortOn("z"); } public function onTileChange(_arg1:ObstacleEvent):void{ var _local2:int = m_tileEngine.validWidth(_arg1.tileX); var _local3:int = m_tileEngine.validHeight(_arg1.tileY); var _local4:int = m_tileEngine.validWidth(_arg1.tileOldX); var _local5:int = m_tileEngine.validHeight(_arg1.tileOldY); var _local6:Array = m_tileObjectArray[_local4][_local5]; var _local7:int = _local6.length; while (_local7--) { if (_arg1.obstacle == _local6[_local7]){ _local6.splice(_local7, 1); }; }; m_tileObjectArray[_local2][_local3].push(_arg1.obstacle); } private function createShadow(_arg1:XML, _arg2:Number):void{ var _local3:Number = (-(Math.PI) / 4); var _local4:Number = (((_arg2 * 2) + 5) * Math.cos(_local3)); var _local5:Number = (((_arg2 * 2) + 5) * Math.sin(_local3)); var _local6:* = getDefinitionByName(String(_arg1.@sprite)); var _local7:MovieClip = new MovieClip(); var _local8:MovieClip = (new (_local6) as MovieClip); var _local9:ColorTransform = _local8.transform.colorTransform; _local9.color = 0; _local8.transform.colorTransform = _local9; _local8.alpha = 0.4; _local8.scaleX = (_local8.scaleY = 0.8); _local7.addChild(_local8); m_obstacle = new Obstacle(_local7, m_obstablesBitmapData, m_world, m_tileEngine, int((_arg1.@x - _local4)), int((_arg1.@y - _local5)), int(_arg1.@width), int(_arg1.@height), ObstacleType.SHADOW, 0, 0, null); m_obstacle.add(); obstaclesArray.push(m_obstacle); updateBuildPosition(m_obstacle); _local7.removeChild(_local8); _local8 = null; _local7 = null; } public function removeObstacle(_arg1:Obstacle):void{ var _local2:int = obstaclesArray.length; while (_local2--) { if (_arg1 == obstaclesArray[_local2]){ obstaclesArray.splice(_local2, 1); }; }; } public function addObstacle(_arg1:XML):void{ var _local2:* = getDefinitionByName(String(_arg1.@sprite)); m_obstacle = new Obstacle(new (_local2), m_obstablesBitmapData, m_world, m_tileEngine, int(_arg1.@x), int(_arg1.@y), int(_arg1.@width), int(_arg1.@height), String(_arg1.@type), Number(_arg1.@mass), int(_arg1.@angle), String(_arg1.@sprite)); if (m_obstacle.isDynamic){ m_obstacle.addEventListener(ObstacleEvent.ONCHANGE, onTileChange); }; m_obstacle.add(); obstaclesArray.push(m_obstacle); updateBuildPosition(m_obstacle); if (m_obstacle.hasShadow){ }; } } }//package game.obstacles
Section 276
//ObstacleType (game.obstacles.ObstacleType) package game.obstacles { public class ObstacleType { public static var TREE:String = "tree"; public static var NULL:String = "null"; public static var CHECKPOINT:String = "checkpoint"; public static var SHADOW:String = "shadow"; public static var CIRCLE:String = "circle"; public static var RECTANGLE:String = "rectangle"; } }//package game.obstacles
Section 277
//Playback (game.recorder.Playback) package game.recorder { public class Playback { private var lastX:int; private var lastY:int; private var currentPosition:int;// = 0 private var lastMS:int; private var lastANGLE:int; private var playbackArray:Array; public function Playback(_arg1:Array){ playbackArray = _arg1; lastX = playbackArray[0][Recorder.X]; lastY = playbackArray[0][Recorder.Y]; lastANGLE = playbackArray[0][Recorder.ANGLE]; lastMS = 0; } public function getPos(_arg1:int):Array{ var _local2:Number; var _local3:int; var _local4:int; var _local5:int; if (currentPosition < (playbackArray.length - 1)){ while (lastMS <= _arg1) { currentPosition++; lastX = (lastX + playbackArray[currentPosition][Recorder.X]); lastY = (lastY + playbackArray[currentPosition][Recorder.Y]); lastANGLE = (lastANGLE + playbackArray[currentPosition][Recorder.ANGLE]); lastMS = (lastMS + playbackArray[currentPosition][Recorder.MS]); }; _local2 = ((lastMS - _arg1) / playbackArray[currentPosition][Recorder.MS]); _local3 = (lastX - int((playbackArray[currentPosition][Recorder.X] * _local2))); _local4 = (lastY - int((playbackArray[currentPosition][Recorder.Y] * _local2))); _local5 = (lastANGLE - int((playbackArray[currentPosition][Recorder.ANGLE] * _local2))); return (new Array(_local3, _local4, _local5)); //unresolved jump }; return (new Array(lastX, lastY, lastANGLE)); } public function reset():void{ playbackArray = []; } } }//package game.recorder
Section 278
//Recorder (game.recorder.Recorder) package game.recorder { import flash.utils.*; import game.track.*; public class Recorder { private var byteArray:ByteArray; private var currentPosition:int;// = 0 private var lastY:int; private var currPos:Array; private var lastX:int; private var record:Boolean;// = false private var recorderArray:Array; private var lastMS:int; private var lastANGLE:int; public static var ANGLE:int = 2; public static var X:int = 0; public static var Y:int = 1; public static var MS:int = 3; public function Recorder(_arg1:Track){ lastX = _arg1.startX; lastY = _arg1.startY; lastANGLE = _arg1.startAngle; lastMS = 0; currPos = new Array(lastX, lastY, lastANGLE, 0); recorderArray = [currPos]; } public function add(_arg1:int, _arg2:int, _arg3:int, _arg4:int):void{ currPos = new Array((_arg1 - lastX), (_arg2 - lastY), (_arg3 - lastANGLE), (_arg4 - lastMS)); recorderArray.push(currPos); lastX = _arg1; lastY = _arg2; lastANGLE = _arg3; lastMS = _arg4; } public function toString():void{ trace("["); var _local1:int; while (_local1 < recorderArray.length) { currPos = recorderArray[_local1]; trace((("[" + currPos) + "],")); _local1++; }; trace("]"); } public function reset():void{ recorderArray = []; } } }//package game.recorder
Section 279
//TileEngine (game.tiles.TileEngine) package game.tiles { import flash.events.*; import flash.display.*; import flash.utils.*; import game.track.*; import flash.geom.*; import org.casalib.display.*; public class TileEngine extends CasaSprite { private var tx:Number; private var ty:Number; public var left:Number; private var m_bitmapData:BitmapData; public var tileHeight:Number; private var oldY:Number;// = NAN public var tileSheetWidth:int; private var stageRectangle:Rectangle; private var mapPoint:Point; public var right:Number; private var oldX:Number;// = NAN public var mapHeight:Number; public var bottom:Number; private var m_alphaBitmapData:BitmapData; public var tileWidth:Number; private var stageHeight:Number; public var mapWidth:Number; private var tileArray:Array; private var offsetx:Number; private var offsety:Number; private var topMax:Number; private var tileSheet:TileSheet; private var blank:int; public var top:Number; private var track:Track; public var mapArray:Array; private var mapRect:Rectangle; public var mapArrayHeight:int; private var stageWidth:Number; public var mapArrayWidth:int; private var cx:Number; private var cy:Number; private var _x:Number; private var _y:Number; private var t:Number; private var u:Number; private var leftMax:Number; public static var CHANGED:String = "tilesChanged"; public static var TOP:int = 2; public static var LEFT:int = 0; public static var BOTTOM:int = 3; public static var RIGHT:int = 1; public function TileEngine(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:Track){ mapArray = []; tileArray = []; super(); m_bitmapData = _arg1; track = _arg4; blank = track.tileBlank; tileWidth = track.tileWidth; tileHeight = track.tileHeight; tileSheet = new TileSheet((tileWidth * 7), (tileWidth * 5), tileWidth, track.backgroundType, track.roadType); tileSheetWidth = (tileSheet.bitmapData.width / track.tileWidth); m_alphaBitmapData = tileSheet.alphaBitmapData; stageWidth = _arg2; stageHeight = _arg3; stageRectangle = new Rectangle(0, 0, stageWidth, stageHeight); mapArray = track.tileArray; mapArrayWidth = mapArray[0].length; mapArrayHeight = mapArray.length; mapWidth = (mapArrayWidth * tileWidth); mapHeight = (mapArray.length * tileHeight); tx = (Math.ceil((stageWidth / tileWidth)) + 1); ty = (Math.ceil((stageHeight / tileHeight)) + 1); leftMax = (mapWidth / tileWidth); topMax = (mapHeight / tileHeight); } override public function destroy():void{ m_bitmapData.dispose(); tileSheet.destroy(); mapArray = null; super.destroy(); } public function render(_arg1:Number, _arg2:Number):void{ m_bitmapData.lock(); if (_arg1 < 0){ cx = -(Math.floor(Math.abs((_arg1 / tileWidth)))); } else { cx = Math.floor((_arg1 / tileWidth)); }; if (_arg2 < 0){ cy = -(Math.floor(Math.abs((_arg2 / tileHeight)))); } else { cy = Math.floor((_arg2 / tileHeight)); }; offsetx = (_arg1 % tileWidth); offsety = (_arg2 % tileHeight); t = -1; while (t < tx) { u = -1; for (;u < ty;u++) { left = (cx + t); top = (cy + u); right = (left + tx); bottom = (top + ty); if ((((((((left < 0)) || ((top < 0)))) || ((left >= leftMax)))) || ((top >= topMax)))){ mapRect = getTile(blank); } else { mapRect = getTile(mapArray[top][left]); }; mapPoint = new Point((-(offsetx) + (t * tileWidth)), (-(offsety) + (u * tileHeight))); if (mapPoint.x < -(tileWidth)){ continue; } else { if (mapPoint.y < -(tileHeight)){ continue; } else { if (mapPoint.x > stageWidth){ continue; } else { if (mapPoint.y > stageHeight){ continue; }; }; }; }; if (mapPoint.x > (stageWidth - tileWidth)){ mapRect.width = (stageWidth - mapPoint.x); } else { if (mapPoint.x <= 0){ mapRect.x = (mapRect.x + -(mapPoint.x)); mapRect.width = (mapRect.width + mapPoint.x); mapPoint.x = 0; }; }; if (mapPoint.y > (stageHeight - tileHeight)){ mapRect.height = (stageHeight - mapPoint.y); } else { if (mapPoint.y <= 0){ mapRect.y = (mapRect.y + -(mapPoint.y)); mapRect.height = (mapRect.height + mapPoint.y); mapPoint.y = 0; }; }; m_bitmapData.copyPixels(tileSheet.bitmapData, mapRect, mapPoint, null, null, false); }; t++; }; oldX = _arg1; oldY = _arg2; m_bitmapData.unlock(); } public function validWidth(_arg1:int):int{ if (_arg1 < 0){ _arg1 = 0; }; if (_arg1 >= mapArrayWidth){ _arg1 = (mapArrayWidth - 1); }; return (_arg1); } public function getTile(_arg1:int):Rectangle{ _arg1--; var _local2:int = int((_arg1 / tileSheetWidth)); var _local3:int = (_arg1 % tileSheetWidth); return (new Rectangle((_local3 * tileWidth), (_local2 * tileHeight), tileWidth, tileHeight)); } public function validHeight(_arg1:int):int{ if (_arg1 < 0){ _arg1 = 0; }; if (_arg1 >= mapArrayHeight){ _arg1 = (mapArrayHeight - 1); }; return (_arg1); } public function get alphaBitmapData():BitmapData{ return (m_alphaBitmapData); } } }//package game.tiles
Section 280
//TileSheet (game.tiles.TileSheet) package game.tiles { import flash.display.*; import game.track.*; import flash.geom.*; import assets.*; import flash.filters.*; public class TileSheet { private var embed_BitmapTilesTarmacTexture:BitmapTilesTarmacTexture;// = null private var m_cols:int;// = 4 private var m_trackBackground:BitmapData; private var m_bitmapData:BitmapData; private var m_tileRectangle:Rectangle; private var m_filter:ColorMatrixFilter; private var embed_BitmapTilesDesertAlpha:BitmapTilesDesertAlpha;// = null private var embed_BitmapTilesDesertTexture:BitmapTilesDesertTexture;// = null private var m_counter:int;// = 0 private var m_tileBackgroundSnow:Array; private var m_tileBackgroundsArray:Array; private var m_tileBackgroundTarmac:Array; private var m_height:int; private var m_colourMatrix:Array; private var m_tile:BitmapData; private var m_tileBackgroundDesert:Array; private var m_trackAlphaSrc:BitmapData; private var m_tileBackgroundForest:Array; private var m_matrix:Matrix; private var embed_BitmapTilesTarmacAlpha:BitmapTilesTarmacAlpha;// = null private var m_tileSize:int;// = 400 private var m_trackTexture:BitmapData; private var m_trackAlpha:BitmapData; private var m_rows:int;// = 7 private var embed_BitmapTilesSnowTexture:BitmapTilesSnowTexture;// = null private var m_width:int; public function TileSheet(_arg1:int, _arg2:int, _arg3:int, _arg4:String, _arg5:String){ m_tileBackgroundDesert = [[0, 0], [1, 0], [2, 0], [3, 0], [0, 0], [1, 0], [2, 0], [3, 0], [0, 0], [1, 0], [2, 0], [3, 0], [0, 0], [1, 0], [2, 0], [3, 0], [0, 0], [1, 0], [2, 0], [3, 0], [0, 0], [1, 0], [2, 0], [3, 0], [0, 0], [1, 0], [2, 0], [3, 0]]; m_tileBackgroundForest = [[0, 2], [1, 2], [2, 2], [3, 2], [0, 2], [1, 2], [2, 2], [3, 2], [0, 2], [1, 2], [2, 2], [3, 2], [0, 2], [1, 2], [2, 2], [3, 2], [0, 2], [1, 2], [2, 2], [3, 2], [0, 2], [1, 2], [2, 2], [3, 2], [0, 2], [1, 2], [2, 2], [3, 2]]; m_tileBackgroundTarmac = [[0, 2], [1, 2], [2, 2], [3, 2], [0, 2], [1, 2], [2, 2], [3, 2], [0, 2], [1, 2], [2, 2], [3, 2], [0, 2], [1, 2], [2, 2], [3, 2], [0, 2], [1, 2], [2, 2], [3, 2], [0, 2], [1, 2], [2, 2], [3, 2], [0, 2], [1, 2], [2, 2], [3, 2]]; m_tileBackgroundSnow = [[0, 1], [1, 1], [0, 1], [1, 1], [0, 1], [1, 1], [0, 1], [1, 1], [0, 1], [1, 1], [0, 1], [1, 1], [0, 1], [1, 1], [0, 1], [1, 1], [0, 1], [1, 1], [0, 1], [1, 1], [0, 1], [1, 1], [0, 1], [1, 1], [0, 1], [1, 1], [0, 1], [1, 1]]; super(); m_colourMatrix = new Array(); m_colourMatrix = m_colourMatrix.concat([0.3, 0.59, 0.11, 0, 0]); m_colourMatrix = m_colourMatrix.concat([0.3, 0.59, 0.11, 0, 0]); m_colourMatrix = m_colourMatrix.concat([0.3, 0.59, 0.11, 0, 0]); m_colourMatrix = m_colourMatrix.concat([0, 0, 0, 0.3, 0]); m_filter = new ColorMatrixFilter(m_colourMatrix); m_tileRectangle = new Rectangle(0, 0, m_tileSize, m_tileSize); m_bitmapData = new BitmapData(_arg1, _arg2, false, 0); m_tileSize = _arg3; initilizeBitmaps(_arg4, _arg5); } public function get bitmapData():BitmapData{ return (m_bitmapData); } private function initilizeBitmaps(_arg1:String, _arg2:String):void{ var _local4:int; var _local5:BitmapData; m_tile = new BitmapData(m_tileSize, m_tileSize, true, 0); switch (_arg1){ case TrackTypes.BACKGROUND_DESERT: m_tileBackgroundsArray = m_tileBackgroundDesert; break; case TrackTypes.BACKGROUND_TARMAC: m_tileBackgroundsArray = m_tileBackgroundForest; break; case TrackTypes.BACKGROUND_SNOW: m_tileBackgroundsArray = m_tileBackgroundSnow; break; }; switch (_arg2){ case TrackTypes.ROAD_SNOW: m_trackTexture = new BitmapTilesSnowTexture(0, 0); m_trackAlphaSrc = new BitmapTilesSnowAlpha(0, 0); break; case TrackTypes.ROAD_DESERT: m_trackTexture = new BitmapTilesDesertTexture(0, 0); m_trackAlphaSrc = new BitmapTilesDesertAlpha(0, 0); break; case TrackTypes.ROAD_GRAVEL: m_trackTexture = new BitmapTilesDesertTexture(0, 0); m_trackTexture.applyFilter(m_trackTexture, new Rectangle(0, 0, m_trackTexture.width, m_trackTexture.height), new Point(0, 0), m_filter); m_trackAlphaSrc = new BitmapTilesDesertAlpha(0, 0); break; case TrackTypes.ROAD_TARMAC: m_trackTexture = new BitmapTilesTarmacTexture(0, 0); m_trackAlphaSrc = new BitmapTilesTarmacAlpha(0, 0); break; }; m_trackAlpha = new BitmapData(m_trackTexture.width, m_trackTexture.height, true, 0); m_trackAlpha.copyChannel(m_trackAlphaSrc, new Rectangle(0, 0, m_trackTexture.width, m_trackTexture.height), new Point(0, 0), 1, 8); m_trackBackground = new BitmapTilesBackground(0, 0); var _local3:int; while (_local3 < m_cols) { _local4 = 0; while (_local4 < m_rows) { _local5 = getBackgroundTile(m_tileBackgroundsArray[m_counter][0], m_tileBackgroundsArray[m_counter][1]); m_bitmapData.copyPixels(_local5, new Rectangle(0, 0, m_tileSize, m_tileSize), new Point((_local4 * m_tileSize), (_local3 * m_tileSize))); _local5.dispose(); m_counter++; _local4++; }; _local3++; }; m_bitmapData.copyPixels(m_trackTexture, new Rectangle(0, 0, (m_tileSize * m_rows), (m_tileSize * m_cols)), new Point(0, 0), m_trackAlpha, new Point(0, 0)); trace("--> m_trackAlphaSrc ", m_trackAlphaSrc); } private function getTile(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:Boolean=false, _arg6:Boolean=false):BitmapData{ var _local7:BitmapData = new BitmapData(m_tileSize, m_tileSize, false, 0); var _local8:BitmapData = new BitmapData(m_tileSize, m_tileSize, true, 0); var _local9:Matrix = new Matrix(); _local9.translate((-(m_tileSize) / 2), (-(m_tileSize) / 2)); _local9.rotate(((_arg3 * Math.PI) / 180)); if (_arg5){ _local9.scale(-1, 1); }; if (_arg6){ _local9.scale(1, -1); }; _local9.translate((m_tileSize / 2), (m_tileSize / 2)); _local7.copyPixels(m_trackBackground, new Rectangle((0 * m_tileSize), 400, m_tileSize, m_tileSize), new Point(0, 0)); if (_arg1 >= 0){ _local8.copyPixels(m_trackTexture, new Rectangle((_arg1 * m_tileSize), (_arg2 * m_tileSize), m_tileSize, m_tileSize), new Point(0, 0), m_trackAlpha, new Point((_arg1 * m_tileSize), (_arg2 * m_tileSize))); _local7.draw(_local8, _local9); }; _local8.dispose(); return (_local7); } public function get alphaBitmapData():BitmapData{ return (m_trackAlphaSrc); } private function getBackgroundTile(_arg1:int, _arg2:int):BitmapData{ var _local3:BitmapData = new BitmapData(m_tileSize, m_tileSize, false, 0); _local3.copyPixels(m_trackBackground, new Rectangle((_arg1 * m_tileSize), (_arg2 * m_tileSize), m_tileSize, m_tileSize), new Point(0, 0)); return (_local3); } public function destroy():void{ m_tile.dispose(); m_trackAlpha.dispose(); m_trackTexture.dispose(); m_trackBackground.dispose(); m_trackAlphaSrc.dispose(); m_bitmapData.dispose(); } } }//package game.tiles
Section 281
//Standings (game.track.Standings) package game.track { import game.vehicle.*; public class Standings { private var m_totals:Array; private var m_times:Array; private var m_position:int; private static var m_instance:Standings; public function Standings(){ var _local2:Array; var _local3:int; super(); m_instance = this; m_times = []; m_totals = []; var _local1:int; while (_local1 < Track.tracks) { _local2 = []; _local3 = 0; while (_local3 < Track.vehicles) { _local2.push({id:_local3, totalTime:0}); _local3++; }; m_times.push(_local2); _local1++; }; } public function setTimes(_arg1:int, _arg2:Array):void{ m_times[_arg1] = _arg2; } public function getTotals():Array{ var _local2:Array; var _local3:int; resetTotals(); var _local1 = 1; while (_local1 < Track.tracks) { if (!User.getInstance().getRaced(_local1)){ } else { _local2 = getPoints(_local1); _local3 = 0; while (_local3 < _local2.length) { if (!isNaN(_local2[_local3].points)){ m_totals[_local3] = (m_totals[_local3] + _local2[_local3].points); }; _local3++; }; }; _local1++; }; return (m_totals); } public function getPositionRace(_arg1:int):Object{ var _local2:Array = []; var _local3:int; while (_local3 < Track.vehicles) { _local2.push({id:m_times[_arg1][_local3].id, time:m_times[_arg1][_local3].totalTime}); _local2.sortOn("time", Array.NUMERIC); _local3++; }; var _local4:int; while (_local4 < _local2.length) { if (User.getInstance().getRaced(_arg1)){ if (_local2[_local4].id == 0){ switch (_local4){ case 0: return ({pos:(_local4 + 1), string:((_local4 + 1) + "ST")}); case 1: return ({pos:(_local4 + 1), string:((_local4 + 1) + "ND")}); case 2: return ({pos:(_local4 + 1), string:((_local4 + 1) + "RD")}); default: return ({pos:(_local4 + 1), string:((_local4 + 1) + "TH")}); }; }; }; _local4++; }; return ({pos:-1, string:" - "}); } public function getTimes(_arg1:int):Array{ return (m_times[_arg1]); } public function getPoints(_arg1:int):Array{ if (_arg1 == 0){ return ([]); }; var _local2:Array = []; var _local3:Array = []; var _local4:int; var _local5:int; while (_local5 < VehicleManager.vehiclesLength) { trace(_local5, "id: ", m_times[_arg1][_local5].id, "time: ", m_times[_arg1][_local5].totalTime); _local2.push({id:m_times[_arg1][_local5].id, time:m_times[_arg1][_local5].totalTime}); _local2.sortOn("time", Array.NUMERIC); _local5++; }; var _local6:int; while (_local6 < _local2.length) { if (User.getInstance().getRaced(_arg1)){ switch (_local6){ case 0: _local4 = Constants.POINTS_FIRST; break; case 1: _local4 = Constants.POINTS_SECOND; break; case 2: _local4 = Constants.POINTS_THIRD; break; default: _local4 = 0; break; }; } else { _local4 = 0; }; _local3.push({id:_local2[_local6].id, points:_local4}); _local6++; }; _local3.sortOn("id", Array.NUMERIC); return (_local3); } private function resetTotals():void{ m_totals = []; var _local1:int; while (_local1 < VehicleManager.vehiclesLength) { m_totals.push(0); _local1++; }; } public function getPosition():int{ return (6); } public static function getInstance():Standings{ return (m_instance); } } }//package game.track
Section 282
//Track (game.track.Track) package game.track { public class Track { public var effects:Array; public var obstacleXML:XMLList; public var locked:Boolean;// = true public var name:String; public var prizeThird:int; public var backgroundType:String; public var startAngle:int; public var obstacleArray:Array; private var node:XML; public var prizeSecond:int; public var racersArray:Array; public var unlocks:String;// = "" public var checkpointArray:Array; public var startX:int; public var startY:int; public var laps:int; public var prizeFirst:int; public var conditions:String; public var multiplier:Number;// = 0 public var speedModifier:Number; public var tileBlank:int; public var tileWidth:int; public var gripModifier:Number; public var tileArray:Array; public var tileSheet:String; public var waypointArray:Array; public var checkpointXML:XMLList; public var entry:int; public var racersXML:XMLList; public var tileHeight:int; public var advice:String; public var roadType:String; public var description:String; public static var _XML:XML = EmbeddedData.tracksXML; public static var SOLID:int = 0; public function Track(_arg1:XML){ var _local3:Array; tileArray = []; checkpointArray = []; obstacleArray = []; waypointArray = []; racersArray = []; super(); name = String(_arg1.name); description = String(_arg1.description); advice = String(_arg1.advice); laps = int(_arg1.laps); unlocks = String(_arg1.unlock); conditions = String(_arg1.conditions); entry = int(_arg1.entry); prizeFirst = int(_arg1.prizes.first); prizeSecond = int(_arg1.prizes.second); prizeThird = int(_arg1.prizes.third); multiplier = Number(_arg1.racers.@multiplier); tileSheet = String(_arg1.tilemap.@sprite); tileWidth = int(_arg1.tilemap.@width); tileHeight = int(_arg1.tilemap.@height); tileBlank = int(_arg1.tilemap.@blank); backgroundType = String(_arg1.tilemap.@background); roadType = String(_arg1.tilemap.@road); effects = String(_arg1.effects).split(","); gripModifier = Number(_arg1.effects.@grip_modifier); speedModifier = Number(_arg1.effects.@speed_modifier); var _local2:int; while (_local2 < _arg1.tilemap.tiles.length()) { _local3 = NumberArray(String(_arg1.tilemap.tiles[_local2]).split(",")); tileArray.push(_local3); _local2++; }; checkpointXML = _arg1.checkpoints; obstacleXML = _arg1.obstacles; racersXML = _arg1.racers; _local2 = 0; while (_local2 < checkpointXML.checkpoint.length()) { node = checkpointXML.checkpoint[_local2]; _local3 = [String(node.@sprite), int(node.@x), int(node.@y), int(node.@width), int(node.@height), String(node.@type), Number(node.@mass), int(node.@angle), checkpointArray.length]; checkpointArray.push(_local3); _local2++; }; _local2 = 0; while (_local2 < _arg1.waypoints.waypoint.length()) { node = _arg1.waypoints.waypoint[_local2]; waypointArray.push([int(node.@x), int(node.@y), int(node.@angle)]); _local2++; }; startX = int(_arg1.start.@x); startY = int(_arg1.start.@y); startAngle = int(_arg1.start.@angle); } private function NumberArray(_arg1:Array):Array{ var _local2:Array = []; var _local3:int; while (_local3 < _arg1.length) { _local2.push(int(_arg1[_local3])); _local3++; }; return (_local2); } public static function get vehicles():int{ return (_XML.track[0].racers.racer.length()); } public static function getTrackData(_arg1:int):Track{ if ((((_arg1 > 0)) && ((_arg1 < tracks)))){ return (new Track(_XML.track[_arg1])); }; return (new Track(_XML.track[0])); } public static function get tracks():int{ return (_XML.track.length()); } } }//package game.track
Section 283
//TrackEvent (game.track.TrackEvent) package game.track { import flash.events.*; public class TrackEvent extends Event { public var id:int; public function TrackEvent(_arg1:String, _arg2:int){ super(_arg1, true, true); id = _arg2; } override public function clone():Event{ return (new TrackEvent(type, id)); } } }//package game.track
Section 284
//TrackTypes (game.track.TrackTypes) package game.track { public class TrackTypes { public static var ROAD_FOREST:String = "RoadForest"; public static var BACKGROUND_DESERT:String = "BackgroundDesert"; public static var ROAD_TARMAC:String = "RoadTarmac"; public static var BACKGROUND_TARMAC:String = "BackgroundTarmac"; public static var ROAD_GRAVEL:String = "RoadGravel"; public static var BACKGROUND_FOREST:String = "BackgroundForest"; public static var ROAD_SNOW:String = "RoadSnow"; public static var ROAD_DESERT:String = "RoadDesert"; public static var BACKGROUND_SNOW:String = "BackgroundSnow"; } }//package game.track
Section 285
//SpriteSheet (game.utils.SpriteSheet) package game.utils { import flash.display.*; import flash.geom.*; public class SpriteSheet extends Sprite { private var BitmapDataArray:Array; private var _frames:Number; private var stepX:Number; private var transformMatrix:Matrix; private var yScale:Number; private var stepY:Number; private var copyPoint:Point; private var BitmapDataTile:BitmapData; private var _h:Number; private var stepRot:Number; private var isAnimated:Boolean;// = false private var xScale:Number; private var rotScale:Number; private var _w:Number; private var copyRectangle:Rectangle; public function SpriteSheet(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number=0, _arg9:Number=0, _arg10:int=1, _arg11:int=1, _arg12:MovieClip=null){ if (_arg12){ _frames = _arg12.totalFrames; } else { _frames = _arg10; }; _w = _arg2; _h = _arg3; BitmapDataArray = []; xScale = _arg4; yScale = _arg6; rotScale = _arg8; stepX = ((_arg5 - _arg4) / _arg10); stepY = ((_arg7 - _arg6) / _arg10); stepRot = ((_arg9 - _arg8) / _arg10); copyRectangle = new Rectangle(0, 0, _w, _h); var _local13:int; while (_local13 < _frames) { BitmapDataTile = new BitmapData(_arg2, _arg3, true, 0xFFFFFF); transformMatrix = new Matrix(); transformMatrix.rotate(rotScale); transformMatrix.scale(xScale, yScale); transformMatrix.tx = (_arg2 / 2); transformMatrix.ty = (_arg3 / 2); if (_arg12){ _arg12.gotoAndStop((_local13 + 1)); } else { _arg1.gotoAndStop(_arg11); }; BitmapDataTile.draw(_arg1, transformMatrix); BitmapDataArray.push(BitmapDataTile); xScale = (xScale + stepX); yScale = (yScale + stepY); rotScale = (rotScale + stepRot); _local13++; }; } public function destroy():void{ var _local1:int; while (_local1 < BitmapDataArray.length) { BitmapDataArray[_local1].dispose(); _local1++; }; BitmapDataTile.dispose(); BitmapDataArray = null; } public function draw(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:int):void{ if (_arg4 < 0){ _arg4 = 0; }; if (_arg4 >= BitmapDataArray.length){ _arg4 = (BitmapDataArray.length - 1); }; copyPoint = new Point((_arg2 - (_w / 2)), (_arg3 - (_h / 2))); _arg1.copyPixels(getBitmap(_arg4), copyRectangle, copyPoint, null, null, true); } public function getWidth():Number{ return (_w); } public function getFrames():int{ return (_frames); } public function getHeight():Number{ return (_h); } public function getBitmap(_arg1:Number):BitmapData{ if (_arg1 < 0){ _arg1 = 0; }; if (_arg1 >= BitmapDataArray.length){ _arg1 = (BitmapDataArray.length - 1); }; return (BitmapDataArray[_arg1]); } } }//package game.utils
Section 286
//Stats (game.utils.Stats) package game.utils { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.geom.*; import flash.text.*; import flash.system.*; public class Stats extends Sprite { private var memText:TextField; private var timer:int; private var fps:int; private var ms:int; private var msText:TextField; private var graph:BitmapData; private var fpsText:TextField; private var format:TextFormat; private var mem:Number;// = 0 private var msPrev:int;// = 0 public function Stats():void{ graph = new BitmapData(60, 50, false, 819); var _local1:Bitmap = new Bitmap(graph); _local1.y = 35; addChild(_local1); format = new TextFormat("_sans", 9); graphics.beginFill(0); graphics.drawRect(0, 0, 60, 50); graphics.endFill(); fpsText = new TextField(); msText = new TextField(); memText = new TextField(); fpsText.defaultTextFormat = (msText.defaultTextFormat = (memText.defaultTextFormat = format)); fpsText.width = (msText.width = (memText.width = 60)); fpsText.selectable = (msText.selectable = (memText.selectable = false)); fpsText.textColor = 0xFFFF00; fpsText.text = "FPS: "; addChild(fpsText); msText.y = 10; msText.textColor = 0xFF00; msText.text = "MS: "; addChild(msText); memText.y = 20; memText.textColor = 0xFFFF; memText.text = "MEM: "; addChild(memText); addEventListener(MouseEvent.CLICK, mouseHandler); addEventListener(Event.REMOVED_FROM_STAGE, handleRemoved); addEventListener(Event.ENTER_FRAME, update); } private function update(_arg1:Event):void{ var _local2:int; var _local3:Number; timer = getTimer(); fps++; if ((timer - 1000) > msPrev){ msPrev = timer; mem = Number((System.totalMemory / 0x100000).toFixed(3)); _local2 = Math.min(50, ((50 / stage.frameRate) * fps)); _local3 = (Math.min(50, Math.sqrt(Math.sqrt((mem * 5000)))) - 2); graph.scroll(1, 0); graph.fillRect(new Rectangle(0, 0, 1, graph.height), 0); graph.setPixel(0, (graph.height - _local2), 0xFFFF00); graph.setPixel(0, (graph.height - ((timer - ms) >> 1)), 0xFF00); graph.setPixel(0, (graph.height - _local3), 0xFFFF); fpsText.text = ((("FPS: " + fps) + " / ") + stage.frameRate); memText.text = ("MEM: " + mem); fps = 0; }; msText.text = ("MS: " + (timer - ms)); ms = timer; } private function mouseHandler(_arg1:MouseEvent):void{ if (this.mouseY > (this.height * 0.35)){ stage.frameRate--; } else { stage.frameRate++; }; fpsText.text = ((("FPS: " + fps) + " / ") + stage.frameRate); } private function handleRemoved(_arg1:Event):void{ removeEventListener(MouseEvent.CLICK, mouseHandler); removeEventListener(Event.REMOVED_FROM_STAGE, handleRemoved); removeEventListener(Event.ENTER_FRAME, update); } } }//package game.utils
Section 287
//Utilities (game.utils.Utilities) package game.utils { import flash.display.*; import flash.geom.*; public class Utilities { public static function local2Local(_arg1:Sprite, _arg2:Sprite):Point{ var _local3:Point = new Point(); _local3 = _arg1.localToGlobal(_local3); _local3 = _arg2.globalToLocal(_local3); return (_local3); } public static function getPos(_arg1:Sprite):Point{ var _local2:Point = new Point(); _local2 = _arg1.localToGlobal(_local2); return (_local2); } public static function padScore(_arg1:int, _arg2:int):String{ var _local3 = "000000000000000000000"; var _local4:String = _arg1.toString(); if (_local4.length < _arg2){ _local4 = (_local3.substring(0, (_arg2 - _local4.length)) + _local4); }; return (_local4); } } }//package game.utils
Section 288
//CollisionEvent (game.vehicle.CollisionEvent) package game.vehicle { import flash.events.*; public class CollisionEvent extends Event { public var id:int; public var force:Number; public static var COLLISION:String = "vehicleCollision"; public function CollisionEvent(_arg1:String, _arg2:int, _arg3:Number){ super(_arg1); force = _arg3; id = _arg2; } } }//package game.vehicle
Section 289
//Controller (game.vehicle.Controller) package game.vehicle { import flash.events.*; import flash.display.*; import flash.utils.*; import game.track.*; import flash.geom.*; import com.markfennell.geom.*; import flash.text.*; public class Controller extends EventDispatcher { private var m_vvx1:Number; private var m_circlePos:Point; private var m_vvx2:Number; private var m_pathPoint:Number; private var dvx:Number; private var dvy:Number; private var m_vvy1:Number; private var m_vvy2:Number; private var m_container:BitmapData; private var m_unstickTime:Number;// = 800 private var m_ptVehicle:Point; private var ax:Number; private var ay:Number; private var m_ptWaypoint:Point; private var m_controllerFinished:Boolean;// = false private var m_waypointsLength:int; private var m_waypoints:Array; private var m_originx:Number; private var m_originy:Number; private var m_setCompleteTime:int;// = 1500 private var m_waypointLength:Number;// = 100 private var m_hasFinished:Boolean;// = false private var m_isStuckLong:Boolean;// = false private var m_vehicle:Vehicle; private var m_waypointCurrent:int;// = 0 private var m_slowRange:Number;// = 180 private var m_isCompleted:Boolean;// = false private var acc:Number; private var m_line:Line; private var m_distance:Number; private var m_radius:Number; private var m_isStuck:Boolean;// = false private var m_tolerance:Number;// = 200 private var m_lap:int;// = 0 private var m_ptWaypointNext:Point; private var dsx:Number; private var dsy:Number; private var m_waypointsCollision:Array; private var m_steps:int;// = 1 private var m_toleranceAngle:Number;// = 0.2 private var m_totalTime:int;// = 0 private var m_steeringHardness:int;// = 1 private var dangle:Number; private var m_track:Track; private var m_lapTimes:Array; public function Controller(_arg1:Track, _arg2:Vehicle, _arg3:BitmapData, _arg4:Number){ m_lapTimes = []; m_waypoints = []; m_waypointsCollision = []; super(); m_track = _arg1; m_vehicle = _arg2; m_container = _arg3; m_pathPoint = _arg4; var _local5:int; while (_local5 < m_track.waypointArray.length) { m_line = Line.createLine(m_track.waypointArray[_local5][0], m_track.waypointArray[_local5][1], m_waypointLength, (m_track.waypointArray[_local5][2] * Constants.DEG2RAD)); m_waypoints.push(m_line); m_line = Line.createLine(m_track.waypointArray[_local5][0], m_track.waypointArray[_local5][1], 400, (m_track.waypointArray[_local5][2] * Constants.DEG2RAD)); m_waypointsCollision.push(m_line); if (Constants.SHOW_LINES){ Line.draw(m_line, _arg3); }; _local5++; }; m_ptWaypoint = Line.getPoint(m_waypoints[m_waypointCurrent], m_pathPoint); if (Constants.SHOW_LINES){ }; } public function get waypoint():int{ return (m_waypointCurrent); } public function set isStuck(_arg1:Boolean):void{ if (_arg1){ setTimeout(unStick, m_unstickTime); m_isStuck = true; }; } public function renderGraphics(_arg1:int, _arg2:int):void{ } public function set isStuckLong(_arg1:Boolean):void{ } private function unStick():void{ trace("UNstuck"); m_isStuck = false; m_vehicle.acceleration = 1; } public function raceCompleted():void{ m_isCompleted = true; } public function get isStuck():Boolean{ return (m_isStuck); } private function findAngle(_arg1:Point, _arg2:Point):Number{ var _local3:Number = (_arg2.x - _arg1.x); var _local4:Number = (_arg2.y - _arg1.y); return (Math.atan2(_local4, _local3)); } public function get lap():int{ return (m_lap); } private function checkAngle(_arg1:Number):Number{ if (_arg1 > Math.PI){ _arg1 = (_arg1 - (2 * Math.PI)); }; if (_arg1 < -(Math.PI)){ _arg1 = (_arg1 + (2 * Math.PI)); }; return (_arg1); } public function distToAngle(_arg1:Number, _arg2:Number):Number{ _arg1 = (_arg1 * (180 / Math.PI)); _arg2 = (_arg2 * (180 / Math.PI)); _arg1 = (_arg1 % 360); _arg2 = (_arg2 % 360); if (_arg2 < 0){ _arg2 = (_arg2 + 360); }; var _local3:Number = (_arg2 - _arg1); if (_local3 > 180){ _local3 = (_local3 - 360); } else { if (_local3 < -180){ _local3 = (_local3 + 360); }; }; _local3 = (_local3 * (Math.PI / 180)); return (_local3); } public function renderPhysics(_arg1:int, _arg2:Number):void{ var _local3:Number; var _local4:Number; var _local5:Number; if (Math.random() > 0.999){ m_pathPoint = ((Math.random() * 0.6) + 0.2); }; if (m_isStuck){ m_vehicle.acceleration = -1; m_vehicle.steering = 0; } else { m_vehicle.acceleration = 1; m_ptVehicle = new Point(m_vehicle.x, m_vehicle.y); if (Line.intersects(m_waypointsCollision[m_waypointCurrent], m_vehicle.line)){ m_waypointCurrent++; if (m_waypointCurrent >= m_track.waypointArray.length){ m_waypointCurrent = 0; }; m_ptWaypoint = Line.getPoint(m_waypoints[m_waypointCurrent], m_pathPoint); }; _local3 = findAngle(m_ptVehicle, m_ptWaypoint); _local4 = distToAngle(_local3, m_vehicle.angle); _local5 = 0.7; if (_local4 > m_toleranceAngle){ if (_local4 > 0.6){ _local5 = 1; if ((((Point.distance(m_ptWaypoint, new Point(m_vehicle.x, m_vehicle.y)) < m_slowRange)) && ((m_vehicle.speed > 5)))){ m_vehicle.acceleration = 0.5; }; } else { if (_local4 > (Math.PI / 4)){ _local5 = 1.25; if ((((Point.distance(m_ptWaypoint, new Point(m_vehicle.x, m_vehicle.y)) < m_slowRange)) && ((m_vehicle.speed > 5)))){ m_vehicle.acceleration = 0.5; }; }; }; m_vehicle.steering = (-(_local5) * m_steeringHardness); } else { if (_local4 < -(m_toleranceAngle)){ if (_local4 < (-(Math.PI) / 4)){ _local5 = 1.25; if ((((Point.distance(m_ptWaypoint, new Point(m_vehicle.x, m_vehicle.y)) < m_slowRange)) && ((m_vehicle.speed > 5)))){ m_vehicle.acceleration = 0.5; }; } else { if (_local4 < -0.6){ _local5 = 1; if ((((Point.distance(m_ptWaypoint, new Point(m_vehicle.x, m_vehicle.y)) < m_slowRange)) && ((m_vehicle.speed > 5)))){ m_vehicle.acceleration = 0.5; }; }; }; m_vehicle.steering = (_local5 * m_steeringHardness); } else { m_vehicle.steering = 0; }; }; if (!m_isCompleted){ } else { m_vehicle.acceleration = 0; }; }; } public function distToAngle2(_arg1:Number, _arg2:Number):Number{ return (Math.atan2(Math.sin((_arg2 - _arg1)), Math.cos((_arg2 - _arg1)))); } } }//package game.vehicle
Section 290
//Ghost (game.vehicle.Ghost) package game.vehicle { import flash.display.*; import flash.utils.*; import game.recorder.*; public class Ghost { public var isVehicle:Boolean;// = false private var offsetY:Number; private var m_container:Sprite; private var offsetX:Number; private var step:int;// = 0 private var ghost:MovieClip; private var dx:Number; private var dy:Number; private var playback:Playback; private var steps:int;// = 200 public function Ghost(_arg1:Sprite, _arg2:String){ var _local3:Array = [[100, 300, 0, 0], [75, 60, 0, 71], [0, 0, 0, 184], [1, 0, 0, 115], [3, 0, 0, 119], [4, 0, 0, 99], [5, 0, 0, 102], [7, 0, 0, 109], [8, 0, 0, 102], [10, 0, 0, 104], [10, 0, 0, 102], [15, 0, 0, 132], [18, 0, 0, 132], [14, 0, 0, 102], [20, 0, 0, 132], [22, 0, 0, 133], [24, 0, 0, 134], [19, 0, 0, 102], [27, -1, -1, 132], [28, -4, -5, 133], [22, -4, -3, 102], [30, -7, -3, 135], [23, -6, -2, 101], [24, -6, 0, 101], [25, -7, -1, 102], [26, -7, 0, 102], [25, -8, 0, 100], [26, -7, 0, 99], [28, -7, 0, 103], [37, -6, 7, 132], [30, -1, 8, 101], [30, 3, 5, 99], [42, 6, 4, 136], [31, 6, 2, 102], [32, 5, -2, 102], [33, 3, -4, 102], [33, 2, -3, 100], [34, 1, -1, 101], [34, 1, -1, 101], [46, 0, 0, 133], [35, 0, 0, 101], [35, 0, 0, 99], [48, 0, 0, 136], [36, 0, 0, 99], [36, 0, 0, 98], [38, 0, 0, 104], [39, 0, 0, 104], [49, 0, 0, 131], [38, 0, 0, 101], [38, 0, 0, 101], [51, 0, 0, 132], [51, 0, 0, 132], [52, 0, 0, 133], [41, 1, 2, 103], [41, 7, 7, 104], [38, 11, 11, 100], [37, 20, 12, 102], [33, 28, 12, 106], [37, 41, 9, 132], [25, 34, 2, 103], [26, 33, -3, 101], [31, 31, -10, 103], [34, 24, -11, 100], [39, 18, -12, 99], [43, 9, -13, 103], [57, 4, -9, 131], [44, -1, -2, 102], [57, -4, 0, 133], [43, -4, 1, 101], [44, -3, 0, 102], [58, -4, 1, 133], [44, -3, 0, 101], [45, -3, 0, 102], [43, -4, -1, 99], [58, -4, 0, 132], [59, -4, 0, 132], [44, -3, 0, 100], [45, -2, 2, 101], [44, 1, 5, 99], [62, 8, 7, 139], [49, 7, -2, 110], [46, 4, -4, 103], [60, 2, -4, 132], [46, 1, 0, 101], [45, 0, 0, 99], [48, 0, 0, 106], [45, 0, 0, 99], [60, 0, 0, 131], [48, 0, 0, 106], [61, 0, 0, 134], [46, 0, 0, 100], [47, 0, 0, 102], [45, 0, 0, 99], [62, 0, 0, 133], [46, 0, 0, 101], [50, 0, 0, 107], [60, 6, 7, 132], [61, 17, 15, 135], [40, 22, 12, 99], [47, 42, 18, 134], [29, 43, 15, 113], [20, 46, 15, 113], [12, 57, 12, 132], [7, 42, -1, 99], [10, 45, -8, 104], [13, 44, -13, 102], [20, 42, -14, 104], [37, 47, -16, 133], [33, 30, -8, 100], [35, 28, -2, 100], [50, 32, -4, 132], [41, 18, -7, 101], [44, 11, -11, 101], [45, 4, -9, 100], [59, 0, -5, 132], [45, -2, 0, 100], [60, -6, -1, 133], [46, -7, -5, 103], [59, -14, -5, 136], [43, -11, -1, 98], [59, -17, 0, 133], [47, -13, 2, 108], [60, -9, 9, 132], [47, -2, 5, 102], [47, 3, 6, 102], [44, 9, 9, 98], [56, 25, 15, 132], [47, 37, 17, 133], [29, 37, 14, 102], [23, 43, 13, 107], [23, 55, 3, 132], [28, 54, -13, 132], [38, 48, -21, 132], [39, 29, -15, 105], [44, 21, -16, 106], [58, 13, -18, 134], [43, 1, -9, 99], [56, -4, -4, 132], [57, -2, 10, 132], [45, 0, 9, 103], [46, 3, 5, 105], [47, 5, 3, 108], [57, 8, 0, 132], [43, 6, 0, 99], [45, 7, 0, 102], [46, 6, 0, 105], [43, 9, 4, 99], [57, 21, 12, 135], [52, 27, 7, 131], [52, 30, -2, 132], [42, 18, -8, 102], [59, 13, -15, 132], [45, 0, -12, 99], [46, -8, -11, 102], [44, -12, -5, 102], [44, -14, -1, 102], [57, -22, 2, 135], [43, -16, 1, 100], [43, -16, 0, 101], [43, -16, 1, 101], [45, -15, 2, 104], [58, -12, 9, 131], [61, -7, 4, 132], [47, -4, 1, 103], [46, -3, 0, 101], [45, -4, 0, 99], [49, -3, 0, 105], [46, -1, 2, 100], [47, 3, 7, 102], [58, 17, 15, 131], [44, 23, 14, 106], [36, 30, 13, 101], [36, 50, 19, 135], [22, 55, 17, 133], [10, 43, 8, 101], [8, 56, 2, 132], [5, 58, -3, 136], [2, 42, -4, 99], [4, 57, -3, 134], [4, 44, 0, 103], [0, 57, 7, 131], [-10, 57, 14, 133], [-17, 42, 11, 103], [-21, 42, 5, 107], [-25, 53, -7, 132], [-14, 45, -11, 105], [-5, 47, -13, 104], [8, 59, -17, 133], [16, 43, -14, 102], [21, 40, -8, 101], [28, 52, 6, 133], [20, 57, 17, 131], [5, 45, 15, 100], [-3, 46, 15, 101], [-15, 59, 12, 134], [-15, 43, 3, 100], [-23, 54, -2, 133], [-18, 44, -4, 105], [-17, 57, -12, 134], [-5, 49, -11, 108], [3, 45, -10, 100], [11, 46, -9, 105], [19, 56, -4, 131], [14, 43, 2, 100], [12, 47, 9, 106], [4, 46, 10, 101], [-1, 45, 6, 98], [-5, 61, 2, 133], [-5, 46, 1, 101], [-12, 59, 7, 133], [-23, 56, 14, 131], [-37, 50, 17, 133], [-35, 31, 10, 102], [-39, 29, 6, 105], [-37, 24, 1, 98], [-52, 31, -2, 132], [-52, 31, -2, 133], [-52, 32, 0, 133], [-40, 24, 0, 101], [-52, 30, 3, 132], [-44, 19, 8, 102], [-45, 11, 11, 102], [-62, 1, 17, 132], [-58, -15, 18, 131], [-53, -29, 18, 132], [-42, -43, 19, 135], [-27, -49, 18, 132], [-12, -52, 17, 133], [-1, -40, 8, 101], [2, -38, 3, 100], [4, -40, 0, 104], [8, -50, -6, 132], [3, -51, -10, 132], [0, -39, -5, 100], [-3, -41, -2, 105], [-3, -40, -1, 99], [-3, -40, 0, 101], [-6, -55, 0, 137], [-4, -40, -1, 101], [-12, -53, -9, 131], [-17, -40, -11, 107], [-22, -36, -9, 101], [-33, -43, -5, 131], [-37, -44, -1, 136], [-37, -42, 0, 132], [-29, -33, 0, 105], [-37, -42, 0, 131], [-38, -42, 0, 132], [-28, -32, 0, 99], [-38, -43, 0, 134], [-29, -33, 0, 100], [-38, -43, 0, 133], [-38, -43, 0, 131], [-30, -34, 0, 103], [-29, -34, 0, 101], [-30, -33, 0, 102], [-39, -44, 0, 133], [-39, -45, 0, 133], [-30, -32, -3, 101], [-36, -30, -8, 105], [-52, -29, -14, 132], [-43, -16, -8, 101], [-58, -15, -5, 132], [-44, -5, -6, 100], [-46, -2, -5, 102], [-60, 2, -3, 132], [-46, 2, 0, 102], [-60, 4, 0, 131], [-60, 4, 0, 133], [-47, 3, 0, 102], [-47, 3, 0, 104], [-46, 6, -5, 102], [-59, 17, -13, 133], [-42, 23, -12, 104], [-47, 42, -18, 135], [-35, 50, -15, 133], [-20, 40, -6, 99], [-24, 54, -1, 132], [-21, 55, 3, 132], [-21, 57, 2, 134], [-17, 43, 0, 102], [-13, 45, -7, 105], [-6, 45, -10, 99], [3, 62, -14, 136], [10, 59, -5, 132], [9, 46, 2, 101], [4, 61, 13, 133], [-5, 46, 11, 101], [-17, 60, 10, 134], [-15, 43, 1, 100], [-16, 59, -10, 132], [-7, 62, -11, 132], [0, 63, -4, 136], [0, 48, 1, 102], [-6, 61, 11, 132], [-13, 46, 11, 102], [-23, 47, 12, 110], [-34, 53, 8, 136], [-29, 38, 1, 101], [-33, 35, 4, 103], [-34, 30, 5, 99], [-50, 39, 4, 135], [-39, 25, 5, 99], [-56, 27, 8, 132], [-60, 21, 7, 137], [-61, 15, 4, 135], [-61, 13, 0, 133], [-62, 13, 0, 135], [-46, 8, 1, 99], [-49, 5, 7, 105], [-62, 0, 6, 132], [-62, -3, 2, 132], [-62, -5, 0, 131], [-62, -5, 0, 133], [-48, -3, 0, 102], [-47, -1, -5, 99], [-46, 2, -4, 98], [-63, 7, -3, 133], [-47, 6, 0, 101], [-63, 6, 3, 133], [-48, -1, 8, 101], [-47, -8, 12, 101], [-45, -18, 12, 101], [-51, -35, 19, 133], [-32, -35, 14, 101], [-28, -52, 19, 131], [-13, -55, 18, 132], [3, -56, 18, 135], [12, -38, 12, 104], [19, -34, 12, 105], [24, -27, 11, 100], [38, -25, 13, 133], [41, -15, 9, 131], [32, -8, 2, 100], [34, -6, -1, 101], [33, -6, -2, 101], [34, -6, -2, 100], [34, -6, 0, 100], [46, -9, -1, 132], [47, -9, 0, 133], [37, -7, 0, 104], [36, -7, 0, 100], [36, -9, -2, 101], [36, -13, -7, 105], [35, -18, -10, 104], [31, -25, -12, 103], [26, -32, -12, 105], [19, -36, -12, 104], [13, -38, -8, 101], [10, -39, -4, 101], [11, -51, -1, 132], [9, -53, -3, 131], [2, -40, -6, 100], [-1, -54, -5, 132], [-3, -42, -2, 102], [-4, -43, 0, 105], [-4, -41, 0, 98], [-5, -55, 0, 133], [-4, -46, 0, 108], [-8, -55, -4, 132], [-12, -40, -9, 99], [-19, -41, -11, 104], [-31, -48, -7, 133], [-25, -35, -1, 98], [-35, -46, 0, 133], [-35, -45, 0, 132], [-36, -47, 0, 135], [-27, -36, 0, 102], [-35, -46, 0, 132], [-39, -45, -4, 135], [-41, -42, -6, 132], [-33, -29, -2, 98], [-44, -38, 0, 132], [-35, -30, 0, 103], [-34, -29, 0, 98], [-34, -29, 0, 102], [-34, -30, 0, 100], [-46, -38, -1, 132], [-38, -26, -7, 102], [-55, -25, -13, 133], [-45, -13, -8, 103], [-46, -9, -3, 102], [-60, -10, -1, 134], [-47, -7, 1, 104], [-59, -9, 0, 131], [-62, -9, 0, 135], [-45, -6, 0, 99], [-47, -7, 0, 103], [-47, -7, 0, 104], [-60, -9, 0, 132], [-48, -6, -3, 103], [-60, -4, -4, 131], [-61, -1, -1, 132], [-48, -1, 0, 103], [-47, 0, 0, 101], [-47, 0, 0, 102], [-62, -1, 0, 133], [-47, 0, 0, 102], [-47, -1, 0, 101], [-64, 0, 0, 135], [-46, -1, 0, 100], [-62, 3, -5, 132], [-46, 9, -10, 101], [-44, 17, -11, 100], [-52, 34, -17, 131], [-35, 33, -10, 103], [-30, 34, -4, 98], [-30, 37, 0, 103], [-37, 49, 3, 132], [-28, 36, 1, 99], [-29, 37, 1, 101], [-29, 38, 0, 103], [-38, 47, 0, 131], [-38, 49, 0, 133], [-30, 37, 0, 102], [-28, 36, 0, 99], [-30, 38, 0, 104], [-39, 49, 0, 133], [-30, 38, 0, 104], [-39, 50, 0, 136], [-29, 35, 0, 98], [-38, 49, 0, 133], [-39, 49, 0, 132], [-28, 38, -3, 102], [-23, 42, -8, 101], [-21, 59, -16, 133], [-4, 62, -17, 132], [8, 50, -14, 107], [24, 57, -19, 135], [36, 45, -19, 132], [46, 33, -17, 132], [38, 15, -13, 102], [39, 9, -7, 103], [39, 5, -4, 102], [38, 3, 1, 101], [51, 2, 4, 135], [39, 0, 4, 102], [39, 1, 2, 100], [40, 3, 1, 102], [40, 2, 1, 102], [39, 3, 0, 100], [41, 3, 0, 103], [41, 3, 0, 104], [41, 2, 0, 101], [41, 3, 0, 102], [39, 3, 0, 98], [43, 3, 0, 104], [41, 3, 0, 101], [41, 3, 0, 99], [54, 4, 0, 131], [56, 4, 0, 135], [55, 7, 4, 132], [54, 16, 12, 132], [38, 20, 12, 102], [46, 35, 10, 133], [33, 29, 2, 102], [41, 39, 0, 131], [31, 31, 0, 100], [30, 29, 0, 98], [45, 44, 0, 142], [32, 31, 0, 102], [32, 31, 0, 101], [41, 41, 1, 132], [37, 46, 9, 133], [21, 40, 11, 102], [16, 57, 17, 131], [2, 45, 13, 100], [-13, 59, 18, 137], [-18, 40, 13, 99], [-36, 44, 18, 132], [-45, 31, 18, 132], [-37, 15, 12, 99], [-40, 8, 8, 102], [-51, 6, 4, 132], [-52, 3, -3, 133], [-40, 0, -3, 102], [-40, 1, -3, 102], [-53, 3, -1, 134], [-40, 2, 0, 100], [-54, 3, 0, 135], [-53, 4, 0, 132], [-35, 2, 0, 115], [-68, 4, 0, 133], [-41, 3, 0, 100], [-54, 3, 0, 131], [-43, 3, 0, 103], [-42, 2, 0, 101], [-42, 3, 0, 99], [-56, 3, 0, 133], [-41, 3, 0, 98], [-44, 2, 1, 103], [-57, -2, 7, 132], [-42, -5, 3, 99], [-56, -7, 1, 131], [-45, -6, 0, 103], [-56, -9, 0, 131], [-43, -6, 0, 99], [-44, -8, 1, 103], [-42, -11, 6, 98], [-42, -17, 11, 104], [-37, -25, 11, 100], [-42, -42, 15, 133], [-27, -34, 5, 98], [-34, -49, 1, 133], [-25, -39, -1, 104], [-37, -47, -8, 133], [-33, -33, -8, 103], [-35, -29, -4, 102], [-36, -28, -1, 100], [-47, -36, 0, 132], [-37, -27, 0, 100], [-37, -27, 0, 102], [-37, -28, 0, 102], [-49, -36, 0, 132], [-48, -35, 0, 131], [-50, -38, 0, 137], [-37, -27, 0, 101], [-49, -36, 0, 131], [-48, -37, 1, 133], [-34, -31, 7, 99], [-30, -37, 10, 102], [-28, -54, 15, 131], [-19, -58, 8, 132], [-15, -60, 1, 133], [-11, -47, -1, 104], [-10, -45, -1, 100], [-11, -45, 0, 99], [-14, -59, 1, 132], [-7, -47, 4, 102], [-4, -47, 7, 102], [0, -62, 4, 132], [3, -61, 1, 132], [2, -48, 0, 102], [2, -47, -1, 101], [3, -51, 1, 109], [9, -62, 7, 133], [12, -47, 8, 103], [17, -45, 5, 103], [23, -46, 7, 108], [24, -40, 3, 101], [38, -50, 7, 132], [43, -44, 8, 132], [47, -41, 3, 132], [49, -40, 0, 133], [37, -30, 0, 102], [37, -30, -1, 102], [39, -32, 0, 107], [47, -41, -2, 132], [34, -31, -1, 99], [47, -43, -1, 133], [35, -34, 0, 104], [46, -43, 0, 132], [34, -32, 0, 99], [44, -45, -5, 133], [28, -40, -10, 102], [20, -43, -11, 101], [13, -46, -12, 100], [7, -46, -7, 99], [5, -50, -3, 105], [2, -47, 1, 101], [1, -48, 2, 103], [-3, -63, -7, 132], [-10, -45, -10, 99], [-26, -58, -17, 135], [-39, -48, -18, 132], [-53, -38, -19, 140], [-56, -20, -19, 133], [-43, -6, -11, 101], [-56, -2, -6, 132], [-56, 4, 0, 135], [-42, 4, 4, 100], [-54, 6, 5, 131], [-43, 1, 7, 103], [-42, -5, 9, 99], [-41, -13, 12, 102], [-37, -21, 12, 99], [-42, -37, 17, 131], [-31, -49, 17, 134], [-16, -55, 18, 133], [-5, -57, 10, 135], [1, -56, 2, 132], [4, -55, -2, 132], [3, -45, -2, 106], [2, -43, -1, 101], [3, -44, 0, 103], [3, -43, 3, 102], [9, -43, 8, 101], [21, -53, 14, 132], [35, -47, 17, 133], [34, -28, 13, 101], [44, -22, 20, 132], [45, -10, 13, 132], [43, -3, 12, 135], [28, -1, 4, 99], [38, 2, -2, 132], [25, 0, -13, 102], [32, 0, -5, 134], [25, 0, 1, 100], [34, -1, 2, 133], [27, 0, 0, 101], [35, 3, 4, 133], [28, 5, 6, 101], [28, 7, 5, 101], [29, 9, 3, 103], [38, 13, 2, 136], [29, 11, 1, 102], [29, 10, 3, 102], [29, 9, -1, 105], [28, 7, -6, 102], [39, 7, -6, 133], [30, 4, -3, 100], [41, 3, -5, 133], [43, -5, -10, 134], [33, -7, -6, 103], [32, -9, -3, 101], [43, -15, -3, 136], [31, -14, -6, 99], [38, -26, -12, 132], [24, -26, -11, 101], [20, -30, -12, 100], [15, -47, -17, 134], [2, -50, -16, 132], [-12, -49, -17, 132], [-26, -43, -16, 133], [-28, -29, -13, 101], [-34, -22, -12, 102], [-50, -17, -16, 132], [-53, -3, -16, 132], [-42, 6, -10, 102], [-52, 14, -6, 132], [-52, 18, -1, 133], [-40, 14, 0, 102], [-44, 14, -4, 131], [-44, 16, 2, 135], [-45, 17, 2, 132], [-45, 17, 1, 132], [-35, 13, 0, 102], [-48, 17, 0, 136], [-36, 12, 0, 101], [-46, 20, -4, 132], [-34, 20, -9, 102], [-29, 25, -10, 99], [-26, 31, -13, 102], [-17, 35, -12, 99], [-12, 50, -19, 132], [3, 45, -19, 132], [14, 36, -18, 133], [17, 23, -15, 131], [21, 15, -11, 133], [15, 6, -8, 101], [14, 4, -9, 102], [18, 0, -9, 132], [20, -5, -10, 132], [16, -7, -10, 102], [19, -14, -16, 132], [13, -17, -20, 133], [5, -13, -14, 101], [2, -16, -17, 133], [-1, -11, -9, 102], [-1, -9, -5, 101], [0, -8, -1, 132], [0, -6, 3, 132], [1, -4, 3, 133], [0, -2, 1, 104], [0, -2, 1, 132], [0, 0, -1, 132], [-2, 2, -3, 132], [-1, 2, -4, 132], [-2, 4, -6, 132], [-1, 3, -5, 102], [-1, 4, -6, 102], [-1, 7, -8, 134], [1, 4, -7, 100], [1, 7, -10, 132], [1, 5, -8, 100], [2, 5, -7, 101], [3, 2, -5, 132], [0, 1, -1, 132], [0, -1, 1, 102], [-3, -1, 0, 132], [-4, -1, -1, 100], [-8, -1, -2, 132], [-7, 1, -4, 101], [-11, 1, -7, 133], [-10, 2, -5, 104], [-14, 4, -6, 132], [-16, 5, -5, 132], [-18, 6, -5, 133], [-15, 6, -2, 104], [-20, 8, -3, 132], [-16, 6, -1, 102], [-23, 7, 3, 132], [-21, 3, 9, 132], [-19, -1, 12, 132], [-16, -5, 11, 132], [-16, -11, 12, 133], [-12, -12, 10, 101], [-12, -20, 16, 132], [-7, -21, 21, 133], [0, -16, 16, 101], [3, -13, 14, 102], [7, -13, 15, 132], [11, -11, 10, 133], [10, -7, 9, 101], [13, -5, 15, 132], [15, -1, 12, 135], [13, 1, 9, 100], [13, 4, 9, 101], [15, 5, 8, 100], [15, 6, 6, 101], [17, 6, 1, 103], [17, 5, 0, 101], [19, 5, -1, 102], [25, 7, -1, 132], [27, 7, 0, 132], [22, 5, -2, 102], [31, 4, -5, 135], [31, 3, -3, 132], [33, 0, -5, 132], [26, -2, -3, 102], [36, -4, -4, 134], [27, -4, -1, 100], [37, -3, 3, 134], [29, -1, 4, 100], [30, 1, 3, 102], [31, 2, 2, 102], [40, 4, 1, 133], [32, 3, 1, 101], [32, 4, 0, 103], [42, 4, 0, 131], [44, 5, 0, 132], [34, 4, 0, 102], [45, 5, 0, 135], [45, 5, 1, 132], [45, 11, 7, 132], [34, 14, 10, 102], [39, 29, 16, 133], [25, 28, 12, 101], [23, 45, 17, 132], [9, 38, 12, 102], [-2, 51, 16, 132], [-16, 50, 17, 132], [-29, 44, 16, 132], [-31, 27, 13, 103], [-35, 21, 12, 101], [-51, 19, 9, 132], [-52, 15, 3, 132], [-54, 9, 4, 133], [-42, 3, 6, 101], [-43, 1, 4, 103], [-42, -1, 1, 101], [-56, -3, 1, 133], [-44, -2, -1, 104], [-44, -2, 0, 102], [-56, -3, 0, 132], [-57, -2, 0, 132], [-58, -3, 0, 135], [-57, -3, 1, 132], [-56, -11, 10, 132], [-42, -15, 11, 102], [-51, -33, 16, 136], [-38, -43, 17, 131], [-20, -39, 14, 99], [-13, -43, 13, 102], [-3, -42, 14, 99], [10, -56, 17, 133], [17, -39, 13, 105], [24, -32, 12, 99], [27, -26, 13, 104]]; offsetX = 0; offsetY = -50; playback = new Playback(_local3); m_container = _arg1; var _local4:* = getDefinitionByName(_arg2); ghost = new (_local4); ghost.x = (_local3[0][Recorder.X] + offsetX); ghost.y = (_local3[0][Recorder.Y] + offsetY); ghost.rotation = _local3[0][Recorder.ANGLE]; m_container.addChild(ghost); dx = (offsetX / steps); dy = (offsetY / steps); } public function destroy():void{ m_container.removeChild(ghost); } public function render(_arg1:int):void{ step++; if (step > steps){ offsetX = 0; offsetY = 0; dx = 0; dy = 0; }; offsetX = (offsetX - dx); offsetY = (offsetY - dy); var _local2:Array = playback.getPos(_arg1); ghost.x = (_local2[Recorder.X] + offsetX); ghost.y = (_local2[Recorder.Y] + offsetY); var _local3:int = _local2[Recorder.ANGLE]; _local3 = (_local3 % 360); if (_local3 < 0){ _local3 = (_local3 + 360); }; if (_local3 > 360){ _local3 = (_local3 - 360); }; _local3 = (int((_local3 / 3)) + 1); ghost.body.gotoAndStop(_local3); } } }//package game.vehicle
Section 291
//LapData (game.vehicle.LapData) package game.vehicle { import flash.events.*; import flash.display.*; import flash.utils.*; import game.track.*; import flash.geom.*; import game.hud.*; import game.*; import flash.text.*; public class LapData extends EventDispatcher { private var m_checkpointsArray:Array; private var m_distance:Number; private var m_checkpoints:int; private var m_vehicle:Vehicle; public var id:int; public var lapCurrent:int;// = 0 private var m_checkpointPositioning:int;// = 0 private var m_hud:Hud; private var m_totalTime:int;// = 0 private var i:int; public var hasFinished:Boolean;// = false private var m_lapsArray:Array; public var laps:int; private var m_track:Track; private var m_checkpointCurrent:int;// = 0 public static var RACE_COMPLETED:String = "race_Completed"; public static var LAP_COMPLETED:String = "lap_Completed"; public function LapData(_arg1:Track, _arg2:Hud, _arg3:Vehicle){ m_lapsArray = []; m_checkpointsArray = []; super(); id = _arg3.id; laps = _arg1.laps; m_vehicle = _arg3; m_track = _arg1; m_hud = _arg2; m_checkpoints = m_track.checkpointArray.length; i = 0; while (i < laps) { m_lapsArray.push(0); i++; }; i = 0; while (i < m_checkpoints) { m_checkpointsArray.push(false); i++; }; } public function checkpoint(_arg1:int):void{ if (_arg1 == m_checkpointCurrent){ if (_arg1 == 0){ m_checkpointPositioning = 0; checkLap(); }; m_checkpointsArray[m_checkpointCurrent] = true; m_checkpointCurrent++; m_checkpointPositioning = m_checkpointCurrent; if (m_checkpointCurrent >= m_checkpoints){ m_checkpointCurrent = 0; }; }; } private function resetCheckpoints():void{ i = 0; while (i < m_checkpointsArray.length) { m_checkpointsArray[i] = false; i++; }; } public function get isPlayer():Boolean{ return (m_vehicle.isPlayer); } public function getPosition():Object{ var _local3:Object; var _local1:Number = (m_vehicle.x - m_track.checkpointArray[m_checkpointCurrent][1]); var _local2:Number = (m_vehicle.y - m_track.checkpointArray[m_checkpointCurrent][2]); m_distance = Math.sqrt(((_local1 * _local1) + (_local2 * _local2))); _local3 = {id:id, lap:lapCurrent, checkpoint:m_checkpointPositioning, distance:m_distance}; return (_local3); } public function get totalTime():int{ return (m_totalTime); } private function lapCompleted():void{ var _local1:int = (m_hud.getTime() - m_totalTime); resetCheckpoints(); m_lapsArray[lapCurrent] = _local1; m_totalTime = (m_totalTime + _local1); lapCurrent++; dispatchEvent(new LapEvent(LAP_COMPLETED, id, _local1)); if (lapCurrent >= laps){ hasFinished = true; dispatchEvent(new LapEvent(RACE_COMPLETED, id, m_totalTime)); }; } private function checkLap():void{ var _local1:Boolean; i = 0; while (i < m_checkpointsArray.length) { _local1 = ((_local1) && (m_checkpointsArray[i])); i++; }; if (_local1){ lapCompleted(); }; } public function doTimeOut():void{ lapCurrent = laps; hasFinished = true; lapCompleted(); } } }//package game.vehicle
Section 292
//LapEvent (game.vehicle.LapEvent) package game.vehicle { import flash.events.*; public class LapEvent extends Event { public var id:int; public var time:int; public function LapEvent(_arg1:String, _arg2:int, _arg3:int=0){ super(_arg1); id = _arg2; time = _arg3; } } }//package game.vehicle
Section 293
//LapManager (game.vehicle.LapManager) package game.vehicle { import flash.events.*; import flash.display.*; import game.obstacles.*; import flash.utils.*; import game.track.*; import game.hud.*; import game.*; import flash.text.*; public class LapManager extends EventDispatcher { private var m_vehiclesArray:Array; private var m_finished:int; private var m_hud:Hud; private var i:int; private var m_lapData:LapData; private var m_lapTimes:Array; public function LapManager(_arg1:Track, _arg2:Hud, _arg3:Array){ m_lapTimes = []; super(); m_hud = _arg2; m_finished = 0; m_vehiclesArray = _arg3; i = 0; while (i < m_vehiclesArray.length) { m_lapData = new LapData(_arg1, _arg2, m_vehiclesArray[i]); m_lapData.addEventListener(LapData.LAP_COMPLETED, onLapComplete, false, 0, true); m_lapData.addEventListener(LapData.RACE_COMPLETED, onRaceComplete, false, 0, true); m_lapTimes.push(m_lapData); i++; }; } public function getLapTimes():Array{ trace("Lap Times ", m_lapTimes); return (m_lapTimes); } public function doTimeout():void{ var _local1:LapData; i = 0; while (i < m_lapTimes.length) { _local1 = m_lapTimes[i]; if (((!(_local1.hasFinished)) && (!(_local1.isPlayer)))){ m_vehiclesArray[_local1.id].controller.raceCompleted(); _local1.doTimeOut(); }; i++; }; dispatchEvent(new Event(Racers.RACE_FINISH, true, false)); } public function checkpoint(_arg1:CheckpointEvent):void{ i = 0; while (i < m_lapTimes.length) { if (m_lapTimes[i].id == _arg1.id){ m_lapTimes[i].checkpoint(_arg1.checkpoint); }; i++; }; } private function onRaceComplete(_arg1:LapEvent):void{ if (_arg1.id == 0){ trace("PLAYER FINISHED"); dispatchEvent(new LapEvent(Racers.PLAYER_FINISH, _arg1.id, _arg1.time)); } else { m_vehiclesArray[_arg1.id].controller.raceCompleted(); dispatchEvent(new LapEvent(Racers.AI_FINISH, _arg1.id, _arg1.time)); }; m_finished++; if (m_finished >= m_vehiclesArray.length){ dispatchEvent(new Event(Racers.RACE_FINISH, true, false)); }; } private function onLapComplete(_arg1:LapEvent):void{ if (_arg1.id == 0){ m_hud.displayLap((m_lapTimes[0].lapCurrent - 1), _arg1.time); }; } public function reset():void{ m_lapTimes = []; } public function doTotalTimeOut():void{ dispatchEvent(new LapEvent(Racers.PLAYER_FINISH, 0, 1000)); doTimeout(); } private function gameOverTest():void{ } public function getPosition():int{ var _local2:Object; var _local1:Array = []; i = 0; while (i < m_lapTimes.length) { _local2 = m_lapTimes[i].getPosition(); _local1.push(_local2); i++; }; _local1.sortOn(["lap", "checkpoint", "distance"], [(Array.NUMERIC | Array.DESCENDING), (Array.NUMERIC | Array.DESCENDING), Array.NUMERIC]); i = 0; while (i < _local1.length) { if (_local1[i].id == 0){ return (i); }; i++; }; return (-1); } } }//package game.vehicle
Section 294
//Vehicle (game.vehicle.Vehicle) package game.vehicle { import flash.events.*; import flash.display.*; import game.obstacles.*; import flash.utils.*; import game.track.*; import flash.geom.*; import Box2D.Dynamics.*; import game.tiles.*; import com.markfennell.geom.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; import flash.text.*; import game.utils.*; public class Vehicle extends EventDispatcher { public var FRICTION:Number; private var m_physScale:Number; private var m_bodyCar:b2Body; public var DAMPING_ANGULAR_REVERSE:Number; public var damageWheelFrontLeft:int; public var damageWheelRearRight:int; private var m_jointFF:b2RevoluteJoint; private var m_track:Track; public var CAR_HEIGHT:int; public var nitro:int; public var damageWheelRearLeft:int; public var id:int; public var DAMPING_LINEAR:Number; public var LATERAL_FORCE:Number; private var m_slowTime:int;// = 500 private var m_container:Sprite; private var m_bodyDef:b2BodyDef; public var SPEED_MAX:Number; public var type:String;// = "vehicle" public var damageBodyBack:int; private var m_rY:Number;// = 0 public var damageAxleRear:int; private var m_rX:Number;// = 0 private var m_boxDef:b2PolygonDef; private var m_world:b2World; private var m_collisionScale:Number;// = 10 public var CAR_WIDTH:int; public var damageBodyLeft:int; public var DAMPING_ANGULAR:Number; private var m_nitro_time:int; public var damageAxleFront:int; public var damageGearbox:int; public var steering:Number;// = 0 private var m_slowTimer:int; private var m_offsetx:Number; private var m_bodyRR:b2Body; private var m_Vector:b2Vec2; public var GRIP_REAR:Number; private var m_jointRR:b2RevoluteJoint; public var acceleration:int;// = 0 private var m_angle:Number; public var steerAngle:Number;// = 0 private var m_offsety:Number; private var m_bitmapData:BitmapData; public var damageEngine:int; private var dy:Number;// = 0 public var mc:MovieClip; public var ACC_NITRO:Number; private var dx:Number;// = 0 public var controller:Controller;// = null private var m_tileEngine:TileEngine; public var DAMPING_LINEAR_REVERSE:Number; public var isPlayer:Boolean;// = false private var m_jointDef:b2RevoluteJointDef; private var m_displayMargin:int;// = 50 public var damageWheelFrontRight:int; public var STEERING_ANGLE_RANGE:Number; private var m_nitro:Boolean; public var ACC_FORWARD:Number; private var m_multiplier:Number;// = 1 public var GRIP_REVERSE:Number; public var GRIP_FRONT:Number; private var m_spriteSheet:SpriteSheet; public var ACC_REVERSE:Number; public var STEERING_ANGLE_INC:Number; private var m_nitro_timeout:int; private var m_XForm:Object; private var m_bodyFF:b2Body; public var isVisible:Boolean;// = false public var damageBodyFront:int; private var m_accelerationForce:Number;// = 0 public var damageBodyRight:int; public var damageDriveshaft:int; public function Vehicle(_arg1:int, _arg2:BitmapData, _arg3:b2World, _arg4:int, _arg5:int, _arg6:Track, _arg7:XML, _arg8:TileEngine, _arg9:Boolean=false){ nitro = Constants.NITRO; m_nitro_time = Constants.NITRO_TIME; super(); m_track = _arg6; m_bitmapData = _arg2; m_world = _arg3; m_tileEngine = _arg8; SPEED_MAX = Number(_arg7.speed_max); ACC_FORWARD = (Number(_arg7.acceleration_forward) - m_track.speedModifier); ACC_NITRO = Number(_arg7.acceleration_nitro); ACC_REVERSE = Number(_arg7.acceleration_reverse); FRICTION = Number(_arg7.friction); DAMPING_LINEAR = Number(_arg7.damping_linear); DAMPING_ANGULAR = Number(_arg7.damping_angular); DAMPING_LINEAR_REVERSE = Number(_arg7.damping_linear_reverse); DAMPING_ANGULAR_REVERSE = Number(_arg7.damping_linear_angular); GRIP_REAR = Number(_arg7.grip_rear); GRIP_FRONT = (Number(_arg7.grip_front) - m_track.gripModifier); GRIP_REVERSE = Number(_arg7.grip_reverse); STEERING_ANGLE_RANGE = Number(_arg7.steering_range); STEERING_ANGLE_INC = Number(_arg7.steering_increment); LATERAL_FORCE = Number(_arg7.lateral_force); CAR_WIDTH = Number(_arg7.width); CAR_HEIGHT = Number(_arg7.height); id = _arg1; isPlayer = _arg9; m_angle = m_track.startAngle; m_boxDef = new b2PolygonDef(); m_bodyDef = new b2BodyDef(); m_physScale = Constants.PHYS_SCALE; m_offsetx = (_arg4 / m_physScale); m_offsety = (_arg5 / m_physScale); m_rX = (CAR_HEIGHT / m_physScale); m_rY = (CAR_WIDTH / m_physScale); m_boxDef.SetAsBox(m_rX, m_rY); m_boxDef.friction = 0.3; m_boxDef.density = 0.48; m_boxDef.restitution = 0.5; m_bodyDef.linearDamping = DAMPING_LINEAR; m_bodyDef.angularDamping = DAMPING_ANGULAR; m_bodyDef.position.Set((m_offsetx + 3), (m_offsety + 3)); m_bodyCar = _arg3.CreateBody(m_bodyDef); m_bodyCar.CreateShape(m_boxDef); m_bodyCar.SetMassFromShapes(); m_rX = (4 / m_physScale); m_rY = (18 / m_physScale); m_boxDef.SetAsBox(m_rX, m_rY); m_boxDef.friction = 0; m_boxDef.density = 0.1; m_boxDef.restitution = 0; m_boxDef.filter.categoryBits = 1; m_bodyDef.linearDamping = DAMPING_LINEAR; m_bodyDef.angularDamping = DAMPING_ANGULAR; m_bodyDef.position.Set((m_offsetx + 12), (m_offsety + 3)); m_bodyRR = _arg3.CreateBody(m_bodyDef); m_bodyRR.CreateShape(m_boxDef); m_bodyRR.SetMassFromShapes(); m_bodyRR.m_userData = {type:ObstacleType.NULL}; m_boxDef.SetAsBox(m_rX, m_rY); m_boxDef.friction = 0; m_boxDef.density = 0.1; m_boxDef.restitution = 0; m_bodyDef.linearDamping = DAMPING_LINEAR; m_bodyDef.angularDamping = DAMPING_ANGULAR; m_bodyDef.position.Set((m_offsetx + 13.5), (m_offsety + 3)); m_bodyFF = _arg3.CreateBody(m_bodyDef); m_bodyFF.CreateShape(m_boxDef); m_bodyFF.SetMassFromShapes(); m_bodyFF.m_userData = {type:ObstacleType.NULL}; m_jointDef = new b2RevoluteJointDef(); m_jointDef.body1 = m_bodyCar; m_jointDef.body2 = m_bodyFF; m_jointDef.collideConnected = false; m_Vector = new b2Vec2(0.65, 0); m_jointDef.localAnchor1 = m_Vector; m_jointFF = (_arg3.CreateJoint(m_jointDef) as b2RevoluteJoint); m_jointDef = new b2RevoluteJointDef(); m_jointDef.body1 = m_bodyCar; m_jointDef.body2 = m_bodyRR; m_jointDef.lowerAngle = 0; m_jointDef.upperAngle = 0; m_jointDef.enableLimit = true; m_Vector = new b2Vec2(-0.64, 0); m_jointDef.localAnchor1 = m_Vector; m_jointRR = (_arg3.CreateJoint(m_jointDef) as b2RevoluteJoint); m_jointDef.collideConnected = false; steerAngle = (m_angle * Constants.DEG2RAD); m_bodyCar.SetXForm(m_bodyCar.GetXForm().position, steerAngle); var _local10:* = getDefinitionByName(_arg7.sprite); mc = new (_local10); _local10 = null; m_spriteSheet = new SpriteSheet(mc, mc.width, mc.height, 1, 1, 1, 1, 0, 0, 1, 1, mc.body); m_bodyCar.m_userData = this; } public function get line():Line{ return (Line.createLine(x, y, (CAR_HEIGHT * m_collisionScale), angle)); } public function destroy():void{ m_bodyCar.m_userData = null; m_world.DestroyBody(m_bodyFF); m_world.DestroyBody(m_bodyRR); m_world.DestroyBody(m_bodyCar); m_world.DestroyJoint(m_jointFF); m_world.DestroyJoint(m_jointRR); m_jointDef = null; m_boxDef = null; m_bodyDef = null; m_Vector = null; m_XForm = null; m_spriteSheet.destroy(); m_bitmapData.dispose(); } public function get reversing():Boolean{ var _local3:Boolean; var _local1:Number = Math.atan2(m_bodyCar.m_linearVelocity.y, m_bodyCar.m_linearVelocity.x); var _local2:Number = m_bodyCar.GetAngle(); if (_local1 < 0){ _local1 = (_local1 + 6.2831); }; if (_local1 > 6.2831){ _local1 = (_local1 - 6.2831); }; if (_local2 < 0){ _local2 = (_local2 + 6.2831); }; if (_local2 > 6.2831){ _local2 = (_local2 - 6.2831); }; _local3 = ((_local1 - _local2) < 0); return (_local3); } public function turboBoost():void{ if ((((nitro > 0)) && (!(m_nitro)))){ trace("NITRO BOOST ON"); nitro--; m_nitro_timeout = setTimeout(turboOff, m_nitro_time); m_nitro = true; Racers.getInstance().onBoost(); }; } public function get worldx():int{ return (int((x - dx))); } public function get worldy():int{ return (int((y - dy))); } public function renderGraphics(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Sprite):void{ var _local6:int; var _local7:int; dx = _arg1; dy = _arg2; _local6 = int(worldx); _local7 = int(worldy); isVisible = false; if ((((_local6 > -(m_displayMargin))) && ((_local6 < (Constants.STAGE_WIDTH + m_displayMargin))))){ if ((((_local7 > -(m_displayMargin))) && ((_local7 < (Constants.STAGE_HEIGHT + m_displayMargin))))){ m_spriteSheet.draw(m_bitmapData, _local6, _local7, frame); isVisible = true; }; }; } public function get speed():Number{ return (m_bodyCar.GetLinearVelocity().Length()); } public function get frame():int{ var _local1:int = (m_bodyCar.GetAngle() * Constants.RAD2DEG); _local1 = (_local1 % 360); if (_local1 < 0){ _local1 = (_local1 + 360); }; if (_local1 > 360){ _local1 = (_local1 - 360); }; _local1 = (int((_local1 / 3)) + 1); return (_local1); } private function turboOff():void{ trace("NITRO BOOST OFF"); m_nitro = false; } public function get x():int{ var _local1:int = int((m_bodyCar.GetPosition().x * m_physScale)); if (isNaN(_local1)){ return (0); }; return (_local1); } public function get y():int{ var _local1:int = int((m_bodyCar.GetPosition().y * m_physScale)); if (isNaN(_local1)){ return (0); }; return (_local1); } public function canMakeDust():Boolean{ var _local1:int = m_tileEngine.validWidth(Math.floor((x / m_tileEngine.tileWidth))); var _local2:int = m_tileEngine.validHeight(Math.floor((y / m_tileEngine.tileHeight))); var _local3:Rectangle = m_tileEngine.getTile(m_track.tileArray[_local2][_local1]); var _local4:int = ((x % m_tileEngine.tileWidth) + _local3.x); var _local5:int = ((y % m_tileEngine.tileHeight) + _local3.y); if (m_tileEngine.alphaBitmapData.getPixel(_local4, _local5) == 0){ return (true); }; return (false); } public function doApplyFriction(_arg1:b2Body, _arg2:Number):void{ var _local3:Number; var _local4:Number; var _local5:b2Vec2; _local4 = _arg1.GetAngle(); m_Vector = _arg1.GetLinearVelocity(); var _local6:Number = m_Vector.Length(); var _local7:Number = Math.atan2(m_Vector.y, m_Vector.x); var _local8:Number = (_local7 - _local4); var _local9:b2Vec2 = new b2Vec2((_local6 * Math.sin(_local8)), (_local6 * Math.cos(_local8))); var _local10:Number = (-(_local9.x) * (LATERAL_FORCE / 2)); if (_local10 < -(_arg2)){ _local10 = -(_arg2); } else { if (_local10 > _arg2){ _local10 = _arg2; }; }; _local3 = (angle + (Math.PI / 2)); _local5 = new b2Vec2((_local10 * Math.cos(_local3)), (_local10 * Math.sin(_local3))); _arg1.ApplyImpulse(_local5, _arg1.GetXForm().position); } public function setAngularDamping(_arg1:Number):void{ m_bodyFF.m_angularDamping = _arg1; m_bodyRR.m_angularDamping = _arg1; m_bodyCar.m_angularDamping = _arg1; } public function get vx():Number{ var _local1:Number = (m_bodyCar.GetLinearVelocity().x * m_physScale); if (isNaN(_local1)){ return (0); }; return (_local1); } public function renderPhysics(_arg1:Number):void{ var _local2:Number; var _local3:Number; var _local6:Number; var _local7:Number; if (acceleration > 0){ if (m_nitro){ m_accelerationForce = ACC_NITRO; } else { m_accelerationForce = ACC_FORWARD; }; doApplyFriction(m_bodyFF, GRIP_FRONT); doApplyFriction(m_bodyRR, GRIP_REAR); setLinearDamping(DAMPING_LINEAR); setAngularDamping(DAMPING_ANGULAR); } else { m_accelerationForce = ACC_REVERSE; doApplyFriction(m_bodyFF, GRIP_FRONT); doApplyFriction(m_bodyRR, GRIP_REVERSE); setLinearDamping(DAMPING_LINEAR_REVERSE); setAngularDamping(DAMPING_ANGULAR_REVERSE); }; var _local4:Number = m_bodyCar.GetAngle(); var _local5:Number = (_arg1 / Constants.DT); if (steering != 0){ steerAngle = (steerAngle + ((steering * STEERING_ANGLE_INC) * _local5)); }; if (steerAngle > (_local4 + STEERING_ANGLE_RANGE)){ steerAngle = (_local4 + STEERING_ANGLE_RANGE); } else { if (steerAngle < (_local4 - STEERING_ANGLE_RANGE)){ steerAngle = (_local4 - STEERING_ANGLE_RANGE); }; }; if (acceleration < 0){ if (steering == 0){ steerAngle = _local4; } else { if (steering == -1){ steerAngle = (_local4 - STEERING_ANGLE_RANGE); } else { if (steering == 1){ steerAngle = (_local4 + STEERING_ANGLE_RANGE); }; }; }; }; m_bodyFF.SetXForm(m_bodyFF.GetXForm().position, steerAngle); _local2 = (((acceleration * Math.cos(steerAngle)) * m_accelerationForce) * LATERAL_FORCE); _local3 = (((acceleration * Math.sin(steerAngle)) * m_accelerationForce) * LATERAL_FORCE); if (acceleration != 0){ m_bodyCar.ApplyForce(new b2Vec2(_local2, _local3), m_bodyFF.GetXForm().position); } else { _local6 = speed; _local7 = Math.atan2(m_bodyCar.GetLinearVelocity().y, m_bodyCar.GetLinearVelocity().x); if (_local6 > FRICTION){ _local6 = (_local6 - FRICTION); } else { _local6 = 0; }; _local2 = (Math.cos(_local7) * _local6); _local3 = (Math.sin(_local7) * _local6); m_bodyCar.SetLinearVelocity(new b2Vec2(_local2, _local3)); }; } public function get vy():Number{ var _local1:Number = (m_bodyCar.GetLinearVelocity().y * m_physScale); if (isNaN(_local1)){ return (0); }; return (_local1); } public function get dustTarget():Point{ var _local1:Number = (Math.cos(angle) * 20); var _local2:Number = (Math.sin(angle) * 20); return (new Point(int((worldx - _local1)), int((worldy - _local2)))); } public function get soundRevs():Number{ return ((speed / SPEED_MAX)); } public function get angle():Number{ var _local1:Number = m_bodyCar.GetAngle(); if (isNaN(_local1)){ return (m_angle); }; return (_local1); } public function setLinearDamping(_arg1:Number):void{ m_bodyFF.m_linearDamping = _arg1; m_bodyRR.m_linearDamping = _arg1; m_bodyCar.m_linearDamping = _arg1; } } }//package game.vehicle
Section 295
//VehicleManager (game.vehicle.VehicleManager) package game.vehicle { import flash.events.*; import flash.display.*; import flash.utils.*; import sound.*; import game.track.*; import flash.geom.*; import Box2D.Dynamics.*; import game.tiles.*; import com.markfennell.geom.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import com.markfennell.utils.*; import assets.*; import flash.ui.*; import com.Keyboard.*; public class VehicleManager { private var m_playerHighlight:MovieClipCircleSpin; public var playerWaypoint:int;// = 0 private var m_checkpoints:int;// = 0 private var m_engineSound:SoundEngine; private var m_positionsArray:Array; private var m_stageRectangle:Rectangle; private var m_counter:int;// = 1 private var m_container:Sprite; private var m_world:b2World; private var m_ghost:Ghost; private var m_vehicle:Vehicle; private var m_checkpointWaypointArray:Array; private var i:int; private var m_vehiclesNum:int;// = 6 private var m_gameOver:Boolean;// = false private var m_checkpoint:int;// = 0 private var m_raceStarted:Boolean;// = false private var _movieClipCarSkoda:MovieClipCarSkoda;// = null private var _movieClipCarFocus:MovieClipCarFocus;// = null private var m_markers:Array; private var m_stage:Stage; private var m_computer:Vehicle; private var m_controller:Controller; private var m_vehiclesBitmapData:BitmapData; private var m_dx:int;// = 0 private var m_dy:int;// = 0 private var _movieClipCarAlfa:MovieClipCarAlfa;// = null private var m_vehiclesRow:int;// = 2 public var vehicles:Array; private var m_laps:int;// = 0 private var _movieClipCarCelica:MovieClipCarCelica;// = null private var m_dragCurrent:MovieClip; private var m_totalTime:int;// = 0 private var _movieClipCarLancer:MovieClipCarLancer;// = null private var m_vehiclesSpacingX:int;// = 90 private var m_vehiclesSpacingY:int;// = 120 private var _movieClipCarImpreza:MovieClipCarImpreza;// = null private var m_length:int; private var m_track:Track; private var m_player:Vehicle; public static var _XML:XML = EmbeddedData.vehicleXML; public function VehicleManager(_arg1:BitmapData, _arg2:Stage, _arg3:Track, _arg4:b2World, _arg5:TileEngine, _arg6:Sprite){ vehicles = []; m_positionsArray = []; m_markers = []; m_checkpointWaypointArray = []; super(); ThreadQueue.getInstance().pause(); m_vehiclesBitmapData = _arg1; m_stage = _arg2; m_world = _arg4; m_track = _arg3; m_container = _arg6; m_positionsArray = setPositions(); var _local7:XML = getVehicleData(User.getInstance().carID); var _local8:String = String(_local7.type); ThreadQueue.getInstance().addAt(new Command(createPlayer, [_local7, _arg5], "createVehiclePlayer")); if (User.getInstance().trackID != 0){ i = 0; while (i < m_track.racersXML.children().length()) { _local7 = m_track.racersXML.children()[i]; if (String(_local7.type) == _local8){ } else { ThreadQueue.getInstance().addAt(new Command(createVehicle, [i, _local7, _arg5], "createVehicle")); }; i++; }; }; ThreadQueue.getInstance().addAt(new Command(setupCheckpointData, [], "setupCheckpointData")); Key.initialize(m_stage); ThreadQueue.getInstance().resume(); } public function inFront(_arg1:Vehicle, _arg2:Vehicle):Boolean{ var _local3:Number = Math.PI; var _local4:Number = _arg1.angle; var _local5:Number = (_local4 - _local3); var _local6:Number = (_local4 + _local3); var _local7:Number = Math.atan2((_arg2.y - _arg1.y), (_arg2.x - _arg1.x)); if (isBetween(_local5, _local6, _local7)){ return (true); }; return (false); } private function handleKeyUp(_arg1:KeyboardEvent=null):void{ var _local2:int; if (_arg1.shiftKey){ _local2 = 90; } else { _local2 = 10; }; switch (_arg1.keyCode){ case 120: case 88: if (m_dragCurrent){ m_dragCurrent.marker.rotation = (m_dragCurrent.marker.rotation + _local2); }; break; case 122: case 90: if (m_dragCurrent){ m_dragCurrent.marker.rotation = (m_dragCurrent.marker.rotation - _local2); }; break; }; } public function showWaypoints():void{ var _local2:MovieClipMarker; var _local1:int; while (_local1 < m_track.waypointArray.length) { _local2 = new MovieClipMarker(); _local2.x = m_track.waypointArray[_local1][0]; _local2.y = m_track.waypointArray[_local1][1]; _local2.marker.rotation = m_track.waypointArray[_local1][2]; _local2.textID.text = String(_local1); _local2.name = ("Marker " + String(_local1)); m_container.addChild(_local2); m_markers.push(_local2); if (Constants.SHOW_LINES){ Line.draw(Line.createLine((m_track.waypointArray[_local1][0] - m_dx), (m_track.waypointArray[_local1][1] - m_dy), 200, (m_track.waypointArray[_local1][2] * Constants.DEG2RAD)), m_container); }; _local1++; }; m_stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDrag); m_stage.addEventListener(MouseEvent.MOUSE_UP, mouseDrop); m_stage.addEventListener(KeyboardEvent.KEY_UP, handleKeyUp); } public function destroy():void{ m_vehiclesBitmapData = null; var i:int; while (i < vehicles.length) { vehicles[i].destroy(); vehicles[i] = null; i = (i + 1); }; if (m_engineSound){ m_engineSound.destroy(); m_engineSound = null; }; try { hideWaypoints(); } catch(e:Error) { }; } private function setPositions():Array{ var _local2:Number; var _local3:Number; var _local4:int; var _local1:Array = []; var _local5:Number = (m_track.startAngle * Constants.DEG2RAD); var _local6:Number = m_track.startX; var _local7:Number = m_track.startY; var _local8:int; var _local9:int; var _local10:int; while (_local10 < m_track.racersXML.children().length()) { _local8 = (_local10 % m_vehiclesRow); if (_local8 == 0){ _local9++; _local6 = (m_track.startX - ((_local9 * m_vehiclesSpacingY) * Math.cos(_local5))); _local7 = (m_track.startY - ((_local9 * m_vehiclesSpacingY) * Math.sin(_local5))); }; _local2 = int((_local6 + ((m_vehiclesSpacingX * _local8) * Math.sin(_local5)))); _local3 = int((_local7 + ((m_vehiclesSpacingX * _local8) * Math.cos(_local5)))); _local4 = _local8; _local1.push({x:_local2, y:_local3, row:_local4}); _local10++; }; _local1.reverse(); return (_local1); } private function setupCheckpointData():void{ var _local1:int; var _local2:Number; var _local3:int; var _local4:Number; m_checkpoints = (m_track.checkpointArray.length - 1); i = 0; while (i < m_track.checkpointArray.length) { _local1 = 0; _local2 = Number.POSITIVE_INFINITY; _local3 = 0; while (_local3 < m_track.waypointArray.length) { _local4 = Point.distance(new Point(m_track.waypointArray[_local3][0], m_track.waypointArray[_local3][1]), new Point(m_track.checkpointArray[i][1], m_track.checkpointArray[i][2])); if (_local4 <= _local2){ _local1 = _local3; _local2 = _local4; }; _local3++; }; m_checkpointWaypointArray.push(_local1); i++; }; } public function collision(_arg1:CollisionEvent):void{ if (m_engineSound){ m_engineSound.collided(_arg1); }; } private function mouseDrop(_arg1:MouseEvent):void{ if (m_dragCurrent){ m_dragCurrent.stopDrag(); }; } public function renderGraphics(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{ m_dx = _arg1; m_dy = _arg2; var _local5:int; while (_local5 < vehicles.length) { m_vehicle = vehicles[_local5]; m_vehicle.renderGraphics(m_dx, m_dy, _arg3, _arg4, m_container); if (!m_vehicle.isPlayer){ m_vehicle.controller.renderGraphics(m_dx, m_dy); }; _local5++; }; if (m_engineSound){ m_engineSound.render(); }; } private function addMarker(_arg1:MouseEvent):void{ var _local2:int = m_container.mouseX; var _local3:int = m_container.mouseY; var _local4:Number = Number.POSITIVE_INFINITY; var _local5:int = (m_markers.length - 1); var _local6:MovieClipMarker = new MovieClipMarker(); _local6.x = _local2; _local6.y = _local3; m_container.addChild(_local6); m_markers.splice(_local5, 0, _local6); i = 0; while (i < m_markers.length) { _local6 = m_markers[i]; _local6.textID.text = String(i); _local6.name = ("Marker " + String(i)); i++; }; } public function startRace():void{ m_raceStarted = true; m_engineSound = new SoundEngine(vehicles); } public function hideWaypoints():void{ m_stage.removeEventListener(KeyboardEvent.KEY_UP, handleKeyUp); m_stage.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDrag); m_stage.removeEventListener(MouseEvent.MOUSE_UP, mouseDrop); var _local1:int; while (_local1 < m_markers.length) { m_container.removeChild(m_markers[_local1]); _local1++; }; m_markers = []; } public function playerFinished():void{ m_gameOver = true; } private function mouseDrag(_arg1:MouseEvent):void{ if (_arg1.ctrlKey){ addMarker(_arg1); }; if ((((_arg1.target is MovieClip)) && (!((_arg1.target.name.indexOf("marker") == -1))))){ if (_arg1.shiftKey){ deleteMarker((_arg1.target as MovieClip)); } else { m_dragCurrent = (_arg1.target.parent as MovieClip); m_dragCurrent.startDrag(); }; }; } private function isBetween(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ var _local4:Boolean; while (_arg1 < 0) { _arg1 = (_arg1 + (Math.PI * 2)); }; while (_arg2 < 0) { _arg2 = (_arg2 + (Math.PI * 2)); }; while (_arg3 < 0) { _arg3 = (_arg3 + (Math.PI * 2)); }; if ((((_arg3 > _arg1)) && ((_arg3 < _arg2)))){ _local4 = true; }; if ((((((_arg1 > Math.PI)) && ((_arg2 < Math.PI)))) && ((((_arg3 > _arg1)) || ((_arg3 < _arg2)))))){ _local4 = true; }; return (_local4); } private function createVehicle(_arg1:int, _arg2:XML, _arg3:TileEngine):void{ m_computer = new Vehicle(m_counter, m_vehiclesBitmapData, m_world, m_positionsArray[m_counter].x, m_positionsArray[m_counter].y, m_track, _arg2, _arg3, false); var _local4:Number = (m_positionsArray[m_counter].row / (m_vehiclesRow - 1)); if (_local4 > 1){ _local4 = 1; }; if (_local4 < 0){ _local4 = 0; }; m_controller = new Controller(m_track, m_computer, m_vehiclesBitmapData, _local4); m_computer.controller = m_controller; vehicles.push(m_computer); m_counter++; } private function deleteMarker(_arg1:MovieClip):void{ var _local4:MovieClip; var _local2:* = (_arg1 as MovieClip).parent; var _local3:int = m_markers.length; while (_local3--) { if (_local2 == m_markers[_local3]){ m_markers.splice(_local3, 1); m_container.removeChild(_local2); return; }; }; i = 0; while (i < m_markers.length) { _local4 = m_markers[i]; _local4.textID.text = String(i); _local4.name = ("Marker " + String(i)); i++; }; } public function traceWaypoints():void{ var _local1:int; while (_local1 < m_markers.length) { trace((((((("<waypoint x=\"" + int((m_markers[_local1].x + m_markers[_local1].marker.x))) + "\" y=\"") + int((m_markers[_local1].y + m_markers[_local1].marker.y))) + "\" angle=\"") + int(m_markers[_local1].marker.rotation)) + "\"></waypoint>")); _local1++; }; } public function renderPhysics(_arg1:Number):void{ if (((m_raceStarted) && (!(m_gameOver)))){ m_totalTime = (m_totalTime + _arg1); m_player.steering = 0; if (((Key.isDown(Keyboard.UP)) || (Key.isDown(87)))){ m_player.acceleration = 1; } else { if (((Key.isDown(Keyboard.DOWN)) || (Key.isDown(83)))){ m_player.acceleration = -1; } else { m_player.acceleration = 0; }; }; if (((Key.isDown(Keyboard.LEFT)) || (Key.isDown(65)))){ m_player.steering = -1; } else { if (((Key.isDown(Keyboard.RIGHT)) || (Key.isDown(68)))){ m_player.steering = 1; }; }; if (Key.isDown(Keyboard.SPACE)){ m_player.turboBoost(); }; }; var _local2:int; while (_local2 < vehicles.length) { m_vehicle = vehicles[_local2]; m_vehicle.renderPhysics(_arg1); if (((!(m_vehicle.isPlayer)) && (m_raceStarted))){ m_vehicle.controller.renderPhysics(m_totalTime, _arg1); }; _local2++; }; if (m_gameOver){ m_player.acceleration = 0; }; } public function get player():Vehicle{ return (m_player); } public function stopSounds():void{ trace("Stop Sounds"); m_engineSound.muteSounds(); } private function createPlayer(_arg1:XML, _arg2:TileEngine):void{ m_player = new Vehicle(0, m_vehiclesBitmapData, m_world, m_positionsArray[0].x, m_positionsArray[0].y, m_track, _arg1, _arg2, true); vehicles.push(m_player); } public static function getVehicleData(_arg1:int):XML{ if ((((_arg1 > 0)) && ((_arg1 < vehiclesLength)))){ return (_XML.vehicle[_arg1]); }; return (_XML.vehicle[0]); } public static function get vehiclesLength():int{ return (_XML.vehicle.length()); } } }//package game.vehicle
Section 296
//Camera (game.Camera) package game { public class Camera { public var targetx:Number;// = 0 public var targety:Number;// = 0 public var track:Boolean;// = true private var dx:Number; private var dy:Number; public var x:Number;// = 0 public var y:Number;// = 0 public var easing:Number;// = 30 public static var tracking:Number = 190; public function Camera(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){ x = _arg1; y = _arg2; targetx = _arg3; targety = _arg4; } public function render():void{ if (track){ dx = ((targetx - x) / easing); dy = ((targety - y) / easing); x = int((dx + x)); y = int((dy + y)); } else { x = 0; y = 0; }; } } }//package game
Section 297
//CollisionManager (game.CollisionManager) package game { import flash.events.*; import game.obstacles.*; import game.vehicle.*; import flash.utils.*; import flash.geom.*; import Box2D.Dynamics.*; import com.markfennell.geom.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; public class CollisionManager extends b2ContactListener implements IEventDispatcher { private var m_force:Number; private var m_dispatcher:EventDispatcher; public function CollisionManager(){ m_dispatcher = new EventDispatcher(this); } public function dispatchEvent(_arg1:Event):Boolean{ return (m_dispatcher.dispatchEvent(_arg1)); } override public function Remove(_arg1:b2ContactPoint):void{ } public function willTrigger(_arg1:String):Boolean{ return (m_dispatcher.willTrigger(_arg1)); } override public function Add(_arg1:b2ContactPoint):void{ var _local4:*; var _local5:Vehicle; var _local6:Vehicle; var _local2:b2Shape = _arg1.shape1; var _local3:b2Shape = _arg1.shape2; if (_arg1.shape2.GetBody().GetUserData()){ if (_arg1.shape2.GetBody().GetUserData().type == ObstacleType.CHECKPOINT){ if (_arg1.shape1.GetBody().GetUserData()){ _local4 = _arg1.shape1.GetBody().GetUserData(); if ((_local4 is Vehicle)){ dispatchEvent(new CheckpointEvent(CheckpointEvent.CROSSED, _arg1.shape2.GetBody().GetUserData().waypoint, _local4.id)); }; }; } else { if (isVehicle(_arg1.shape1)){ _local5 = getVehicle(_arg1.shape1); dispatchEvent(new CollisionEvent(CollisionEvent.COLLISION, _local5.id, _arg1.velocity.LengthSquared())); } else { if (isVehicle(_arg1.shape2)){ _local6 = getVehicle(_arg1.shape2); dispatchEvent(new CollisionEvent(CollisionEvent.COLLISION, _local6.id, _arg1.velocity.LengthSquared())); }; }; }; }; } private function isVehicle(_arg1:b2Shape):Boolean{ var _local2:*; if (_arg1.GetBody().GetUserData()){ _local2 = _arg1.GetBody().GetUserData(); if ((_local2 is Vehicle)){ return (true); }; }; return (false); } public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ m_dispatcher.removeEventListener(_arg1, _arg2, _arg3); } public function inFront(_arg1:Vehicle, _arg2:Vehicle):Boolean{ var _local3:Number = (Math.sin((_arg1.angle + Math.PI)) * 10); var _local4:Number = (Math.cos((_arg1.angle + Math.PI)) * 10); var _local5:Line = Line.createLineFromPoint((_arg1.x - _local4), (_arg1.y - _local3), 50, ((_arg1.angle - 0.4) + Math.PI)); var _local6:Line = Line.createLineFromPoint((_arg1.x - _local4), (_arg1.y - _local3), 50, ((_arg1.angle + 0.4) + Math.PI)); var _local7:Line = new Line(_local5.p1, _local6.p1); var _local8:Polygon = new Polygon(_local5, _local6, _local7); return (Polygon.isWithin(new Point(_arg2.x, _arg2.y), _local8)); } override public function Persist(_arg1:b2ContactPoint):void{ var point = _arg1; var vehicle_1:Vehicle = getVehicle(point.shape1); var vehicle_2:Vehicle = getVehicle(point.shape2); if (((!((vehicle_1 == null))) && (!((vehicle_2 == null))))){ try { if (vehicle_1.isPlayer){ if (vehicle_2.speed < 4){ trace("UNstick Vehicle"); vehicle_2.controller.isStuck = true; }; } else { if (vehicle_2.isPlayer){ if (vehicle_1.speed < 4){ trace("UNstick Vehicle"); vehicle_1.controller.isStuck = true; }; } else { if (inFront(vehicle_1, vehicle_2)){ if (vehicle_1.speed < 4){ trace("UNstick Vehicle"); vehicle_1.controller.isStuck = true; }; }; }; }; } catch(e:Error) { }; } else { if (((((!((vehicle_1 == null))) && (!(point.shape2.m_isSensor)))) && (!(isWheel(point.shape2))))){ if (!vehicle_1.isPlayer){ vehicle_1.controller.isStuck = true; }; } else { if (((((!((vehicle_2 == null))) && (!(point.shape1.m_isSensor)))) && (!(isWheel(point.shape1))))){ if (!vehicle_2.isPlayer){ vehicle_2.controller.isStuck = true; }; }; }; }; } private function getVehicle(_arg1:b2Shape):Vehicle{ var _local2:*; if (_arg1.GetBody().GetUserData()){ _local2 = _arg1.GetBody().GetUserData(); if ((_local2 is Vehicle)){ return (_local2); }; }; return (null); } private function isWheel(_arg1:b2Shape):Boolean{ var _local2:*; if (_arg1.GetBody().GetUserData()){ _local2 = _arg1.GetBody().GetUserData(); if (_local2.type){ if (_local2.type == ObstacleType.NULL){ return (true); }; }; }; return (false); } public function hasEventListener(_arg1:String):Boolean{ return (m_dispatcher.hasEventListener(_arg1)); } public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ m_dispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4); } private function isBetween(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ var _local4:Boolean; while (_arg1 < 0) { _arg1 = (_arg1 + (Math.PI * 2)); }; while (_arg2 < 0) { _arg2 = (_arg2 + (Math.PI * 2)); }; while (_arg3 < 0) { _arg3 = (_arg3 + (Math.PI * 2)); }; if ((((_arg3 > _arg1)) && ((_arg3 < _arg2)))){ _local4 = true; }; if ((((((_arg1 > Math.PI)) && ((_arg2 < Math.PI)))) && ((((_arg3 > _arg1)) || ((_arg3 < _arg2)))))){ _local4 = true; }; trace(("isBetween " + _local4)); return (_local4); } } }//package game
Section 298
//DebugDisplay (game.DebugDisplay) package game { import flash.events.*; import flash.display.*; import game.obstacles.*; import game.vehicle.*; import game.track.*; import Box2D.Dynamics.*; import game.tiles.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; import fl.controls.*; import assets.*; import flash.ui.*; import flash.net.*; public class DebugDisplay extends Sprite { private var m_stepDampingAngular:NumericStepper; private var m_physScale:Number; private var m_stepDampingLinear:NumericStepper; private var m_comboObstacles:ComboBox; private var m_btnObstaclesTrace:Button; private var m_toggleObstacles:Boolean;// = false private var m_stepSteeringRange:NumericStepper; private var m_debugOverlay:Sprite; private var m_stepGripRear:NumericStepper; private var m_btnShowBox2d:Button; private var m_dragTarget:MovieClip; private var m_tileEngine:TileEngine; private var m_btnTraceWaypoints:Button; private var m_instance:DebugDisplay;// = null private var m_btnShowWaypoints:Button; private var m_container:Sprite; private var m_selectedObstacleID:int;// = 0 private var m_panel:MovieClipDebug; private var m_stepGripFront:NumericStepper; private var m_stepMultiplier:NumericStepper; private var m_world:b2World; private var m_obstacleManager:ObstacleManager; private var m_toggleWaypoints:Boolean;// = false private var m_debugObstaclesXML:XML; private var m_debugObstaclesArray:Array; private var m_btnObstaclesAdd:Button; private var m_handlesDisplayed:Boolean;// = false private var m_stepSteeringInc:NumericStepper; private var m_toggleObstacleCreate:Boolean;// = false private var m_vehicleManager:VehicleManager; private var m_btnObstaclesShow:Button; private var m_track:Track; private var m_stepAcceleration:NumericStepper; public static var dbgSprite:Sprite; public function DebugDisplay(_arg1:Number, _arg2:b2World, _arg3:TileEngine, _arg4:VehicleManager, _arg5:Track, _arg6:ObstacleManager, _arg7:Sprite){ m_debugObstaclesArray = []; super(); x = 20; y = 200; visible = false; name = "Debug Panel"; m_instance = this; m_container = _arg7; m_physScale = _arg1; m_world = _arg2; m_tileEngine = _arg3; m_vehicleManager = _arg4; m_obstacleManager = _arg6; m_panel = new MovieClipDebug(); m_panel.y = 300; addChild(m_panel); m_debugOverlay = _arg7; m_debugOverlay.addEventListener(MouseEvent.MOUSE_DOWN, dragOn, true); m_debugOverlay.addEventListener(MouseEvent.MOUSE_OUT, dragOff, true); m_debugOverlay.addEventListener(MouseEvent.MOUSE_UP, dragOff, true); m_debugOverlay.addEventListener(MouseEvent.MOUSE_MOVE, dragDo, true); addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); m_debugObstaclesXML = EmbeddedData.obstacleXML; setUpPanel(); } private function showLines():void{ Constants.SHOW_LINES = true; } private function hidePanel():void{ removeEventListener(Event.ENTER_FRAME, render); visible = false; } public function showPanel():void{ addEventListener(Event.ENTER_FRAME, render); visible = true; } private function changeMultiplier(_arg1:Event):void{ } public function editModeOn(_arg1:Sprite):void{ var _local3:ObstacleDebug; m_handlesDisplayed = true; if (m_debugObstaclesArray.length > 0){ return; }; var _local2:int; while (_local2 < m_obstacleManager.obstaclesArray.length) { trace(m_obstacleManager.obstaclesArray[_local2].type); if (m_obstacleManager.obstaclesArray[_local2]){ if (m_obstacleManager.obstaclesArray[_local2].type != ObstacleType.CHECKPOINT){ _local3 = new ObstacleDebug(m_obstacleManager.obstaclesArray[_local2], m_obstacleManager, m_debugOverlay); m_debugObstaclesArray.push(_local3); }; }; _local2++; }; } private function keyUpHandler(_arg1:KeyboardEvent):void{ if ((((_arg1.keyCode == 67)) || ((_arg1.keyCode == 99)))){ Constants.ROAM = false; }; } public function getInstance():DebugDisplay{ return (m_instance); } private function dragOff(_arg1:MouseEvent):void{ if (m_dragTarget){ m_dragTarget.stopDrag(); m_dragTarget = null; }; } private function hideLines():void{ m_container.graphics.clear(); Constants.SHOW_LINES = false; } private function changeSteeringRange(_arg1:Event):void{ m_vehicleManager.player.STEERING_ANGLE_RANGE = _arg1.target.value; } public function showBox2d(_arg1:MouseEvent):void{ var _local2:b2DebugDraw = new b2DebugDraw(); dbgSprite = new Sprite(); m_container.addChild(dbgSprite); _local2.m_sprite = m_container; _local2.m_drawScale = m_physScale; _local2.m_fillAlpha = 0.3; _local2.m_lineThickness = 1; _local2.m_drawFlags = (b2DebugDraw.e_shapeBit | b2DebugDraw.e_jointBit); m_world.SetDebugDraw(_local2); } private function changeGripFront(_arg1:Event):void{ m_vehicleManager.player.GRIP_FRONT = _arg1.target.value; } private function onObstacleDataComplete(_arg1:Event):void{ } private function changeDampingAngular(_arg1:Event):void{ m_vehicleManager.player.setAngularDamping(_arg1.target.value); } private function toggleWaypoints(_arg1:Event):void{ if (!m_toggleWaypoints){ m_btnShowWaypoints.label = "Hide Waypoints"; m_toggleWaypoints = true; m_vehicleManager.showWaypoints(); } else { m_toggleWaypoints = false; m_vehicleManager.hideWaypoints(); m_btnShowWaypoints.label = "Show Waypoints"; }; } private function changeAcceleration(_arg1:Event):void{ m_vehicleManager.player.ACC_FORWARD = _arg1.target.value; } private function changeDampingLinear(_arg1:Event):void{ m_vehicleManager.player.setLinearDamping(_arg1.target.value); } private function dragOn(_arg1:MouseEvent):void{ if (_arg1.target.name == "btnDrag"){ m_dragTarget = (_arg1.target.parent as MovieClip); m_dragTarget.startDrag(); }; } public function createObstacle(_arg1:MouseEvent):void{ var _local2:int; var _local3:int; if ((((((_arg1.stageY < 500)) && ((_arg1.target.name.indexOf("btn") == -1)))) && ((_arg1.target.name.indexOf("combo") == -1)))){ if (m_toggleObstacleCreate){ _local2 = m_container.mouseX; _local3 = m_container.mouseY; m_obstacleManager.addObstacle(new XML(getXMLString(_local2, _local3))); if (m_handlesDisplayed){ editModeOff(); editModeOn(m_debugOverlay); }; }; }; } private function traceWaypoints(_arg1:Event):void{ trace("Trace Waypoints Click"); m_vehicleManager.traceWaypoints(); } private function onAddedToStage(_arg1:Event):void{ stage.addEventListener(MouseEvent.CLICK, createObstacle, true); stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); } private function toggleObstacles(_arg1:Event):void{ if (!m_toggleObstacles){ m_btnObstaclesShow.label = "Hide Obstacles"; m_toggleObstacles = true; editModeOn(m_debugOverlay); } else { m_toggleObstacles = false; m_btnObstaclesShow.label = "Show Obstacles"; editModeOff(); }; } private function getXMLString(_arg1:int, _arg2:int):String{ var _local3:XML = m_debugObstaclesXML.obstacle[m_selectedObstacleID]; var _local4 = (((((((((((((("<obstacle sprite=\"" + String(_local3.@sprite)) + "\" x=\"") + String(_arg1)) + "\" y=\"") + String(_arg2)) + "\" width=\"") + String(_local3.@width)) + "\" height=\"") + String(_local3.@height)) + "\" type=\"") + String(_local3.@type)) + "\" mass=\"") + String(_local3.@mass)) + "\" angle=\"0\"></obstacle>"); return (_local4); } private function render(_arg1:Event):void{ m_panel.textCarX.text = String(int(m_vehicleManager.player.x)); m_panel.textCarY.text = String(int(m_vehicleManager.player.y)); m_panel.textCarAngle.text = String(int(m_vehicleManager.player.angle)); } private function dragDo(_arg1:MouseEvent):void{ if (m_dragTarget){ m_dragTarget.obstacle.realx = m_dragTarget.x; m_dragTarget.obstacle.realy = m_dragTarget.y; m_dragTarget.obstacle.update(); }; } private function toggleObstacleCteate(_arg1:MouseEvent=null):void{ if (m_toggleObstacleCreate){ m_toggleObstacleCreate = false; m_btnObstaclesAdd.label = "Create Obstacles"; m_comboObstacles.visible = false; } else { m_toggleObstacleCreate = true; m_btnObstaclesAdd.label = "Stop Create Obstacles"; m_comboObstacles.visible = true; }; } private function keyDownHandler(_arg1:KeyboardEvent):void{ if ((((_arg1.keyCode == 67)) || ((_arg1.keyCode == 99)))){ Constants.ROAM = true; }; } private function comboObstacleschangeHandler(_arg1:Event):void{ var _local2:ComboBox = (_arg1.currentTarget as ComboBox); var _local3:Object = _local2.selectedItem; if (_local2.selectedIndex > -1){ m_selectedObstacleID = _local2.selectedIndex; }; stage.focus = this; } private function changeSteeringInc(_arg1:Event):void{ m_vehicleManager.player.STEERING_ANGLE_INC = _arg1.target.value; } private function changeGripRear(_arg1:Event):void{ m_vehicleManager.player.GRIP_REAR = _arg1.target.value; } private function setUpPanel():void{ m_btnShowBox2d = m_panel.btnShowBox2d; m_btnShowBox2d.label = "Show Box2d"; m_btnShowBox2d.addEventListener(MouseEvent.CLICK, showBox2d); m_stepAcceleration = m_panel.stepAcceleration; m_stepDampingLinear = m_panel.stepDampingLinear; m_stepDampingAngular = m_panel.stepDampingAngular; m_stepGripFront = m_panel.stepGripFront; m_stepGripRear = m_panel.stepGripRear; m_stepSteeringRange = m_panel.stepSteeringRange; m_stepSteeringInc = m_panel.stepSteeringInc; m_stepMultiplier = m_panel.stepMultiplier; m_stepAcceleration.value = m_vehicleManager.player.ACC_FORWARD; m_stepDampingLinear.value = m_vehicleManager.player.DAMPING_LINEAR; m_stepDampingAngular.value = m_vehicleManager.player.DAMPING_ANGULAR; m_stepGripFront.value = m_vehicleManager.player.GRIP_FRONT; m_stepGripRear.value = m_vehicleManager.player.GRIP_REAR; m_stepSteeringRange.value = m_vehicleManager.player.STEERING_ANGLE_RANGE; m_stepSteeringInc.value = m_vehicleManager.player.STEERING_ANGLE_INC; m_stepMultiplier.value = 1; m_stepAcceleration.addEventListener(Event.CHANGE, changeAcceleration); m_stepDampingLinear.addEventListener(Event.CHANGE, changeDampingLinear); m_stepDampingLinear.addEventListener(Event.CHANGE, changeDampingAngular); m_stepGripFront.addEventListener(Event.CHANGE, changeGripFront); m_stepGripRear.addEventListener(Event.CHANGE, changeGripRear); m_stepSteeringRange.addEventListener(Event.CHANGE, changeSteeringRange); m_stepSteeringInc.addEventListener(Event.CHANGE, changeSteeringInc); m_stepMultiplier.addEventListener(Event.CHANGE, changeMultiplier); m_btnShowWaypoints = m_panel.btnWaypointsShow; m_btnShowWaypoints.addEventListener(MouseEvent.CLICK, toggleWaypoints); m_btnTraceWaypoints = m_panel.btnWaypointsTrace; m_btnTraceWaypoints.addEventListener(MouseEvent.CLICK, traceWaypoints); m_btnObstaclesShow = m_panel.btnObstaclesShow; m_btnObstaclesShow.label = "Show Obstacles"; m_btnObstaclesShow.addEventListener(MouseEvent.CLICK, toggleObstacles); m_btnObstaclesTrace = m_panel.btnObstaclesTrace; m_btnObstaclesTrace.addEventListener(MouseEvent.CLICK, traceObstacles); m_btnObstaclesAdd = m_panel.btnObstaclesAdd; m_btnObstaclesAdd.label = "Create Obstacles"; m_btnObstaclesAdd.addEventListener(MouseEvent.CLICK, toggleObstacleCteate); m_comboObstacles = m_panel.comboObstacles; m_comboObstacles.addEventListener(Event.CHANGE, comboObstacleschangeHandler); m_comboObstacles.visible = false; var _local1:int; while (_local1 < m_debugObstaclesXML.obstacle.length()) { m_comboObstacles.addItem({label:m_debugObstaclesXML.obstacle[_local1].@name}); _local1++; }; } public function editModeOff():void{ m_handlesDisplayed = false; var _local1:int; while (_local1 < m_debugObstaclesArray.length) { m_debugObstaclesArray[_local1].destroy(); _local1++; }; m_debugObstaclesArray = []; } public function traceObstacles(_arg1:Event=null):void{ var _local2:int; while (_local2 < m_obstacleManager.obstaclesArray.length) { if (m_obstacleManager.obstaclesArray[_local2].type != ObstacleType.CHECKPOINT){ trace((((((((((((((((("<obstacle sprite=\"" + m_obstacleManager.obstaclesArray[_local2].sprite) + "\" x=\"") + int(m_obstacleManager.obstaclesArray[_local2].realx)) + "\" y=\"") + int(m_obstacleManager.obstaclesArray[_local2].realy)) + "\" width=\"") + int(m_obstacleManager.obstaclesArray[_local2].w)) + "\" height=\"") + int(m_obstacleManager.obstaclesArray[_local2].h)) + "\" type=\"") + m_obstacleManager.obstaclesArray[_local2].type) + "\" mass=\"") + m_obstacleManager.obstaclesArray[_local2].mass) + "\" angle=\"") + int(m_obstacleManager.obstaclesArray[_local2].angle)) + "\"></obstacle>")); }; _local2++; }; } } }//package game
Section 299
//Fx (game.Fx) package game { import flash.display.*; import flash.utils.*; import gs.*; import caurina.transitions.*; import flash.filters.*; public class Fx extends Sprite { public function zoomIn(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:String, _arg10:Function=null):void{ var _interval:Number; var blurX:Number; var mc:DisplayObject; var blurFilter:BlurFilter; var _animate:Function; var onMotionStopped:Function; var _mc = _arg1; var delay = _arg2; var duration = _arg3; var startX = _arg4; var startY = _arg5; var finishX = _arg6; var finishY = _arg7; var blur = _arg8; var transition = _arg9; var callBack = _arg10; _animate = function ():void{ mc.filters = [blurFilter]; Tweener.addTween(mc, {x:finishX, y:finishY, time:duration, transition:transition, onComplete:onMotionStopped}); }; onMotionStopped = function ():void{ this.filters = []; if (callBack != null){ callBack(); }; }; var _initTime:Number = getTimer(); var angle:Number = Math.atan2((finishY - startY), (finishX - startX)); blurX = Math.abs(Math.floor((Math.cos(angle) * blur))); var blurY:Number = Math.abs(Math.floor((Math.sin(angle) * blur))); mc = _mc; var wait:Number = (1000 * delay); mc.x = startX; mc.y = startY; blurFilter = new BlurFilter(blurX, blurY, 1); _interval = setTimeout(_animate, wait); } public function fade(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Function=null):void{ var _interval:Number; var mc:DisplayObject; var _animate:Function; var onMotionStopped:Function; var _mc = _arg1; var delay = _arg2; var duration = _arg3; var startAlpha = _arg4; var finishAlpha = _arg5; var callBack = _arg6; _animate = function ():void{ TweenLite.to(mc, duration, {alpha:finishAlpha, onComplete:onMotionStopped}); }; onMotionStopped = function ():void{ if (callBack != null){ callBack(); }; }; var _initTime:Number = getTimer(); mc = _mc; var wait:int = (1000 * delay); mc.alpha = startAlpha; _interval = setTimeout(_animate, wait); } } }//package game
Section 300
//TweenLite (gs.TweenLite) package gs { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.geom.*; public class TweenLite { public var started:Boolean; public var delay:Number; protected var _hasUpdate:Boolean; protected var _subTweens:Array; public var initted:Boolean; public var active:Boolean; public var startTime:Number; public var target:Object; public var duration:Number; protected var _hst:Boolean; public var gc:Boolean; protected var _isDisplayObject:Boolean; public var tweens:Array; public var vars:Object; public var ease:Function; protected var _specialVars:Object; public var initTime:Number; public var combinedTimeScale:Number; private static var _timer:Timer = new Timer(2000); private static var _classInitted:Boolean; public static var defaultEase:Function = TweenLite.easeOut; public static var version:Number = 9.29; public static var masterList:Dictionary = new Dictionary(false); public static var currentTime:uint; public static var overwriteManager:Object; public static var killDelayedCallsTo:Function = TweenLite.killTweensOf; public static var timingSprite:Sprite = new Sprite(); public function TweenLite(_arg1:Object, _arg2:Number, _arg3:Object){ if (_arg1 == null){ return; }; if (!_classInitted){ currentTime = getTimer(); timingSprite.addEventListener(Event.ENTER_FRAME, updateAll, false, 0, true); if (overwriteManager == null){ overwriteManager = {mode:1, enabled:false}; }; _timer.addEventListener("timer", killGarbage, false, 0, true); _timer.start(); _classInitted = true; }; this.vars = _arg3; this.duration = ((_arg2) || (0.001)); this.delay = ((_arg3.delay) || (0)); this.combinedTimeScale = ((_arg3.timeScale) || (1)); this.active = Boolean((((_arg2 == 0)) && ((this.delay == 0)))); this.target = _arg1; _isDisplayObject = Boolean((_arg1 is DisplayObject)); if (!(this.vars.ease is Function)){ this.vars.ease = defaultEase; }; if (this.vars.easeParams != null){ this.vars.proxiedEase = this.vars.ease; this.vars.ease = easeProxy; }; this.ease = this.vars.ease; if (!isNaN(Number(this.vars.autoAlpha))){ this.vars.alpha = Number(this.vars.autoAlpha); this.vars.visible = Boolean((this.vars.alpha > 0)); }; _specialVars = ((this.vars.isTV)==true) ? this.vars.exposedProps : this.vars; this.tweens = []; _subTweens = []; _hst = (this.initted = false); this.initTime = currentTime; this.startTime = (this.initTime + (this.delay * 1000)); var _local4:int = ((((_arg3.overwrite == undefined)) || (((!(overwriteManager.enabled)) && ((_arg3.overwrite > 1)))))) ? overwriteManager.mode : int(_arg3.overwrite); if ((((masterList[_arg1] == undefined)) || (((!((_arg1 == null))) && ((_local4 == 1)))))){ masterList[_arg1] = []; }; masterList[_arg1].push(this); if ((((((this.vars.runBackwards == true)) && (!((this.vars.renderOnStart == true))))) || (this.active))){ initTweenVals(); if (this.active){ render((this.startTime + 1)); } else { render(this.startTime); }; if (((((!((_specialVars.visible == null))) && ((this.vars.runBackwards == true)))) && (_isDisplayObject))){ this.target.visible = _specialVars.visible; }; }; } public function get enabled():Boolean{ return ((this.gc) ? false : true); } public function render(_arg1:uint):void{ var _local3:Number; var _local4:Object; var _local5:int; var _local2:Number = ((_arg1 - this.startTime) * 0.001); if (_local2 >= this.duration){ _local2 = this.duration; _local3 = ((((this.ease == this.vars.ease)) || ((this.duration == 0.001)))) ? 1 : 0; } else { _local3 = this.ease(_local2, 0, 1, this.duration); }; _local5 = (this.tweens.length - 1); while (_local5 > -1) { _local4 = this.tweens[_local5]; _local4[0][_local4[1]] = (_local4[2] + (_local3 * _local4[3])); _local5--; }; if (_hst){ _local5 = (_subTweens.length - 1); while (_local5 > -1) { _subTweens[_local5].proxy(_subTweens[_local5], _local2); _local5--; }; }; if (_hasUpdate){ this.vars.onUpdate.apply(null, this.vars.onUpdateParams); }; if (_local2 == this.duration){ complete(true); }; } public function set enabled(_arg1:Boolean):void{ var _local2:Array; var _local3:Boolean; var _local4:int; if (_arg1){ if (masterList[this.target] == undefined){ masterList[this.target] = [this]; } else { _local2 = masterList[this.target]; _local4 = (_local2.length - 1); while (_local4 > -1) { if (_local2[_local4] == this){ _local3 = true; break; }; _local4--; }; if (!_local3){ masterList[this.target].push(this); }; }; }; this.gc = (_arg1) ? false : true; if (this.gc){ this.active = false; } else { this.active = this.started; }; } public function activate():void{ this.started = (this.active = true); if (!this.initted){ initTweenVals(); }; if (this.vars.onStart != null){ this.vars.onStart.apply(null, this.vars.onStartParams); }; if (this.duration == 0.001){ this.startTime = (this.startTime - 1); }; } public function clear():void{ this.tweens = []; _subTweens = []; this.vars = {}; _hst = (_hasUpdate = false); } protected function addSubTween(_arg1:String, _arg2:Function, _arg3:Object, _arg4:Object, _arg5:Object=null):void{ var _local6:String; _subTweens[_subTweens.length] = {name:_arg1, proxy:_arg2, target:_arg3, info:_arg5}; for (_local6 in _arg4) { if (typeof(_arg4[_local6]) == "number"){ this.tweens[this.tweens.length] = [_arg3, _local6, _arg3[_local6], (_arg4[_local6] - _arg3[_local6]), _arg1]; } else { this.tweens[this.tweens.length] = [_arg3, _local6, _arg3[_local6], Number(_arg4[_local6]), _arg1]; }; }; _hst = true; } public function initTweenVals(_arg1:Boolean=false, _arg2:String=""):void{ var _local3:String; var _local4:int; var _local5:Array; var _local6:ColorTransform; var _local7:ColorTransform; var _local8:Object; if (((!(_arg1)) && (overwriteManager.enabled))){ overwriteManager.manageOverwrites(this, masterList[this.target]); }; if ((this.target is Array)){ _local5 = ((this.vars.endArray) || ([])); _local4 = 0; while (_local4 < _local5.length) { if (((!((this.target[_local4] == _local5[_local4]))) && (!((this.target[_local4] == undefined))))){ this.tweens[this.tweens.length] = [this.target, _local4.toString(), this.target[_local4], (_local5[_local4] - this.target[_local4]), _local4.toString()]; }; _local4++; }; } else { if (((((!((typeof(_specialVars.tint) == "undefined"))) || ((this.vars.removeTint == true)))) && (_isDisplayObject))){ _local6 = this.target.transform.colorTransform; _local7 = new ColorTransform(); if (_specialVars.alpha != undefined){ _local7.alphaMultiplier = _specialVars.alpha; delete _specialVars.alpha; } else { _local7.alphaMultiplier = this.target.alpha; }; if (((!((this.vars.removeTint == true))) && (((((!((_specialVars.tint == null))) && (!((_specialVars.tint == ""))))) || ((_specialVars.tint == 0)))))){ _local7.color = _specialVars.tint; }; addSubTween("tint", tintProxy, {progress:0}, {progress:1}, {target:this.target, color:_local6, endColor:_local7}); }; if (((!((_specialVars.frame == null))) && (_isDisplayObject))){ addSubTween("frame", frameProxy, {frame:this.target.currentFrame}, {frame:_specialVars.frame}, {target:this.target}); }; if (((!(isNaN(this.vars.volume))) && (this.target.hasOwnProperty("soundTransform")))){ addSubTween("volume", volumeProxy, this.target.soundTransform, {volume:this.vars.volume}, {target:this.target}); }; if (((!((_specialVars.visible == null))) && (_isDisplayObject))){ addSubTween("visible", visibleProxy, {}, {}, {tween:this}); }; for (_local3 in _specialVars) { if ((((((((((((((((((((((((((((((((((((((_local3 == "ease")) || ((_local3 == "delay")))) || ((_local3 == "overwrite")))) || ((_local3 == "onComplete")))) || ((_local3 == "onCompleteParams")))) || ((_local3 == "runBackwards")))) || ((_local3 == "visible")))) || ((_local3 == "autoOverwrite")))) || ((_local3 == "persist")))) || ((_local3 == "onUpdate")))) || ((_local3 == "onUpdateParams")))) || ((_local3 == "autoAlpha")))) || ((((_local3 == "timeScale")) && (!((this.target is TweenLite))))))) || ((_local3 == "onStart")))) || ((_local3 == "onStartParams")))) || ((_local3 == "renderOnStart")))) || ((_local3 == "proxiedEase")))) || ((_local3 == "easeParams")))) || (((_arg1) && (!((_arg2.indexOf(((" " + _local3) + " ")) == -1))))))){ } else { if (((!(((_isDisplayObject) && ((((((_local3 == "tint")) || ((_local3 == "removeTint")))) || ((_local3 == "frame"))))))) && (!((((_local3 == "volume")) && (this.target.hasOwnProperty("soundTransform"))))))){ if (typeof(_specialVars[_local3]) == "number"){ this.tweens[this.tweens.length] = [this.target, _local3, this.target[_local3], (_specialVars[_local3] - this.target[_local3]), _local3]; } else { this.tweens[this.tweens.length] = [this.target, _local3, this.target[_local3], Number(_specialVars[_local3]), _local3]; }; }; }; }; }; if (this.vars.runBackwards == true){ _local4 = (this.tweens.length - 1); while (_local4 > -1) { _local8 = this.tweens[_local4]; _local8[2] = (_local8[2] + _local8[3]); _local8[3] = (_local8[3] * -1); _local4--; }; }; if (this.vars.onUpdate != null){ _hasUpdate = true; }; this.initted = true; } protected function easeProxy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams))); } public function killVars(_arg1:Object):void{ if (overwriteManager.enabled){ overwriteManager.killVars(_arg1, this.vars, this.tweens, _subTweens, []); }; } public function complete(_arg1:Boolean=false):void{ if (!_arg1){ if (!this.initted){ initTweenVals(); }; this.startTime = (currentTime - ((this.duration * 1000) / this.combinedTimeScale)); render(currentTime); return; }; if (this.vars.persist != true){ this.enabled = false; }; if (this.vars.onComplete != null){ this.vars.onComplete.apply(null, this.vars.onCompleteParams); }; } public static function frameProxy(_arg1:Object, _arg2:Number=0):void{ _arg1.info.target.gotoAndStop(Math.round(_arg1.target.frame)); } public static function removeTween(_arg1:TweenLite, _arg2:Boolean=true):void{ if (_arg1 != null){ if (_arg2){ _arg1.clear(); }; _arg1.enabled = false; }; } public static function visibleProxy(_arg1:Object, _arg2:Number):void{ var _local3:TweenLite = _arg1.info.tween; if (_local3.duration == _arg2){ if (((!((_local3.vars.runBackwards == true))) && ((_local3.ease == _local3.vars.ease)))){ _local3.target.visible = _local3.vars.visible; }; } else { if (_local3.target.visible != true){ _local3.target.visible = true; }; }; } public static function killTweensOf(_arg1:Object=null, _arg2:Boolean=false):void{ var _local3:Array; var _local4:int; var _local5:TweenLite; if (((!((_arg1 == null))) && (!((masterList[_arg1] == undefined))))){ _local3 = masterList[_arg1]; _local4 = (_local3.length - 1); while (_local4 > -1) { _local5 = _local3[_local4]; if (((_arg2) && (!(_local5.gc)))){ _local5.complete(false); }; _local5.clear(); _local4--; }; delete masterList[_arg1]; }; } public static function updateAll(_arg1:Event=null):void{ var _local4:Array; var _local5:int; var _local6:TweenLite; var _local2:uint = (currentTime = getTimer()); var _local3:Dictionary = masterList; for each (_local4 in _local3) { _local5 = (_local4.length - 1); while (_local5 > -1) { _local6 = _local4[_local5]; if (_local6 == null){ } else { if (_local6.active){ _local6.render(_local2); } else { if (_local6.gc){ _local4.splice(_local5, 1); } else { if (_local2 >= _local6.startTime){ _local6.activate(); _local6.render(_local2); }; }; }; }; _local5--; }; }; } public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null):TweenLite{ return (new TweenLite(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, overwrite:0})); } public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ _arg3.runBackwards = true; return (new TweenLite(_arg1, _arg2, _arg3)); } public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } public static function tintProxy(_arg1:Object, _arg2:Number=0):void{ var _local3:Number = _arg1.target.progress; var _local4:Number = (1 - _local3); var _local5:Object = _arg1.info.color; var _local6:Object = _arg1.info.endColor; _arg1.info.target.transform.colorTransform = new ColorTransform(((_local5.redMultiplier * _local4) + (_local6.redMultiplier * _local3)), ((_local5.greenMultiplier * _local4) + (_local6.greenMultiplier * _local3)), ((_local5.blueMultiplier * _local4) + (_local6.blueMultiplier * _local3)), ((_local5.alphaMultiplier * _local4) + (_local6.alphaMultiplier * _local3)), ((_local5.redOffset * _local4) + (_local6.redOffset * _local3)), ((_local5.greenOffset * _local4) + (_local6.greenOffset * _local3)), ((_local5.blueOffset * _local4) + (_local6.blueOffset * _local3)), ((_local5.alphaOffset * _local4) + (_local6.alphaOffset * _local3))); } public static function volumeProxy(_arg1:Object, _arg2:Number=0):void{ _arg1.info.target.soundTransform = _arg1.target; } protected static function killGarbage(_arg1:TimerEvent):void{ var _local3:Object; var _local4:Array; var _local2:Dictionary = masterList; for (_local3 in _local2) { if (_local2[_local3].length == 0){ delete _local2[_local3]; }; }; } public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ return (new TweenLite(_arg1, _arg2, _arg3)); } } }//package gs
Section 301
//Inflater (nochump.util.zip.Inflater) package nochump.util.zip { import flash.events.*; import flash.utils.*; public class Inflater extends EventDispatcher { private const TIMER_INTERVAL:int = 20; private var lencode:Object; private var bitcnt:int; private var bitbuf:int; private var distcode:Object; private var incnt:uint; private var inbuf:ByteArray; private var currentBuf:ByteArray; private var inflateTimer:Timer; private static const LENS:Array = [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258]; private static const MAXDCODES:int = 30; private static const MAXCODES:int = 316; private static const MAXBITS:int = 15; private static const MAXLCODES:int = 286; private static const FIXLCODES:int = 288; private static const LEXT:Array = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0]; private static const DISTS:Array = [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 0x0101, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577]; private static const DEXT:Array = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13]; public function inflate(_arg1:ByteArray):uint{ var _local3:*; var _local4:*; incnt = (bitbuf = (bitcnt = 0)); var _local2:int; do { _local3 = bits(1); _local4 = bits(2); if (_local4 == 0){ stored(_arg1); } else { if (_local4 == 3){ throw (new Error("invalid block type (type == 3)", -1)); }; lencode = {count:[], symbol:[]}; distcode = {count:[], symbol:[]}; if (_local4 == 1){ constructFixedTables(); } else { if (_local4 == 2){ _local2 = constructDynamicTables(); }; }; if (_local2 != 0){ return (_local2); }; _local2 = codes(_arg1); }; } while (_local2 == 0); return (_local2); } private function bits(_arg1:int):int{ var _local2:int = bitbuf; while (bitcnt < _arg1) { if (incnt == inbuf.length){ throw (new Error("available inflate data did not terminate", 2)); }; _local2 = (_local2 | (inbuf[incnt++] << bitcnt)); bitcnt = (bitcnt + 8); }; bitbuf = (_local2 >> _arg1); bitcnt = (bitcnt - _arg1); return ((_local2 & ((1 << _arg1) - 1))); } public function setInput(_arg1:ByteArray):void{ inbuf = _arg1; inbuf.endian = Endian.LITTLE_ENDIAN; if (inflateTimer){ inflateTimer.stop(); inflateTimer.removeEventListener(TimerEvent.TIMER, inflateNextChunk); }; inflateTimer = new Timer(TIMER_INTERVAL); inflateTimer.addEventListener(TimerEvent.TIMER, inflateNextChunk); } public function queuedInflate(_arg1:ByteArray):void{ incnt = (bitbuf = (bitcnt = 0)); currentBuf = _arg1; inflateTimer.start(); } private function construct(_arg1:Object, _arg2:Array, _arg3:int):int{ var _local4:Array = []; var _local5:int; while (_local5 <= MAXBITS) { _arg1.count[_local5] = 0; _local5++; }; var _local6:int; while (_local6 < _arg3) { var _local8 = _arg1.count; var _local9 = _arg2[_local6]; var _local10 = (_local8[_local9] + 1); _local8[_local9] = _local10; _local6++; }; if (_arg1.count[0] == _arg3){ return (0); }; var _local7 = 1; _local5 = 1; while (_local5 <= MAXBITS) { _local7 = (_local7 << 1); _local7 = (_local7 - _arg1.count[_local5]); if (_local7 < 0){ return (_local7); }; _local5++; }; _local4[1] = 0; _local5 = 1; while (_local5 < MAXBITS) { _local4[(_local5 + 1)] = (_local4[_local5] + _arg1.count[_local5]); _local5++; }; _local6 = 0; while (_local6 < _arg3) { if (_arg2[_local6] != 0){ _local9 = _local4; _local10 = _arg2[_local6]; var _local11 = (_local9[_local10] + 1); _local9[_local10] = _local11; _local8 = _local9[_local10]; _arg1.symbol[_local8] = _local6; }; _local6++; }; return (_local7); } private function constructDynamicTables():int{ var _local8:int; var _local9:int; var _local1:Array = []; var _local2:Array = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; var _local3:int = (bits(5) + 0x0101); var _local4:int = (bits(5) + 1); var _local5:int = (bits(4) + 4); if ((((_local3 > MAXLCODES)) || ((_local4 > MAXDCODES)))){ throw (new Error("dynamic block code description: too many length or distance codes", -3)); }; var _local6:int; while (_local6 < _local5) { _local1[_local2[_local6]] = bits(3); _local6++; }; while (_local6 < 19) { _local1[_local2[_local6]] = 0; _local6++; }; var _local7:int = construct(lencode, _local1, 19); if (_local7 != 0){ throw (new Error("dynamic block code description: code lengths codes incomplete", -4)); }; _local6 = 0; while (_local6 < (_local3 + _local4)) { _local8 = decode(lencode); if (_local8 < 16){ var _temp1 = _local6; _local6 = (_local6 + 1); var _local10 = _temp1; _local1[_local10] = _local8; } else { _local9 = 0; if (_local8 == 16){ if (_local6 == 0){ throw (new Error("dynamic block code description: repeat lengths with no first length", -5)); }; _local9 = _local1[(_local6 - 1)]; _local8 = (3 + bits(2)); } else { if (_local8 == 17){ _local8 = (3 + bits(3)); } else { _local8 = (11 + bits(7)); }; }; if ((_local6 + _local8) > (_local3 + _local4)){ throw (new Error("dynamic block code description: repeat more than specified lengths", -6)); }; while (_local8--) { var _temp2 = _local6; _local6 = (_local6 + 1); _local10 = _temp2; _local1[_local10] = _local9; }; }; }; _local7 = construct(lencode, _local1, _local3); if ((((_local7 < 0)) || ((((_local7 > 0)) && (!(((_local3 - lencode.count[0]) == 1))))))){ throw (new Error("dynamic block code description: invalid literal/length code lengths", -7)); }; _local7 = construct(distcode, _local1.slice(_local3), _local4); if ((((_local7 < 0)) || ((((_local7 > 0)) && (!(((_local4 - distcode.count[0]) == 1))))))){ throw (new Error("dynamic block code description: invalid distance code lengths", -8)); }; return (_local7); } private function constructFixedTables():void{ var _local1:Array = []; var _local2:int; while (_local2 < 144) { _local1[_local2] = 8; _local2++; }; while (_local2 < 0x0100) { _local1[_local2] = 9; _local2++; }; while (_local2 < 280) { _local1[_local2] = 7; _local2++; }; while (_local2 < FIXLCODES) { _local1[_local2] = 8; _local2++; }; construct(lencode, _local1, FIXLCODES); _local2 = 0; while (_local2 < MAXDCODES) { _local1[_local2] = 5; _local2++; }; construct(distcode, _local1, MAXDCODES); } private function stored(_arg1:ByteArray):void{ bitbuf = 0; bitcnt = 0; if ((incnt + 4) > inbuf.length){ throw (new Error("available inflate data did not terminate", 2)); }; var _local2:uint = inbuf[incnt++]; var _temp1 = _local2; _local2 = (_temp1 | (inbuf[++] << 8)); if (((!((inbuf[incnt++] == (~(_local2) & 0xFF)))) || (!((inbuf[incnt++] == ((~(_local2) >> 8) & 0xFF)))))){ throw (new Error("stored block length did not match one's complement", -2)); }; if ((incnt + _local2) > inbuf.length){ throw (new Error("available inflate data did not terminate", 2)); }; while (_local2--) { _arg1[_arg1.length] = inbuf[incnt++]; }; } private function codes(_arg1:ByteArray):int{ var _local2:*; var _local3:*; var _local4:*; do { _local2 = decode(lencode); if (_local2 < 0){ return (_local2); }; if (_local2 < 0x0100){ _arg1[_arg1.length] = _local2; } else { if (_local2 > 0x0100){ _local2 = (_local2 - 0x0101); if (_local2 >= 29){ throw (new Error("invalid literal/length or distance code in fixed or dynamic block", -9)); }; _local3 = (LENS[_local2] + bits(LEXT[_local2])); _local2 = decode(distcode); if (_local2 < 0){ return (_local2); }; _local4 = (DISTS[_local2] + bits(DEXT[_local2])); if (_local4 > _arg1.length){ throw (new Error("distance is too far back in fixed or dynamic block", -10)); }; while (_local3--) { _arg1[_arg1.length] = _arg1[(_arg1.length - _local4)]; }; }; }; } while (_local2 != 0x0100); return (0); } private function inflateNextChunk(_arg1:TimerEvent):void{ var _local2:int; var _local3:int = bits(1); var _local4:int = bits(2); if (_local4 == 0){ stored(currentBuf); } else { if (_local4 == 3){ throw (new Error("invalid block type (type == 3)", -1)); }; lencode = {count:[], symbol:[]}; distcode = {count:[], symbol:[]}; if (_local4 == 1){ constructFixedTables(); } else { if (_local4 == 2){ _local2 = constructDynamicTables(); }; }; if (_local2 != 0){ inflateTimer.stop(); dispatchEvent(new ZipErrorEvent(ZipErrorEvent.PARSE_ERROR, false, false, _local2)); }; _local2 = codes(currentBuf); }; if (_local2 != 0){ inflateTimer.stop(); dispatchEvent(new ZipErrorEvent(ZipErrorEvent.PARSE_ERROR, false, false, _local2)); }; if (_local3){ inflateTimer.stop(); dispatchEvent(new ZipEvent(ZipEvent.ENTRY_PARSED, false, false, currentBuf)); }; dispatchEvent(new ProgressEvent(ProgressEvent.PROGRESS, false, false, incnt, currentBuf.length)); } private function decode(_arg1:Object):int{ var _local6:int; var _local2:int; var _local3:int; var _local4:int; var _local5 = 1; while (_local5 <= MAXBITS) { _local2 = (_local2 | bits(1)); _local6 = _arg1.count[_local5]; if (_local2 < (_local3 + _local6)){ return (_arg1.symbol[(_local4 + (_local2 - _local3))]); }; _local4 = (_local4 + _local6); _local3 = (_local3 + _local6); _local3 = (_local3 << 1); _local2 = (_local2 << 1); _local5++; }; return (-9); } } }//package nochump.util.zip
Section 302
//ZipConstants (nochump.util.zip.ZipConstants) package nochump.util.zip { class ZipConstants { static const ENDOFF:uint = 16; static const CENSIG:uint = 33639248; static const CENNAM:uint = 28; static const EXTSIG:uint = 134695760; static const LOCSIG:uint = 67324752; static const ENDSIG:uint = 101010256; static const CENVER:uint = 6; static const DEFLATED:uint = 8; static const LOCNAM:uint = 26; static const ENDTOT:uint = 10; static const LOCVER:uint = 4; static const CENHDR:uint = 46; static const CENOFF:uint = 42; static const EXTHDR:uint = 16; static const LOCHDR:uint = 30; static const STORED:uint = 0; static const ENDHDR:uint = 22; } }//package nochump.util.zip
Section 303
//ZipEntry (nochump.util.zip.ZipEntry) package nochump.util.zip { import flash.utils.*; public class ZipEntry { private var _compressedSize:int;// = -1 private var _extra:ByteArray; var offset:int; private var _crc:uint; var version:int; var dostime:uint; private var _size:int;// = -1 private var _method:int;// = -1 private var _comment:String; var flag:int; private var _name:String; public function ZipEntry(_arg1:String){ _name = _arg1; } public function set compressedSize(_arg1:int):void{ _compressedSize = _arg1; } public function get size():int{ return (_size); } public function set size(_arg1:int):void{ _size = _arg1; } public function get name():String{ return (_name); } public function get time():Number{ var _local1:Date = new Date((((dostime >> 25) & 127) + 1980), (((dostime >> 21) & 15) - 1), ((dostime >> 16) & 31), ((dostime >> 11) & 31), ((dostime >> 5) & 63), ((dostime & 31) << 1)); return (_local1.time); } public function get extra():ByteArray{ return (_extra); } public function set time(_arg1:Number):void{ var _local2:Date = new Date(_arg1); dostime = ((((((((_local2.fullYear - 1980) & 127) << 25) | ((_local2.month + 1) << 21)) | (_local2.day << 16)) | (_local2.hours << 11)) | (_local2.minutes << 5)) | (_local2.seconds >> 1)); } public function get crc():uint{ return (_crc); } public function get method():int{ return (_method); } public function isDirectory():Boolean{ return ((_name.charAt((_name.length - 1)) == "/")); } public function set method(_arg1:int):void{ _method = _arg1; } public function set crc(_arg1:uint):void{ _crc = _arg1; } public function get comment():String{ return (_comment); } public function set extra(_arg1:ByteArray):void{ _extra = _arg1; } public function get compressedSize():int{ return (_compressedSize); } public function toString():String{ return (_name); } public function set comment(_arg1:String):void{ _comment = _arg1; } } }//package nochump.util.zip
Section 304
//ZipError (nochump.util.zip.ZipError) package nochump.util.zip { import flash.errors.*; public class ZipError extends IOError { public function ZipError(_arg1:String="", _arg2:int=0){ super(_arg1, _arg2); } } }//package nochump.util.zip
Section 305
//ZipErrorEvent (nochump.util.zip.ZipErrorEvent) package nochump.util.zip { import flash.events.*; public class ZipErrorEvent extends Event { private var err:int;// = 0 public static const PARSE_ERROR:String = "entryParseError"; public function ZipErrorEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:int=0){ super(_arg1, _arg2, _arg3); err = _arg4; } override public function clone():Event{ return (new ZipErrorEvent(type)); } } }//package nochump.util.zip
Section 306
//ZipEvent (nochump.util.zip.ZipEvent) package nochump.util.zip { import flash.events.*; import flash.utils.*; public class ZipEvent extends Event { public var entry:ByteArray; public static const ENTRY_PARSED:String = "entryParsed"; public function ZipEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:ByteArray=null){ super(_arg1, _arg2, _arg3); entry = _arg4; } override public function clone():Event{ return (new ZipEvent(type)); } } }//package nochump.util.zip
Section 307
//ZipFile (nochump.util.zip.ZipFile) package nochump.util.zip { import flash.events.*; import flash.utils.*; public class ZipFile extends EventDispatcher { private var entryTable:Dictionary; private var entryList:Array; private var buf:ByteArray; private var locOffsetTable:Dictionary; public function ZipFile(_arg1:IDataInput){ buf = new ByteArray(); buf.endian = Endian.LITTLE_ENDIAN; _arg1.readBytes(buf); readEntries(); } public function get size():uint{ return (entryList.length); } private function findEND():uint{ var _local1:uint = (buf.length - ZipConstants.ENDHDR); var _local2:uint = Math.max(0, (_local1 - 0xFFFF)); while (_local1 >= _local2) { if (buf[_local1] != 80){ } else { buf.position = _local1; if (buf.readUnsignedInt() == ZipConstants.ENDSIG){ return (_local1); }; }; _local1--; }; throw (new ZipError("invalid zip")); } private function readEND():void{ var _local1:ByteArray = new ByteArray(); _local1.endian = Endian.LITTLE_ENDIAN; buf.position = findEND(); buf.readBytes(_local1, 0, ZipConstants.ENDHDR); _local1.position = ZipConstants.ENDTOT; entryList = new Array(_local1.readUnsignedShort()); _local1.position = ZipConstants.ENDOFF; buf.position = _local1.readUnsignedInt(); } private function onZipEntryParsed(_arg1:ZipEvent):void{ dispatchEvent(new ZipEvent(ZipEvent.ENTRY_PARSED, false, false, _arg1.entry)); } private function readEntries():void{ var _local2:ByteArray; var _local3:uint; var _local4:ZipEntry; readEND(); entryTable = new Dictionary(); locOffsetTable = new Dictionary(); var _local1:uint; while (_local1 < entryList.length) { _local2 = new ByteArray(); _local2.endian = Endian.LITTLE_ENDIAN; buf.readBytes(_local2, 0, ZipConstants.CENHDR); if (_local2.readUnsignedInt() != ZipConstants.CENSIG){ throw (new ZipError("invalid CEN header (bad signature)")); }; _local2.position = ZipConstants.CENNAM; _local3 = _local2.readUnsignedShort(); if (_local3 == 0){ throw (new ZipError("missing entry name")); }; _local4 = new ZipEntry(buf.readUTFBytes(_local3)); _local3 = _local2.readUnsignedShort(); _local4.extra = new ByteArray(); if (_local3 > 0){ buf.readBytes(_local4.extra, 0, _local3); }; buf.position = (buf.position + _local2.readUnsignedShort()); _local2.position = ZipConstants.CENVER; _local4.version = _local2.readUnsignedShort(); _local4.flag = _local2.readUnsignedShort(); if ((_local4.flag & 1) == 1){ throw (new ZipError("encrypted ZIP entry not supported")); }; _local4.method = _local2.readUnsignedShort(); _local4.dostime = _local2.readUnsignedInt(); _local4.crc = _local2.readUnsignedInt(); _local4.compressedSize = _local2.readUnsignedInt(); _local4.size = _local2.readUnsignedInt(); entryList[_local1] = _local4; entryTable[_local4.name] = _local4; _local2.position = ZipConstants.CENOFF; locOffsetTable[_local4.name] = _local2.readUnsignedInt(); _local1++; }; } public function getInput(_arg1:ZipEntry):ByteArray{ var _local4:ByteArray; var _local5:Inflater; buf.position = ((locOffsetTable[_arg1.name] + ZipConstants.LOCHDR) - 2); var _local2:uint = buf.readShort(); buf.position = (buf.position + (_arg1.name.length + _local2)); var _local3:ByteArray = new ByteArray(); if (_arg1.compressedSize > 0){ buf.readBytes(_local3, 0, _arg1.compressedSize); }; switch (_arg1.method){ case ZipConstants.STORED: return (_local3); case ZipConstants.DEFLATED: _local4 = new ByteArray(); _local5 = new Inflater(); _local5.setInput(_local3); _local5.inflate(_local4); dispatchEvent(new ZipEvent(ZipEvent.ENTRY_PARSED, false, false, _local4)); return (_local4); default: throw (new ZipError("invalid compression method")); }; } public function get entries():Array{ return (entryList); } public function getEntry(_arg1:String):ZipEntry{ return (entryTable[_arg1]); } private function onZipEntryProgress(_arg1:ProgressEvent):void{ dispatchEvent(new ProgressEvent(ProgressEvent.PROGRESS, false, false, _arg1.bytesLoaded, _arg1.bytesTotal)); } public function parseInput(_arg1:ZipEntry):void{ var _local4:Inflater; var _local5:ByteArray; buf.position = ((locOffsetTable[_arg1.name] + ZipConstants.LOCHDR) - 2); var _local2:uint = buf.readShort(); buf.position = (buf.position + (_arg1.name.length + _local2)); var _local3:ByteArray = new ByteArray(); if (_arg1.compressedSize > 0){ buf.readBytes(_local3, 0, _arg1.compressedSize); }; switch (_arg1.method){ case ZipConstants.STORED: dispatchEvent(new ZipEvent(ZipEvent.ENTRY_PARSED, false, false, _local3)); break; case ZipConstants.DEFLATED: _local4 = new Inflater(); _local4.addEventListener(ZipEvent.ENTRY_PARSED, onZipEntryParsed); _local4.addEventListener(ProgressEvent.PROGRESS, onZipEntryProgress); _local5 = new ByteArray(); _local4.setInput(_local3); _local4.queuedInflate(_local5); break; default: throw (new ZipError("invalid compression method")); }; } } }//package nochump.util.zip
Section 308
//Destroyable (org.casalib.core.Destroyable) package org.casalib.core { public class Destroyable implements IDestroyable { protected var _isDestroyed:Boolean; public function get destroyed():Boolean{ return (this._isDestroyed); } public function destroy():void{ this._isDestroyed = true; } } }//package org.casalib.core
Section 309
//IDestroyable (org.casalib.core.IDestroyable) package org.casalib.core { public interface IDestroyable { function get destroyed():Boolean; function destroy():void; } }//package org.casalib.core
Section 310
//CasaBitmap (org.casalib.display.CasaBitmap) package org.casalib.display { import flash.display.*; import org.casalib.events.*; import org.casalib.core.*; public class CasaBitmap extends Bitmap implements IRemovableEventDispatcher, IDestroyable { protected var _isDestroyed:Boolean; protected var _listenerManager:ListenerManager; public function CasaBitmap(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); this._listenerManager = ListenerManager.getManager(this); } public function destroy():void{ this.removeEventListeners(); this._listenerManager.destroy(); this._isDestroyed = true; if (this.parent != null){ this.parent.removeChild(this); }; } override public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ super.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); this._listenerManager.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } public function removeEventsForListener(_arg1:Function):void{ this._listenerManager.removeEventsForListener(_arg1); } public function removeEventListeners():void{ this._listenerManager.removeEventListeners(); } override public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ super.removeEventListener(_arg1, _arg2, _arg3); this._listenerManager.removeEventListener(_arg1, _arg2, _arg3); } public function removeEventsForType(_arg1:String):void{ this._listenerManager.removeEventsForType(_arg1); } public function get destroyed():Boolean{ return (this._isDestroyed); } } }//package org.casalib.display
Section 311
//CasaMovieClip (org.casalib.display.CasaMovieClip) package org.casalib.display { import flash.display.*; import org.casalib.events.*; import org.casalib.core.*; public class CasaMovieClip extends MovieClip implements IRemovableEventDispatcher, IDestroyable { protected var _isDestroyed:Boolean; protected var _listenerManager:ListenerManager; public function CasaMovieClip(){ this._listenerManager = ListenerManager.getManager(this); } public function destroy():void{ this.removeEventListeners(); this._listenerManager.destroy(); this._isDestroyed = true; if (this.parent != null){ this.parent.removeChild(this); }; } override public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ super.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); this._listenerManager.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } public function removeEventsForListener(_arg1:Function):void{ this._listenerManager.removeEventsForListener(_arg1); } public function removeEventListeners():void{ this._listenerManager.removeEventListeners(); } override public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ super.removeEventListener(_arg1, _arg2, _arg3); this._listenerManager.removeEventListener(_arg1, _arg2, _arg3); } public function removeEventsForType(_arg1:String):void{ this._listenerManager.removeEventsForType(_arg1); } public function get destroyed():Boolean{ return (this._isDestroyed); } } }//package org.casalib.display
Section 312
//CasaSprite (org.casalib.display.CasaSprite) package org.casalib.display { import flash.display.*; import org.casalib.events.*; import org.casalib.core.*; public class CasaSprite extends Sprite implements IRemovableEventDispatcher, IDestroyable { protected var _isDestroyed:Boolean; protected var _listenerManager:ListenerManager; public function CasaSprite(){ this._listenerManager = ListenerManager.getManager(this); } public function destroy():void{ this.removeEventListeners(); this._listenerManager.destroy(); this._isDestroyed = true; if (this.parent != null){ this.parent.removeChild(this); }; } override public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ super.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); this._listenerManager.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } public function removeEventsForListener(_arg1:Function):void{ this._listenerManager.removeEventsForListener(_arg1); } public function removeEventListeners():void{ this._listenerManager.removeEventListeners(); } override public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ super.removeEventListener(_arg1, _arg2, _arg3); this._listenerManager.removeEventListener(_arg1, _arg2, _arg3); } public function removeEventsForType(_arg1:String):void{ this._listenerManager.removeEventsForType(_arg1); } public function get destroyed():Boolean{ return (this._isDestroyed); } } }//package org.casalib.display
Section 313
//IRemovableEventDispatcher (org.casalib.events.IRemovableEventDispatcher) package org.casalib.events { import flash.events.*; public interface IRemovableEventDispatcher extends IEventDispatcher { function removeEventsForListener(_arg1:Function):void; function removeEventListeners():void; function removeEventsForType(_arg1:String):void; } }//package org.casalib.events
Section 314
//ListenerManager (org.casalib.events.ListenerManager) package org.casalib.events { import flash.events.*; import flash.utils.*; import org.casalib.core.*; public class ListenerManager extends Destroyable implements IRemovableEventDispatcher { protected var _blockRequest:Boolean; protected var _eventDispatcher:IEventDispatcher; protected var _events:Array; protected static var _proxyMap:Dictionary; public function ListenerManager(_arg1:EventInfo, _arg2:IEventDispatcher){ this._eventDispatcher = _arg2; this._events = new Array(); } public function dispatchEvent(_arg1:Event):Boolean{ return (this._eventDispatcher.dispatchEvent(_arg1)); } public function willTrigger(_arg1:String):Boolean{ return (this._eventDispatcher.willTrigger(_arg1)); } public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ if (this._blockRequest){ return; }; var _local4:EventInfo = new EventInfo(_arg1, _arg2, _arg3); var _local5:int = this._events.length; while (_local5--) { if (this._events[_local5].equals(_local4)){ this._events.splice(_local5, 1); }; }; } public function removeEventListeners():void{ var _local2:EventInfo; this._blockRequest = true; var _local1:int = this._events.length; while (_local1--) { _local2 = this._events.splice(_local1, 1)[0]; this._eventDispatcher.removeEventListener(_local2.type, _local2.listener, _local2.useCapture); }; this._blockRequest = false; } public function removeEventsForListener(_arg1:Function):void{ var _local3:EventInfo; this._blockRequest = true; var _local2:int = this._events.length; while (_local2--) { _local3 = this._events[_local2]; if (_local3.listener == _arg1){ this._events.splice(_local2, 1); this._eventDispatcher.removeEventListener(_local3.type, _local3.listener, _local3.useCapture); }; }; this._blockRequest = false; } public function hasEventListener(_arg1:String):Boolean{ return (this._eventDispatcher.hasEventListener(_arg1)); } override public function destroy():void{ this.removeEventListeners(); delete ListenerManager._proxyMap[this._eventDispatcher]; this._eventDispatcher = null; super.destroy(); } public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ var _local6:EventInfo = new EventInfo(_arg1, _arg2, _arg3); var _local7:int = this._events.length; while (_local7--) { if (this._events[_local7].equals(_local6)){ return; }; }; this._events.push(_local6); } public function removeEventsForType(_arg1:String):void{ var _local3:EventInfo; this._blockRequest = true; var _local2:int = this._events.length; while (_local2--) { _local3 = this._events[_local2]; if (_local3.type == _arg1){ this._events.splice(_local2, 1); this._eventDispatcher.removeEventListener(_local3.type, _local3.listener, _local3.useCapture); }; }; this._blockRequest = false; } public static function getManager(_arg1:IEventDispatcher):ListenerManager{ if (ListenerManager._proxyMap == null){ ListenerManager._proxyMap = new Dictionary(); }; if (ListenerManager._proxyMap[_arg1] == null){ ListenerManager._proxyMap[_arg1] = new ListenerManager(new EventInfo(null, null, false), _arg1); }; return (ListenerManager._proxyMap[_arg1]); } } }//package org.casalib.events class EventInfo { public var listener:Function; public var type:String; public var useCapture:Boolean; private function EventInfo(_arg1:String, _arg2:Function, _arg3:Boolean){ this.type = _arg1; this.listener = _arg2; this.useCapture = _arg3; } public function equals(_arg1:EventInfo):Boolean{ return ((((((this.type == _arg1.type)) && ((this.listener == _arg1.listener)))) && ((this.useCapture == _arg1.useCapture)))); } }
Section 315
//AbstractPreloader (preloader.AbstractPreloader) package preloader { import flash.events.*; import flash.display.*; import flash.utils.*; public class AbstractPreloader extends MovieClip { private var m_firstEnterFrame:Boolean; public function AbstractPreloader(){ stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stop(); m_firstEnterFrame = true; addEventListener(Event.ENTER_FRAME, onEnterFrame); } protected function initialize():void{ var _local3:Class; var _local4:DisplayObject; var _local1:String = root.loaderInfo.url; trace(("URL = " + _local1)); var _local2:Boolean; if (_local2){ _local3 = (getDefinitionByName(mainClassName) as Class); if (_local3 == null){ throw (new Error("AbstractPreloader:initialize. There was no class matching that name. Did you remember to override mainClassName?")); }; _local4 = (new (_local3) as DisplayObject); if (_local4 == null){ throw (new Error("AbstractPreloader:initialize. Main class needs to inherit from Sprite or MovieClip.")); }; addChildAt(_local4, 0); }; } protected function endLoading():void{ } protected function beginLoading():void{ } private function onEnterFrame(_arg1:Event):void{ var _local2:Number; if (m_firstEnterFrame){ m_firstEnterFrame = false; if (root.loaderInfo.bytesLoaded >= root.loaderInfo.bytesTotal){ removeEventListener(Event.ENTER_FRAME, onEnterFrame); beginLoading(); nextFrame(); initialize(); endLoading(); } else { beginLoading(); }; return; }; if (root.loaderInfo.bytesLoaded >= root.loaderInfo.bytesTotal){ removeEventListener(Event.ENTER_FRAME, onEnterFrame); nextFrame(); initialize(); endLoading(); } else { _local2 = (root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal); updateLoading(_local2); }; } protected function get mainClassName():String{ return ("LilRacerz"); } protected function updateLoading(_arg1:Number):void{ } } }//package preloader
Section 316
//AbstractPreloaderView (preloader.AbstractPreloaderView) package preloader { import flash.events.*; import flash.display.*; import assets.*; import flash.utils.*; import flash.net.*; public class AbstractPreloaderView extends AbstractPreloader { private var m_maskWidth:Number; private var fogHolder:Sprite; private var GAME_TITLE:String;// = "LILRACERZ" private var m_ui:Preloader; private var m_lb:int; private var m_ltl:int; private var m_percent:int; override protected function updateLoading(_arg1:Number):void{ var _local3:*; m_ui.pre1.procent.text = int((_arg1 * 100)); m_ui.pre1.gotoAndStop(int(((_arg1 * 100) + 1))); var _local2:* = Math.random(); if (_local2 < (_arg1 / 5)){ _local3 = new fog_1(); _local3.cacheAsBitmap = true; _local3.x = 310; _local3.y = 250; _local3.scaleX = (_local3.scaleY = 0); _local3.gotoAndStop(((Math.random() * 10) + 1)); _local3.speed = 100; _local3.alpha = 0; _local3.grow = (Math.random() / 100); _local3.fade = false; _local3.targetX = (Math.random() * 10); if (_local3.targetX < 5){ _local3.targetX = (Math.random() * 10); if (_local3.targetX < 5){ _local3.targetX = -100; } else { _local3.targetX = 720; }; _local3.targetY = (Math.random() * 500); } else { _local3.targetY = (Math.random() * 10); if (_local3.targetY < 5){ _local3.targetY = -100; } else { _local3.targetY = (500 + 100); }; _local3.targetX = (Math.random() * 620); }; fogHolder.addChild(_local3); _local3.addEventListener(Event.ENTER_FRAME, FOGFly); }; } override protected function endLoading():void{ if (m_ui){ m_ui.mcLogo.gotoAndStop("display"); }; setTimeout(init, 3000); } override protected function beginLoading():void{ trace("Begin Loading"); fogHolder = new Sprite(); addChild(fogHolder); m_ui = new Preloader(); m_ui.x = (Constants.STAGE_WIDTH / 2); m_ui.y = (Constants.STAGE_HEIGHT / 2); addChild(m_ui); m_ui.btnFoggy.addEventListener(MouseEvent.CLICK, buttonClicked); } private function buttonClicked(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.freeonlinegames.com/?lilracerz"), "_blank"); } private function FOGFly(_arg1:Event):void{ var _local2:* = _arg1.currentTarget; _local2.x = (_local2.x + (((_local2.targetX - _local2.x) / _local2.speed) * 0.5)); _local2.y = (_local2.y + (((_local2.targetY - _local2.y) / _local2.speed) * 0.5)); _local2.speed = (_local2.speed * 0.99); _local2.scaleX = (_local2.scaleY = (_local2.scaleY + (_local2.grow * 2))); if ((((_local2.alpha < 1)) && (!(_local2.fade)))){ _local2.alpha = (_local2.alpha + 0.02); }; if ((((((((((_local2.x < -50)) || ((_local2.y < -50)))) || ((_local2.x > 670)))) || ((_local2.y > 550)))) || ((_local2.scaleX > 2)))){ _local2.fade = true; }; if (_local2.fade){ _local2.alpha = (_local2.alpha - 0.05); if (_local2.alpha <= 0){ _local2.removeEventListener(Event.ENTER_FRAME, FOGFly); _local2.parent.removeChild(_local2); }; }; } public function init():void{ trace("init"); if (m_ui){ removeChild(m_ui); m_ui = null; }; super.initialize(); } override protected function initialize():void{ } } }//package preloader
Section 317
//SoundEngine (sound.SoundEngine) package sound { import flash.events.*; import game.vehicle.*; import flash.utils.*; import flash.media.*; import assets.*; public class SoundEngine { private var m_vehiclesArray:Array; private var m_idleSpeed:Number;// = 5 private var m_sound_crashSolid:SoundCarCrashSolid; private var m_engineSoundsArray:Array; private var m_audioRangeMax:int;// = 360000 private var m_distance:Number; private var m_channel_crash:SoundChannel; private var m_sound_idle:SoundCarLoopIdle; private var m_channel_idle:SoundChannel; private var m_soundTransform:SoundTransform; private var m_volume:Number; private var m_sound_skid:SoundCarSkid; private var m_sound_medium:SoundCarLoopMedium; private var m_channel_skid:SoundChannel; private var m_channel_medium:SoundChannel; private var m_channel_low:SoundChannel; private var m_sound_low:SoundCarLoopLow; private var m_maxVolume:Number; private var m_channel_reverse:SoundChannel; private var m_vehicle:Vehicle; private var m_engineSound00:SoundCarEngine00; private var m_engineSound01:SoundCarEngine01; private var m_engineSound02:SoundCarEngine02; private var m_engineSound04:SoundCarEngine04; private var m_sound_reverse:SoundCarLoopMedium; private var m_minVolumeAI:Number;// = 0.05 private var m_sound_high:SoundCarLoopHigh; private var m_skidThreshold:Number;// = 0.8 private var m_engineSoundClassArray:Array; private var m_engineSound03:SoundCarEngine03; private var m_sound_crashCar:SoundCarCrashCar; private var m_channel_high:SoundChannel; private var m_maxVolumeAI:Number; private var m_engineChannelsArray:Array; private var m_engineSound05:SoundCarEngine05; private var m_audioRangeMin:int;// = 6400 public function SoundEngine(_arg1:Array){ var _local3:int; var _local4:*; var _local5:Sound; m_maxVolume = Constants.VOLUME_SFX; m_maxVolumeAI = (Constants.VOLUME_SFX - 0.3); m_engineSoundsArray = []; m_engineChannelsArray = []; m_engineSoundClassArray = ["assets.SoundCarEngine00", "assets.SoundCarEngine01", "assets.SoundCarEngine02", "assets.SoundCarEngine03", "assets.SoundCarEngine04", "assets.SoundCarEngine05"]; super(); m_vehiclesArray = _arg1; m_sound_high = new SoundCarLoopHigh(); m_sound_medium = new SoundCarLoopMedium(); m_sound_low = new SoundCarLoopLow(); m_sound_skid = new SoundCarSkid(); m_sound_crashCar = new SoundCarCrashCar(); m_sound_crashSolid = new SoundCarCrashSolid(); m_channel_high = m_sound_high.play(0, 99999); m_channel_medium = m_sound_medium.play(0, 99999); m_channel_low = m_sound_low.play(0, 99999); m_channel_skid = m_sound_skid.play(0, 99999); setVolume(m_channel_high, 0); setVolume(m_channel_medium, 0); setVolume(m_channel_low, 0); setVolume(m_channel_skid, 0); var _local2 = 1; while (_local2 < m_vehiclesArray.length) { _local3 = (_local2 % m_engineSoundClassArray.length); _local4 = getDefinitionByName(m_engineSoundClassArray[_local3]); _local5 = (new (_local4) as Sound); m_engineSoundsArray.push(_local5); m_engineChannelsArray.push(_local5.play(0, 9999)); setVolume(m_engineChannelsArray[(m_engineChannelsArray.length - 1)], m_minVolumeAI); _local2++; }; } public function setVolume(_arg1:SoundChannel, _arg2:Number):void{ var _local3:SoundTransform = _arg1.soundTransform; _local3.volume = _arg2; _arg1.soundTransform = _local3; } public function render():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:int; var _local7:Number; if (SoundManager.getInstance().soundsEnabled){ m_vehicle = m_vehiclesArray[0]; m_volume = (m_vehicle.speed / m_vehicle.SPEED_MAX); if (m_volume > 1){ m_volume = 1; }; setVolume(m_channel_low, (((1 - m_volume) * m_maxVolume) * 0.7)); setVolume(m_channel_high, ((m_volume * m_maxVolume) * 0.7)); setVolume(m_channel_medium, (((0.4 * m_maxVolume) * Math.sin((((1.5 * m_volume) * Math.PI) * 2))) * 0.7)); if ((((m_volume > m_skidThreshold)) && (!((m_vehicle.steering == 0))))){ setVolume(m_channel_skid, (m_volume - 0.5)); } else { setVolume(m_channel_skid, 0); }; _local3 = m_vehicle.x; _local4 = m_vehicle.y; _local6 = 1; while (_local6 < m_vehiclesArray.length) { m_vehicle = m_vehiclesArray[_local6]; m_volume = (m_vehicle.speed / m_vehicle.SPEED_MAX); if (m_volume > 1){ m_volume = 1; }; _local1 = (_local3 - m_vehiclesArray[_local6].x); _local2 = (_local4 - m_vehiclesArray[_local6].y); _local5 = ((_local1 * _local1) + (_local2 * _local2)); if (_local5 > m_audioRangeMax){ setVolume(m_engineChannelsArray[(_local6 - 1)], 0); } else { _local7 = (((1 - (_local5 / m_audioRangeMax)) * m_maxVolumeAI) * m_volume); if (_local7 < m_minVolumeAI){ _local7 = m_minVolumeAI; }; setVolume(m_engineChannelsArray[(_local6 - 1)], _local7); }; _local6++; }; } else { muteSounds(); }; } public function muteSounds():void{ setVolume(m_channel_high, 0); setVolume(m_channel_medium, 0); setVolume(m_channel_low, 0); setVolume(m_channel_skid, 0); var _local1:int; while (_local1 < m_engineChannelsArray.length) { setVolume(m_engineChannelsArray[_local1], 0); _local1++; }; } public function destroy():void{ trace("Sound Engine Destroy"); muteSounds(); m_sound_high = null; m_sound_medium = null; m_sound_low = null; m_sound_skid = null; m_sound_crashCar = null; m_sound_crashSolid = null; m_channel_high.stop(); m_channel_medium.stop(); m_channel_low.stop(); m_channel_skid.stop(); m_channel_high = null; m_channel_medium = null; m_channel_low = null; m_channel_skid = null; var _local1:int; while (_local1 < m_engineChannelsArray.length) { m_engineChannelsArray[_local1].stop(); m_engineChannelsArray[_local1] = null; m_engineSoundsArray = []; _local1++; }; } public function collided(_arg1:CollisionEvent):void{ var _local2:Number; if (SoundManager.getInstance().soundsEnabled){ _local2 = _arg1.force; if (_local2 > 500){ _local2 = 500; } else { if (_local2 < 50){ _local2 = 50; }; }; _local2 = (_local2 * 0.002); if (_arg1.id == 0){ if (_local2 > 0.5){ m_channel_crash = m_sound_crashSolid.play(0, 1); setVolume(m_channel_crash, (_local2 * m_maxVolume)); } else { m_channel_crash = m_sound_crashCar.play(0, 1); setVolume(m_channel_crash, ((_local2 + 0.75) * m_maxVolume)); }; }; }; } } }//package sound
Section 318
//SoundManager (sound.SoundManager) package sound { import flash.events.*; import flash.utils.*; import assets.*; import com.markfennell.sound.*; public class SoundManager { private var m_sound_click:SoundPlayer; private var m_musicArray:Array; private var m_music:SoundPlayer; private var m_music_position:Number;// = 0 private var m_soundArray:Array; public var soundsEnabled:Boolean;// = true private var m_sound_boost:SoundPlayer; public var musicEnabled:Boolean;// = true private var m_currentTrack:int;// = -1 private var embed_music_1:TrackBurn; private var embed_music_2:TrackExtreme; private var m_sound_ching:SoundPlayer; private static var m_instance:SoundManager = null; public function SoundManager(){ m_instance = this; m_musicArray = ["assets.TrackBurn", "assets.TrackExtreme"]; m_sound_click = new SoundPlayer(new SoundClick()); m_sound_ching = new SoundPlayer(new SoundCash()); m_sound_boost = new SoundPlayer(new SoundBoost()); m_soundArray = [m_sound_click, m_sound_ching]; } public function start_music(_arg1:int=0, _arg2:Boolean=false):void{ var _local3:*; if ((((m_currentTrack == _arg1)) && (!(_arg2)))){ return; }; if (musicEnabled){ m_currentTrack = _arg1; if (m_music){ m_music.destroy(); }; _local3 = getDefinitionByName(m_musicArray[m_currentTrack]); m_music = new SoundPlayer(new (_local3)); _local3 = null; m_music.play(Constants.VOLUME_MUSIC, 999); }; } public function resume_music():void{ start_music(m_currentTrack, true); } public function stop_music():void{ musicEnabled = false; m_music.stop(); } public function stopSounds():void{ var _local1:int; while (_local1 < m_soundArray.length) { m_soundArray[_local1].stop(); _local1++; }; } public function pause_music(_arg1:Boolean):void{ if (_arg1){ m_music.pause(); } else { m_music.resume(); }; } public function musicRestart(_arg1:Event):void{ if (musicEnabled){ m_music.stop(); m_music.play(Constants.VOLUME_MUSIC, 999); }; } public function playSound(_arg1:String):void{ if (soundsEnabled){ switch (_arg1){ case "Click": m_sound_click.play(); break; case "Ching": m_sound_ching.play(); break; case "Boost": m_sound_boost.play(); break; }; }; } public static function getInstance():SoundManager{ if (m_instance == null){ m_instance = new (SoundManager); }; return (m_instance); } } }//package sound
Section 319
//Button_disabledSkin (Button_disabledSkin) package { import flash.display.*; public dynamic class Button_disabledSkin extends MovieClip { } }//package
Section 320
//Button_downSkin (Button_downSkin) package { import flash.display.*; public dynamic class Button_downSkin extends MovieClip { } }//package
Section 321
//Button_emphasizedSkin (Button_emphasizedSkin) package { import flash.display.*; public dynamic class Button_emphasizedSkin extends MovieClip { } }//package
Section 322
//Button_overSkin (Button_overSkin) package { import flash.display.*; public dynamic class Button_overSkin extends MovieClip { } }//package
Section 323
//Button_selectedDisabledSkin (Button_selectedDisabledSkin) package { import flash.display.*; public dynamic class Button_selectedDisabledSkin extends MovieClip { } }//package
Section 324
//Button_selectedDownSkin (Button_selectedDownSkin) package { import flash.display.*; public dynamic class Button_selectedDownSkin extends MovieClip { } }//package
Section 325
//Button_selectedOverSkin (Button_selectedOverSkin) package { import flash.display.*; public dynamic class Button_selectedOverSkin extends MovieClip { } }//package
Section 326
//Button_selectedUpSkin (Button_selectedUpSkin) package { import flash.display.*; public dynamic class Button_selectedUpSkin extends MovieClip { } }//package
Section 327
//Button_upSkin (Button_upSkin) package { import flash.display.*; public dynamic class Button_upSkin extends MovieClip { } }//package
Section 328
//CellRenderer_disabledSkin (CellRenderer_disabledSkin) package { import flash.display.*; public dynamic class CellRenderer_disabledSkin extends MovieClip { } }//package
Section 329
//CellRenderer_downSkin (CellRenderer_downSkin) package { import flash.display.*; public dynamic class CellRenderer_downSkin extends MovieClip { } }//package
Section 330
//CellRenderer_overSkin (CellRenderer_overSkin) package { import flash.display.*; public dynamic class CellRenderer_overSkin extends MovieClip { } }//package
Section 331
//CellRenderer_selectedDisabledSkin (CellRenderer_selectedDisabledSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDisabledSkin extends MovieClip { } }//package
Section 332
//CellRenderer_selectedDownSkin (CellRenderer_selectedDownSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDownSkin extends MovieClip { } }//package
Section 333
//CellRenderer_selectedOverSkin (CellRenderer_selectedOverSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedOverSkin extends MovieClip { } }//package
Section 334
//CellRenderer_selectedUpSkin (CellRenderer_selectedUpSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedUpSkin extends MovieClip { } }//package
Section 335
//CellRenderer_upSkin (CellRenderer_upSkin) package { import flash.display.*; public dynamic class CellRenderer_upSkin extends MovieClip { } }//package
Section 336
//ComboBox_disabledSkin (ComboBox_disabledSkin) package { import flash.display.*; public dynamic class ComboBox_disabledSkin extends MovieClip { } }//package
Section 337
//ComboBox_downSkin (ComboBox_downSkin) package { import flash.display.*; public dynamic class ComboBox_downSkin extends MovieClip { } }//package
Section 338
//ComboBox_overSkin (ComboBox_overSkin) package { import flash.display.*; public dynamic class ComboBox_overSkin extends MovieClip { } }//package
Section 339
//ComboBox_upSkin (ComboBox_upSkin) package { import flash.display.*; public dynamic class ComboBox_upSkin extends MovieClip { } }//package
Section 340
//Constants (Constants) package { public class Constants { public static var STAGE_WIDTH:Number = 620; public static var URL_HIGH_SCORE:String = "http://www.blastone.com/games/lilracerz/showscores.php"; public static var DT:Number = 0.033; public static var EDIT:Boolean = false; public static var FRAME_RATE:int = 31; public static var SHOW_LINES:Boolean = true; public static var NITRO_TIME:int = 3000; public static var URL_MORE_GAMES:String = "http://www.freeonlinegames.com/?lilracerz"; public static var STAGE_HEIGHT:Number = 500; public static var SPEED_MAX:int = 25; public static var ROAM:Boolean = false; public static var POINTS_FIRST:int = 10; public static var VOLUME_MUSIC:Number = 0.9; public static var OPTION_STAGE_QUALITY:String = "MEDIUM"; public static var PHYS_SCALE:Number = 20; public static var VOLUME_SFX:Number = 0.4; public static var DYNAMIC_OBJECT_LIMIT:Number = 200; public static var STATIC_OBJECT_LIMIT:Number = 300; public static var RECORD:int = 100; public static var RACE_TIMEOUT:int = 5000; public static var POINTS_SECOND:int = 6; public static var TRANSPARENCY:Boolean = false; public static var PI2:Number = 1.5707963267949; public static var URL_GAME:String = "http://www.freegamesforyourwebsite.com/click.php?gid=211&area=minilogo2"; public static var RAD2DEG:Number = 57.2957795130823; public static var POINTS_THIRD:int = 4; public static var DEG2RAD:Number = 0.0174532925199433; public static var VEHICLE_MAX_SPEED:Number = 35; public static var URL_SUBMIT_SCORE:String = "http://www.blastone.com/games/lilracerz/submit.php"; public static var NITRO:int = 6; } }//package
Section 341
//Credits (Credits) package { import flash.events.*; import flash.display.*; import game.vehicle.*; import flash.utils.*; import sound.*; import game.track.*; import nochump.util.zip.*; import flash.geom.*; import game.hud.*; import com.markfennell.utils.*; import game.*; import flash.text.*; import org.casalib.display.*; import controls.*; import assets.*; import game.display.*; import flash.net.*; import fl.motion.easing.*; public class Credits extends CasaMovieClip { private var m_destBitmap:CasaBitmap; private var m_trackDisplay:TrackDisplay; private var m_soundControls:SoundControls; private var m_flagBitmapData:BitmapFlag; private var m_btnBlastone:SimpleButton; private var m_musicControls:MusicControls; private var m_standingsDisplay:StandingsDisplay; private var m_container:CasaSprite; private var m_submitDisplay:SubmitDisplay; private var m_soundManager:SoundManager; private var m_btnScores:SimpleButton; private var m_destBitmapData:BitmapData; private var m_ready:MovieClipGetReady; private var m_help:MovieClip; private var m_standings:Standings; private var m_playGame:Boolean; private var m_fx:Fx; private var m_btnPlay:SimpleButton; private var m_carDisplay:CarDisplay; private var m_titleClip:MovieClip; private var m_btnRace:SimpleButton; private var m_flag:Flag; private var m_btnMore:SimpleButton; public static var CAR_SELECTED:String = "carSelected"; public static var STATE_COMPLETE:String = "creditsStateComplete"; public static var CAR_BACK:String = "CarGoBack"; public static var SUBMIT:String = "submit"; public static var STATE_DEFAULT:String = "creditsDefault"; public static var STATE_RACING:String = "creditsStateRacing"; public static var STATE_SUBMIT:String = "creditsStateSubmit"; public static var CONTINUE:String = "continue"; public static var BACK:String = "Back"; public static var TRACK_SELECTED:String = "trackSelected"; public static var STATE:String = STATE_DEFAULT; public static var STATE_STANDINGS:String = "creditsStateStandings"; public static var TRACK_BACK:String = "TrackGoBack"; public function Credits(){ m_fx = new Fx(); super(); m_soundManager = SoundManager.getInstance(); } public function hideControls_COMPLETE():void{ removeChild(m_btnPlay); removeChild(m_btnMore); removeChild(m_help); removeChild(m_btnBlastone); m_soundControls.destroy(); m_musicControls.destroy(); } private function hideCars():void{ Broadcaster.removeEventListener(CAR_SELECTED, playGame); Broadcaster.removeEventListener(CAR_BACK, backCars); m_fx.zoomIn(m_carDisplay, 0, 0.3, m_carDisplay.x, m_carDisplay.y, -1000, m_carDisplay.y, 20, "easeInQuad", hideCars_COMPLETE); } private function hideStandings(_arg1:Event=null):void{ if (_arg1 != null){ trace("HIDE STANDINGS"); m_soundManager.playSound("Click"); showTitle(); showTracks(); STATE = STATE_RACING; }; m_standingsDisplay.removeEventListener(CONTINUE, hideStandings); removeChild(m_standingsDisplay); m_standingsDisplay = null; } public function init(_arg1:Stage):void{ m_destBitmapData = new BitmapData(210, 210, false, 0); m_destBitmap = new CasaBitmap(m_destBitmapData); m_container = new CasaSprite(); addChild(m_container); addEventListener(Event.ENTER_FRAME, render); m_container.addChild(m_destBitmap); m_flagBitmapData = new BitmapFlag(0, 0); m_flag = new Flag(m_flagBitmapData, m_destBitmapData); m_playGame = false; switch (STATE){ case STATE_RACING: showTitle(); showTracks(); break; case STATE_STANDINGS: showStandings(); break; default: reset(); showTitle(); showControls(); break; }; SoundManager.getInstance().start_music(0, true); } private function onZipComplete(_arg1:Event):void{ setStatus("Uncompressing Track Data"); var _local2:URLStream = URLStream(_arg1.target); var _local3:ZipFile = new ZipFile(_local2); var _local4:ZipEntry = _local3.entries[0]; var _local5:ByteArray = _local3.getInput(_local4); Track._XML = new XML(_local5.toString()); showControls(); } override public function destroy():void{ m_flagBitmapData.dispose(); removeEventListener(Event.ENTER_FRAME, render); m_container.removeChild(m_destBitmap); m_destBitmap = null; m_destBitmapData.dispose(); m_flag.destroy(); m_container.destroy(); super.destroy(); } private function render(_arg1:Event):void{ m_flag.render(); var _local2:* = new Matrix(); _local2.scale(3, 3); m_container.transform.matrix = _local2; } private function hideControls():void{ m_btnPlay.removeEventListener(MouseEvent.CLICK, showTracks); m_btnMore.removeEventListener(MouseEvent.CLICK, handleMoreGamesClick); m_fx.zoomIn(m_btnBlastone, 0.1, 0.4, m_btnBlastone.x, m_btnBlastone.y, -500, m_btnBlastone.y, 20, "easeOutQuad", null); m_fx.zoomIn(m_btnPlay, 0.1, 0.4, m_btnPlay.x, m_btnPlay.y, -500, m_btnPlay.y, 20, "easeOutQuad", null); m_fx.zoomIn(m_btnMore, 0.1, 0.4, m_btnMore.x, m_btnMore.y, -500, m_btnMore.y, 20, "easeOutQuad", null); m_fx.zoomIn(m_help, 0.1, 0.4, m_help.x, m_help.y, -500, m_help.y, 20, "easeOutQuad", hideControls_COMPLETE); } private function setStatus(_arg1:String):void{ trace(("STATUS " + _arg1)); } private function showStandings(_arg1:MouseEvent=null):void{ m_soundManager.playSound("Click"); m_standingsDisplay = new StandingsDisplay(); m_standingsDisplay.y = 0; addChild(m_standingsDisplay); m_standingsDisplay.addEventListener(CONTINUE, hideStandings); m_standingsDisplay.addEventListener(SUBMIT, showSubmit); } private function hideTitle():void{ m_titleClip.btnFOG.removeEventListener(MouseEvent.CLICK, handleMoreGamesClick); m_fx.zoomIn(m_titleClip, 0, 0.3, 310, 70, -2000, 70, 20, "easeOutQuad", null); } private function backCars(_arg1:Event):void{ hideCars(); m_soundManager.playSound("Click"); var _local2:Track = Track.getTrackData(User.getInstance().trackID); User.getInstance().addMoney(_local2.entry); showTracks(); } private function handleScoresClick(_arg1:MouseEvent):void{ m_soundManager.playSound("Click"); var _local2:URLRequest = new URLRequest(Constants.URL_HIGH_SCORE); navigateToURL(_local2, "_blank"); } private function showCars(_arg1:Event):void{ hideTracks(); m_carDisplay = new CarDisplay(); m_carDisplay.y = 0; addChild(m_carDisplay); Broadcaster.addEventListener(CAR_SELECTED, playGame); Broadcaster.addEventListener(CAR_BACK, backCars); } private function handleMoreGamesClick(_arg1:MouseEvent):void{ m_soundManager.playSound("Click"); var _local2:URLRequest = new URLRequest(Constants.URL_MORE_GAMES); navigateToURL(_local2, "_blank"); } public function hideCars_COMPLETE():void{ m_carDisplay.destroy(); if (m_playGame){ GameManager.getInstance().setState("Game"); }; } private function reset():void{ m_standings = new Standings(); User.getInstance().init(); } private function onTrackDataComplete(_arg1:Event):void{ m_standings = new Standings(); User.getInstance().init(); } private function showTitle():void{ m_titleClip = new MovieClipTitle(); addChild(m_titleClip); m_fx.zoomIn(m_titleClip, 0.4, 0.3, 2000, 70, 310, 70, 20, "easeOutQuad", null); m_titleClip.btnFOG.buttonMode = true; m_titleClip.btnFOG.useHandCursor; m_titleClip.btnFOG.addEventListener(MouseEvent.CLICK, handleMoreGamesClick); } private function showControls():void{ reset(); m_btnBlastone = new buttonBlastone(); addChild(m_btnBlastone); m_btnBlastone.enabled = false; m_fx.zoomIn(m_btnBlastone, 0.3, 0.3, 2000, 110, 310, 110, 20, "easeOutQuad", null); m_btnPlay = new ButtonPlay(); addChild(m_btnPlay); m_btnPlay.addEventListener(MouseEvent.CLICK, showTracks); m_fx.zoomIn(m_btnPlay, 0.5, 0.3, 2000, 160, 310, 160, 20, "easeOutQuad", null); m_btnMore = new ButtonMoreGames(); addChild(m_btnMore); m_btnMore.addEventListener(MouseEvent.CLICK, handleMoreGamesClick); m_fx.zoomIn(m_btnMore, 0.9, 0.3, 2000, 260, 310, 260, 20, "easeOutQuad", null); m_help = new MovieClipHelp(); addChild(m_help); m_fx.zoomIn(m_help, 1.1, 0.3, 2000, 340, 310, 340, 20, "easeOutQuad", null); m_soundControls = new SoundControls(m_help.btnSounds); m_musicControls = new MusicControls(m_help.btnMusic); } private function playGame(_arg1:Event=null):void{ m_playGame = true; m_ready = new MovieClipGetReady(); addChild(m_ready); m_fx.zoomIn(m_ready, 0, 0.3, 1000, 310, 310, 310, 20, "easeInQuad", null); hideCars(); } private function hideTracks():void{ m_fx.zoomIn(m_trackDisplay, 0, 0.4, m_trackDisplay.x, m_trackDisplay.y, -1000, m_trackDisplay.y, 20, "easeOutQuad", hideTracks_COMPLETE); Broadcaster.removeEventListener(TRACK_SELECTED, showCars); Broadcaster.removeEventListener(TRACK_BACK, backTracks); } private function hideTracks_COMPLETE():void{ trace("hideTracks_COMPLETE"); m_trackDisplay.destroy(); } private function backTracks(_arg1:Event):void{ hideTracks(); showControls(); } private function showTracks(_arg1:MouseEvent=null):void{ m_soundManager.playSound("Click"); if (_arg1 != null){ hideControls(); }; m_trackDisplay = new TrackDisplay(); m_trackDisplay.y = 0; m_trackDisplay.x = 0; addChild(m_trackDisplay); Broadcaster.addEventListener(TRACK_SELECTED, showCars); Broadcaster.addEventListener(TRACK_BACK, backTracks); } private function showSubmit(_arg1:Event):void{ trace("SHOW SUBMIT"); m_soundManager.playSound("Click"); hideStandings(); m_submitDisplay = new SubmitDisplay(); m_submitDisplay.y = 0; addChild(m_submitDisplay); m_submitDisplay.addEventListener(CONTINUE, hideSubmit); } private function onVehicleDataComplete(_arg1:Event):void{ VehicleManager._XML = new XML(_arg1.target.data); if (Constants.TRANSPARENCY){ User.getInstance().trackID = 0; User.getInstance().carID = 0; GameManager.getInstance().setState("Game"); } else { showControls(); }; } private function hideSubmit(_arg1:Event):void{ m_submitDisplay.removeEventListener(CONTINUE, hideSubmit); m_submitDisplay.destroy(); m_soundManager.playSound("Click"); showTitle(); showTracks(); STATE = STATE_RACING; } } }//package
Section 342
//EmbeddedData (EmbeddedData) package { public class EmbeddedData { public static var obstacleXML:XML = <obstacles> <obstacle name="Cone" sprite="assets.MovieClipObstacleCone" width="5" height="5" type="rectangle" mass="0.5"></obstacle> <obstacle name="Tyres" sprite="assets.MovieClipObstacleTyres" width="10" height="15" type="rectangle" mass="0"></obstacle> <obstacle name="Bush 1" sprite="assets.MovieClipObstacleBush_1" width="34" height="18" type="rectangle" mass="0"></obstacle> <obstacle name="Bush 2" sprite="assets.MovieClipObstacleBush_2" width="25" height="13" type="rectangle" mass="0"></obstacle> <obstacle name="Rock 1" sprite="assets.MovieClipObstacleRock_1" width="35" height="23" type="rectangle" mass="0"></obstacle> <obstacle name="Rock 2" sprite="assets.MovieClipObstacleRock_2" width="14" height="14" type="rectangle" mass="0"></obstacle> <obstacle name="Rock 3" sprite="assets.MovieClipObstacleRock_3" width="15" height="9" type="rectangle" mass="0"></obstacle> <obstacle name="Rock 4" sprite="assets.MovieClipObstacleRock_4" width="23" height="23" type="rectangle" mass="0"></obstacle> <obstacle name="Rock 5" sprite="assets.MovieClipObstacleRock_5" width="84" height="52" type="rectangle" mass="0"></obstacle> <obstacle name="Rock 6" sprite="assets.MovieClipObstacleRock_6" width="114" height="114" type="rectangle" mass="0"></obstacle> <obstacle name="Rock 7" sprite="assets.MovieClipObstacleRock_7" width="18" height="13" type="rectangle" mass="0"></obstacle> <obstacle name="Rock 8" sprite="assets.MovieClipObstacleRock_8" width="30" height="30" type="rectangle" mass="0"></obstacle> <obstacle name="Rock 9" sprite="assets.MovieClipObstacleRock_9" width="70" height="60" type="rectangle" mass="0"></obstacle> <obstacle name="Pond" sprite="assets.MovieClipObstaclePond" width="100" height="100" type="rectangle" mass="0"></obstacle> <obstacle name="Tree 1" sprite="assets.MovieClipObstacleTree_1" width="10" height="10" type="rectangle" mass="0"></obstacle> <obstacle name="Tree 2" sprite="assets.MovieClipObstacleTree_2" width="10" height="10" type="rectangle" mass="0"></obstacle> <obstacle name="Tree 3" sprite="assets.MovieClipObstacleTree_3" width="10" height="10" type="rectangle" mass="0"></obstacle> <obstacle name="Tree 4" sprite="assets.MovieClipObstacleTree_4" width="10" height="10" type="rectangle" mass="0"></obstacle> <obstacle name="Tree 5" sprite="assets.MovieClipObstacleTree_5" width="10" height="10" type="rectangle" mass="0"></obstacle> <obstacle name="Tree 6" sprite="assets.MovieClipObstacleTree_6" width="10" height="10" type="rectangle" mass="0"></obstacle> <obstacle name="Tree Snow" sprite="assets.MovieClipObstacleTreeSnow1" width="10" height="10" type="rectangle" mass="0"></obstacle> </obstacles> ; public static var vehicleXML:XML = <vehicles> <vehicle> <type>impreza</type> <name>Blue Speeder</name> <description>A well balanced car with smooth handling, a solid engine and good acceleration.</description> <locked>false</locked> <sprite>assets.MovieClipCarImpreza</sprite> <speed_max>25</speed_max> <acceleration_forward>18</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.25</damping_linear> <damping_angular>7</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>12</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </vehicle> <vehicle> <type>focus</type> <name>Pocket Racer</name> <description>Small and agile, a fast motor and good traction. Win The "Desert Drag" to unlock.</description> <locked>true</locked> <sprite>assets.MovieClipCarFocus</sprite> <speed_max>26</speed_max> <acceleration_forward>18</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.25</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>15</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.6</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </vehicle> <vehicle> <type>skoda</type> <name>Green Machine</name> <description>Excellent Handling, fast in the corners nice, good grip. Win "The Black Forest" to unlock.</description> <locked>true</locked> <sprite>assets.MovieClipCarSkoda</sprite> <speed_max>26</speed_max> <acceleration_forward>19</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.25</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>15</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.6</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </vehicle> <vehicle> <type>lancer</type> <name>Red Rager</name> <description>High performance rally car. Can be heavy in the turns. Choice of champions. Win the "Scandinavian Flick" to Unlock.</description> <locked>true</locked> <sprite>assets.MovieClipCarLancer</sprite> <speed_max>27</speed_max> <acceleration_forward>19.5</acceleration_forward> <acceleration_nitro>32</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.25</damping_linear> <damping_angular>9</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>20</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.6</steering_range> <steering_increment>0.07</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </vehicle> <vehicle> <type>celica</type> <name>Skidmaster</name> <description>A nice fast car. Skilled control is needed to avoid spinning it out of control. Win the "Frozen Tundra" to unlock.</description> <locked>true</locked> <sprite>assets.MovieClipCarCelica</sprite> <speed_max>27</speed_max> <acceleration_forward>19.5</acceleration_forward> <acceleration_nitro>32</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.25</damping_linear> <damping_angular>9</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>30</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.6</steering_range> <steering_increment>0.061</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </vehicle> <vehicle> <type>alfa</type> <name>The Fireball</name> <description>An excellent racer. Fast, good in the turn and excellent grip. Win the "GYW Classic" to unlock.</description> <locked>true</locked> <sprite>assets.MovieClipCarAlfa</sprite> <speed_max>26</speed_max> <acceleration_forward>21</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>40</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>8</grip_reverse> <steering_range>0.6</steering_range> <steering_increment>0.062</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </vehicle> </vehicles> ; public static var tracksXML:XML = <tracks> <track> <name>Training Track</name> <advice>Get familiar with your car. Practice sliding, and using your Nitro for boost.</advice> <description>Rally training 101. Hone your skills and get familiar with your car's handling here. Asphalt road, suuny conditions.</description> <laps>1</laps> <conditions>SUNNY</conditions> <effects grip_modifier="0" speed_modifier="0">dust</effects> <start x="900" y="525" angle="0"></start> <unlock></unlock> <locked>false</locked> <tilemap width="400" height="400" blank="14" background="BackgroundDesert" road="RoadTarmac"> <tiles>21,21,21,21,21,21,21,12,16,17,13</tiles> <tiles>12,16,1,17,13,21,14,15,6,5,18</tiles> <tiles>15,6,21,5,23,1,1,11,21,14,8</tiles> <tiles>8,21,14,21,14,14,21,21,14,21,8</tiles> <tiles>22,13,21,14,14,14,20,14,20,12,25</tiles> <tiles>5,23,1,1,1,1,27,28,1,24,6</tiles> <tiles>14,20,21,20,21,21,21,20,21,20,14</tiles> </tilemap> <obstacles> <obstacle sprite="assets.MovieClipObstacleRock_3" x="2029" y="1091" width="15" height="9" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="78" y="1879" width="34" height="18" type="rectangle" mass="0" angle="20"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="961" y="2034" width="10" height="10" type="rectangle" mass="0" angle="30"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_3" x="2484" y="1360" width="15" height="9" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="3727" y="377" width="10" height="10" type="rectangle" mass="0" angle="40"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="855" y="390" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_4" x="3117" y="2047" width="23" height="23" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="2888" y="2023" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="2815" y="2034" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_2" x="2513" y="1364" width="14" height="14" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="1714" y="1102" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_3" x="2482" y="1277" width="15" height="9" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="541" y="435" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="2661" y="1117" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="1976" y="1127" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="4062" y="925" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="2702" y="2403" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="2193" y="1162" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="3827" y="429" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="3074" y="291" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="362" y="1775" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="2782" y="709" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="2661" y="693" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="3349" y="87" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="55" y="1116" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="2725" y="2059" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> </obstacles> <checkpoints> <checkpoint sprite="assets.MovieClipObstacleFinish" x="910" y="603" width="10" height="200" type="checkpoint" mass="0" angle="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1922" y="1000" width="10" height="200" type="checkpoint" mass="0" angle="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="2995" y="820" width="10" height="200" type="checkpoint" mass="0" angle="-80"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="3569" y="202" width="10" height="200" type="checkpoint" mass="0" angle="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="4197" y="675" width="10" height="200" type="checkpoint" mass="0" angle="70"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="4109" y="1869" width="10" height="200" type="checkpoint" mass="0" angle="130"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="3654" y="2186" width="10" height="200" type="checkpoint" mass="0" angle="180"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="3217" y="2180" width="10" height="200" type="checkpoint" mass="0" angle="180"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="2558" y="2246" width="10" height="200" type="checkpoint" mass="0" angle="200"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="470" y="2076" width="10" height="200" type="checkpoint" mass="0" angle="230"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="215" y="1634" width="10" height="200" type="checkpoint" mass="0" angle="270"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="258" y="947" width="10" height="200" type="checkpoint" mass="0" angle="-50"></checkpoint> </checkpoints> <!-- PLAYER specific values are put in here to allow for tweaking and race editing --> <racers> <racer/> </racers> <waypoints> <waypoint x="913" y="609" angle="-90"></waypoint> <waypoint x="1221" y="602" angle="-90"></waypoint> <waypoint x="1442" y="641" angle="-50"></waypoint> <waypoint x="1667" y="872" angle="-40"></waypoint> <waypoint x="1922" y="994" angle="-90"></waypoint> <waypoint x="2848" y="996" angle="-90"></waypoint> <waypoint x="2990" y="816" angle="-180"></waypoint> <waypoint x="3086" y="501" angle="-140"></waypoint> <waypoint x="3339" y="254" angle="-130"></waypoint> <waypoint x="3577" y="223" angle="-90"></waypoint> <waypoint x="3883" y="293" angle="-40"></waypoint> <waypoint x="4071" y="460" angle="-40"></waypoint> <waypoint x="4213" y="661" angle="-20"></waypoint> <waypoint x="4212" y="850" angle="0"></waypoint> <waypoint x="4202" y="1685" angle="0"></waypoint> <waypoint x="4117" y="1885" angle="40"></waypoint> <waypoint x="3936" y="2046" angle="50"></waypoint> <waypoint x="3657" y="2193" angle="90"></waypoint> <waypoint x="3204" y="2193" angle="90"></waypoint> <waypoint x="2947" y="2151" angle="90"></waypoint> <waypoint x="2742" y="2202" angle="60"></waypoint> <waypoint x="2543" y="2214" angle="110"></waypoint> <waypoint x="2337" y="2192" angle="90"></waypoint> <waypoint x="840" y="2193" angle="100"></waypoint> <waypoint x="470" y="2076" angle="140"></waypoint> <waypoint x="245" y="1829" angle="140"></waypoint> <waypoint x="215" y="1634" angle="180"></waypoint> <waypoint x="218" y="1138" angle="180"></waypoint> <waypoint x="259" y="944" angle="-150"></waypoint> <waypoint x="561" y="658" angle="-130"></waypoint> </waypoints> </track> <track> <name>Desert Drag</name> <advice>Got the hang of it now? Now race for real. Watch the corners... you might want to slow for them.</advice> <description>Ready to pay to play? Take on the real race circuit. Don't get caught in the pack... Win this race to unlock a new car. Fine dusty desert conditions.</description> <laps>3</laps> <conditions>SUNNY</conditions> <effects grip_modifier="0" speed_modifier="0">dust</effects> <unlock>focus</unlock> <start x="515" y="3660" angle="0"></start> <tilemap width="400" height="400" blank="14" background="BackgroundDesert" road="RoadDesert"> <tiles>14,3,1,17,13,14,14</tiles> <tiles>14,10,4,5,18,14,14</tiles> <tiles>14,12,25,14,8,14,14</tiles> <tiles>12,9,6,12,25,14,14</tiles> <tiles>15,6,3,24,6,14,14</tiles> <tiles>22,13,10,1,17,13,14</tiles> <tiles>5,18,14,14,5,18,14</tiles> <tiles>12,25,3,4,12,25,14</tiles> <tiles>15,6,8,10,24,6,14</tiles> <tiles>10,1,11,14,20,14,14</tiles> <tiles>14,14,14,14,14,14,20</tiles> </tilemap> <obstacles> <obstacle sprite="assets.MovieClipObstacleTree_2" x="2661" y="1118" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="1347" y="1925" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="1462" y="1917" width="34" height="18" type="rectangle" mass="0" angle="-28"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="1585" y="1325" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="1952" y="759" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="1590" y="624" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="811" y="346" width="34" height="18" type="rectangle" mass="0" angle="20"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="765" y="376" width="34" height="18" type="rectangle" mass="0" angle="50"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="521" y="628" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="1194" y="1029" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="1175" y="757" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="315" y="1440" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="472" y="1752" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="188" y="2401" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="430" y="2723" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="642" y="3423" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_1" x="526" y="3307" width="35" height="23" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_1" x="464" y="2815" width="35" height="23" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_1" x="1051" y="49" width="35" height="23" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_1" x="1676" y="758" width="35" height="23" type="rectangle" mass="0" angle="70"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_2" x="1290" y="1903" width="14" height="14" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_3" x="895" y="2195" width="15" height="9" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_3" x="980" y="2222" width="15" height="9" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_3" x="1101" y="2305" width="15" height="9" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_4" x="1700" y="2354" width="23" height="23" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_4" x="2081" y="2744" width="23" height="23" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_4" x="2207" y="3227" width="23" height="23" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_4" x="1863" y="3083" width="23" height="23" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_4" x="1386" y="3459" width="23" height="23" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="773" y="3567" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="433" y="2123" width="84" height="52" type="rectangle" mass="0" angle="50"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="1360" y="404" width="84" height="52" type="rectangle" mass="0" angle="40"></obstacle> <obstacle sprite="assets.MovieClipObstacleCone" x="640" y="4008" width="5" height="5" type="rectangle" mass="0.5" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleCone" x="1432" y="2474" width="5" height="5" type="rectangle" mass="0.5" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="403" y="3920" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="1160" y="3818" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="842" y="3430" width="10" height="10" type="rectangle" mass="0" angle="-30"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="1665" y="3224" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="2010" y="3459" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="2069" y="2870" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="1359" y="2401" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="886" y="1810" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="1558" y="1485" width="10" height="10" type="rectangle" mass="0" angle="10"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="1776" y="340" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="1065" y="1465" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="918" y="1526" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="364" y="2609" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="48" y="3389" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> </obstacles> <checkpoints> <checkpoint sprite="assets.MovieClipObstacleFinish" x="709" y="3804" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1238" y="3000" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="2150" y="3048" angle="-60" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1858" y="2248" angle="190" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1010" y="2062" angle="260" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1816" y="1219" angle="-90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1280" y="196" angle="180" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="601" y="338" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="982" y="1028" angle="120" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="210" y="1918" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="587" y="3014" angle="-50" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="206" y="3545" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> </checkpoints> <!-- PLAYER specific values are put in here to allow for tweaking and race editing --> <racers> <racer> <type>impreza</type> <sprite>assets.MovieClipCarImpreza</sprite> <speed_max>20</speed_max> <acceleration_forward>17</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>5</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>focus</type> <sprite>assets.MovieClipCarFocus</sprite> <speed_max>21</speed_max> <acceleration_forward>16.5</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>5</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>skoda</type> <sprite>assets.MovieClipCarSkoda</sprite> <speed_max>22</speed_max> <acceleration_forward>17</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>5</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>lancer</type> <sprite>assets.MovieClipCarLancer</sprite> <speed_max>23</speed_max> <acceleration_forward>16</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>4</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>celica</type> <sprite>assets.MovieClipCarCelica</sprite> <speed_max>24</speed_max> <acceleration_forward>16</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>5</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>alfa</type> <sprite>assets.MovieClipCarAlfa</sprite> <speed_max>25</speed_max> <acceleration_forward>16.5</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>5</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> </racers> <waypoints> <waypoint x="709" y="3804" angle="-90"></waypoint> <waypoint x="940" y="3780" angle="-130"></waypoint> <waypoint x="1015" y="3547" angle="-180"></waypoint> <waypoint x="1011" y="3141" angle="-180"></waypoint> <waypoint x="1085" y="3026" angle="-130"></waypoint> <waypoint x="1338" y="3045" angle="-50"></waypoint> <waypoint x="1411" y="3238" angle="0"></waypoint> <waypoint x="1491" y="3389" angle="-50"></waypoint> <waypoint x="1822" y="3385" angle="-120"></waypoint> <waypoint x="2161" y="3048" angle="-160"></waypoint> <waypoint x="2223" y="2867" angle="-180"></waypoint> <waypoint x="2193" y="2626" angle="150"></waypoint> <waypoint x="1858" y="2248" angle="120"></waypoint> <waypoint x="1643" y="2187" angle="90"></waypoint> <waypoint x="1171" y="2214" angle="100"></waypoint> <waypoint x="1010" y="2062" angle="170"></waypoint> <waypoint x="1066" y="1848" angle="-140"></waypoint> <waypoint x="1285" y="1803" angle="-90"></waypoint> <waypoint x="1513" y="1721" angle="-140"></waypoint> <waypoint x="1762" y="1445" angle="-150"></waypoint> <waypoint x="1816" y="1219" angle="-180"></waypoint> <waypoint x="1812" y="708" angle="160"></waypoint> <waypoint x="1697" y="496" angle="140"></waypoint> <waypoint x="1453" y="250" angle="130"></waypoint> <waypoint x="1280" y="196" angle="90"></waypoint> <waypoint x="740" y="197" angle="90"></waypoint> <waypoint x="601" y="338" angle="0"></waypoint> <waypoint x="707" y="565" angle="-60"></waypoint> <waypoint x="887" y="614" angle="-70"></waypoint> <waypoint x="1011" y="754" angle="-10"></waypoint> <waypoint x="845" y="1167" angle="50"></waypoint> <waypoint x="982" y="1028" angle="30"></waypoint> <waypoint x="298" y="1716" angle="40"></waypoint> <waypoint x="210" y="1918" angle="0"></waypoint> <waypoint x="243" y="2250" angle="-40"></waypoint> <waypoint x="521" y="2549" angle="-40"></waypoint> <waypoint x="618" y="2760" angle="0"></waypoint> <waypoint x="587" y="3014" angle="30"></waypoint> <waypoint x="284" y="3331" angle="40"></waypoint> <waypoint x="206" y="3545" angle="0"></waypoint> <waypoint x="311" y="3779" angle="-60"></waypoint> </waypoints> </track> <track> <name>The Black Forest</name> <description>A quick night circuit circut through the forest. Good grip on gravel roads. Win this to unlock the Skoda.</description> <advice>Stay focused and watch out for the rocks in this track.</advice> <laps>3</laps> <conditions>NIGHT</conditions> <effects grip_modifier="0" speed_modifier="0">night</effects> <unlock>skoda</unlock> <locked>true</locked> <start x="1770" y="2875" angle="0"></start> <tilemap width="400" height="400" blank="14" background="BackgroundTarmac" road="RoadTarmac"> <tiles>3,1,1,1,17,13,20,21</tiles> <tiles>22,13,14,21,5,18,14,14</tiles> <tiles>5,18,14,14,12,25,14,14</tiles> <tiles>14,8,14,14,15,6,14,14</tiles> <tiles>14,8,14,14,22,13,14,14</tiles> <tiles>14,8,14,14,5,23,17,13</tiles> <tiles>12,25,14,14,14,14,5,18</tiles> <tiles>15,6,14,3,1,1,1,11</tiles> <tiles>22,13,12,25,14,14,21,21</tiles> <tiles>5,23,24,6,14,14,20,21</tiles> <tiles>14,14,14,14,14,14,14,20</tiles> </tilemap> <obstacles> <obstacle sprite="assets.MovieClipObstacleRock_6" x="3026" y="2242" width="114" height="114" type="rectangle" mass="0" angle="20"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_6" x="2055" y="3213" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_4" x="2227" y="2813" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_4" x="2410" y="3186" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_5" x="2532" y="2808" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_5" x="3034" y="3155" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_5" x="3146" y="3129" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_5" x="2744" y="2598" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_5" x="2834" y="2107" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_5" x="2674" y="2072" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_5" x="1987" y="2349" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_5" x="1979" y="1658" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_6" x="1483" y="2818" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_5" x="2436" y="758" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_5" x="1769" y="444" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_5" x="1362" y="9" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_5" x="601" y="486" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_5" x="1881" y="1044" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_5" x="851" y="1800" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_5" x="321" y="3823" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_6" x="1252" y="3903" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_6" x="2085" y="3312" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstaclePond" x="2798" y="3248" width="100" height="100" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstaclePond" x="2757" y="1895" width="100" height="100" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_8" x="1763" y="2779" width="30" height="30" type="rectangle" mass="0" angle="63"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_7" x="2188" y="420" width="18" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_7" x="1107" y="382" width="18" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_7" x="924" y="26" width="18" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_7" x="390" y="992" width="18" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_7" x="754" y="1359" width="18" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstaclePond" x="641" y="3022" width="100" height="100" type="rectangle" mass="0" angle="360"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_8" x="178" y="3670" width="30" height="30" type="rectangle" mass="0" angle="0"></obstacle> </obstacles> <checkpoints> <checkpoint sprite="assets.MovieClipObstacleFinish" x="2074" y="3015" angle="00" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="3027" y="2797" angle="-90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="2180" y="2165" angle="210" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1792" y="1570" angle="270" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="2213" y="859" angle="270" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="359" y="196" angle="180" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="589" y="1062" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="530" y="2659" angle="130" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="205" y="3357" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="783" y="3803" angle="00" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1463" y="3040" angle="-40" width="10" height="200" type="checkpoint" mass="0"></checkpoint> </checkpoints> <!-- PLAYER specific values are put in here to allow for tweaking and race editing --> <racers> <racer> <type>impreza</type> <sprite>assets.MovieClipCarImpreza</sprite> <speed_max>20</speed_max> <acceleration_forward>20.1</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>5</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>focus</type> <sprite>assets.MovieClipCarFocus</sprite> <speed_max>21</speed_max> <acceleration_forward>20.2</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>5</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>skoda</type> <sprite>assets.MovieClipCarSkoda</sprite> <speed_max>22</speed_max> <acceleration_forward>21.25</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>5</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>lancer</type> <sprite>assets.MovieClipCarLancer</sprite> <speed_max>23</speed_max> <acceleration_forward>20.2</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>4</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>celica</type> <sprite>assets.MovieClipCarCelica</sprite> <speed_max>24</speed_max> <acceleration_forward>20.1</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>5</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>alfa</type> <sprite>assets.MovieClipCarAlfa</sprite> <speed_max>25</speed_max> <acceleration_forward>20.1</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>5</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> </racers> <waypoints> <waypoint x="2074" y="3015" angle="-90"></waypoint> <waypoint x="2851" y="3004" angle="-90"></waypoint> <waypoint x="3027" y="2797" angle="-180"></waypoint> <waypoint x="2963" y="2578" angle="150"></waypoint> <waypoint x="2630" y="2243" angle="120"></waypoint> <waypoint x="2180" y="2165" angle="120"></waypoint> <waypoint x="1857" y="1841" angle="150"></waypoint> <waypoint x="1792" y="1570" angle="180"></waypoint> <waypoint x="1963" y="1226" angle="-140"></waypoint> <waypoint x="2213" y="859" angle="180"></waypoint> <waypoint x="2144" y="550" angle="140"></waypoint> <waypoint x="1746" y="197" angle="100"></waypoint> <waypoint x="359" y="196" angle="90"></waypoint> <waypoint x="205" y="339" angle="0"></waypoint> <waypoint x="282" y="704" angle="-40"></waypoint> <waypoint x="589" y="1062" angle="0"></waypoint> <waypoint x="606" y="2436" angle="0"></waypoint> <waypoint x="530" y="2659" angle="40"></waypoint> <waypoint x="231" y="2996" angle="30"></waypoint> <waypoint x="205" y="3357" angle="0"></waypoint> <waypoint x="499" y="3729" angle="-40"></waypoint> <waypoint x="783" y="3803" angle="-90"></waypoint> <waypoint x="1095" y="3731" angle="-130"></waypoint> <waypoint x="1409" y="3347" angle="-160"></waypoint> <waypoint x="1463" y="3040" angle="-130"></waypoint> </waypoints> </track> <track> <name>Al Dakar</name> <description>Long and twisted with plenty of narrow tree sections so watch out! Fast track, watch the early corners, its easy to get pile driven!</description> <advice>The other drivers play dirty on this track. Keep your cool and let them eat your dust.</advice> <laps>3</laps> <conditions>FINE</conditions> <effects grip_modifier="0" speed_modifier="0">dust</effects> <unlock></unlock> <locked>true</locked> <start x="540" y="4080" angle="0"></start> <tilemap width="400" height="400" blank="14" background="BackgroundDesert" road="RoadDesert"> <tiles>20,20,20,20,20,21,20,21,20</tiles> <tiles>21,20,14,21,3,1,1,1,4</tiles> <tiles>14,20,14,21,8,20,12,16,11</tiles> <tiles>3,1,4,12,25,14,15,6,14</tiles> <tiles>22,13,8,15,6,14,8,14,14</tiles> <tiles>5,18,8,8,12,16,11,21,14</tiles> <tiles>14,8,19,8,15,6,14,14,14</tiles> <tiles>14,8,26,8,22,13,14,14,14</tiles> <tiles>12,25,10,11,5,18,21,21,14</tiles> <tiles>15,6,14,14,12,25,20,21,14</tiles> <tiles>10,1,1,1,24,6,14,20,20</tiles> </tilemap> <obstacles> <obstacle sprite="assets.MovieClipObstacleTree_2" x="500" y="500" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="404" y="4007" width="10" height="10" type="rectangle" mass="0" angle="-70"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="1011" y="4050" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="1237" y="4345" width="10" height="10" type="rectangle" mass="0" angle="30"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="1784" y="4041" width="10" height="10" type="rectangle" mass="0" angle="23"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="2105" y="3641" width="10" height="10" type="rectangle" mass="0" angle="-20"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="1671" y="2675" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="2461" y="1994" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="3502" y="1018" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="3411" y="506" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="1895" y="476" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="1549" y="1920" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="1569" y="2513" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="900" y="2957" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="1108" y="2176" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="824" y="1240" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="379" y="1585" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="186" y="2018" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="457" y="2507" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="339" y="3478" width="10" height="10" type="rectangle" mass="0" angle="10"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="93" y="4184" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="902" y="4041" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="1396" y="4069" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="2026" y="4201" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="2058" y="3751" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="2347" y="3701" width="10" height="10" type="rectangle" mass="0" angle="30"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="2210" y="3219" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="1970" y="2599" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="2712" y="2204" width="10" height="10" type="rectangle" mass="0" angle="30"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="2660" y="1098" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="2683" y="436" width="10" height="10" type="rectangle" mass="0" angle="40"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="2799" y="425" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="2204" y="735" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="1791" y="556" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="1306" y="1703" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="1279" y="1803" width="10" height="10" type="rectangle" mass="0" angle="60"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="1270" y="1926" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_4" x="1129" y="2630" width="23" height="23" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_4" x="894" y="2103" width="23" height="23" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_4" x="1128" y="1600" width="23" height="23" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_4" x="957" y="1321" width="23" height="23" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_4" x="459" y="1859" width="23" height="23" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="305" y="2184" width="84" height="52" type="rectangle" mass="0" angle="45"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="560" y="3798" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="2477" y="1693" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="2509" y="1870" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="2007" y="496" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="1157" y="3263" width="25" height="13" type="rectangle" mass="0" angle="20"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="1136" y="3231" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="295" y="3547" width="25" height="13" type="rectangle" mass="0" angle="-1"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="263" y="3576" width="25" height="13" type="rectangle" mass="0" angle="-40"></obstacle> </obstacles> <checkpoints> <checkpoint sprite="assets.MovieClipObstacleFinish" x="714" y="4205" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="2210" y="3701" angle="-90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1868" y="2536" angle="-50" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="2603" y="1785" angle="-90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="3357" y="945" angle="-40" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="3155" y="580" angle="180" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1803" y="734" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1419" y="1807" angle="110" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1226" y="3403" angle="180" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1008" y="2243" angle="270" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="198" y="1577" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="601" y="2751" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="185" y="3964" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> </checkpoints> <!-- PLAYER specific values are put in here to allow for tweaking and race editing --> <racers> <racer> <type>impreza</type> <sprite>assets.MovieClipCarImpreza</sprite> <speed_max>20</speed_max> <acceleration_forward>20</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>8</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>focus</type> <sprite>assets.MovieClipCarFocus</sprite> <speed_max>21</speed_max> <acceleration_forward>21</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>8</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>skoda</type> <sprite>assets.MovieClipCarSkoda</sprite> <speed_max>22</speed_max> <acceleration_forward>21.5</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>10</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>lancer</type> <sprite>assets.MovieClipCarLancer</sprite> <speed_max>23</speed_max> <acceleration_forward>22</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>10</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>celica</type> <sprite>assets.MovieClipCarCelica</sprite> <speed_max>24</speed_max> <acceleration_forward>22</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>3</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>alfa</type> <sprite>assets.MovieClipCarAlfa</sprite> <speed_max>25</speed_max> <acceleration_forward>22</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>8</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> </racers> <waypoints> <waypoint x="714" y="4205" angle="-90"></waypoint> <waypoint x="1766" y="4196" angle="-120"></waypoint> <waypoint x="2010" y="4001" angle="-140"></waypoint> <waypoint x="2210" y="3701" angle="-180"></waypoint> <waypoint x="2158" y="3369" angle="150"></waypoint> <waypoint x="1804" y="2927" angle="180"></waypoint> <waypoint x="1868" y="2536" angle="-140"></waypoint> <waypoint x="2234" y="2203" angle="-120"></waypoint> <waypoint x="2565" y="2135" angle="-150"></waypoint> <waypoint x="2603" y="1785" angle="-180"></waypoint> <waypoint x="2630" y="1394" angle="-140"></waypoint> <waypoint x="2981" y="1028" angle="-120"></waypoint> <waypoint x="3357" y="945" angle="-130"></waypoint> <waypoint x="3374" y="678" angle="140"></waypoint> <waypoint x="3155" y="580" angle="90"></waypoint> <waypoint x="2016" y="584" angle="90"></waypoint> <waypoint x="1803" y="734" angle="0"></waypoint> <waypoint x="1802" y="1354" angle="0"></waypoint> <waypoint x="1668" y="1526" angle="60"></waypoint> <waypoint x="1419" y="1807" angle="20"></waypoint> <waypoint x="1401" y="2188" angle="0"></waypoint> <waypoint x="1397" y="3248" angle="0"></waypoint> <waypoint x="1226" y="3403" angle="90"></waypoint> <waypoint x="1011" y="3248" angle="180"></waypoint> <waypoint x="1056" y="2968" angle="-180"></waypoint> <waypoint x="948" y="2610" angle="-170"></waypoint> <waypoint x="1008" y="2243" angle="180"></waypoint> <waypoint x="1006" y="1565" angle="-180"></waypoint> <waypoint x="832" y="1400" angle="100"></waypoint> <waypoint x="333" y="1399" angle="70"></waypoint> <waypoint x="198" y="1577" angle="0"></waypoint> <waypoint x="274" y="1886" angle="-40"></waypoint> <waypoint x="591" y="2242" angle="-20"></waypoint> <waypoint x="601" y="2751" angle="0"></waypoint> <waypoint x="596" y="3319" angle="20"></waypoint> <waypoint x="377" y="3623" angle="40"></waypoint> <waypoint x="185" y="3964" angle="0"></waypoint> <waypoint x="289" y="4182" angle="-50"></waypoint> </waypoints> </track> <track> <name>Scandinavian Flick</name> <description>Slippery and treacherous, watch your backend as you drift the corners. Win this race to unlock the Lancer</description> <advice>Lots of corners and icy conditions make this track slippery and dangerous. Be careful</advice> <laps>3</laps> <conditions>SNOW</conditions> <effects grip_modifier="-0.25" speed_modifier="0">dust</effects> <unlock>lancer</unlock> <locked>true</locked> <start x="2100" y="85" angle="0"></start> <tilemap width="400" height="400" blank="14" background="BackgroundSnow" road="RoadSnow"> <tiles>21,21,12,16,1,1,1,4</tiles> <tiles>21,14,15,6,21,21,12,25</tiles> <tiles>21,14,8,21,12,16,24,6</tiles> <tiles>12,16,11,12,9,6,21,21</tiles> <tiles>15,6,21,15,6,21,21,21</tiles> <tiles>19,3,1,11,12,16,17,13</tiles> <tiles>26,10,4,12,9,6,5,18</tiles> <tiles>10,4,10,24,6,14,3,11</tiles> <tiles>3,11,14,14,14,14,8,14</tiles> <tiles>8,3,27,28,17,13,8,14</tiles> <tiles>10,11,14,14,5,23,11,14</tiles> </tilemap> <obstacles> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="0" y="0" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="3041" y="824" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="1836" y="1110" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="1404" y="2329" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="442" y="2280" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="2564" y="2363" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="2809" y="4064" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="2133" y="3788" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="2318" y="3952" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="1830" y="4218" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="1778" y="4161" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="1616" y="4207" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="1474" y="4288" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="1339" y="4243" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="1246" y="3544" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="1097" y="3558" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="807" y="4174" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="710" y="3501" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="751" y="3055" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="704" y="2912" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="266" y="3229" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="426" y="2803" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="55" y="2999" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="9" y="2539" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="245" y="1374" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="313" y="1248" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="40" y="1272" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="135" y="1395" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="16" y="1524" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="489" y="1181" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="1250" y="1394" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="1266" y="1261" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="1315" y="1023" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="1281" y="841" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="779" y="738" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="781" y="609" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="807" y="437" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="1330" y="587" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="1445" y="553" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="1495" y="449" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="1533" y="-63" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="1668" y="-61" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="1789" y="-61" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTreeSnow1" x="1889" y="-22" width="10" height="10" type="rectangle" mass="0" angle="0"></obstacle> </obstacles> <checkpoints> <checkpoint sprite="assets.MovieClipObstacleFinish" x="2192" y="195" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="3008" y="568" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="2198" y="1019" angle="-30" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1403" y="2091" angle="-60" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="601" y="2314" angle="-90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1126" y="2986" angle="20" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="2326" y="2185" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="3009" y="2767" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="2613" y="3200" angle="-90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="2156" y="4179" angle="30" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1016" y="3883" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="421" y="4205" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="604" y="3195" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="264" y="2582" angle="80" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="619" y="1400" angle="-30" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1428" y="197" angle="-30" width="10" height="200" type="checkpoint" mass="0"></checkpoint> </checkpoints> <!-- PLAYER specific values are put in here to allow for tweaking and race editing --> <racers> <racer> <type>impreza</type> <sprite>assets.MovieClipCarImpreza</sprite> <speed_max>20</speed_max> <acceleration_forward>20</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>8</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>focus</type> <sprite>assets.MovieClipCarFocus</sprite> <speed_max>21</speed_max> <acceleration_forward>21</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>8</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>skoda</type> <sprite>assets.MovieClipCarSkoda</sprite> <speed_max>22</speed_max> <acceleration_forward>21.5</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>10</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>lancer</type> <sprite>assets.MovieClipCarLancer</sprite> <speed_max>23</speed_max> <acceleration_forward>22</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>10</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>celica</type> <sprite>assets.MovieClipCarCelica</sprite> <speed_max>24</speed_max> <acceleration_forward>22</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>3</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>alfa</type> <sprite>assets.MovieClipCarAlfa</sprite> <speed_max>25</speed_max> <acceleration_forward>22</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>8</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> </racers> <waypoints> <waypoint x="2192" y="195" angle="-90"></waypoint> <waypoint x="2842" y="180" angle="-90"></waypoint> <waypoint x="2991" y="304" angle="0"></waypoint> <waypoint x="3008" y="568" angle="0"></waypoint> <waypoint x="2823" y="794" angle="-140"></waypoint> <waypoint x="2564" y="995" angle="-110"></waypoint> <waypoint x="2198" y="1019" angle="-120"></waypoint> <waypoint x="1665" y="1531" angle="-140"></waypoint> <waypoint x="1419" y="1829" angle="-170"></waypoint> <waypoint x="1403" y="2091" angle="-150"></waypoint> <waypoint x="1190" y="2211" angle="-90"></waypoint> <waypoint x="738" y="2198" angle="-90"></waypoint> <waypoint x="601" y="2314" angle="-180"></waypoint> <waypoint x="633" y="2519" angle="140"></waypoint> <waypoint x="889" y="2627" angle="120"></waypoint> <waypoint x="1010" y="2835" angle="-180"></waypoint> <waypoint x="1126" y="2986" angle="110"></waypoint> <waypoint x="1425" y="2979" angle="60"></waypoint> <waypoint x="1752" y="2649" angle="40"></waypoint> <waypoint x="2073" y="2308" angle="40"></waypoint> <waypoint x="2326" y="2185" angle="90"></waypoint> <waypoint x="2663" y="2255" angle="130"></waypoint> <waypoint x="2951" y="2564" angle="140"></waypoint> <waypoint x="3009" y="2767" angle="180"></waypoint> <waypoint x="2967" y="2945" angle="-140"></waypoint> <waypoint x="2721" y="3013" angle="-110"></waypoint> <waypoint x="2613" y="3200" angle="-180"></waypoint> <waypoint x="2610" y="4055" angle="-180"></waypoint> <waypoint x="2481" y="4189" angle="-100"></waypoint> <waypoint x="2156" y="4179" angle="-60"></waypoint> <waypoint x="1883" y="3900" angle="-50"></waypoint> <waypoint x="1611" y="3789" angle="-80"></waypoint> <waypoint x="1264" y="3765" angle="-100"></waypoint> <waypoint x="1016" y="3771" angle="-90"></waypoint> <waypoint x="708" y="3809" angle="-120"></waypoint> <waypoint x="603" y="3936" angle="-180"></waypoint> <waypoint x="571" y="4133" angle="-140"></waypoint> <waypoint x="421" y="4205" angle="-90"></waypoint> <waypoint x="215" y="4048" angle="0"></waypoint> <waypoint x="200" y="3540" angle="0"></waypoint> <waypoint x="337" y="3393" angle="70"></waypoint> <waypoint x="548" y="3356" angle="40"></waypoint> <waypoint x="604" y="3195" angle="0"></waypoint> <waypoint x="496" y="3021" angle="-50"></waypoint> <waypoint x="246" y="2928" angle="-50"></waypoint> <waypoint x="200" y="2762" angle="0"></waypoint> <waypoint x="183" y="2587" angle="-10"></waypoint> <waypoint x="215" y="2191" angle="0"></waypoint> <waypoint x="219" y="1790" angle="40"></waypoint> <waypoint x="619" y="1400" angle="60"></waypoint> <waypoint x="960" y="1325" angle="40"></waypoint> <waypoint x="995" y="1016" angle="0"></waypoint> <waypoint x="1043" y="555" angle="30"></waypoint> <waypoint x="1428" y="197" angle="60"></waypoint> </waypoints> </track> <track> <name>Tundra Tussle</name> <description>A fast frozen wasteland. Very barren, just pedal to the metal action. Cut the corners fine and use your nitro to win!</description> <advice>This track is fast. Very fast. You will have to use your racing lines here on the corners to win. Win to unlock the Celica.</advice> <laps>4</laps> <conditions>FINE</conditions> <effects grip_modifier="0" speed_modifier="1">dust</effects> <unlock>celica</unlock> <locked>true</locked> <start x="1350" y="590" angle="-100"></start> <tilemap width="400" height="400" blank="14" background="BackgroundSnow" road="RoadSnow"> <tiles>21,12,16,4,14,21,21,20,21,21,14,20,21</tiles> <tiles>3,24,6,8,12,16,27,28,4,20,20,14,21</tiles> <tiles>19,20,20,10,24,6,14,12,25,20,14,20,20</tiles> <tiles>26,20,21,20,14,14,21,15,6,20,20,21,20</tiles> <tiles>19,20,14,20,21,20,21,10,4,20,20,20,20</tiles> <tiles>26,20,14,3,4,12,16,4,10,27,28,17,13</tiles> <tiles>19,21,14,8,8,15,6,22,13,20,20,5,18</tiles> <tiles>26,12,16,11,8,8,20,5,18,20,21,12,25</tiles> <tiles>10,24,6,14,10,11,20,14,8,20,20,15,6</tiles> <tiles>20,20,20,20,20,20,21,14,10,4,20,8,20</tiles> <tiles>20,20,14,20,20,21,20,20,21,10,1,11,20</tiles> </tilemap> <obstacles> <obstacle sprite="assets.MovieClipObstacleTree_2" x="0" y="0" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> </obstacles> <checkpoints> <checkpoint sprite="assets.MovieClipObstacleFinish" x="1407" y="584" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="678" y="517" angle="140" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="191" y="971" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="203" y="1807" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="211" y="3293" angle="60" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1152" y="3006" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1410" y="2749" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1597" y="2199" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="2008" y="3417" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="2780" y="2193" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="3405" y="3294" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="4242" y="4209" angle="00" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="4613" y="3894" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="4995" y="2962" angle="110" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="4337" y="2167" angle="20" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="3206" y="1781" angle="10" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="3404" y="941" angle="100" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="2947" y="537" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1673" y="1002" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> </checkpoints> <!-- PLAYER specific values are put in here to allow for tweaking and race editing --> <racers> <racer> <type>impreza</type> <sprite>assets.MovieClipCarImpreza</sprite> <speed_max>20</speed_max> <acceleration_forward>21.5</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>15</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>focus</type> <sprite>assets.MovieClipCarFocus</sprite> <speed_max>21</speed_max> <acceleration_forward>22.5</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>15</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>skoda</type> <sprite>assets.MovieClipCarSkoda</sprite> <speed_max>22</speed_max> <acceleration_forward>22.5</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>14</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>lancer</type> <sprite>assets.MovieClipCarLancer</sprite> <speed_max>23</speed_max> <acceleration_forward>23</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>14</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>celica</type> <sprite>assets.MovieClipCarCelica</sprite> <speed_max>24</speed_max> <acceleration_forward>23</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>13</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>alfa</type> <sprite>assets.MovieClipCarAlfa</sprite> <speed_max>25</speed_max> <acceleration_forward>23</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>12</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> </racers> <waypoints> <waypoint x="1405" y="577" angle="0"></waypoint> <waypoint x="1311" y="220" angle="-50"></waypoint> <waypoint x="957" y="254" angle="-130"></waypoint> <waypoint x="678" y="517" angle="-130"></waypoint> <waypoint x="380" y="600" angle="-90"></waypoint> <waypoint x="211" y="727" angle="180"></waypoint> <waypoint x="232" y="971" angle="180"></waypoint> <waypoint x="201" y="1215" angle="180"></waypoint> <waypoint x="232" y="1500" angle="180"></waypoint> <waypoint x="153" y="1807" angle="180"></waypoint> <waypoint x="190" y="2111" angle="180"></waypoint> <waypoint x="202" y="2439" angle="180"></waypoint> <waypoint x="186" y="2874" angle="180"></waypoint> <waypoint x="211" y="3293" angle="150"></waypoint> <waypoint x="412" y="3406" angle="90"></waypoint> <waypoint x="667" y="3363" angle="70"></waypoint> <waypoint x="885" y="3114" angle="50"></waypoint> <waypoint x="1152" y="3006" angle="90"></waypoint> <waypoint x="1362" y="2940" angle="40"></waypoint> <waypoint x="1410" y="2749" angle="0"></waypoint> <waypoint x="1408" y="2335" angle="0"></waypoint> <waypoint x="1597" y="2199" angle="90"></waypoint> <waypoint x="1799" y="2333" angle="180"></waypoint> <waypoint x="1805" y="3237" angle="180"></waypoint> <waypoint x="2008" y="3417" angle="90"></waypoint> <waypoint x="2207" y="3237" angle="0"></waypoint> <waypoint x="2204" y="2881" angle="0"></waypoint> <waypoint x="2285" y="2518" angle="50"></waypoint> <waypoint x="2538" y="2276" angle="70"></waypoint> <waypoint x="2780" y="2193" angle="90"></waypoint> <waypoint x="3003" y="2333" angle="180"></waypoint> <waypoint x="3045" y="2635" angle="140"></waypoint> <waypoint x="3386" y="3009" angle="150"></waypoint> <waypoint x="3405" y="3294" angle="180"></waypoint> <waypoint x="3414" y="3675" angle="150"></waypoint> <waypoint x="3547" y="3809" angle="110"></waypoint> <waypoint x="3755" y="3885" angle="130"></waypoint> <waypoint x="3821" y="4079" angle="150"></waypoint> <waypoint x="3951" y="4212" angle="120"></waypoint> <waypoint x="4242" y="4209" angle="90"></waypoint> <waypoint x="4540" y="4173" angle="60"></waypoint> <waypoint x="4613" y="3894" angle="0"></waypoint> <waypoint x="4613" y="3483" angle="0"></waypoint> <waypoint x="4722" y="3287" angle="40"></waypoint> <waypoint x="4995" y="2962" angle="20"></waypoint> <waypoint x="4997" y="2652" angle="-20"></waypoint> <waypoint x="4860" y="2444" angle="-40"></waypoint> <waypoint x="4613" y="2224" angle="-50"></waypoint> <waypoint x="4367" y="2205" angle="-90"></waypoint> <waypoint x="4046" y="2162" angle="-100"></waypoint> <waypoint x="3785" y="2171" angle="-80"></waypoint> <waypoint x="3594" y="2201" angle="-100"></waypoint> <waypoint x="3430" y="2104" angle="-40"></waypoint> <waypoint x="3381" y="1887" angle="-30"></waypoint> <waypoint x="3206" y="1781" angle="-80"></waypoint> <waypoint x="3023" y="1694" angle="-30"></waypoint> <waypoint x="3006" y="1451" angle="0"></waypoint> <waypoint x="3177" y="1219" angle="40"></waypoint> <waypoint x="3404" y="941" angle="10"></waypoint> <waypoint x="3396" y="709" angle="-20"></waypoint> <waypoint x="3231" y="584" angle="-80"></waypoint> <waypoint x="2947" y="537" angle="-90"></waypoint> <waypoint x="2630" y="665" angle="-80"></waypoint> <waypoint x="2189" y="616" angle="-120"></waypoint> <waypoint x="1978" y="819" angle="-140"></waypoint> <waypoint x="1673" y="1002" angle="90"></waypoint> <waypoint x="1437" y="916" angle="-30"></waypoint> </waypoints> </track> <track> <name>GYW CLASSSIC</name> <advice>Watch out for the narrow rocky stretches, its easy to get stuck. Asphalt means maximum pace.</advice> <description>A fast and manic track. Kudos to Squize for making it.</description> <laps>3</laps> <conditions>SUNNY</conditions> <effects grip_modifier="0" speed_modifier="0">dust</effects> <unlock>alfa</unlock> <locked>true</locked> <start x="1700" y="3800" angle="-180"></start> <tilemap width="400" height="400" blank="14" background="BackgroundDesert" road="RoadTarmac"> <tiles>3,1,1,1,4,14,14,14,14,14,21,21,21,14,14,14,14,14</tiles> <tiles>8,14,14,14,10,27,28,1,17,13,14,14,14,14,14,14,14,14</tiles> <tiles>10,1,4,14,14,14,14,14,5,18,21,21,21,21,21,14,14,14</tiles> <tiles>14,12,25,14,14,14,14,14,14,10,1,17,13,12,16,1,1,4</tiles> <tiles>12,9,6,12,16,1,1,17,13,14,14,5,23,24,6,14,14,8</tiles> <tiles>15,6,12,9,6,14,14,5,2,13,14,3,1,17,13,14,14,19</tiles> <tiles>8,14,15,6,14,14,14,14,5,18,14,19,14,5,2,13,14,26</tiles> <tiles>22,13,10,1,1,17,13,14,14,8,14,26,14,14,5,18,14,19</tiles> <tiles>5,2,13,14,14,5,18,3,1,11,12,25,14,14,14,8,12,25</tiles> <tiles>14,5,23,1,1,1,11,10,1,1,24,6,14,14,14,10,24,6</tiles> </tilemap> <obstacles> <obstacle sprite="assets.MovieClipObstacleRock_5" x="2936" y="779" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="3558" y="1039" width="84" height="52" type="rectangle" mass="0" angle="60"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="3624" y="1310" width="84" height="52" type="rectangle" mass="0" angle="80"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="3695" y="1445" width="84" height="52" type="rectangle" mass="0" angle="40"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="3891" y="1593" width="84" height="52" type="rectangle" mass="0" angle="-20"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="4202" y="1583" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="4446" y="1623" width="84" height="52" type="rectangle" mass="0" angle="-30"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="4738" y="1841" width="84" height="52" type="rectangle" mass="0" angle="40"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="5089" y="1990" width="84" height="52" type="rectangle" mass="0" angle="20"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="5247" y="1993" width="84" height="52" type="rectangle" mass="0" angle="-200"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="5553" y="1929" width="84" height="52" type="rectangle" mass="0" angle="-30"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="5643" y="1822" width="84" height="52" type="rectangle" mass="0" angle="130"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="6173" y="1566" width="84" height="52" type="rectangle" mass="0" angle="-20"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="6641" y="1570" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="6921" y="1250" width="84" height="52" type="rectangle" mass="0" angle="20"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="6172" y="1210" width="84" height="52" type="rectangle" mass="0" angle="-10"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="5535" y="1350" width="84" height="52" type="rectangle" mass="0" angle="-30"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="5198" y="1612" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="4331" y="1194" width="84" height="52" type="rectangle" mass="0" angle="180"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="4180" y="1217" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="3757" y="717" width="84" height="52" type="rectangle" mass="0" angle="40"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="3385" y="442" width="84" height="52" type="rectangle" mass="0" angle="10"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="3095" y="456" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="2781" y="428" width="84" height="52" type="rectangle" mass="0" angle="15"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="2342" y="430" width="84" height="52" type="rectangle" mass="0" angle="-40"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="2212" y="472" width="84" height="52" type="rectangle" mass="0" angle="-10"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="1992" y="299" width="84" height="52" type="rectangle" mass="0" angle="40"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="1633" y="426" width="84" height="52" type="rectangle" mass="0" angle="60"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="1910" y="150" width="84" height="52" type="rectangle" mass="0" angle="60"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="1279" y="20" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="926" y="2" width="84" height="52" type="rectangle" mass="0" angle="20"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="770" y="-4" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="592" y="14" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="65" y="131" width="84" height="52" type="rectangle" mass="0" angle="-60"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="-33" y="640" width="84" height="52" type="rectangle" mass="0" angle="100"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="-18" y="903" width="84" height="52" type="rectangle" mass="0" angle="60"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="67" y="1083" width="84" height="52" type="rectangle" mass="0" angle="50"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="243" y="1187" width="84" height="52" type="rectangle" mass="0" angle="10"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="812" y="1217" width="84" height="52" type="rectangle" mass="0" angle="30"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="749" y="1329" width="84" height="52" type="rectangle" mass="0" angle="120"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="673" y="1411" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="371" y="1657" width="84" height="52" type="rectangle" mass="0" angle="-40"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="281" y="1775" width="84" height="52" type="rectangle" mass="0" angle="-40"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="-7" y="2126" width="84" height="52" type="rectangle" mass="0" angle="-50"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="-61" y="2426" width="84" height="52" type="rectangle" mass="0" angle="60"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="-57" y="2573" width="84" height="52" type="rectangle" mass="0" angle="60"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="-32" y="2819" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="6525" y="1227" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="1748" y="695" width="84" height="52" type="rectangle" mass="0" angle="40"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="416" y="362" width="84" height="52" type="rectangle" mass="0" angle="-70"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="395" y="654" width="84" height="52" type="rectangle" mass="0" angle="80"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="709" y="3216" width="84" height="52" type="rectangle" mass="0" angle="-40"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="800" y="3322" width="84" height="52" type="rectangle" mass="0" angle="40"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="409" y="3493" width="84" height="52" type="rectangle" mass="0" angle="40"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="676" y="3750" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="782" y="3870" width="84" height="52" type="rectangle" mass="0" angle="30"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="975" y="3526" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="1035" y="3978" width="84" height="52" type="rectangle" mass="0" angle="-30"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="1257" y="3972" width="84" height="52" type="rectangle" mass="0" angle="30"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="1523" y="3991" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="1702" y="3595" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="1877" y="3956" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="2130" y="3960" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="2342" y="3967" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="2529" y="3971" width="84" height="52" type="rectangle" mass="0" angle="-20"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="3191" y="3586" width="84" height="52" type="rectangle" mass="0" angle="-30"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="2854" y="3381" width="84" height="52" type="rectangle" mass="0" angle="-60"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="3630" y="3139" width="84" height="52" type="rectangle" mass="0" angle="-10"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="3650" y="2201" width="84" height="52" type="rectangle" mass="0" angle="50"></obstacle> <obstacle sprite="assets.MovieClipObstacleCone" x="1617" y="1514" width="5" height="5" type="rectangle" mass="0.5" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="964" y="356" width="34" height="18" type="rectangle" mass="0" angle="60"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="897" y="345" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="1141" y="356" width="34" height="18" type="rectangle" mass="0" angle="-30"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="1428" y="355" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="2027" y="408" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="1830" y="736" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="2110" y="825" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="2425" y="755" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="2610" y="392" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="3525" y="548" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="3962" y="1133" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="4067" y="1237" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="4053" y="1590" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="5824" y="1608" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="5505" y="1417" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="5640" y="1332" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="6086" y="1544" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="6296" y="1230" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="6378" y="1545" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="7010" y="1317" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="7090" y="1410" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="7185" y="1813" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="6860" y="1990" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="7203" y="2891" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="7173" y="3142" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="6865" y="3227" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="7142" y="3496" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="7112" y="3576" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="6773" y="3918" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="6444" y="3951" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_2" x="6325" y="3955" width="25" height="13" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="6388" y="3433" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="6402" y="3251" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="6056" y="3389" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="6378" y="3076" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="6338" y="3022" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="6012" y="3025" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="6011" y="3095" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="5839" y="2883" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="6053" y="2624" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="5617" y="2617" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="5488" y="2501" width="34" height="18" type="rectangle" mass="0" angle="40"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="5423" y="2472" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="5618" y="2197" width="34" height="18" type="rectangle" mass="0" angle="-50"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="5557" y="2152" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="5068" y="2384" width="34" height="18" type="rectangle" mass="0" angle="30"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="5135" y="2387" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="4378" y="2530" width="34" height="18" type="rectangle" mass="0" angle="80"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="4356" y="2611" width="34" height="18" type="rectangle" mass="0" angle="60"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="4370" y="2694" width="34" height="18" type="rectangle" mass="0" angle="50"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="4794" y="2640" width="34" height="18" type="rectangle" mass="0" angle="60"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="4462" y="2984" width="34" height="18" type="rectangle" mass="0" angle="-1"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="4860" y="2977" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="4863" y="2926" width="34" height="18" type="rectangle" mass="0" angle="2"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="4776" y="3209" width="34" height="18" type="rectangle" mass="0" angle="60"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="4463" y="3044" width="34" height="18" type="rectangle" mass="0" angle="-50"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="4455" y="3198" width="34" height="18" type="rectangle" mass="0" angle="70"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="4466" y="3123" width="34" height="18" type="rectangle" mass="0" angle="80"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="4771" y="3277" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="4469" y="3782" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="3971" y="3975" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="3304" y="3972" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="3000" y="3908" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="3092" y="3934" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="2921" y="3831" width="34" height="18" type="rectangle" mass="0" angle="50"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="2836" y="3575" width="34" height="18" type="rectangle" mass="0" angle="60"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="2821" y="3525" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="2954" y="3309" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="3001" y="3286" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="3428" y="3569" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="3829" y="3543" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="3966" y="3461" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="3658" y="3072" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="3697" y="2272" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="3373" y="2409" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="3084" y="1700" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="3221" y="1794" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="2856" y="1925" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="2301" y="1629" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="1937" y="1979" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="1550" y="1800" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="1163" y="2768" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="993" y="3113" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="957" y="3078" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="1205" y="3184" width="34" height="18" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="1376" y="3199" width="34" height="18" type="rectangle" mass="0" angle="30"></obstacle> <obstacle sprite="assets.MovieClipObstacleBush_1" x="1613" y="3157" width="34" height="18" type="rectangle" mass="0" angle="40"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="2355" y="3490" width="84" height="52" type="rectangle" mass="0" angle="30"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="2357" y="3631" width="84" height="52" type="rectangle" mass="0" angle="-60"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="1956" y="3624" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="536" y="2177" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="424" y="2262" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="896" y="1784" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="978" y="1724" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="1054" y="905" width="84" height="52" type="rectangle" mass="0" angle="40"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="928" y="834" width="84" height="52" type="rectangle" mass="0" angle="30"></obstacle> </obstacles> <checkpoints> <checkpoint sprite="assets.MovieClipObstacleFinish" x="1755" y="3802" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="583" y="3397" angle="50" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="201" y="2583" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="994" y="1377" angle="110" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="196" y="840" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="990" y="201" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1804" y="351" angle="-90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="2220" y="672" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="2959" y="601" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="3807" y="1241" angle="80" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="4695" y="1489" angle="40" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="5446" y="1762" angle="-40" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="6158" y="1395" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="7007" y="1856" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="7005" y="2801" angle="-90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="6932" y="3477" angle="-50" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="6428" y="3797" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="6062" y="2867" angle="50" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="5020" y="2196" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="4550" y="2585" angle="-90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="4431" y="3581" angle="-40" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="3805" y="3796" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="2995" y="3572" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="3811" y="3251" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="3104" y="1902" angle="40" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="2284" y="1804" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1022" y="2881" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="2500" y="3306" angle="50" width="10" height="200" type="checkpoint" mass="0"></checkpoint> </checkpoints> <!-- PLAYER specific values are put in here to allow for tweaking and race editing --> <racers> <racer> <type>impreza</type> <sprite>assets.MovieClipCarImpreza</sprite> <speed_max>20</speed_max> <acceleration_forward>22.5</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>25</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>focus</type> <sprite>assets.MovieClipCarFocus</sprite> <speed_max>21</speed_max> <acceleration_forward>23</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>25</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>skoda</type> <sprite>assets.MovieClipCarSkoda</sprite> <speed_max>22</speed_max> <acceleration_forward>23.5</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>24</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>lancer</type> <sprite>assets.MovieClipCarLancer</sprite> <speed_max>23</speed_max> <acceleration_forward>24</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>24</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>celica</type> <sprite>assets.MovieClipCarCelica</sprite> <speed_max>24</speed_max> <acceleration_forward>24</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>23</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>alfa</type> <sprite>assets.MovieClipCarAlfa</sprite> <speed_max>25</speed_max> <acceleration_forward>24</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.3</damping_linear> <damping_angular>8</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>32</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> </racers> <waypoints> <waypoint x="1755" y="3802" angle="90"></waypoint> <waypoint x="977" y="3754" angle="130"></waypoint> <waypoint x="606" y="3380" angle="140"></waypoint> <waypoint x="227" y="3007" angle="-30"></waypoint> <waypoint x="213" y="2583" angle="0"></waypoint> <waypoint x="252" y="2182" angle="20"></waypoint> <waypoint x="631" y="1766" angle="40"></waypoint> <waypoint x="994" y="1377" angle="20"></waypoint> <waypoint x="1005" y="1122" angle="-20"></waypoint> <waypoint x="823" y="997" angle="-80"></waypoint> <waypoint x="349" y="973" angle="-70"></waypoint> <waypoint x="211" y="842" angle="0"></waypoint> <waypoint x="206" y="333" angle="0"></waypoint> <waypoint x="388" y="212" angle="90"></waypoint> <waypoint x="993" y="216" angle="90"></waypoint> <waypoint x="1655" y="198" angle="90"></waypoint> <waypoint x="1789" y="353" angle="-180"></waypoint> <waypoint x="1890" y="547" angle="140"></waypoint> <waypoint x="2220" y="670" angle="90"></waypoint> <waypoint x="2568" y="539" angle="90"></waypoint> <waypoint x="2959" y="601" angle="90"></waypoint> <waypoint x="3393" y="655" angle="120"></waypoint> <waypoint x="3717" y="948" angle="140"></waypoint> <waypoint x="3794" y="1252" angle="170"></waypoint> <waypoint x="3944" y="1407" angle="110"></waypoint> <waypoint x="4405" y="1408" angle="90"></waypoint> <waypoint x="4684" y="1504" angle="130"></waypoint> <waypoint x="4933" y="1770" angle="130"></waypoint> <waypoint x="5196" y="1814" angle="90"></waypoint> <waypoint x="5446" y="1762" angle="50"></waypoint> <waypoint x="5783" y="1423" angle="60"></waypoint> <waypoint x="6158" y="1395" angle="90"></waypoint> <waypoint x="6833" y="1398" angle="90"></waypoint> <waypoint x="7011" y="1557" angle="-180"></waypoint> <waypoint x="7007" y="1856" angle="180"></waypoint> <waypoint x="6963" y="2180" angle="-180"></waypoint> <waypoint x="7059" y="2551" angle="-180"></waypoint> <waypoint x="7005" y="2801" angle="-180"></waypoint> <waypoint x="6999" y="3169" angle="-180"></waypoint> <waypoint x="6932" y="3477" angle="-140"></waypoint> <waypoint x="6673" y="3748" angle="-140"></waypoint> <waypoint x="6428" y="3797" angle="-90"></waypoint> <waypoint x="6218" y="3656" angle="0"></waypoint> <waypoint x="6201" y="3128" angle="0"></waypoint> <waypoint x="6062" y="2867" angle="-40"></waypoint> <waypoint x="5694" y="2512" angle="-50"></waypoint> <waypoint x="5366" y="2209" angle="-70"></waypoint> <waypoint x="5020" y="2196" angle="-90"></waypoint> <waypoint x="4751" y="2200" angle="-90"></waypoint> <waypoint x="4604" y="2344" angle="-180"></waypoint> <waypoint x="4550" y="2585" angle="-180"></waypoint> <waypoint x="4645" y="2933" angle="-180"></waypoint> <waypoint x="4593" y="3355" angle="-160"></waypoint> <waypoint x="4431" y="3581" angle="-130"></waypoint> <waypoint x="4225" y="3771" angle="-120"></waypoint> <waypoint x="3805" y="3796" angle="-90"></waypoint> <waypoint x="3160" y="3795" angle="-90"></waypoint> <waypoint x="2995" y="3572" angle="0"></waypoint> <waypoint x="3158" y="3398" angle="90"></waypoint> <waypoint x="3668" y="3396" angle="90"></waypoint> <waypoint x="3811" y="3251" angle="0"></waypoint> <waypoint x="3802" y="2672" angle="0"></waypoint> <waypoint x="3568" y="2380" angle="-40"></waypoint> <waypoint x="3104" y="1902" angle="-50"></waypoint> <waypoint x="2854" y="1797" angle="-90"></waypoint> <waypoint x="2284" y="1804" angle="-90"></waypoint> <waypoint x="1852" y="1797" angle="-110"></waypoint> <waypoint x="1607" y="2002" angle="-130"></waypoint> <waypoint x="1067" y="2540" angle="-140"></waypoint> <waypoint x="1022" y="2881" angle="-180"></waypoint> <waypoint x="1239" y="3004" angle="90"></waypoint> <waypoint x="1642" y="2998" angle="90"></waypoint> <waypoint x="2124" y="3006" angle="100"></waypoint> <waypoint x="2500" y="3306" angle="140"></waypoint> <waypoint x="2609" y="3593" angle="-180"></waypoint> <waypoint x="2490" y="3791" angle="-110"></waypoint> </waypoints> </track> <track> <name>Blastone Invitational</name> <description>The toughest track on the circuit. Fast, dusty, fierce competition, are you ready for the FINAL challenge?</description> <advice>This is it, no holds barred pedal to the metal carnage. No mercy, just punch it and go for it!</advice> <laps>3</laps> <conditions>SUNNY</conditions> <effects grip_modifier="0" speed_modifier="0">dust</effects> <unlock></unlock> <locked>true</locked> <start x="4583" y="3300" angle="-95"></start> <tilemap width="400" height="400" blank="14" background="BackgroundDesert" road="RoadDesert"> <tiles>3,4,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14</tiles> <tiles>8,8,14,14,3,27,28,27,28,27,28,17,13,14,14,14,14,14,14</tiles> <tiles>8,10,1,1,11,14,14,14,14,14,14,5,2,13,14,14,14,14,14</tiles> <tiles>8,14,14,14,14,14,14,14,14,14,14,14,5,18,14,14,14,14,14</tiles> <tiles>8,14,12,16,27,28,1,1,4,12,16,17,13,22,13,14,14,14,14</tiles> <tiles>8,14,15,6,14,14,14,14,19,15,6,5,18,5,23,17,13,14,14</tiles> <tiles>8,14,8,14,14,14,14,14,26,8,14,12,25,14,14,5,18,14,14</tiles> <tiles>8,14,22,13,14,14,14,14,10,11,14,15,6,14,14,14,10,17,13</tiles> <tiles>8,14,5,18,14,14,14,14,14,14,14,8,14,14,14,14,14,5,18</tiles> <tiles>22,13,12,25,14,14,14,14,14,14,3,11,14,12,16,17,13,12,25</tiles> <tiles>5,23,24,6,14,14,14,14,14,14,10,1,27,24,6,5,23,24,6</tiles> </tilemap> <obstacles> <obstacle sprite="assets.MovieClipObstacleRock_5" x="4748" y="1707" width="84" height="52" type="rectangle" mass="0" angle="30"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="828" y="2914" width="84" height="52" type="rectangle" mass="0" angle="-80"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="860" y="4010" width="84" height="52" type="rectangle" mass="0" angle="170"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="2109" y="1576" width="84" height="52" type="rectangle" mass="0" angle="-20"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="3662" y="2328" width="10" height="10" type="rectangle" mass="0" angle="-20"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="4765" y="2318" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="4888" y="1807" width="84" height="52" type="rectangle" mass="0" angle="40"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="4531" y="3951" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="4793" y="2440" width="84" height="52" type="rectangle" mass="0" angle="-90"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="5093" y="2794" width="84" height="52" type="rectangle" mass="0" angle="-40"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="3619" y="2016" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="3596" y="1870" width="84" height="52" type="rectangle" mass="0" angle="-80"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="3489" y="1711" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="4651" y="3901" width="84" height="52" type="rectangle" mass="0" angle="-50"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="835" y="2755" width="84" height="52" type="rectangle" mass="0" angle="-80"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="2265" y="1550" width="84" height="52" type="rectangle" mass="0" angle="10"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="4736" y="3789" width="84" height="52" type="rectangle" mass="0" angle="-50"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="1553" y="3947" width="84" height="52" type="rectangle" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="4782" y="3646" width="84" height="52" type="rectangle" mass="0" angle="-70"></obstacle> <obstacle sprite="assets.MovieClipObstacleRock_5" x="4706" y="2205" width="84" height="52" type="rectangle" mass="0" angle="40"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="380" y="3574" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="1550" y="1166" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="4217" y="1973" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="3705" y="3175" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="1993" y="742" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="2770" y="419" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="7043" y="4333" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="3856" y="480" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="3943" y="2270" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="1915" y="1657" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="64" y="1315" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="335" y="2051" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="1509" y="3345" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="654" y="4044" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="1170" y="2335" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="3461" y="729" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="5155" y="2415" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="3933" y="2640" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="3381" y="3125" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="4387" y="3676" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="3931" y="1854" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="7258" y="3451" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="1168" y="2429" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="316" y="980" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="1709" y="1654" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="4782" y="3228" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="6440" y="2768" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="6365" y="2109" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="7223" y="4178" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="2555" y="707" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="3669" y="2631" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="3288" y="3035" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="5642" y="3781" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="709" y="538" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="3549" y="2330" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="6719" y="2712" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="3783" y="3159" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="6266" y="3706" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="4398" y="4052" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="849" y="2334" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="4193" y="4275" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="5784" y="1988" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="970" y="3185" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="2060" y="1940" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="327" y="2648" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="2250" y="1934" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="3110" y="482" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="6795" y="4074" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="4798" y="3339" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_3" x="61" y="3403" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="34" y="2831" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="61" y="473" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_4" x="1210" y="2992" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="1556" y="3642" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="1355" y="1145" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="3612" y="2474" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="371" y="3377" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="5030" y="1943" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="602" y="1095" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="4292" y="717" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="5411" y="2035" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="4456" y="3428" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="1944" y="840" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="66" y="199" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="4344" y="3991" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_3" x="5285" y="984" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="6208" y="2446" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_4" x="4570" y="4368" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="3676" y="2724" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="2677" y="377" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="326" y="780" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_3" x="296" y="4116" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="1104" y="3838" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="1628" y="1963" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="6084" y="3638" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="2725" y="718" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="719" y="4352" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="7412" y="3204" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="1771" y="493" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="6412" y="2688" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="5559" y="1548" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="4538" y="2861" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_3" x="4706" y="921" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="734" y="648" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_4" x="5305" y="1942" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="2632" y="1969" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="6984" y="3199" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_5" x="3374" y="701" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="72" y="1738" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="4226" y="387" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="3945" y="2899" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_5" x="1298" y="3097" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="338" y="3084" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="895" y="884" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_6" x="70" y="1521" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="1406" y="2022" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_3" x="5392" y="1168" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="2801" y="1935" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="5171" y="4354" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="1167" y="3404" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="5140" y="2575" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_4" x="5540" y="3861" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="68" y="255" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="6776" y="2824" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="4516" y="2024" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="7307" y="4086" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="345" y="379" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="1085" y="1877" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="596" y="4332" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="463" y="448" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="1280" y="1697" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="4643" y="842" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="341" y="1905" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="6414" y="2181" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_1" x="7102" y="2929" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="6501" y="4305" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="3651" y="2862" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> <obstacle sprite="assets.MovieClipObstacleTree_2" x="3250" y="1993" width="10" height="10" type="tree" mass="0" angle="0"></obstacle> </obstacles> <checkpoints> <checkpoint sprite="assets.MovieClipObstacleFinish" x="4610" y="3334" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="4995" y="2249" angle="70" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="4475" y="1798" angle="00" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="3616" y="2997" angle="00" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="3393" y="1942" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1896" y="1835" angle="-30" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1180" y="2015" angle="-50" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1392" y="3454" angle="70" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1041" y="4167" angle="-30" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="201" y="3433" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="207" y="1383" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="402" y="198" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="837" y="1014" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="1812" y="845" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="2421" y="591" angle="160" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="4199" y="548" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="5121" y="1135" angle="50" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="5607" y="2023" angle="40" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="6667" y="2965" angle="40" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="7404" y="3764" angle="-70" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="6569" y="4171" angle="20" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="6005" y="3791" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="5016" y="4276" angle="0" width="10" height="200" type="checkpoint" mass="0"></checkpoint> <checkpoint sprite="assets.MovieClipObstacleCheckpoint" x="4218" y="3991" angle="90" width="10" height="200" type="checkpoint" mass="0"></checkpoint> </checkpoints> <!-- PLAYER specific values are put in here to allow for tweaking and race editing --> <racers> <racer> <type>impreza</type> <sprite>assets.MovieClipCarImpreza</sprite> <speed_max>28</speed_max> <acceleration_forward>20.25</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.25</damping_linear> <damping_angular>10</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>55</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>focus</type> <sprite>assets.MovieClipCarFocus</sprite> <speed_max>28</speed_max> <acceleration_forward>18</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.25</damping_linear> <damping_angular>10</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>55</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>skoda</type> <sprite>assets.MovieClipCarSkoda</sprite> <speed_max>27.5</speed_max> <acceleration_forward>20</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.25</damping_linear> <damping_angular>10</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>33</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.6</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>lancer</type> <sprite>assets.MovieClipCarLancer</sprite> <speed_max>27.5</speed_max> <acceleration_forward>22</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.25</damping_linear> <damping_angular>10</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>40</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.6</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>celica</type> <sprite>assets.MovieClipCarCelica</sprite> <speed_max>28</speed_max> <acceleration_forward>18.5</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>15</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.25</damping_linear> <damping_angular>10</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>40</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.8</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> <racer> <type>alfa</type> <sprite>assets.MovieClipCarAlfa</sprite> <speed_max>28</speed_max> <acceleration_forward>20</acceleration_forward> <acceleration_nitro>30</acceleration_nitro> <acceleration_reverse>17</acceleration_reverse> <friction>0.25</friction> <damping_linear>0.25</damping_linear> <damping_angular>10</damping_angular> <damping_linear_reverse>0.5</damping_linear_reverse> <damping_angular_reverse>3</damping_angular_reverse> <grip_front>45</grip_front> <grip_rear>0.5</grip_rear> <grip_reverse>3</grip_reverse> <steering_range>0.7</steering_range> <steering_increment>0.06</steering_increment> <lateral_force>0.64</lateral_force> <width>13</width> <height>26</height> </racer> </racers> <waypoints> <waypoint x="4610" y="3334" angle="0"></waypoint> <waypoint x="4620" y="2954" angle="20"></waypoint> <waypoint x="4986" y="2600" angle="20"></waypoint> <waypoint x="4995" y="2249" angle="-20"></waypoint> <waypoint x="4726" y="1933" angle="-40"></waypoint> <waypoint x="4475" y="1798" angle="-90"></waypoint> <waypoint x="4112" y="1871" angle="-140"></waypoint> <waypoint x="3830" y="2186" angle="-150"></waypoint> <waypoint x="3807" y="2528" angle="-180"></waypoint> <waypoint x="3805" y="2856" angle="-180"></waypoint> <waypoint x="3616" y="2997" angle="-90"></waypoint> <waypoint x="3406" y="2819" angle="0"></waypoint> <waypoint x="3378" y="2322" angle="-20"></waypoint> <waypoint x="3393" y="1942" angle="0"></waypoint> <waypoint x="3222" y="1802" angle="-90"></waypoint> <waypoint x="2435" y="1802" angle="-90"></waypoint> <waypoint x="1874" y="1812" angle="-100"></waypoint> <waypoint x="1446" y="1806" angle="-100"></waypoint> <waypoint x="1180" y="2015" angle="-140"></waypoint> <waypoint x="1011" y="2238" angle="-160"></waypoint> <waypoint x="997" y="2577" angle="-180"></waypoint> <waypoint x="1028" y="3001" angle="160"></waypoint> <waypoint x="1209" y="3233" angle="150"></waypoint> <waypoint x="1392" y="3454" angle="160"></waypoint> <waypoint x="1387" y="3805" angle="-160"></waypoint> <waypoint x="1041" y="4167" angle="-120"></waypoint> <waypoint x="780" y="4195" angle="-90"></waypoint> <waypoint x="508" y="4128" angle="-50"></waypoint> <waypoint x="244" y="3840" angle="-40"></waypoint> <waypoint x="201" y="3433" angle="0"></waypoint> <waypoint x="207" y="2644" angle="0"></waypoint> <waypoint x="207" y="1383" angle="0"></waypoint> <waypoint x="216" y="316" angle="0"></waypoint> <waypoint x="402" y="198" angle="90"></waypoint> <waypoint x="598" y="327" angle="-180"></waypoint> <waypoint x="615" y="872" angle="-180"></waypoint> <waypoint x="837" y="1014" angle="90"></waypoint> <waypoint x="1646" y="1000" angle="90"></waypoint> <waypoint x="1812" y="845" angle="0"></waypoint> <waypoint x="1870" y="631" angle="40"></waypoint> <waypoint x="2146" y="648" angle="120"></waypoint> <waypoint x="2421" y="591" angle="70"></waypoint> <waypoint x="2920" y="637" angle="110"></waypoint> <waypoint x="3383" y="541" angle="90"></waypoint> <waypoint x="3846" y="673" angle="80"></waypoint> <waypoint x="4199" y="548" angle="90"></waypoint> <waypoint x="4634" y="656" angle="130"></waypoint> <waypoint x="5121" y="1135" angle="140"></waypoint> <waypoint x="5393" y="1426" angle="150"></waypoint> <waypoint x="5419" y="1793" angle="160"></waypoint> <waypoint x="5607" y="2023" angle="130"></waypoint> <waypoint x="5901" y="2215" angle="90"></waypoint> <waypoint x="6241" y="2270" angle="130"></waypoint> <waypoint x="6587" y="2622" angle="150"></waypoint> <waypoint x="6667" y="2965" angle="130"></waypoint> <waypoint x="7055" y="3067" angle="130"></waypoint> <waypoint x="7388" y="3444" angle="150"></waypoint> <waypoint x="7404" y="3764" angle="-160"></waypoint> <waypoint x="7205" y="3995" angle="-130"></waypoint> <waypoint x="6996" y="4184" angle="-100"></waypoint> <waypoint x="6569" y="4171" angle="-70"></waypoint> <waypoint x="6243" y="3856" angle="-50"></waypoint> <waypoint x="6005" y="3791" angle="-90"></waypoint> <waypoint x="5750" y="3844" angle="-130"></waypoint> <waypoint x="5558" y="4048" angle="-130"></waypoint> <waypoint x="5273" y="4206" angle="-90"></waypoint> <waypoint x="5016" y="4276" angle="-90"></waypoint> <waypoint x="4772" y="4199" angle="-90"></waypoint> <waypoint x="4306" y="4167" angle="-50"></waypoint> <waypoint x="4218" y="3991" angle="0"></waypoint> <waypoint x="4295" y="3806" angle="60"></waypoint> <waypoint x="4557" y="3733" angle="50"></waypoint> </waypoints> </track> </tracks> ; } }//package
Section 343
//focusRectSkin (focusRectSkin) package { import flash.display.*; public dynamic class focusRectSkin extends MovieClip { } }//package
Section 344
//GameManager (GameManager) package { import flash.events.*; import flash.display.*; import com.markfennell.utils.*; public class GameManager extends Sprite { public var state:String;// = "Credits" private var racers:Racers; private var credits:Credits; public var STAGE:Stage; public static var _instance:GameManager = null; public function GameManager(_arg1:Stage){ _instance = this; STAGE = _arg1; Broadcaster.addEventListener(Racers.RACE_INITIALISED, handleComplete); setState(state); } private function handleComplete(_arg1:Event):void{ if (credits){ credits.destroy(); }; } public function setState(_arg1:String):void{ switch (_arg1){ case "Credits": if (racers){ racers.destroy(); }; state = "credits"; credits = new Credits(); credits.init(STAGE); addChildAt(credits, 0); break; case "Game": trace("Game setup"); state = "game"; racers = new Racers(); addChildAt(racers, 0); racers.init(STAGE); break; }; } public static function getInstance():GameManager{ return (_instance); } } }//package
Section 345
//LilRacerz (LilRacerz) package { import flash.events.*; import flash.display.*; public class LilRacerz extends Sprite { private var gameManager:GameManager; public function LilRacerz(){ addEventListener(Event.ADDED_TO_STAGE, handleOnAddedToStage); } private function handleOnAddedToStage(_arg1:Event):void{ gameManager = new GameManager(this.stage); addChild(gameManager); } } }//package
Section 346
//List_skin (List_skin) package { import flash.display.*; public dynamic class List_skin extends MovieClip { } }//package
Section 347
//NumericStepperDownArrow_disabledSkin (NumericStepperDownArrow_disabledSkin) package { import flash.display.*; public dynamic class NumericStepperDownArrow_disabledSkin extends MovieClip { } }//package
Section 348
//NumericStepperDownArrow_downSkin (NumericStepperDownArrow_downSkin) package { import flash.display.*; public dynamic class NumericStepperDownArrow_downSkin extends MovieClip { } }//package
Section 349
//NumericStepperDownArrow_overSkin (NumericStepperDownArrow_overSkin) package { import flash.display.*; public dynamic class NumericStepperDownArrow_overSkin extends MovieClip { } }//package
Section 350
//NumericStepperDownArrow_upSkin (NumericStepperDownArrow_upSkin) package { import flash.display.*; public dynamic class NumericStepperDownArrow_upSkin extends MovieClip { } }//package
Section 351
//NumericStepperUpArrow_disabledSkin (NumericStepperUpArrow_disabledSkin) package { import flash.display.*; public dynamic class NumericStepperUpArrow_disabledSkin extends MovieClip { } }//package
Section 352
//NumericStepperUpArrow_downSkin (NumericStepperUpArrow_downSkin) package { import flash.display.*; public dynamic class NumericStepperUpArrow_downSkin extends MovieClip { } }//package
Section 353
//NumericStepperUpArrow_overSkin (NumericStepperUpArrow_overSkin) package { import flash.display.*; public dynamic class NumericStepperUpArrow_overSkin extends MovieClip { } }//package
Section 354
//NumericStepperUpArrow_upSkin (NumericStepperUpArrow_upSkin) package { import flash.display.*; public dynamic class NumericStepperUpArrow_upSkin extends MovieClip { } }//package
Section 355
//Racers (Racers) package { import flash.events.*; import flash.display.*; import game.obstacles.*; import game.vehicle.*; import flash.utils.*; import sound.*; import game.track.*; import flash.geom.*; import Box2D.Dynamics.*; import game.tiles.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import game.hud.*; import com.markfennell.utils.*; import game.*; import org.casalib.display.*; import controls.*; import game.utils.*; import game.recorder.*; import game.effects.*; import flash.ui.*; public class Racers extends CasaMovieClip { private var m_track:Track; private var m_debug:DebugDisplay; private var m_timeDiff:int;// = 0 private var m_beforeTime:int;// = 0 private var m_physScale:Number; private var m_timer:int;// = 0 private var m_debugOverlay:CasaSprite; public var m_gameBitmapData:BitmapData; private var m_gameTimer:Timer; private var m_stageRectangle:Rectangle; private var m_hud:Hud; private var m_camera:Camera; private var m_origin:Point; private var m_ghost:Ghost; private var m_world:b2World; private var m_iterations:int;// = 10 private var m_stats:Stats; private var m_recorder:Recorder; private var m_obstacleManager:ObstacleManager; private var m_threadQueue:ThreadQueue; private var m_controls:Controls; private var m_vehicle:Vehicle; private var m_effectsManager:EffectsManager; private var m_toggle:Boolean;// = false private var m_timeoutInterval:int; private var m_afterTime:int;// = 0 private var m_gameOver:Boolean;// = false private var m_overSleepTime:int;// = 0 private var m_effectsBitmap:Bitmap; private var m_debugShowing:Boolean;// = false private var m_excess:int;// = 0 private var m_tileBitmap:Bitmap; private var m_useTimer:Boolean;// = true private var m_worldAABB:b2AABB; private var m_finishTimes:Array; private var m_tileEngine:TileEngine; private var m_lapManager:LapManager; private var m_timeAccumulator:Number;// = 0 private var m_recordTimer:Timer; private var m_stage:Stage; public var m_dx:int;// = 0 public var m_dy:int;// = 0 private var m_collisionManager:CollisionManager; public var m_effectsBitmapData:BitmapData; private var m_timeStep:Number;// = 0 private var m_period:Number; private var m_tileBitmapData:BitmapData; private var m_gameBitmap:Bitmap; private var m_vehicleManager:VehicleManager; private var m_sleepTime:int;// = 0 private var m_startTime:int;// = 0 private static var m_instance:Racers; public static var RACE_FINISH:String = "RacersFinishRace"; public static var BOOST:String = "Boost"; public static var CONTINUE:String = "RacersContinue"; public static var AI_FINISH:String = "AiFinishRace"; public static var PLAYER_FINISH:String = "PlayerFinishRace"; public static var RACE_START:String = "RacersStartRace"; public static var pause:Boolean = false; public static var RACE_INITIALISED:String = "RacersInitialised"; public function Racers(){ m_period = (1000 / Constants.FRAME_RATE); m_physScale = Constants.PHYS_SCALE; m_finishTimes = []; m_origin = new Point(0, 0); m_threadQueue = new ThreadQueue(); super(); m_instance = this; m_debugOverlay = new CasaSprite(); m_stageRectangle = new Rectangle(0, 0, Constants.STAGE_WIDTH, Constants.STAGE_HEIGHT); m_gameBitmapData = new BitmapData(Constants.STAGE_WIDTH, Constants.STAGE_HEIGHT, true, 0); m_effectsBitmapData = new BitmapData(Constants.STAGE_WIDTH, Constants.STAGE_HEIGHT, true, 0); m_tileBitmapData = new BitmapData(Constants.STAGE_WIDTH, Constants.STAGE_HEIGHT, false, 0); m_gameBitmap = new Bitmap(m_gameBitmapData); m_tileBitmap = new Bitmap(m_tileBitmapData); m_effectsBitmap = new Bitmap(m_effectsBitmapData); } override public function destroy():void{ if (m_useTimer){ m_gameTimer.stop(); m_gameTimer.removeEventListener(TimerEvent.TIMER, renderTimer); m_gameTimer = null; } else { removeEventListener(Event.ENTER_FRAME, render); }; m_vehicleManager.destroy(); m_obstacleManager.destroy(); m_obstacleManager = null; m_effectsManager.destroy(); m_effectsManager = null; m_hud.destroy(); removeChild(m_hud); m_hud = null; removeChild(m_gameBitmap); removeChild(m_tileBitmap); removeChild(m_effectsBitmap); m_gameBitmap = null; m_tileBitmap = null; m_gameBitmapData.dispose(); m_tileBitmapData.dispose(); m_effectsBitmapData.dispose(); if (m_debugShowing){ debugHide(); }; m_debugOverlay.destroy(); removeEventListener(RACE_START, startRacing); m_lapManager.removeEventListener(PLAYER_FINISH, onPlayerFinish); m_lapManager.removeEventListener(RACE_FINISH, onRaceFinish); m_lapManager = null; removeEventListener(CONTINUE, onContinue); if (m_tileEngine != null){ m_tileEngine.destroy(); }; m_recorder = null; m_collisionManager.removeEventListener(CheckpointEvent.CROSSED, onCheckPoint); m_collisionManager = null; m_worldAABB = null; m_world = null; m_controls.destroy(); } private function onRaceFinish(_arg1:Event):void{ clearInterval(m_timeoutInterval); m_hud.showContinue(); Standings.getInstance().setTimes(User.getInstance().trackID, m_lapManager.getLapTimes()); } public function init(_arg1:Stage):void{ m_stage = _arg1; m_stage.quality = Constants.OPTION_STAGE_QUALITY; m_stage.scaleMode = "noScale"; m_stage.align = "TL"; m_track = Track.getTrackData(User.getInstance().trackID); m_camera = new Camera(0, 0, m_track.startX, m_track.startY); ThreadQueue.getInstance().add(new Command(initTileEngine, [], "initTileEngine")); ThreadQueue.getInstance().add(new Command(initBox2d, [], "initBox2d")); ThreadQueue.getInstance().add(new Command(initVehicles, [], "initVehicles")); ThreadQueue.getInstance().add(new Command(initEffects, [], "initEffects")); ThreadQueue.getInstance().add(new Command(initObstacles)); ThreadQueue.getInstance().add(new Command(initHud)); ThreadQueue.getInstance().add(new Command(initDisplay)); m_stage.focus = this; ThreadQueue.getInstance().add(new Command(start)); ThreadQueue.getInstance().add(new Command(complete)); ThreadQueue.getInstance().start(); } private function handleKeyUp(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == 192){ if (m_toggle){ m_toggle = false; debugHide(); } else { m_toggle = true; debugShow(); }; }; } public function onBoost():void{ SoundManager.getInstance().playSound("Boost"); m_hud.removeNitro(); } private function onCollision(_arg1:CollisionEvent):void{ m_vehicleManager.collision(_arg1); } public function doPause(_arg1:Event=null):void{ pause = true; m_hud.stopTimer(); } private function debugHide():void{ m_debugShowing = false; m_stage.removeChild(m_stats); m_stage.removeChild(m_debug); m_stats = null; m_debug = null; } private function doTimeOut():void{ clearInterval(m_timeoutInterval); if (m_lapManager){ m_lapManager.doTimeout(); }; } private function complete():void{ Broadcaster.dispatchEvent(new Event(RACE_INITIALISED)); } private function renderGraphics():void{ m_vehicle = m_vehicleManager.vehicles[0]; if (Constants.ROAM){ m_dx = (((-(mouseX) / Constants.STAGE_WIDTH) * m_tileEngine.mapWidth) + (Constants.STAGE_WIDTH / 2)); m_dy = (((-(mouseY) / Constants.STAGE_HEIGHT) * m_tileEngine.mapHeight) + (Constants.STAGE_HEIGHT / 2)); } else { m_dx = int(((-(m_vehicle.x) + (Constants.STAGE_WIDTH / 2)) - m_camera.x)); m_dy = int(((-(m_vehicle.y) + (Constants.STAGE_HEIGHT / 2)) - m_camera.y)); }; if (m_debugOverlay){ m_debugOverlay.x = m_dx; m_debugOverlay.y = m_dy; }; try { m_tileBitmapData.lock(); m_gameBitmapData.lock(); m_effectsBitmapData.lock(); m_tileEngine.render(-(m_dx), -(m_dy)); m_gameBitmapData.fillRect(m_stageRectangle, 0); m_effectsBitmapData.fillRect(m_stageRectangle, 0); m_vehicleManager.renderGraphics(-(m_dx), -(m_dy), m_debugOverlay.x, m_debugOverlay.y); m_obstacleManager.render(-(m_dx), -(m_dy), m_debugOverlay.x, m_debugOverlay.y); m_hud.render(m_vehicle, m_dx, m_dy); if (!m_gameOver){ m_hud.setPosition((m_lapManager.getPosition() + 1), m_vehicleManager.vehicles.length); }; m_camera.targetx = (((Math.min(m_vehicle.speed, Constants.SPEED_MAX) / Constants.SPEED_MAX) * Camera.tracking) * Math.cos(m_vehicle.angle)); m_camera.targety = (((Math.min(m_vehicle.speed, Constants.SPEED_MAX) / Constants.SPEED_MAX) * Camera.tracking) * Math.sin(m_vehicle.angle)); m_camera.render(); m_effectsManager.render(m_dx, m_dy); m_gameBitmapData.unlock(); m_tileBitmapData.unlock(); m_effectsBitmapData.unlock(); } catch(e:Error) { }; } private function initBox2d():void{ m_worldAABB; m_worldAABB = new b2AABB(); m_worldAABB.lowerBound.Set(-5000, -5000); m_worldAABB.upperBound.Set(10000, 10000); var _local1:b2Vec2 = new b2Vec2(0, 0); var _local2:Boolean; m_collisionManager = new CollisionManager(); m_collisionManager.addEventListener(CheckpointEvent.CROSSED, onCheckPoint); m_collisionManager.addEventListener(CollisionEvent.COLLISION, onCollision); m_world = new b2World(m_worldAABB, _local1, _local2); m_world.SetContactListener(m_collisionManager); } private function renderTimer(_arg1:TimerEvent):void{ m_beforeTime = getTimer(); m_overSleepTime = ((m_beforeTime - m_afterTime) - m_sleepTime); renderPhysics(); renderGraphics(); m_afterTime = getTimer(); m_timeDiff = (m_afterTime - m_beforeTime); m_sleepTime = ((m_period - m_timeDiff) - m_overSleepTime); if (m_sleepTime <= 0){ m_excess = (m_excess - m_sleepTime); m_sleepTime = 1; }; m_gameTimer.reset(); m_gameTimer.delay = m_sleepTime; m_gameTimer.start(); while (m_excess > m_period) { renderPhysics(); m_excess = (m_excess - m_period); }; _arg1.updateAfterEvent(); } public function startRacing(_arg1:Event=null):void{ removeEventListener(RACE_START, startRacing); m_timer = (m_startTime = getTimer()); m_hud.startRace(); m_vehicleManager.startRace(); SoundManager.getInstance().start_music(1); } public function stopEngineSounds():void{ m_vehicleManager.stopSounds(); } public function start():void{ renderPhysics(); renderGraphics(); if (m_useTimer){ m_gameTimer = new Timer(m_period, 1); m_gameTimer.addEventListener(TimerEvent.TIMER, renderTimer); m_gameTimer.start(); } else { addEventListener(Event.ENTER_FRAME, render); }; addEventListener(RACE_START, startRacing); m_lapManager.addEventListener(PLAYER_FINISH, onPlayerFinish); m_lapManager.addEventListener(RACE_FINISH, onRaceFinish); m_lapManager.addEventListener(AI_FINISH, onAiFinish); addEventListener(CONTINUE, onContinue); m_stage.addEventListener(KeyboardEvent.KEY_UP, handleKeyUp); m_hud.init(m_stage); } private function onPlayerFinish(_arg1:LapEvent):void{ var _local4:int; trace("-----> onPlayerFinish ", User.getInstance().trackID); if (User.getInstance().trackID == 0){ Credits.STATE = Credits.STATE_RACING; } else { Credits.STATE = Credits.STATE_STANDINGS; }; m_gameOver = true; m_vehicleManager.playerFinished(); m_timeoutInterval = setInterval(doTimeOut, Constants.RACE_TIMEOUT); var _local2:int = int((m_lapManager.getPosition() + 1)); var _local3:String = String(_local2); switch (_local2){ case 1: _local3 = (_local3 + "st"); break; case 2: _local3 = (_local3 + "nd"); break; case 3: _local3 = (_local3 + "rd"); break; default: _local3 = (_local3 + "th"); break; }; User.getInstance().setPosition(_local3, _local2); User.getInstance().setRaced(); User.getInstance().setRaceTime(_arg1.time); m_hud.finishDisplay(_local2, 0); if (m_finishTimes.length > 0){ _local4 = 0; while (_local4 < m_finishTimes.length) { m_hud.showFinishTime(m_finishTimes[_local4]); _local4++; }; m_finishTimes = []; }; m_hud.showFinishTime(_arg1); } public function get bitmapData():BitmapData{ return (m_gameBitmapData); } private function initObstacles():void{ m_obstacleManager = new ObstacleManager(m_gameBitmapData, m_world, m_track, m_tileEngine, m_debugOverlay); } private function initDisplay():void{ addChild(m_tileBitmap); addChild(m_gameBitmap); addChild(m_effectsBitmap); addChild(m_hud); addChild(m_controls); } private function render(_arg1:Event):void{ renderPhysics(); renderGraphics(); } public function doResume(_arg1:Event=null):void{ pause = false; m_hud.resumeTimer(); } private function onCheckPoint(_arg1:CheckpointEvent):void{ m_lapManager.checkpoint(_arg1); } private function doTimeOutTotal():void{ m_lapManager.doTotalTimeOut(); } private function onContinue(_arg1:Event):void{ GameManager.getInstance().setState("Credits"); } private function initTileEngine():void{ if (m_tileEngine != null){ m_tileEngine.destroy(); }; m_tileEngine = new TileEngine(m_tileBitmapData, Constants.STAGE_WIDTH, Constants.STAGE_HEIGHT, m_track); addChild(m_tileEngine); } private function initHud():void{ m_hud = new Hud(m_track); m_hud.createMiniMap(m_track.tileArray, m_tileEngine, m_vehicleManager.vehicles); m_hud.createNitro(m_vehicleManager.vehicles); m_lapManager = new LapManager(m_track, m_hud, m_vehicleManager.vehicles); m_controls = new Controls(); } private function renderPhysics():void{ var _local1:Number; if (!pause){ _local1 = ((getTimer() - m_timer) / 1000); m_timer = getTimer(); m_world.Step(_local1, m_iterations); m_vehicleManager.renderPhysics(_local1); }; } private function initEffects():void{ m_effectsManager = new EffectsManager(m_effectsBitmapData, m_vehicleManager.vehicles, m_camera, m_track, m_effectsBitmap); } public function m_timerHandler(_arg1:TimerEvent):void{ m_recorder.add(int(m_vehicle.x), int(m_vehicle.y), int((m_vehicle.angle * Constants.RAD2DEG)), (m_timer - m_startTime)); } private function onAiFinish(_arg1:LapEvent):void{ if (!m_gameOver){ m_finishTimes.push(_arg1); } else { m_hud.showFinishTime(_arg1); }; } private function initVehicles():void{ m_vehicleManager = new VehicleManager(m_gameBitmapData, m_stage, m_track, m_world, m_tileEngine, m_debugOverlay); } private function debugShow():void{ m_debugShowing = true; m_debug = new DebugDisplay(m_physScale, m_world, m_tileEngine, m_vehicleManager, m_track, m_obstacleManager, m_debugOverlay); m_debug.showPanel(); m_stats = new Stats(); m_stage.addChild(m_stats); m_stats.y = 100; m_stage.addChild(m_debug); m_stage.addChild(m_debugOverlay); } public static function getInstance():Racers{ return (m_instance); } } }//package
Section 356
//Scoreboard (Scoreboard) package { import flash.events.*; import flash.display.*; import game.track.*; import game.*; import fl.controls.*; import flash.text.*; import assets.*; import flash.filters.*; import flash.net.*; import com.meychi.ascrypt3.*; public class Scoreboard extends MovieClip { private var inputSubmit:MovieClip; private var m_inputEmail:MovieClip; private var glow:GlowFilter; private var score:String;// = "" private var loader:URLLoader; private var m_inputCountries:ComboBox; private var centerY:Number; private var offsetX:Number;// = 10 private var m_isTime:Boolean;// = true public var btnContinue:SimpleButton; private var spacer:Number;// = 30 private var m_ui:MovieClipScoreboard; private var m_inputName:MovieClip; private var textOptional:String;// = "(Optional)" private var offsetY:Number;// = -40 private var centerX:Number; private var KEY:String;// = "bLaStONe" private var score2:String;// = "" private var countryArray:Array; private var m_fx:Fx; private var hostName:String;// = "lilRacerz" private var m_so:SharedObject; private var PADDING:int;// = 7 public function Scoreboard(){ m_fx = new Fx(); centerX = (Constants.STAGE_WIDTH / 2); centerY = (Constants.STAGE_HEIGHT / 2); glow = new GlowFilter(0xFF0000, 6, 6, 2); countryArray = [[null, "Select Your Country"], ["AF", "Afghanistan"], ["AL", "Albania"], ["DZ", "Algeria"], ["AS", "American Samoa"], ["AG", "Antigua Barbuda"], ["AR", "Argentina"], ["AU", "Australia"], ["AT", "Austria"], ["AZ", "Azerbaijan"], ["BH", "Bahrain"], ["BD", "Bangladesh"], ["BB", "Barbados"], ["BY", "Belarus"], ["BE", "Belgium"], ["BZ", "Belize"], ["BJ", "Benin"], ["BM", "Bermuda"], ["BT", "Bhutan"], ["BO", "Bolivia"], ["BA", "Bosnia Herzegovina"], ["BW", "Botswana"], ["BR", "Brazil"], ["BN", "Brunei"], ["BG", "Bulgaria"], ["BF", "Burkina Faso"], ["BI", "Burundi"], ["KH", "Cambodia"], ["CM", "Cameroon"], ["CA", "Canada"], ["CV", "Cape Verde"], ["KY", "Cayman Islands"], ["CF", "Cent African Rep"], ["TD", "Chad"], ["JI", "Channel Islands"], ["CL", "Chile"], ["CN", "China"], ["CO", "Columbia"], ["KM", "Comoros"], ["CG", "Congo"], ["CK", "Cook Islands"], ["CR", "Costa Rica"], ["HR", "Croatia"], ["CU", "Cuba"], ["CY", "Cyprus"], ["CZ", "Czech Republic"], ["DK", "Denmark"], ["DM", "Dominica"], ["DO", "Dominican Republic"], ["TL", "East Timor"], ["EC", "Ecuador"], ["EG", "Egypt"], ["SV", "El Salvador"], ["GQ", "Equatorial Guinea"], ["ER", "Eritrea"], ["EE", "Estonia"], ["ET", "Ethiopia"], ["FJ", "Fiji"], ["FI", "Finland"], ["FR", "France"], ["GF", "French Guiana"], ["PF", "French Polynesia"], ["GM", "Gambia"], ["GE", "Georgia"], ["DE", "Germany"], ["GH", "Ghana"], ["GI", "Gibraltar"], ["GR", "Greece"], ["GL", "Greenland"], ["GD", "Grenada"], ["GP", "Guadeloupe"], ["GU", "Guam"], ["GT", "Guatemala"], ["GW", "Guinea Bissau"], ["GY", "Guyana"], ["HT", "Haiti"], ["HW", "Hawaii"], ["HN", "Honduras"], ["HK", "Hong Kong"], ["HU", "Hungary"], ["IS", "Iceland"], ["IN", "India"], ["ID", "Indonesia"], ["IR", "Iran"], ["IQ", "Iraq"], ["IE", "Ireland"], ["IM", "Isle of Man"], ["IL", "Israel"], ["IT", "Italy"], ["CI", "Ivory Coast"], ["JM", "Jamaica"], ["JP", "Japan"], ["JO", "Jordan"], ["KZ", "Kazakhstan"], ["KE", "Kenya"], ["KS", "Korea South"], ["KW", "Kuwait"], ["KG", "Kyrgyzstan"], ["LA", "Laos"], ["LV", "Latvia"], ["LB", "Lebanon"], ["LS", "Lesotho"], ["LR", "Liberia"], ["LY", "Libya"], ["LI", "Liechtenstein"], ["LT", "Lithuania"], ["LU", "Luxembourg"], ["MO", "Macau"], ["MK", "Macedonia"], ["MG", "Madagascar"], ["MW", "Malawi"], ["MY", "Malaysia"], ["MV", "Maldives"], ["ML", "Mali"], ["MT", "Malta"], ["MQ", "Martinique"], ["MU", "Mauritius"], ["YT", "Mayotte"], ["MX", "Mexico"], ["MD", "Moldova"], ["MC", "Monaco"], ["MN", "Mongolia"], ["MS", "Montserrat"], ["MA", "Morocco"], ["MZ", "Mozambique"], ["MM", "Myanmar"], ["NA", "Namibia"], ["NR", "Nauru"], ["NP", "Nepal"], ["NL", "Netherlands"], ["NC", "New Caledonia"], ["NZ", "New Zealand"], ["NI", "Nicaragua"], ["NE", "Niger"], ["NG", "Nigeria"], ["NO", "Norway"], ["OM", "Oman"], ["PK", "Pakistan"], ["PA", "Panama"], ["PG", "Papua New Guinea"], ["PY", "Paraguay"], ["PE", "Peru"], ["PH", "Philippines"], ["PN", "Pitcairn Island"], ["PL", "Poland"], ["PT", "Portugal"], ["PR", "Puerto Rico"], ["QA", "Qatar"], ["RE", "Reunion"], ["RO", "Romania"], ["RU", "Russia"], ["RW", "Rwanda"], ["SM", "San Marino"], ["ST", "Sao Tome Principe"], ["SA", "Saudi Arabia"], ["SN", "Senegal"], ["CS", "Serbia Montenegro"], ["SL", "Sierra Leone"], ["SG", "Singapore"], ["SK", "Slovakia"], ["SI", "Slovenia"], ["SB", "Solomon Islands"], ["m_so", "Somalia"], ["ZA", "South Africa"], ["ES", "Spain"], ["LK", "Sri Lanka"], ["SH", "St Helena"], ["KN", "St Kitts-Nevis"], ["LC", "St Lucia"], ["MB", "St Maarten"], ["PM", "St Pierre Miquelon"], ["VC", "St Vincent Grenadines"], ["SD", "Sudan"], ["SR", "Suriname"], ["SZ", "Swaziland"], ["SE", "Sweden"], ["CH", "Switzerland"], ["SY", "Syria"], ["TA", "Tahiti"], ["TW", "Taiwan"], ["TJ", "Tajikistan"], ["TZ", "Tanzania"], ["TH", "Thailand"], ["TG", "Togo"], ["TT", "Trinidad Tobago"], ["TN", "Tunisia"], ["TR", "Turkey"], ["TM", "Turkmenistan"], ["UA", "Ukraine"], ["AE", "UAE"], ["GB", "United Kingdom"], ["US", "USA"], ["UY", "Uruguay"], ["UZ", "Uzbekistan"], ["VU", "Vanuatu"], ["VE", "Venezuela"], ["VN", "Vietnam"], ["VI", "Virgin Islands"], ["EH", "Western Sahara"], ["ZM", "Zambia"], ["ZW", "Zimbabwe"]]; super(); m_so = SharedObject.getLocal(hostName); m_ui = new MovieClipScoreboard(); addChild(m_ui); btnContinue = m_ui.btnContinue; m_inputName = m_ui.inputName; if (m_so.data.userName != null){ m_inputName.textInput.text = m_so.data.userName; }; setInput(m_inputName); m_inputEmail = m_ui.inputEmail; if (m_so.data.userEmail != null){ m_inputEmail.textInput.text = m_so.data.userEmail; } else { m_inputEmail.textInput.text = textOptional; }; setInput(m_inputEmail); m_inputCountries = m_ui.inputCountries; m_inputCountries.setSize(160, 22); m_inputCountries.setStyle("color", 0xFF0000); var _local1:TextFormat = new TextFormat(); _local1.size = 11; _local1.color = 0xDDDDDD; m_inputCountries.textField.setStyle("textFormat", _local1); m_inputCountries.dropdown.setRendererStyle("textFormat", _local1); var _local2:int; while (_local2 < countryArray.length) { m_inputCountries.addItem({label:countryArray[_local2][1], data:countryArray[_local2][0]}); _local2++; }; if (m_so.data.countryID != null){ m_inputCountries.selectedIndex = m_so.data.countryID; }; m_inputCountries.addEventListener(MouseEvent.CLICK, inputClear); m_ui.btnSubmit.addEventListener(MouseEvent.CLICK, validate); } public function inputSubmitRevert(_arg1:MouseEvent):void{ _arg1.target.gotoAndStop(1); } public function setInput(_arg1:MovieClip):void{ _arg1.hover.visible = false; _arg1.addEventListener(MouseEvent.ROLL_OVER, inputHover); _arg1.addEventListener(MouseEvent.ROLL_OUT, inputRevert); _arg1.addEventListener(MouseEvent.CLICK, inputClick); } private function validate(_arg1:MouseEvent):Boolean{ if (m_inputName.textInput.text.length > 1){ if ((((((m_inputEmail.textInput.text.length == 1)) || (validateEmail(m_inputEmail.textInput.text)))) || ((m_inputEmail.textInput.text == textOptional)))){ if (m_inputCountries.selectedIndex > 0){ m_so.data.countryID = m_inputCountries.selectedIndex; m_fx.zoomIn(m_ui, 0, 0.25, m_ui.x, m_ui.y, (m_ui.x - 580), m_ui.y, 10, "easeOutQuad", submitData); } else { m_inputCountries.filters = [glow]; return (false); }; } else { m_inputEmail.filters = [glow]; return (false); }; } else { m_inputName.filters = [glow]; return (false); }; return (false); } public function inputHover(_arg1:MouseEvent):void{ _arg1.target.hover.visible = true; } public function inputClear(_arg1:MouseEvent):void{ _arg1.target.filters = []; _arg1.target.parent.filters = []; } private function checksum(_arg1:String):Number{ var _local2:Number = 0; var _local3:int; while (_local3 < _arg1.length) { _local2 = (_local2 + _arg1.charCodeAt(_local3)); _local3++; }; return (_local2); } private function thanks(_arg1:Event):void{ trace("Score Submitted"); m_fx.zoomIn(m_ui, 0, 0.25, m_ui.x, m_ui.y, (m_ui.x - 580), m_ui.y, 10, "easeOutQuad", null); } public function inputRevert(_arg1:MouseEvent):void{ _arg1.target.hover.visible = false; } private function validateEmail(_arg1:String):Boolean{ var _local2:RegExp = /(\w|[_.\-])+@((\w|-)+\.)+\w{2,4}+/; var _local3:Object = _local2.exec(_arg1); if (_local3 == null){ return (false); }; return (true); } public function inputSubmitHover(_arg1:MouseEvent):void{ _arg1.target.gotoAndStop(2); } public function inputClick(_arg1:MouseEvent):void{ _arg1.target.filters = []; _arg1.target.parent.filters = []; if (_arg1.target.text == textOptional){ _arg1.target.text = ""; }; } private function submitData():void{ var user:String = m_inputName.textInput.text; user.replace("|", ""); user.replace(",", ""); var email:String = m_inputEmail.textInput.text; if (email == textOptional){ email = ""; }; m_so.data.userName = user; m_so.data.userEmail = email; trace(((email + " : ") + checksum(email))); var img:String = m_inputCountries.selectedItem.data; var rc4_text = (email + "|"); rc4_text = (rc4_text + (user + "|")); score = ("0" + "*"); score = (score + (User.getInstance().getTotalRaced() + "*")); score = (score + (User.getInstance().getTotalTime() + "*")); var i:int; while (i < Track.tracks) { score = (score + (User.getInstance().getRaceTime(i) + "*")); i = (i + 1); }; rc4_text = (rc4_text + (((score + "|") + checksum(score.toString())) + "|")); rc4_text = (rc4_text + (((score2 + "|") + checksum(score2.toString())) + "|")); rc4_text = (rc4_text + (((img + "|") + checksum(img.toString())) + "|")); rc4_text = (rc4_text + checksum(email)); trace(("rc4_text " + rc4_text)); var rc4:RC4 = new RC4(); var rc4_hash:String = rc4.encrypt(rc4_text, KEY); var url:String = Constants.URL_SUBMIT_SCORE; var variables:URLVariables = new URLVariables(); variables.xj25 = rc4_hash; var request:URLRequest = new URLRequest(url); request.data = variables; request.method = URLRequestMethod.POST; loader = new URLLoader(); loader.addEventListener(Event.COMPLETE, thanks); loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, thanks); loader.addEventListener(IOErrorEvent.IO_ERROR, thanks); trace(((("loader: " + request.url) + "?") + request.data)); try { loader.load(request); } catch(e:Error) { trace("Error"); }; } private function is_null(_arg1:String):String{ if ((((_arg1 == null)) || ((_arg1 == "")))){ return ("null"); }; return (_arg1); } } }//package
Section 357
//ScrollArrowDown_disabledSkin (ScrollArrowDown_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_disabledSkin extends MovieClip { } }//package
Section 358
//ScrollArrowDown_downSkin (ScrollArrowDown_downSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_downSkin extends MovieClip { } }//package
Section 359
//ScrollArrowDown_overSkin (ScrollArrowDown_overSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_overSkin extends MovieClip { } }//package
Section 360
//ScrollArrowDown_upSkin (ScrollArrowDown_upSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_upSkin extends MovieClip { } }//package
Section 361
//ScrollArrowUp_disabledSkin (ScrollArrowUp_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_disabledSkin extends MovieClip { } }//package
Section 362
//ScrollArrowUp_downSkin (ScrollArrowUp_downSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_downSkin extends MovieClip { } }//package
Section 363
//ScrollArrowUp_overSkin (ScrollArrowUp_overSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_overSkin extends MovieClip { } }//package
Section 364
//ScrollArrowUp_upSkin (ScrollArrowUp_upSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_upSkin extends MovieClip { } }//package
Section 365
//ScrollBar_thumbIcon (ScrollBar_thumbIcon) package { import flash.display.*; public dynamic class ScrollBar_thumbIcon extends MovieClip { } }//package
Section 366
//ScrollThumb_downSkin (ScrollThumb_downSkin) package { import flash.display.*; public dynamic class ScrollThumb_downSkin extends MovieClip { } }//package
Section 367
//ScrollThumb_overSkin (ScrollThumb_overSkin) package { import flash.display.*; public dynamic class ScrollThumb_overSkin extends MovieClip { } }//package
Section 368
//ScrollThumb_upSkin (ScrollThumb_upSkin) package { import flash.display.*; public dynamic class ScrollThumb_upSkin extends MovieClip { } }//package
Section 369
//ScrollTrack_skin (ScrollTrack_skin) package { import flash.display.*; public dynamic class ScrollTrack_skin extends MovieClip { } }//package
Section 370
//TextInput_disabledSkin (TextInput_disabledSkin) package { import flash.display.*; public dynamic class TextInput_disabledSkin extends MovieClip { } }//package
Section 371
//TextInput_upSkin (TextInput_upSkin) package { import flash.display.*; public dynamic class TextInput_upSkin extends MovieClip { } }//package
Section 372
//User (User) package { import game.vehicle.*; import flash.utils.*; import game.track.*; import flash.net.*; import com.electrotank.util.*; public class User { private var m_bestLapTimes:Array; private var m_racedTracks:Array; public var userEmail:String;// = null private var hostName:String;// = "lilRacerz" private var m_unlockedTracks:Array; private var m_positionsArray:Array; private var m_raceTimes:Array; public var trackID:Number;// = 0 private var m_positionsIntArray:Array; private var moneyName:String;// = "money" public var carID:Number;// = 0 private var m_trackNumber:int; private var m_unlockedCars:Array; public var userName:String;// = null public static var returnUser:Boolean = false; private static var _instance:User = null; public function User(){ m_racedTracks = []; m_raceTimes = []; m_bestLapTimes = []; m_positionsArray = []; m_positionsIntArray = []; m_unlockedTracks = []; m_unlockedCars = [true]; super(); _instance = this; } public function setRaceTime(_arg1:int):void{ m_raceTimes[trackID] = _arg1; MemoryCrypto.setValue(String(("RaceTimes" + trackID)), _arg1); } public function getTotalRaced():int{ var _local1:int; var _local2:int; while (_local2 < m_racedTracks.length) { if (m_racedTracks[_local2]){ _local1++; }; _local2++; }; return (_local1); } public function getTotalTime():int{ var _local1:int; var _local2:int; while (_local2 < m_raceTimes.length) { _local1 = (_local1 + MemoryCrypto.getValue(String(("RaceTimes" + _local2)))); _local2++; }; return (_local1); } public function isCarUnlocked(_arg1:int):Boolean{ return (m_unlockedCars[_arg1]); } public function reset():void{ trace("RESET"); trackID = 0; carID = 0; } public function init():void{ m_trackNumber = Track.tracks; var _local1:int; while (_local1 < m_trackNumber) { m_racedTracks.push(false); m_raceTimes.push(0); m_bestLapTimes.push(0); m_positionsArray.push(""); m_positionsIntArray.push(VehicleManager.vehiclesLength); MemoryCrypto.setValue(String(("RaceTimes" + _local1)), 0); MemoryCrypto.setValue(String(("LapTimes" + _local1)), 0); if (_local1 < 2){ m_unlockedTracks.push(true); } else { m_unlockedTracks.push(false); }; _local1++; }; _local1 = 1; while (_local1 < VehicleManager.vehiclesLength) { m_unlockedCars.push(false); _local1++; }; var _local2:SharedObject = SharedObject.getLocal(hostName); if (_local2.data.trackArray != null){ m_unlockedTracks = _local2.data.trackArray; }; if (_local2.data.carArray != null){ m_unlockedCars = _local2.data.carArray; }; saveGame(); } public function releaseCar():void{ addMoney(VehicleManager.getVehicleData(carID).cost); carID = NaN; } public function getPositionString(_arg1:int):String{ return (m_positionsArray[_arg1]); } public function getMoney():int{ return (MemoryCrypto.getValue(moneyName)); } public function isTrackUnlocked(_arg1:int):Boolean{ return (m_unlockedTracks[_arg1]); } public function getPositionInt(_arg1:int):int{ return (m_positionsIntArray[_arg1]); } public function saveGame():void{ var _local1:SharedObject = SharedObject.getLocal(hostName); _local1.data.trackArray = m_unlockedTracks; _local1.data.carArray = m_unlockedCars; } public function addMoney(_arg1:int):void{ if (_arg1 < 0){ MemoryCrypto.decrementValue(moneyName, Math.abs(_arg1)); } else { MemoryCrypto.incrementValue(moneyName, Math.abs(_arg1)); }; } public function setPosition(_arg1:String, _arg2:int):void{ m_positionsArray[trackID] = _arg1; m_positionsIntArray[trackID] = _arg2; } public function playerWon():void{ var _local2:int; var _local1:int = (trackID + 1); if (_local1 < Track.tracks){ m_unlockedTracks[_local1] = true; }; trace("--> Track.getTrackData( trackID ).unlocks ", Track.getTrackData(trackID).unlocks, trackID); if (Track.getTrackData(trackID).unlocks != ""){ _local2 = 0; while (_local2 < VehicleManager.vehiclesLength) { if (Track.getTrackData(trackID).unlocks == VehicleManager.getVehicleData(_local2).type){ trace(Track.getTrackData(trackID).unlocks, VehicleManager.getVehicleData(_local2).type, (Track.getTrackData(trackID).unlocks == VehicleManager.getVehicleData(_local2).type)); m_unlockedCars[_local2] = true; carID = _local2; break; }; _local2++; }; }; if (_local1 < Track.tracks){ trackID = _local1; }; saveGame(); } public function setRaced():void{ m_racedTracks[trackID] = true; } public function getRaceTime(_arg1:int):int{ return (MemoryCrypto.getValue(String(("RaceTimes" + _arg1)))); } public function getRaced(_arg1:int):Boolean{ return (m_racedTracks[_arg1]); } public function setMoney(_arg1:int):void{ MemoryCrypto.setValue(moneyName, _arg1); } public static function getInstance():User{ if (_instance == null){ return (new (User)); }; return (_instance); } } }//package

Library Items

Symbol 1 FontUsed by:2
Symbol 2 TextUses:1Used by:3
Symbol 3 MovieClip {assets.fog_1} [assets.fog_1]Uses:2
Symbol 4 GraphicUsed by:11
Symbol 5 FontUsed by:6
Symbol 6 EditableTextUses:5Used by:11
Symbol 7 ShapeTweeningUsed by:11
Symbol 8 FontUsed by:9
Symbol 9 TextUses:8Used by:11
Symbol 10 GraphicUsed by:11
Symbol 11 MovieClip {assets_fla.prelMCxcopy_ovidiu2_150} [assets_fla.prelMCxcopy_ovidiu2_150]Uses:4 6 7 9 10Used by:59
Symbol 12 BitmapUsed by:13
Symbol 13 GraphicUses:12Used by:54 56
Symbol 14 BitmapUsed by:15
Symbol 15 GraphicUses:14Used by:54
Symbol 16 BitmapUsed by:17
Symbol 17 GraphicUses:16Used by:54
Symbol 18 BitmapUsed by:19
Symbol 19 GraphicUses:18Used by:54
Symbol 20 BitmapUsed by:21
Symbol 21 GraphicUses:20Used by:54
Symbol 22 BitmapUsed by:23
Symbol 23 GraphicUses:22Used by:54
Symbol 24 BitmapUsed by:25
Symbol 25 GraphicUses:24Used by:54
Symbol 26 BitmapUsed by:27
Symbol 27 GraphicUses:26Used by:54
Symbol 28 BitmapUsed by:29
Symbol 29 GraphicUses:28Used by:54
Symbol 30 BitmapUsed by:31
Symbol 31 GraphicUses:30Used by:54
Symbol 32 BitmapUsed by:33
Symbol 33 GraphicUses:32Used by:54
Symbol 34 BitmapUsed by:35
Symbol 35 GraphicUses:34Used by:54
Symbol 36 BitmapUsed by:37
Symbol 37 GraphicUses:36Used by:54
Symbol 38 BitmapUsed by:39
Symbol 39 GraphicUses:38Used by:54
Symbol 40 BitmapUsed by:41
Symbol 41 GraphicUses:40Used by:54
Symbol 42 BitmapUsed by:43
Symbol 43 GraphicUses:42Used by:54
Symbol 44 BitmapUsed by:45
Symbol 45 GraphicUses:44Used by:54
Symbol 46 BitmapUsed by:47
Symbol 47 GraphicUses:46Used by:54
Symbol 48 BitmapUsed by:49
Symbol 49 GraphicUses:48Used by:54
Symbol 50 BitmapUsed by:51
Symbol 51 GraphicUses:50Used by:54
Symbol 52 BitmapUsed by:53
Symbol 53 GraphicUses:52Used by:54
Symbol 54 MovieClipUses:13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53Used by:56
Symbol 55 Sound {assets.fogaudio} [assets.fogaudio]Used by:56
Symbol 56 MovieClip {assets_fla.fog_logo_temp_151} [assets_fla.fog_logo_temp_151]Uses:13 54 55Used by:59
Symbol 57 GraphicUsed by:58
Symbol 58 ButtonUses:57Used by:59
Symbol 59 MovieClip {assets.Preloader} [assets.Preloader]Uses:11 56 58
Symbol 60 GraphicUsed by:63 88
Symbol 61 BitmapUsed by:62
Symbol 62 GraphicUses:61Used by:63 85 88
Symbol 63 MovieClipUses:60 62Used by:88
Symbol 64 BitmapUsed by:65
Symbol 65 GraphicUses:64Used by:66 88
Symbol 66 MovieClipUses:65Used by:67
Symbol 67 MovieClip {assets_fla.mc_bomb_17} [assets_fla.mc_bomb_17]Uses:66Used by:88
Symbol 68 GraphicUsed by:69 88
Symbol 69 MovieClipUses:68Used by:76
Symbol 70 GraphicUsed by:71 88
Symbol 71 MovieClipUses:70Used by:76
Symbol 72 ShapeTweeningUsed by:76 88
Symbol 73 ShapeTweeningUsed by:76
Symbol 74 ShapeTweeningUsed by:76
Symbol 75 GraphicUsed by:76
Symbol 76 MovieClipUses:69 71 72 73 74 75Used by:77
Symbol 77 MovieClipUses:76Used by:81
Symbol 78 GraphicUsed by:79 88
Symbol 79 MovieClipUses:78Used by:80
Symbol 80 MovieClipUses:79Used by:81
Symbol 81 MovieClipUses:77 80Used by:82
Symbol 82 MovieClipUses:81Used by:83
Symbol 83 MovieClipUses:82Used by:88
Symbol 84 GraphicUsed by:85 88
Symbol 85 MovieClipUses:84 62Used by:88
Symbol 86 FontUsed by:87 180 181 193 194 195 203 204 205 211 213 217 223 232 1715 1717
Symbol 87 TextUses:86Used by:88
Symbol 88 Button {assets.buttonBlastone} [assets.buttonBlastone]Uses:63 67 83 85 87 60 62 65 68 70 72 78 84
Symbol 89 FontUsed by:90 235 236 1739
Symbol 90 TextUses:89Used by:92
Symbol 91 GraphicUsed by:92
Symbol 92 MovieClip {assets.MovieClipGetReady} [assets.MovieClipGetReady]Uses:90 91
Symbol 93 BitmapUsed by:94
Symbol 94 GraphicUses:93Used by:139
Symbol 95 GraphicUsed by:138
Symbol 96 FontUsed by:97
Symbol 97 TextUses:96Used by:138
Symbol 98 GraphicUsed by:138
Symbol 99 GraphicUsed by:138
Symbol 100 GraphicUsed by:138
Symbol 101 GraphicUsed by:138
Symbol 102 GraphicUsed by:138
Symbol 103 GraphicUsed by:138
Symbol 104 GraphicUsed by:138
Symbol 105 GraphicUsed by:138
Symbol 106 GraphicUsed by:138
Symbol 107 GraphicUsed by:138
Symbol 108 GraphicUsed by:138
Symbol 109 GraphicUsed by:138
Symbol 110 GraphicUsed by:138
Symbol 111 GraphicUsed by:138
Symbol 112 GraphicUsed by:138
Symbol 113 GraphicUsed by:138
Symbol 114 GraphicUsed by:138
Symbol 115 GraphicUsed by:138
Symbol 116 GraphicUsed by:138
Symbol 117 GraphicUsed by:138
Symbol 118 GraphicUsed by:138
Symbol 119 GraphicUsed by:138
Symbol 120 GraphicUsed by:138
Symbol 121 GraphicUsed by:138
Symbol 122 GraphicUsed by:138
Symbol 123 GraphicUsed by:138
Symbol 124 GraphicUsed by:138
Symbol 125 GraphicUsed by:138
Symbol 126 GraphicUsed by:138
Symbol 127 GraphicUsed by:138
Symbol 128 GraphicUsed by:138
Symbol 129 GraphicUsed by:138
Symbol 130 GraphicUsed by:138
Symbol 131 GraphicUsed by:138
Symbol 132 GraphicUsed by:138
Symbol 133 GraphicUsed by:138
Symbol 134 GraphicUsed by:138
Symbol 135 GraphicUsed by:138
Symbol 136 GraphicUsed by:138
Symbol 137 GraphicUsed by:138
Symbol 138 MovieClipUses:95 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137Used by:139 1752
Symbol 139 MovieClip {assets.MovieClipTitle} [assets.MovieClipTitle]Uses:94 138
Symbol 140 FontUsed by:141 143 144 148 150 162 163 166 167 197 199 206 219 220 226 2027 2029
Symbol 141 TextUses:140Used by:146
Symbol 142 GraphicUsed by:146 165 207
Symbol 143 TextUses:140Used by:146
Symbol 144 TextUses:140Used by:146
Symbol 145 GraphicUsed by:146
Symbol 146 Button {assets.ButtonPlay} [assets.ButtonPlay]Uses:141 142 143 144 145
Symbol 147 Bitmap {assets.BitmapFlag} [assets.BitmapFlag]
Symbol 148 TextUses:140Used by:152
Symbol 149 GraphicUsed by:152 169
Symbol 150 TextUses:140Used by:152
Symbol 151 GraphicUsed by:152
Symbol 152 Button {assets.ButtonMoreGames} [assets.ButtonMoreGames]Uses:148 149 150 151
Symbol 153 FontUsed by:154 184 1740
Symbol 154 TextUses:153Used by:161
Symbol 155 FontUsed by:156 157 208 215 224 230 1716 1745 1746 2006 2026
Symbol 156 TextUses:155Used by:161
Symbol 157 EditableTextUses:155Used by:160
Symbol 158 GraphicUsed by:159
Symbol 159 ButtonUses:158Used by:160 1752
Symbol 160 MovieClip {assets_fla.credits_186} [assets_fla.credits_186]Uses:157 159Used by:161
Symbol 161 MovieClip {assets.MovieClipHelp} [assets.MovieClipHelp]Uses:154 156 160
Symbol 162 TextUses:140Used by:165
Symbol 163 TextUses:140Used by:165
Symbol 164 GraphicUsed by:165
Symbol 165 ButtonUses:162 142 163 164Used by:186 238
Symbol 166 TextUses:140Used by:169
Symbol 167 TextUses:140Used by:169
Symbol 168 GraphicUsed by:169
Symbol 169 ButtonUses:166 149 167 168Used by:186 238
Symbol 170 FontUsed by:171 173 176 177
Symbol 171 TextUses:170Used by:175
Symbol 172 GraphicUsed by:175 179
Symbol 173 TextUses:170Used by:175
Symbol 174 GraphicUsed by:175
Symbol 175 ButtonUses:171 172 173 174Used by:186 238
Symbol 176 TextUses:170Used by:179
Symbol 177 TextUses:170Used by:179
Symbol 178 GraphicUsed by:179
Symbol 179 ButtonUses:176 172 177 178Used by:186 238
Symbol 180 EditableTextUses:86Used by:186
Symbol 181 TextUses:86Used by:186
Symbol 182 GraphicUsed by:183
Symbol 183 MovieClipUses:182Used by:186 196 238
Symbol 184 EditableTextUses:153Used by:186 238
Symbol 185 GraphicUsed by:186
Symbol 186 MovieClip {assets.MovieClipCars} [assets.MovieClipCars]Uses:165 169 175 179 180 181 183 184 185
Symbol 187 Sound {assets.TrackExtreme} [assets.TrackExtreme]
Symbol 188 Sound {assets.SoundBoost} [assets.SoundBoost]
Symbol 189 Sound {assets.TrackBurn} [assets.TrackBurn]
Symbol 190 Sound {assets.SoundCash} [assets.SoundCash]
Symbol 191 Sound {assets.SoundClick} [assets.SoundClick]
Symbol 192 GraphicUsed by:196
Symbol 193 EditableTextUses:86Used by:196
Symbol 194 EditableTextUses:86Used by:196
Symbol 195 EditableTextUses:86Used by:196
Symbol 196 MovieClip {assets.MovieClipStandingsItem} [assets.MovieClipStandingsItem]Uses:192 183 193 194 195
Symbol 197 TextUses:140Used by:201
Symbol 198 GraphicUsed by:201
Symbol 199 TextUses:140Used by:201
Symbol 200 GraphicUsed by:201
Symbol 201 ButtonUses:197 198 199 200Used by:207
Symbol 202 GraphicUsed by:207
Symbol 203 TextUses:86Used by:207 229
Symbol 204 TextUses:86Used by:207 229
Symbol 205 TextUses:86Used by:207 229
Symbol 206 TextUses:140Used by:207
Symbol 207 MovieClip {assets.MovieClipSubmit} [assets.MovieClipSubmit]Uses:201 202 203 204 205 206 142
Symbol 208 EditableTextUses:155Used by:209
Symbol 209 MovieClip {assets.MovieClipStandingsPlayer} [assets.MovieClipStandingsPlayer]Uses:208
Symbol 210 MovieClip {assets.MovieClipStandingsTrackText} [assets.MovieClipStandingsTrackText]
Symbol 211 EditableTextUses:86Used by:212
Symbol 212 MovieClip {assets.MovieClipStandingsPointsFirst} [assets.MovieClipStandingsPointsFirst]Uses:211
Symbol 213 EditableTextUses:86Used by:214
Symbol 214 MovieClip {assets.MovieClipStandingsPointsSecond} [assets.MovieClipStandingsPointsSecond]Uses:213
Symbol 215 EditableTextUses:155Used by:216
Symbol 216 MovieClip {assets.MovieClipStandingsPointsDefault} [assets.MovieClipStandingsPointsDefault]Uses:215
Symbol 217 TextUses:86Used by:218
Symbol 218 MovieClip {assets.MovieClipStandingsTotal} [assets.MovieClipStandingsTotal]Uses:217
Symbol 219 TextUses:140Used by:222
Symbol 220 TextUses:140Used by:222
Symbol 221 GraphicUsed by:222
Symbol 222 ButtonUses:219 220 221Used by:229 1721 2032
Symbol 223 TextUses:86Used by:229
Symbol 224 EditableTextUses:155Used by:229
Symbol 225 GraphicUsed by:229
Symbol 226 TextUses:140Used by:228
Symbol 227 GraphicUsed by:228
Symbol 228 MovieClipUses:226 227Used by:229
Symbol 229 MovieClip {assets.MovieClipStandings} [assets.MovieClipStandings]Uses:222 223 224 225 228 203 204 205
Symbol 230 EditableTextUses:155Used by:231
Symbol 231 MovieClip {assets.MovieClipStandingsTotals} [assets.MovieClipStandingsTotals]Uses:230
Symbol 232 EditableTextUses:86Used by:233
Symbol 233 MovieClip {assets.MovieClipStandingsPointsThird} [assets.MovieClipStandingsPointsThird]Uses:232
Symbol 234 Bitmap {assets.BitmapDataTilesPreview} [assets.BitmapDataTilesPreview]
Symbol 235 EditableTextUses:89Used by:238
Symbol 236 TextUses:89Used by:238
Symbol 237 GraphicUsed by:238
Symbol 238 MovieClip {assets.MovieClipTracks} [assets.MovieClipTracks]Uses:175 179 183 165 169 184 235 236 237
Symbol 239 GraphicUsed by:241
Symbol 240 MovieClipUsed by:241
Symbol 241 MovieClip {assets_fla.car_2} [assets_fla.car_2]Uses:239 240Used by:485 729 973 1217 1469 1713
Symbol 242 BitmapUsed by:243
Symbol 243 GraphicUses:242Used by:484
Symbol 244 BitmapUsed by:245
Symbol 245 GraphicUses:244Used by:484
Symbol 246 BitmapUsed by:247
Symbol 247 GraphicUses:246Used by:484
Symbol 248 BitmapUsed by:249
Symbol 249 GraphicUses:248Used by:484
Symbol 250 BitmapUsed by:251
Symbol 251 GraphicUses:250Used by:484
Symbol 252 BitmapUsed by:253
Symbol 253 GraphicUses:252Used by:484
Symbol 254 BitmapUsed by:255
Symbol 255 GraphicUses:254Used by:484
Symbol 256 BitmapUsed by:257
Symbol 257 GraphicUses:256Used by:484
Symbol 258 BitmapUsed by:259
Symbol 259 GraphicUses:258Used by:484
Symbol 260 BitmapUsed by:261
Symbol 261 GraphicUses:260Used by:484
Symbol 262 BitmapUsed by:263
Symbol 263 GraphicUses:262Used by:484
Symbol 264 BitmapUsed by:265
Symbol 265 GraphicUses:264Used by:484
Symbol 266 BitmapUsed by:267
Symbol 267 GraphicUses:266Used by:484
Symbol 268 BitmapUsed by:269
Symbol 269 GraphicUses:268Used by:484
Symbol 270 BitmapUsed by:271
Symbol 271 GraphicUses:270Used by:484
Symbol 272 BitmapUsed by:273
Symbol 273 GraphicUses:272Used by:484
Symbol 274 BitmapUsed by:275
Symbol 275 GraphicUses:274Used by:484
Symbol 276 BitmapUsed by:277
Symbol 277 GraphicUses:276Used by:484
Symbol 278 BitmapUsed by:279
Symbol 279 GraphicUses:278Used by:484
Symbol 280 BitmapUsed by:281
Symbol 281 GraphicUses:280Used by:484
Symbol 282 BitmapUsed by:283
Symbol 283 GraphicUses:282Used by:484
Symbol 284 BitmapUsed by:285
Symbol 285 GraphicUses:284Used by:484
Symbol 286 BitmapUsed by:287
Symbol 287 GraphicUses:286Used by:484
Symbol 288 BitmapUsed by:289
Symbol 289 GraphicUses:288Used by:484
Symbol 290 BitmapUsed by:291
Symbol 291 GraphicUses:290Used by:484
Symbol 292 BitmapUsed by:293
Symbol 293 GraphicUses:292Used by:484
Symbol 294 BitmapUsed by:295
Symbol 295 GraphicUses:294Used by:484
Symbol 296 BitmapUsed by:297
Symbol 297 GraphicUses:296Used by:484
Symbol 298 BitmapUsed by:299
Symbol 299 GraphicUses:298Used by:484
Symbol 300 BitmapUsed by:301
Symbol 301 GraphicUses:300Used by:484
Symbol 302 BitmapUsed by:303
Symbol 303 GraphicUses:302Used by:484
Symbol 304 BitmapUsed by:305
Symbol 305 GraphicUses:304Used by:484
Symbol 306 BitmapUsed by:307
Symbol 307 GraphicUses:306Used by:484
Symbol 308 BitmapUsed by:309
Symbol 309 GraphicUses:308Used by:484
Symbol 310 BitmapUsed by:311
Symbol 311 GraphicUses:310Used by:484
Symbol 312 BitmapUsed by:313
Symbol 313 GraphicUses:312Used by:484
Symbol 314 BitmapUsed by:315
Symbol 315 GraphicUses:314Used by:484
Symbol 316 BitmapUsed by:317
Symbol 317 GraphicUses:316Used by:484
Symbol 318 BitmapUsed by:319
Symbol 319 GraphicUses:318Used by:484
Symbol 320 BitmapUsed by:321
Symbol 321 GraphicUses:320Used by:484
Symbol 322 BitmapUsed by:323
Symbol 323 GraphicUses:322Used by:484
Symbol 324 BitmapUsed by:325
Symbol 325 GraphicUses:324Used by:484
Symbol 326 BitmapUsed by:327
Symbol 327 GraphicUses:326Used by:484
Symbol 328 BitmapUsed by:329
Symbol 329 GraphicUses:328Used by:484
Symbol 330 BitmapUsed by:331
Symbol 331 GraphicUses:330Used by:484
Symbol 332 BitmapUsed by:333
Symbol 333 GraphicUses:332Used by:484
Symbol 334 BitmapUsed by:335
Symbol 335 GraphicUses:334Used by:484
Symbol 336 BitmapUsed by:337
Symbol 337 GraphicUses:336Used by:484
Symbol 338 BitmapUsed by:339
Symbol 339 GraphicUses:338Used by:484
Symbol 340 BitmapUsed by:341
Symbol 341 GraphicUses:340Used by:484
Symbol 342 BitmapUsed by:343
Symbol 343 GraphicUses:342Used by:484
Symbol 344 BitmapUsed by:345
Symbol 345 GraphicUses:344Used by:484
Symbol 346 BitmapUsed by:347
Symbol 347 GraphicUses:346Used by:484
Symbol 348 BitmapUsed by:349
Symbol 349 GraphicUses:348Used by:484
Symbol 350 BitmapUsed by:351
Symbol 351 GraphicUses:350Used by:484
Symbol 352 BitmapUsed by:353
Symbol 353 GraphicUses:352Used by:484
Symbol 354 BitmapUsed by:355
Symbol 355 GraphicUses:354Used by:484
Symbol 356 BitmapUsed by:357
Symbol 357 GraphicUses:356Used by:484
Symbol 358 BitmapUsed by:359
Symbol 359 GraphicUses:358Used by:484
Symbol 360 BitmapUsed by:361
Symbol 361 GraphicUses:360Used by:484
Symbol 362 BitmapUsed by:363
Symbol 363 GraphicUses:362Used by:484
Symbol 364 BitmapUsed by:365
Symbol 365 GraphicUses:364Used by:484
Symbol 366 BitmapUsed by:367
Symbol 367 GraphicUses:366Used by:484
Symbol 368 BitmapUsed by:369
Symbol 369 GraphicUses:368Used by:484
Symbol 370 BitmapUsed by:371
Symbol 371 GraphicUses:370Used by:484
Symbol 372 BitmapUsed by:373
Symbol 373 GraphicUses:372Used by:484
Symbol 374 BitmapUsed by:375
Symbol 375 GraphicUses:374Used by:484
Symbol 376 BitmapUsed by:377
Symbol 377 GraphicUses:376Used by:484
Symbol 378 BitmapUsed by:379
Symbol 379 GraphicUses:378Used by:484
Symbol 380 BitmapUsed by:381
Symbol 381 GraphicUses:380Used by:484
Symbol 382 BitmapUsed by:383
Symbol 383 GraphicUses:382Used by:484
Symbol 384 BitmapUsed by:385
Symbol 385 GraphicUses:384Used by:484
Symbol 386 BitmapUsed by:387
Symbol 387 GraphicUses:386Used by:484
Symbol 388 BitmapUsed by:389
Symbol 389 GraphicUses:388Used by:484
Symbol 390 BitmapUsed by:391
Symbol 391 GraphicUses:390Used by:484
Symbol 392 BitmapUsed by:393
Symbol 393 GraphicUses:392Used by:484
Symbol 394 BitmapUsed by:395
Symbol 395 GraphicUses:394Used by:484
Symbol 396 BitmapUsed by:397
Symbol 397 GraphicUses:396Used by:484
Symbol 398 BitmapUsed by:399
Symbol 399 GraphicUses:398Used by:484
Symbol 400 BitmapUsed by:401
Symbol 401 GraphicUses:400Used by:484
Symbol 402 BitmapUsed by:403
Symbol 403 GraphicUses:402Used by:484
Symbol 404 BitmapUsed by:405
Symbol 405 GraphicUses:404Used by:484
Symbol 406 BitmapUsed by:407
Symbol 407 GraphicUses:406Used by:484
Symbol 408 BitmapUsed by:409
Symbol 409 GraphicUses:408Used by:484
Symbol 410 BitmapUsed by:411
Symbol 411 GraphicUses:410Used by:484
Symbol 412 BitmapUsed by:413
Symbol 413 GraphicUses:412Used by:484
Symbol 414 BitmapUsed by:415
Symbol 415 GraphicUses:414Used by:484
Symbol 416 BitmapUsed by:417
Symbol 417 GraphicUses:416Used by:484
Symbol 418 BitmapUsed by:419
Symbol 419 GraphicUses:418Used by:484
Symbol 420 BitmapUsed by:421
Symbol 421 GraphicUses:420Used by:484
Symbol 422 BitmapUsed by:423
Symbol 423 GraphicUses:422Used by:484
Symbol 424 BitmapUsed by:425
Symbol 425 GraphicUses:424Used by:484
Symbol 426 BitmapUsed by:427
Symbol 427 GraphicUses:426Used by:484
Symbol 428 BitmapUsed by:429
Symbol 429 GraphicUses:428Used by:484
Symbol 430 BitmapUsed by:431
Symbol 431 GraphicUses:430Used by:484
Symbol 432 BitmapUsed by:433
Symbol 433 GraphicUses:432Used by:484
Symbol 434 BitmapUsed by:435
Symbol 435 GraphicUses:434Used by:484
Symbol 436 BitmapUsed by:437
Symbol 437 GraphicUses:436Used by:484
Symbol 438 BitmapUsed by:439
Symbol 439 GraphicUses:438Used by:484
Symbol 440 BitmapUsed by:441
Symbol 441 GraphicUses:440Used by:484
Symbol 442 BitmapUsed by:443
Symbol 443 GraphicUses:442Used by:484
Symbol 444 BitmapUsed by:445
Symbol 445 GraphicUses:444Used by:484
Symbol 446 BitmapUsed by:447
Symbol 447 GraphicUses:446Used by:484
Symbol 448 BitmapUsed by:449
Symbol 449 GraphicUses:448Used by:484
Symbol 450 BitmapUsed by:451
Symbol 451 GraphicUses:450Used by:484
Symbol 452 BitmapUsed by:453
Symbol 453 GraphicUses:452Used by:484
Symbol 454 BitmapUsed by:455
Symbol 455 GraphicUses:454Used by:484
Symbol 456 BitmapUsed by:457
Symbol 457 GraphicUses:456Used by:484
Symbol 458 BitmapUsed by:459
Symbol 459 GraphicUses:458Used by:484
Symbol 460 BitmapUsed by:461
Symbol 461 GraphicUses:460Used by:484
Symbol 462 BitmapUsed by:463
Symbol 463 GraphicUses:462Used by:484
Symbol 464 BitmapUsed by:465
Symbol 465 GraphicUses:464Used by:484
Symbol 466 BitmapUsed by:467
Symbol 467 GraphicUses:466Used by:484
Symbol 468 BitmapUsed by:469
Symbol 469 GraphicUses:468Used by:484
Symbol 470 BitmapUsed by:471
Symbol 471 GraphicUses:470Used by:484
Symbol 472 BitmapUsed by:473
Symbol 473 GraphicUses:472Used by:484
Symbol 474 BitmapUsed by:475
Symbol 475 GraphicUses:474Used by:484
Symbol 476 BitmapUsed by:477
Symbol 477 GraphicUses:476Used by:484
Symbol 478 BitmapUsed by:479
Symbol 479 GraphicUses:478Used by:484
Symbol 480 BitmapUsed by:481
Symbol 481 GraphicUses:480Used by:484
Symbol 482 BitmapUsed by:483
Symbol 483 GraphicUses:482Used by:484
Symbol 484 MovieClip {assets_fla.car_10} [assets_fla.car_10]Uses:243 245 247 249 251 253 255 257 259 261 263 265 267 269 271 273 275 277 279 281 283 285 287 289 291 293 295 297 299 301 303 305 307 309 311 313 315 317 319 321 323 325 327 329 331 333 335 337 339 341 343 345 347 349 351 353 355 357 359 361 363 365 367 369 371 373 375 377 379 381 383 385 387 389 391 393 395 397 399 401 403 405 407 409 411 413 415 417 419 421 423 425 427 429 431 433 435 437 439 441 443 445 447 449 451 453 455 457 459 461 463 465 467 469 471 473 475 477 479 481 483Used by:485
Symbol 485 MovieClip {assets.MovieClipCarAlfa} [assets.MovieClipCarAlfa]Uses:241 484
Symbol 486 BitmapUsed by:487
Symbol 487 GraphicUses:486Used by:728
Symbol 488 BitmapUsed by:489
Symbol 489 GraphicUses:488Used by:728
Symbol 490 BitmapUsed by:491
Symbol 491 GraphicUses:490Used by:728
Symbol 492 BitmapUsed by:493
Symbol 493 GraphicUses:492Used by:728
Symbol 494 BitmapUsed by:495
Symbol 495 GraphicUses:494Used by:728
Symbol 496 BitmapUsed by:497
Symbol 497 GraphicUses:496Used by:728
Symbol 498 BitmapUsed by:499
Symbol 499 GraphicUses:498Used by:728
Symbol 500 BitmapUsed by:501
Symbol 501 GraphicUses:500Used by:728
Symbol 502 BitmapUsed by:503
Symbol 503 GraphicUses:502Used by:728
Symbol 504 BitmapUsed by:505
Symbol 505 GraphicUses:504Used by:728
Symbol 506 BitmapUsed by:507
Symbol 507 GraphicUses:506Used by:728
Symbol 508 BitmapUsed by:509
Symbol 509 GraphicUses:508Used by:728
Symbol 510 BitmapUsed by:511
Symbol 511 GraphicUses:510Used by:728
Symbol 512 BitmapUsed by:513
Symbol 513 GraphicUses:512Used by:728
Symbol 514 BitmapUsed by:515
Symbol 515 GraphicUses:514Used by:728
Symbol 516 BitmapUsed by:517
Symbol 517 GraphicUses:516Used by:728
Symbol 518 BitmapUsed by:519
Symbol 519 GraphicUses:518Used by:728
Symbol 520 BitmapUsed by:521
Symbol 521 GraphicUses:520Used by:728
Symbol 522 BitmapUsed by:523
Symbol 523 GraphicUses:522Used by:728
Symbol 524 BitmapUsed by:525
Symbol 525 GraphicUses:524Used by:728
Symbol 526 BitmapUsed by:527
Symbol 527 GraphicUses:526Used by:728
Symbol 528 BitmapUsed by:529
Symbol 529 GraphicUses:528Used by:728
Symbol 530 BitmapUsed by:531
Symbol 531 GraphicUses:530Used by:728
Symbol 532 BitmapUsed by:533
Symbol 533 GraphicUses:532Used by:728
Symbol 534 BitmapUsed by:535
Symbol 535 GraphicUses:534Used by:728
Symbol 536 BitmapUsed by:537
Symbol 537 GraphicUses:536Used by:728
Symbol 538 BitmapUsed by:539
Symbol 539 GraphicUses:538Used by:728
Symbol 540 BitmapUsed by:541
Symbol 541 GraphicUses:540Used by:728
Symbol 542 BitmapUsed by:543
Symbol 543 GraphicUses:542Used by:728
Symbol 544 BitmapUsed by:545
Symbol 545 GraphicUses:544Used by:728
Symbol 546 BitmapUsed by:547
Symbol 547 GraphicUses:546Used by:728
Symbol 548 BitmapUsed by:549
Symbol 549 GraphicUses:548Used by:728
Symbol 550 BitmapUsed by:551
Symbol 551 GraphicUses:550Used by:728
Symbol 552 BitmapUsed by:553
Symbol 553 GraphicUses:552Used by:728
Symbol 554 BitmapUsed by:555
Symbol 555 GraphicUses:554Used by:728
Symbol 556 BitmapUsed by:557
Symbol 557 GraphicUses:556Used by:728
Symbol 558 BitmapUsed by:559
Symbol 559 GraphicUses:558Used by:728
Symbol 560 BitmapUsed by:561
Symbol 561 GraphicUses:560Used by:728
Symbol 562 BitmapUsed by:563
Symbol 563 GraphicUses:562Used by:728
Symbol 564 BitmapUsed by:565
Symbol 565 GraphicUses:564Used by:728
Symbol 566 BitmapUsed by:567
Symbol 567 GraphicUses:566Used by:728
Symbol 568 BitmapUsed by:569
Symbol 569 GraphicUses:568Used by:728
Symbol 570 BitmapUsed by:571
Symbol 571 GraphicUses:570Used by:728
Symbol 572 BitmapUsed by:573
Symbol 573 GraphicUses:572Used by:728
Symbol 574 BitmapUsed by:575
Symbol 575 GraphicUses:574Used by:728
Symbol 576 BitmapUsed by:577
Symbol 577 GraphicUses:576Used by:728
Symbol 578 BitmapUsed by:579
Symbol 579 GraphicUses:578Used by:728
Symbol 580 BitmapUsed by:581
Symbol 581 GraphicUses:580Used by:728
Symbol 582 BitmapUsed by:583
Symbol 583 GraphicUses:582Used by:728
Symbol 584 BitmapUsed by:585
Symbol 585 GraphicUses:584Used by:728
Symbol 586 BitmapUsed by:587
Symbol 587 GraphicUses:586Used by:728
Symbol 588 BitmapUsed by:589
Symbol 589 GraphicUses:588Used by:728
Symbol 590 BitmapUsed by:591
Symbol 591 GraphicUses:590Used by:728
Symbol 592 BitmapUsed by:593
Symbol 593 GraphicUses:592Used by:728
Symbol 594 BitmapUsed by:595
Symbol 595 GraphicUses:594Used by:728
Symbol 596 BitmapUsed by:597
Symbol 597 GraphicUses:596Used by:728
Symbol 598 BitmapUsed by:599
Symbol 599 GraphicUses:598Used by:728
Symbol 600 BitmapUsed by:601
Symbol 601 GraphicUses:600Used by:728
Symbol 602 BitmapUsed by:603
Symbol 603 GraphicUses:602Used by:728
Symbol 604 BitmapUsed by:605
Symbol 605 GraphicUses:604Used by:728
Symbol 606 BitmapUsed by:607
Symbol 607 GraphicUses:606Used by:728
Symbol 608 BitmapUsed by:609
Symbol 609 GraphicUses:608Used by:728
Symbol 610 BitmapUsed by:611
Symbol 611 GraphicUses:610Used by:728
Symbol 612 BitmapUsed by:613
Symbol 613 GraphicUses:612Used by:728
Symbol 614 BitmapUsed by:615
Symbol 615 GraphicUses:614Used by:728
Symbol 616 BitmapUsed by:617
Symbol 617 GraphicUses:616Used by:728
Symbol 618 BitmapUsed by:619
Symbol 619 GraphicUses:618Used by:728
Symbol 620 BitmapUsed by:621
Symbol 621 GraphicUses:620Used by:728
Symbol 622 BitmapUsed by:623
Symbol 623 GraphicUses:622Used by:728
Symbol 624 BitmapUsed by:625
Symbol 625 GraphicUses:624Used by:728
Symbol 626 BitmapUsed by:627
Symbol 627 GraphicUses:626Used by:728
Symbol 628 BitmapUsed by:629
Symbol 629 GraphicUses:628Used by:728
Symbol 630 BitmapUsed by:631
Symbol 631 GraphicUses:630Used by:728
Symbol 632 BitmapUsed by:633
Symbol 633 GraphicUses:632Used by:728
Symbol 634 BitmapUsed by:635
Symbol 635 GraphicUses:634Used by:728
Symbol 636 BitmapUsed by:637
Symbol 637 GraphicUses:636Used by:728
Symbol 638 BitmapUsed by:639
Symbol 639 GraphicUses:638Used by:728
Symbol 640 BitmapUsed by:641
Symbol 641 GraphicUses:640Used by:728
Symbol 642 BitmapUsed by:643
Symbol 643 GraphicUses:642Used by:728
Symbol 644 BitmapUsed by:645
Symbol 645 GraphicUses:644Used by:728
Symbol 646 BitmapUsed by:647
Symbol 647 GraphicUses:646Used by:728
Symbol 648 BitmapUsed by:649
Symbol 649 GraphicUses:648Used by:728
Symbol 650 BitmapUsed by:651
Symbol 651 GraphicUses:650Used by:728
Symbol 652 BitmapUsed by:653
Symbol 653 GraphicUses:652Used by:728
Symbol 654 BitmapUsed by:655
Symbol 655 GraphicUses:654Used by:728
Symbol 656 BitmapUsed by:657
Symbol 657 GraphicUses:656Used by:728
Symbol 658 BitmapUsed by:659
Symbol 659 GraphicUses:658Used by:728
Symbol 660 BitmapUsed by:661
Symbol 661 GraphicUses:660Used by:728
Symbol 662 BitmapUsed by:663
Symbol 663 GraphicUses:662Used by:728
Symbol 664 BitmapUsed by:665
Symbol 665 GraphicUses:664Used by:728
Symbol 666 BitmapUsed by:667
Symbol 667 GraphicUses:666Used by:728
Symbol 668 BitmapUsed by:669
Symbol 669 GraphicUses:668Used by:728
Symbol 670 BitmapUsed by:671
Symbol 671 GraphicUses:670Used by:728
Symbol 672 BitmapUsed by:673
Symbol 673 GraphicUses:672Used by:728
Symbol 674 BitmapUsed by:675
Symbol 675 GraphicUses:674Used by:728
Symbol 676 BitmapUsed by:677
Symbol 677 GraphicUses:676Used by:728
Symbol 678 BitmapUsed by:679
Symbol 679 GraphicUses:678Used by:728
Symbol 680 BitmapUsed by:681
Symbol 681 GraphicUses:680Used by:728
Symbol 682 BitmapUsed by:683
Symbol 683 GraphicUses:682Used by:728
Symbol 684 BitmapUsed by:685
Symbol 685 GraphicUses:684Used by:728
Symbol 686 BitmapUsed by:687
Symbol 687 GraphicUses:686Used by:728
Symbol 688 BitmapUsed by:689
Symbol 689 GraphicUses:688Used by:728
Symbol 690 BitmapUsed by:691
Symbol 691 GraphicUses:690Used by:728
Symbol 692 BitmapUsed by:693
Symbol 693 GraphicUses:692Used by:728
Symbol 694 BitmapUsed by:695
Symbol 695 GraphicUses:694Used by:728
Symbol 696 BitmapUsed by:697
Symbol 697 GraphicUses:696Used by:728
Symbol 698 BitmapUsed by:699
Symbol 699 GraphicUses:698Used by:728
Symbol 700 BitmapUsed by:701
Symbol 701 GraphicUses:700Used by:728
Symbol 702 BitmapUsed by:703
Symbol 703 GraphicUses:702Used by:728
Symbol 704 BitmapUsed by:705
Symbol 705 GraphicUses:704Used by:728
Symbol 706 BitmapUsed by:707
Symbol 707 GraphicUses:706Used by:728
Symbol 708 BitmapUsed by:709
Symbol 709 GraphicUses:708Used by:728
Symbol 710 BitmapUsed by:711
Symbol 711 GraphicUses:710Used by:728
Symbol 712 BitmapUsed by:713
Symbol 713 GraphicUses:712Used by:728
Symbol 714 BitmapUsed by:715
Symbol 715 GraphicUses:714Used by:728
Symbol 716 BitmapUsed by:717
Symbol 717 GraphicUses:716Used by:728
Symbol 718 BitmapUsed by:719
Symbol 719 GraphicUses:718Used by:728
Symbol 720 BitmapUsed by:721
Symbol 721 GraphicUses:720Used by:728
Symbol 722 BitmapUsed by:723
Symbol 723 GraphicUses:722Used by:728
Symbol 724 BitmapUsed by:725
Symbol 725 GraphicUses:724Used by:728
Symbol 726 BitmapUsed by:727
Symbol 727 GraphicUses:726Used by:728
Symbol 728 MovieClip {assets_fla.car_14} [assets_fla.car_14]Uses:487 489 491 493 495 497 499 501 503 505 507 509 511 513 515 517 519 521 523 525 527 529 531 533 535 537 539 541 543 545 547 549 551 553 555 557 559 561 563 565 567 569 571 573 575 577 579 581 583 585 587 589 591 593 595 597 599 601 603 605 607 609 611 613 615 617 619 621 623 625 627 629 631 633 635 637 639 641 643 645 647 649 651 653 655 657 659 661 663 665 667 669 671 673 675 677 679 681 683 685 687 689 691 693 695 697 699 701 703 705 707 709 711 713 715 717 719 721 723 725 727Used by:729
Symbol 729 MovieClip {assets.MovieClipCarCelica} [assets.MovieClipCarCelica]Uses:241 728
Symbol 730 BitmapUsed by:731
Symbol 731 GraphicUses:730Used by:972
Symbol 732 BitmapUsed by:733
Symbol 733 GraphicUses:732Used by:972
Symbol 734 BitmapUsed by:735
Symbol 735 GraphicUses:734Used by:972
Symbol 736 BitmapUsed by:737
Symbol 737 GraphicUses:736Used by:972
Symbol 738 BitmapUsed by:739
Symbol 739 GraphicUses:738Used by:972
Symbol 740 BitmapUsed by:741
Symbol 741 GraphicUses:740Used by:972
Symbol 742 BitmapUsed by:743
Symbol 743 GraphicUses:742Used by:972
Symbol 744 BitmapUsed by:745
Symbol 745 GraphicUses:744Used by:972
Symbol 746 BitmapUsed by:747
Symbol 747 GraphicUses:746Used by:972
Symbol 748 BitmapUsed by:749
Symbol 749 GraphicUses:748Used by:972
Symbol 750 BitmapUsed by:751
Symbol 751 GraphicUses:750Used by:972
Symbol 752 BitmapUsed by:753
Symbol 753 GraphicUses:752Used by:972
Symbol 754 BitmapUsed by:755
Symbol 755 GraphicUses:754Used by:972
Symbol 756 BitmapUsed by:757
Symbol 757 GraphicUses:756Used by:972
Symbol 758 BitmapUsed by:759
Symbol 759 GraphicUses:758Used by:972
Symbol 760 BitmapUsed by:761
Symbol 761 GraphicUses:760Used by:972
Symbol 762 BitmapUsed by:763
Symbol 763 GraphicUses:762Used by:972
Symbol 764 BitmapUsed by:765
Symbol 765 GraphicUses:764Used by:972
Symbol 766 BitmapUsed by:767
Symbol 767 GraphicUses:766Used by:972
Symbol 768 BitmapUsed by:769
Symbol 769 GraphicUses:768Used by:972
Symbol 770 BitmapUsed by:771
Symbol 771 GraphicUses:770Used by:972
Symbol 772 BitmapUsed by:773
Symbol 773 GraphicUses:772Used by:972
Symbol 774 BitmapUsed by:775
Symbol 775 GraphicUses:774Used by:972
Symbol 776 BitmapUsed by:777
Symbol 777 GraphicUses:776Used by:972
Symbol 778 BitmapUsed by:779
Symbol 779 GraphicUses:778Used by:972
Symbol 780 BitmapUsed by:781
Symbol 781 GraphicUses:780Used by:972
Symbol 782 BitmapUsed by:783
Symbol 783 GraphicUses:782Used by:972
Symbol 784 BitmapUsed by:785
Symbol 785 GraphicUses:784Used by:972
Symbol 786 BitmapUsed by:787
Symbol 787 GraphicUses:786Used by:972
Symbol 788 BitmapUsed by:789
Symbol 789 GraphicUses:788Used by:972
Symbol 790 BitmapUsed by:791
Symbol 791 GraphicUses:790Used by:972
Symbol 792 BitmapUsed by:793
Symbol 793 GraphicUses:792Used by:972
Symbol 794 BitmapUsed by:795
Symbol 795 GraphicUses:794Used by:972
Symbol 796 BitmapUsed by:797
Symbol 797 GraphicUses:796Used by:972
Symbol 798 BitmapUsed by:799
Symbol 799 GraphicUses:798Used by:972
Symbol 800 BitmapUsed by:801
Symbol 801 GraphicUses:800Used by:972
Symbol 802 BitmapUsed by:803
Symbol 803 GraphicUses:802Used by:972
Symbol 804 BitmapUsed by:805
Symbol 805 GraphicUses:804Used by:972
Symbol 806 BitmapUsed by:807
Symbol 807 GraphicUses:806Used by:972
Symbol 808 BitmapUsed by:809
Symbol 809 GraphicUses:808Used by:972
Symbol 810 BitmapUsed by:811
Symbol 811 GraphicUses:810Used by:972
Symbol 812 BitmapUsed by:813
Symbol 813 GraphicUses:812Used by:972
Symbol 814 BitmapUsed by:815
Symbol 815 GraphicUses:814Used by:972
Symbol 816 BitmapUsed by:817
Symbol 817 GraphicUses:816Used by:972
Symbol 818 BitmapUsed by:819
Symbol 819 GraphicUses:818Used by:972
Symbol 820 BitmapUsed by:821
Symbol 821 GraphicUses:820Used by:972
Symbol 822 BitmapUsed by:823
Symbol 823 GraphicUses:822Used by:972
Symbol 824 BitmapUsed by:825
Symbol 825 GraphicUses:824Used by:972
Symbol 826 BitmapUsed by:827
Symbol 827 GraphicUses:826Used by:972
Symbol 828 BitmapUsed by:829
Symbol 829 GraphicUses:828Used by:972
Symbol 830 BitmapUsed by:831
Symbol 831 GraphicUses:830Used by:972
Symbol 832 BitmapUsed by:833
Symbol 833 GraphicUses:832Used by:972
Symbol 834 BitmapUsed by:835
Symbol 835 GraphicUses:834Used by:972
Symbol 836 BitmapUsed by:837
Symbol 837 GraphicUses:836Used by:972
Symbol 838 BitmapUsed by:839
Symbol 839 GraphicUses:838Used by:972
Symbol 840 BitmapUsed by:841
Symbol 841 GraphicUses:840Used by:972
Symbol 842 BitmapUsed by:843
Symbol 843 GraphicUses:842Used by:972
Symbol 844 BitmapUsed by:845
Symbol 845 GraphicUses:844Used by:972
Symbol 846 BitmapUsed by:847
Symbol 847 GraphicUses:846Used by:972
Symbol 848 BitmapUsed by:849
Symbol 849 GraphicUses:848Used by:972
Symbol 850 BitmapUsed by:851
Symbol 851 GraphicUses:850Used by:972
Symbol 852 BitmapUsed by:853
Symbol 853 GraphicUses:852Used by:972
Symbol 854 BitmapUsed by:855
Symbol 855 GraphicUses:854Used by:972
Symbol 856 BitmapUsed by:857
Symbol 857 GraphicUses:856Used by:972
Symbol 858 BitmapUsed by:859
Symbol 859 GraphicUses:858Used by:972
Symbol 860 BitmapUsed by:861
Symbol 861 GraphicUses:860Used by:972
Symbol 862 BitmapUsed by:863
Symbol 863 GraphicUses:862Used by:972
Symbol 864 BitmapUsed by:865
Symbol 865 GraphicUses:864Used by:972
Symbol 866 BitmapUsed by:867
Symbol 867 GraphicUses:866Used by:972
Symbol 868 BitmapUsed by:869
Symbol 869 GraphicUses:868Used by:972
Symbol 870 BitmapUsed by:871
Symbol 871 GraphicUses:870Used by:972
Symbol 872 BitmapUsed by:873
Symbol 873 GraphicUses:872Used by:972
Symbol 874 BitmapUsed by:875
Symbol 875 GraphicUses:874Used by:972
Symbol 876 BitmapUsed by:877
Symbol 877 GraphicUses:876Used by:972
Symbol 878 BitmapUsed by:879
Symbol 879 GraphicUses:878Used by:972
Symbol 880 BitmapUsed by:881
Symbol 881 GraphicUses:880Used by:972
Symbol 882 BitmapUsed by:883
Symbol 883 GraphicUses:882Used by:972
Symbol 884 BitmapUsed by:885
Symbol 885 GraphicUses:884Used by:972
Symbol 886 BitmapUsed by:887
Symbol 887 GraphicUses:886Used by:972
Symbol 888 BitmapUsed by:889
Symbol 889 GraphicUses:888Used by:972
Symbol 890 BitmapUsed by:891
Symbol 891 GraphicUses:890Used by:972
Symbol 892 BitmapUsed by:893
Symbol 893 GraphicUses:892Used by:972
Symbol 894 BitmapUsed by:895
Symbol 895 GraphicUses:894Used by:972
Symbol 896 BitmapUsed by:897
Symbol 897 GraphicUses:896Used by:972
Symbol 898 BitmapUsed by:899
Symbol 899 GraphicUses:898Used by:972
Symbol 900 BitmapUsed by:901
Symbol 901 GraphicUses:900Used by:972
Symbol 902 BitmapUsed by:903
Symbol 903 GraphicUses:902Used by:972
Symbol 904 BitmapUsed by:905
Symbol 905 GraphicUses:904Used by:972
Symbol 906 BitmapUsed by:907
Symbol 907 GraphicUses:906Used by:972
Symbol 908 BitmapUsed by:909
Symbol 909 GraphicUses:908Used by:972
Symbol 910 BitmapUsed by:911
Symbol 911 GraphicUses:910Used by:972
Symbol 912 BitmapUsed by:913
Symbol 913 GraphicUses:912Used by:972
Symbol 914 BitmapUsed by:915
Symbol 915 GraphicUses:914Used by:972
Symbol 916 BitmapUsed by:917
Symbol 917 GraphicUses:916Used by:972
Symbol 918 BitmapUsed by:919
Symbol 919 GraphicUses:918Used by:972
Symbol 920 BitmapUsed by:921
Symbol 921 GraphicUses:920Used by:972
Symbol 922 BitmapUsed by:923
Symbol 923 GraphicUses:922Used by:972
Symbol 924 BitmapUsed by:925
Symbol 925 GraphicUses:924Used by:972
Symbol 926 BitmapUsed by:927
Symbol 927 GraphicUses:926Used by:972
Symbol 928 BitmapUsed by:929
Symbol 929 GraphicUses:928Used by:972
Symbol 930 BitmapUsed by:931
Symbol 931 GraphicUses:930Used by:972
Symbol 932 BitmapUsed by:933
Symbol 933 GraphicUses:932Used by:972
Symbol 934 BitmapUsed by:935
Symbol 935 GraphicUses:934Used by:972
Symbol 936 BitmapUsed by:937
Symbol 937 GraphicUses:936Used by:972
Symbol 938 BitmapUsed by:939
Symbol 939 GraphicUses:938Used by:972
Symbol 940 BitmapUsed by:941
Symbol 941 GraphicUses:940Used by:972
Symbol 942 BitmapUsed by:943
Symbol 943 GraphicUses:942Used by:972
Symbol 944 BitmapUsed by:945
Symbol 945 GraphicUses:944Used by:972
Symbol 946 BitmapUsed by:947
Symbol 947 GraphicUses:946Used by:972
Symbol 948 BitmapUsed by:949
Symbol 949 GraphicUses:948Used by:972
Symbol 950 BitmapUsed by:951
Symbol 951 GraphicUses:950Used by:972
Symbol 952 BitmapUsed by:953
Symbol 953 GraphicUses:952Used by:972
Symbol 954 BitmapUsed by:955
Symbol 955 GraphicUses:954Used by:972
Symbol 956 BitmapUsed by:957
Symbol 957 GraphicUses:956Used by:972
Symbol 958 BitmapUsed by:959
Symbol 959 GraphicUses:958Used by:972
Symbol 960 BitmapUsed by:961
Symbol 961 GraphicUses:960Used by:972
Symbol 962 BitmapUsed by:963
Symbol 963 GraphicUses:962Used by:972
Symbol 964 BitmapUsed by:965
Symbol 965 GraphicUses:964Used by:972
Symbol 966 BitmapUsed by:967
Symbol 967 GraphicUses:966Used by:972
Symbol 968 BitmapUsed by:969
Symbol 969 GraphicUses:968Used by:972
Symbol 970 BitmapUsed by:971
Symbol 971 GraphicUses:970Used by:972
Symbol 972 MovieClip {assets_fla.car_12} [assets_fla.car_12]Uses:731 733 735 737 739 741 743 745 747 749 751 753 755 757 759 761 763 765 767 769 771 773 775 777 779 781 783 785 787 789 791 793 795 797 799 801 803 805 807 809 811 813 815 817 819 821 823 825 827 829 831 833 835 837 839 841 843 845 847 849 851 853 855 857 859 861 863 865 867 869 871 873 875 877 879 881 883 885 887 889 891 893 895 897 899 901 903 905 907 909 911 913 915 917 919 921 923 925 927 929 931 933 935 937 939 941 943 945 947 949 951 953 955 957 959 961 963 965 967 969 971Used by:973
Symbol 973 MovieClip {assets.MovieClipCarFocus} [assets.MovieClipCarFocus]Uses:241 972
Symbol 974 BitmapUsed by:975
Symbol 975 GraphicUses:974Used by:1216
Symbol 976 BitmapUsed by:977
Symbol 977 GraphicUses:976Used by:1216
Symbol 978 BitmapUsed by:979
Symbol 979 GraphicUses:978Used by:1216
Symbol 980 BitmapUsed by:981
Symbol 981 GraphicUses:980Used by:1216
Symbol 982 BitmapUsed by:983
Symbol 983 GraphicUses:982Used by:1216
Symbol 984 BitmapUsed by:985
Symbol 985 GraphicUses:984Used by:1216
Symbol 986 BitmapUsed by:987
Symbol 987 GraphicUses:986Used by:1216
Symbol 988 BitmapUsed by:989
Symbol 989 GraphicUses:988Used by:1216
Symbol 990 BitmapUsed by:991
Symbol 991 GraphicUses:990Used by:1216
Symbol 992 BitmapUsed by:993
Symbol 993 GraphicUses:992Used by:1216
Symbol 994 BitmapUsed by:995
Symbol 995 GraphicUses:994Used by:1216
Symbol 996 BitmapUsed by:997
Symbol 997 GraphicUses:996Used by:1216
Symbol 998 BitmapUsed by:999
Symbol 999 GraphicUses:998Used by:1216
Symbol 1000 BitmapUsed by:1001
Symbol 1001 GraphicUses:1000Used by:1216
Symbol 1002 BitmapUsed by:1003
Symbol 1003 GraphicUses:1002Used by:1216
Symbol 1004 BitmapUsed by:1005
Symbol 1005 GraphicUses:1004Used by:1216
Symbol 1006 BitmapUsed by:1007
Symbol 1007 GraphicUses:1006Used by:1216
Symbol 1008 BitmapUsed by:1009
Symbol 1009 GraphicUses:1008Used by:1216
Symbol 1010 BitmapUsed by:1011
Symbol 1011 GraphicUses:1010Used by:1216
Symbol 1012 BitmapUsed by:1013
Symbol 1013 GraphicUses:1012Used by:1216
Symbol 1014 BitmapUsed by:1015
Symbol 1015 GraphicUses:1014Used by:1216
Symbol 1016 BitmapUsed by:1017
Symbol 1017 GraphicUses:1016Used by:1216
Symbol 1018 BitmapUsed by:1019
Symbol 1019 GraphicUses:1018Used by:1216
Symbol 1020 BitmapUsed by:1021
Symbol 1021 GraphicUses:1020Used by:1216
Symbol 1022 BitmapUsed by:1023
Symbol 1023 GraphicUses:1022Used by:1216
Symbol 1024 BitmapUsed by:1025
Symbol 1025 GraphicUses:1024Used by:1216
Symbol 1026 BitmapUsed by:1027
Symbol 1027 GraphicUses:1026Used by:1216
Symbol 1028 BitmapUsed by:1029
Symbol 1029 GraphicUses:1028Used by:1216
Symbol 1030 BitmapUsed by:1031
Symbol 1031 GraphicUses:1030Used by:1216
Symbol 1032 BitmapUsed by:1033
Symbol 1033 GraphicUses:1032Used by:1216
Symbol 1034 BitmapUsed by:1035
Symbol 1035 GraphicUses:1034Used by:1216
Symbol 1036 BitmapUsed by:1037
Symbol 1037 GraphicUses:1036Used by:1216
Symbol 1038 BitmapUsed by:1039
Symbol 1039 GraphicUses:1038Used by:1216
Symbol 1040 BitmapUsed by:1041
Symbol 1041 GraphicUses:1040Used by:1216
Symbol 1042 BitmapUsed by:1043
Symbol 1043 GraphicUses:1042Used by:1216
Symbol 1044 BitmapUsed by:1045
Symbol 1045 GraphicUses:1044Used by:1216
Symbol 1046 BitmapUsed by:1047
Symbol 1047 GraphicUses:1046Used by:1216
Symbol 1048 BitmapUsed by:1049
Symbol 1049 GraphicUses:1048Used by:1216
Symbol 1050 BitmapUsed by:1051
Symbol 1051 GraphicUses:1050Used by:1216
Symbol 1052 BitmapUsed by:1053
Symbol 1053 GraphicUses:1052Used by:1216
Symbol 1054 BitmapUsed by:1055
Symbol 1055 GraphicUses:1054Used by:1216
Symbol 1056 BitmapUsed by:1057
Symbol 1057 GraphicUses:1056Used by:1216
Symbol 1058 BitmapUsed by:1059
Symbol 1059 GraphicUses:1058Used by:1216
Symbol 1060 BitmapUsed by:1061
Symbol 1061 GraphicUses:1060Used by:1216
Symbol 1062 BitmapUsed by:1063
Symbol 1063 GraphicUses:1062Used by:1216
Symbol 1064 BitmapUsed by:1065
Symbol 1065 GraphicUses:1064Used by:1216
Symbol 1066 BitmapUsed by:1067
Symbol 1067 GraphicUses:1066Used by:1216
Symbol 1068 BitmapUsed by:1069
Symbol 1069 GraphicUses:1068Used by:1216
Symbol 1070 BitmapUsed by:1071
Symbol 1071 GraphicUses:1070Used by:1216
Symbol 1072 BitmapUsed by:1073
Symbol 1073 GraphicUses:1072Used by:1216
Symbol 1074 BitmapUsed by:1075
Symbol 1075 GraphicUses:1074Used by:1216
Symbol 1076 BitmapUsed by:1077
Symbol 1077 GraphicUses:1076Used by:1216
Symbol 1078 BitmapUsed by:1079
Symbol 1079 GraphicUses:1078Used by:1216
Symbol 1080 BitmapUsed by:1081
Symbol 1081 GraphicUses:1080Used by:1216
Symbol 1082 BitmapUsed by:1083
Symbol 1083 GraphicUses:1082Used by:1216
Symbol 1084 BitmapUsed by:1085
Symbol 1085 GraphicUses:1084Used by:1216
Symbol 1086 BitmapUsed by:1087
Symbol 1087 GraphicUses:1086Used by:1216
Symbol 1088 BitmapUsed by:1089
Symbol 1089 GraphicUses:1088Used by:1216
Symbol 1090 BitmapUsed by:1091
Symbol 1091 GraphicUses:1090Used by:1216
Symbol 1092 BitmapUsed by:1093
Symbol 1093 GraphicUses:1092Used by:1216
Symbol 1094 BitmapUsed by:1095
Symbol 1095 GraphicUses:1094Used by:1216
Symbol 1096 BitmapUsed by:1097
Symbol 1097 GraphicUses:1096Used by:1216
Symbol 1098 BitmapUsed by:1099
Symbol 1099 GraphicUses:1098Used by:1216
Symbol 1100 BitmapUsed by:1101
Symbol 1101 GraphicUses:1100Used by:1216
Symbol 1102 BitmapUsed by:1103
Symbol 1103 GraphicUses:1102Used by:1216
Symbol 1104 BitmapUsed by:1105
Symbol 1105 GraphicUses:1104Used by:1216
Symbol 1106 BitmapUsed by:1107
Symbol 1107 GraphicUses:1106Used by:1216
Symbol 1108 BitmapUsed by:1109
Symbol 1109 GraphicUses:1108Used by:1216
Symbol 1110 BitmapUsed by:1111
Symbol 1111 GraphicUses:1110Used by:1216
Symbol 1112 BitmapUsed by:1113
Symbol 1113 GraphicUses:1112Used by:1216
Symbol 1114 BitmapUsed by:1115
Symbol 1115 GraphicUses:1114Used by:1216
Symbol 1116 BitmapUsed by:1117
Symbol 1117 GraphicUses:1116Used by:1216
Symbol 1118 BitmapUsed by:1119
Symbol 1119 GraphicUses:1118Used by:1216
Symbol 1120 BitmapUsed by:1121
Symbol 1121 GraphicUses:1120Used by:1216
Symbol 1122 BitmapUsed by:1123
Symbol 1123 GraphicUses:1122Used by:1216
Symbol 1124 BitmapUsed by:1125
Symbol 1125 GraphicUses:1124Used by:1216
Symbol 1126 BitmapUsed by:1127
Symbol 1127 GraphicUses:1126Used by:1216
Symbol 1128 BitmapUsed by:1129
Symbol 1129 GraphicUses:1128Used by:1216
Symbol 1130 BitmapUsed by:1131
Symbol 1131 GraphicUses:1130Used by:1216
Symbol 1132 BitmapUsed by:1133
Symbol 1133 GraphicUses:1132Used by:1216
Symbol 1134 BitmapUsed by:1135
Symbol 1135 GraphicUses:1134Used by:1216
Symbol 1136 BitmapUsed by:1137
Symbol 1137 GraphicUses:1136Used by:1216
Symbol 1138 BitmapUsed by:1139
Symbol 1139 GraphicUses:1138Used by:1216
Symbol 1140 BitmapUsed by:1141
Symbol 1141 GraphicUses:1140Used by:1216
Symbol 1142 BitmapUsed by:1143
Symbol 1143 GraphicUses:1142Used by:1216
Symbol 1144 BitmapUsed by:1145
Symbol 1145 GraphicUses:1144Used by:1216
Symbol 1146 BitmapUsed by:1147
Symbol 1147 GraphicUses:1146Used by:1216
Symbol 1148 BitmapUsed by:1149
Symbol 1149 GraphicUses:1148Used by:1216
Symbol 1150 BitmapUsed by:1151
Symbol 1151 GraphicUses:1150Used by:1216
Symbol 1152 BitmapUsed by:1153
Symbol 1153 GraphicUses:1152Used by:1216
Symbol 1154 BitmapUsed by:1155
Symbol 1155 GraphicUses:1154Used by:1216
Symbol 1156 BitmapUsed by:1157
Symbol 1157 GraphicUses:1156Used by:1216
Symbol 1158 BitmapUsed by:1159
Symbol 1159 GraphicUses:1158Used by:1216
Symbol 1160 BitmapUsed by:1161
Symbol 1161 GraphicUses:1160Used by:1216
Symbol 1162 BitmapUsed by:1163
Symbol 1163 GraphicUses:1162Used by:1216
Symbol 1164 BitmapUsed by:1165
Symbol 1165 GraphicUses:1164Used by:1216
Symbol 1166 BitmapUsed by:1167
Symbol 1167 GraphicUses:1166Used by:1216
Symbol 1168 BitmapUsed by:1169
Symbol 1169 GraphicUses:1168Used by:1216
Symbol 1170 BitmapUsed by:1171
Symbol 1171 GraphicUses:1170Used by:1216
Symbol 1172 BitmapUsed by:1173
Symbol 1173 GraphicUses:1172Used by:1216
Symbol 1174 BitmapUsed by:1175
Symbol 1175 GraphicUses:1174Used by:1216
Symbol 1176 BitmapUsed by:1177
Symbol 1177 GraphicUses:1176Used by:1216
Symbol 1178 BitmapUsed by:1179
Symbol 1179 GraphicUses:1178Used by:1216
Symbol 1180 BitmapUsed by:1181
Symbol 1181 GraphicUses:1180Used by:1216
Symbol 1182 BitmapUsed by:1183
Symbol 1183 GraphicUses:1182Used by:1216
Symbol 1184 BitmapUsed by:1185
Symbol 1185 GraphicUses:1184Used by:1216
Symbol 1186 BitmapUsed by:1187
Symbol 1187 GraphicUses:1186Used by:1216
Symbol 1188 BitmapUsed by:1189
Symbol 1189 GraphicUses:1188Used by:1216
Symbol 1190 BitmapUsed by:1191
Symbol 1191 GraphicUses:1190Used by:1216
Symbol 1192 BitmapUsed by:1193
Symbol 1193 GraphicUses:1192Used by:1216
Symbol 1194 BitmapUsed by:1195
Symbol 1195 GraphicUses:1194Used by:1216
Symbol 1196 BitmapUsed by:1197
Symbol 1197 GraphicUses:1196Used by:1216
Symbol 1198 BitmapUsed by:1199
Symbol 1199 GraphicUses:1198Used by:1216
Symbol 1200 BitmapUsed by:1201
Symbol 1201 GraphicUses:1200Used by:1216
Symbol 1202 BitmapUsed by:1203
Symbol 1203 GraphicUses:1202Used by:1216
Symbol 1204 BitmapUsed by:1205
Symbol 1205 GraphicUses:1204Used by:1216
Symbol 1206 BitmapUsed by:1207
Symbol 1207 GraphicUses:1206Used by:1216
Symbol 1208 BitmapUsed by:1209
Symbol 1209 GraphicUses:1208Used by:1216
Symbol 1210 BitmapUsed by:1211
Symbol 1211 GraphicUses:1210Used by:1216
Symbol 1212 BitmapUsed by:1213
Symbol 1213 GraphicUses:1212Used by:1216
Symbol 1214 BitmapUsed by:1215
Symbol 1215 GraphicUses:1214Used by:1216
Symbol 1216 MovieClip {assets_fla.car_4} [assets_fla.car_4]Uses:975 977 979 981 983 985 987 989 991 993 995 997 999 1001 1003 1005 1007 1009 1011 1013 1015 1017 1019 1021 1023 1025 1027 1029 1031 1033 1035 1037 1039 1041 1043 1045 1047 1049 1051 1053 1055 1057 1059 1061 1063 1065 1067 1069 1071 1073 1075 1077 1079 1081 1083 1085 1087 1089 1091 1093 1095 1097 1099 1101 1103 1105 1107 1109 1111 1113 1115 1117 1119 1121 1123 1125 1127 1129 1131 1133 1135 1137 1139 1141 1143 1145 1147 1149 1151 1153 1155 1157 1159 1161 1163 1165 1167 1169 1171 1173 1175 1177 1179 1181 1183 1185 1187 1189 1191 1193 1195 1197 1199 1201 1203 1205 1207 1209 1211 1213 1215Used by:1217
Symbol 1217 MovieClip {assets.MovieClipCarImpreza} [assets.MovieClipCarImpreza]Uses:241 1216
Symbol 1218 GraphicUsed by:1219
Symbol 1219 MovieClipUses:1218Used by:1220
Symbol 1220 MovieClip {assets.MovieClipCircleSpin} [assets.MovieClipCircleSpin]Uses:1219Used by:1744
Symbol 1221 FontUsed by:1222 1942 1943 1944 1945 1946 1947 1948
Symbol 1222 EditableTextUses:1221Used by:1225
Symbol 1223 GraphicUsed by:1224
Symbol 1224 MovieClipUses:1223Used by:1225
Symbol 1225 MovieClip {assets.MovieClipMarker} [assets.MovieClipMarker]Uses:1222 1224
Symbol 1226 BitmapUsed by:1227
Symbol 1227 GraphicUses:1226Used by:1468
Symbol 1228 BitmapUsed by:1229
Symbol 1229 GraphicUses:1228Used by:1468
Symbol 1230 BitmapUsed by:1231
Symbol 1231 GraphicUses:1230Used by:1468
Symbol 1232 BitmapUsed by:1233
Symbol 1233 GraphicUses:1232Used by:1468
Symbol 1234 BitmapUsed by:1235
Symbol 1235 GraphicUses:1234Used by:1468
Symbol 1236 BitmapUsed by:1237
Symbol 1237 GraphicUses:1236Used by:1468
Symbol 1238 BitmapUsed by:1239
Symbol 1239 GraphicUses:1238Used by:1468
Symbol 1240 BitmapUsed by:1241
Symbol 1241 GraphicUses:1240Used by:1468
Symbol 1242 BitmapUsed by:1243
Symbol 1243 GraphicUses:1242Used by:1468
Symbol 1244 BitmapUsed by:1245
Symbol 1245 GraphicUses:1244Used by:1468
Symbol 1246 BitmapUsed by:1247
Symbol 1247 GraphicUses:1246Used by:1468
Symbol 1248 BitmapUsed by:1249
Symbol 1249 GraphicUses:1248Used by:1468
Symbol 1250 BitmapUsed by:1251
Symbol 1251 GraphicUses:1250Used by:1468
Symbol 1252 BitmapUsed by:1253
Symbol 1253 GraphicUses:1252Used by:1468
Symbol 1254 BitmapUsed by:1255
Symbol 1255 GraphicUses:1254Used by:1468
Symbol 1256 BitmapUsed by:1257
Symbol 1257 GraphicUses:1256Used by:1468
Symbol 1258 BitmapUsed by:1259
Symbol 1259 GraphicUses:1258Used by:1468
Symbol 1260 BitmapUsed by:1261
Symbol 1261 GraphicUses:1260Used by:1468
Symbol 1262 BitmapUsed by:1263
Symbol 1263 GraphicUses:1262Used by:1468
Symbol 1264 BitmapUsed by:1265
Symbol 1265 GraphicUses:1264Used by:1468
Symbol 1266 BitmapUsed by:1267
Symbol 1267 GraphicUses:1266Used by:1468
Symbol 1268 BitmapUsed by:1269
Symbol 1269 GraphicUses:1268Used by:1468
Symbol 1270 BitmapUsed by:1271
Symbol 1271 GraphicUses:1270Used by:1468
Symbol 1272 BitmapUsed by:1273
Symbol 1273 GraphicUses:1272Used by:1468
Symbol 1274 BitmapUsed by:1275
Symbol 1275 GraphicUses:1274Used by:1468
Symbol 1276 BitmapUsed by:1277
Symbol 1277 GraphicUses:1276Used by:1468
Symbol 1278 BitmapUsed by:1279
Symbol 1279 GraphicUses:1278Used by:1468
Symbol 1280 BitmapUsed by:1281
Symbol 1281 GraphicUses:1280Used by:1468
Symbol 1282 BitmapUsed by:1283
Symbol 1283 GraphicUses:1282Used by:1468
Symbol 1284 BitmapUsed by:1285
Symbol 1285 GraphicUses:1284Used by:1468
Symbol 1286 BitmapUsed by:1287
Symbol 1287 GraphicUses:1286Used by:1468
Symbol 1288 BitmapUsed by:1289
Symbol 1289 GraphicUses:1288Used by:1468
Symbol 1290 BitmapUsed by:1291
Symbol 1291 GraphicUses:1290Used by:1468
Symbol 1292 BitmapUsed by:1293
Symbol 1293 GraphicUses:1292Used by:1468
Symbol 1294 BitmapUsed by:1295
Symbol 1295 GraphicUses:1294Used by:1468
Symbol 1296 BitmapUsed by:1297
Symbol 1297 GraphicUses:1296Used by:1468
Symbol 1298 BitmapUsed by:1299
Symbol 1299 GraphicUses:1298Used by:1468
Symbol 1300 BitmapUsed by:1301
Symbol 1301 GraphicUses:1300Used by:1468
Symbol 1302 BitmapUsed by:1303
Symbol 1303 GraphicUses:1302Used by:1468
Symbol 1304 BitmapUsed by:1305
Symbol 1305 GraphicUses:1304Used by:1468
Symbol 1306 BitmapUsed by:1307
Symbol 1307 GraphicUses:1306Used by:1468
Symbol 1308 BitmapUsed by:1309
Symbol 1309 GraphicUses:1308Used by:1468
Symbol 1310 BitmapUsed by:1311
Symbol 1311 GraphicUses:1310Used by:1468
Symbol 1312 BitmapUsed by:1313
Symbol 1313 GraphicUses:1312Used by:1468
Symbol 1314 BitmapUsed by:1315
Symbol 1315 GraphicUses:1314Used by:1468
Symbol 1316 BitmapUsed by:1317
Symbol 1317 GraphicUses:1316Used by:1468
Symbol 1318 BitmapUsed by:1319
Symbol 1319 GraphicUses:1318Used by:1468
Symbol 1320 BitmapUsed by:1321
Symbol 1321 GraphicUses:1320Used by:1468
Symbol 1322 BitmapUsed by:1323
Symbol 1323 GraphicUses:1322Used by:1468
Symbol 1324 BitmapUsed by:1325
Symbol 1325 GraphicUses:1324Used by:1468
Symbol 1326 BitmapUsed by:1327
Symbol 1327 GraphicUses:1326Used by:1468
Symbol 1328 BitmapUsed by:1329
Symbol 1329 GraphicUses:1328Used by:1468
Symbol 1330 BitmapUsed by:1331
Symbol 1331 GraphicUses:1330Used by:1468
Symbol 1332 BitmapUsed by:1333
Symbol 1333 GraphicUses:1332Used by:1468
Symbol 1334 BitmapUsed by:1335
Symbol 1335 GraphicUses:1334Used by:1468
Symbol 1336 BitmapUsed by:1337
Symbol 1337 GraphicUses:1336Used by:1468
Symbol 1338 BitmapUsed by:1339
Symbol 1339 GraphicUses:1338Used by:1468
Symbol 1340 BitmapUsed by:1341
Symbol 1341 GraphicUses:1340Used by:1468
Symbol 1342 BitmapUsed by:1343
Symbol 1343 GraphicUses:1342Used by:1468
Symbol 1344 BitmapUsed by:1345
Symbol 1345 GraphicUses:1344Used by:1468
Symbol 1346 BitmapUsed by:1347
Symbol 1347 GraphicUses:1346Used by:1468
Symbol 1348 BitmapUsed by:1349
Symbol 1349 GraphicUses:1348Used by:1468
Symbol 1350 BitmapUsed by:1351
Symbol 1351 GraphicUses:1350Used by:1468
Symbol 1352 BitmapUsed by:1353
Symbol 1353 GraphicUses:1352Used by:1468
Symbol 1354 BitmapUsed by:1355
Symbol 1355 GraphicUses:1354Used by:1468
Symbol 1356 BitmapUsed by:1357
Symbol 1357 GraphicUses:1356Used by:1468
Symbol 1358 BitmapUsed by:1359
Symbol 1359 GraphicUses:1358Used by:1468
Symbol 1360 BitmapUsed by:1361
Symbol 1361 GraphicUses:1360Used by:1468
Symbol 1362 BitmapUsed by:1363
Symbol 1363 GraphicUses:1362Used by:1468
Symbol 1364 BitmapUsed by:1365
Symbol 1365 GraphicUses:1364Used by:1468
Symbol 1366 BitmapUsed by:1367
Symbol 1367 GraphicUses:1366Used by:1468
Symbol 1368 BitmapUsed by:1369
Symbol 1369 GraphicUses:1368Used by:1468
Symbol 1370 BitmapUsed by:1371
Symbol 1371 GraphicUses:1370Used by:1468
Symbol 1372 BitmapUsed by:1373
Symbol 1373 GraphicUses:1372Used by:1468
Symbol 1374 BitmapUsed by:1375
Symbol 1375 GraphicUses:1374Used by:1468
Symbol 1376 BitmapUsed by:1377
Symbol 1377 GraphicUses:1376Used by:1468
Symbol 1378 BitmapUsed by:1379
Symbol 1379 GraphicUses:1378Used by:1468
Symbol 1380 BitmapUsed by:1381
Symbol 1381 GraphicUses:1380Used by:1468
Symbol 1382 BitmapUsed by:1383
Symbol 1383 GraphicUses:1382Used by:1468
Symbol 1384 BitmapUsed by:1385
Symbol 1385 GraphicUses:1384Used by:1468
Symbol 1386 BitmapUsed by:1387
Symbol 1387 GraphicUses:1386Used by:1468
Symbol 1388 BitmapUsed by:1389
Symbol 1389 GraphicUses:1388Used by:1468
Symbol 1390 BitmapUsed by:1391
Symbol 1391 GraphicUses:1390Used by:1468
Symbol 1392 BitmapUsed by:1393
Symbol 1393 GraphicUses:1392Used by:1468
Symbol 1394 BitmapUsed by:1395
Symbol 1395 GraphicUses:1394Used by:1468
Symbol 1396 BitmapUsed by:1397
Symbol 1397 GraphicUses:1396Used by:1468
Symbol 1398 BitmapUsed by:1399
Symbol 1399 GraphicUses:1398Used by:1468
Symbol 1400 BitmapUsed by:1401
Symbol 1401 GraphicUses:1400Used by:1468
Symbol 1402 BitmapUsed by:1403
Symbol 1403 GraphicUses:1402Used by:1468
Symbol 1404 BitmapUsed by:1405
Symbol 1405 GraphicUses:1404Used by:1468
Symbol 1406 BitmapUsed by:1407
Symbol 1407 GraphicUses:1406Used by:1468
Symbol 1408 BitmapUsed by:1409
Symbol 1409 GraphicUses:1408Used by:1468
Symbol 1410 BitmapUsed by:1411
Symbol 1411 GraphicUses:1410Used by:1468
Symbol 1412 BitmapUsed by:1413
Symbol 1413 GraphicUses:1412Used by:1468
Symbol 1414 BitmapUsed by:1415
Symbol 1415 GraphicUses:1414Used by:1468
Symbol 1416 BitmapUsed by:1417
Symbol 1417 GraphicUses:1416Used by:1468
Symbol 1418 BitmapUsed by:1419
Symbol 1419 GraphicUses:1418Used by:1468
Symbol 1420 BitmapUsed by:1421
Symbol 1421 GraphicUses:1420Used by:1468
Symbol 1422 BitmapUsed by:1423
Symbol 1423 GraphicUses:1422Used by:1468
Symbol 1424 BitmapUsed by:1425
Symbol 1425 GraphicUses:1424Used by:1468
Symbol 1426 BitmapUsed by:1427
Symbol 1427 GraphicUses:1426Used by:1468
Symbol 1428 BitmapUsed by:1429
Symbol 1429 GraphicUses:1428Used by:1468
Symbol 1430 BitmapUsed by:1431
Symbol 1431 GraphicUses:1430Used by:1468
Symbol 1432 BitmapUsed by:1433
Symbol 1433 GraphicUses:1432Used by:1468
Symbol 1434 BitmapUsed by:1435
Symbol 1435 GraphicUses:1434Used by:1468
Symbol 1436 BitmapUsed by:1437
Symbol 1437 GraphicUses:1436Used by:1468
Symbol 1438 BitmapUsed by:1439
Symbol 1439 GraphicUses:1438Used by:1468
Symbol 1440 BitmapUsed by:1441
Symbol 1441 GraphicUses:1440Used by:1468
Symbol 1442 BitmapUsed by:1443
Symbol 1443 GraphicUses:1442Used by:1468
Symbol 1444 BitmapUsed by:1445
Symbol 1445 GraphicUses:1444Used by:1468
Symbol 1446 BitmapUsed by:1447
Symbol 1447 GraphicUses:1446Used by:1468
Symbol 1448 BitmapUsed by:1449
Symbol 1449 GraphicUses:1448Used by:1468
Symbol 1450 BitmapUsed by:1451
Symbol 1451 GraphicUses:1450Used by:1468
Symbol 1452 BitmapUsed by:1453
Symbol 1453 GraphicUses:1452Used by:1468
Symbol 1454 BitmapUsed by:1455
Symbol 1455 GraphicUses:1454Used by:1468
Symbol 1456 BitmapUsed by:1457
Symbol 1457 GraphicUses:1456Used by:1468
Symbol 1458 BitmapUsed by:1459
Symbol 1459 GraphicUses:1458Used by:1468
Symbol 1460 BitmapUsed by:1461
Symbol 1461 GraphicUses:1460Used by:1468
Symbol 1462 BitmapUsed by:1463
Symbol 1463 GraphicUses:1462Used by:1468
Symbol 1464 BitmapUsed by:1465
Symbol 1465 GraphicUses:1464Used by:1468
Symbol 1466 BitmapUsed by:1467
Symbol 1467 GraphicUses:1466Used by:1468
Symbol 1468 MovieClipUses:1227 1229 1231 1233 1235 1237 1239 1241 1243 1245 1247 1249 1251 1253 1255 1257 1259 1261 1263 1265 1267 1269 1271 1273 1275 1277 1279 1281 1283 1285 1287 1289 1291 1293 1295 1297 1299 1301 1303 1305 1307 1309 1311 1313 1315 1317 1319 1321 1323 1325 1327 1329 1331 1333 1335 1337 1339 1341 1343 1345 1347 1349 1351 1353 1355 1357 1359 1361 1363 1365 1367 1369 1371 1373 1375 1377 1379 1381 1383 1385 1387 1389 1391 1393 1395 1397 1399 1401 1403 1405 1407 1409 1411 1413 1415 1417 1419 1421 1423 1425 1427 1429 1431 1433 1435 1437 1439 1441 1443 1445 1447 1449 1451 1453 1455 1457 1459 1461 1463 1465 1467Used by:1469
Symbol 1469 MovieClip {assets.MovieClipCarSkoda} [assets.MovieClipCarSkoda]Uses:241 1468
Symbol 1470 BitmapUsed by:1471
Symbol 1471 GraphicUses:1470Used by:1712
Symbol 1472 BitmapUsed by:1473
Symbol 1473 GraphicUses:1472Used by:1712
Symbol 1474 BitmapUsed by:1475
Symbol 1475 GraphicUses:1474Used by:1712
Symbol 1476 BitmapUsed by:1477
Symbol 1477 GraphicUses:1476Used by:1712
Symbol 1478 BitmapUsed by:1479
Symbol 1479 GraphicUses:1478Used by:1712
Symbol 1480 BitmapUsed by:1481
Symbol 1481 GraphicUses:1480Used by:1712
Symbol 1482 BitmapUsed by:1483
Symbol 1483 GraphicUses:1482Used by:1712
Symbol 1484 BitmapUsed by:1485
Symbol 1485 GraphicUses:1484Used by:1712
Symbol 1486 BitmapUsed by:1487
Symbol 1487 GraphicUses:1486Used by:1712
Symbol 1488 BitmapUsed by:1489
Symbol 1489 GraphicUses:1488Used by:1712
Symbol 1490 BitmapUsed by:1491
Symbol 1491 GraphicUses:1490Used by:1712
Symbol 1492 BitmapUsed by:1493
Symbol 1493 GraphicUses:1492Used by:1712
Symbol 1494 BitmapUsed by:1495
Symbol 1495 GraphicUses:1494Used by:1712
Symbol 1496 BitmapUsed by:1497
Symbol 1497 GraphicUses:1496Used by:1712
Symbol 1498 BitmapUsed by:1499
Symbol 1499 GraphicUses:1498Used by:1712
Symbol 1500 BitmapUsed by:1501
Symbol 1501 GraphicUses:1500Used by:1712
Symbol 1502 BitmapUsed by:1503
Symbol 1503 GraphicUses:1502Used by:1712
Symbol 1504 BitmapUsed by:1505
Symbol 1505 GraphicUses:1504Used by:1712
Symbol 1506 BitmapUsed by:1507
Symbol 1507 GraphicUses:1506Used by:1712
Symbol 1508 BitmapUsed by:1509
Symbol 1509 GraphicUses:1508Used by:1712
Symbol 1510 BitmapUsed by:1511
Symbol 1511 GraphicUses:1510Used by:1712
Symbol 1512 BitmapUsed by:1513
Symbol 1513 GraphicUses:1512Used by:1712
Symbol 1514 BitmapUsed by:1515
Symbol 1515 GraphicUses:1514Used by:1712
Symbol 1516 BitmapUsed by:1517
Symbol 1517 GraphicUses:1516Used by:1712
Symbol 1518 BitmapUsed by:1519
Symbol 1519 GraphicUses:1518Used by:1712
Symbol 1520 BitmapUsed by:1521
Symbol 1521 GraphicUses:1520Used by:1712
Symbol 1522 BitmapUsed by:1523
Symbol 1523 GraphicUses:1522Used by:1712
Symbol 1524 BitmapUsed by:1525
Symbol 1525 GraphicUses:1524Used by:1712
Symbol 1526 BitmapUsed by:1527
Symbol 1527 GraphicUses:1526Used by:1712
Symbol 1528 BitmapUsed by:1529
Symbol 1529 GraphicUses:1528Used by:1712
Symbol 1530 BitmapUsed by:1531
Symbol 1531 GraphicUses:1530Used by:1712
Symbol 1532 BitmapUsed by:1533
Symbol 1533 GraphicUses:1532Used by:1712
Symbol 1534 BitmapUsed by:1535
Symbol 1535 GraphicUses:1534Used by:1712
Symbol 1536 BitmapUsed by:1537
Symbol 1537 GraphicUses:1536Used by:1712
Symbol 1538 BitmapUsed by:1539
Symbol 1539 GraphicUses:1538Used by:1712
Symbol 1540 BitmapUsed by:1541
Symbol 1541 GraphicUses:1540Used by:1712
Symbol 1542 BitmapUsed by:1543
Symbol 1543 GraphicUses:1542Used by:1712
Symbol 1544 BitmapUsed by:1545
Symbol 1545 GraphicUses:1544Used by:1712
Symbol 1546 BitmapUsed by:1547
Symbol 1547 GraphicUses:1546Used by:1712
Symbol 1548 BitmapUsed by:1549
Symbol 1549 GraphicUses:1548Used by:1712
Symbol 1550 BitmapUsed by:1551
Symbol 1551 GraphicUses:1550Used by:1712
Symbol 1552 BitmapUsed by:1553
Symbol 1553 GraphicUses:1552Used by:1712
Symbol 1554 BitmapUsed by:1555
Symbol 1555 GraphicUses:1554Used by:1712
Symbol 1556 BitmapUsed by:1557
Symbol 1557 GraphicUses:1556Used by:1712
Symbol 1558 BitmapUsed by:1559
Symbol 1559 GraphicUses:1558Used by:1712
Symbol 1560 BitmapUsed by:1561
Symbol 1561 GraphicUses:1560Used by:1712
Symbol 1562 BitmapUsed by:1563
Symbol 1563 GraphicUses:1562Used by:1712
Symbol 1564 BitmapUsed by:1565
Symbol 1565 GraphicUses:1564Used by:1712
Symbol 1566 BitmapUsed by:1567
Symbol 1567 GraphicUses:1566Used by:1712
Symbol 1568 BitmapUsed by:1569
Symbol 1569 GraphicUses:1568Used by:1712
Symbol 1570 BitmapUsed by:1571
Symbol 1571 GraphicUses:1570Used by:1712
Symbol 1572 BitmapUsed by:1573
Symbol 1573 GraphicUses:1572Used by:1712
Symbol 1574 BitmapUsed by:1575
Symbol 1575 GraphicUses:1574Used by:1712
Symbol 1576 BitmapUsed by:1577
Symbol 1577 GraphicUses:1576Used by:1712
Symbol 1578 BitmapUsed by:1579
Symbol 1579 GraphicUses:1578Used by:1712
Symbol 1580 BitmapUsed by:1581
Symbol 1581 GraphicUses:1580Used by:1712
Symbol 1582 BitmapUsed by:1583
Symbol 1583 GraphicUses:1582Used by:1712
Symbol 1584 BitmapUsed by:1585
Symbol 1585 GraphicUses:1584Used by:1712
Symbol 1586 BitmapUsed by:1587
Symbol 1587 GraphicUses:1586Used by:1712
Symbol 1588 BitmapUsed by:1589
Symbol 1589 GraphicUses:1588Used by:1712
Symbol 1590 BitmapUsed by:1591
Symbol 1591 GraphicUses:1590Used by:1712
Symbol 1592 BitmapUsed by:1593
Symbol 1593 GraphicUses:1592Used by:1712
Symbol 1594 BitmapUsed by:1595
Symbol 1595 GraphicUses:1594Used by:1712
Symbol 1596 BitmapUsed by:1597
Symbol 1597 GraphicUses:1596Used by:1712
Symbol 1598 BitmapUsed by:1599
Symbol 1599 GraphicUses:1598Used by:1712
Symbol 1600 BitmapUsed by:1601
Symbol 1601 GraphicUses:1600Used by:1712
Symbol 1602 BitmapUsed by:1603
Symbol 1603 GraphicUses:1602Used by:1712
Symbol 1604 BitmapUsed by:1605
Symbol 1605 GraphicUses:1604Used by:1712
Symbol 1606 BitmapUsed by:1607
Symbol 1607 GraphicUses:1606Used by:1712
Symbol 1608 BitmapUsed by:1609
Symbol 1609 GraphicUses:1608Used by:1712
Symbol 1610 BitmapUsed by:1611
Symbol 1611 GraphicUses:1610Used by:1712
Symbol 1612 BitmapUsed by:1613
Symbol 1613 GraphicUses:1612Used by:1712
Symbol 1614 BitmapUsed by:1615
Symbol 1615 GraphicUses:1614Used by:1712
Symbol 1616 BitmapUsed by:1617
Symbol 1617 GraphicUses:1616Used by:1712
Symbol 1618 BitmapUsed by:1619
Symbol 1619 GraphicUses:1618Used by:1712
Symbol 1620 BitmapUsed by:1621
Symbol 1621 GraphicUses:1620Used by:1712
Symbol 1622 BitmapUsed by:1623
Symbol 1623 GraphicUses:1622Used by:1712
Symbol 1624 BitmapUsed by:1625
Symbol 1625 GraphicUses:1624Used by:1712
Symbol 1626 BitmapUsed by:1627
Symbol 1627 GraphicUses:1626Used by:1712
Symbol 1628 BitmapUsed by:1629
Symbol 1629 GraphicUses:1628Used by:1712
Symbol 1630 BitmapUsed by:1631
Symbol 1631 GraphicUses:1630Used by:1712
Symbol 1632 BitmapUsed by:1633
Symbol 1633 GraphicUses:1632Used by:1712
Symbol 1634 BitmapUsed by:1635
Symbol 1635 GraphicUses:1634Used by:1712
Symbol 1636 BitmapUsed by:1637
Symbol 1637 GraphicUses:1636Used by:1712
Symbol 1638 BitmapUsed by:1639
Symbol 1639 GraphicUses:1638Used by:1712
Symbol 1640 BitmapUsed by:1641
Symbol 1641 GraphicUses:1640Used by:1712
Symbol 1642 BitmapUsed by:1643
Symbol 1643 GraphicUses:1642Used by:1712
Symbol 1644 BitmapUsed by:1645
Symbol 1645 GraphicUses:1644Used by:1712
Symbol 1646 BitmapUsed by:1647
Symbol 1647 GraphicUses:1646Used by:1712
Symbol 1648 BitmapUsed by:1649
Symbol 1649 GraphicUses:1648Used by:1712
Symbol 1650 BitmapUsed by:1651
Symbol 1651 GraphicUses:1650Used by:1712
Symbol 1652 BitmapUsed by:1653
Symbol 1653 GraphicUses:1652Used by:1712
Symbol 1654 BitmapUsed by:1655
Symbol 1655 GraphicUses:1654Used by:1712
Symbol 1656 BitmapUsed by:1657
Symbol 1657 GraphicUses:1656Used by:1712
Symbol 1658 BitmapUsed by:1659
Symbol 1659 GraphicUses:1658Used by:1712
Symbol 1660 BitmapUsed by:1661
Symbol 1661 GraphicUses:1660Used by:1712
Symbol 1662 BitmapUsed by:1663
Symbol 1663 GraphicUses:1662Used by:1712
Symbol 1664 BitmapUsed by:1665
Symbol 1665 GraphicUses:1664Used by:1712
Symbol 1666 BitmapUsed by:1667
Symbol 1667 GraphicUses:1666Used by:1712
Symbol 1668 BitmapUsed by:1669
Symbol 1669 GraphicUses:1668Used by:1712
Symbol 1670 BitmapUsed by:1671
Symbol 1671 GraphicUses:1670Used by:1712
Symbol 1672 BitmapUsed by:1673
Symbol 1673 GraphicUses:1672Used by:1712
Symbol 1674 BitmapUsed by:1675
Symbol 1675 GraphicUses:1674Used by:1712
Symbol 1676 BitmapUsed by:1677
Symbol 1677 GraphicUses:1676Used by:1712
Symbol 1678 BitmapUsed by:1679
Symbol 1679 GraphicUses:1678Used by:1712
Symbol 1680 BitmapUsed by:1681
Symbol 1681 GraphicUses:1680Used by:1712
Symbol 1682 BitmapUsed by:1683
Symbol 1683 GraphicUses:1682Used by:1712
Symbol 1684 BitmapUsed by:1685
Symbol 1685 GraphicUses:1684Used by:1712
Symbol 1686 BitmapUsed by:1687
Symbol 1687 GraphicUses:1686Used by:1712
Symbol 1688 BitmapUsed by:1689
Symbol 1689 GraphicUses:1688Used by:1712
Symbol 1690 BitmapUsed by:1691
Symbol 1691 GraphicUses:1690Used by:1712
Symbol 1692 BitmapUsed by:1693
Symbol 1693 GraphicUses:1692Used by:1712
Symbol 1694 BitmapUsed by:1695
Symbol 1695 GraphicUses:1694Used by:1712
Symbol 1696 BitmapUsed by:1697
Symbol 1697 GraphicUses:1696Used by:1712
Symbol 1698 BitmapUsed by:1699
Symbol 1699 GraphicUses:1698Used by:1712
Symbol 1700 BitmapUsed by:1701
Symbol 1701 GraphicUses:1700Used by:1712
Symbol 1702 BitmapUsed by:1703
Symbol 1703 GraphicUses:1702Used by:1712
Symbol 1704 BitmapUsed by:1705
Symbol 1705 GraphicUses:1704Used by:1712
Symbol 1706 BitmapUsed by:1707
Symbol 1707 GraphicUses:1706Used by:1712
Symbol 1708 BitmapUsed by:1709
Symbol 1709 GraphicUses:1708Used by:1712
Symbol 1710 BitmapUsed by:1711
Symbol 1711 GraphicUses:1710Used by:1712
Symbol 1712 MovieClipUses:1471 1473 1475 1477 1479 1481 1483 1485 1487 1489 1491 1493 1495 1497 1499 1501 1503 1505 1507 1509 1511 1513 1515 1517 1519 1521 1523 1525 1527 1529 1531 1533 1535 1537 1539 1541 1543 1545 1547 1549 1551 1553 1555 1557 1559 1561 1563 1565 1567 1569 1571 1573 1575 1577 1579 1581 1583 1585 1587 1589 1591 1593 1595 1597 1599 1601 1603 1605 1607 1609 1611 1613 1615 1617 1619 1621 1623 1625 1627 1629 1631 1633 1635 1637 1639 1641 1643 1645 1647 1649 1651 1653 1655 1657 1659 1661 1663 1665 1667 1669 1671 1673 1675 1677 1679 1681 1683 1685 1687 1689 1691 1693 1695 1697 1699 1701 1703 1705 1707 1709 1711Used by:1713
Symbol 1713 MovieClip {assets.MovieClipCarLancer} [assets.MovieClipCarLancer]Uses:241 1712
Symbol 1714 GraphicUsed by:1721
Symbol 1715 TextUses:86Used by:1721
Symbol 1716 EditableTextUses:155Used by:1721
Symbol 1717 TextUses:86Used by:1721
Symbol 1718 GraphicUsed by:1719
Symbol 1719 MovieClipUses:1718Used by:1720
Symbol 1720 MovieClip {assets.MovieClipFinish} [assets.MovieClipFinish]Uses:1719Used by:1721
Symbol 1721 MovieClip {assets.MovieClipPanelFinish} [assets.MovieClipPanelFinish]Uses:1714 222 1715 1716 1717 1720
Symbol 1722 GraphicUsed by:1723
Symbol 1723 MovieClipUses:1722Used by:1725
Symbol 1724 GraphicUsed by:1725
Symbol 1725 MovieClip {assets_fla.hud_144} [assets_fla.hud_144]Uses:1723 1724Used by:1737
Symbol 1726 FontUsed by:1727 1728 1748 1749 1750 1751
Symbol 1727 EditableTextUses:1726Used by:1737
Symbol 1728 TextUses:1726Used by:1737
Symbol 1729 FontUsed by:1730 1731 1732 1733 1735 1748 1749 1750 1751
Symbol 1730 EditableTextUses:1729Used by:1734 1736
Symbol 1731 TextUses:1729Used by:1734 1736
Symbol 1732 EditableTextUses:1729Used by:1734 1736
Symbol 1733 TextUses:1729Used by:1734
Symbol 1734 MovieClip {assets_fla.hud_146} [assets_fla.hud_146]Uses:1730 1731 1732 1733Used by:1737
Symbol 1735 TextUses:1729Used by:1736
Symbol 1736 MovieClip {assets_fla.hud_147} [assets_fla.hud_147]Uses:1730 1731 1732 1735Used by:1737
Symbol 1737 MovieClip {assets.MovieClipHud} [assets.MovieClipHud]Uses:1725 1727 1728 1734 1736
Symbol 1738 GraphicUsed by:1741
Symbol 1739 TextUses:89Used by:1741
Symbol 1740 EditableTextUses:153Used by:1741
Symbol 1741 MovieClip {assets.MovieClipPanelStart} [assets.MovieClipPanelStart]Uses:1738 1739 1740
Symbol 1742 GraphicUsed by:1743
Symbol 1743 MovieClipUses:1742Used by:1744
Symbol 1744 MovieClip {assets.MovieClipNitro} [assets.MovieClipNitro]Uses:1220 1743
Symbol 1745 EditableTextUses:155Used by:1747
Symbol 1746 EditableTextUses:155Used by:1747
Symbol 1747 MovieClip {assets.MovieClipPanelFinishTime} [assets.MovieClipPanelFinishTime]Uses:1745 1746
Symbol 1748 EditableTextUses:1726 1729Used by:1752
Symbol 1749 EditableTextUses:1726 1729Used by:1752
Symbol 1750 EditableTextUses:1726 1729Used by:1752
Symbol 1751 EditableTextUses:1726 1729Used by:1752
Symbol 1752 MovieClip {assets.MovieClipControls} [assets.MovieClipControls]Uses:1748 1749 1750 1751 159 138
Symbol 1753 GraphicUsed by:1834 1886
Symbol 1754 BitmapUsed by:1756
Symbol 1755 BitmapUsed by:1756
Symbol 1756 GraphicUses:1754 1755Used by:1834 1886
Symbol 1757 BitmapUsed by:1758 1777 1796 1815
Symbol 1758 GraphicUses:1757Used by:1834
Symbol 1759 BitmapUsed by:1761
Symbol 1760 BitmapUsed by:1761
Symbol 1761 GraphicUses:1759 1760Used by:1834 1886
Symbol 1762 BitmapUsed by:1764
Symbol 1763 BitmapUsed by:1764
Symbol 1764 GraphicUses:1762 1763Used by:1834 1886
Symbol 1765 BitmapUsed by:1767
Symbol 1766 BitmapUsed by:1767
Symbol 1767 GraphicUses:1765 1766Used by:1834 1886
Symbol 1768 BitmapUsed by:1770
Symbol 1769 BitmapUsed by:1770
Symbol 1770 GraphicUses:1768 1769Used by:1834 1886
Symbol 1771 BitmapUsed by:1773
Symbol 1772 BitmapUsed by:1773
Symbol 1773 GraphicUses:1771 1772Used by:1834 1886
Symbol 1774 BitmapUsed by:1776
Symbol 1775 BitmapUsed by:1776
Symbol 1776 GraphicUses:1774 1775Used by:1834 1886
Symbol 1777 GraphicUses:1757Used by:1834
Symbol 1778 BitmapUsed by:1780
Symbol 1779 BitmapUsed by:1780
Symbol 1780 GraphicUses:1778 1779Used by:1834 1886
Symbol 1781 BitmapUsed by:1783
Symbol 1782 BitmapUsed by:1783
Symbol 1783 GraphicUses:1781 1782Used by:1834 1886
Symbol 1784 BitmapUsed by:1786
Symbol 1785 BitmapUsed by:1786
Symbol 1786 GraphicUses:1784 1785Used by:1834 1886
Symbol 1787 BitmapUsed by:1789
Symbol 1788 BitmapUsed by:1789
Symbol 1789 GraphicUses:1787 1788Used by:1834 1886
Symbol 1790 BitmapUsed by:1792
Symbol 1791 BitmapUsed by:1792
Symbol 1792 GraphicUses:1790 1791Used by:1834 1886
Symbol 1793 BitmapUsed by:1795
Symbol 1794 BitmapUsed by:1795
Symbol 1795 GraphicUses:1793 1794Used by:1834 1886
Symbol 1796 GraphicUses:1757Used by:1834
Symbol 1797 BitmapUsed by:1799
Symbol 1798 BitmapUsed by:1799
Symbol 1799 GraphicUses:1797 1798Used by:1834 1886
Symbol 1800 BitmapUsed by:1802
Symbol 1801 BitmapUsed by:1802
Symbol 1802 GraphicUses:1800 1801Used by:1834 1886
Symbol 1803 BitmapUsed by:1805
Symbol 1804 BitmapUsed by:1805
Symbol 1805 GraphicUses:1803 1804Used by:1834 1886
Symbol 1806 BitmapUsed by:1808
Symbol 1807 BitmapUsed by:1808
Symbol 1808 GraphicUses:1806 1807Used by:1834 1886
Symbol 1809 BitmapUsed by:1811
Symbol 1810 BitmapUsed by:1811
Symbol 1811 GraphicUses:1809 1810Used by:1834 1886
Symbol 1812 BitmapUsed by:1814
Symbol 1813 BitmapUsed by:1814
Symbol 1814 GraphicUses:1812 1813Used by:1834 1886
Symbol 1815 GraphicUses:1757Used by:1834
Symbol 1816 BitmapUsed by:1818
Symbol 1817 BitmapUsed by:1818
Symbol 1818 GraphicUses:1816 1817Used by:1834 1886
Symbol 1819 BitmapUsed by:1821
Symbol 1820 BitmapUsed by:1821
Symbol 1821 GraphicUses:1819 1820Used by:1834 1886
Symbol 1822 BitmapUsed by:1824
Symbol 1823 BitmapUsed by:1824
Symbol 1824 GraphicUses:1822 1823Used by:1834 1886
Symbol 1825 BitmapUsed by:1827
Symbol 1826 BitmapUsed by:1827
Symbol 1827 GraphicUses:1825 1826Used by:1834 1886
Symbol 1828 BitmapUsed by:1830
Symbol 1829 BitmapUsed by:1830
Symbol 1830 GraphicUses:1828 1829Used by:1834 1886
Symbol 1831 BitmapUsed by:1833
Symbol 1832 BitmapUsed by:1833
Symbol 1833 GraphicUses:1831 1832Used by:1834 1886
Symbol 1834 MovieClip {assets.MovieClipObstacleFinish} [assets.MovieClipObstacleFinish]Uses:1753 1756 1758 1761 1764 1767 1770 1773 1776 1777 1780 1783 1786 1789 1792 1795 1796 1799 1802 1805 1808 1811 1814 1815 1818 1821 1824 1827 1830 1833
Symbol 1835 BitmapUsed by:1836
Symbol 1836 GraphicUses:1835Used by:1837
Symbol 1837 MovieClip {assets.MovieClipObstacleBush_1} [assets.MovieClipObstacleBush_1]Uses:1836
Symbol 1838 BitmapUsed by:1839
Symbol 1839 GraphicUses:1838Used by:1840
Symbol 1840 MovieClip {assets.MovieClipObstaclePond} [assets.MovieClipObstaclePond]Uses:1839
Symbol 1841 BitmapUsed by:1842
Symbol 1842 GraphicUses:1841Used by:1843
Symbol 1843 MovieClip {assets.MovieClipObstacleRock_5} [assets.MovieClipObstacleRock_5]Uses:1842
Symbol 1844 BitmapUsed by:1845
Symbol 1845 GraphicUses:1844Used by:1846
Symbol 1846 MovieClip {assets.MovieClipObstacleTree_5} [assets.MovieClipObstacleTree_5]Uses:1845
Symbol 1847 BitmapUsed by:1848
Symbol 1848 GraphicUses:1847Used by:1849
Symbol 1849 MovieClip {assets.MovieClipObstacleRock_8} [assets.MovieClipObstacleRock_8]Uses:1848
Symbol 1850 BitmapUsed by:1851
Symbol 1851 GraphicUses:1850Used by:1852
Symbol 1852 MovieClip {assets.MovieClipObstacleCone} [assets.MovieClipObstacleCone]Uses:1851
Symbol 1853 BitmapUsed by:1854
Symbol 1854 GraphicUses:1853Used by:1855
Symbol 1855 MovieClip {assets.MovieClipObstacleTree_2} [assets.MovieClipObstacleTree_2]Uses:1854
Symbol 1856 BitmapUsed by:1857
Symbol 1857 GraphicUses:1856Used by:1858
Symbol 1858 MovieClip {assets.MovieClipObstacleRock_7} [assets.MovieClipObstacleRock_7]Uses:1857
Symbol 1859 BitmapUsed by:1860
Symbol 1860 GraphicUses:1859Used by:1861
Symbol 1861 MovieClip {assets.MovieClipObstacleTree_3} [assets.MovieClipObstacleTree_3]Uses:1860
Symbol 1862 BitmapUsed by:1863
Symbol 1863 GraphicUses:1862Used by:1864
Symbol 1864 MovieClip {assets.MovieClipObstacleRock_6} [assets.MovieClipObstacleRock_6]Uses:1863
Symbol 1865 BitmapUsed by:1866
Symbol 1866 GraphicUses:1865Used by:1867
Symbol 1867 MovieClip {assets.MovieClipObstacleTree_4} [assets.MovieClipObstacleTree_4]Uses:1866
Symbol 1868 BitmapUsed by:1869
Symbol 1869 GraphicUses:1868Used by:1870
Symbol 1870 MovieClip {assets.MovieClipObstacleTyres} [assets.MovieClipObstacleTyres]Uses:1869
Symbol 1871 BitmapUsed by:1872
Symbol 1872 GraphicUses:1871Used by:1873
Symbol 1873 MovieClip {assets.MovieClipObstacleRock_1} [assets.MovieClipObstacleRock_1]Uses:1872
Symbol 1874 BitmapUsed by:1875
Symbol 1875 GraphicUses:1874Used by:1876
Symbol 1876 MovieClip {assets.MovieClipObstacleTreeSnow1} [assets.MovieClipObstacleTreeSnow1]Uses:1875
Symbol 1877 BitmapUsed by:1878
Symbol 1878 GraphicUses:1877Used by:1879
Symbol 1879 MovieClip {assets.MovieClipObstacleRock_9} [assets.MovieClipObstacleRock_9]Uses:1878
Symbol 1880 BitmapUsed by:1881
Symbol 1881 GraphicUses:1880Used by:1882
Symbol 1882 MovieClip {assets.MovieClipObstacleRock_2} [assets.MovieClipObstacleRock_2]Uses:1881
Symbol 1883 BitmapUsed by:1884
Symbol 1884 GraphicUses:1883Used by:1885
Symbol 1885 MovieClip {assets.MovieClipObstacleRock_4} [assets.MovieClipObstacleRock_4]Uses:1884
Symbol 1886 MovieClip {assets.MovieClipObstacleCheckpoint} [assets.MovieClipObstacleCheckpoint]Uses:1753 1756 1761 1764 1767 1770 1773 1776 1780 1783 1786 1789 1792 1795 1799 1802 1805 1808 1811 1814 1818 1821 1824 1827 1830 1833
Symbol 1887 BitmapUsed by:1888
Symbol 1888 GraphicUses:1887Used by:1889
Symbol 1889 MovieClip {assets.MovieClipObstacleRock_3} [assets.MovieClipObstacleRock_3]Uses:1888
Symbol 1890 BitmapUsed by:1891
Symbol 1891 GraphicUses:1890Used by:1892
Symbol 1892 MovieClip {assets.MovieClipObstacleBush_2} [assets.MovieClipObstacleBush_2]Uses:1891
Symbol 1893 BitmapUsed by:1894
Symbol 1894 GraphicUses:1893Used by:1895
Symbol 1895 MovieClip {assets.MovieClipObstacleTree_6} [assets.MovieClipObstacleTree_6]Uses:1894
Symbol 1896 BitmapUsed by:1897
Symbol 1897 GraphicUses:1896Used by:1898
Symbol 1898 MovieClip {assets.MovieClipObstacleTree_1} [assets.MovieClipObstacleTree_1]Uses:1897
Symbol 1899 GraphicUsed by:1900
Symbol 1900 MovieClipUses:1899Used by:1922 1940 1962 2003 2004
Symbol 1901 MovieClip {fl.core.ComponentShim} [fl.core.ComponentShim]Used by:1922 1940 1962 1979 2002 2003 2004
Symbol 1902 GraphicUsed by:1903
Symbol 1903 MovieClip {Button_disabledSkin} [Button_disabledSkin]Uses:1902Used by:1922
Symbol 1904 GraphicUsed by:1905
Symbol 1905 MovieClip {Button_downSkin} [Button_downSkin]Uses:1904Used by:1922
Symbol 1906 GraphicUsed by:1907
Symbol 1907 MovieClip {Button_emphasizedSkin} [Button_emphasizedSkin]Uses:1906Used by:1922
Symbol 1908 GraphicUsed by:1909
Symbol 1909 MovieClip {Button_overSkin} [Button_overSkin]Uses:1908Used by:1922
Symbol 1910 GraphicUsed by:1911
Symbol 1911 MovieClip {Button_selectedDisabledSkin} [Button_selectedDisabledSkin]Uses:1910Used by:1922
Symbol 1912 GraphicUsed by:1913
Symbol 1913 MovieClip {Button_selectedDownSkin} [Button_selectedDownSkin]Uses:1912Used by:1922
Symbol 1914 GraphicUsed by:1915
Symbol 1915 MovieClip {Button_selectedOverSkin} [Button_selectedOverSkin]Uses:1914Used by:1922
Symbol 1916 GraphicUsed by:1917
Symbol 1917 MovieClip {Button_selectedUpSkin} [Button_selectedUpSkin]Uses:1916Used by:1922
Symbol 1918 GraphicUsed by:1919
Symbol 1919 MovieClip {Button_upSkin} [Button_upSkin]Uses:1918Used by:1922
Symbol 1920 GraphicUsed by:1921
Symbol 1921 MovieClip {focusRectSkin} [focusRectSkin]Uses:1920Used by:1922 1940 1962 2002 2003 2004
Symbol 1922 MovieClip {fl.controls.Button} [fl.controls.Button]Uses:1900 1901 1903 1905 1907 1909 1911 1913 1915 1917 1919 1921Used by:2005
Symbol 1923 GraphicUsed by:1925
Symbol 1924 GraphicUsed by:1925 1927 1929 1931 1933 1935 1937 1939 1983 1984 1987 1990 1992 1995
Symbol 1925 MovieClip {NumericStepperDownArrow_disabledSkin} [NumericStepperDownArrow_disabledSkin]Uses:1923 1924Used by:1940
Symbol 1926 GraphicUsed by:1927
Symbol 1927 MovieClip {NumericStepperDownArrow_downSkin} [NumericStepperDownArrow_downSkin]Uses:1926 1924Used by:1940
Symbol 1928 GraphicUsed by:1929
Symbol 1929 MovieClip {NumericStepperDownArrow_overSkin} [NumericStepperDownArrow_overSkin]Uses:1928 1924Used by:1940
Symbol 1930 GraphicUsed by:1931
Symbol 1931 MovieClip {NumericStepperDownArrow_upSkin} [NumericStepperDownArrow_upSkin]Uses:1930 1924Used by:1940
Symbol 1932 GraphicUsed by:1933
Symbol 1933 MovieClip {NumericStepperUpArrow_disabledSkin} [NumericStepperUpArrow_disabledSkin]Uses:1932 1924Used by:1940
Symbol 1934 GraphicUsed by:1935
Symbol 1935 MovieClip {NumericStepperUpArrow_downSkin} [NumericStepperUpArrow_downSkin]Uses:1934 1924Used by:1940
Symbol 1936 GraphicUsed by:1937
Symbol 1937 MovieClip {NumericStepperUpArrow_overSkin} [NumericStepperUpArrow_overSkin]Uses:1936 1924Used by:1940
Symbol 1938 GraphicUsed by:1939
Symbol 1939 MovieClip {NumericStepperUpArrow_upSkin} [NumericStepperUpArrow_upSkin]Uses:1938 1924Used by:1940
Symbol 1940 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]Uses:1900 1901 1921 1925 1927 1929 1931 1933 1935 1937 1939Used by:2005
Symbol 1941 TextUsed by:2005
Symbol 1942 TextUses:1221Used by:2005
Symbol 1943 TextUses:1221Used by:2005
Symbol 1944 TextUses:1221Used by:2005
Symbol 1945 TextUses:1221Used by:2005
Symbol 1946 TextUses:1221Used by:2005
Symbol 1947 EditableTextUses:1221Used by:2005
Symbol 1948 TextUses:1221Used by:2005
Symbol 1949 TextUsed by:2005
Symbol 1950 GraphicUsed by:1951
Symbol 1951 MovieClip {ComboBox_upSkin} [ComboBox_upSkin]Uses:1950Used by:2004
Symbol 1952 GraphicUsed by:1953
Symbol 1953 MovieClip {ComboBox_disabledSkin} [ComboBox_disabledSkin]Uses:1952Used by:2004
Symbol 1954 GraphicUsed by:1955
Symbol 1955 MovieClip {ComboBox_overSkin} [ComboBox_overSkin]Uses:1954Used by:2004
Symbol 1956 GraphicUsed by:1957
Symbol 1957 MovieClip {ComboBox_downSkin} [ComboBox_downSkin]Uses:1956Used by:2004
Symbol 1958 GraphicUsed by:1959
Symbol 1959 MovieClip {TextInput_disabledSkin} [TextInput_disabledSkin]Uses:1958Used by:1962
Symbol 1960 GraphicUsed by:1961
Symbol 1961 MovieClip {TextInput_upSkin} [TextInput_upSkin]Uses:1960Used by:1962
Symbol 1962 MovieClip {fl.controls.TextInput} [fl.controls.TextInput]Uses:1900 1901 1959 1961 1921Used by:2004
Symbol 1963 GraphicUsed by:1964
Symbol 1964 MovieClip {List_skin} [List_skin]Uses:1963Used by:2003
Symbol 1965 GraphicUsed by:1966
Symbol 1966 MovieClip {CellRenderer_upSkin} [CellRenderer_upSkin]Uses:1965Used by:1979
Symbol 1967 GraphicUsed by:1968
Symbol 1968 MovieClip {CellRenderer_disabledSkin} [CellRenderer_disabledSkin]Uses:1967Used by:1979
Symbol 1969 GraphicUsed by:1970 1971
Symbol 1970 MovieClip {CellRenderer_downSkin} [CellRenderer_downSkin]Uses:1969Used by:1979
Symbol 1971 MovieClip {CellRenderer_overSkin} [CellRenderer_overSkin]Uses:1969Used by:1979
Symbol 1972 GraphicUsed by:1973
Symbol 1973 MovieClip {CellRenderer_selectedDisabledSkin} [CellRenderer_selectedDisabledSkin]Uses:1972Used by:1979
Symbol 1974 GraphicUsed by:1975 1976
Symbol 1975 MovieClip {CellRenderer_selectedDownSkin} [CellRenderer_selectedDownSkin]Uses:1974Used by:1979
Symbol 1976 MovieClip {CellRenderer_selectedOverSkin} [CellRenderer_selectedOverSkin]Uses:1974Used by:1979
Symbol 1977 GraphicUsed by:1978
Symbol 1978 MovieClip {CellRenderer_selectedUpSkin} [CellRenderer_selectedUpSkin]Uses:1977Used by:1979
Symbol 1979 MovieClip {fl.controls.listClasses.CellRenderer} [fl.controls.listClasses.CellRenderer]Uses:1966 1901 1968 1970 1971 1973 1975 1976 1978Used by:2003
Symbol 1980 GraphicUsed by:1981
Symbol 1981 MovieClip {ScrollTrack_skin} [ScrollTrack_skin]Uses:1980Used by:2002
Symbol 1982 GraphicUsed by:1983 1984 1987 1990
Symbol 1983 MovieClip {ScrollArrowUp_downSkin} [ScrollArrowUp_downSkin]Uses:1982 1924Used by:2002
Symbol 1984 MovieClip {ScrollArrowDown_downSkin} [ScrollArrowDown_downSkin]Uses:1982 1924Used by:2002
Symbol 1985 GraphicUsed by:1986
Symbol 1986 MovieClip {ScrollThumb_downSkin} [ScrollThumb_downSkin]Uses:1985Used by:2002
Symbol 1987 MovieClip {ScrollArrowDown_overSkin} [ScrollArrowDown_overSkin]Uses:1982 1924Used by:2002
Symbol 1988 GraphicUsed by:1989
Symbol 1989 MovieClip {ScrollThumb_overSkin} [ScrollThumb_overSkin]Uses:1988Used by:2002
Symbol 1990 MovieClip {ScrollArrowUp_overSkin} [ScrollArrowUp_overSkin]Uses:1982 1924Used by:2002
Symbol 1991 GraphicUsed by:1992 1995
Symbol 1992 MovieClip {ScrollArrowUp_upSkin} [ScrollArrowUp_upSkin]Uses:1991 1924Used by:2002
Symbol 1993 GraphicUsed by:1994
Symbol 1994 MovieClip {ScrollThumb_upSkin} [ScrollThumb_upSkin]Uses:1993Used by:2002
Symbol 1995 MovieClip {ScrollArrowDown_upSkin} [ScrollArrowDown_upSkin]Uses:1991 1924Used by:2002
Symbol 1996 GraphicUsed by:1997
Symbol 1997 MovieClip {ScrollArrowDown_disabledSkin} [ScrollArrowDown_disabledSkin]Uses:1996Used by:2002
Symbol 1998 GraphicUsed by:1999
Symbol 1999 MovieClip {ScrollArrowUp_disabledSkin} [ScrollArrowUp_disabledSkin]Uses:1998Used by:2002
Symbol 2000 GraphicUsed by:2001
Symbol 2001 MovieClip {ScrollBar_thumbIcon} [ScrollBar_thumbIcon]Uses:2000Used by:2002
Symbol 2002 MovieClip {fl.controls.ScrollBar} [fl.controls.ScrollBar]Uses:1981 1901 1921 1983 1984 1986 1987 1989 1990 1992 1994 1995 1997 1999 2001Used by:2003
Symbol 2003 MovieClip {fl.controls.List} [fl.controls.List]Uses:1900 1901 1964 1979 1921 2002Used by:2004
Symbol 2004 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]Uses:1900 1901 1921 1951 1953 1955 1957 1962 2003Used by:2005 2032
Symbol 2005 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug]Uses:1941 1940 1922 1942 1943 1944 1945 1946 1947 1948 1949 2004
Symbol 2006 TextUses:155Used by:2032
Symbol 2007 FontUsed by:2008
Symbol 2008 TextUses:2007Used by:2032
Symbol 2009 FontUsed by:2010
Symbol 2010 TextUses:2009Used by:2032
Symbol 2011 GraphicUsed by:2017
Symbol 2012 GraphicUsed by:2013
Symbol 2013 MovieClipUses:2012Used by:2017
Symbol 2014 GraphicUsed by:2017
Symbol 2015 FontUsed by:2016
Symbol 2016 EditableTextUses:2015Used by:2017
Symbol 2017 MovieClip {assets_fla.scoreboard_193} [assets_fla.scoreboard_193]Uses:2011 2013 2014 2016Used by:2032
Symbol 2018 GraphicUsed by:2019 2025
Symbol 2019 MovieClipUses:2018Used by:2025
Symbol 2020 GraphicUsed by:2021 2022
Symbol 2021 MovieClipUses:2020Used by:2022
Symbol 2022 MovieClipUses:2020 2021Used by:2023
Symbol 2023 MovieClipUses:2022Used by:2025
Symbol 2024 GraphicUsed by:2025
Symbol 2025 MovieClip {assets_fla.scoreboard_195} [assets_fla.scoreboard_195]Uses:2018 2019 2023 2024Used by:2032
Symbol 2026 TextUses:155Used by:2032
Symbol 2027 TextUses:140Used by:2031
Symbol 2028 GraphicUsed by:2031
Symbol 2029 TextUses:140Used by:2031
Symbol 2030 GraphicUsed by:2031
Symbol 2031 ButtonUses:2027 2028 2029 2030Used by:2032
Symbol 2032 MovieClip {assets.MovieClipScoreboard} [assets.MovieClipScoreboard]Uses:2006 2008 2010 2017 2004 2025 2026 2031 222
Symbol 2033 Sound {assets.SoundCarLoopIdle} [assets.SoundCarLoopIdle]
Symbol 2034 Sound {assets.SoundCarEngine03} [assets.SoundCarEngine03]
Symbol 2035 Sound {assets.SoundCarCrashCar} [assets.SoundCarCrashCar]
Symbol 2036 Sound {assets.SoundCarEngine00} [assets.SoundCarEngine00]
Symbol 2037 Sound {assets.SoundCarLoopHigh} [assets.SoundCarLoopHigh]
Symbol 2038 Sound {assets.SoundCarEngine05} [assets.SoundCarEngine05]
Symbol 2039 Sound {assets.SoundCarEngine01} [assets.SoundCarEngine01]
Symbol 2040 Sound {assets.SoundCarLoopMedium} [assets.SoundCarLoopMedium]
Symbol 2041 Sound {assets.SoundCarLoopLow} [assets.SoundCarLoopLow]
Symbol 2042 Sound {assets.SoundCarEngine04} [assets.SoundCarEngine04]
Symbol 2043 Sound {assets.SoundCarSkid} [assets.SoundCarSkid]
Symbol 2044 Sound {assets.SoundCarEngine02} [assets.SoundCarEngine02]
Symbol 2045 Sound {assets.SoundCarCrashSolid} [assets.SoundCarCrashSolid]
Symbol 2046 Bitmap {assets.BitmapTilesTarmacAlpha} [assets.BitmapTilesTarmacAlpha]
Symbol 2047 Bitmap {assets.BitmapTilesSnowAlpha} [assets.BitmapTilesSnowAlpha]
Symbol 2048 Bitmap {assets.BitmapTilesTarmacTexture} [assets.BitmapTilesTarmacTexture]
Symbol 2049 Bitmap {assets.BitmapTilesSnowTexture} [assets.BitmapTilesSnowTexture]
Symbol 2050 Bitmap {assets.BitmapTilesDesertAlpha} [assets.BitmapTilesDesertAlpha]
Symbol 2051 Bitmap {assets.BitmapTilesDesertTexture} [assets.BitmapTilesDesertTexture]
Symbol 2052 Bitmap {assets.BitmapTilesBackground} [assets.BitmapTilesBackground]
Symbol 2053 GraphicUsed by:2054
Symbol 2054 MovieClipUses:2053Used by:2055
Symbol 2055 MovieClip {assets.MovieClipCountGo} [assets.MovieClipCountGo]Uses:2054
Symbol 2056 GraphicUsed by:2057
Symbol 2057 MovieClipUses:2056Used by:2058
Symbol 2058 MovieClip {assets.MovieClipCount01} [assets.MovieClipCount01]Uses:2057
Symbol 2059 GraphicUsed by:2060
Symbol 2060 MovieClipUses:2059Used by:2061
Symbol 2061 MovieClip {assets.MovieClipCount02} [assets.MovieClipCount02]Uses:2060
Symbol 2062 GraphicUsed by:2063
Symbol 2063 MovieClipUses:2062Used by:2064
Symbol 2064 MovieClip {assets.MovieClipCount03} [assets.MovieClipCount03]Uses:2063
Symbol 2065 Bitmap {assets.BitmapDataTilesMinimap} [assets.BitmapDataTilesMinimap]
Symbol 2066 GraphicUsed by:2070
Symbol 2067 FontUsed by:2068 2069
Symbol 2068 EditableTextUses:2067Used by:2070
Symbol 2069 EditableTextUses:2067Used by:2070
Symbol 2070 MovieClip {assets.MovieClipLapDisplay} [assets.MovieClipLapDisplay]Uses:2066 2068 2069
Symbol 2071 BitmapUsed by:2072
Symbol 2072 GraphicUses:2071Used by:2073
Symbol 2073 MovieClip {assets.MovieClipEffectLight} [assets.MovieClipEffectLight]Uses:2072
Symbol 2074 GraphicUsed by:2075
Symbol 2075 MovieClip {assets.MovieClipEffectBlack} [assets.MovieClipEffectBlack]Uses:2074
Symbol 2076 BitmapUsed by:2077
Symbol 2077 GraphicUses:2076Used by:2078
Symbol 2078 MovieClip {assets.MovieClipEffectClouds} [assets.MovieClipEffectClouds]Uses:2077
Symbol 2079 BitmapUsed by:2080
Symbol 2080 GraphicUses:2079Used by:2081 2082
Symbol 2081 MovieClip {assets.MovieClipEffectDustSnow} [assets.MovieClipEffectDustSnow]Uses:2080
Symbol 2082 MovieClip {assets.MovieClipEffectDustDesert} [assets.MovieClipEffectDustDesert]Uses:2080
Symbol 2083 GraphicUsed by:2090
Symbol 2084 GraphicUsed by:2085
Symbol 2085 MovieClipUses:2084Used by:2090
Symbol 2086 GraphicUsed by:2087
Symbol 2087 MovieClipUses:2086Used by:2090
Symbol 2088 GraphicUsed by:2089
Symbol 2089 MovieClipUses:2088Used by:2090
Symbol 2090 MovieClip {assets.MovieClipDebugObstacle} [assets.MovieClipDebugObstacle]Uses:2083 2085 2087 2089
Symbol 2091 GraphicUsed by:2093
Symbol 2092 GraphicUsed by:2093
Symbol 2093 MovieClip {assets.MovieClipMinimapMarker} [assets.MovieClipMinimapMarker]Uses:2091 2092

Instance Names

"procent"Symbol 11 MovieClip {assets_fla.prelMCxcopy_ovidiu2_150} [assets_fla.prelMCxcopy_ovidiu2_150] Frame 1Symbol 6 EditableText
"pre1"Symbol 59 MovieClip {assets.Preloader} [assets.Preloader] Frame 1Symbol 11 MovieClip {assets_fla.prelMCxcopy_ovidiu2_150} [assets_fla.prelMCxcopy_ovidiu2_150]
"mcLogo"Symbol 59 MovieClip {assets.Preloader} [assets.Preloader] Frame 1Symbol 56 MovieClip {assets_fla.fog_logo_temp_151} [assets_fla.fog_logo_temp_151]
"btnFoggy"Symbol 59 MovieClip {assets.Preloader} [assets.Preloader] Frame 1Symbol 58 Button
"guide"Symbol 67 MovieClip {assets_fla.mc_bomb_17} [assets_fla.mc_bomb_17] Frame 1Symbol 66 MovieClip
"btnFOG"Symbol 139 MovieClip {assets.MovieClipTitle} [assets.MovieClipTitle] Frame 1Symbol 138 MovieClip
"label"Symbol 160 MovieClip {assets_fla.credits_186} [assets_fla.credits_186] Frame 1Symbol 157 EditableText
"btn"Symbol 160 MovieClip {assets_fla.credits_186} [assets_fla.credits_186] Frame 1Symbol 159 Button
"btnMusic"Symbol 161 MovieClip {assets.MovieClipHelp} [assets.MovieClipHelp] Frame 1Symbol 160 MovieClip {assets_fla.credits_186} [assets_fla.credits_186]
"btnSounds"Symbol 161 MovieClip {assets.MovieClipHelp} [assets.MovieClipHelp] Frame 1Symbol 160 MovieClip {assets_fla.credits_186} [assets_fla.credits_186]
"btnSelect"Symbol 186 MovieClip {assets.MovieClipCars} [assets.MovieClipCars] Frame 1Symbol 165 Button
"btnBack"Symbol 186 MovieClip {assets.MovieClipCars} [assets.MovieClipCars] Frame 1Symbol 169 Button
"btnLeft"Symbol 186 MovieClip {assets.MovieClipCars} [assets.MovieClipCars] Frame 1Symbol 175 Button
"btnRight"Symbol 186 MovieClip {assets.MovieClipCars} [assets.MovieClipCars] Frame 1Symbol 179 Button
"nameText"Symbol 186 MovieClip {assets.MovieClipCars} [assets.MovieClipCars] Frame 1Symbol 180 EditableText
"lock"Symbol 186 MovieClip {assets.MovieClipCars} [assets.MovieClipCars] Frame 1Symbol 183 MovieClip
"descriptionText"Symbol 186 MovieClip {assets.MovieClipCars} [assets.MovieClipCars] Frame 1Symbol 184 EditableText
"lock"Symbol 196 MovieClip {assets.MovieClipStandingsItem} [assets.MovieClipStandingsItem] Frame 1Symbol 183 MovieClip
"trackText"Symbol 196 MovieClip {assets.MovieClipStandingsItem} [assets.MovieClipStandingsItem] Frame 1Symbol 193 EditableText
"positionText"Symbol 196 MovieClip {assets.MovieClipStandingsItem} [assets.MovieClipStandingsItem] Frame 1Symbol 194 EditableText
"timeText"Symbol 196 MovieClip {assets.MovieClipStandingsItem} [assets.MovieClipStandingsItem] Frame 1Symbol 195 EditableText
"btnCancel"Symbol 207 MovieClip {assets.MovieClipSubmit} [assets.MovieClipSubmit] Frame 1Symbol 201 Button
"playerText"Symbol 209 MovieClip {assets.MovieClipStandingsPlayer} [assets.MovieClipStandingsPlayer] Frame 1Symbol 208 EditableText
"pointsText"Symbol 212 MovieClip {assets.MovieClipStandingsPointsFirst} [assets.MovieClipStandingsPointsFirst] Frame 1Symbol 211 EditableText
"pointsText"Symbol 214 MovieClip {assets.MovieClipStandingsPointsSecond} [assets.MovieClipStandingsPointsSecond] Frame 1Symbol 213 EditableText
"pointsText"Symbol 216 MovieClip {assets.MovieClipStandingsPointsDefault} [assets.MovieClipStandingsPointsDefault] Frame 1Symbol 215 EditableText
"btnContinue"Symbol 229 MovieClip {assets.MovieClipStandings} [assets.MovieClipStandings] Frame 1Symbol 222 Button
"positionText"Symbol 229 MovieClip {assets.MovieClipStandings} [assets.MovieClipStandings] Frame 1Symbol 224 EditableText
"leaderboard"Symbol 229 MovieClip {assets.MovieClipStandings} [assets.MovieClipStandings] Frame 1Symbol 228 MovieClip
"dataText"Symbol 231 MovieClip {assets.MovieClipStandingsTotals} [assets.MovieClipStandingsTotals] Frame 1Symbol 230 EditableText
"pointsText"Symbol 233 MovieClip {assets.MovieClipStandingsPointsThird} [assets.MovieClipStandingsPointsThird] Frame 1Symbol 232 EditableText
"btnLeft"Symbol 238 MovieClip {assets.MovieClipTracks} [assets.MovieClipTracks] Frame 1Symbol 175 Button
"btnRight"Symbol 238 MovieClip {assets.MovieClipTracks} [assets.MovieClipTracks] Frame 1Symbol 179 Button
"lock"Symbol 238 MovieClip {assets.MovieClipTracks} [assets.MovieClipTracks] Frame 1Symbol 183 MovieClip
"btnSelect"Symbol 238 MovieClip {assets.MovieClipTracks} [assets.MovieClipTracks] Frame 1Symbol 165 Button
"btnBack"Symbol 238 MovieClip {assets.MovieClipTracks} [assets.MovieClipTracks] Frame 1Symbol 169 Button
"descriptionText"Symbol 238 MovieClip {assets.MovieClipTracks} [assets.MovieClipTracks] Frame 1Symbol 184 EditableText
"nameText"Symbol 238 MovieClip {assets.MovieClipTracks} [assets.MovieClipTracks] Frame 1Symbol 235 EditableText
"tail"Symbol 241 MovieClip {assets_fla.car_2} [assets_fla.car_2] Frame 1Symbol 240 MovieClip
"tail"Symbol 485 MovieClip {assets.MovieClipCarAlfa} [assets.MovieClipCarAlfa] Frame 1Symbol 241 MovieClip {assets_fla.car_2} [assets_fla.car_2]
"body"Symbol 485 MovieClip {assets.MovieClipCarAlfa} [assets.MovieClipCarAlfa] Frame 1Symbol 484 MovieClip {assets_fla.car_10} [assets_fla.car_10]
"tail"Symbol 729 MovieClip {assets.MovieClipCarCelica} [assets.MovieClipCarCelica] Frame 1Symbol 241 MovieClip {assets_fla.car_2} [assets_fla.car_2]
"body"Symbol 729 MovieClip {assets.MovieClipCarCelica} [assets.MovieClipCarCelica] Frame 1Symbol 728 MovieClip {assets_fla.car_14} [assets_fla.car_14]
"tail"Symbol 973 MovieClip {assets.MovieClipCarFocus} [assets.MovieClipCarFocus] Frame 1Symbol 241 MovieClip {assets_fla.car_2} [assets_fla.car_2]
"body"Symbol 973 MovieClip {assets.MovieClipCarFocus} [assets.MovieClipCarFocus] Frame 1Symbol 972 MovieClip {assets_fla.car_12} [assets_fla.car_12]
"tail"Symbol 1217 MovieClip {assets.MovieClipCarImpreza} [assets.MovieClipCarImpreza] Frame 1Symbol 241 MovieClip {assets_fla.car_2} [assets_fla.car_2]
"body"Symbol 1217 MovieClip {assets.MovieClipCarImpreza} [assets.MovieClipCarImpreza] Frame 1Symbol 1216 MovieClip {assets_fla.car_4} [assets_fla.car_4]
"textID"Symbol 1225 MovieClip {assets.MovieClipMarker} [assets.MovieClipMarker] Frame 1Symbol 1222 EditableText
"marker"Symbol 1225 MovieClip {assets.MovieClipMarker} [assets.MovieClipMarker] Frame 1Symbol 1224 MovieClip
"tail"Symbol 1469 MovieClip {assets.MovieClipCarSkoda} [assets.MovieClipCarSkoda] Frame 1Symbol 241 MovieClip {assets_fla.car_2} [assets_fla.car_2]
"body"Symbol 1469 MovieClip {assets.MovieClipCarSkoda} [assets.MovieClipCarSkoda] Frame 1Symbol 1468 MovieClip
"tail"Symbol 1713 MovieClip {assets.MovieClipCarLancer} [assets.MovieClipCarLancer] Frame 1Symbol 241 MovieClip {assets_fla.car_2} [assets_fla.car_2]
"body"Symbol 1713 MovieClip {assets.MovieClipCarLancer} [assets.MovieClipCarLancer] Frame 1Symbol 1712 MovieClip
"btnContinue"Symbol 1721 MovieClip {assets.MovieClipPanelFinish} [assets.MovieClipPanelFinish] Frame 1Symbol 222 Button
"positionText"Symbol 1721 MovieClip {assets.MovieClipPanelFinish} [assets.MovieClipPanelFinish] Frame 1Symbol 1716 EditableText
"dial"Symbol 1725 MovieClip {assets_fla.hud_144} [assets_fla.hud_144] Frame 1Symbol 1723 MovieClip
"fieldText"Symbol 1734 MovieClip {assets_fla.hud_146} [assets_fla.hud_146] Frame 1Symbol 1730 EditableText
"placeText"Symbol 1734 MovieClip {assets_fla.hud_146} [assets_fla.hud_146] Frame 1Symbol 1732 EditableText
"lapsText"Symbol 1736 MovieClip {assets_fla.hud_147} [assets_fla.hud_147] Frame 1Symbol 1730 EditableText
"lapText"Symbol 1736 MovieClip {assets_fla.hud_147} [assets_fla.hud_147] Frame 1Symbol 1732 EditableText
"speedo"Symbol 1737 MovieClip {assets.MovieClipHud} [assets.MovieClipHud] Frame 1Symbol 1725 MovieClip {assets_fla.hud_144} [assets_fla.hud_144]
"timerText"Symbol 1737 MovieClip {assets.MovieClipHud} [assets.MovieClipHud] Frame 1Symbol 1727 EditableText
"position"Symbol 1737 MovieClip {assets.MovieClipHud} [assets.MovieClipHud] Frame 1Symbol 1734 MovieClip {assets_fla.hud_146} [assets_fla.hud_146]
"laps"Symbol 1737 MovieClip {assets.MovieClipHud} [assets.MovieClipHud] Frame 1Symbol 1736 MovieClip {assets_fla.hud_147} [assets_fla.hud_147]
"descriptionText"Symbol 1741 MovieClip {assets.MovieClipPanelStart} [assets.MovieClipPanelStart] Frame 1Symbol 1740 EditableText
"idText"Symbol 1747 MovieClip {assets.MovieClipPanelFinishTime} [assets.MovieClipPanelFinishTime] Frame 1Symbol 1745 EditableText
"timeText"Symbol 1747 MovieClip {assets.MovieClipPanelFinishTime} [assets.MovieClipPanelFinishTime] Frame 1Symbol 1746 EditableText
"textSound"Symbol 1752 MovieClip {assets.MovieClipControls} [assets.MovieClipControls] Frame 1Symbol 1748 EditableText
"textPause"Symbol 1752 MovieClip {assets.MovieClipControls} [assets.MovieClipControls] Frame 1Symbol 1749 EditableText
"textMusic"Symbol 1752 MovieClip {assets.MovieClipControls} [assets.MovieClipControls] Frame 1Symbol 1750 EditableText
"textExit"Symbol 1752 MovieClip {assets.MovieClipControls} [assets.MovieClipControls] Frame 1Symbol 1751 EditableText
"btnMusic"Symbol 1752 MovieClip {assets.MovieClipControls} [assets.MovieClipControls] Frame 1Symbol 159 Button
"btnSound"Symbol 1752 MovieClip {assets.MovieClipControls} [assets.MovieClipControls] Frame 1Symbol 159 Button
"btnPause"Symbol 1752 MovieClip {assets.MovieClipControls} [assets.MovieClipControls] Frame 1Symbol 159 Button
"btnExit"Symbol 1752 MovieClip {assets.MovieClipControls} [assets.MovieClipControls] Frame 1Symbol 159 Button
"btnFOG"Symbol 1752 MovieClip {assets.MovieClipControls} [assets.MovieClipControls] Frame 1Symbol 138 MovieClip
"stepAcceleration"Symbol 2005 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1940 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"stepDampingLinear"Symbol 2005 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1940 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"stepDampingAngular"Symbol 2005 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1940 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"stepGripFront"Symbol 2005 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1940 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"stepSteeringInc"Symbol 2005 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1940 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"btnShowBox2d"Symbol 2005 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1922 MovieClip {fl.controls.Button} [fl.controls.Button]
"stepGripRear"Symbol 2005 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1940 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"stepSteeringRange"Symbol 2005 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1940 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"btnWaypointsShow"Symbol 2005 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1922 MovieClip {fl.controls.Button} [fl.controls.Button]
"textCarX"Symbol 2005 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1947 EditableText
"textCarY"Symbol 2005 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1947 EditableText
"textCarAngle"Symbol 2005 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1947 EditableText
"btnWaypointsTrace"Symbol 2005 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1922 MovieClip {fl.controls.Button} [fl.controls.Button]
"btnObstaclesShow"Symbol 2005 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1922 MovieClip {fl.controls.Button} [fl.controls.Button]
"btnObstaclesTrace"Symbol 2005 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1922 MovieClip {fl.controls.Button} [fl.controls.Button]
"btnShowLines"Symbol 2005 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1922 MovieClip {fl.controls.Button} [fl.controls.Button]
"stepMultiplier"Symbol 2005 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1940 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"btnObstaclesAdd"Symbol 2005 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1922 MovieClip {fl.controls.Button} [fl.controls.Button]
"comboObstacles"Symbol 2005 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 2004 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"hover"Symbol 2017 MovieClip {assets_fla.scoreboard_193} [assets_fla.scoreboard_193] Frame 1Symbol 2013 MovieClip
"textInput"Symbol 2017 MovieClip {assets_fla.scoreboard_193} [assets_fla.scoreboard_193] Frame 1Symbol 2016 EditableText
"bar"Symbol 2025 MovieClip {assets_fla.scoreboard_195} [assets_fla.scoreboard_195] Frame 1Symbol 2019 MovieClip
"inputName"Symbol 2032 MovieClip {assets.MovieClipScoreboard} [assets.MovieClipScoreboard] Frame 1Symbol 2017 MovieClip {assets_fla.scoreboard_193} [assets_fla.scoreboard_193]
"inputEmail"Symbol 2032 MovieClip {assets.MovieClipScoreboard} [assets.MovieClipScoreboard] Frame 1Symbol 2017 MovieClip {assets_fla.scoreboard_193} [assets_fla.scoreboard_193]
"inputCountries"Symbol 2032 MovieClip {assets.MovieClipScoreboard} [assets.MovieClipScoreboard] Frame 1Symbol 2004 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"preloaderBar"Symbol 2032 MovieClip {assets.MovieClipScoreboard} [assets.MovieClipScoreboard] Frame 1Symbol 2025 MovieClip {assets_fla.scoreboard_195} [assets_fla.scoreboard_195]
"btnSubmit"Symbol 2032 MovieClip {assets.MovieClipScoreboard} [assets.MovieClipScoreboard] Frame 1Symbol 2031 Button
"btnContinue"Symbol 2032 MovieClip {assets.MovieClipScoreboard} [assets.MovieClipScoreboard] Frame 1Symbol 222 Button
"lapText"Symbol 2070 MovieClip {assets.MovieClipLapDisplay} [assets.MovieClipLapDisplay] Frame 1Symbol 2068 EditableText
"timeText"Symbol 2070 MovieClip {assets.MovieClipLapDisplay} [assets.MovieClipLapDisplay] Frame 1Symbol 2069 EditableText
"btnRotateCW"Symbol 2090 MovieClip {assets.MovieClipDebugObstacle} [assets.MovieClipDebugObstacle] Frame 1Symbol 2085 MovieClip
"btnDelete"Symbol 2090 MovieClip {assets.MovieClipDebugObstacle} [assets.MovieClipDebugObstacle] Frame 1Symbol 2087 MovieClip
"btnDrag"Symbol 2090 MovieClip {assets.MovieClipDebugObstacle} [assets.MovieClipDebugObstacle] Frame 1Symbol 2089 MovieClip
"btnRotateCCW"Symbol 2090 MovieClip {assets.MovieClipDebugObstacle} [assets.MovieClipDebugObstacle] Frame 1Symbol 2085 MovieClip

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1458 bytes "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description rdf:about='' xmlns ..."
ScriptLimits (65)Timeline Frame 1MaxRecursionDepth: 1000, ScriptTimeout: 60 seconds
ExportAssets (56)Timeline Frame 1Symbol 3 as "assets.fog_1"
ExportAssets (56)Timeline Frame 1Symbol 59 as "assets.Preloader"
ExportAssets (56)Timeline Frame 1Symbol 56 as "assets_fla.fog_logo_temp_151"
ExportAssets (56)Timeline Frame 1Symbol 11 as "assets_fla.prelMCxcopy_ovidiu2_150"
ExportAssets (56)Timeline Frame 1Symbol 55 as "assets.fogaudio"
ExportAssets (56)Timeline Frame 2Symbol 88 as "assets.buttonBlastone"
ExportAssets (56)Timeline Frame 2Symbol 92 as "assets.MovieClipGetReady"
ExportAssets (56)Timeline Frame 2Symbol 139 as "assets.MovieClipTitle"
ExportAssets (56)Timeline Frame 2Symbol 146 as "assets.ButtonPlay"
ExportAssets (56)Timeline Frame 2Symbol 147 as "assets.BitmapFlag"
ExportAssets (56)Timeline Frame 2Symbol 152 as "assets.ButtonMoreGames"
ExportAssets (56)Timeline Frame 2Symbol 161 as "assets.MovieClipHelp"
ExportAssets (56)Timeline Frame 2Symbol 186 as "assets.MovieClipCars"
ExportAssets (56)Timeline Frame 2Symbol 187 as "assets.TrackExtreme"
ExportAssets (56)Timeline Frame 2Symbol 188 as "assets.SoundBoost"
ExportAssets (56)Timeline Frame 2Symbol 189 as "assets.TrackBurn"
ExportAssets (56)Timeline Frame 2Symbol 190 as "assets.SoundCash"
ExportAssets (56)Timeline Frame 2Symbol 191 as "assets.SoundClick"
ExportAssets (56)Timeline Frame 2Symbol 67 as "assets_fla.mc_bomb_17"
ExportAssets (56)Timeline Frame 2Symbol 196 as "assets.MovieClipStandingsItem"
ExportAssets (56)Timeline Frame 2Symbol 207 as "assets.MovieClipSubmit"
ExportAssets (56)Timeline Frame 2Symbol 209 as "assets.MovieClipStandingsPlayer"
ExportAssets (56)Timeline Frame 2Symbol 210 as "assets.MovieClipStandingsTrackText"
ExportAssets (56)Timeline Frame 2Symbol 212 as "assets.MovieClipStandingsPointsFirst"
ExportAssets (56)Timeline Frame 2Symbol 214 as "assets.MovieClipStandingsPointsSecond"
ExportAssets (56)Timeline Frame 2Symbol 216 as "assets.MovieClipStandingsPointsDefault"
ExportAssets (56)Timeline Frame 2Symbol 218 as "assets.MovieClipStandingsTotal"
ExportAssets (56)Timeline Frame 2Symbol 229 as "assets.MovieClipStandings"
ExportAssets (56)Timeline Frame 2Symbol 231 as "assets.MovieClipStandingsTotals"
ExportAssets (56)Timeline Frame 2Symbol 233 as "assets.MovieClipStandingsPointsThird"
ExportAssets (56)Timeline Frame 2Symbol 234 as "assets.BitmapDataTilesPreview"
ExportAssets (56)Timeline Frame 2Symbol 238 as "assets.MovieClipTracks"
ExportAssets (56)Timeline Frame 2Symbol 485 as "assets.MovieClipCarAlfa"
ExportAssets (56)Timeline Frame 2Symbol 729 as "assets.MovieClipCarCelica"
ExportAssets (56)Timeline Frame 2Symbol 973 as "assets.MovieClipCarFocus"
ExportAssets (56)Timeline Frame 2Symbol 1217 as "assets.MovieClipCarImpreza"
ExportAssets (56)Timeline Frame 2Symbol 1220 as "assets.MovieClipCircleSpin"
ExportAssets (56)Timeline Frame 2Symbol 1225 as "assets.MovieClipMarker"
ExportAssets (56)Timeline Frame 2Symbol 1469 as "assets.MovieClipCarSkoda"
ExportAssets (56)Timeline Frame 2Symbol 1713 as "assets.MovieClipCarLancer"
ExportAssets (56)Timeline Frame 2Symbol 160 as "assets_fla.credits_186"
ExportAssets (56)Timeline Frame 2Symbol 1721 as "assets.MovieClipPanelFinish"
ExportAssets (56)Timeline Frame 2Symbol 1737 as "assets.MovieClipHud"
ExportAssets (56)Timeline Frame 2Symbol 1741 as "assets.MovieClipPanelStart"
ExportAssets (56)Timeline Frame 2Symbol 1744 as "assets.MovieClipNitro"
ExportAssets (56)Timeline Frame 2Symbol 1747 as "assets.MovieClipPanelFinishTime"
ExportAssets (56)Timeline Frame 2Symbol 1752 as "assets.MovieClipControls"
ExportAssets (56)Timeline Frame 2Symbol 1834 as "assets.MovieClipObstacleFinish"
ExportAssets (56)Timeline Frame 2Symbol 1837 as "assets.MovieClipObstacleBush_1"
ExportAssets (56)Timeline Frame 2Symbol 1840 as "assets.MovieClipObstaclePond"
ExportAssets (56)Timeline Frame 2Symbol 1843 as "assets.MovieClipObstacleRock_5"
ExportAssets (56)Timeline Frame 2Symbol 1846 as "assets.MovieClipObstacleTree_5"
ExportAssets (56)Timeline Frame 2Symbol 1849 as "assets.MovieClipObstacleRock_8"
ExportAssets (56)Timeline Frame 2Symbol 1852 as "assets.MovieClipObstacleCone"
ExportAssets (56)Timeline Frame 2Symbol 1855 as "assets.MovieClipObstacleTree_2"
ExportAssets (56)Timeline Frame 2Symbol 1858 as "assets.MovieClipObstacleRock_7"
ExportAssets (56)Timeline Frame 2Symbol 1861 as "assets.MovieClipObstacleTree_3"
ExportAssets (56)Timeline Frame 2Symbol 1864 as "assets.MovieClipObstacleRock_6"
ExportAssets (56)Timeline Frame 2Symbol 1867 as "assets.MovieClipObstacleTree_4"
ExportAssets (56)Timeline Frame 2Symbol 1870 as "assets.MovieClipObstacleTyres"
ExportAssets (56)Timeline Frame 2Symbol 1873 as "assets.MovieClipObstacleRock_1"
ExportAssets (56)Timeline Frame 2Symbol 1876 as "assets.MovieClipObstacleTreeSnow1"
ExportAssets (56)Timeline Frame 2Symbol 1879 as "assets.MovieClipObstacleRock_9"
ExportAssets (56)Timeline Frame 2Symbol 1882 as "assets.MovieClipObstacleRock_2"
ExportAssets (56)Timeline Frame 2Symbol 1885 as "assets.MovieClipObstacleRock_4"
ExportAssets (56)Timeline Frame 2Symbol 1886 as "assets.MovieClipObstacleCheckpoint"
ExportAssets (56)Timeline Frame 2Symbol 1889 as "assets.MovieClipObstacleRock_3"
ExportAssets (56)Timeline Frame 2Symbol 1892 as "assets.MovieClipObstacleBush_2"
ExportAssets (56)Timeline Frame 2Symbol 1895 as "assets.MovieClipObstacleTree_6"
ExportAssets (56)Timeline Frame 2Symbol 1898 as "assets.MovieClipObstacleTree_1"
ExportAssets (56)Timeline Frame 2Symbol 1922 as "fl.controls.Button"
ExportAssets (56)Timeline Frame 2Symbol 1940 as "fl.controls.NumericStepper"
ExportAssets (56)Timeline Frame 2Symbol 2005 as "assets.MovieClipDebug"
ExportAssets (56)Timeline Frame 2Symbol 2004 as "fl.controls.ComboBox"
ExportAssets (56)Timeline Frame 2Symbol 2032 as "assets.MovieClipScoreboard"
ExportAssets (56)Timeline Frame 2Symbol 2033 as "assets.SoundCarLoopIdle"
ExportAssets (56)Timeline Frame 2Symbol 2034 as "assets.SoundCarEngine03"
ExportAssets (56)Timeline Frame 2Symbol 2035 as "assets.SoundCarCrashCar"
ExportAssets (56)Timeline Frame 2Symbol 2036 as "assets.SoundCarEngine00"
ExportAssets (56)Timeline Frame 2Symbol 2037 as "assets.SoundCarLoopHigh"
ExportAssets (56)Timeline Frame 2Symbol 2038 as "assets.SoundCarEngine05"
ExportAssets (56)Timeline Frame 2Symbol 2039 as "assets.SoundCarEngine01"
ExportAssets (56)Timeline Frame 2Symbol 2040 as "assets.SoundCarLoopMedium"
ExportAssets (56)Timeline Frame 2Symbol 2041 as "assets.SoundCarLoopLow"
ExportAssets (56)Timeline Frame 2Symbol 2042 as "assets.SoundCarEngine04"
ExportAssets (56)Timeline Frame 2Symbol 2043 as "assets.SoundCarSkid"
ExportAssets (56)Timeline Frame 2Symbol 2044 as "assets.SoundCarEngine02"
ExportAssets (56)Timeline Frame 2Symbol 2045 as "assets.SoundCarCrashSolid"
ExportAssets (56)Timeline Frame 2Symbol 484 as "assets_fla.car_10"
ExportAssets (56)Timeline Frame 2Symbol 241 as "assets_fla.car_2"
ExportAssets (56)Timeline Frame 2Symbol 728 as "assets_fla.car_14"
ExportAssets (56)Timeline Frame 2Symbol 972 as "assets_fla.car_12"
ExportAssets (56)Timeline Frame 2Symbol 1216 as "assets_fla.car_4"
ExportAssets (56)Timeline Frame 2Symbol 2046 as "assets.BitmapTilesTarmacAlpha"
ExportAssets (56)Timeline Frame 2Symbol 2047 as "assets.BitmapTilesSnowAlpha"
ExportAssets (56)Timeline Frame 2Symbol 2048 as "assets.BitmapTilesTarmacTexture"
ExportAssets (56)Timeline Frame 2Symbol 2049 as "assets.BitmapTilesSnowTexture"
ExportAssets (56)Timeline Frame 2Symbol 2050 as "assets.BitmapTilesDesertAlpha"
ExportAssets (56)Timeline Frame 2Symbol 2051 as "assets.BitmapTilesDesertTexture"
ExportAssets (56)Timeline Frame 2Symbol 2052 as "assets.BitmapTilesBackground"
ExportAssets (56)Timeline Frame 2Symbol 2055 as "assets.MovieClipCountGo"
ExportAssets (56)Timeline Frame 2Symbol 2058 as "assets.MovieClipCount01"
ExportAssets (56)Timeline Frame 2Symbol 2061 as "assets.MovieClipCount02"
ExportAssets (56)Timeline Frame 2Symbol 2064 as "assets.MovieClipCount03"
ExportAssets (56)Timeline Frame 2Symbol 1720 as "assets.MovieClipFinish"
ExportAssets (56)Timeline Frame 2Symbol 1734 as "assets_fla.hud_146"
ExportAssets (56)Timeline Frame 2Symbol 1725 as "assets_fla.hud_144"
ExportAssets (56)Timeline Frame 2Symbol 1736 as "assets_fla.hud_147"
ExportAssets (56)Timeline Frame 2Symbol 2065 as "assets.BitmapDataTilesMinimap"
ExportAssets (56)Timeline Frame 2Symbol 2070 as "assets.MovieClipLapDisplay"
ExportAssets (56)Timeline Frame 2Symbol 2073 as "assets.MovieClipEffectLight"
ExportAssets (56)Timeline Frame 2Symbol 2075 as "assets.MovieClipEffectBlack"
ExportAssets (56)Timeline Frame 2Symbol 2078 as "assets.MovieClipEffectClouds"
ExportAssets (56)Timeline Frame 2Symbol 2081 as "assets.MovieClipEffectDustSnow"
ExportAssets (56)Timeline Frame 2Symbol 2082 as "assets.MovieClipEffectDustDesert"
ExportAssets (56)Timeline Frame 2Symbol 1903 as "Button_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1907 as "Button_emphasizedSkin"
ExportAssets (56)Timeline Frame 2Symbol 1915 as "Button_selectedOverSkin"
ExportAssets (56)Timeline Frame 2Symbol 1911 as "Button_selectedDisabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1919 as "Button_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1905 as "Button_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1917 as "Button_selectedUpSkin"
ExportAssets (56)Timeline Frame 2Symbol 1921 as "focusRectSkin"
ExportAssets (56)Timeline Frame 2Symbol 1913 as "Button_selectedDownSkin"
ExportAssets (56)Timeline Frame 2Symbol 1909 as "Button_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 1901 as "fl.core.ComponentShim"
ExportAssets (56)Timeline Frame 2Symbol 1935 as "NumericStepperUpArrow_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1927 as "NumericStepperDownArrow_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1929 as "NumericStepperDownArrow_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 1937 as "NumericStepperUpArrow_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 1962 as "fl.controls.TextInput"
ExportAssets (56)Timeline Frame 2Symbol 1931 as "NumericStepperDownArrow_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1925 as "NumericStepperDownArrow_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1939 as "NumericStepperUpArrow_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1933 as "NumericStepperUpArrow_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 2090 as "assets.MovieClipDebugObstacle"
ExportAssets (56)Timeline Frame 2Symbol 1951 as "ComboBox_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1955 as "ComboBox_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 1953 as "ComboBox_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 2003 as "fl.controls.List"
ExportAssets (56)Timeline Frame 2Symbol 1957 as "ComboBox_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 2025 as "assets_fla.scoreboard_195"
ExportAssets (56)Timeline Frame 2Symbol 2017 as "assets_fla.scoreboard_193"
ExportAssets (56)Timeline Frame 2Symbol 2093 as "assets.MovieClipMinimapMarker"
ExportAssets (56)Timeline Frame 2Symbol 1959 as "TextInput_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1961 as "TextInput_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 2002 as "fl.controls.ScrollBar"
ExportAssets (56)Timeline Frame 2Symbol 1979 as "fl.controls.listClasses.CellRenderer"
ExportAssets (56)Timeline Frame 2Symbol 1964 as "List_skin"
ExportAssets (56)Timeline Frame 2Symbol 1990 as "ScrollArrowUp_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 1984 as "ScrollArrowDown_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1999 as "ScrollArrowUp_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1986 as "ScrollThumb_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1987 as "ScrollArrowDown_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 1981 as "ScrollTrack_skin"
ExportAssets (56)Timeline Frame 2Symbol 1992 as "ScrollArrowUp_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1997 as "ScrollArrowDown_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1983 as "ScrollArrowUp_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1995 as "ScrollArrowDown_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 2001 as "ScrollBar_thumbIcon"
ExportAssets (56)Timeline Frame 2Symbol 1989 as "ScrollThumb_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 1994 as "ScrollThumb_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1973 as "CellRenderer_selectedDisabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1976 as "CellRenderer_selectedOverSkin"
ExportAssets (56)Timeline Frame 2Symbol 1968 as "CellRenderer_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1975 as "CellRenderer_selectedDownSkin"
ExportAssets (56)Timeline Frame 2Symbol 1978 as "CellRenderer_selectedUpSkin"
ExportAssets (56)Timeline Frame 2Symbol 1966 as "CellRenderer_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1970 as "CellRenderer_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1971 as "CellRenderer_overSkin"
SerialNumber (41)Timeline Frame 1

Labels

"preloader_AbstractPreloaderView"Frame 1
"LilRacerz"Frame 2
"preload"Symbol 56 MovieClip {assets_fla.fog_logo_temp_151} [assets_fla.fog_logo_temp_151] Frame 1
"display"Symbol 56 MovieClip {assets_fla.fog_logo_temp_151} [assets_fla.fog_logo_temp_151] Frame 2




http://swfchan.com/48/236042/info.shtml
Created: 15/7 -2020 05:11:20 Last modified: 15/7 -2020 05:11:20 Server time: 26/04 -2024 09:42:38