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

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

Lil Racerz.swf

This is the info page for
Flash #67673

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


Text
A BLASTONE.COM GAME

Creating Track

Scores

Scores

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

Submit Times

Submit Times

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">BLASTONE.COM </font></p>

<p align="center"><font face="HelveticaNeue ExtBlackCond" size="12" color="#ffcc00" letterSpacing="1.000000" kerning="0">BLASTONE.COM </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
//ButtonScores (assets.ButtonScores) package assets { import flash.display.*; public dynamic class ButtonScores extends SimpleButton { } }//package assets
Section 15
//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 16
//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 17
//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 18
//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 19
//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 20
//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 21
//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 22
//MovieClipCircleSpin (assets.MovieClipCircleSpin) package assets { import flash.display.*; public dynamic class MovieClipCircleSpin extends MovieClip { } }//package assets
Section 23
//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 textPause:TextField; public var textSound:TextField; public var btnBlastone:SimpleButton; public var textMusic:TextField; } }//package assets
Section 24
//MovieClipCount01 (assets.MovieClipCount01) package assets { import flash.display.*; public dynamic class MovieClipCount01 extends MovieClip { } }//package assets
Section 25
//MovieClipCount02 (assets.MovieClipCount02) package assets { import flash.display.*; public dynamic class MovieClipCount02 extends MovieClip { } }//package assets
Section 26
//MovieClipCount03 (assets.MovieClipCount03) package assets { import flash.display.*; public dynamic class MovieClipCount03 extends MovieClip { } }//package assets
Section 27
//MovieClipCountGo (assets.MovieClipCountGo) package assets { import flash.display.*; public dynamic class MovieClipCountGo extends MovieClip { } }//package assets
Section 28
//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 29
//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 30
//MovieClipEffectBlack (assets.MovieClipEffectBlack) package assets { import flash.display.*; public dynamic class MovieClipEffectBlack extends MovieClip { } }//package assets
Section 31
//MovieClipEffectClouds (assets.MovieClipEffectClouds) package assets { import flash.display.*; public dynamic class MovieClipEffectClouds extends MovieClip { } }//package assets
Section 32
//MovieClipEffectDustDesert (assets.MovieClipEffectDustDesert) package assets { import flash.display.*; public dynamic class MovieClipEffectDustDesert extends MovieClip { } }//package assets
Section 33
//MovieClipEffectDustSnow (assets.MovieClipEffectDustSnow) package assets { import flash.display.*; public dynamic class MovieClipEffectDustSnow extends MovieClip { } }//package assets
Section 34
//MovieClipEffectLight (assets.MovieClipEffectLight) package assets { import flash.display.*; public dynamic class MovieClipEffectLight extends MovieClip { } }//package assets
Section 35
//MovieClipFinish (assets.MovieClipFinish) package assets { import flash.display.*; public dynamic class MovieClipFinish extends MovieClip { } }//package assets
Section 36
//MovieClipGetReady (assets.MovieClipGetReady) package assets { import flash.display.*; public dynamic class MovieClipGetReady extends MovieClip { } }//package assets
Section 37
//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 38
//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 39
//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 40
//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 41
//MovieClipMinimapMarker (assets.MovieClipMinimapMarker) package assets { import flash.display.*; public dynamic class MovieClipMinimapMarker extends MovieClip { } }//package assets
Section 42
//MovieClipNitro (assets.MovieClipNitro) package assets { import flash.display.*; public dynamic class MovieClipNitro extends MovieClip { } }//package assets
Section 43
//MovieClipObstacleBush_1 (assets.MovieClipObstacleBush_1) package assets { import flash.display.*; public dynamic class MovieClipObstacleBush_1 extends MovieClip { } }//package assets
Section 44
//MovieClipObstacleBush_2 (assets.MovieClipObstacleBush_2) package assets { import flash.display.*; public dynamic class MovieClipObstacleBush_2 extends MovieClip { } }//package assets
Section 45
//MovieClipObstacleCheckpoint (assets.MovieClipObstacleCheckpoint) package assets { import flash.display.*; public dynamic class MovieClipObstacleCheckpoint extends MovieClip { } }//package assets
Section 46
//MovieClipObstacleCone (assets.MovieClipObstacleCone) package assets { import flash.display.*; public dynamic class MovieClipObstacleCone extends MovieClip { } }//package assets
Section 47
//MovieClipObstacleFinish (assets.MovieClipObstacleFinish) package assets { import flash.display.*; public dynamic class MovieClipObstacleFinish extends MovieClip { } }//package assets
Section 48
//MovieClipObstaclePond (assets.MovieClipObstaclePond) package assets { import flash.display.*; public dynamic class MovieClipObstaclePond extends MovieClip { } }//package assets
Section 49
//MovieClipObstacleRock_1 (assets.MovieClipObstacleRock_1) package assets { import flash.display.*; public dynamic class MovieClipObstacleRock_1 extends MovieClip { } }//package assets
Section 50
//MovieClipObstacleRock_2 (assets.MovieClipObstacleRock_2) package assets { import flash.display.*; public dynamic class MovieClipObstacleRock_2 extends MovieClip { } }//package assets
Section 51
//MovieClipObstacleRock_3 (assets.MovieClipObstacleRock_3) package assets { import flash.display.*; public dynamic class MovieClipObstacleRock_3 extends MovieClip { } }//package assets
Section 52
//MovieClipObstacleRock_4 (assets.MovieClipObstacleRock_4) package assets { import flash.display.*; public dynamic class MovieClipObstacleRock_4 extends MovieClip { } }//package assets
Section 53
//MovieClipObstacleRock_5 (assets.MovieClipObstacleRock_5) package assets { import flash.display.*; public dynamic class MovieClipObstacleRock_5 extends MovieClip { } }//package assets
Section 54
//MovieClipObstacleRock_6 (assets.MovieClipObstacleRock_6) package assets { import flash.display.*; public dynamic class MovieClipObstacleRock_6 extends MovieClip { } }//package assets
Section 55
//MovieClipObstacleRock_7 (assets.MovieClipObstacleRock_7) package assets { import flash.display.*; public dynamic class MovieClipObstacleRock_7 extends MovieClip { } }//package assets
Section 56
//MovieClipObstacleRock_8 (assets.MovieClipObstacleRock_8) package assets { import flash.display.*; public dynamic class MovieClipObstacleRock_8 extends MovieClip { } }//package assets
Section 57
//MovieClipObstacleRock_9 (assets.MovieClipObstacleRock_9) package assets { import flash.display.*; public dynamic class MovieClipObstacleRock_9 extends MovieClip { } }//package assets
Section 58
//MovieClipObstacleTree_1 (assets.MovieClipObstacleTree_1) package assets { import flash.display.*; public dynamic class MovieClipObstacleTree_1 extends MovieClip { } }//package assets
Section 59
//MovieClipObstacleTree_2 (assets.MovieClipObstacleTree_2) package assets { import flash.display.*; public dynamic class MovieClipObstacleTree_2 extends MovieClip { } }//package assets
Section 60
//MovieClipObstacleTree_3 (assets.MovieClipObstacleTree_3) package assets { import flash.display.*; public dynamic class MovieClipObstacleTree_3 extends MovieClip { } }//package assets
Section 61
//MovieClipObstacleTree_4 (assets.MovieClipObstacleTree_4) package assets { import flash.display.*; public dynamic class MovieClipObstacleTree_4 extends MovieClip { } }//package assets
Section 62
//MovieClipObstacleTree_5 (assets.MovieClipObstacleTree_5) package assets { import flash.display.*; public dynamic class MovieClipObstacleTree_5 extends MovieClip { } }//package assets
Section 63
//MovieClipObstacleTree_6 (assets.MovieClipObstacleTree_6) package assets { import flash.display.*; public dynamic class MovieClipObstacleTree_6 extends MovieClip { } }//package assets
Section 64
//MovieClipObstacleTreeSnow1 (assets.MovieClipObstacleTreeSnow1) package assets { import flash.display.*; public dynamic class MovieClipObstacleTreeSnow1 extends MovieClip { } }//package assets
Section 65
//MovieClipObstacleTyres (assets.MovieClipObstacleTyres) package assets { import flash.display.*; public dynamic class MovieClipObstacleTyres extends MovieClip { } }//package assets
Section 66
//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 67
//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 68
//MovieClipPanelStart (assets.MovieClipPanelStart) package assets { import flash.display.*; import flash.text.*; public dynamic class MovieClipPanelStart extends MovieClip { public var descriptionText:TextField; } }//package assets
Section 69
//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 70
//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 btnSubmit:SimpleButton; public var positionText:TextField; } }//package assets
Section 71
//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 72
//MovieClipStandingsPlayer (assets.MovieClipStandingsPlayer) package assets { import flash.display.*; import flash.text.*; public dynamic class MovieClipStandingsPlayer extends MovieClip { public var playerText:TextField; } }//package assets
Section 73
//MovieClipStandingsPointsDefault (assets.MovieClipStandingsPointsDefault) package assets { import flash.display.*; import flash.text.*; public dynamic class MovieClipStandingsPointsDefault extends MovieClip { public var pointsText:TextField; } }//package assets
Section 74
//MovieClipStandingsPointsFirst (assets.MovieClipStandingsPointsFirst) package assets { import flash.display.*; import flash.text.*; public dynamic class MovieClipStandingsPointsFirst extends MovieClip { public var pointsText:TextField; } }//package assets
Section 75
//MovieClipStandingsPointsSecond (assets.MovieClipStandingsPointsSecond) package assets { import flash.display.*; import flash.text.*; public dynamic class MovieClipStandingsPointsSecond extends MovieClip { public var pointsText:TextField; } }//package assets
Section 76
//MovieClipStandingsPointsThird (assets.MovieClipStandingsPointsThird) package assets { import flash.display.*; import flash.text.*; public dynamic class MovieClipStandingsPointsThird extends MovieClip { public var pointsText:TextField; } }//package assets
Section 77
//MovieClipStandingsTotal (assets.MovieClipStandingsTotal) package assets { import flash.display.*; public dynamic class MovieClipStandingsTotal extends MovieClip { } }//package assets
Section 78
//MovieClipStandingsTotals (assets.MovieClipStandingsTotals) package assets { import flash.display.*; import flash.text.*; public dynamic class MovieClipStandingsTotals extends MovieClip { public var dataText:TextField; } }//package assets
Section 79
//MovieClipStandingsTrackText (assets.MovieClipStandingsTrackText) package assets { import flash.display.*; public dynamic class MovieClipStandingsTrackText extends MovieClip { } }//package assets
Section 80
//MovieClipSubmit (assets.MovieClipSubmit) package assets { import flash.display.*; public dynamic class MovieClipSubmit extends MovieClip { public var btnCancel:SimpleButton; } }//package assets
Section 81
//MovieClipTitle (assets.MovieClipTitle) package assets { import flash.display.*; public dynamic class MovieClipTitle extends MovieClip { } }//package assets
Section 82
//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 83
//SoundBoost (assets.SoundBoost) package assets { import flash.media.*; public dynamic class SoundBoost extends Sound { } }//package assets
Section 84
//SoundCarCrashCar (assets.SoundCarCrashCar) package assets { import flash.media.*; public dynamic class SoundCarCrashCar extends Sound { } }//package assets
Section 85
//SoundCarCrashSolid (assets.SoundCarCrashSolid) package assets { import flash.media.*; public dynamic class SoundCarCrashSolid extends Sound { } }//package assets
Section 86
//SoundCarEngine00 (assets.SoundCarEngine00) package assets { import flash.media.*; public dynamic class SoundCarEngine00 extends Sound { } }//package assets
Section 87
//SoundCarEngine01 (assets.SoundCarEngine01) package assets { import flash.media.*; public dynamic class SoundCarEngine01 extends Sound { } }//package assets
Section 88
//SoundCarEngine02 (assets.SoundCarEngine02) package assets { import flash.media.*; public dynamic class SoundCarEngine02 extends Sound { } }//package assets
Section 89
//SoundCarEngine03 (assets.SoundCarEngine03) package assets { import flash.media.*; public dynamic class SoundCarEngine03 extends Sound { } }//package assets
Section 90
//SoundCarEngine04 (assets.SoundCarEngine04) package assets { import flash.media.*; public dynamic class SoundCarEngine04 extends Sound { } }//package assets
Section 91
//SoundCarEngine05 (assets.SoundCarEngine05) package assets { import flash.media.*; public dynamic class SoundCarEngine05 extends Sound { } }//package assets
Section 92
//SoundCarLoopHigh (assets.SoundCarLoopHigh) package assets { import flash.media.*; public dynamic class SoundCarLoopHigh extends Sound { } }//package assets
Section 93
//SoundCarLoopIdle (assets.SoundCarLoopIdle) package assets { import flash.media.*; public dynamic class SoundCarLoopIdle extends Sound { } }//package assets
Section 94
//SoundCarLoopLow (assets.SoundCarLoopLow) package assets { import flash.media.*; public dynamic class SoundCarLoopLow extends Sound { } }//package assets
Section 95
//SoundCarLoopMedium (assets.SoundCarLoopMedium) package assets { import flash.media.*; public dynamic class SoundCarLoopMedium extends Sound { } }//package assets
Section 96
//SoundCarSkid (assets.SoundCarSkid) package assets { import flash.media.*; public dynamic class SoundCarSkid extends Sound { } }//package assets
Section 97
//SoundCash (assets.SoundCash) package assets { import flash.media.*; public dynamic class SoundCash extends Sound { } }//package assets
Section 98
//SoundClick (assets.SoundClick) package assets { import flash.media.*; public dynamic class SoundClick extends Sound { } }//package assets
Section 99
//TrackBurn (assets.TrackBurn) package assets { import flash.media.*; public dynamic class TrackBurn extends Sound { } }//package assets
Section 100
//TrackExtreme (assets.TrackExtreme) package assets { import flash.media.*; public dynamic class TrackExtreme extends Sound { } }//package assets
Section 101
//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 102
//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 103
//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 104
//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 105
//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 106
//credits_189 (assets_fla.credits_189) package assets_fla { import flash.display.*; import flash.text.*; public dynamic class credits_189 extends MovieClip { public var label:TextField; public var btn:SimpleButton; } }//package assets_fla
Section 107
//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 108
//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 109
//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 110
//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 111
//scoreboard_196 (assets_fla.scoreboard_196) package assets_fla { import flash.display.*; import flash.text.*; public dynamic class scoreboard_196 extends MovieClip { public var hover:MovieClip; public var textInput:TextField; } }//package assets_fla
Section 112
//scoreboard_198 (assets_fla.scoreboard_198) package assets_fla { import flash.display.*; public dynamic class scoreboard_198 extends MovieClip { public var bar:MovieClip; } }//package assets_fla
Section 113
//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 114
//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 115
//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 116
//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 117
//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 118
//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 119
//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 120
//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; public function b2ShapeDef(){ type = b2Shape.e_unknownShape; filter = new b2FilterData(); super(); } } }//package Box2D.Collision.Shapes
Section 121
//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 122
//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 123
//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 124
//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 125
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 126
//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 127
//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 128
//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 129
//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 130
//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 131
//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 132
//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 133
//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 134
//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 135
//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 136
//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 137
//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 138
//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 139
//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 140
//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 141
//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 142
//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 143
//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 144
//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 145
//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 146
//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 147
//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 148
//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.1; 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 = 0x0100; 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 = 1; public static const b2_maxPairs:int = 2048; public static const b2_maxTOIContactsPerIsland:int = 16; public static const b2_timeToSleep:Number = 0.2; 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 149
//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 150
//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 151
//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 152
//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 153
//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 154
//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 155
//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 156
//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 157
//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 158
//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 159
//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 160
//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 161
//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 162
//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 163
//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 164
//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 165
//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 166
//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 167
//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 168
//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 169
//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 170
//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 171
//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 172
//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 173
//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 174
//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 175
//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 176
//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 177
//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 178
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 179
//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 180
//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 181
//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 182
//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 183
//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 184
//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 185
//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 186
//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 187
//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 188
//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 189
//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 190
//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 191
//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 192
//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 193
//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 194
//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 195
//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 196
//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 197
//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 198
//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 toString():void{ trace((((((((("Line (" + int(p0.x)) + ",") + int(p0.y)) + ") -> (") + int(p1.x)) + ",") + int(p1.y)) + ")")); } 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 199
//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 200
//SoundPlayer (com.markfennell.sound.SoundPlayer) package com.markfennell.sound { import flash.events.*; import flash.utils.*; import flash.media.*; public class SoundPlayer extends EventDispatcher { private var m_soundChannel:SoundChannel; public var stoppable:Boolean;// = true private var m_loops:int; public var m_soundState:String; private var m_volume:Number; private var m_position:Number;// = 0 private var m_sound:Sound; private 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):void{ m_soundChannel = new SoundChannel(); super(); m_sound = _arg1; m_soundState = INITIALIZED; soundsDictionary[this] = this; } public function get soundState():String{ return (m_soundState); } public function play(_arg1:Number=1, _arg2:int=1):void{ if (m_soundState == PLAYING){ return; }; m_volume = _arg1; m_loops = _arg2; m_soundChannel.stop(); m_soundChannel = m_sound.play(m_position); m_soundChannel.addEventListener(Event.SOUND_COMPLETE, soundComplete); m_soundState = PLAYING; volume = m_volume; } 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 duration():Number{ return (m_sound.length); } public function get volume():Number{ return (m_soundChannel.soundTransform.volume); } public function get rightPeak():Number{ return (m_soundChannel.rightPeak); } public function destroy():void{ stop(); m_sound = null; m_soundChannel = null; soundsDictionary[this] = null; } 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)); } private function soundComplete(_arg1:Event):void{ m_loops--; m_soundState = FINISHED; if (m_loops == 0){ dispatchEvent(new Event(COMPLETE)); } else { play(volume, m_loops); }; } 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; } 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) { }; }; } } }//package com.markfennell.sound
Section 201
//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 202
//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 203
//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 204
//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 205
//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 206
//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:SimpleButton; 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 = 610; 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.btnBlastone; 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); } 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); m_btnBlastone.removeEventListener(MouseEvent.CLICK, url); 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 207
//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 208
//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 209
//Bitmap3D (five3D.display.Bitmap3D) package five3D.display { import flash.display.*; import flash.geom.*; import five3D.geom.*; import fl.motion.*; 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:Color = new Color(); _local4.brightness = _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:Matrix = new Matrix(); var _local19:Matrix = 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 210
//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 211
//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 212
//Shape3D (five3D.display.Shape3D) package five3D.display { import flash.display.*; import flash.geom.*; import five3D.geom.*; import fl.motion.*; 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:Color = new Color(); _local4.brightness = _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 213
//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 214
//Sprite3D (five3D.display.Sprite3D) package five3D.display { import flash.display.*; import flash.geom.*; import five3D.geom.*; import fl.motion.*; 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:Color = new Color(); _local4.brightness = _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 215
//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 216
//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 217
//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 218
//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 219
//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 220
//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 221
//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 222
//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 223
//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 224
//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 225
//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 226
//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 227
//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 228
//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 229
//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 230
//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 231
//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 232
//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 233
//ComponentShim (fl.core.ComponentShim) package fl.core { import flash.display.*; public dynamic class ComponentShim extends MovieClip { } }//package fl.core
Section 234
//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 235
//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 236
//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 237
//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 238
//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 239
//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 240
//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 241
//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 242
//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 243
//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 244
//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 245
//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 246
//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 247
//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 248
//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 249
//Color (fl.motion.Color) package fl.motion { import flash.display.*; import flash.geom.*; public class Color extends ColorTransform { private var _tintColor:Number;// = 0 private var _tintMultiplier:Number;// = 0 public function Color(_arg1:Number=1, _arg2:Number=1, _arg3:Number=1, _arg4:Number=1, _arg5:Number=0, _arg6:Number=0, _arg7:Number=0, _arg8:Number=0){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); } private function deriveTintColor():uint{ var _local1:Number = (1 / this.tintMultiplier); var _local2:uint = Math.round((this.redOffset * _local1)); var _local3:uint = Math.round((this.greenOffset * _local1)); var _local4:uint = Math.round((this.blueOffset * _local1)); var _local5:uint = (((_local2 << 16) | (_local3 << 8)) | _local4); return (_local5); } public function set brightness(_arg1:Number):void{ if (_arg1 > 1){ _arg1 = 1; } else { if (_arg1 < -1){ _arg1 = -1; }; }; var _local2:Number = (1 - Math.abs(_arg1)); var _local3:Number = 0; if (_arg1 > 0){ _local3 = (_arg1 * 0xFF); }; this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = _local2)); this.redOffset = (this.greenOffset = (this.blueOffset = _local3)); } private function parseXML(_arg1:XML=null):Color{ var _local3:XML; var _local4:String; var _local5:uint; if (!_arg1){ return (this); }; var _local2:XML = _arg1.elements()[0]; if (!_local2){ return (this); }; for each (_local3 in _local2.attributes()) { _local4 = _local3.localName(); if (_local4 == "tintColor"){ _local5 = (Number(_local3.toString()) as uint); this.tintColor = _local5; } else { this[_local4] = Number(_local3.toString()); }; }; return (this); } public function get tintColor():uint{ return (this._tintColor); } public function set tintColor(_arg1:uint):void{ this.setTint(_arg1, this.tintMultiplier); } public function get brightness():Number{ return ((this.redOffset) ? (1 - this.redMultiplier) : (this.redMultiplier - 1)); } public function set tintMultiplier(_arg1:Number):void{ this.setTint(this.tintColor, _arg1); } public function get tintMultiplier():Number{ return (this._tintMultiplier); } public function setTint(_arg1:uint, _arg2:Number):void{ this._tintColor = _arg1; this._tintMultiplier = _arg2; this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = (1 - _arg2))); var _local3:uint = ((_arg1 >> 16) & 0xFF); var _local4:uint = ((_arg1 >> 8) & 0xFF); var _local5:uint = (_arg1 & 0xFF); this.redOffset = Math.round((_local3 * _arg2)); this.greenOffset = Math.round((_local4 * _arg2)); this.blueOffset = Math.round((_local5 * _arg2)); } public static function interpolateColor(_arg1:uint, _arg2:uint, _arg3:Number):uint{ var _local4:Number = (1 - _arg3); var _local5:uint = ((_arg1 >> 24) & 0xFF); var _local6:uint = ((_arg1 >> 16) & 0xFF); var _local7:uint = ((_arg1 >> 8) & 0xFF); var _local8:uint = (_arg1 & 0xFF); var _local9:uint = ((_arg2 >> 24) & 0xFF); var _local10:uint = ((_arg2 >> 16) & 0xFF); var _local11:uint = ((_arg2 >> 8) & 0xFF); var _local12:uint = (_arg2 & 0xFF); var _local13:uint = ((_local5 * _local4) + (_local9 * _arg3)); var _local14:uint = ((_local6 * _local4) + (_local10 * _arg3)); var _local15:uint = ((_local7 * _local4) + (_local11 * _arg3)); var _local16:uint = ((_local8 * _local4) + (_local12 * _arg3)); var _local17:uint = ((((_local13 << 24) | (_local14 << 16)) | (_local15 << 8)) | _local16); return (_local17); } public static function interpolateTransform(_arg1:ColorTransform, _arg2:ColorTransform, _arg3:Number):ColorTransform{ var _local4:Number = (1 - _arg3); var _local5:ColorTransform = new ColorTransform(((_arg1.redMultiplier * _local4) + (_arg2.redMultiplier * _arg3)), ((_arg1.greenMultiplier * _local4) + (_arg2.greenMultiplier * _arg3)), ((_arg1.blueMultiplier * _local4) + (_arg2.blueMultiplier * _arg3)), ((_arg1.alphaMultiplier * _local4) + (_arg2.alphaMultiplier * _arg3)), ((_arg1.redOffset * _local4) + (_arg2.redOffset * _arg3)), ((_arg1.greenOffset * _local4) + (_arg2.greenOffset * _arg3)), ((_arg1.blueOffset * _local4) + (_arg2.blueOffset * _arg3)), ((_arg1.alphaOffset * _local4) + (_arg2.alphaOffset * _arg3))); return (_local5); } public static function fromXML(_arg1:XML):Color{ return (Color(new (Color).parseXML(_arg1))); } } }//package fl.motion
Section 250
//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 251
//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 252
//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 253
//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 254
//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 255
//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 256
//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 257
//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 = 310; 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 258
//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 259
//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 = 574; _local3.x = (-570 + (m_nitroDisplay.length * 40)); m_nitroDisplay.push(_local3); m_hud.addChild(_local3); _local2++; }; } } }//package game.hud
Section 260
//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 261
//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 262
//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 263
//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.btnSubmit.addEventListener(MouseEvent.CLICK, handleSubmitClick); 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.btnSubmit.addEventListener(MouseEvent.CLICK, handleSubmitClick); 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 264
//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 = 510; 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 265
//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 266
//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 267
//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 268
//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 269
//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 270
//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 271
//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 272
//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 273
//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 274
//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 275
//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 276
//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 277
//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 278
//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 279
//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 280
//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 281
//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 282
//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 283
//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 284
//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 285
//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 286
//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 287
//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 288
//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 289
//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 290
//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 291
//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 292
//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 293
//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 294
//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 295
//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 296
//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 297
//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 298
//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 299
//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 300
//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 301
//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 302
//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 303
//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 304
//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 305
//IDestroyable (org.casalib.core.IDestroyable) package org.casalib.core { public interface IDestroyable { function get destroyed():Boolean; function destroy():void; } }//package org.casalib.core
Section 306
//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 307
//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 308
//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 309
//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 310
//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 311
//AbstractPreloader (preloader.AbstractPreloader) package preloader { import flash.events.*; import flash.display.*; public class AbstractPreloader extends MovieClip { private var m_firstEnterFrame:Boolean; private var m_container:MovieClip; public function AbstractPreloader(){ stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stop(); m_container = new MovieClip(); addChild(m_container); MochiAd.showPreGameAd({clip:m_container, id:"638eb965e24539bc", res:"620x620", ad_finished:init, background:986892, color:14670292, outline:9539210, no_bg:false}); } private function initialize():void{ } protected function endLoading():void{ } protected function updateLoading(_arg1:Number):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); nextFrame(); initialize(); } 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); }; } public function init():void{ removeChild(m_container); m_container = null; var _local1:DisplayObject = (new LilRacerz() as DisplayObject); if (_local1 == null){ throw (new Error("AbstractPreloader:initialize. Main class needs to inherit from Sprite or MovieClip.")); }; addChildAt(_local1, 0); } protected function get mainClassName():String{ return ("LilRacerz"); } protected function beginLoading():void{ } } }//package preloader
Section 312
//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 313
//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 314
//Button_disabledSkin (Button_disabledSkin) package { import flash.display.*; public dynamic class Button_disabledSkin extends MovieClip { } }//package
Section 315
//Button_downSkin (Button_downSkin) package { import flash.display.*; public dynamic class Button_downSkin extends MovieClip { } }//package
Section 316
//Button_emphasizedSkin (Button_emphasizedSkin) package { import flash.display.*; public dynamic class Button_emphasizedSkin extends MovieClip { } }//package
Section 317
//Button_overSkin (Button_overSkin) package { import flash.display.*; public dynamic class Button_overSkin extends MovieClip { } }//package
Section 318
//Button_selectedDisabledSkin (Button_selectedDisabledSkin) package { import flash.display.*; public dynamic class Button_selectedDisabledSkin extends MovieClip { } }//package
Section 319
//Button_selectedDownSkin (Button_selectedDownSkin) package { import flash.display.*; public dynamic class Button_selectedDownSkin extends MovieClip { } }//package
Section 320
//Button_selectedOverSkin (Button_selectedOverSkin) package { import flash.display.*; public dynamic class Button_selectedOverSkin extends MovieClip { } }//package
Section 321
//Button_selectedUpSkin (Button_selectedUpSkin) package { import flash.display.*; public dynamic class Button_selectedUpSkin extends MovieClip { } }//package
Section 322
//Button_upSkin (Button_upSkin) package { import flash.display.*; public dynamic class Button_upSkin extends MovieClip { } }//package
Section 323
//CellRenderer_disabledSkin (CellRenderer_disabledSkin) package { import flash.display.*; public dynamic class CellRenderer_disabledSkin extends MovieClip { } }//package
Section 324
//CellRenderer_downSkin (CellRenderer_downSkin) package { import flash.display.*; public dynamic class CellRenderer_downSkin extends MovieClip { } }//package
Section 325
//CellRenderer_overSkin (CellRenderer_overSkin) package { import flash.display.*; public dynamic class CellRenderer_overSkin extends MovieClip { } }//package
Section 326
//CellRenderer_selectedDisabledSkin (CellRenderer_selectedDisabledSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDisabledSkin extends MovieClip { } }//package
Section 327
//CellRenderer_selectedDownSkin (CellRenderer_selectedDownSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDownSkin extends MovieClip { } }//package
Section 328
//CellRenderer_selectedOverSkin (CellRenderer_selectedOverSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedOverSkin extends MovieClip { } }//package
Section 329
//CellRenderer_selectedUpSkin (CellRenderer_selectedUpSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedUpSkin extends MovieClip { } }//package
Section 330
//CellRenderer_upSkin (CellRenderer_upSkin) package { import flash.display.*; public dynamic class CellRenderer_upSkin extends MovieClip { } }//package
Section 331
//ComboBox_disabledSkin (ComboBox_disabledSkin) package { import flash.display.*; public dynamic class ComboBox_disabledSkin extends MovieClip { } }//package
Section 332
//ComboBox_downSkin (ComboBox_downSkin) package { import flash.display.*; public dynamic class ComboBox_downSkin extends MovieClip { } }//package
Section 333
//ComboBox_overSkin (ComboBox_overSkin) package { import flash.display.*; public dynamic class ComboBox_overSkin extends MovieClip { } }//package
Section 334
//ComboBox_upSkin (ComboBox_upSkin) package { import flash.display.*; public dynamic class ComboBox_upSkin extends MovieClip { } }//package
Section 335
//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.blastone.com/"; public static var STAGE_HEIGHT:Number = 620; 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.blastone.com/games/lilracerz/"; 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 336
//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_btnScores); 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_btnScores.removeEventListener(MouseEvent.CLICK, handleScoresClick); m_btnMore.removeEventListener(MouseEvent.CLICK, handleMoreGamesClick); m_btnBlastone.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_btnScores, 0.1, 0.4, m_btnScores.x, m_btnScores.y, -500, m_btnScores.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_fx.zoomIn(m_titleClip, 0, 0.3, 310, 80, -2000, 80, 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, 80, 310, 80, 20, "easeOutQuad", null); } private function showControls():void{ reset(); m_btnBlastone = new buttonBlastone(); addChild(m_btnBlastone); m_btnBlastone.addEventListener(MouseEvent.CLICK, handleMoreGamesClick); m_fx.zoomIn(m_btnBlastone, 0.3, 0.3, 2000, 170, 310, 170, 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, 240, 310, 240, 20, "easeOutQuad", null); m_btnScores = new ButtonScores(); addChild(m_btnScores); m_btnScores.addEventListener(MouseEvent.CLICK, handleScoresClick); m_fx.zoomIn(m_btnScores, 0.7, 0.3, 2000, 330, 310, 330, 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, 370, 310, 370, 20, "easeOutQuad", null); m_help = new MovieClipHelp(); addChild(m_help); m_fx.zoomIn(m_help, 1.1, 0.3, 2000, 450, 310, 450, 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 337
//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>Subaru Impreza</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>Ford Focus</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>Skoda Fabia</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>Mitsubishi Lancer</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>Toyota Celica</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>Alfa Romeo</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 338
//focusRectSkin (focusRectSkin) package { import flash.display.*; public dynamic class focusRectSkin extends MovieClip { } }//package
Section 339
//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 340
//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 341
//List_skin (List_skin) package { import flash.display.*; public dynamic class List_skin extends MovieClip { } }//package
Section 342
//MochiAd (MochiAd) package { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class MochiAd { public static function getVersion():String{ return ("2.7"); } public static function showClickAwayAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:2000, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{ }, ad_finished:function ():void{ }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; var sendHostProgress:Boolean; mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; chk["onEnterFrame"] = function ():void{ var _local4:Number; if (!this.parent){ delete this.onEnterFrame; return; }; var _local1:Object = this.parent._mochiad_ctr; var _local2:Number = (getTimer() - this.started); var _local3:Boolean; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; _local3 = true; chk.started = getTimer(); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (this.root == null){ _local3 = true; }; if (_local3){ delete this.onEnterFrame; }; }; doOnEnterFrame(chk); } public static function _isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function _allowDomains(_arg1:String):String{ var _local2:String = _arg1.split("/")[2].split(":")[0]; Security.allowDomain("*"); Security.allowDomain(_local2); Security.allowInsecureDomain("*"); Security.allowInsecureDomain(_local2); return (_local2); } public static function unload(_arg1:Object):Boolean{ if (((_arg1.clip) && (_arg1.clip._mochiad))){ _arg1 = _arg1.clip; }; if (_arg1.origFrameRate != undefined){ _arg1.stage.frameRate = _arg1.origFrameRate; }; if (!_arg1._mochiad){ return (false); }; if (_arg1._mochiad._containerLCName != undefined){ _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "notify", {id:"unload"}); }; if (_arg1._mochiad.onUnload){ _arg1._mochiad.onUnload(); }; delete _arg1._mochiad_loaded; delete _arg1._mochiad; return (true); } public static function showInterLevelAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; var ad_msec:Number = 11000; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; var fadeout_time:Number = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = (_arg1 - 250); }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; chk["onEnterFrame"] = function ():void{ var _local4:Number; if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; var _local1:Object = this.parent._mochiad_ctr; var _local2:Number = (getTimer() - this.started); var _local3:Boolean; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (_local2 > chk.ad_msec){ _local3 = true; }; if (_local3){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = this.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function _parseOptions(_arg1:Object, _arg2:Object):Object{ var _local4:String; var _local5:Array; var _local6:Number; var _local7:Array; var _local3:Object = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; if (_arg1){ for (_local4 in _arg1) { _local3[_local4] = _arg1[_local4]; }; }; if (_local3.clip == undefined){ throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite.")); }; _arg1 = _local3.clip.loaderInfo.parameters.mochiad_options; if (_arg1){ _local5 = _arg1.split("&"); _local6 = 0; while (_local6 < _local5.length) { _local7 = _local5[_local6].split("="); _local3[unescape(_local7[0])] = unescape(_local7[1]); _local6++; }; }; if (_local3.id == "test"){ trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!"); }; return (_local3); } public static function _cleanup(_arg1:Object):void{ var k:String; var lc:LocalConnection; var f:Function; var mc = _arg1; if (("lc" in mc)){ lc = mc.lc; f = function ():void{ try { lc.client = null; lc.close(); } catch(e:Error) { }; }; setTimeout(f, 0); }; var idx:Number = DisplayObjectContainer(mc).numChildren; while (idx > 0) { idx = (idx - 1); DisplayObjectContainer(mc).removeChildAt(idx); }; for (k in mc) { delete mc[k]; }; } public static function load(_arg1:Object):MovieClip{ var clip:Object; var k:String; var server:String; var hostname:String; var lc:LocalConnection; var name:String; var loader:Loader; var g:Function; var req:URLRequest; var v:Object; var options = _arg1; var DEFAULTS:Object = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"}; options = MochiAd._parseOptions(options, DEFAULTS); options.swfv = 9; options.mav = MochiAd.getVersion(); clip = options.clip; if (!MochiAd._isNetworkAvailable()){ return (null); }; try { if (clip._mochiad_loaded){ return (null); }; } catch(e:Error) { throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); }; var depth:Number = options.depth; delete options.depth; var mc:MovieClip = createEmptyMovieClip(clip, "_mochiad", depth); var wh:Array = MochiAd._getRes(options, clip); options.res = ((wh[0] + "x") + wh[1]); options.server = (options.server + options.id); delete options.id; clip._mochiad_loaded = true; if (clip.loaderInfo.loaderURL.indexOf("http") == 0){ options.as3_swf = clip.loaderInfo.loaderURL; }; var lv:URLVariables = new URLVariables(); for (k in options) { v = options[k]; if (!(v is Function)){ lv[k] = v; }; }; server = lv.server; delete lv.server; hostname = _allowDomains(server); lc = new LocalConnection(); lc.client = mc; name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_"); lc.allowDomain("*", "localhost"); lc.allowInsecureDomain("*", "localhost"); lc.connect(name); mc.lc = lc; mc.lcName = name; lv.lc = name; lv.st = getTimer(); loader = new Loader(); g = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); MochiAd.unload(clip); }; loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g); req = new URLRequest(((server + ".swf?cacheBust=") + new Date().getTime())); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; loader.load(req); mc.addChild(loader); mc._mochiad_ctr = loader; return (mc); } public static function runMethod(_arg1:Object, _arg2:String, _arg3:Array):Object{ var _local4:Array = _arg2.split("."); var _local5:Number = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return (undefined); }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; if (typeof(_arg1[_local4[_local5]]) == "function"){ return (_arg1[_local4[_local5]].apply(_arg1, _arg3)); }; return (undefined); } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{ var _local4:MovieClip = new MovieClip(); if (((false) && (_arg3))){ _arg1.addChildAt(_local4, _arg3); } else { _arg1.addChild(_local4); }; _arg1[_arg2] = _local4; _local4["_name"] = _arg2; return (_local4); } public static function _getRes(_arg1:Object, _arg2:Object):Array{ var _local6:Array; var _local3:Object = _arg2.getBounds(_arg2.root); var _local4:Number = 0; var _local5:Number = 0; if (typeof(_arg1.res) != "undefined"){ _local6 = _arg1.res.split("x"); _local4 = parseFloat(_local6[0]); _local5 = parseFloat(_local6[1]); } else { _local4 = (_local3.xMax - _local3.xMin); _local5 = (_local3.yMax - _local3.yMin); }; if ((((_local4 == 0)) || ((_local5 == 0)))){ _local4 = _arg2.stage.stageWidth; _local5 = _arg2.stage.stageHeight; }; return ([_local4, _local5]); } public static function adShowing(_arg1:Object):void{ _arg1.origFrameRate = _arg1.stage.frameRate; _arg1.stage.frameRate = 30; } public static function getValue(_arg1:Object, _arg2:String):Object{ var _local3:Array = _arg2.split("."); var _local4:Number = 0; while (_local4 < (_local3.length - 1)) { if ((((_arg1[_local3[_local4]] == undefined)) || ((_arg1[_local3[_local4]] == null)))){ return (undefined); }; _arg1 = _arg1[_local3[_local4]]; _local4++; }; return (_arg1[_local3[_local4]]); } public static function rpc(_arg1:Object, _arg2:Number, _arg3:Object):void{ var _local4:Object; var _local5:Object; switch (_arg3.id){ case "setValue": MochiAd.setValue(_arg1, _arg3.objectName, _arg3.value); break; case "getValue": _local4 = MochiAd.getValue(_arg1, _arg3.objectName); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local4); break; case "runMethod": _local5 = MochiAd.runMethod(_arg1, _arg3.method, _arg3.args); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local5); break; default: trace(("[mochiads rpc] unknown rpc id: " + _arg3.id)); }; } public static function setValue(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Array = _arg2.split("."); var _local5:Number = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return; }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; _arg1[_local4[_local5]] = _arg3; } public static function showPreGameAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var complete:Boolean; var unloaded:Boolean; var sendHostProgress:Boolean; var fn:Function; var r:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }, ad_progress:function (_arg1:Number):void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){ options.ad_started(); fn = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); return; }; clip = options.clip; var ad_msec:Number = 11000; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; var fadeout_time:Number = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); var fn:Function = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.x = (w * -0.5); chk.y = (h * -0.5); var bar:MovieClip = createEmptyMovieClip(chk, "_mochiad_bar", 4); if (options.no_progress_bar){ bar.visible = false; delete options.no_progress_bar; } else { bar.x = 10; bar.y = (h - 20); }; var bar_color:Number = options.color; delete options.color; var bar_background:Number = options.background; delete options.background; var bar_outline:Number = options.outline; delete options.outline; var backing_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 1); var backing:Object = backing_mc.graphics; backing.beginFill(bar_background); backing.moveTo(0, 0); backing.lineTo((w - 20), 0); backing.lineTo((w - 20), 10); backing.lineTo(0, 10); backing.lineTo(0, 0); backing.endFill(); var inside_mc:MovieClip = createEmptyMovieClip(bar, "_inside", 2); var inside:Object = inside_mc.graphics; inside.beginFill(bar_color); inside.moveTo(0, 0); inside.lineTo((w - 20), 0); inside.lineTo((w - 20), 10); inside.lineTo(0, 10); inside.lineTo(0, 0); inside.endFill(); inside_mc.scaleX = 0; var outline_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 3); var outline:Object = outline_mc.graphics; outline.lineStyle(0, bar_outline, 100); outline.moveTo(0, 0); outline.lineTo((w - 20), 0); outline.lineTo((w - 20), 10); outline.lineTo(0, 10); outline.lineTo(0, 0); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.last_pcnt = 0; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; complete = false; unloaded = false; var f:Function = function (_arg1:Event):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); complete = true; if (unloaded){ MochiAd.unload(clip); }; }; clip.loaderInfo.addEventListener(Event.COMPLETE, f); if ((clip.root is MovieClip)){ r = (clip.root as MovieClip); if (r.framesLoaded >= r.totalFrames){ complete = true; }; }; mc.unloadAd = function ():void{ unloaded = true; if (complete){ MochiAd.unload(clip); }; }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = _arg1; }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; mc.rpcTestFn = function (_arg1:String):Object{ trace(("[MOCHIAD rpcTestFn] " + _arg1)); return (_arg1); }; mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; sendHostProgress = false; mc.sendHostLoadProgress = function (_arg1:String):void{ sendHostProgress = true; }; chk["onEnterFrame"] = function ():void{ var _local11:Number; if (((!(this.parent)) || (!(this.parent.parent)))){ delete this["onEnterFrame"]; return; }; var _local1:Object = this.parent.parent.root; var _local2:Object = this.parent._mochiad_ctr; var _local3:Number = (getTimer() - this.started); var _local4:Boolean; var _local5:Number = _local1.loaderInfo.bytesTotal; var _local6:Number = _local1.loaderInfo.bytesLoaded; if (complete){ _local6 = Math.max(1, _local6); _local5 = _local6; }; var _local7:Number = ((100 * _local6) / _local5); var _local8:Number = ((100 * _local3) / chk.ad_msec); var _local9:Object = this._mochiad_bar._inside; var _local10:Number = Math.min(100, Math.min(((_local7) || (0)), _local8)); _local10 = Math.max(this.last_pcnt, _local10); this.last_pcnt = _local10; _local9.scaleX = (_local10 * 0.01); options.ad_progress(_local10); if (sendHostProgress){ clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local7}); if (_local7 == 100){ sendHostProgress = false; }; }; if (!chk.showing){ _local11 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local11 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if ((((_local3 > chk.ad_timeout)) && ((_local7 == 100)))){ options.ad_failed(); _local4 = true; }; }; }; if (_local3 > chk.ad_msec){ _local4 = true; }; if (((complete) && (_local4))){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = chk.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function showPreloaderAd(_arg1:Object):void{ trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0"); MochiAd.showPreGameAd(_arg1); } public static function showTimedAd(_arg1:Object):void{ trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0"); MochiAd.showInterLevelAd(_arg1); } public static function doOnEnterFrame(_arg1:MovieClip):void{ var mc = _arg1; var f:Function = function (_arg1:Object):void{ if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){ mc.onEnterFrame(); } else { _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; }; mc.addEventListener(Event.ENTER_FRAME, f); } } }//package
Section 343
//NumericStepperDownArrow_disabledSkin (NumericStepperDownArrow_disabledSkin) package { import flash.display.*; public dynamic class NumericStepperDownArrow_disabledSkin extends MovieClip { } }//package
Section 344
//NumericStepperDownArrow_downSkin (NumericStepperDownArrow_downSkin) package { import flash.display.*; public dynamic class NumericStepperDownArrow_downSkin extends MovieClip { } }//package
Section 345
//NumericStepperDownArrow_overSkin (NumericStepperDownArrow_overSkin) package { import flash.display.*; public dynamic class NumericStepperDownArrow_overSkin extends MovieClip { } }//package
Section 346
//NumericStepperDownArrow_upSkin (NumericStepperDownArrow_upSkin) package { import flash.display.*; public dynamic class NumericStepperDownArrow_upSkin extends MovieClip { } }//package
Section 347
//NumericStepperUpArrow_disabledSkin (NumericStepperUpArrow_disabledSkin) package { import flash.display.*; public dynamic class NumericStepperUpArrow_disabledSkin extends MovieClip { } }//package
Section 348
//NumericStepperUpArrow_downSkin (NumericStepperUpArrow_downSkin) package { import flash.display.*; public dynamic class NumericStepperUpArrow_downSkin extends MovieClip { } }//package
Section 349
//NumericStepperUpArrow_overSkin (NumericStepperUpArrow_overSkin) package { import flash.display.*; public dynamic class NumericStepperUpArrow_overSkin extends MovieClip { } }//package
Section 350
//NumericStepperUpArrow_upSkin (NumericStepperUpArrow_upSkin) package { import flash.display.*; public dynamic class NumericStepperUpArrow_upSkin extends MovieClip { } }//package
Section 351
//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 352
//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 353
//ScrollArrowDown_disabledSkin (ScrollArrowDown_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_disabledSkin extends MovieClip { } }//package
Section 354
//ScrollArrowDown_downSkin (ScrollArrowDown_downSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_downSkin extends MovieClip { } }//package
Section 355
//ScrollArrowDown_overSkin (ScrollArrowDown_overSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_overSkin extends MovieClip { } }//package
Section 356
//ScrollArrowDown_upSkin (ScrollArrowDown_upSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_upSkin extends MovieClip { } }//package
Section 357
//ScrollArrowUp_disabledSkin (ScrollArrowUp_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_disabledSkin extends MovieClip { } }//package
Section 358
//ScrollArrowUp_downSkin (ScrollArrowUp_downSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_downSkin extends MovieClip { } }//package
Section 359
//ScrollArrowUp_overSkin (ScrollArrowUp_overSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_overSkin extends MovieClip { } }//package
Section 360
//ScrollArrowUp_upSkin (ScrollArrowUp_upSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_upSkin extends MovieClip { } }//package
Section 361
//ScrollBar_thumbIcon (ScrollBar_thumbIcon) package { import flash.display.*; public dynamic class ScrollBar_thumbIcon extends MovieClip { } }//package
Section 362
//ScrollThumb_downSkin (ScrollThumb_downSkin) package { import flash.display.*; public dynamic class ScrollThumb_downSkin extends MovieClip { } }//package
Section 363
//ScrollThumb_overSkin (ScrollThumb_overSkin) package { import flash.display.*; public dynamic class ScrollThumb_overSkin extends MovieClip { } }//package
Section 364
//ScrollThumb_upSkin (ScrollThumb_upSkin) package { import flash.display.*; public dynamic class ScrollThumb_upSkin extends MovieClip { } }//package
Section 365
//ScrollTrack_skin (ScrollTrack_skin) package { import flash.display.*; public dynamic class ScrollTrack_skin extends MovieClip { } }//package
Section 366
//TextInput_disabledSkin (TextInput_disabledSkin) package { import flash.display.*; public dynamic class TextInput_disabledSkin extends MovieClip { } }//package
Section 367
//TextInput_upSkin (TextInput_upSkin) package { import flash.display.*; public dynamic class TextInput_upSkin extends MovieClip { } }//package
Section 368
//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 GraphicUsed by:4 29
Symbol 2 BitmapUsed by:3
Symbol 3 GraphicUses:2Used by:4 26 29
Symbol 4 MovieClipUses:1 3Used by:29
Symbol 5 BitmapUsed by:6
Symbol 6 GraphicUses:5Used by:7 29
Symbol 7 MovieClipUses:6Used by:8
Symbol 8 MovieClip {assets_fla.mc_bomb_17} [assets_fla.mc_bomb_17]Uses:7Used by:29
Symbol 9 GraphicUsed by:10 29
Symbol 10 MovieClipUses:9Used by:17
Symbol 11 GraphicUsed by:12 29
Symbol 12 MovieClipUses:11Used by:17
Symbol 13 ShapeTweeningUsed by:17 29
Symbol 14 ShapeTweeningUsed by:17
Symbol 15 ShapeTweeningUsed by:17
Symbol 16 GraphicUsed by:17
Symbol 17 MovieClipUses:10 12 13 14 15 16Used by:18
Symbol 18 MovieClipUses:17Used by:22
Symbol 19 GraphicUsed by:20 29
Symbol 20 MovieClipUses:19Used by:21
Symbol 21 MovieClipUses:20Used by:22
Symbol 22 MovieClipUses:18 21Used by:23
Symbol 23 MovieClipUses:22Used by:24
Symbol 24 MovieClipUses:23Used by:29
Symbol 25 GraphicUsed by:26 29
Symbol 26 MovieClipUses:25 3Used by:29
Symbol 27 FontUsed by:28 81 82 94 95 96 104 105 106 112 114 118 124 137 1620 1622
Symbol 28 TextUses:27Used by:29
Symbol 29 Button {assets.buttonBlastone} [assets.buttonBlastone]Uses:4 8 24 26 28 1 3 6 9 11 13 19 25
Symbol 30 FontUsed by:31 140 141 1644
Symbol 31 TextUses:30Used by:33
Symbol 32 GraphicUsed by:33
Symbol 33 MovieClip {assets.MovieClipGetReady} [assets.MovieClipGetReady]Uses:31 32
Symbol 34 BitmapUsed by:35
Symbol 35 GraphicUses:34Used by:36
Symbol 36 MovieClip {assets.MovieClipTitle} [assets.MovieClipTitle]Uses:35
Symbol 37 FontUsed by:38 40 43 44 45 49 51 63 64 67 68 98 100 107 120 121 126 127 131 1936 1938
Symbol 38 TextUses:37Used by:42
Symbol 39 GraphicUsed by:42 47 66 108 129
Symbol 40 TextUses:37Used by:42
Symbol 41 GraphicUsed by:42
Symbol 42 Button {assets.ButtonScores} [assets.ButtonScores]Uses:38 39 40 41
Symbol 43 TextUses:37Used by:47
Symbol 44 TextUses:37Used by:47
Symbol 45 TextUses:37Used by:47
Symbol 46 GraphicUsed by:47
Symbol 47 Button {assets.ButtonPlay} [assets.ButtonPlay]Uses:43 39 44 45 46
Symbol 48 Bitmap {assets.BitmapFlag} [assets.BitmapFlag]
Symbol 49 TextUses:37Used by:53
Symbol 50 GraphicUsed by:53 70
Symbol 51 TextUses:37Used by:53
Symbol 52 GraphicUsed by:53
Symbol 53 Button {assets.ButtonMoreGames} [assets.ButtonMoreGames]Uses:49 50 51 52
Symbol 54 FontUsed by:55 85 1645
Symbol 55 TextUses:54Used by:62
Symbol 56 FontUsed by:57 58 109 116 125 135 1621 1650 1651 1915 1935
Symbol 57 TextUses:56Used by:62
Symbol 58 EditableTextUses:56Used by:61
Symbol 59 GraphicUsed by:60
Symbol 60 ButtonUses:59Used by:61 1661
Symbol 61 MovieClip {assets_fla.credits_189} [assets_fla.credits_189]Uses:58 60Used by:62
Symbol 62 MovieClip {assets.MovieClipHelp} [assets.MovieClipHelp]Uses:55 57 61
Symbol 63 TextUses:37Used by:66
Symbol 64 TextUses:37Used by:66
Symbol 65 GraphicUsed by:66
Symbol 66 ButtonUses:63 39 64 65Used by:87 143
Symbol 67 TextUses:37Used by:70
Symbol 68 TextUses:37Used by:70
Symbol 69 GraphicUsed by:70
Symbol 70 ButtonUses:67 50 68 69Used by:87 143
Symbol 71 FontUsed by:72 74 77 78
Symbol 72 TextUses:71Used by:76
Symbol 73 GraphicUsed by:76 80
Symbol 74 TextUses:71Used by:76
Symbol 75 GraphicUsed by:76
Symbol 76 ButtonUses:72 73 74 75Used by:87 143
Symbol 77 TextUses:71Used by:80
Symbol 78 TextUses:71Used by:80
Symbol 79 GraphicUsed by:80
Symbol 80 ButtonUses:77 73 78 79Used by:87 143
Symbol 81 EditableTextUses:27Used by:87
Symbol 82 TextUses:27Used by:87
Symbol 83 GraphicUsed by:84
Symbol 84 MovieClipUses:83Used by:87 97 143
Symbol 85 EditableTextUses:54Used by:87 143
Symbol 86 GraphicUsed by:87
Symbol 87 MovieClip {assets.MovieClipCars} [assets.MovieClipCars]Uses:66 70 76 80 81 82 84 85 86
Symbol 88 Sound {assets.TrackExtreme} [assets.TrackExtreme]
Symbol 89 Sound {assets.SoundBoost} [assets.SoundBoost]
Symbol 90 Sound {assets.TrackBurn} [assets.TrackBurn]
Symbol 91 Sound {assets.SoundCash} [assets.SoundCash]
Symbol 92 Sound {assets.SoundClick} [assets.SoundClick]
Symbol 93 GraphicUsed by:97
Symbol 94 EditableTextUses:27Used by:97
Symbol 95 EditableTextUses:27Used by:97
Symbol 96 EditableTextUses:27Used by:97
Symbol 97 MovieClip {assets.MovieClipStandingsItem} [assets.MovieClipStandingsItem]Uses:93 84 94 95 96
Symbol 98 TextUses:37Used by:102
Symbol 99 GraphicUsed by:102
Symbol 100 TextUses:37Used by:102
Symbol 101 GraphicUsed by:102
Symbol 102 ButtonUses:98 99 100 101Used by:108
Symbol 103 GraphicUsed by:108
Symbol 104 TextUses:27Used by:108 134
Symbol 105 TextUses:27Used by:108 134
Symbol 106 TextUses:27Used by:108 134
Symbol 107 TextUses:37Used by:108
Symbol 108 MovieClip {assets.MovieClipSubmit} [assets.MovieClipSubmit]Uses:102 103 104 105 106 107 39
Symbol 109 EditableTextUses:56Used by:110
Symbol 110 MovieClip {assets.MovieClipStandingsPlayer} [assets.MovieClipStandingsPlayer]Uses:109
Symbol 111 MovieClip {assets.MovieClipStandingsTrackText} [assets.MovieClipStandingsTrackText]
Symbol 112 EditableTextUses:27Used by:113
Symbol 113 MovieClip {assets.MovieClipStandingsPointsFirst} [assets.MovieClipStandingsPointsFirst]Uses:112
Symbol 114 EditableTextUses:27Used by:115
Symbol 115 MovieClip {assets.MovieClipStandingsPointsSecond} [assets.MovieClipStandingsPointsSecond]Uses:114
Symbol 116 EditableTextUses:56Used by:117
Symbol 117 MovieClip {assets.MovieClipStandingsPointsDefault} [assets.MovieClipStandingsPointsDefault]Uses:116
Symbol 118 TextUses:27Used by:119
Symbol 119 MovieClip {assets.MovieClipStandingsTotal} [assets.MovieClipStandingsTotal]Uses:118
Symbol 120 TextUses:37Used by:123
Symbol 121 TextUses:37Used by:123
Symbol 122 GraphicUsed by:123
Symbol 123 ButtonUses:120 121 122Used by:134 1626 1941
Symbol 124 TextUses:27Used by:134
Symbol 125 EditableTextUses:56Used by:134
Symbol 126 TextUses:37Used by:129
Symbol 127 TextUses:37Used by:129
Symbol 128 GraphicUsed by:129
Symbol 129 ButtonUses:126 39 127 128Used by:134
Symbol 130 GraphicUsed by:134
Symbol 131 TextUses:37Used by:133
Symbol 132 GraphicUsed by:133
Symbol 133 MovieClipUses:131 132Used by:134
Symbol 134 MovieClip {assets.MovieClipStandings} [assets.MovieClipStandings]Uses:123 124 125 129 130 133 104 105 106
Symbol 135 EditableTextUses:56Used by:136
Symbol 136 MovieClip {assets.MovieClipStandingsTotals} [assets.MovieClipStandingsTotals]Uses:135
Symbol 137 EditableTextUses:27Used by:138
Symbol 138 MovieClip {assets.MovieClipStandingsPointsThird} [assets.MovieClipStandingsPointsThird]Uses:137
Symbol 139 Bitmap {assets.BitmapDataTilesPreview} [assets.BitmapDataTilesPreview]
Symbol 140 EditableTextUses:30Used by:143
Symbol 141 TextUses:30Used by:143
Symbol 142 GraphicUsed by:143
Symbol 143 MovieClip {assets.MovieClipTracks} [assets.MovieClipTracks]Uses:76 80 84 66 70 85 140 141 142
Symbol 144 GraphicUsed by:146
Symbol 145 MovieClipUsed by:146
Symbol 146 MovieClip {assets_fla.car_2} [assets_fla.car_2]Uses:144 145Used by:390 634 878 1122 1374 1618
Symbol 147 BitmapUsed by:148
Symbol 148 GraphicUses:147Used by:389
Symbol 149 BitmapUsed by:150
Symbol 150 GraphicUses:149Used by:389
Symbol 151 BitmapUsed by:152
Symbol 152 GraphicUses:151Used by:389
Symbol 153 BitmapUsed by:154
Symbol 154 GraphicUses:153Used by:389
Symbol 155 BitmapUsed by:156
Symbol 156 GraphicUses:155Used by:389
Symbol 157 BitmapUsed by:158
Symbol 158 GraphicUses:157Used by:389
Symbol 159 BitmapUsed by:160
Symbol 160 GraphicUses:159Used by:389
Symbol 161 BitmapUsed by:162
Symbol 162 GraphicUses:161Used by:389
Symbol 163 BitmapUsed by:164
Symbol 164 GraphicUses:163Used by:389
Symbol 165 BitmapUsed by:166
Symbol 166 GraphicUses:165Used by:389
Symbol 167 BitmapUsed by:168
Symbol 168 GraphicUses:167Used by:389
Symbol 169 BitmapUsed by:170
Symbol 170 GraphicUses:169Used by:389
Symbol 171 BitmapUsed by:172
Symbol 172 GraphicUses:171Used by:389
Symbol 173 BitmapUsed by:174
Symbol 174 GraphicUses:173Used by:389
Symbol 175 BitmapUsed by:176
Symbol 176 GraphicUses:175Used by:389
Symbol 177 BitmapUsed by:178
Symbol 178 GraphicUses:177Used by:389
Symbol 179 BitmapUsed by:180
Symbol 180 GraphicUses:179Used by:389
Symbol 181 BitmapUsed by:182
Symbol 182 GraphicUses:181Used by:389
Symbol 183 BitmapUsed by:184
Symbol 184 GraphicUses:183Used by:389
Symbol 185 BitmapUsed by:186
Symbol 186 GraphicUses:185Used by:389
Symbol 187 BitmapUsed by:188
Symbol 188 GraphicUses:187Used by:389
Symbol 189 BitmapUsed by:190
Symbol 190 GraphicUses:189Used by:389
Symbol 191 BitmapUsed by:192
Symbol 192 GraphicUses:191Used by:389
Symbol 193 BitmapUsed by:194
Symbol 194 GraphicUses:193Used by:389
Symbol 195 BitmapUsed by:196
Symbol 196 GraphicUses:195Used by:389
Symbol 197 BitmapUsed by:198
Symbol 198 GraphicUses:197Used by:389
Symbol 199 BitmapUsed by:200
Symbol 200 GraphicUses:199Used by:389
Symbol 201 BitmapUsed by:202
Symbol 202 GraphicUses:201Used by:389
Symbol 203 BitmapUsed by:204
Symbol 204 GraphicUses:203Used by:389
Symbol 205 BitmapUsed by:206
Symbol 206 GraphicUses:205Used by:389
Symbol 207 BitmapUsed by:208
Symbol 208 GraphicUses:207Used by:389
Symbol 209 BitmapUsed by:210
Symbol 210 GraphicUses:209Used by:389
Symbol 211 BitmapUsed by:212
Symbol 212 GraphicUses:211Used by:389
Symbol 213 BitmapUsed by:214
Symbol 214 GraphicUses:213Used by:389
Symbol 215 BitmapUsed by:216
Symbol 216 GraphicUses:215Used by:389
Symbol 217 BitmapUsed by:218
Symbol 218 GraphicUses:217Used by:389
Symbol 219 BitmapUsed by:220
Symbol 220 GraphicUses:219Used by:389
Symbol 221 BitmapUsed by:222
Symbol 222 GraphicUses:221Used by:389
Symbol 223 BitmapUsed by:224
Symbol 224 GraphicUses:223Used by:389
Symbol 225 BitmapUsed by:226
Symbol 226 GraphicUses:225Used by:389
Symbol 227 BitmapUsed by:228
Symbol 228 GraphicUses:227Used by:389
Symbol 229 BitmapUsed by:230
Symbol 230 GraphicUses:229Used by:389
Symbol 231 BitmapUsed by:232
Symbol 232 GraphicUses:231Used by:389
Symbol 233 BitmapUsed by:234
Symbol 234 GraphicUses:233Used by:389
Symbol 235 BitmapUsed by:236
Symbol 236 GraphicUses:235Used by:389
Symbol 237 BitmapUsed by:238
Symbol 238 GraphicUses:237Used by:389
Symbol 239 BitmapUsed by:240
Symbol 240 GraphicUses:239Used by:389
Symbol 241 BitmapUsed by:242
Symbol 242 GraphicUses:241Used by:389
Symbol 243 BitmapUsed by:244
Symbol 244 GraphicUses:243Used by:389
Symbol 245 BitmapUsed by:246
Symbol 246 GraphicUses:245Used by:389
Symbol 247 BitmapUsed by:248
Symbol 248 GraphicUses:247Used by:389
Symbol 249 BitmapUsed by:250
Symbol 250 GraphicUses:249Used by:389
Symbol 251 BitmapUsed by:252
Symbol 252 GraphicUses:251Used by:389
Symbol 253 BitmapUsed by:254
Symbol 254 GraphicUses:253Used by:389
Symbol 255 BitmapUsed by:256
Symbol 256 GraphicUses:255Used by:389
Symbol 257 BitmapUsed by:258
Symbol 258 GraphicUses:257Used by:389
Symbol 259 BitmapUsed by:260
Symbol 260 GraphicUses:259Used by:389
Symbol 261 BitmapUsed by:262
Symbol 262 GraphicUses:261Used by:389
Symbol 263 BitmapUsed by:264
Symbol 264 GraphicUses:263Used by:389
Symbol 265 BitmapUsed by:266
Symbol 266 GraphicUses:265Used by:389
Symbol 267 BitmapUsed by:268
Symbol 268 GraphicUses:267Used by:389
Symbol 269 BitmapUsed by:270
Symbol 270 GraphicUses:269Used by:389
Symbol 271 BitmapUsed by:272
Symbol 272 GraphicUses:271Used by:389
Symbol 273 BitmapUsed by:274
Symbol 274 GraphicUses:273Used by:389
Symbol 275 BitmapUsed by:276
Symbol 276 GraphicUses:275Used by:389
Symbol 277 BitmapUsed by:278
Symbol 278 GraphicUses:277Used by:389
Symbol 279 BitmapUsed by:280
Symbol 280 GraphicUses:279Used by:389
Symbol 281 BitmapUsed by:282
Symbol 282 GraphicUses:281Used by:389
Symbol 283 BitmapUsed by:284
Symbol 284 GraphicUses:283Used by:389
Symbol 285 BitmapUsed by:286
Symbol 286 GraphicUses:285Used by:389
Symbol 287 BitmapUsed by:288
Symbol 288 GraphicUses:287Used by:389
Symbol 289 BitmapUsed by:290
Symbol 290 GraphicUses:289Used by:389
Symbol 291 BitmapUsed by:292
Symbol 292 GraphicUses:291Used by:389
Symbol 293 BitmapUsed by:294
Symbol 294 GraphicUses:293Used by:389
Symbol 295 BitmapUsed by:296
Symbol 296 GraphicUses:295Used by:389
Symbol 297 BitmapUsed by:298
Symbol 298 GraphicUses:297Used by:389
Symbol 299 BitmapUsed by:300
Symbol 300 GraphicUses:299Used by:389
Symbol 301 BitmapUsed by:302
Symbol 302 GraphicUses:301Used by:389
Symbol 303 BitmapUsed by:304
Symbol 304 GraphicUses:303Used by:389
Symbol 305 BitmapUsed by:306
Symbol 306 GraphicUses:305Used by:389
Symbol 307 BitmapUsed by:308
Symbol 308 GraphicUses:307Used by:389
Symbol 309 BitmapUsed by:310
Symbol 310 GraphicUses:309Used by:389
Symbol 311 BitmapUsed by:312
Symbol 312 GraphicUses:311Used by:389
Symbol 313 BitmapUsed by:314
Symbol 314 GraphicUses:313Used by:389
Symbol 315 BitmapUsed by:316
Symbol 316 GraphicUses:315Used by:389
Symbol 317 BitmapUsed by:318
Symbol 318 GraphicUses:317Used by:389
Symbol 319 BitmapUsed by:320
Symbol 320 GraphicUses:319Used by:389
Symbol 321 BitmapUsed by:322
Symbol 322 GraphicUses:321Used by:389
Symbol 323 BitmapUsed by:324
Symbol 324 GraphicUses:323Used by:389
Symbol 325 BitmapUsed by:326
Symbol 326 GraphicUses:325Used by:389
Symbol 327 BitmapUsed by:328
Symbol 328 GraphicUses:327Used by:389
Symbol 329 BitmapUsed by:330
Symbol 330 GraphicUses:329Used by:389
Symbol 331 BitmapUsed by:332
Symbol 332 GraphicUses:331Used by:389
Symbol 333 BitmapUsed by:334
Symbol 334 GraphicUses:333Used by:389
Symbol 335 BitmapUsed by:336
Symbol 336 GraphicUses:335Used by:389
Symbol 337 BitmapUsed by:338
Symbol 338 GraphicUses:337Used by:389
Symbol 339 BitmapUsed by:340
Symbol 340 GraphicUses:339Used by:389
Symbol 341 BitmapUsed by:342
Symbol 342 GraphicUses:341Used by:389
Symbol 343 BitmapUsed by:344
Symbol 344 GraphicUses:343Used by:389
Symbol 345 BitmapUsed by:346
Symbol 346 GraphicUses:345Used by:389
Symbol 347 BitmapUsed by:348
Symbol 348 GraphicUses:347Used by:389
Symbol 349 BitmapUsed by:350
Symbol 350 GraphicUses:349Used by:389
Symbol 351 BitmapUsed by:352
Symbol 352 GraphicUses:351Used by:389
Symbol 353 BitmapUsed by:354
Symbol 354 GraphicUses:353Used by:389
Symbol 355 BitmapUsed by:356
Symbol 356 GraphicUses:355Used by:389
Symbol 357 BitmapUsed by:358
Symbol 358 GraphicUses:357Used by:389
Symbol 359 BitmapUsed by:360
Symbol 360 GraphicUses:359Used by:389
Symbol 361 BitmapUsed by:362
Symbol 362 GraphicUses:361Used by:389
Symbol 363 BitmapUsed by:364
Symbol 364 GraphicUses:363Used by:389
Symbol 365 BitmapUsed by:366
Symbol 366 GraphicUses:365Used by:389
Symbol 367 BitmapUsed by:368
Symbol 368 GraphicUses:367Used by:389
Symbol 369 BitmapUsed by:370
Symbol 370 GraphicUses:369Used by:389
Symbol 371 BitmapUsed by:372
Symbol 372 GraphicUses:371Used by:389
Symbol 373 BitmapUsed by:374
Symbol 374 GraphicUses:373Used by:389
Symbol 375 BitmapUsed by:376
Symbol 376 GraphicUses:375Used by:389
Symbol 377 BitmapUsed by:378
Symbol 378 GraphicUses:377Used by:389
Symbol 379 BitmapUsed by:380
Symbol 380 GraphicUses:379Used by:389
Symbol 381 BitmapUsed by:382
Symbol 382 GraphicUses:381Used by:389
Symbol 383 BitmapUsed by:384
Symbol 384 GraphicUses:383Used by:389
Symbol 385 BitmapUsed by:386
Symbol 386 GraphicUses:385Used by:389
Symbol 387 BitmapUsed by:388
Symbol 388 GraphicUses:387Used by:389
Symbol 389 MovieClip {assets_fla.car_10} [assets_fla.car_10]Uses:148 150 152 154 156 158 160 162 164 166 168 170 172 174 176 178 180 182 184 186 188 190 192 194 196 198 200 202 204 206 208 210 212 214 216 218 220 222 224 226 228 230 232 234 236 238 240 242 244 246 248 250 252 254 256 258 260 262 264 266 268 270 272 274 276 278 280 282 284 286 288 290 292 294 296 298 300 302 304 306 308 310 312 314 316 318 320 322 324 326 328 330 332 334 336 338 340 342 344 346 348 350 352 354 356 358 360 362 364 366 368 370 372 374 376 378 380 382 384 386 388Used by:390
Symbol 390 MovieClip {assets.MovieClipCarAlfa} [assets.MovieClipCarAlfa]Uses:146 389
Symbol 391 BitmapUsed by:392
Symbol 392 GraphicUses:391Used by:633
Symbol 393 BitmapUsed by:394
Symbol 394 GraphicUses:393Used by:633
Symbol 395 BitmapUsed by:396
Symbol 396 GraphicUses:395Used by:633
Symbol 397 BitmapUsed by:398
Symbol 398 GraphicUses:397Used by:633
Symbol 399 BitmapUsed by:400
Symbol 400 GraphicUses:399Used by:633
Symbol 401 BitmapUsed by:402
Symbol 402 GraphicUses:401Used by:633
Symbol 403 BitmapUsed by:404
Symbol 404 GraphicUses:403Used by:633
Symbol 405 BitmapUsed by:406
Symbol 406 GraphicUses:405Used by:633
Symbol 407 BitmapUsed by:408
Symbol 408 GraphicUses:407Used by:633
Symbol 409 BitmapUsed by:410
Symbol 410 GraphicUses:409Used by:633
Symbol 411 BitmapUsed by:412
Symbol 412 GraphicUses:411Used by:633
Symbol 413 BitmapUsed by:414
Symbol 414 GraphicUses:413Used by:633
Symbol 415 BitmapUsed by:416
Symbol 416 GraphicUses:415Used by:633
Symbol 417 BitmapUsed by:418
Symbol 418 GraphicUses:417Used by:633
Symbol 419 BitmapUsed by:420
Symbol 420 GraphicUses:419Used by:633
Symbol 421 BitmapUsed by:422
Symbol 422 GraphicUses:421Used by:633
Symbol 423 BitmapUsed by:424
Symbol 424 GraphicUses:423Used by:633
Symbol 425 BitmapUsed by:426
Symbol 426 GraphicUses:425Used by:633
Symbol 427 BitmapUsed by:428
Symbol 428 GraphicUses:427Used by:633
Symbol 429 BitmapUsed by:430
Symbol 430 GraphicUses:429Used by:633
Symbol 431 BitmapUsed by:432
Symbol 432 GraphicUses:431Used by:633
Symbol 433 BitmapUsed by:434
Symbol 434 GraphicUses:433Used by:633
Symbol 435 BitmapUsed by:436
Symbol 436 GraphicUses:435Used by:633
Symbol 437 BitmapUsed by:438
Symbol 438 GraphicUses:437Used by:633
Symbol 439 BitmapUsed by:440
Symbol 440 GraphicUses:439Used by:633
Symbol 441 BitmapUsed by:442
Symbol 442 GraphicUses:441Used by:633
Symbol 443 BitmapUsed by:444
Symbol 444 GraphicUses:443Used by:633
Symbol 445 BitmapUsed by:446
Symbol 446 GraphicUses:445Used by:633
Symbol 447 BitmapUsed by:448
Symbol 448 GraphicUses:447Used by:633
Symbol 449 BitmapUsed by:450
Symbol 450 GraphicUses:449Used by:633
Symbol 451 BitmapUsed by:452
Symbol 452 GraphicUses:451Used by:633
Symbol 453 BitmapUsed by:454
Symbol 454 GraphicUses:453Used by:633
Symbol 455 BitmapUsed by:456
Symbol 456 GraphicUses:455Used by:633
Symbol 457 BitmapUsed by:458
Symbol 458 GraphicUses:457Used by:633
Symbol 459 BitmapUsed by:460
Symbol 460 GraphicUses:459Used by:633
Symbol 461 BitmapUsed by:462
Symbol 462 GraphicUses:461Used by:633
Symbol 463 BitmapUsed by:464
Symbol 464 GraphicUses:463Used by:633
Symbol 465 BitmapUsed by:466
Symbol 466 GraphicUses:465Used by:633
Symbol 467 BitmapUsed by:468
Symbol 468 GraphicUses:467Used by:633
Symbol 469 BitmapUsed by:470
Symbol 470 GraphicUses:469Used by:633
Symbol 471 BitmapUsed by:472
Symbol 472 GraphicUses:471Used by:633
Symbol 473 BitmapUsed by:474
Symbol 474 GraphicUses:473Used by:633
Symbol 475 BitmapUsed by:476
Symbol 476 GraphicUses:475Used by:633
Symbol 477 BitmapUsed by:478
Symbol 478 GraphicUses:477Used by:633
Symbol 479 BitmapUsed by:480
Symbol 480 GraphicUses:479Used by:633
Symbol 481 BitmapUsed by:482
Symbol 482 GraphicUses:481Used by:633
Symbol 483 BitmapUsed by:484
Symbol 484 GraphicUses:483Used by:633
Symbol 485 BitmapUsed by:486
Symbol 486 GraphicUses:485Used by:633
Symbol 487 BitmapUsed by:488
Symbol 488 GraphicUses:487Used by:633
Symbol 489 BitmapUsed by:490
Symbol 490 GraphicUses:489Used by:633
Symbol 491 BitmapUsed by:492
Symbol 492 GraphicUses:491Used by:633
Symbol 493 BitmapUsed by:494
Symbol 494 GraphicUses:493Used by:633
Symbol 495 BitmapUsed by:496
Symbol 496 GraphicUses:495Used by:633
Symbol 497 BitmapUsed by:498
Symbol 498 GraphicUses:497Used by:633
Symbol 499 BitmapUsed by:500
Symbol 500 GraphicUses:499Used by:633
Symbol 501 BitmapUsed by:502
Symbol 502 GraphicUses:501Used by:633
Symbol 503 BitmapUsed by:504
Symbol 504 GraphicUses:503Used by:633
Symbol 505 BitmapUsed by:506
Symbol 506 GraphicUses:505Used by:633
Symbol 507 BitmapUsed by:508
Symbol 508 GraphicUses:507Used by:633
Symbol 509 BitmapUsed by:510
Symbol 510 GraphicUses:509Used by:633
Symbol 511 BitmapUsed by:512
Symbol 512 GraphicUses:511Used by:633
Symbol 513 BitmapUsed by:514
Symbol 514 GraphicUses:513Used by:633
Symbol 515 BitmapUsed by:516
Symbol 516 GraphicUses:515Used by:633
Symbol 517 BitmapUsed by:518
Symbol 518 GraphicUses:517Used by:633
Symbol 519 BitmapUsed by:520
Symbol 520 GraphicUses:519Used by:633
Symbol 521 BitmapUsed by:522
Symbol 522 GraphicUses:521Used by:633
Symbol 523 BitmapUsed by:524
Symbol 524 GraphicUses:523Used by:633
Symbol 525 BitmapUsed by:526
Symbol 526 GraphicUses:525Used by:633
Symbol 527 BitmapUsed by:528
Symbol 528 GraphicUses:527Used by:633
Symbol 529 BitmapUsed by:530
Symbol 530 GraphicUses:529Used by:633
Symbol 531 BitmapUsed by:532
Symbol 532 GraphicUses:531Used by:633
Symbol 533 BitmapUsed by:534
Symbol 534 GraphicUses:533Used by:633
Symbol 535 BitmapUsed by:536
Symbol 536 GraphicUses:535Used by:633
Symbol 537 BitmapUsed by:538
Symbol 538 GraphicUses:537Used by:633
Symbol 539 BitmapUsed by:540
Symbol 540 GraphicUses:539Used by:633
Symbol 541 BitmapUsed by:542
Symbol 542 GraphicUses:541Used by:633
Symbol 543 BitmapUsed by:544
Symbol 544 GraphicUses:543Used by:633
Symbol 545 BitmapUsed by:546
Symbol 546 GraphicUses:545Used by:633
Symbol 547 BitmapUsed by:548
Symbol 548 GraphicUses:547Used by:633
Symbol 549 BitmapUsed by:550
Symbol 550 GraphicUses:549Used by:633
Symbol 551 BitmapUsed by:552
Symbol 552 GraphicUses:551Used by:633
Symbol 553 BitmapUsed by:554
Symbol 554 GraphicUses:553Used by:633
Symbol 555 BitmapUsed by:556
Symbol 556 GraphicUses:555Used by:633
Symbol 557 BitmapUsed by:558
Symbol 558 GraphicUses:557Used by:633
Symbol 559 BitmapUsed by:560
Symbol 560 GraphicUses:559Used by:633
Symbol 561 BitmapUsed by:562
Symbol 562 GraphicUses:561Used by:633
Symbol 563 BitmapUsed by:564
Symbol 564 GraphicUses:563Used by:633
Symbol 565 BitmapUsed by:566
Symbol 566 GraphicUses:565Used by:633
Symbol 567 BitmapUsed by:568
Symbol 568 GraphicUses:567Used by:633
Symbol 569 BitmapUsed by:570
Symbol 570 GraphicUses:569Used by:633
Symbol 571 BitmapUsed by:572
Symbol 572 GraphicUses:571Used by:633
Symbol 573 BitmapUsed by:574
Symbol 574 GraphicUses:573Used by:633
Symbol 575 BitmapUsed by:576
Symbol 576 GraphicUses:575Used by:633
Symbol 577 BitmapUsed by:578
Symbol 578 GraphicUses:577Used by:633
Symbol 579 BitmapUsed by:580
Symbol 580 GraphicUses:579Used by:633
Symbol 581 BitmapUsed by:582
Symbol 582 GraphicUses:581Used by:633
Symbol 583 BitmapUsed by:584
Symbol 584 GraphicUses:583Used by:633
Symbol 585 BitmapUsed by:586
Symbol 586 GraphicUses:585Used by:633
Symbol 587 BitmapUsed by:588
Symbol 588 GraphicUses:587Used by:633
Symbol 589 BitmapUsed by:590
Symbol 590 GraphicUses:589Used by:633
Symbol 591 BitmapUsed by:592
Symbol 592 GraphicUses:591Used by:633
Symbol 593 BitmapUsed by:594
Symbol 594 GraphicUses:593Used by:633
Symbol 595 BitmapUsed by:596
Symbol 596 GraphicUses:595Used by:633
Symbol 597 BitmapUsed by:598
Symbol 598 GraphicUses:597Used by:633
Symbol 599 BitmapUsed by:600
Symbol 600 GraphicUses:599Used by:633
Symbol 601 BitmapUsed by:602
Symbol 602 GraphicUses:601Used by:633
Symbol 603 BitmapUsed by:604
Symbol 604 GraphicUses:603Used by:633
Symbol 605 BitmapUsed by:606
Symbol 606 GraphicUses:605Used by:633
Symbol 607 BitmapUsed by:608
Symbol 608 GraphicUses:607Used by:633
Symbol 609 BitmapUsed by:610
Symbol 610 GraphicUses:609Used by:633
Symbol 611 BitmapUsed by:612
Symbol 612 GraphicUses:611Used by:633
Symbol 613 BitmapUsed by:614
Symbol 614 GraphicUses:613Used by:633
Symbol 615 BitmapUsed by:616
Symbol 616 GraphicUses:615Used by:633
Symbol 617 BitmapUsed by:618
Symbol 618 GraphicUses:617Used by:633
Symbol 619 BitmapUsed by:620
Symbol 620 GraphicUses:619Used by:633
Symbol 621 BitmapUsed by:622
Symbol 622 GraphicUses:621Used by:633
Symbol 623 BitmapUsed by:624
Symbol 624 GraphicUses:623Used by:633
Symbol 625 BitmapUsed by:626
Symbol 626 GraphicUses:625Used by:633
Symbol 627 BitmapUsed by:628
Symbol 628 GraphicUses:627Used by:633
Symbol 629 BitmapUsed by:630
Symbol 630 GraphicUses:629Used by:633
Symbol 631 BitmapUsed by:632
Symbol 632 GraphicUses:631Used by:633
Symbol 633 MovieClip {assets_fla.car_14} [assets_fla.car_14]Uses:392 394 396 398 400 402 404 406 408 410 412 414 416 418 420 422 424 426 428 430 432 434 436 438 440 442 444 446 448 450 452 454 456 458 460 462 464 466 468 470 472 474 476 478 480 482 484 486 488 490 492 494 496 498 500 502 504 506 508 510 512 514 516 518 520 522 524 526 528 530 532 534 536 538 540 542 544 546 548 550 552 554 556 558 560 562 564 566 568 570 572 574 576 578 580 582 584 586 588 590 592 594 596 598 600 602 604 606 608 610 612 614 616 618 620 622 624 626 628 630 632Used by:634
Symbol 634 MovieClip {assets.MovieClipCarCelica} [assets.MovieClipCarCelica]Uses:146 633
Symbol 635 BitmapUsed by:636
Symbol 636 GraphicUses:635Used by:877
Symbol 637 BitmapUsed by:638
Symbol 638 GraphicUses:637Used by:877
Symbol 639 BitmapUsed by:640
Symbol 640 GraphicUses:639Used by:877
Symbol 641 BitmapUsed by:642
Symbol 642 GraphicUses:641Used by:877
Symbol 643 BitmapUsed by:644
Symbol 644 GraphicUses:643Used by:877
Symbol 645 BitmapUsed by:646
Symbol 646 GraphicUses:645Used by:877
Symbol 647 BitmapUsed by:648
Symbol 648 GraphicUses:647Used by:877
Symbol 649 BitmapUsed by:650
Symbol 650 GraphicUses:649Used by:877
Symbol 651 BitmapUsed by:652
Symbol 652 GraphicUses:651Used by:877
Symbol 653 BitmapUsed by:654
Symbol 654 GraphicUses:653Used by:877
Symbol 655 BitmapUsed by:656
Symbol 656 GraphicUses:655Used by:877
Symbol 657 BitmapUsed by:658
Symbol 658 GraphicUses:657Used by:877
Symbol 659 BitmapUsed by:660
Symbol 660 GraphicUses:659Used by:877
Symbol 661 BitmapUsed by:662
Symbol 662 GraphicUses:661Used by:877
Symbol 663 BitmapUsed by:664
Symbol 664 GraphicUses:663Used by:877
Symbol 665 BitmapUsed by:666
Symbol 666 GraphicUses:665Used by:877
Symbol 667 BitmapUsed by:668
Symbol 668 GraphicUses:667Used by:877
Symbol 669 BitmapUsed by:670
Symbol 670 GraphicUses:669Used by:877
Symbol 671 BitmapUsed by:672
Symbol 672 GraphicUses:671Used by:877
Symbol 673 BitmapUsed by:674
Symbol 674 GraphicUses:673Used by:877
Symbol 675 BitmapUsed by:676
Symbol 676 GraphicUses:675Used by:877
Symbol 677 BitmapUsed by:678
Symbol 678 GraphicUses:677Used by:877
Symbol 679 BitmapUsed by:680
Symbol 680 GraphicUses:679Used by:877
Symbol 681 BitmapUsed by:682
Symbol 682 GraphicUses:681Used by:877
Symbol 683 BitmapUsed by:684
Symbol 684 GraphicUses:683Used by:877
Symbol 685 BitmapUsed by:686
Symbol 686 GraphicUses:685Used by:877
Symbol 687 BitmapUsed by:688
Symbol 688 GraphicUses:687Used by:877
Symbol 689 BitmapUsed by:690
Symbol 690 GraphicUses:689Used by:877
Symbol 691 BitmapUsed by:692
Symbol 692 GraphicUses:691Used by:877
Symbol 693 BitmapUsed by:694
Symbol 694 GraphicUses:693Used by:877
Symbol 695 BitmapUsed by:696
Symbol 696 GraphicUses:695Used by:877
Symbol 697 BitmapUsed by:698
Symbol 698 GraphicUses:697Used by:877
Symbol 699 BitmapUsed by:700
Symbol 700 GraphicUses:699Used by:877
Symbol 701 BitmapUsed by:702
Symbol 702 GraphicUses:701Used by:877
Symbol 703 BitmapUsed by:704
Symbol 704 GraphicUses:703Used by:877
Symbol 705 BitmapUsed by:706
Symbol 706 GraphicUses:705Used by:877
Symbol 707 BitmapUsed by:708
Symbol 708 GraphicUses:707Used by:877
Symbol 709 BitmapUsed by:710
Symbol 710 GraphicUses:709Used by:877
Symbol 711 BitmapUsed by:712
Symbol 712 GraphicUses:711Used by:877
Symbol 713 BitmapUsed by:714
Symbol 714 GraphicUses:713Used by:877
Symbol 715 BitmapUsed by:716
Symbol 716 GraphicUses:715Used by:877
Symbol 717 BitmapUsed by:718
Symbol 718 GraphicUses:717Used by:877
Symbol 719 BitmapUsed by:720
Symbol 720 GraphicUses:719Used by:877
Symbol 721 BitmapUsed by:722
Symbol 722 GraphicUses:721Used by:877
Symbol 723 BitmapUsed by:724
Symbol 724 GraphicUses:723Used by:877
Symbol 725 BitmapUsed by:726
Symbol 726 GraphicUses:725Used by:877
Symbol 727 BitmapUsed by:728
Symbol 728 GraphicUses:727Used by:877
Symbol 729 BitmapUsed by:730
Symbol 730 GraphicUses:729Used by:877
Symbol 731 BitmapUsed by:732
Symbol 732 GraphicUses:731Used by:877
Symbol 733 BitmapUsed by:734
Symbol 734 GraphicUses:733Used by:877
Symbol 735 BitmapUsed by:736
Symbol 736 GraphicUses:735Used by:877
Symbol 737 BitmapUsed by:738
Symbol 738 GraphicUses:737Used by:877
Symbol 739 BitmapUsed by:740
Symbol 740 GraphicUses:739Used by:877
Symbol 741 BitmapUsed by:742
Symbol 742 GraphicUses:741Used by:877
Symbol 743 BitmapUsed by:744
Symbol 744 GraphicUses:743Used by:877
Symbol 745 BitmapUsed by:746
Symbol 746 GraphicUses:745Used by:877
Symbol 747 BitmapUsed by:748
Symbol 748 GraphicUses:747Used by:877
Symbol 749 BitmapUsed by:750
Symbol 750 GraphicUses:749Used by:877
Symbol 751 BitmapUsed by:752
Symbol 752 GraphicUses:751Used by:877
Symbol 753 BitmapUsed by:754
Symbol 754 GraphicUses:753Used by:877
Symbol 755 BitmapUsed by:756
Symbol 756 GraphicUses:755Used by:877
Symbol 757 BitmapUsed by:758
Symbol 758 GraphicUses:757Used by:877
Symbol 759 BitmapUsed by:760
Symbol 760 GraphicUses:759Used by:877
Symbol 761 BitmapUsed by:762
Symbol 762 GraphicUses:761Used by:877
Symbol 763 BitmapUsed by:764
Symbol 764 GraphicUses:763Used by:877
Symbol 765 BitmapUsed by:766
Symbol 766 GraphicUses:765Used by:877
Symbol 767 BitmapUsed by:768
Symbol 768 GraphicUses:767Used by:877
Symbol 769 BitmapUsed by:770
Symbol 770 GraphicUses:769Used by:877
Symbol 771 BitmapUsed by:772
Symbol 772 GraphicUses:771Used by:877
Symbol 773 BitmapUsed by:774
Symbol 774 GraphicUses:773Used by:877
Symbol 775 BitmapUsed by:776
Symbol 776 GraphicUses:775Used by:877
Symbol 777 BitmapUsed by:778
Symbol 778 GraphicUses:777Used by:877
Symbol 779 BitmapUsed by:780
Symbol 780 GraphicUses:779Used by:877
Symbol 781 BitmapUsed by:782
Symbol 782 GraphicUses:781Used by:877
Symbol 783 BitmapUsed by:784
Symbol 784 GraphicUses:783Used by:877
Symbol 785 BitmapUsed by:786
Symbol 786 GraphicUses:785Used by:877
Symbol 787 BitmapUsed by:788
Symbol 788 GraphicUses:787Used by:877
Symbol 789 BitmapUsed by:790
Symbol 790 GraphicUses:789Used by:877
Symbol 791 BitmapUsed by:792
Symbol 792 GraphicUses:791Used by:877
Symbol 793 BitmapUsed by:794
Symbol 794 GraphicUses:793Used by:877
Symbol 795 BitmapUsed by:796
Symbol 796 GraphicUses:795Used by:877
Symbol 797 BitmapUsed by:798
Symbol 798 GraphicUses:797Used by:877
Symbol 799 BitmapUsed by:800
Symbol 800 GraphicUses:799Used by:877
Symbol 801 BitmapUsed by:802
Symbol 802 GraphicUses:801Used by:877
Symbol 803 BitmapUsed by:804
Symbol 804 GraphicUses:803Used by:877
Symbol 805 BitmapUsed by:806
Symbol 806 GraphicUses:805Used by:877
Symbol 807 BitmapUsed by:808
Symbol 808 GraphicUses:807Used by:877
Symbol 809 BitmapUsed by:810
Symbol 810 GraphicUses:809Used by:877
Symbol 811 BitmapUsed by:812
Symbol 812 GraphicUses:811Used by:877
Symbol 813 BitmapUsed by:814
Symbol 814 GraphicUses:813Used by:877
Symbol 815 BitmapUsed by:816
Symbol 816 GraphicUses:815Used by:877
Symbol 817 BitmapUsed by:818
Symbol 818 GraphicUses:817Used by:877
Symbol 819 BitmapUsed by:820
Symbol 820 GraphicUses:819Used by:877
Symbol 821 BitmapUsed by:822
Symbol 822 GraphicUses:821Used by:877
Symbol 823 BitmapUsed by:824
Symbol 824 GraphicUses:823Used by:877
Symbol 825 BitmapUsed by:826
Symbol 826 GraphicUses:825Used by:877
Symbol 827 BitmapUsed by:828
Symbol 828 GraphicUses:827Used by:877
Symbol 829 BitmapUsed by:830
Symbol 830 GraphicUses:829Used by:877
Symbol 831 BitmapUsed by:832
Symbol 832 GraphicUses:831Used by:877
Symbol 833 BitmapUsed by:834
Symbol 834 GraphicUses:833Used by:877
Symbol 835 BitmapUsed by:836
Symbol 836 GraphicUses:835Used by:877
Symbol 837 BitmapUsed by:838
Symbol 838 GraphicUses:837Used by:877
Symbol 839 BitmapUsed by:840
Symbol 840 GraphicUses:839Used by:877
Symbol 841 BitmapUsed by:842
Symbol 842 GraphicUses:841Used by:877
Symbol 843 BitmapUsed by:844
Symbol 844 GraphicUses:843Used by:877
Symbol 845 BitmapUsed by:846
Symbol 846 GraphicUses:845Used by:877
Symbol 847 BitmapUsed by:848
Symbol 848 GraphicUses:847Used by:877
Symbol 849 BitmapUsed by:850
Symbol 850 GraphicUses:849Used by:877
Symbol 851 BitmapUsed by:852
Symbol 852 GraphicUses:851Used by:877
Symbol 853 BitmapUsed by:854
Symbol 854 GraphicUses:853Used by:877
Symbol 855 BitmapUsed by:856
Symbol 856 GraphicUses:855Used by:877
Symbol 857 BitmapUsed by:858
Symbol 858 GraphicUses:857Used by:877
Symbol 859 BitmapUsed by:860
Symbol 860 GraphicUses:859Used by:877
Symbol 861 BitmapUsed by:862
Symbol 862 GraphicUses:861Used by:877
Symbol 863 BitmapUsed by:864
Symbol 864 GraphicUses:863Used by:877
Symbol 865 BitmapUsed by:866
Symbol 866 GraphicUses:865Used by:877
Symbol 867 BitmapUsed by:868
Symbol 868 GraphicUses:867Used by:877
Symbol 869 BitmapUsed by:870
Symbol 870 GraphicUses:869Used by:877
Symbol 871 BitmapUsed by:872
Symbol 872 GraphicUses:871Used by:877
Symbol 873 BitmapUsed by:874
Symbol 874 GraphicUses:873Used by:877
Symbol 875 BitmapUsed by:876
Symbol 876 GraphicUses:875Used by:877
Symbol 877 MovieClip {assets_fla.car_12} [assets_fla.car_12]Uses:636 638 640 642 644 646 648 650 652 654 656 658 660 662 664 666 668 670 672 674 676 678 680 682 684 686 688 690 692 694 696 698 700 702 704 706 708 710 712 714 716 718 720 722 724 726 728 730 732 734 736 738 740 742 744 746 748 750 752 754 756 758 760 762 764 766 768 770 772 774 776 778 780 782 784 786 788 790 792 794 796 798 800 802 804 806 808 810 812 814 816 818 820 822 824 826 828 830 832 834 836 838 840 842 844 846 848 850 852 854 856 858 860 862 864 866 868 870 872 874 876Used by:878
Symbol 878 MovieClip {assets.MovieClipCarFocus} [assets.MovieClipCarFocus]Uses:146 877
Symbol 879 BitmapUsed by:880
Symbol 880 GraphicUses:879Used by:1121
Symbol 881 BitmapUsed by:882
Symbol 882 GraphicUses:881Used by:1121
Symbol 883 BitmapUsed by:884
Symbol 884 GraphicUses:883Used by:1121
Symbol 885 BitmapUsed by:886
Symbol 886 GraphicUses:885Used by:1121
Symbol 887 BitmapUsed by:888
Symbol 888 GraphicUses:887Used by:1121
Symbol 889 BitmapUsed by:890
Symbol 890 GraphicUses:889Used by:1121
Symbol 891 BitmapUsed by:892
Symbol 892 GraphicUses:891Used by:1121
Symbol 893 BitmapUsed by:894
Symbol 894 GraphicUses:893Used by:1121
Symbol 895 BitmapUsed by:896
Symbol 896 GraphicUses:895Used by:1121
Symbol 897 BitmapUsed by:898
Symbol 898 GraphicUses:897Used by:1121
Symbol 899 BitmapUsed by:900
Symbol 900 GraphicUses:899Used by:1121
Symbol 901 BitmapUsed by:902
Symbol 902 GraphicUses:901Used by:1121
Symbol 903 BitmapUsed by:904
Symbol 904 GraphicUses:903Used by:1121
Symbol 905 BitmapUsed by:906
Symbol 906 GraphicUses:905Used by:1121
Symbol 907 BitmapUsed by:908
Symbol 908 GraphicUses:907Used by:1121
Symbol 909 BitmapUsed by:910
Symbol 910 GraphicUses:909Used by:1121
Symbol 911 BitmapUsed by:912
Symbol 912 GraphicUses:911Used by:1121
Symbol 913 BitmapUsed by:914
Symbol 914 GraphicUses:913Used by:1121
Symbol 915 BitmapUsed by:916
Symbol 916 GraphicUses:915Used by:1121
Symbol 917 BitmapUsed by:918
Symbol 918 GraphicUses:917Used by:1121
Symbol 919 BitmapUsed by:920
Symbol 920 GraphicUses:919Used by:1121
Symbol 921 BitmapUsed by:922
Symbol 922 GraphicUses:921Used by:1121
Symbol 923 BitmapUsed by:924
Symbol 924 GraphicUses:923Used by:1121
Symbol 925 BitmapUsed by:926
Symbol 926 GraphicUses:925Used by:1121
Symbol 927 BitmapUsed by:928
Symbol 928 GraphicUses:927Used by:1121
Symbol 929 BitmapUsed by:930
Symbol 930 GraphicUses:929Used by:1121
Symbol 931 BitmapUsed by:932
Symbol 932 GraphicUses:931Used by:1121
Symbol 933 BitmapUsed by:934
Symbol 934 GraphicUses:933Used by:1121
Symbol 935 BitmapUsed by:936
Symbol 936 GraphicUses:935Used by:1121
Symbol 937 BitmapUsed by:938
Symbol 938 GraphicUses:937Used by:1121
Symbol 939 BitmapUsed by:940
Symbol 940 GraphicUses:939Used by:1121
Symbol 941 BitmapUsed by:942
Symbol 942 GraphicUses:941Used by:1121
Symbol 943 BitmapUsed by:944
Symbol 944 GraphicUses:943Used by:1121
Symbol 945 BitmapUsed by:946
Symbol 946 GraphicUses:945Used by:1121
Symbol 947 BitmapUsed by:948
Symbol 948 GraphicUses:947Used by:1121
Symbol 949 BitmapUsed by:950
Symbol 950 GraphicUses:949Used by:1121
Symbol 951 BitmapUsed by:952
Symbol 952 GraphicUses:951Used by:1121
Symbol 953 BitmapUsed by:954
Symbol 954 GraphicUses:953Used by:1121
Symbol 955 BitmapUsed by:956
Symbol 956 GraphicUses:955Used by:1121
Symbol 957 BitmapUsed by:958
Symbol 958 GraphicUses:957Used by:1121
Symbol 959 BitmapUsed by:960
Symbol 960 GraphicUses:959Used by:1121
Symbol 961 BitmapUsed by:962
Symbol 962 GraphicUses:961Used by:1121
Symbol 963 BitmapUsed by:964
Symbol 964 GraphicUses:963Used by:1121
Symbol 965 BitmapUsed by:966
Symbol 966 GraphicUses:965Used by:1121
Symbol 967 BitmapUsed by:968
Symbol 968 GraphicUses:967Used by:1121
Symbol 969 BitmapUsed by:970
Symbol 970 GraphicUses:969Used by:1121
Symbol 971 BitmapUsed by:972
Symbol 972 GraphicUses:971Used by:1121
Symbol 973 BitmapUsed by:974
Symbol 974 GraphicUses:973Used by:1121
Symbol 975 BitmapUsed by:976
Symbol 976 GraphicUses:975Used by:1121
Symbol 977 BitmapUsed by:978
Symbol 978 GraphicUses:977Used by:1121
Symbol 979 BitmapUsed by:980
Symbol 980 GraphicUses:979Used by:1121
Symbol 981 BitmapUsed by:982
Symbol 982 GraphicUses:981Used by:1121
Symbol 983 BitmapUsed by:984
Symbol 984 GraphicUses:983Used by:1121
Symbol 985 BitmapUsed by:986
Symbol 986 GraphicUses:985Used by:1121
Symbol 987 BitmapUsed by:988
Symbol 988 GraphicUses:987Used by:1121
Symbol 989 BitmapUsed by:990
Symbol 990 GraphicUses:989Used by:1121
Symbol 991 BitmapUsed by:992
Symbol 992 GraphicUses:991Used by:1121
Symbol 993 BitmapUsed by:994
Symbol 994 GraphicUses:993Used by:1121
Symbol 995 BitmapUsed by:996
Symbol 996 GraphicUses:995Used by:1121
Symbol 997 BitmapUsed by:998
Symbol 998 GraphicUses:997Used by:1121
Symbol 999 BitmapUsed by:1000
Symbol 1000 GraphicUses:999Used by:1121
Symbol 1001 BitmapUsed by:1002
Symbol 1002 GraphicUses:1001Used by:1121
Symbol 1003 BitmapUsed by:1004
Symbol 1004 GraphicUses:1003Used by:1121
Symbol 1005 BitmapUsed by:1006
Symbol 1006 GraphicUses:1005Used by:1121
Symbol 1007 BitmapUsed by:1008
Symbol 1008 GraphicUses:1007Used by:1121
Symbol 1009 BitmapUsed by:1010
Symbol 1010 GraphicUses:1009Used by:1121
Symbol 1011 BitmapUsed by:1012
Symbol 1012 GraphicUses:1011Used by:1121
Symbol 1013 BitmapUsed by:1014
Symbol 1014 GraphicUses:1013Used by:1121
Symbol 1015 BitmapUsed by:1016
Symbol 1016 GraphicUses:1015Used by:1121
Symbol 1017 BitmapUsed by:1018
Symbol 1018 GraphicUses:1017Used by:1121
Symbol 1019 BitmapUsed by:1020
Symbol 1020 GraphicUses:1019Used by:1121
Symbol 1021 BitmapUsed by:1022
Symbol 1022 GraphicUses:1021Used by:1121
Symbol 1023 BitmapUsed by:1024
Symbol 1024 GraphicUses:1023Used by:1121
Symbol 1025 BitmapUsed by:1026
Symbol 1026 GraphicUses:1025Used by:1121
Symbol 1027 BitmapUsed by:1028
Symbol 1028 GraphicUses:1027Used by:1121
Symbol 1029 BitmapUsed by:1030
Symbol 1030 GraphicUses:1029Used by:1121
Symbol 1031 BitmapUsed by:1032
Symbol 1032 GraphicUses:1031Used by:1121
Symbol 1033 BitmapUsed by:1034
Symbol 1034 GraphicUses:1033Used by:1121
Symbol 1035 BitmapUsed by:1036
Symbol 1036 GraphicUses:1035Used by:1121
Symbol 1037 BitmapUsed by:1038
Symbol 1038 GraphicUses:1037Used by:1121
Symbol 1039 BitmapUsed by:1040
Symbol 1040 GraphicUses:1039Used by:1121
Symbol 1041 BitmapUsed by:1042
Symbol 1042 GraphicUses:1041Used by:1121
Symbol 1043 BitmapUsed by:1044
Symbol 1044 GraphicUses:1043Used by:1121
Symbol 1045 BitmapUsed by:1046
Symbol 1046 GraphicUses:1045Used by:1121
Symbol 1047 BitmapUsed by:1048
Symbol 1048 GraphicUses:1047Used by:1121
Symbol 1049 BitmapUsed by:1050
Symbol 1050 GraphicUses:1049Used by:1121
Symbol 1051 BitmapUsed by:1052
Symbol 1052 GraphicUses:1051Used by:1121
Symbol 1053 BitmapUsed by:1054
Symbol 1054 GraphicUses:1053Used by:1121
Symbol 1055 BitmapUsed by:1056
Symbol 1056 GraphicUses:1055Used by:1121
Symbol 1057 BitmapUsed by:1058
Symbol 1058 GraphicUses:1057Used by:1121
Symbol 1059 BitmapUsed by:1060
Symbol 1060 GraphicUses:1059Used by:1121
Symbol 1061 BitmapUsed by:1062
Symbol 1062 GraphicUses:1061Used by:1121
Symbol 1063 BitmapUsed by:1064
Symbol 1064 GraphicUses:1063Used by:1121
Symbol 1065 BitmapUsed by:1066
Symbol 1066 GraphicUses:1065Used by:1121
Symbol 1067 BitmapUsed by:1068
Symbol 1068 GraphicUses:1067Used by:1121
Symbol 1069 BitmapUsed by:1070
Symbol 1070 GraphicUses:1069Used by:1121
Symbol 1071 BitmapUsed by:1072
Symbol 1072 GraphicUses:1071Used by:1121
Symbol 1073 BitmapUsed by:1074
Symbol 1074 GraphicUses:1073Used by:1121
Symbol 1075 BitmapUsed by:1076
Symbol 1076 GraphicUses:1075Used by:1121
Symbol 1077 BitmapUsed by:1078
Symbol 1078 GraphicUses:1077Used by:1121
Symbol 1079 BitmapUsed by:1080
Symbol 1080 GraphicUses:1079Used by:1121
Symbol 1081 BitmapUsed by:1082
Symbol 1082 GraphicUses:1081Used by:1121
Symbol 1083 BitmapUsed by:1084
Symbol 1084 GraphicUses:1083Used by:1121
Symbol 1085 BitmapUsed by:1086
Symbol 1086 GraphicUses:1085Used by:1121
Symbol 1087 BitmapUsed by:1088
Symbol 1088 GraphicUses:1087Used by:1121
Symbol 1089 BitmapUsed by:1090
Symbol 1090 GraphicUses:1089Used by:1121
Symbol 1091 BitmapUsed by:1092
Symbol 1092 GraphicUses:1091Used by:1121
Symbol 1093 BitmapUsed by:1094
Symbol 1094 GraphicUses:1093Used by:1121
Symbol 1095 BitmapUsed by:1096
Symbol 1096 GraphicUses:1095Used by:1121
Symbol 1097 BitmapUsed by:1098
Symbol 1098 GraphicUses:1097Used by:1121
Symbol 1099 BitmapUsed by:1100
Symbol 1100 GraphicUses:1099Used by:1121
Symbol 1101 BitmapUsed by:1102
Symbol 1102 GraphicUses:1101Used by:1121
Symbol 1103 BitmapUsed by:1104
Symbol 1104 GraphicUses:1103Used by:1121
Symbol 1105 BitmapUsed by:1106
Symbol 1106 GraphicUses:1105Used by:1121
Symbol 1107 BitmapUsed by:1108
Symbol 1108 GraphicUses:1107Used by:1121
Symbol 1109 BitmapUsed by:1110
Symbol 1110 GraphicUses:1109Used by:1121
Symbol 1111 BitmapUsed by:1112
Symbol 1112 GraphicUses:1111Used by:1121
Symbol 1113 BitmapUsed by:1114
Symbol 1114 GraphicUses:1113Used by:1121
Symbol 1115 BitmapUsed by:1116
Symbol 1116 GraphicUses:1115Used by:1121
Symbol 1117 BitmapUsed by:1118
Symbol 1118 GraphicUses:1117Used by:1121
Symbol 1119 BitmapUsed by:1120
Symbol 1120 GraphicUses:1119Used by:1121
Symbol 1121 MovieClip {assets_fla.car_4} [assets_fla.car_4]Uses:880 882 884 886 888 890 892 894 896 898 900 902 904 906 908 910 912 914 916 918 920 922 924 926 928 930 932 934 936 938 940 942 944 946 948 950 952 954 956 958 960 962 964 966 968 970 972 974 976 978 980 982 984 986 988 990 992 994 996 998 1000 1002 1004 1006 1008 1010 1012 1014 1016 1018 1020 1022 1024 1026 1028 1030 1032 1034 1036 1038 1040 1042 1044 1046 1048 1050 1052 1054 1056 1058 1060 1062 1064 1066 1068 1070 1072 1074 1076 1078 1080 1082 1084 1086 1088 1090 1092 1094 1096 1098 1100 1102 1104 1106 1108 1110 1112 1114 1116 1118 1120Used by:1122
Symbol 1122 MovieClip {assets.MovieClipCarImpreza} [assets.MovieClipCarImpreza]Uses:146 1121
Symbol 1123 GraphicUsed by:1124
Symbol 1124 MovieClipUses:1123Used by:1125
Symbol 1125 MovieClip {assets.MovieClipCircleSpin} [assets.MovieClipCircleSpin]Uses:1124Used by:1649
Symbol 1126 FontUsed by:1127 1851 1852 1853 1854 1855 1856 1857
Symbol 1127 EditableTextUses:1126Used by:1130
Symbol 1128 GraphicUsed by:1129
Symbol 1129 MovieClipUses:1128Used by:1130
Symbol 1130 MovieClip {assets.MovieClipMarker} [assets.MovieClipMarker]Uses:1127 1129
Symbol 1131 BitmapUsed by:1132
Symbol 1132 GraphicUses:1131Used by:1373
Symbol 1133 BitmapUsed by:1134
Symbol 1134 GraphicUses:1133Used by:1373
Symbol 1135 BitmapUsed by:1136
Symbol 1136 GraphicUses:1135Used by:1373
Symbol 1137 BitmapUsed by:1138
Symbol 1138 GraphicUses:1137Used by:1373
Symbol 1139 BitmapUsed by:1140
Symbol 1140 GraphicUses:1139Used by:1373
Symbol 1141 BitmapUsed by:1142
Symbol 1142 GraphicUses:1141Used by:1373
Symbol 1143 BitmapUsed by:1144
Symbol 1144 GraphicUses:1143Used by:1373
Symbol 1145 BitmapUsed by:1146
Symbol 1146 GraphicUses:1145Used by:1373
Symbol 1147 BitmapUsed by:1148
Symbol 1148 GraphicUses:1147Used by:1373
Symbol 1149 BitmapUsed by:1150
Symbol 1150 GraphicUses:1149Used by:1373
Symbol 1151 BitmapUsed by:1152
Symbol 1152 GraphicUses:1151Used by:1373
Symbol 1153 BitmapUsed by:1154
Symbol 1154 GraphicUses:1153Used by:1373
Symbol 1155 BitmapUsed by:1156
Symbol 1156 GraphicUses:1155Used by:1373
Symbol 1157 BitmapUsed by:1158
Symbol 1158 GraphicUses:1157Used by:1373
Symbol 1159 BitmapUsed by:1160
Symbol 1160 GraphicUses:1159Used by:1373
Symbol 1161 BitmapUsed by:1162
Symbol 1162 GraphicUses:1161Used by:1373
Symbol 1163 BitmapUsed by:1164
Symbol 1164 GraphicUses:1163Used by:1373
Symbol 1165 BitmapUsed by:1166
Symbol 1166 GraphicUses:1165Used by:1373
Symbol 1167 BitmapUsed by:1168
Symbol 1168 GraphicUses:1167Used by:1373
Symbol 1169 BitmapUsed by:1170
Symbol 1170 GraphicUses:1169Used by:1373
Symbol 1171 BitmapUsed by:1172
Symbol 1172 GraphicUses:1171Used by:1373
Symbol 1173 BitmapUsed by:1174
Symbol 1174 GraphicUses:1173Used by:1373
Symbol 1175 BitmapUsed by:1176
Symbol 1176 GraphicUses:1175Used by:1373
Symbol 1177 BitmapUsed by:1178
Symbol 1178 GraphicUses:1177Used by:1373
Symbol 1179 BitmapUsed by:1180
Symbol 1180 GraphicUses:1179Used by:1373
Symbol 1181 BitmapUsed by:1182
Symbol 1182 GraphicUses:1181Used by:1373
Symbol 1183 BitmapUsed by:1184
Symbol 1184 GraphicUses:1183Used by:1373
Symbol 1185 BitmapUsed by:1186
Symbol 1186 GraphicUses:1185Used by:1373
Symbol 1187 BitmapUsed by:1188
Symbol 1188 GraphicUses:1187Used by:1373
Symbol 1189 BitmapUsed by:1190
Symbol 1190 GraphicUses:1189Used by:1373
Symbol 1191 BitmapUsed by:1192
Symbol 1192 GraphicUses:1191Used by:1373
Symbol 1193 BitmapUsed by:1194
Symbol 1194 GraphicUses:1193Used by:1373
Symbol 1195 BitmapUsed by:1196
Symbol 1196 GraphicUses:1195Used by:1373
Symbol 1197 BitmapUsed by:1198
Symbol 1198 GraphicUses:1197Used by:1373
Symbol 1199 BitmapUsed by:1200
Symbol 1200 GraphicUses:1199Used by:1373
Symbol 1201 BitmapUsed by:1202
Symbol 1202 GraphicUses:1201Used by:1373
Symbol 1203 BitmapUsed by:1204
Symbol 1204 GraphicUses:1203Used by:1373
Symbol 1205 BitmapUsed by:1206
Symbol 1206 GraphicUses:1205Used by:1373
Symbol 1207 BitmapUsed by:1208
Symbol 1208 GraphicUses:1207Used by:1373
Symbol 1209 BitmapUsed by:1210
Symbol 1210 GraphicUses:1209Used by:1373
Symbol 1211 BitmapUsed by:1212
Symbol 1212 GraphicUses:1211Used by:1373
Symbol 1213 BitmapUsed by:1214
Symbol 1214 GraphicUses:1213Used by:1373
Symbol 1215 BitmapUsed by:1216
Symbol 1216 GraphicUses:1215Used by:1373
Symbol 1217 BitmapUsed by:1218
Symbol 1218 GraphicUses:1217Used by:1373
Symbol 1219 BitmapUsed by:1220
Symbol 1220 GraphicUses:1219Used by:1373
Symbol 1221 BitmapUsed by:1222
Symbol 1222 GraphicUses:1221Used by:1373
Symbol 1223 BitmapUsed by:1224
Symbol 1224 GraphicUses:1223Used by:1373
Symbol 1225 BitmapUsed by:1226
Symbol 1226 GraphicUses:1225Used by:1373
Symbol 1227 BitmapUsed by:1228
Symbol 1228 GraphicUses:1227Used by:1373
Symbol 1229 BitmapUsed by:1230
Symbol 1230 GraphicUses:1229Used by:1373
Symbol 1231 BitmapUsed by:1232
Symbol 1232 GraphicUses:1231Used by:1373
Symbol 1233 BitmapUsed by:1234
Symbol 1234 GraphicUses:1233Used by:1373
Symbol 1235 BitmapUsed by:1236
Symbol 1236 GraphicUses:1235Used by:1373
Symbol 1237 BitmapUsed by:1238
Symbol 1238 GraphicUses:1237Used by:1373
Symbol 1239 BitmapUsed by:1240
Symbol 1240 GraphicUses:1239Used by:1373
Symbol 1241 BitmapUsed by:1242
Symbol 1242 GraphicUses:1241Used by:1373
Symbol 1243 BitmapUsed by:1244
Symbol 1244 GraphicUses:1243Used by:1373
Symbol 1245 BitmapUsed by:1246
Symbol 1246 GraphicUses:1245Used by:1373
Symbol 1247 BitmapUsed by:1248
Symbol 1248 GraphicUses:1247Used by:1373
Symbol 1249 BitmapUsed by:1250
Symbol 1250 GraphicUses:1249Used by:1373
Symbol 1251 BitmapUsed by:1252
Symbol 1252 GraphicUses:1251Used by:1373
Symbol 1253 BitmapUsed by:1254
Symbol 1254 GraphicUses:1253Used by:1373
Symbol 1255 BitmapUsed by:1256
Symbol 1256 GraphicUses:1255Used by:1373
Symbol 1257 BitmapUsed by:1258
Symbol 1258 GraphicUses:1257Used by:1373
Symbol 1259 BitmapUsed by:1260
Symbol 1260 GraphicUses:1259Used by:1373
Symbol 1261 BitmapUsed by:1262
Symbol 1262 GraphicUses:1261Used by:1373
Symbol 1263 BitmapUsed by:1264
Symbol 1264 GraphicUses:1263Used by:1373
Symbol 1265 BitmapUsed by:1266
Symbol 1266 GraphicUses:1265Used by:1373
Symbol 1267 BitmapUsed by:1268
Symbol 1268 GraphicUses:1267Used by:1373
Symbol 1269 BitmapUsed by:1270
Symbol 1270 GraphicUses:1269Used by:1373
Symbol 1271 BitmapUsed by:1272
Symbol 1272 GraphicUses:1271Used by:1373
Symbol 1273 BitmapUsed by:1274
Symbol 1274 GraphicUses:1273Used by:1373
Symbol 1275 BitmapUsed by:1276
Symbol 1276 GraphicUses:1275Used by:1373
Symbol 1277 BitmapUsed by:1278
Symbol 1278 GraphicUses:1277Used by:1373
Symbol 1279 BitmapUsed by:1280
Symbol 1280 GraphicUses:1279Used by:1373
Symbol 1281 BitmapUsed by:1282
Symbol 1282 GraphicUses:1281Used by:1373
Symbol 1283 BitmapUsed by:1284
Symbol 1284 GraphicUses:1283Used by:1373
Symbol 1285 BitmapUsed by:1286
Symbol 1286 GraphicUses:1285Used by:1373
Symbol 1287 BitmapUsed by:1288
Symbol 1288 GraphicUses:1287Used by:1373
Symbol 1289 BitmapUsed by:1290
Symbol 1290 GraphicUses:1289Used by:1373
Symbol 1291 BitmapUsed by:1292
Symbol 1292 GraphicUses:1291Used by:1373
Symbol 1293 BitmapUsed by:1294
Symbol 1294 GraphicUses:1293Used by:1373
Symbol 1295 BitmapUsed by:1296
Symbol 1296 GraphicUses:1295Used by:1373
Symbol 1297 BitmapUsed by:1298
Symbol 1298 GraphicUses:1297Used by:1373
Symbol 1299 BitmapUsed by:1300
Symbol 1300 GraphicUses:1299Used by:1373
Symbol 1301 BitmapUsed by:1302
Symbol 1302 GraphicUses:1301Used by:1373
Symbol 1303 BitmapUsed by:1304
Symbol 1304 GraphicUses:1303Used by:1373
Symbol 1305 BitmapUsed by:1306
Symbol 1306 GraphicUses:1305Used by:1373
Symbol 1307 BitmapUsed by:1308
Symbol 1308 GraphicUses:1307Used by:1373
Symbol 1309 BitmapUsed by:1310
Symbol 1310 GraphicUses:1309Used by:1373
Symbol 1311 BitmapUsed by:1312
Symbol 1312 GraphicUses:1311Used by:1373
Symbol 1313 BitmapUsed by:1314
Symbol 1314 GraphicUses:1313Used by:1373
Symbol 1315 BitmapUsed by:1316
Symbol 1316 GraphicUses:1315Used by:1373
Symbol 1317 BitmapUsed by:1318
Symbol 1318 GraphicUses:1317Used by:1373
Symbol 1319 BitmapUsed by:1320
Symbol 1320 GraphicUses:1319Used by:1373
Symbol 1321 BitmapUsed by:1322
Symbol 1322 GraphicUses:1321Used by:1373
Symbol 1323 BitmapUsed by:1324
Symbol 1324 GraphicUses:1323Used by:1373
Symbol 1325 BitmapUsed by:1326
Symbol 1326 GraphicUses:1325Used by:1373
Symbol 1327 BitmapUsed by:1328
Symbol 1328 GraphicUses:1327Used by:1373
Symbol 1329 BitmapUsed by:1330
Symbol 1330 GraphicUses:1329Used by:1373
Symbol 1331 BitmapUsed by:1332
Symbol 1332 GraphicUses:1331Used by:1373
Symbol 1333 BitmapUsed by:1334
Symbol 1334 GraphicUses:1333Used by:1373
Symbol 1335 BitmapUsed by:1336
Symbol 1336 GraphicUses:1335Used by:1373
Symbol 1337 BitmapUsed by:1338
Symbol 1338 GraphicUses:1337Used by:1373
Symbol 1339 BitmapUsed by:1340
Symbol 1340 GraphicUses:1339Used by:1373
Symbol 1341 BitmapUsed by:1342
Symbol 1342 GraphicUses:1341Used by:1373
Symbol 1343 BitmapUsed by:1344
Symbol 1344 GraphicUses:1343Used by:1373
Symbol 1345 BitmapUsed by:1346
Symbol 1346 GraphicUses:1345Used by:1373
Symbol 1347 BitmapUsed by:1348
Symbol 1348 GraphicUses:1347Used by:1373
Symbol 1349 BitmapUsed by:1350
Symbol 1350 GraphicUses:1349Used by:1373
Symbol 1351 BitmapUsed by:1352
Symbol 1352 GraphicUses:1351Used by:1373
Symbol 1353 BitmapUsed by:1354
Symbol 1354 GraphicUses:1353Used by:1373
Symbol 1355 BitmapUsed by:1356
Symbol 1356 GraphicUses:1355Used by:1373
Symbol 1357 BitmapUsed by:1358
Symbol 1358 GraphicUses:1357Used by:1373
Symbol 1359 BitmapUsed by:1360
Symbol 1360 GraphicUses:1359Used by:1373
Symbol 1361 BitmapUsed by:1362
Symbol 1362 GraphicUses:1361Used by:1373
Symbol 1363 BitmapUsed by:1364
Symbol 1364 GraphicUses:1363Used by:1373
Symbol 1365 BitmapUsed by:1366
Symbol 1366 GraphicUses:1365Used by:1373
Symbol 1367 BitmapUsed by:1368
Symbol 1368 GraphicUses:1367Used by:1373
Symbol 1369 BitmapUsed by:1370
Symbol 1370 GraphicUses:1369Used by:1373
Symbol 1371 BitmapUsed by:1372
Symbol 1372 GraphicUses:1371Used by:1373
Symbol 1373 MovieClipUses:1132 1134 1136 1138 1140 1142 1144 1146 1148 1150 1152 1154 1156 1158 1160 1162 1164 1166 1168 1170 1172 1174 1176 1178 1180 1182 1184 1186 1188 1190 1192 1194 1196 1198 1200 1202 1204 1206 1208 1210 1212 1214 1216 1218 1220 1222 1224 1226 1228 1230 1232 1234 1236 1238 1240 1242 1244 1246 1248 1250 1252 1254 1256 1258 1260 1262 1264 1266 1268 1270 1272 1274 1276 1278 1280 1282 1284 1286 1288 1290 1292 1294 1296 1298 1300 1302 1304 1306 1308 1310 1312 1314 1316 1318 1320 1322 1324 1326 1328 1330 1332 1334 1336 1338 1340 1342 1344 1346 1348 1350 1352 1354 1356 1358 1360 1362 1364 1366 1368 1370 1372Used by:1374
Symbol 1374 MovieClip {assets.MovieClipCarSkoda} [assets.MovieClipCarSkoda]Uses:146 1373
Symbol 1375 BitmapUsed by:1376
Symbol 1376 GraphicUses:1375Used by:1617
Symbol 1377 BitmapUsed by:1378
Symbol 1378 GraphicUses:1377Used by:1617
Symbol 1379 BitmapUsed by:1380
Symbol 1380 GraphicUses:1379Used by:1617
Symbol 1381 BitmapUsed by:1382
Symbol 1382 GraphicUses:1381Used by:1617
Symbol 1383 BitmapUsed by:1384
Symbol 1384 GraphicUses:1383Used by:1617
Symbol 1385 BitmapUsed by:1386
Symbol 1386 GraphicUses:1385Used by:1617
Symbol 1387 BitmapUsed by:1388
Symbol 1388 GraphicUses:1387Used by:1617
Symbol 1389 BitmapUsed by:1390
Symbol 1390 GraphicUses:1389Used by:1617
Symbol 1391 BitmapUsed by:1392
Symbol 1392 GraphicUses:1391Used by:1617
Symbol 1393 BitmapUsed by:1394
Symbol 1394 GraphicUses:1393Used by:1617
Symbol 1395 BitmapUsed by:1396
Symbol 1396 GraphicUses:1395Used by:1617
Symbol 1397 BitmapUsed by:1398
Symbol 1398 GraphicUses:1397Used by:1617
Symbol 1399 BitmapUsed by:1400
Symbol 1400 GraphicUses:1399Used by:1617
Symbol 1401 BitmapUsed by:1402
Symbol 1402 GraphicUses:1401Used by:1617
Symbol 1403 BitmapUsed by:1404
Symbol 1404 GraphicUses:1403Used by:1617
Symbol 1405 BitmapUsed by:1406
Symbol 1406 GraphicUses:1405Used by:1617
Symbol 1407 BitmapUsed by:1408
Symbol 1408 GraphicUses:1407Used by:1617
Symbol 1409 BitmapUsed by:1410
Symbol 1410 GraphicUses:1409Used by:1617
Symbol 1411 BitmapUsed by:1412
Symbol 1412 GraphicUses:1411Used by:1617
Symbol 1413 BitmapUsed by:1414
Symbol 1414 GraphicUses:1413Used by:1617
Symbol 1415 BitmapUsed by:1416
Symbol 1416 GraphicUses:1415Used by:1617
Symbol 1417 BitmapUsed by:1418
Symbol 1418 GraphicUses:1417Used by:1617
Symbol 1419 BitmapUsed by:1420
Symbol 1420 GraphicUses:1419Used by:1617
Symbol 1421 BitmapUsed by:1422
Symbol 1422 GraphicUses:1421Used by:1617
Symbol 1423 BitmapUsed by:1424
Symbol 1424 GraphicUses:1423Used by:1617
Symbol 1425 BitmapUsed by:1426
Symbol 1426 GraphicUses:1425Used by:1617
Symbol 1427 BitmapUsed by:1428
Symbol 1428 GraphicUses:1427Used by:1617
Symbol 1429 BitmapUsed by:1430
Symbol 1430 GraphicUses:1429Used by:1617
Symbol 1431 BitmapUsed by:1432
Symbol 1432 GraphicUses:1431Used by:1617
Symbol 1433 BitmapUsed by:1434
Symbol 1434 GraphicUses:1433Used by:1617
Symbol 1435 BitmapUsed by:1436
Symbol 1436 GraphicUses:1435Used by:1617
Symbol 1437 BitmapUsed by:1438
Symbol 1438 GraphicUses:1437Used by:1617
Symbol 1439 BitmapUsed by:1440
Symbol 1440 GraphicUses:1439Used by:1617
Symbol 1441 BitmapUsed by:1442
Symbol 1442 GraphicUses:1441Used by:1617
Symbol 1443 BitmapUsed by:1444
Symbol 1444 GraphicUses:1443Used by:1617
Symbol 1445 BitmapUsed by:1446
Symbol 1446 GraphicUses:1445Used by:1617
Symbol 1447 BitmapUsed by:1448
Symbol 1448 GraphicUses:1447Used by:1617
Symbol 1449 BitmapUsed by:1450
Symbol 1450 GraphicUses:1449Used by:1617
Symbol 1451 BitmapUsed by:1452
Symbol 1452 GraphicUses:1451Used by:1617
Symbol 1453 BitmapUsed by:1454
Symbol 1454 GraphicUses:1453Used by:1617
Symbol 1455 BitmapUsed by:1456
Symbol 1456 GraphicUses:1455Used by:1617
Symbol 1457 BitmapUsed by:1458
Symbol 1458 GraphicUses:1457Used by:1617
Symbol 1459 BitmapUsed by:1460
Symbol 1460 GraphicUses:1459Used by:1617
Symbol 1461 BitmapUsed by:1462
Symbol 1462 GraphicUses:1461Used by:1617
Symbol 1463 BitmapUsed by:1464
Symbol 1464 GraphicUses:1463Used by:1617
Symbol 1465 BitmapUsed by:1466
Symbol 1466 GraphicUses:1465Used by:1617
Symbol 1467 BitmapUsed by:1468
Symbol 1468 GraphicUses:1467Used by:1617
Symbol 1469 BitmapUsed by:1470
Symbol 1470 GraphicUses:1469Used by:1617
Symbol 1471 BitmapUsed by:1472
Symbol 1472 GraphicUses:1471Used by:1617
Symbol 1473 BitmapUsed by:1474
Symbol 1474 GraphicUses:1473Used by:1617
Symbol 1475 BitmapUsed by:1476
Symbol 1476 GraphicUses:1475Used by:1617
Symbol 1477 BitmapUsed by:1478
Symbol 1478 GraphicUses:1477Used by:1617
Symbol 1479 BitmapUsed by:1480
Symbol 1480 GraphicUses:1479Used by:1617
Symbol 1481 BitmapUsed by:1482
Symbol 1482 GraphicUses:1481Used by:1617
Symbol 1483 BitmapUsed by:1484
Symbol 1484 GraphicUses:1483Used by:1617
Symbol 1485 BitmapUsed by:1486
Symbol 1486 GraphicUses:1485Used by:1617
Symbol 1487 BitmapUsed by:1488
Symbol 1488 GraphicUses:1487Used by:1617
Symbol 1489 BitmapUsed by:1490
Symbol 1490 GraphicUses:1489Used by:1617
Symbol 1491 BitmapUsed by:1492
Symbol 1492 GraphicUses:1491Used by:1617
Symbol 1493 BitmapUsed by:1494
Symbol 1494 GraphicUses:1493Used by:1617
Symbol 1495 BitmapUsed by:1496
Symbol 1496 GraphicUses:1495Used by:1617
Symbol 1497 BitmapUsed by:1498
Symbol 1498 GraphicUses:1497Used by:1617
Symbol 1499 BitmapUsed by:1500
Symbol 1500 GraphicUses:1499Used by:1617
Symbol 1501 BitmapUsed by:1502
Symbol 1502 GraphicUses:1501Used by:1617
Symbol 1503 BitmapUsed by:1504
Symbol 1504 GraphicUses:1503Used by:1617
Symbol 1505 BitmapUsed by:1506
Symbol 1506 GraphicUses:1505Used by:1617
Symbol 1507 BitmapUsed by:1508
Symbol 1508 GraphicUses:1507Used by:1617
Symbol 1509 BitmapUsed by:1510
Symbol 1510 GraphicUses:1509Used by:1617
Symbol 1511 BitmapUsed by:1512
Symbol 1512 GraphicUses:1511Used by:1617
Symbol 1513 BitmapUsed by:1514
Symbol 1514 GraphicUses:1513Used by:1617
Symbol 1515 BitmapUsed by:1516
Symbol 1516 GraphicUses:1515Used by:1617
Symbol 1517 BitmapUsed by:1518
Symbol 1518 GraphicUses:1517Used by:1617
Symbol 1519 BitmapUsed by:1520
Symbol 1520 GraphicUses:1519Used by:1617
Symbol 1521 BitmapUsed by:1522
Symbol 1522 GraphicUses:1521Used by:1617
Symbol 1523 BitmapUsed by:1524
Symbol 1524 GraphicUses:1523Used by:1617
Symbol 1525 BitmapUsed by:1526
Symbol 1526 GraphicUses:1525Used by:1617
Symbol 1527 BitmapUsed by:1528
Symbol 1528 GraphicUses:1527Used by:1617
Symbol 1529 BitmapUsed by:1530
Symbol 1530 GraphicUses:1529Used by:1617
Symbol 1531 BitmapUsed by:1532
Symbol 1532 GraphicUses:1531Used by:1617
Symbol 1533 BitmapUsed by:1534
Symbol 1534 GraphicUses:1533Used by:1617
Symbol 1535 BitmapUsed by:1536
Symbol 1536 GraphicUses:1535Used by:1617
Symbol 1537 BitmapUsed by:1538
Symbol 1538 GraphicUses:1537Used by:1617
Symbol 1539 BitmapUsed by:1540
Symbol 1540 GraphicUses:1539Used by:1617
Symbol 1541 BitmapUsed by:1542
Symbol 1542 GraphicUses:1541Used by:1617
Symbol 1543 BitmapUsed by:1544
Symbol 1544 GraphicUses:1543Used by:1617
Symbol 1545 BitmapUsed by:1546
Symbol 1546 GraphicUses:1545Used by:1617
Symbol 1547 BitmapUsed by:1548
Symbol 1548 GraphicUses:1547Used by:1617
Symbol 1549 BitmapUsed by:1550
Symbol 1550 GraphicUses:1549Used by:1617
Symbol 1551 BitmapUsed by:1552
Symbol 1552 GraphicUses:1551Used by:1617
Symbol 1553 BitmapUsed by:1554
Symbol 1554 GraphicUses:1553Used by:1617
Symbol 1555 BitmapUsed by:1556
Symbol 1556 GraphicUses:1555Used by:1617
Symbol 1557 BitmapUsed by:1558
Symbol 1558 GraphicUses:1557Used by:1617
Symbol 1559 BitmapUsed by:1560
Symbol 1560 GraphicUses:1559Used by:1617
Symbol 1561 BitmapUsed by:1562
Symbol 1562 GraphicUses:1561Used by:1617
Symbol 1563 BitmapUsed by:1564
Symbol 1564 GraphicUses:1563Used by:1617
Symbol 1565 BitmapUsed by:1566
Symbol 1566 GraphicUses:1565Used by:1617
Symbol 1567 BitmapUsed by:1568
Symbol 1568 GraphicUses:1567Used by:1617
Symbol 1569 BitmapUsed by:1570
Symbol 1570 GraphicUses:1569Used by:1617
Symbol 1571 BitmapUsed by:1572
Symbol 1572 GraphicUses:1571Used by:1617
Symbol 1573 BitmapUsed by:1574
Symbol 1574 GraphicUses:1573Used by:1617
Symbol 1575 BitmapUsed by:1576
Symbol 1576 GraphicUses:1575Used by:1617
Symbol 1577 BitmapUsed by:1578
Symbol 1578 GraphicUses:1577Used by:1617
Symbol 1579 BitmapUsed by:1580
Symbol 1580 GraphicUses:1579Used by:1617
Symbol 1581 BitmapUsed by:1582
Symbol 1582 GraphicUses:1581Used by:1617
Symbol 1583 BitmapUsed by:1584
Symbol 1584 GraphicUses:1583Used by:1617
Symbol 1585 BitmapUsed by:1586
Symbol 1586 GraphicUses:1585Used by:1617
Symbol 1587 BitmapUsed by:1588
Symbol 1588 GraphicUses:1587Used by:1617
Symbol 1589 BitmapUsed by:1590
Symbol 1590 GraphicUses:1589Used by:1617
Symbol 1591 BitmapUsed by:1592
Symbol 1592 GraphicUses:1591Used by:1617
Symbol 1593 BitmapUsed by:1594
Symbol 1594 GraphicUses:1593Used by:1617
Symbol 1595 BitmapUsed by:1596
Symbol 1596 GraphicUses:1595Used by:1617
Symbol 1597 BitmapUsed by:1598
Symbol 1598 GraphicUses:1597Used by:1617
Symbol 1599 BitmapUsed by:1600
Symbol 1600 GraphicUses:1599Used by:1617
Symbol 1601 BitmapUsed by:1602
Symbol 1602 GraphicUses:1601Used by:1617
Symbol 1603 BitmapUsed by:1604
Symbol 1604 GraphicUses:1603Used by:1617
Symbol 1605 BitmapUsed by:1606
Symbol 1606 GraphicUses:1605Used by:1617
Symbol 1607 BitmapUsed by:1608
Symbol 1608 GraphicUses:1607Used by:1617
Symbol 1609 BitmapUsed by:1610
Symbol 1610 GraphicUses:1609Used by:1617
Symbol 1611 BitmapUsed by:1612
Symbol 1612 GraphicUses:1611Used by:1617
Symbol 1613 BitmapUsed by:1614
Symbol 1614 GraphicUses:1613Used by:1617
Symbol 1615 BitmapUsed by:1616
Symbol 1616 GraphicUses:1615Used by:1617
Symbol 1617 MovieClipUses:1376 1378 1380 1382 1384 1386 1388 1390 1392 1394 1396 1398 1400 1402 1404 1406 1408 1410 1412 1414 1416 1418 1420 1422 1424 1426 1428 1430 1432 1434 1436 1438 1440 1442 1444 1446 1448 1450 1452 1454 1456 1458 1460 1462 1464 1466 1468 1470 1472 1474 1476 1478 1480 1482 1484 1486 1488 1490 1492 1494 1496 1498 1500 1502 1504 1506 1508 1510 1512 1514 1516 1518 1520 1522 1524 1526 1528 1530 1532 1534 1536 1538 1540 1542 1544 1546 1548 1550 1552 1554 1556 1558 1560 1562 1564 1566 1568 1570 1572 1574 1576 1578 1580 1582 1584 1586 1588 1590 1592 1594 1596 1598 1600 1602 1604 1606 1608 1610 1612 1614 1616Used by:1618
Symbol 1618 MovieClip {assets.MovieClipCarLancer} [assets.MovieClipCarLancer]Uses:146 1617
Symbol 1619 GraphicUsed by:1626
Symbol 1620 TextUses:27Used by:1626
Symbol 1621 EditableTextUses:56Used by:1626
Symbol 1622 TextUses:27Used by:1626
Symbol 1623 GraphicUsed by:1624
Symbol 1624 MovieClipUses:1623Used by:1625
Symbol 1625 MovieClip {assets.MovieClipFinish} [assets.MovieClipFinish]Uses:1624Used by:1626
Symbol 1626 MovieClip {assets.MovieClipPanelFinish} [assets.MovieClipPanelFinish]Uses:1619 123 1620 1621 1622 1625
Symbol 1627 GraphicUsed by:1628
Symbol 1628 MovieClipUses:1627Used by:1630
Symbol 1629 GraphicUsed by:1630
Symbol 1630 MovieClip {assets_fla.hud_144} [assets_fla.hud_144]Uses:1628 1629Used by:1642
Symbol 1631 FontUsed by:1632 1633 1653 1654 1655 1656 1657 1660
Symbol 1632 EditableTextUses:1631Used by:1642
Symbol 1633 TextUses:1631Used by:1642
Symbol 1634 FontUsed by:1635 1636 1637 1638 1640 1653 1654 1655 1656 1657 1660
Symbol 1635 EditableTextUses:1634Used by:1639 1641
Symbol 1636 TextUses:1634Used by:1639 1641
Symbol 1637 EditableTextUses:1634Used by:1639 1641
Symbol 1638 TextUses:1634Used by:1639
Symbol 1639 MovieClip {assets_fla.hud_146} [assets_fla.hud_146]Uses:1635 1636 1637 1638Used by:1642
Symbol 1640 TextUses:1634Used by:1641
Symbol 1641 MovieClip {assets_fla.hud_147} [assets_fla.hud_147]Uses:1635 1636 1637 1640Used by:1642
Symbol 1642 MovieClip {assets.MovieClipHud} [assets.MovieClipHud]Uses:1630 1632 1633 1639 1641
Symbol 1643 GraphicUsed by:1646
Symbol 1644 TextUses:30Used by:1646
Symbol 1645 EditableTextUses:54Used by:1646
Symbol 1646 MovieClip {assets.MovieClipPanelStart} [assets.MovieClipPanelStart]Uses:1643 1644 1645
Symbol 1647 GraphicUsed by:1648
Symbol 1648 MovieClipUses:1647Used by:1649
Symbol 1649 MovieClip {assets.MovieClipNitro} [assets.MovieClipNitro]Uses:1125 1648
Symbol 1650 EditableTextUses:56Used by:1652
Symbol 1651 EditableTextUses:56Used by:1652
Symbol 1652 MovieClip {assets.MovieClipPanelFinishTime} [assets.MovieClipPanelFinishTime]Uses:1650 1651
Symbol 1653 EditableTextUses:1631 1634Used by:1661
Symbol 1654 EditableTextUses:1631 1634Used by:1661
Symbol 1655 EditableTextUses:1631 1634Used by:1661
Symbol 1656 EditableTextUses:1631 1634Used by:1659
Symbol 1657 EditableTextUses:1631 1634Used by:1659
Symbol 1658 GraphicUsed by:1659
Symbol 1659 ButtonUses:1656 1657 1658Used by:1661
Symbol 1660 EditableTextUses:1631 1634Used by:1661
Symbol 1661 MovieClip {assets.MovieClipControls} [assets.MovieClipControls]Uses:1653 1654 1655 1659 1660 60
Symbol 1662 GraphicUsed by:1743 1795
Symbol 1663 BitmapUsed by:1665
Symbol 1664 BitmapUsed by:1665
Symbol 1665 GraphicUses:1663 1664Used by:1743 1795
Symbol 1666 BitmapUsed by:1667 1686 1705 1724
Symbol 1667 GraphicUses:1666Used by:1743
Symbol 1668 BitmapUsed by:1670
Symbol 1669 BitmapUsed by:1670
Symbol 1670 GraphicUses:1668 1669Used by:1743 1795
Symbol 1671 BitmapUsed by:1673
Symbol 1672 BitmapUsed by:1673
Symbol 1673 GraphicUses:1671 1672Used by:1743 1795
Symbol 1674 BitmapUsed by:1676
Symbol 1675 BitmapUsed by:1676
Symbol 1676 GraphicUses:1674 1675Used by:1743 1795
Symbol 1677 BitmapUsed by:1679
Symbol 1678 BitmapUsed by:1679
Symbol 1679 GraphicUses:1677 1678Used by:1743 1795
Symbol 1680 BitmapUsed by:1682
Symbol 1681 BitmapUsed by:1682
Symbol 1682 GraphicUses:1680 1681Used by:1743 1795
Symbol 1683 BitmapUsed by:1685
Symbol 1684 BitmapUsed by:1685
Symbol 1685 GraphicUses:1683 1684Used by:1743 1795
Symbol 1686 GraphicUses:1666Used by:1743
Symbol 1687 BitmapUsed by:1689
Symbol 1688 BitmapUsed by:1689
Symbol 1689 GraphicUses:1687 1688Used by:1743 1795
Symbol 1690 BitmapUsed by:1692
Symbol 1691 BitmapUsed by:1692
Symbol 1692 GraphicUses:1690 1691Used by:1743 1795
Symbol 1693 BitmapUsed by:1695
Symbol 1694 BitmapUsed by:1695
Symbol 1695 GraphicUses:1693 1694Used by:1743 1795
Symbol 1696 BitmapUsed by:1698
Symbol 1697 BitmapUsed by:1698
Symbol 1698 GraphicUses:1696 1697Used by:1743 1795
Symbol 1699 BitmapUsed by:1701
Symbol 1700 BitmapUsed by:1701
Symbol 1701 GraphicUses:1699 1700Used by:1743 1795
Symbol 1702 BitmapUsed by:1704
Symbol 1703 BitmapUsed by:1704
Symbol 1704 GraphicUses:1702 1703Used by:1743 1795
Symbol 1705 GraphicUses:1666Used by:1743
Symbol 1706 BitmapUsed by:1708
Symbol 1707 BitmapUsed by:1708
Symbol 1708 GraphicUses:1706 1707Used by:1743 1795
Symbol 1709 BitmapUsed by:1711
Symbol 1710 BitmapUsed by:1711
Symbol 1711 GraphicUses:1709 1710Used by:1743 1795
Symbol 1712 BitmapUsed by:1714
Symbol 1713 BitmapUsed by:1714
Symbol 1714 GraphicUses:1712 1713Used by:1743 1795
Symbol 1715 BitmapUsed by:1717
Symbol 1716 BitmapUsed by:1717
Symbol 1717 GraphicUses:1715 1716Used by:1743 1795
Symbol 1718 BitmapUsed by:1720
Symbol 1719 BitmapUsed by:1720
Symbol 1720 GraphicUses:1718 1719Used by:1743 1795
Symbol 1721 BitmapUsed by:1723
Symbol 1722 BitmapUsed by:1723
Symbol 1723 GraphicUses:1721 1722Used by:1743 1795
Symbol 1724 GraphicUses:1666Used by:1743
Symbol 1725 BitmapUsed by:1727
Symbol 1726 BitmapUsed by:1727
Symbol 1727 GraphicUses:1725 1726Used by:1743 1795
Symbol 1728 BitmapUsed by:1730
Symbol 1729 BitmapUsed by:1730
Symbol 1730 GraphicUses:1728 1729Used by:1743 1795
Symbol 1731 BitmapUsed by:1733
Symbol 1732 BitmapUsed by:1733
Symbol 1733 GraphicUses:1731 1732Used by:1743 1795
Symbol 1734 BitmapUsed by:1736
Symbol 1735 BitmapUsed by:1736
Symbol 1736 GraphicUses:1734 1735Used by:1743 1795
Symbol 1737 BitmapUsed by:1739
Symbol 1738 BitmapUsed by:1739
Symbol 1739 GraphicUses:1737 1738Used by:1743 1795
Symbol 1740 BitmapUsed by:1742
Symbol 1741 BitmapUsed by:1742
Symbol 1742 GraphicUses:1740 1741Used by:1743 1795
Symbol 1743 MovieClip {assets.MovieClipObstacleFinish} [assets.MovieClipObstacleFinish]Uses:1662 1665 1667 1670 1673 1676 1679 1682 1685 1686 1689 1692 1695 1698 1701 1704 1705 1708 1711 1714 1717 1720 1723 1724 1727 1730 1733 1736 1739 1742
Symbol 1744 BitmapUsed by:1745
Symbol 1745 GraphicUses:1744Used by:1746
Symbol 1746 MovieClip {assets.MovieClipObstacleBush_1} [assets.MovieClipObstacleBush_1]Uses:1745
Symbol 1747 BitmapUsed by:1748
Symbol 1748 GraphicUses:1747Used by:1749
Symbol 1749 MovieClip {assets.MovieClipObstaclePond} [assets.MovieClipObstaclePond]Uses:1748
Symbol 1750 BitmapUsed by:1751
Symbol 1751 GraphicUses:1750Used by:1752
Symbol 1752 MovieClip {assets.MovieClipObstacleRock_5} [assets.MovieClipObstacleRock_5]Uses:1751
Symbol 1753 BitmapUsed by:1754
Symbol 1754 GraphicUses:1753Used by:1755
Symbol 1755 MovieClip {assets.MovieClipObstacleTree_5} [assets.MovieClipObstacleTree_5]Uses:1754
Symbol 1756 BitmapUsed by:1757
Symbol 1757 GraphicUses:1756Used by:1758
Symbol 1758 MovieClip {assets.MovieClipObstacleRock_8} [assets.MovieClipObstacleRock_8]Uses:1757
Symbol 1759 BitmapUsed by:1760
Symbol 1760 GraphicUses:1759Used by:1761
Symbol 1761 MovieClip {assets.MovieClipObstacleCone} [assets.MovieClipObstacleCone]Uses:1760
Symbol 1762 BitmapUsed by:1763
Symbol 1763 GraphicUses:1762Used by:1764
Symbol 1764 MovieClip {assets.MovieClipObstacleTree_2} [assets.MovieClipObstacleTree_2]Uses:1763
Symbol 1765 BitmapUsed by:1766
Symbol 1766 GraphicUses:1765Used by:1767
Symbol 1767 MovieClip {assets.MovieClipObstacleRock_7} [assets.MovieClipObstacleRock_7]Uses:1766
Symbol 1768 BitmapUsed by:1769
Symbol 1769 GraphicUses:1768Used by:1770
Symbol 1770 MovieClip {assets.MovieClipObstacleTree_3} [assets.MovieClipObstacleTree_3]Uses:1769
Symbol 1771 BitmapUsed by:1772
Symbol 1772 GraphicUses:1771Used by:1773
Symbol 1773 MovieClip {assets.MovieClipObstacleRock_6} [assets.MovieClipObstacleRock_6]Uses:1772
Symbol 1774 BitmapUsed by:1775
Symbol 1775 GraphicUses:1774Used by:1776
Symbol 1776 MovieClip {assets.MovieClipObstacleTree_4} [assets.MovieClipObstacleTree_4]Uses:1775
Symbol 1777 BitmapUsed by:1778
Symbol 1778 GraphicUses:1777Used by:1779
Symbol 1779 MovieClip {assets.MovieClipObstacleTyres} [assets.MovieClipObstacleTyres]Uses:1778
Symbol 1780 BitmapUsed by:1781
Symbol 1781 GraphicUses:1780Used by:1782
Symbol 1782 MovieClip {assets.MovieClipObstacleRock_1} [assets.MovieClipObstacleRock_1]Uses:1781
Symbol 1783 BitmapUsed by:1784
Symbol 1784 GraphicUses:1783Used by:1785
Symbol 1785 MovieClip {assets.MovieClipObstacleTreeSnow1} [assets.MovieClipObstacleTreeSnow1]Uses:1784
Symbol 1786 BitmapUsed by:1787
Symbol 1787 GraphicUses:1786Used by:1788
Symbol 1788 MovieClip {assets.MovieClipObstacleRock_9} [assets.MovieClipObstacleRock_9]Uses:1787
Symbol 1789 BitmapUsed by:1790
Symbol 1790 GraphicUses:1789Used by:1791
Symbol 1791 MovieClip {assets.MovieClipObstacleRock_2} [assets.MovieClipObstacleRock_2]Uses:1790
Symbol 1792 BitmapUsed by:1793
Symbol 1793 GraphicUses:1792Used by:1794
Symbol 1794 MovieClip {assets.MovieClipObstacleRock_4} [assets.MovieClipObstacleRock_4]Uses:1793
Symbol 1795 MovieClip {assets.MovieClipObstacleCheckpoint} [assets.MovieClipObstacleCheckpoint]Uses:1662 1665 1670 1673 1676 1679 1682 1685 1689 1692 1695 1698 1701 1704 1708 1711 1714 1717 1720 1723 1727 1730 1733 1736 1739 1742
Symbol 1796 BitmapUsed by:1797
Symbol 1797 GraphicUses:1796Used by:1798
Symbol 1798 MovieClip {assets.MovieClipObstacleRock_3} [assets.MovieClipObstacleRock_3]Uses:1797
Symbol 1799 BitmapUsed by:1800
Symbol 1800 GraphicUses:1799Used by:1801
Symbol 1801 MovieClip {assets.MovieClipObstacleBush_2} [assets.MovieClipObstacleBush_2]Uses:1800
Symbol 1802 BitmapUsed by:1803
Symbol 1803 GraphicUses:1802Used by:1804
Symbol 1804 MovieClip {assets.MovieClipObstacleTree_6} [assets.MovieClipObstacleTree_6]Uses:1803
Symbol 1805 BitmapUsed by:1806
Symbol 1806 GraphicUses:1805Used by:1807
Symbol 1807 MovieClip {assets.MovieClipObstacleTree_1} [assets.MovieClipObstacleTree_1]Uses:1806
Symbol 1808 GraphicUsed by:1809
Symbol 1809 MovieClipUses:1808Used by:1831 1849 1871 1912 1913
Symbol 1810 MovieClip {fl.core.ComponentShim} [fl.core.ComponentShim]Used by:1831 1849 1871 1888 1911 1912 1913
Symbol 1811 GraphicUsed by:1812
Symbol 1812 MovieClip {Button_disabledSkin} [Button_disabledSkin]Uses:1811Used by:1831
Symbol 1813 GraphicUsed by:1814
Symbol 1814 MovieClip {Button_downSkin} [Button_downSkin]Uses:1813Used by:1831
Symbol 1815 GraphicUsed by:1816
Symbol 1816 MovieClip {Button_emphasizedSkin} [Button_emphasizedSkin]Uses:1815Used by:1831
Symbol 1817 GraphicUsed by:1818
Symbol 1818 MovieClip {Button_overSkin} [Button_overSkin]Uses:1817Used by:1831
Symbol 1819 GraphicUsed by:1820
Symbol 1820 MovieClip {Button_selectedDisabledSkin} [Button_selectedDisabledSkin]Uses:1819Used by:1831
Symbol 1821 GraphicUsed by:1822
Symbol 1822 MovieClip {Button_selectedDownSkin} [Button_selectedDownSkin]Uses:1821Used by:1831
Symbol 1823 GraphicUsed by:1824
Symbol 1824 MovieClip {Button_selectedOverSkin} [Button_selectedOverSkin]Uses:1823Used by:1831
Symbol 1825 GraphicUsed by:1826
Symbol 1826 MovieClip {Button_selectedUpSkin} [Button_selectedUpSkin]Uses:1825Used by:1831
Symbol 1827 GraphicUsed by:1828
Symbol 1828 MovieClip {Button_upSkin} [Button_upSkin]Uses:1827Used by:1831
Symbol 1829 GraphicUsed by:1830
Symbol 1830 MovieClip {focusRectSkin} [focusRectSkin]Uses:1829Used by:1831 1849 1871 1911 1912 1913
Symbol 1831 MovieClip {fl.controls.Button} [fl.controls.Button]Uses:1809 1810 1812 1814 1816 1818 1820 1822 1824 1826 1828 1830Used by:1914
Symbol 1832 GraphicUsed by:1834
Symbol 1833 GraphicUsed by:1834 1836 1838 1840 1842 1844 1846 1848 1892 1893 1896 1899 1901 1904
Symbol 1834 MovieClip {NumericStepperDownArrow_disabledSkin} [NumericStepperDownArrow_disabledSkin]Uses:1832 1833Used by:1849
Symbol 1835 GraphicUsed by:1836
Symbol 1836 MovieClip {NumericStepperDownArrow_downSkin} [NumericStepperDownArrow_downSkin]Uses:1835 1833Used by:1849
Symbol 1837 GraphicUsed by:1838
Symbol 1838 MovieClip {NumericStepperDownArrow_overSkin} [NumericStepperDownArrow_overSkin]Uses:1837 1833Used by:1849
Symbol 1839 GraphicUsed by:1840
Symbol 1840 MovieClip {NumericStepperDownArrow_upSkin} [NumericStepperDownArrow_upSkin]Uses:1839 1833Used by:1849
Symbol 1841 GraphicUsed by:1842
Symbol 1842 MovieClip {NumericStepperUpArrow_disabledSkin} [NumericStepperUpArrow_disabledSkin]Uses:1841 1833Used by:1849
Symbol 1843 GraphicUsed by:1844
Symbol 1844 MovieClip {NumericStepperUpArrow_downSkin} [NumericStepperUpArrow_downSkin]Uses:1843 1833Used by:1849
Symbol 1845 GraphicUsed by:1846
Symbol 1846 MovieClip {NumericStepperUpArrow_overSkin} [NumericStepperUpArrow_overSkin]Uses:1845 1833Used by:1849
Symbol 1847 GraphicUsed by:1848
Symbol 1848 MovieClip {NumericStepperUpArrow_upSkin} [NumericStepperUpArrow_upSkin]Uses:1847 1833Used by:1849
Symbol 1849 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]Uses:1809 1810 1830 1834 1836 1838 1840 1842 1844 1846 1848Used by:1914
Symbol 1850 TextUsed by:1914
Symbol 1851 TextUses:1126Used by:1914
Symbol 1852 TextUses:1126Used by:1914
Symbol 1853 TextUses:1126Used by:1914
Symbol 1854 TextUses:1126Used by:1914
Symbol 1855 TextUses:1126Used by:1914
Symbol 1856 EditableTextUses:1126Used by:1914
Symbol 1857 TextUses:1126Used by:1914
Symbol 1858 TextUsed by:1914
Symbol 1859 GraphicUsed by:1860
Symbol 1860 MovieClip {ComboBox_upSkin} [ComboBox_upSkin]Uses:1859Used by:1913
Symbol 1861 GraphicUsed by:1862
Symbol 1862 MovieClip {ComboBox_disabledSkin} [ComboBox_disabledSkin]Uses:1861Used by:1913
Symbol 1863 GraphicUsed by:1864
Symbol 1864 MovieClip {ComboBox_overSkin} [ComboBox_overSkin]Uses:1863Used by:1913
Symbol 1865 GraphicUsed by:1866
Symbol 1866 MovieClip {ComboBox_downSkin} [ComboBox_downSkin]Uses:1865Used by:1913
Symbol 1867 GraphicUsed by:1868
Symbol 1868 MovieClip {TextInput_disabledSkin} [TextInput_disabledSkin]Uses:1867Used by:1871
Symbol 1869 GraphicUsed by:1870
Symbol 1870 MovieClip {TextInput_upSkin} [TextInput_upSkin]Uses:1869Used by:1871
Symbol 1871 MovieClip {fl.controls.TextInput} [fl.controls.TextInput]Uses:1809 1810 1868 1870 1830Used by:1913
Symbol 1872 GraphicUsed by:1873
Symbol 1873 MovieClip {List_skin} [List_skin]Uses:1872Used by:1912
Symbol 1874 GraphicUsed by:1875
Symbol 1875 MovieClip {CellRenderer_upSkin} [CellRenderer_upSkin]Uses:1874Used by:1888
Symbol 1876 GraphicUsed by:1877
Symbol 1877 MovieClip {CellRenderer_disabledSkin} [CellRenderer_disabledSkin]Uses:1876Used by:1888
Symbol 1878 GraphicUsed by:1879 1880
Symbol 1879 MovieClip {CellRenderer_downSkin} [CellRenderer_downSkin]Uses:1878Used by:1888
Symbol 1880 MovieClip {CellRenderer_overSkin} [CellRenderer_overSkin]Uses:1878Used by:1888
Symbol 1881 GraphicUsed by:1882
Symbol 1882 MovieClip {CellRenderer_selectedDisabledSkin} [CellRenderer_selectedDisabledSkin]Uses:1881Used by:1888
Symbol 1883 GraphicUsed by:1884 1885
Symbol 1884 MovieClip {CellRenderer_selectedDownSkin} [CellRenderer_selectedDownSkin]Uses:1883Used by:1888
Symbol 1885 MovieClip {CellRenderer_selectedOverSkin} [CellRenderer_selectedOverSkin]Uses:1883Used by:1888
Symbol 1886 GraphicUsed by:1887
Symbol 1887 MovieClip {CellRenderer_selectedUpSkin} [CellRenderer_selectedUpSkin]Uses:1886Used by:1888
Symbol 1888 MovieClip {fl.controls.listClasses.CellRenderer} [fl.controls.listClasses.CellRenderer]Uses:1875 1810 1877 1879 1880 1882 1884 1885 1887Used by:1912
Symbol 1889 GraphicUsed by:1890
Symbol 1890 MovieClip {ScrollTrack_skin} [ScrollTrack_skin]Uses:1889Used by:1911
Symbol 1891 GraphicUsed by:1892 1893 1896 1899
Symbol 1892 MovieClip {ScrollArrowUp_downSkin} [ScrollArrowUp_downSkin]Uses:1891 1833Used by:1911
Symbol 1893 MovieClip {ScrollArrowDown_downSkin} [ScrollArrowDown_downSkin]Uses:1891 1833Used by:1911
Symbol 1894 GraphicUsed by:1895
Symbol 1895 MovieClip {ScrollThumb_downSkin} [ScrollThumb_downSkin]Uses:1894Used by:1911
Symbol 1896 MovieClip {ScrollArrowDown_overSkin} [ScrollArrowDown_overSkin]Uses:1891 1833Used by:1911
Symbol 1897 GraphicUsed by:1898
Symbol 1898 MovieClip {ScrollThumb_overSkin} [ScrollThumb_overSkin]Uses:1897Used by:1911
Symbol 1899 MovieClip {ScrollArrowUp_overSkin} [ScrollArrowUp_overSkin]Uses:1891 1833Used by:1911
Symbol 1900 GraphicUsed by:1901 1904
Symbol 1901 MovieClip {ScrollArrowUp_upSkin} [ScrollArrowUp_upSkin]Uses:1900 1833Used by:1911
Symbol 1902 GraphicUsed by:1903
Symbol 1903 MovieClip {ScrollThumb_upSkin} [ScrollThumb_upSkin]Uses:1902Used by:1911
Symbol 1904 MovieClip {ScrollArrowDown_upSkin} [ScrollArrowDown_upSkin]Uses:1900 1833Used by:1911
Symbol 1905 GraphicUsed by:1906
Symbol 1906 MovieClip {ScrollArrowDown_disabledSkin} [ScrollArrowDown_disabledSkin]Uses:1905Used by:1911
Symbol 1907 GraphicUsed by:1908
Symbol 1908 MovieClip {ScrollArrowUp_disabledSkin} [ScrollArrowUp_disabledSkin]Uses:1907Used by:1911
Symbol 1909 GraphicUsed by:1910
Symbol 1910 MovieClip {ScrollBar_thumbIcon} [ScrollBar_thumbIcon]Uses:1909Used by:1911
Symbol 1911 MovieClip {fl.controls.ScrollBar} [fl.controls.ScrollBar]Uses:1890 1810 1830 1892 1893 1895 1896 1898 1899 1901 1903 1904 1906 1908 1910Used by:1912
Symbol 1912 MovieClip {fl.controls.List} [fl.controls.List]Uses:1809 1810 1873 1888 1830 1911Used by:1913
Symbol 1913 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]Uses:1809 1810 1830 1860 1862 1864 1866 1871 1912Used by:1914 1941
Symbol 1914 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug]Uses:1850 1849 1831 1851 1852 1853 1854 1855 1856 1857 1858 1913
Symbol 1915 TextUses:56Used by:1941
Symbol 1916 FontUsed by:1917
Symbol 1917 TextUses:1916Used by:1941
Symbol 1918 FontUsed by:1919
Symbol 1919 TextUses:1918Used by:1941
Symbol 1920 GraphicUsed by:1926
Symbol 1921 GraphicUsed by:1922
Symbol 1922 MovieClipUses:1921Used by:1926
Symbol 1923 GraphicUsed by:1926
Symbol 1924 FontUsed by:1925
Symbol 1925 EditableTextUses:1924Used by:1926
Symbol 1926 MovieClip {assets_fla.scoreboard_196} [assets_fla.scoreboard_196]Uses:1920 1922 1923 1925Used by:1941
Symbol 1927 GraphicUsed by:1928 1934
Symbol 1928 MovieClipUses:1927Used by:1934
Symbol 1929 GraphicUsed by:1930 1931
Symbol 1930 MovieClipUses:1929Used by:1931
Symbol 1931 MovieClipUses:1929 1930Used by:1932
Symbol 1932 MovieClipUses:1931Used by:1934
Symbol 1933 GraphicUsed by:1934
Symbol 1934 MovieClip {assets_fla.scoreboard_198} [assets_fla.scoreboard_198]Uses:1927 1928 1932 1933Used by:1941
Symbol 1935 TextUses:56Used by:1941
Symbol 1936 TextUses:37Used by:1940
Symbol 1937 GraphicUsed by:1940
Symbol 1938 TextUses:37Used by:1940
Symbol 1939 GraphicUsed by:1940
Symbol 1940 ButtonUses:1936 1937 1938 1939Used by:1941
Symbol 1941 MovieClip {assets.MovieClipScoreboard} [assets.MovieClipScoreboard]Uses:1915 1917 1919 1926 1913 1934 1935 1940 123
Symbol 1942 Sound {assets.SoundCarLoopIdle} [assets.SoundCarLoopIdle]
Symbol 1943 Sound {assets.SoundCarEngine03} [assets.SoundCarEngine03]
Symbol 1944 Sound {assets.SoundCarCrashCar} [assets.SoundCarCrashCar]
Symbol 1945 Sound {assets.SoundCarEngine00} [assets.SoundCarEngine00]
Symbol 1946 Sound {assets.SoundCarLoopHigh} [assets.SoundCarLoopHigh]
Symbol 1947 Sound {assets.SoundCarEngine05} [assets.SoundCarEngine05]
Symbol 1948 Sound {assets.SoundCarEngine01} [assets.SoundCarEngine01]
Symbol 1949 Sound {assets.SoundCarLoopMedium} [assets.SoundCarLoopMedium]
Symbol 1950 Sound {assets.SoundCarLoopLow} [assets.SoundCarLoopLow]
Symbol 1951 Sound {assets.SoundCarEngine04} [assets.SoundCarEngine04]
Symbol 1952 Sound {assets.SoundCarSkid} [assets.SoundCarSkid]
Symbol 1953 Sound {assets.SoundCarEngine02} [assets.SoundCarEngine02]
Symbol 1954 Sound {assets.SoundCarCrashSolid} [assets.SoundCarCrashSolid]
Symbol 1955 Bitmap {assets.BitmapTilesTarmacAlpha} [assets.BitmapTilesTarmacAlpha]
Symbol 1956 Bitmap {assets.BitmapTilesSnowAlpha} [assets.BitmapTilesSnowAlpha]
Symbol 1957 Bitmap {assets.BitmapTilesTarmacTexture} [assets.BitmapTilesTarmacTexture]
Symbol 1958 Bitmap {assets.BitmapTilesSnowTexture} [assets.BitmapTilesSnowTexture]
Symbol 1959 Bitmap {assets.BitmapTilesDesertAlpha} [assets.BitmapTilesDesertAlpha]
Symbol 1960 Bitmap {assets.BitmapTilesDesertTexture} [assets.BitmapTilesDesertTexture]
Symbol 1961 Bitmap {assets.BitmapTilesBackground} [assets.BitmapTilesBackground]
Symbol 1962 GraphicUsed by:1963
Symbol 1963 MovieClipUses:1962Used by:1964
Symbol 1964 MovieClip {assets.MovieClipCountGo} [assets.MovieClipCountGo]Uses:1963
Symbol 1965 GraphicUsed by:1966
Symbol 1966 MovieClipUses:1965Used by:1967
Symbol 1967 MovieClip {assets.MovieClipCount01} [assets.MovieClipCount01]Uses:1966
Symbol 1968 GraphicUsed by:1969
Symbol 1969 MovieClipUses:1968Used by:1970
Symbol 1970 MovieClip {assets.MovieClipCount02} [assets.MovieClipCount02]Uses:1969
Symbol 1971 GraphicUsed by:1972
Symbol 1972 MovieClipUses:1971Used by:1973
Symbol 1973 MovieClip {assets.MovieClipCount03} [assets.MovieClipCount03]Uses:1972
Symbol 1974 Bitmap {assets.BitmapDataTilesMinimap} [assets.BitmapDataTilesMinimap]
Symbol 1975 GraphicUsed by:1979
Symbol 1976 FontUsed by:1977 1978
Symbol 1977 EditableTextUses:1976Used by:1979
Symbol 1978 EditableTextUses:1976Used by:1979
Symbol 1979 MovieClip {assets.MovieClipLapDisplay} [assets.MovieClipLapDisplay]Uses:1975 1977 1978
Symbol 1980 BitmapUsed by:1981
Symbol 1981 GraphicUses:1980Used by:1982
Symbol 1982 MovieClip {assets.MovieClipEffectLight} [assets.MovieClipEffectLight]Uses:1981
Symbol 1983 GraphicUsed by:1984
Symbol 1984 MovieClip {assets.MovieClipEffectBlack} [assets.MovieClipEffectBlack]Uses:1983
Symbol 1985 BitmapUsed by:1986
Symbol 1986 GraphicUses:1985Used by:1987
Symbol 1987 MovieClip {assets.MovieClipEffectClouds} [assets.MovieClipEffectClouds]Uses:1986
Symbol 1988 BitmapUsed by:1989
Symbol 1989 GraphicUses:1988Used by:1990 1991
Symbol 1990 MovieClip {assets.MovieClipEffectDustSnow} [assets.MovieClipEffectDustSnow]Uses:1989
Symbol 1991 MovieClip {assets.MovieClipEffectDustDesert} [assets.MovieClipEffectDustDesert]Uses:1989
Symbol 1992 GraphicUsed by:1999
Symbol 1993 GraphicUsed by:1994
Symbol 1994 MovieClipUses:1993Used by:1999
Symbol 1995 GraphicUsed by:1996
Symbol 1996 MovieClipUses:1995Used by:1999
Symbol 1997 GraphicUsed by:1998
Symbol 1998 MovieClipUses:1997Used by:1999
Symbol 1999 MovieClip {assets.MovieClipDebugObstacle} [assets.MovieClipDebugObstacle]Uses:1992 1994 1996 1998
Symbol 2000 GraphicUsed by:2002
Symbol 2001 GraphicUsed by:2002
Symbol 2002 MovieClip {assets.MovieClipMinimapMarker} [assets.MovieClipMinimapMarker]Uses:2000 2001

Instance Names

"guide"Symbol 8 MovieClip {assets_fla.mc_bomb_17} [assets_fla.mc_bomb_17] Frame 1Symbol 7 MovieClip
"label"Symbol 61 MovieClip {assets_fla.credits_189} [assets_fla.credits_189] Frame 1Symbol 58 EditableText
"btn"Symbol 61 MovieClip {assets_fla.credits_189} [assets_fla.credits_189] Frame 1Symbol 60 Button
"btnMusic"Symbol 62 MovieClip {assets.MovieClipHelp} [assets.MovieClipHelp] Frame 1Symbol 61 MovieClip {assets_fla.credits_189} [assets_fla.credits_189]
"btnSounds"Symbol 62 MovieClip {assets.MovieClipHelp} [assets.MovieClipHelp] Frame 1Symbol 61 MovieClip {assets_fla.credits_189} [assets_fla.credits_189]
"btnSelect"Symbol 87 MovieClip {assets.MovieClipCars} [assets.MovieClipCars] Frame 1Symbol 66 Button
"btnBack"Symbol 87 MovieClip {assets.MovieClipCars} [assets.MovieClipCars] Frame 1Symbol 70 Button
"btnLeft"Symbol 87 MovieClip {assets.MovieClipCars} [assets.MovieClipCars] Frame 1Symbol 76 Button
"btnRight"Symbol 87 MovieClip {assets.MovieClipCars} [assets.MovieClipCars] Frame 1Symbol 80 Button
"nameText"Symbol 87 MovieClip {assets.MovieClipCars} [assets.MovieClipCars] Frame 1Symbol 81 EditableText
"lock"Symbol 87 MovieClip {assets.MovieClipCars} [assets.MovieClipCars] Frame 1Symbol 84 MovieClip
"descriptionText"Symbol 87 MovieClip {assets.MovieClipCars} [assets.MovieClipCars] Frame 1Symbol 85 EditableText
"lock"Symbol 97 MovieClip {assets.MovieClipStandingsItem} [assets.MovieClipStandingsItem] Frame 1Symbol 84 MovieClip
"trackText"Symbol 97 MovieClip {assets.MovieClipStandingsItem} [assets.MovieClipStandingsItem] Frame 1Symbol 94 EditableText
"positionText"Symbol 97 MovieClip {assets.MovieClipStandingsItem} [assets.MovieClipStandingsItem] Frame 1Symbol 95 EditableText
"timeText"Symbol 97 MovieClip {assets.MovieClipStandingsItem} [assets.MovieClipStandingsItem] Frame 1Symbol 96 EditableText
"btnCancel"Symbol 108 MovieClip {assets.MovieClipSubmit} [assets.MovieClipSubmit] Frame 1Symbol 102 Button
"playerText"Symbol 110 MovieClip {assets.MovieClipStandingsPlayer} [assets.MovieClipStandingsPlayer] Frame 1Symbol 109 EditableText
"pointsText"Symbol 113 MovieClip {assets.MovieClipStandingsPointsFirst} [assets.MovieClipStandingsPointsFirst] Frame 1Symbol 112 EditableText
"pointsText"Symbol 115 MovieClip {assets.MovieClipStandingsPointsSecond} [assets.MovieClipStandingsPointsSecond] Frame 1Symbol 114 EditableText
"pointsText"Symbol 117 MovieClip {assets.MovieClipStandingsPointsDefault} [assets.MovieClipStandingsPointsDefault] Frame 1Symbol 116 EditableText
"btnContinue"Symbol 134 MovieClip {assets.MovieClipStandings} [assets.MovieClipStandings] Frame 1Symbol 123 Button
"positionText"Symbol 134 MovieClip {assets.MovieClipStandings} [assets.MovieClipStandings] Frame 1Symbol 125 EditableText
"btnSubmit"Symbol 134 MovieClip {assets.MovieClipStandings} [assets.MovieClipStandings] Frame 1Symbol 129 Button
"leaderboard"Symbol 134 MovieClip {assets.MovieClipStandings} [assets.MovieClipStandings] Frame 1Symbol 133 MovieClip
"dataText"Symbol 136 MovieClip {assets.MovieClipStandingsTotals} [assets.MovieClipStandingsTotals] Frame 1Symbol 135 EditableText
"pointsText"Symbol 138 MovieClip {assets.MovieClipStandingsPointsThird} [assets.MovieClipStandingsPointsThird] Frame 1Symbol 137 EditableText
"btnLeft"Symbol 143 MovieClip {assets.MovieClipTracks} [assets.MovieClipTracks] Frame 1Symbol 76 Button
"btnRight"Symbol 143 MovieClip {assets.MovieClipTracks} [assets.MovieClipTracks] Frame 1Symbol 80 Button
"lock"Symbol 143 MovieClip {assets.MovieClipTracks} [assets.MovieClipTracks] Frame 1Symbol 84 MovieClip
"btnSelect"Symbol 143 MovieClip {assets.MovieClipTracks} [assets.MovieClipTracks] Frame 1Symbol 66 Button
"btnBack"Symbol 143 MovieClip {assets.MovieClipTracks} [assets.MovieClipTracks] Frame 1Symbol 70 Button
"descriptionText"Symbol 143 MovieClip {assets.MovieClipTracks} [assets.MovieClipTracks] Frame 1Symbol 85 EditableText
"nameText"Symbol 143 MovieClip {assets.MovieClipTracks} [assets.MovieClipTracks] Frame 1Symbol 140 EditableText
"tail"Symbol 146 MovieClip {assets_fla.car_2} [assets_fla.car_2] Frame 1Symbol 145 MovieClip
"tail"Symbol 390 MovieClip {assets.MovieClipCarAlfa} [assets.MovieClipCarAlfa] Frame 1Symbol 146 MovieClip {assets_fla.car_2} [assets_fla.car_2]
"body"Symbol 390 MovieClip {assets.MovieClipCarAlfa} [assets.MovieClipCarAlfa] Frame 1Symbol 389 MovieClip {assets_fla.car_10} [assets_fla.car_10]
"tail"Symbol 634 MovieClip {assets.MovieClipCarCelica} [assets.MovieClipCarCelica] Frame 1Symbol 146 MovieClip {assets_fla.car_2} [assets_fla.car_2]
"body"Symbol 634 MovieClip {assets.MovieClipCarCelica} [assets.MovieClipCarCelica] Frame 1Symbol 633 MovieClip {assets_fla.car_14} [assets_fla.car_14]
"tail"Symbol 878 MovieClip {assets.MovieClipCarFocus} [assets.MovieClipCarFocus] Frame 1Symbol 146 MovieClip {assets_fla.car_2} [assets_fla.car_2]
"body"Symbol 878 MovieClip {assets.MovieClipCarFocus} [assets.MovieClipCarFocus] Frame 1Symbol 877 MovieClip {assets_fla.car_12} [assets_fla.car_12]
"tail"Symbol 1122 MovieClip {assets.MovieClipCarImpreza} [assets.MovieClipCarImpreza] Frame 1Symbol 146 MovieClip {assets_fla.car_2} [assets_fla.car_2]
"body"Symbol 1122 MovieClip {assets.MovieClipCarImpreza} [assets.MovieClipCarImpreza] Frame 1Symbol 1121 MovieClip {assets_fla.car_4} [assets_fla.car_4]
"textID"Symbol 1130 MovieClip {assets.MovieClipMarker} [assets.MovieClipMarker] Frame 1Symbol 1127 EditableText
"marker"Symbol 1130 MovieClip {assets.MovieClipMarker} [assets.MovieClipMarker] Frame 1Symbol 1129 MovieClip
"tail"Symbol 1374 MovieClip {assets.MovieClipCarSkoda} [assets.MovieClipCarSkoda] Frame 1Symbol 146 MovieClip {assets_fla.car_2} [assets_fla.car_2]
"body"Symbol 1374 MovieClip {assets.MovieClipCarSkoda} [assets.MovieClipCarSkoda] Frame 1Symbol 1373 MovieClip
"tail"Symbol 1618 MovieClip {assets.MovieClipCarLancer} [assets.MovieClipCarLancer] Frame 1Symbol 146 MovieClip {assets_fla.car_2} [assets_fla.car_2]
"body"Symbol 1618 MovieClip {assets.MovieClipCarLancer} [assets.MovieClipCarLancer] Frame 1Symbol 1617 MovieClip
"btnContinue"Symbol 1626 MovieClip {assets.MovieClipPanelFinish} [assets.MovieClipPanelFinish] Frame 1Symbol 123 Button
"positionText"Symbol 1626 MovieClip {assets.MovieClipPanelFinish} [assets.MovieClipPanelFinish] Frame 1Symbol 1621 EditableText
"dial"Symbol 1630 MovieClip {assets_fla.hud_144} [assets_fla.hud_144] Frame 1Symbol 1628 MovieClip
"fieldText"Symbol 1639 MovieClip {assets_fla.hud_146} [assets_fla.hud_146] Frame 1Symbol 1635 EditableText
"placeText"Symbol 1639 MovieClip {assets_fla.hud_146} [assets_fla.hud_146] Frame 1Symbol 1637 EditableText
"lapsText"Symbol 1641 MovieClip {assets_fla.hud_147} [assets_fla.hud_147] Frame 1Symbol 1635 EditableText
"lapText"Symbol 1641 MovieClip {assets_fla.hud_147} [assets_fla.hud_147] Frame 1Symbol 1637 EditableText
"speedo"Symbol 1642 MovieClip {assets.MovieClipHud} [assets.MovieClipHud] Frame 1Symbol 1630 MovieClip {assets_fla.hud_144} [assets_fla.hud_144]
"timerText"Symbol 1642 MovieClip {assets.MovieClipHud} [assets.MovieClipHud] Frame 1Symbol 1632 EditableText
"position"Symbol 1642 MovieClip {assets.MovieClipHud} [assets.MovieClipHud] Frame 1Symbol 1639 MovieClip {assets_fla.hud_146} [assets_fla.hud_146]
"laps"Symbol 1642 MovieClip {assets.MovieClipHud} [assets.MovieClipHud] Frame 1Symbol 1641 MovieClip {assets_fla.hud_147} [assets_fla.hud_147]
"descriptionText"Symbol 1646 MovieClip {assets.MovieClipPanelStart} [assets.MovieClipPanelStart] Frame 1Symbol 1645 EditableText
"idText"Symbol 1652 MovieClip {assets.MovieClipPanelFinishTime} [assets.MovieClipPanelFinishTime] Frame 1Symbol 1650 EditableText
"timeText"Symbol 1652 MovieClip {assets.MovieClipPanelFinishTime} [assets.MovieClipPanelFinishTime] Frame 1Symbol 1651 EditableText
"textSound"Symbol 1661 MovieClip {assets.MovieClipControls} [assets.MovieClipControls] Frame 1Symbol 1653 EditableText
"textPause"Symbol 1661 MovieClip {assets.MovieClipControls} [assets.MovieClipControls] Frame 1Symbol 1654 EditableText
"textMusic"Symbol 1661 MovieClip {assets.MovieClipControls} [assets.MovieClipControls] Frame 1Symbol 1655 EditableText
"btnBlastone"Symbol 1661 MovieClip {assets.MovieClipControls} [assets.MovieClipControls] Frame 1Symbol 1659 Button
"textExit"Symbol 1661 MovieClip {assets.MovieClipControls} [assets.MovieClipControls] Frame 1Symbol 1660 EditableText
"btnMusic"Symbol 1661 MovieClip {assets.MovieClipControls} [assets.MovieClipControls] Frame 1Symbol 60 Button
"btnSound"Symbol 1661 MovieClip {assets.MovieClipControls} [assets.MovieClipControls] Frame 1Symbol 60 Button
"btnPause"Symbol 1661 MovieClip {assets.MovieClipControls} [assets.MovieClipControls] Frame 1Symbol 60 Button
"btnExit"Symbol 1661 MovieClip {assets.MovieClipControls} [assets.MovieClipControls] Frame 1Symbol 60 Button
"stepAcceleration"Symbol 1914 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1849 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"stepDampingLinear"Symbol 1914 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1849 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"stepDampingAngular"Symbol 1914 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1849 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"stepGripFront"Symbol 1914 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1849 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"stepSteeringInc"Symbol 1914 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1849 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"btnShowBox2d"Symbol 1914 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1831 MovieClip {fl.controls.Button} [fl.controls.Button]
"stepGripRear"Symbol 1914 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1849 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"stepSteeringRange"Symbol 1914 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1849 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"btnWaypointsShow"Symbol 1914 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1831 MovieClip {fl.controls.Button} [fl.controls.Button]
"textCarX"Symbol 1914 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1856 EditableText
"textCarY"Symbol 1914 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1856 EditableText
"textCarAngle"Symbol 1914 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1856 EditableText
"btnWaypointsTrace"Symbol 1914 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1831 MovieClip {fl.controls.Button} [fl.controls.Button]
"btnObstaclesShow"Symbol 1914 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1831 MovieClip {fl.controls.Button} [fl.controls.Button]
"btnObstaclesTrace"Symbol 1914 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1831 MovieClip {fl.controls.Button} [fl.controls.Button]
"btnShowLines"Symbol 1914 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1831 MovieClip {fl.controls.Button} [fl.controls.Button]
"stepMultiplier"Symbol 1914 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1849 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"btnObstaclesAdd"Symbol 1914 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1831 MovieClip {fl.controls.Button} [fl.controls.Button]
"comboObstacles"Symbol 1914 MovieClip {assets.MovieClipDebug} [assets.MovieClipDebug] Frame 1Symbol 1913 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"hover"Symbol 1926 MovieClip {assets_fla.scoreboard_196} [assets_fla.scoreboard_196] Frame 1Symbol 1922 MovieClip
"textInput"Symbol 1926 MovieClip {assets_fla.scoreboard_196} [assets_fla.scoreboard_196] Frame 1Symbol 1925 EditableText
"bar"Symbol 1934 MovieClip {assets_fla.scoreboard_198} [assets_fla.scoreboard_198] Frame 1Symbol 1928 MovieClip
"inputName"Symbol 1941 MovieClip {assets.MovieClipScoreboard} [assets.MovieClipScoreboard] Frame 1Symbol 1926 MovieClip {assets_fla.scoreboard_196} [assets_fla.scoreboard_196]
"inputEmail"Symbol 1941 MovieClip {assets.MovieClipScoreboard} [assets.MovieClipScoreboard] Frame 1Symbol 1926 MovieClip {assets_fla.scoreboard_196} [assets_fla.scoreboard_196]
"inputCountries"Symbol 1941 MovieClip {assets.MovieClipScoreboard} [assets.MovieClipScoreboard] Frame 1Symbol 1913 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"preloaderBar"Symbol 1941 MovieClip {assets.MovieClipScoreboard} [assets.MovieClipScoreboard] Frame 1Symbol 1934 MovieClip {assets_fla.scoreboard_198} [assets_fla.scoreboard_198]
"btnSubmit"Symbol 1941 MovieClip {assets.MovieClipScoreboard} [assets.MovieClipScoreboard] Frame 1Symbol 1940 Button
"btnContinue"Symbol 1941 MovieClip {assets.MovieClipScoreboard} [assets.MovieClipScoreboard] Frame 1Symbol 123 Button
"lapText"Symbol 1979 MovieClip {assets.MovieClipLapDisplay} [assets.MovieClipLapDisplay] Frame 1Symbol 1977 EditableText
"timeText"Symbol 1979 MovieClip {assets.MovieClipLapDisplay} [assets.MovieClipLapDisplay] Frame 1Symbol 1978 EditableText
"btnRotateCW"Symbol 1999 MovieClip {assets.MovieClipDebugObstacle} [assets.MovieClipDebugObstacle] Frame 1Symbol 1994 MovieClip
"btnDelete"Symbol 1999 MovieClip {assets.MovieClipDebugObstacle} [assets.MovieClipDebugObstacle] Frame 1Symbol 1996 MovieClip
"btnDrag"Symbol 1999 MovieClip {assets.MovieClipDebugObstacle} [assets.MovieClipDebugObstacle] Frame 1Symbol 1998 MovieClip
"btnRotateCCW"Symbol 1999 MovieClip {assets.MovieClipDebugObstacle} [assets.MovieClipDebugObstacle] Frame 1Symbol 1994 MovieClip

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1459 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 29 as "assets.buttonBlastone"
ExportAssets (56)Timeline Frame 1Symbol 33 as "assets.MovieClipGetReady"
ExportAssets (56)Timeline Frame 1Symbol 36 as "assets.MovieClipTitle"
ExportAssets (56)Timeline Frame 1Symbol 42 as "assets.ButtonScores"
ExportAssets (56)Timeline Frame 1Symbol 47 as "assets.ButtonPlay"
ExportAssets (56)Timeline Frame 1Symbol 48 as "assets.BitmapFlag"
ExportAssets (56)Timeline Frame 1Symbol 53 as "assets.ButtonMoreGames"
ExportAssets (56)Timeline Frame 1Symbol 62 as "assets.MovieClipHelp"
ExportAssets (56)Timeline Frame 1Symbol 87 as "assets.MovieClipCars"
ExportAssets (56)Timeline Frame 1Symbol 8 as "assets_fla.mc_bomb_17"
ExportAssets (56)Timeline Frame 1Symbol 88 as "assets.TrackExtreme"
ExportAssets (56)Timeline Frame 1Symbol 89 as "assets.SoundBoost"
ExportAssets (56)Timeline Frame 1Symbol 90 as "assets.TrackBurn"
ExportAssets (56)Timeline Frame 1Symbol 91 as "assets.SoundCash"
ExportAssets (56)Timeline Frame 1Symbol 92 as "assets.SoundClick"
ExportAssets (56)Timeline Frame 1Symbol 97 as "assets.MovieClipStandingsItem"
ExportAssets (56)Timeline Frame 1Symbol 108 as "assets.MovieClipSubmit"
ExportAssets (56)Timeline Frame 1Symbol 110 as "assets.MovieClipStandingsPlayer"
ExportAssets (56)Timeline Frame 1Symbol 111 as "assets.MovieClipStandingsTrackText"
ExportAssets (56)Timeline Frame 1Symbol 113 as "assets.MovieClipStandingsPointsFirst"
ExportAssets (56)Timeline Frame 1Symbol 115 as "assets.MovieClipStandingsPointsSecond"
ExportAssets (56)Timeline Frame 1Symbol 117 as "assets.MovieClipStandingsPointsDefault"
ExportAssets (56)Timeline Frame 1Symbol 119 as "assets.MovieClipStandingsTotal"
ExportAssets (56)Timeline Frame 1Symbol 134 as "assets.MovieClipStandings"
ExportAssets (56)Timeline Frame 1Symbol 136 as "assets.MovieClipStandingsTotals"
ExportAssets (56)Timeline Frame 1Symbol 138 as "assets.MovieClipStandingsPointsThird"
ExportAssets (56)Timeline Frame 1Symbol 139 as "assets.BitmapDataTilesPreview"
ExportAssets (56)Timeline Frame 1Symbol 143 as "assets.MovieClipTracks"
ExportAssets (56)Timeline Frame 1Symbol 390 as "assets.MovieClipCarAlfa"
ExportAssets (56)Timeline Frame 1Symbol 634 as "assets.MovieClipCarCelica"
ExportAssets (56)Timeline Frame 1Symbol 878 as "assets.MovieClipCarFocus"
ExportAssets (56)Timeline Frame 1Symbol 1122 as "assets.MovieClipCarImpreza"
ExportAssets (56)Timeline Frame 1Symbol 1125 as "assets.MovieClipCircleSpin"
ExportAssets (56)Timeline Frame 1Symbol 1130 as "assets.MovieClipMarker"
ExportAssets (56)Timeline Frame 1Symbol 1374 as "assets.MovieClipCarSkoda"
ExportAssets (56)Timeline Frame 1Symbol 1618 as "assets.MovieClipCarLancer"
ExportAssets (56)Timeline Frame 1Symbol 61 as "assets_fla.credits_189"
ExportAssets (56)Timeline Frame 1Symbol 1626 as "assets.MovieClipPanelFinish"
ExportAssets (56)Timeline Frame 1Symbol 1642 as "assets.MovieClipHud"
ExportAssets (56)Timeline Frame 1Symbol 1646 as "assets.MovieClipPanelStart"
ExportAssets (56)Timeline Frame 1Symbol 1649 as "assets.MovieClipNitro"
ExportAssets (56)Timeline Frame 1Symbol 1652 as "assets.MovieClipPanelFinishTime"
ExportAssets (56)Timeline Frame 1Symbol 1661 as "assets.MovieClipControls"
ExportAssets (56)Timeline Frame 1Symbol 1743 as "assets.MovieClipObstacleFinish"
ExportAssets (56)Timeline Frame 1Symbol 1746 as "assets.MovieClipObstacleBush_1"
ExportAssets (56)Timeline Frame 1Symbol 1749 as "assets.MovieClipObstaclePond"
ExportAssets (56)Timeline Frame 1Symbol 1752 as "assets.MovieClipObstacleRock_5"
ExportAssets (56)Timeline Frame 1Symbol 1755 as "assets.MovieClipObstacleTree_5"
ExportAssets (56)Timeline Frame 1Symbol 1758 as "assets.MovieClipObstacleRock_8"
ExportAssets (56)Timeline Frame 1Symbol 1761 as "assets.MovieClipObstacleCone"
ExportAssets (56)Timeline Frame 1Symbol 1764 as "assets.MovieClipObstacleTree_2"
ExportAssets (56)Timeline Frame 1Symbol 1767 as "assets.MovieClipObstacleRock_7"
ExportAssets (56)Timeline Frame 1Symbol 1770 as "assets.MovieClipObstacleTree_3"
ExportAssets (56)Timeline Frame 1Symbol 1773 as "assets.MovieClipObstacleRock_6"
ExportAssets (56)Timeline Frame 1Symbol 1776 as "assets.MovieClipObstacleTree_4"
ExportAssets (56)Timeline Frame 1Symbol 1779 as "assets.MovieClipObstacleTyres"
ExportAssets (56)Timeline Frame 1Symbol 1782 as "assets.MovieClipObstacleRock_1"
ExportAssets (56)Timeline Frame 1Symbol 1785 as "assets.MovieClipObstacleTreeSnow1"
ExportAssets (56)Timeline Frame 1Symbol 1788 as "assets.MovieClipObstacleRock_9"
ExportAssets (56)Timeline Frame 1Symbol 1791 as "assets.MovieClipObstacleRock_2"
ExportAssets (56)Timeline Frame 1Symbol 1794 as "assets.MovieClipObstacleRock_4"
ExportAssets (56)Timeline Frame 1Symbol 1795 as "assets.MovieClipObstacleCheckpoint"
ExportAssets (56)Timeline Frame 1Symbol 1798 as "assets.MovieClipObstacleRock_3"
ExportAssets (56)Timeline Frame 1Symbol 1801 as "assets.MovieClipObstacleBush_2"
ExportAssets (56)Timeline Frame 1Symbol 1804 as "assets.MovieClipObstacleTree_6"
ExportAssets (56)Timeline Frame 1Symbol 1807 as "assets.MovieClipObstacleTree_1"
ExportAssets (56)Timeline Frame 1Symbol 1831 as "fl.controls.Button"
ExportAssets (56)Timeline Frame 1Symbol 1849 as "fl.controls.NumericStepper"
ExportAssets (56)Timeline Frame 1Symbol 1914 as "assets.MovieClipDebug"
ExportAssets (56)Timeline Frame 1Symbol 1913 as "fl.controls.ComboBox"
ExportAssets (56)Timeline Frame 1Symbol 1941 as "assets.MovieClipScoreboard"
ExportAssets (56)Timeline Frame 1Symbol 1942 as "assets.SoundCarLoopIdle"
ExportAssets (56)Timeline Frame 1Symbol 1943 as "assets.SoundCarEngine03"
ExportAssets (56)Timeline Frame 1Symbol 1944 as "assets.SoundCarCrashCar"
ExportAssets (56)Timeline Frame 1Symbol 1945 as "assets.SoundCarEngine00"
ExportAssets (56)Timeline Frame 1Symbol 1946 as "assets.SoundCarLoopHigh"
ExportAssets (56)Timeline Frame 1Symbol 1947 as "assets.SoundCarEngine05"
ExportAssets (56)Timeline Frame 1Symbol 1948 as "assets.SoundCarEngine01"
ExportAssets (56)Timeline Frame 1Symbol 1949 as "assets.SoundCarLoopMedium"
ExportAssets (56)Timeline Frame 1Symbol 1950 as "assets.SoundCarLoopLow"
ExportAssets (56)Timeline Frame 1Symbol 1951 as "assets.SoundCarEngine04"
ExportAssets (56)Timeline Frame 1Symbol 1952 as "assets.SoundCarSkid"
ExportAssets (56)Timeline Frame 1Symbol 1953 as "assets.SoundCarEngine02"
ExportAssets (56)Timeline Frame 1Symbol 1954 as "assets.SoundCarCrashSolid"
ExportAssets (56)Timeline Frame 1Symbol 389 as "assets_fla.car_10"
ExportAssets (56)Timeline Frame 1Symbol 146 as "assets_fla.car_2"
ExportAssets (56)Timeline Frame 1Symbol 633 as "assets_fla.car_14"
ExportAssets (56)Timeline Frame 1Symbol 877 as "assets_fla.car_12"
ExportAssets (56)Timeline Frame 1Symbol 1121 as "assets_fla.car_4"
ExportAssets (56)Timeline Frame 1Symbol 1955 as "assets.BitmapTilesTarmacAlpha"
ExportAssets (56)Timeline Frame 1Symbol 1956 as "assets.BitmapTilesSnowAlpha"
ExportAssets (56)Timeline Frame 1Symbol 1957 as "assets.BitmapTilesTarmacTexture"
ExportAssets (56)Timeline Frame 1Symbol 1958 as "assets.BitmapTilesSnowTexture"
ExportAssets (56)Timeline Frame 1Symbol 1959 as "assets.BitmapTilesDesertAlpha"
ExportAssets (56)Timeline Frame 1Symbol 1960 as "assets.BitmapTilesDesertTexture"
ExportAssets (56)Timeline Frame 1Symbol 1961 as "assets.BitmapTilesBackground"
ExportAssets (56)Timeline Frame 1Symbol 1964 as "assets.MovieClipCountGo"
ExportAssets (56)Timeline Frame 1Symbol 1967 as "assets.MovieClipCount01"
ExportAssets (56)Timeline Frame 1Symbol 1970 as "assets.MovieClipCount02"
ExportAssets (56)Timeline Frame 1Symbol 1973 as "assets.MovieClipCount03"
ExportAssets (56)Timeline Frame 1Symbol 1625 as "assets.MovieClipFinish"
ExportAssets (56)Timeline Frame 1Symbol 1639 as "assets_fla.hud_146"
ExportAssets (56)Timeline Frame 1Symbol 1630 as "assets_fla.hud_144"
ExportAssets (56)Timeline Frame 1Symbol 1641 as "assets_fla.hud_147"
ExportAssets (56)Timeline Frame 1Symbol 1974 as "assets.BitmapDataTilesMinimap"
ExportAssets (56)Timeline Frame 1Symbol 1979 as "assets.MovieClipLapDisplay"
ExportAssets (56)Timeline Frame 1Symbol 1982 as "assets.MovieClipEffectLight"
ExportAssets (56)Timeline Frame 1Symbol 1984 as "assets.MovieClipEffectBlack"
ExportAssets (56)Timeline Frame 1Symbol 1987 as "assets.MovieClipEffectClouds"
ExportAssets (56)Timeline Frame 1Symbol 1990 as "assets.MovieClipEffectDustSnow"
ExportAssets (56)Timeline Frame 1Symbol 1991 as "assets.MovieClipEffectDustDesert"
ExportAssets (56)Timeline Frame 1Symbol 1812 as "Button_disabledSkin"
ExportAssets (56)Timeline Frame 1Symbol 1816 as "Button_emphasizedSkin"
ExportAssets (56)Timeline Frame 1Symbol 1824 as "Button_selectedOverSkin"
ExportAssets (56)Timeline Frame 1Symbol 1820 as "Button_selectedDisabledSkin"
ExportAssets (56)Timeline Frame 1Symbol 1828 as "Button_upSkin"
ExportAssets (56)Timeline Frame 1Symbol 1814 as "Button_downSkin"
ExportAssets (56)Timeline Frame 1Symbol 1826 as "Button_selectedUpSkin"
ExportAssets (56)Timeline Frame 1Symbol 1830 as "focusRectSkin"
ExportAssets (56)Timeline Frame 1Symbol 1822 as "Button_selectedDownSkin"
ExportAssets (56)Timeline Frame 1Symbol 1818 as "Button_overSkin"
ExportAssets (56)Timeline Frame 1Symbol 1810 as "fl.core.ComponentShim"
ExportAssets (56)Timeline Frame 1Symbol 1844 as "NumericStepperUpArrow_downSkin"
ExportAssets (56)Timeline Frame 1Symbol 1836 as "NumericStepperDownArrow_downSkin"
ExportAssets (56)Timeline Frame 1Symbol 1838 as "NumericStepperDownArrow_overSkin"
ExportAssets (56)Timeline Frame 1Symbol 1846 as "NumericStepperUpArrow_overSkin"
ExportAssets (56)Timeline Frame 1Symbol 1871 as "fl.controls.TextInput"
ExportAssets (56)Timeline Frame 1Symbol 1840 as "NumericStepperDownArrow_upSkin"
ExportAssets (56)Timeline Frame 1Symbol 1834 as "NumericStepperDownArrow_disabledSkin"
ExportAssets (56)Timeline Frame 1Symbol 1848 as "NumericStepperUpArrow_upSkin"
ExportAssets (56)Timeline Frame 1Symbol 1842 as "NumericStepperUpArrow_disabledSkin"
ExportAssets (56)Timeline Frame 1Symbol 1999 as "assets.MovieClipDebugObstacle"
ExportAssets (56)Timeline Frame 1Symbol 1860 as "ComboBox_upSkin"
ExportAssets (56)Timeline Frame 1Symbol 1864 as "ComboBox_overSkin"
ExportAssets (56)Timeline Frame 1Symbol 1862 as "ComboBox_disabledSkin"
ExportAssets (56)Timeline Frame 1Symbol 1912 as "fl.controls.List"
ExportAssets (56)Timeline Frame 1Symbol 1866 as "ComboBox_downSkin"
ExportAssets (56)Timeline Frame 1Symbol 1934 as "assets_fla.scoreboard_198"
ExportAssets (56)Timeline Frame 1Symbol 1926 as "assets_fla.scoreboard_196"
ExportAssets (56)Timeline Frame 1Symbol 2002 as "assets.MovieClipMinimapMarker"
ExportAssets (56)Timeline Frame 1Symbol 1868 as "TextInput_disabledSkin"
ExportAssets (56)Timeline Frame 1Symbol 1870 as "TextInput_upSkin"
ExportAssets (56)Timeline Frame 1Symbol 1911 as "fl.controls.ScrollBar"
ExportAssets (56)Timeline Frame 1Symbol 1888 as "fl.controls.listClasses.CellRenderer"
ExportAssets (56)Timeline Frame 1Symbol 1873 as "List_skin"
ExportAssets (56)Timeline Frame 1Symbol 1899 as "ScrollArrowUp_overSkin"
ExportAssets (56)Timeline Frame 1Symbol 1893 as "ScrollArrowDown_downSkin"
ExportAssets (56)Timeline Frame 1Symbol 1908 as "ScrollArrowUp_disabledSkin"
ExportAssets (56)Timeline Frame 1Symbol 1895 as "ScrollThumb_downSkin"
ExportAssets (56)Timeline Frame 1Symbol 1896 as "ScrollArrowDown_overSkin"
ExportAssets (56)Timeline Frame 1Symbol 1890 as "ScrollTrack_skin"
ExportAssets (56)Timeline Frame 1Symbol 1901 as "ScrollArrowUp_upSkin"
ExportAssets (56)Timeline Frame 1Symbol 1906 as "ScrollArrowDown_disabledSkin"
ExportAssets (56)Timeline Frame 1Symbol 1892 as "ScrollArrowUp_downSkin"
ExportAssets (56)Timeline Frame 1Symbol 1904 as "ScrollArrowDown_upSkin"
ExportAssets (56)Timeline Frame 1Symbol 1910 as "ScrollBar_thumbIcon"
ExportAssets (56)Timeline Frame 1Symbol 1898 as "ScrollThumb_overSkin"
ExportAssets (56)Timeline Frame 1Symbol 1903 as "ScrollThumb_upSkin"
ExportAssets (56)Timeline Frame 1Symbol 1882 as "CellRenderer_selectedDisabledSkin"
ExportAssets (56)Timeline Frame 1Symbol 1885 as "CellRenderer_selectedOverSkin"
ExportAssets (56)Timeline Frame 1Symbol 1877 as "CellRenderer_disabledSkin"
ExportAssets (56)Timeline Frame 1Symbol 1884 as "CellRenderer_selectedDownSkin"
ExportAssets (56)Timeline Frame 1Symbol 1887 as "CellRenderer_selectedUpSkin"
ExportAssets (56)Timeline Frame 1Symbol 1875 as "CellRenderer_upSkin"
ExportAssets (56)Timeline Frame 1Symbol 1879 as "CellRenderer_downSkin"
ExportAssets (56)Timeline Frame 1Symbol 1880 as "CellRenderer_overSkin"
SerialNumber (41)Timeline Frame 1

Labels

"preloader_AbstractPreloader"Frame 1
"LilRacerz"Frame 2




http://swfchan.com/14/67673/info.shtml
Created: 11/4 -2019 10:26:36 Last modified: 11/4 -2019 10:26:36 Server time: 22/12 -2024 17:42:08